Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
1
IPSec (Internet Protocol Security)
Antonio Abílio da Costa Coutinho, José Eduardo Mendonça da Fonseca
Escola de Engenharia – Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 - 24210-240 - São Domingos - Niterói – RJ – Brasil.
[email protected], [email protected]
Resumo. Este trabalho, realizado através de uma pesquisa na bibliografia referenciada, tem como objetivo apresentar alguns conceitos sobre segurança em redes de comunicação de dados. Nesse sentido, será abordado o Protocolo IPSec (Internet Protocol Security), sua tecnologia, sua arquitetura e algumas de suas aplicações. O IPSec, como será visto neste trabalho, garante a segurança em redes de comunicação de dados: internet, extranet e intranet, tendo sido desenvolvido com o objetivo de manter o sigilo, a integridade dos dados e a proteção contra ataques de reprodução, valendo-se de algoritmos de criptografia e certificação.
1. INTRODUÇÃO
No início do desenvolvimento do conjunto de protocolos TCP/IP, pouco ou quase nada
se falava ou se desenvolvia em relação à segurança de redes. Com o surgimento de
várias aplicações e o rápido crescimento da Internet, percebeu-se que as questões
relativas à segurança de redes e de sistemas tornaram-se demandas cada vez mais
crescentes.
Enquanto a Internet se restringia aos meios científicos e aos acadêmicos, os
problemas de segurança não eram tão críticos, uma vez que havia certo controle baseado
nos códigos de uso ético da rede. Com a abertura da Internet para o setor privado,
principalmente para o comercial, os problemas de segurança se intensificaram e ficaram
críticos.
Apesar da falta de segurança das informações na rede mundial de computadores,
a Internet está sendo cada vez mais utilizada pelo mundo corporativo. Existem inúmeros
tipos de ataques, que permitem “bisbilhotar” o tráfego na rede, visando capturar
2
informações importantes, tais como: senhas, dados bancários, cartões de crédito e, até
mesmo, segredos industriais, de modo que, para garantir o sigilo da informação, houve a
necessidade das empresas se conectarem de forma segura.
Instalar uma rede privada pode ser uma tarefa fácil para empresas vizinhas,
porém, quando existem matrizes, filiais, escritórios e parceiros separados por centenas
de quilômetros de distância, isto pode ser muito difícil. A forma ideal e mais econômica
é usar a infra-estrutura de uma rede pública de serviços, como a Internet, levando-se em
consideração, no entanto, que a segurança da informação fica comprometida.
Em resposta aos desafios de segurança de redes, o Grupo de Trabalho IP
Security Protocol do IETF (Internet Engineering Task Force) desenvolveu uma
plataforma de segurança conhecida como IPSec (IP Security) [5] [6] [7] [8]. O objetivo
do grupo é desenvolver mecanismos que forneçam proteção ao pacote IP e às aplicações
que rodam sobre o protocolo IP, estabelecendo níveis de segurança para as
comunicações host-to-host, subnet-to-subnet e host-to-subnet.
Este trabalho aborda os aspectos principais da arquitetura IPSec. Na primeira
parte, serão apresentados o conceito do IPSec e suas características, sua arquitetura e
seus protocolos, seu modo de funcionamento e como o IPSec pode ser implantado em
redes IP de modo a garantir a segurança da informação. Na segunda e última parte, será
apresentado o conceito de uma VPN (Virtual Private Network ), já que a tecnologia
IPSec é uma das melhores opções de implementação deste tipo de rede.
2. IPSEC (INTERNET PROTOCOL SECURITY)
O IPSec baseia-se em um modelo ponto-a-ponto que permite a troca de informações
entre dois computadores de maneira segura, os quais devem “concordar” com um
conjunto comum de regras e de definições do protocolo. Com o uso do IPSec e das
tecnologias associadas, os dois computadores são capazes de se autenticar mutuamente
e manter uma comunicação segura, mesmo usando um meio não seguro como a
Internet.
Os primeiros esforços de padronização para o estabelecimento do IP com
segurança, autenticação e criptografia de datagramas foram escritos em 1995, conforme
definido na RFC1825/1829, em virtude da pilha do TCP/IP, que vinha sendo utilizada
3
no mundo IPv4, não possuir características de proteção ou segurança. Em resposta a
essa necessidade, o Internet Architecture Board (IAB) incluiu autenticação e
criptografia como características necessárias de segurança para a nova geração de IP, a
qual foi designada como IPv6. Essa capacidade de segurança foi projetada para fornecer
serviços não apenas em ambientes IPv4, mas também em ambientes IPv6 [4] [9] [10]
[11], de forma que as empresas fornecedoras de software podem oferecer alguma
capacidade de IPSec em seus produtos.
O IPSec é uma plataforma aberta formada por um conjunto de protocolos que
fornecem serviços de autenticação, de integridade, de controle de acesso e de
confidencialidade na camada de rede IP, para redes LANs, WANs públicas e privadas e
Internet. Assim, a tecnologia IPSec é uma das opções de se implementar VPNs e seus
serviços podem ser utilizados por quaisquer protocolos das camadas superiores como
TCP, UDP, ICMP, BGP, etc. O IPSec fornece três facilidades principais: uma função
somente de autenticação, referenciada como Authentication Header (AH), uma função
combinada de autenticação/criptografia chamada Encapsulating Security Payload
(ESP), e uma função de troca de chave. As especificações IPSec são bastante complexas
e descritas por grande quantidade de documentos. As mais importantes, emitidas em
Novembro de 1998, são as RFCs 2401, 2402, 2406 e 2408 [1] [2] [3].
O conjunto de serviços oferecidos inclui controle de acesso, integridade não
orientada à conexão, autenticação da origem dos dados e confidencialidade. Estes
serviços são implementados através da utilização conjunta de protocolos de segurança
de tráfego de dados, de autenticação de cabeçalho, de encapsulamento seguro do
payload ou conteúdo dos dados e de procedimentos e protocolos de gerência de chaves.
2.1 ARQUITETURA E PROTOCOLOS
A arquitetura IPSec, por ser aberta, possibilita a inclusão de outros algoritmos de
autenticação e criptografia, e vem sendo adotado por todos os fabricantes de
equipamentos de redes de computadores e projetistas de sistemas. O IPSec situa-se entre
a camada de rede e a camada de transporte [1], conforme pode ser visto na Figura 1.
4
Figura 1 – Camada IPSec
A RFC 2411 - IP Security Document Roadmap [12] - apresenta as diretrizes
para: produção, organização e inter-relacionamento entre os diversos documentos que
descrevem o conjunto de protocolos IPSec. Esta RFC apresenta o roadmap para as
especificações que descrevem o uso de novos algoritmos de autenticação e criptografia,
definidas, respectivamente, pelos protocolos AH - IP Authentication Header/RFC 2402
[13] e ESP - IP Encapsulating Security Payload/RFC 2406 [14], os quais serão
abordados nas próximas seções deste trabalho. A Figura 2 apresenta a arquitetura
interna do IPSec.
Figura 2 - Arquitetura IPSec
Para a autenticação de cabeçalho, os algoritmos obrigatórios são os seguintes:
??HMAC-MD5, RFC 2403 [15] - The Use of HMAC-MD5 within ESP and
AH; e
5
??HMAC-SHA-1, RFC 2404 [16] - The Use of HMAC-SHA-1 within ESP and
AH.
Para o encapsulamento seguro do payload, os algoritmos são:
??DES-CBC, RFC 2405 [17] - ESP DES-CBC Cipher Algorithm with Explicit
IV;
?? Null Authentication Algorithm; e
?? Null Encryption Algorithm.
As especificações IPSec também suportam negociação de compressão IP
definidas pela RFC 2393 [18] - IP Payload Compression Protocol.
Ao longo deste trabalho, serão apresentadas as características principais dos
protocolos empregados pelo IPSec mencionados acima.
2.2 MODO DE FUNCIONAMENTO
O conceito de Associação de Segurança (SA - Security Association) [3] [22] - é um dos
conceitos fundamentais do IPSec. Uma associação de segurança é uma "conexão
simplex" que viabiliza o tráfego de serviços seguros entre dois pontos e que tem um
identificador de segurança associado. A segurança dos serviços é garantida pela
utilização dos protocolos de segurança (AH ou ESP ou ambos). Observa-se que, no caso
de se usar AH e ESP em conjunto, mais de uma SA deve ser definida.
Uma associação de segurança é identificada univocamente por três parâmetros: o
SPI (Security Parameter Index), o endereço IP de destino e o identificador do protocolo
(AH ou ESP).
O SPI é um número que identifica uma SA, sendo definido durante a negociação
que antecede o estabelecimento da mesma. Assim, todos os membros de uma SA devem
conhecer o SPI correspondente e usá- lo durante a comunicação.
O endereço IP de destino pode ser unicast, broadcast ou ainda multicast. No
entanto, para a definição dos mecanismos de gerenciamento de SA, o IPSec assume um
endereço de destino unicast, estendendo as definições para os casos de broadcast e
multicast.
6
Ressalta-se que a negociação para o estabelecimento de uma SA envolve a
definição da chave, os algoritmos de criptografia e de autenticação e os parâmetros
usados por estes algoritmos.
Num pacote IP, a SA é unicamente identificada pelo cabeçalho do endereço de
destino no IPv4 ou no IPv6 e o SPI encapsulado no cabeçalho extensão de AH e ESP. A
Figura 3 mostra o pacote IP, onde o identificador do protocolo é o número 51 para o
AH e o número 50 para o ESP. Na área de dados do IP, portanto, seguirá um novo
pacote AH ou ESP.
Figura 3 - Pacote IP
O protocolo AH adiciona autenticação e integridade, ou seja, garante a
autenticidade do pacote e também que este não foi alterado durante a transmissão dos
dados.
O uso do AH previne ataques do tipo:
?? Replay, ou seja, quando o atacante intercepta um pacote válido e
autenticado pertencente a uma conexão, replica-o e o reenvia, "entrando na
conversa". A utilização do campo Sequence Number ajuda na prevenção a
este tipo de ataque, pois permite numerar os pacotes que trafegam dentro de
uma determinada SA;
?? Spoofing, ou seja, quando o atacante assume o papel de uma máquina
confiável para o destino e, dessa forma, ganha privilégios durante a
comunicação. A autenticação previne este tipo de ataque; e
?? "Roubo de conexões" (connection hijacking), ou seja, quando o atacante
intercepta um pacote no contexto de uma conexão e passa a participar da
Versãoo
Tamanho Total
Identificação Offset Fragmentos
Tempo de vida Protocolo Checksum do Cabeçalho
Endereço IP de origem
Endereço IP de destino
Opções Enchimento
Flags
IHL Tipo de Serviço
DADOS
7
comunicação. A utilização de mecanismos de autenticação previne este tipo
de ataque.
A Figura 4 ilustra o cabeçalho do protocolo AH e os campos para a formatação
do cabeçalho do pacote de autenticação [3].
Figura 4 - Cabeçalho do Protocolo AH
?? Próx. Cabeçalho: valor inteiro de 8-bits que identifica o que estará presente
na parte de dados após os “Dados de Autenticação”. É o mesmo valor
definido pela IANA para os protocolos, isto é, exatamente igual ao IP;
?? Tamanho do Payload: valor inteiro de 8-bits que especifica o tamanho do
AH em palavras de 32-bits, menos 2 (devido à compatibilidade com o
IPv6). Normalmente são 96-bits de valor de autenticação, ou três palavras
de 32-bits. Com um cabeçalho fixo de três palavras há um total de seis
palavras no cabeçalho e o campo “Tam. Payload” tem um valor de quatro
palavras;
?? Reservado: valor inteiro de 16-bits, reservado para uso futuro;
?? SPI (Security Parameters Index): valor de 32-bits do identificador único
que inclui o protocolo AH e o endereço de destino, formando o
identificador SA;
?? ?Número de Seqüência: valor de 32-bits sem sinal que contém um valor
incremental do valor do número de seqüência (semelhante ao TCP). Isto faz
a propriedade de anti-replay do AH; e
??Dados de Autenticação: este campo contém um valor variável de
verificação de integridade (ICV – Integrity Check Value). Um enchimento
(padding) deve ser usado para que o pacote tenha tamanho múltiplo de 32-
Próx. Cabeçalho Tam. Payload Reservado
SPI Security Parameters Index
Numero de Seqüência
Dados de autenticação
8
bits (IPv4) ou 64-bits (IPv6). Este algoritmo usado no ICV deve ser um
‘hash’ criptográfico, tal como MD5 (Message Digest) ou SHA1 (Secure
Hash Algorihom 1) ou então uma MAC baseada em algum algoritmo como
DES (Data Encryption Standard), pouco utilizado. Isto é definido pela SA.
Observa-se que o AH adiciona autenticação, porém, os dados continuam
trafegando intactos (o cabeçalho em “clear-text”) pela rede, podendo, por exemplo, ser
capturados através de sniffer. Assim, a confidencialidade é tratada por outro protocolo,
o ESP.
O protocolo ESP adiciona a autenticação e a confidencialidade, garantindo que
somente os destinatários autorizados tenham acesso ao conteúdo do pacote. O ESP pode
ser usado no modo transporte ou no modo túnel, como será descrito posteriormente. O
uso do ESP previne ataques do tipo:
?? Replay, através da utilização do campo Sequence Number, de maneira
análoga ao AH;
?? "Particionamento de pacotes cifrados", que é o que acontece quando o
atacante obtém partes de pacotes cifrados e consegue montar um pacote que
pode ser aceito por um dos membros da conexão. O uso de autenticação
previne este tipo de ataque; e
?? Sniffer, ou seja, quando o atacante obtém os pacotes que trafegam na rede.
A utilização da criptografia previne este tipo de ataque.
A Figura 5 ilustra o cabeçalho do protocolo ESP [3]:
Figura 5 - Cabeçalho do Protocolo ESP
SPI Security Parameters Index
Número de Seqüência
Dados de Payload
Enchimento (0-255 by tes)
Tam. Enchimento Prox. Cabeçalho
Dados de Autenticação
9
?? SPI (Security Parameters Index): valor de 32-bits do identificador único
que inclui o protocolo ESP e o endereço de destino, formando o
identificador SA;
??Número de Seqüência: valor de 32-bits sem sinal; contém um valor
incremental para o número de seqüência (semelhante ao TCP), garantindo a
propriedade de anti-replay do ESP;
??Dados do Payload: campo de tamanho variável, que contém os dados
referentes ao pacote definido no Próximo Cabeçalho: Segmento da camada
de transporte (Modo Transporte) ou Pacote IP (Modo Túnel) que é
protegido pela criptografia. Se um algoritmo de criptografia for usado,
então os dados de sincronização também devem ser enviados (tais como
vetores de inicialização). Se a sincronização for implícita, esta deve ser
definida pela RFC;
?? Enchimento (Padding): valor 0 a 255 bytes; enchimento que pode ser
necessário se o algoritmo de criptografia precisar de um texto para ser
múltiplo de certo número de octetos: definir delimitadores ou por
enchimento para o próprio cabeçalho ESP;
?? Tam. do Enchimento: valor de 8-bits; este campo indica que um número de
bytes de enchimento foi incluído;
?? Próx. Cabeçalho: valor inteiro de 8-bits; identifica o que estará presente na
parte de dados. É o mesmo valor definido pela IANA para os protocolos,
sendo exatamente igual ao IP e ao AH; e
??Dados de Autenticação: campo de valor variável (deve ser um número
inteiro de palavras de 32-bits), que contém um ICV calculado sobre o
pacote ESP menos os dados do próprio campo de autenticação.
Para os casos em que se exige apenas a autenticação, ou ainda, onde a
confidencialidade não deve ser usada, é recomendada a utilização do AH. No entanto, a
situação ideal é a utilização de autenticação e de confidencialidade, ou seja, a utilização
do AH e ESP em conjunto. Mais especificamente, é recomendado o uso do ESP
10
"dentro" do AH, permitindo que o destino verifique a autenticidade do pacote antes de
decifrá- lo, ou ainda, verifique autenticidade e decifre o pacote em paralelo.
Uma SA pode ser estabelecida de dois modos diferentes: transporte ou túnel
[22]. No primeiro modo, somente é possível usar o IPSec em redes baseadas em IP; no
segundo, com a utilização do L2TP (Layer 2 Tunneling Protocol), que é um protocolo
de nível de enlace, é possível usar o IPSec/L2TP para transportar não apenas pacotes IP,
mas também IPX, NetBEUI e assim por diante.
No modo transporte, uma SA é estabelecida entre dois hosts, com ligeiras
diferenças quando estabelecida no IPv4 e no IPv6:
??No IPv4, o cabeçalho do protocolo de segurança é inserido entre o
cabeçalho IP e os cabeçalhos dos protocolos de mais alto nível, como o
TCP ou o UDP; e
??No IPv6, o cabeçalho do protocolo de segurança é inserido após o
cabeçalho básico IPv6 e dos cabeçalhos de extensão end-to-end, e antes dos
protocolos de mais alto nível.
O modo transporte protege primeiramente os protocolos das camadas superiores
(p.ex.: TCP, UDP, ICMP, etc.), ou seja, atua protegendo o payload de um pacote IP,
como pode ser visto na Figura 6, para o caso do ESP em uma comunicação utilizando
TCP. Tipicamente, o modo transporte é utilizado em comunicações fim-a-fim entre dois
hosts (p.ex.: cliente e servidor, ou duas estações de trabalho).
Figura 6 – Protocolo ESP no Modo Transporte
No modo transporte, o ESP criptografa e, opcionalmente, autentica o payload IP,
mas não o cabeçalho IP. Já o AH autentica o payload IP e partes selecionadas do
cabeçalho IP.
11
O modo túnel protege o pacote IP inteiramente. Para isto, após a inserção dos
campos do AH e do ESP no pacote IP original, o pacote inteiro acrescido de um campo
de segurança é considerado como sendo o payload de um novo pacote IP, que inclui um
novo cabeçalho IP, conforme apresentado na Figura 7, para o caso do ESP em uma
comunicação utilizando TCP. O pacote IP original, portanto, trafega através de um
túnel de um ponto a outro dentro da rede, sendo que nenhum roteador ao longo da rota
do pacote terá acesso ao conteúdo do cabeçalho original. Devido ao encapsulamento, o
novo pacote IP possuirá endereços de origem e de destino completamente diferentes,
garantindo, assim, a segurança.
Figura 7 – Protocolo ESP no Moto Túnel
O modo túnel é empregado quando um ou ambos os lados de uma SA for um
gateway de segurança, como um firewall ou um roteador que implemente IPSec. Com o
modo túnel, os hosts de uma rede local protegida por um firewall podem efetuar
comunicações com segurança sem implementar o IPSec. Os pacotes não protegidos
gerados a partir destes hosts são encaminhados por túneis criados por software pelo
IPSec no firewall ou, em outros casos, em um roteador de borda da rede local.
Além de usar os protocolos AH ou ESP individualmente, o IPSec pode requerer
suporte para combinações dos dois modos. A idéia é utilizar um túnel para a
autenticação dos cabeçalhos internos do pacote IP original, e aplicar o AH ou o ESP ou
ambos externamente no modo de transporte para ampliar a proteção para o novo pacote
e novo cabeçalho externo, conforme descrito anteriormente. Deve-se observar que, no
modo túnel, o AH e o ESP não podem ser utilizados simultaneamente, já que o ESP tem
seu próprio esquema de autenticação. A Figura 8 mostra o formato dos pacotes no
modo transporte e a Figura 9 no modo túnel, porém, é possível utilizar ambos, o
chamado modo combinado, como mostra a Figura 10.
12
Figura 8 – Formato dos pacotes no Modo Transporte
Figura 9 – Formato dos pacotes no Modo Túnel
Figura 10 – Formato dos pacotes no modo combinado
2.3 ALGORITMOS DE CONFIDENCIALIDADE
Além da autenticação mútua e da verificação da integridade dos dados, é preciso
garantir a confidencialidade dos dados, ou seja, se os pacotes forem capturados é
importante que não possam ser lidos a não ser pelo destinatário. A confidencialidade
garante que os dados somente sejam revelados para os verdadeiros destinatários.
Para garantir a confidencialidade, o IPSec usa pacotes no formato ESP,
conforme já mencionado. Os dados do pacote são criptografados antes da transmissão,
garantindo que os dados não possam ser lidos, mesmo que o pacote seja monitorado ou
interceptado por um invasor. Apenas o computador com a chave de criptografia
compartilhada será capaz de interpretar ou modificar os dados.
Os seguintes algoritmos podem ser utilizados para oferecer a confidencialidade
da negociação de segurança e do intercâmbio de dados de aplicativo:
??DES (Data Encryption Standard);
??United States Data Encryption Standard (DES padrão dos Estados Unidos);
13
?? 3DES (Triple Data Encryption Standard).
O Cipher Block Chaining (CBC) é usado para ocultar padrões de blocos de
dados idênticos dentro de um pacote sem aumentar o tamanho dos dados após a
criptografia. Os padrões repetidos podem comprometer a segurança, fornecendo uma
pista para que um invasor possa usar para tentar descobrir a chave de criptografia. Um
vetor de inicialização (um número inicial aleatório) é usado como o primeiro bloco
aleatório para criptografar um bloco de dados. Diferentes blocos aleatórios são usados
junto com a chave secreta para criptografar cada bloco. Isso garante que conjuntos
idênticos de dados não protegidos sejam transformados em conjuntos exclusivos de
dados criptografados.
2.4 GERENCIAMENTO DE CHAVES
A especificação do IPSec exige o compartilhamento de chaves secretas, que são
utilizadas para autenticação, integridade e criptografia dos dados, a qual define um
conjunto separado de mecanismos para o gerenciamento destas chaves. O
gerenciamento de chaves pelo IPSec pode ser manual ou automático. O protocolo
padrão para esse gerenciamento é o IKE [19] (Internet Key Management), que é a
combinação do ISAKMP [20] (Internet Security Association and Key Management
Protocol) e do protocolo Oakley [21]. Para a distribuição de chaves, portanto, foram
especificados procedimentos baseados em chaves públicas definidas pelas seguintes
RFCs:
?? RFC 2408 - Internet Security Association and Key Management Protocol
(ISAKMP);
?? RFC 2409 - The Internet Key Exchange (IKE); e
?? RFC 2412 - The OAKLEY Key Determination Protocol.
O IKE opera em duas fases: inicialmente, dois pares estabelecem um canal
seguro; em seguida, os dois pares negociam a SA de propósito geral. Mesmo com as
definições dos padrões acima, a especificação do IPSec permite a inclusão de outros
protocolos de gerência de chaves públicas.
O IKE fornece o gerenciamento da segurança para a SA e autentica cada ponto
(host/gateways/servidores) de uma conexão IPSec, negociando políticas de segurança e
14
manipulando as trocas das chaves de sessão. Além disso, possibilita o uso de
certificados para a autenticação dos equipamentos envolvidos durante a negociação do
IKE. O gerenciamento dos certificados inclui o uso do Simple Certificate Enrollment
Protocol (SCEP), que permite a comunicação com uma Autoridade Certificadora (CA –
Certificate Authority). Este certificado suporta ainda estrutura hierárquica para o uso em
uma infra-estrutura de chaves públicas (PKI – Public Key Infrastructure). Os
componentes para isso incluem o uso do protocolo de chaves públicas Diffie-Hellman
para estabelecer uma chave de sessão mesmo estando em um meio inseguro, como a
Internet. O IKE provê as seguintes funcionalidades:
?? Permite que as partes negociem quais protocolos, algoritmos e chaves serão
usados;
??Garante a identidade das partes, tanto do cliente, quanto do servidor;
?? ?Gerencia as chaves após elas estarem em uso; e
?? ?Garante que as trocas de mensagens que contêm chaves sejam feitas por
meios muito seguros.
O gerenciamento de chaves realizado pelo IPSec pode ser realizado de forma
manual ou automática dependo do número de sites conectados. É um dos processos
mais importantes do IPSec e da segurança que ele possui. Um dos ataques que pode ser
evitado com o correto gerenciamento das chaves é o “man-in-the-middle” no qual um
intruso pode capturar a troca de informações na comunicação entre dois hosts. O IKE
está relacionado intimamente com o gerenciamento do SA. Quando uma SA é criada, as
chaves devem ser negociadas. O IPSec também provê um meio para o uso de chaves
manuais, gerenciados por um administrador de rede, porém, em uma rede de grande
porte, é muito difícil de ser realizado.
O protocolo IKE opera em duas fases: Na primeira fase, os dois pares
estabelecem um canal seguro para realizar as operações do ISAKMP (ISAKMP SA); na
segunda fase, os dois pares negociam as SA de propósito geral. O objetivo de se dividir
em fases é de eliminar redundâncias entre os pontos de negociação da SA e,
conseqüentemente, ganhar em capacidade de processamento, pois o canal seguro já
estará estabelecido na primeira fase.
15
Na realidade, o IKE é baseado em uma combinação de protocolos: o Internet
Security Association and Key Management Protocol (ISAKMP), responsável pela
negociação da segurança, e o Security Key Exchange Mechanism (SKEME),
responsável pela troca de chaves. A Figura 11 mostra a estrutura do cabeçalho para o
protocolo ISAKMP. O protocolo de transporte utilizado é o UDP, na porta 500.
Figura 11 – Estrutura do cabeçalho – Protocolo ISAKMP
?? Cookie-1: Valores aleatórios gerados pelas entidades. Utilizados contra
ataques de replay e Denial of Service (DoS), também são utilizados para
identificação da SA entre as duas entidades depois que a negociação for
concluída;
?? Px payload: Responsável pela identificação do tipo do próximo payload do
pacote, podendo assumir alguns dos seguintes valores:
0 – Nenhum (último payload) 8 – Hash 1 – Security Association 9 – Assinatura 2 – Proposta 10 – Nonce 3 – Transformação 11 – Notificação 4 – Troca de Chaves 12 – Deleção 5 – Identificação 13 – Id. Fornecedor/fabricante (*) 6 – Certificado (CERT); 14 - 127 – Reservados 7 – Pedido de Certificado 128 – 255 – Uso Particular
Nota (*): constante fornecida pelo fornecedor/fabricante para identificar e
reconhecer, remotamente, suas implementações.
?? Versão: atualmente tem valor 1;
COOKIE - R
IDENTIFICAÇÃO DA MENSAGEM
TAMANHO TOTAL DA MENSAGEM (CABEÇALHO + PAYLOAD)
PX Payload AS (1)
Maior Versão
(0)
Menor Versão
(0)
Tipo Modo Principal
(2) Flags
COOKIE - 1
0 7|8 15|16 23|24 31
16
?? Tipo de comunicação: responsável pela determinação das mensagens e dos
payloads seguintes;
?? Flags: indicam opções utilizadas na comunicação (RFC2408);
?? Identificação: responsável por identificar unicamente uma mensagem.
Utilizado durante a segunda fase;
?? Tamanho: Tamanho total da mensagem (Cabeçalho e Payload).
O IKE pode estabelecer as chaves de três modos: Principal (Main Mode), Agressivo
(Aggressive Mode) ou Rápido (Quick Mode).
??Modo Principal (Main Mode): faz a fase de troca do ISAKMP, ou seja, o
estabelecimento do canal seguro de comunicação. É composto de três fases
com duas mensagens cada:
??Na primeira fase, as partes envolvidas trocam informações sobre os
algoritmos e hashes básicos a serem utilizados;
??Na segunda fase, trocam chaves públicas para uma negociação Diffie
Helman e fornecem os números aleatórios que a outra parte deve assinar
e devolver para provar sua identidade; e
??Na terceira fase, são verificadas as identidades.
??Quando o método de autenticação escolhido for o de chave compartilhada, a
chave será derivada de um segredo, sendo utilizada uma função de hash
nessa chave derivada que será trocada entre as duas entidades, sendo esta a
informação de autenticação. Se o método de autenticação escolhido for o de
Assinatura Digital, será necessário o uso de Certificado Digital que contenha
a Assinatura das entidades a serem autenticadas. A Figura 12 mostra como é
processada a assinatura e a certificação digital.
17
Figura 12 – Assinatura e Certificação Digital
??Modo Agressivo (Aggressive Mode): como o Modo Agressivo tem apenas
uma fase, ele tem menor overhead, fazendo com que seja mais rápido do que
o Modo Principal. Mas o modo mais utilizado e mais seguro é o Modo
Principal, principalmente porque no Modo Agressivo as informações de
autenticação não são criptografadas. A Figura 13 apresenta o Modo
Agressivo.
Figura 13 – Modo Agressivo
??Modo Rápido (Quick Mode): executa a segunda fase da troca, ou seja, realiza
a negociação de um SA para a comunicação de uso geral.
?? Inicialmente, o emissor envia uma mensagem com hash, um nonce, os
identificadores de cada entidade, além dos parâmetros da proposta de
SA;
??Logo após, o receptor responde com uma mensagem parecida,
acrescentando seu próprio nonce e hash para confirmação; e
??Finalmente, o emissor responde com um hash dos dois nonces,
completando, assim, a troca e estabelecendo o SA IPSec.
18
?? Para evitar que um intruso que capturou a chave utilizada na fase 1 desfaça a
criptografia, a comunicação da fase 2 pode se utilizar da técnica Perfect
Forward Secrecy, onde a chave será derivada por meio do algoritmo de
Diffe- Helman. Este procedimento reduz o desempenho, mas aumenta a
segurança da comunicação. A Figura 14 apresenta o Modo Rápido.
Figura 14 – Modo Rápido
O IKE possui também um outro modo chamado de Modo Novo (New Group
Mode), no qual provê a primeira fase de negociação e é utilizado para definir um
mecanismo de grupos privados para a troca do tipo Diffie-Hellman.
Para o estabelecimento de uma conexão IKE segura, devemos selecionar: o
algoritmo de criptografia para proteção dos dados, um algoritmo de hash para assinatura
digital, um método de autenticação para assinar o hash, informação sobre o qual grupo a
troca Diffie-Hellman deve ser feita e especificar a função pseudo-randômica para fazer o
hash de certos valores durante a troca de chaves, para a verificação.
Depois da negociação do SA, as entidades estão prontas para se comunicar em
uma rede pública, de modo seguro.
3. USO DO IPSEC EM REDES PRIVADAS VIRTUAIS
Uma Rede Privada Virtual ou VPN (Virtual Private Network ) é uma rede construída
sobre a infra-estrutura de uma rede pública, normalmente a Internet, a qual garante o
transporte de informações de forma segura em redes abertas, aliado a algumas
características intrínsecas das redes públicas, tais como a escalabilidade, a cobertura e a
acessibilidade. Uma VPN permite a interligação de duas ou mais redes, como, por
exemplo, a interligação da matriz de uma empresa e suas filiais. Uma conexão VPN
19
entre duas redes realiza-se através de um túnel virtual, como aquele propiciado com a
utilização do IPSec e já abordado neste trabalho.
Além do IPSec, outros protocolos, que não fazem parte do escopo deste trabalho,
podem ser empregados com a mesma finalidade, conforme a seguir:
?? L2TP – Layer 2 Tunneling Protocol;
?? L2F – Layer 2 Forwarding; e
?? PPTP – Point-to-Pont Tunneling Protocol.
Uma das grandes vantagens decorrentes do uso das VPNs, e um dos fatores mais
relevantes ao se projetar uma VPN, é a redução de custos com comunicações
corporativas, uma vez que elimina a necessidade de links dedicados de longa distância,
os quais podem ser substituídos pela Internet. Outros fatores podem ser citados,
conforme a seguir:
?? Facilidade de instalação;
?? Baixo custo de implantação, sendo este o custo inicial de ativação;
?? Redução do custo de comunicações (telefones e linhas privativas), sendo este
o custo recorrente mensal;
?? Segurança, conforme os padrões que permitem autenticação, criptografia e
administração das chaves;
?? Suporte aos protocolos existentes (TCP/IP, IPX/SPX e NetBEUI);
?? Integração entre redes distantes, garantindo a flexibilidade para conectar
diversas redes; e
?? Transparência para os usuários.
Para o estabelecimento de uma conexão VPN com base em IPSec, existem
alguns passos básicos:
??O gateway verifica através de uma política de segurança se o host pode ser
conectado, ou seja, se pode ser criado um túnel virtual. Caso esta verificação
seja afirmativa, o gateway inicia a negociação do SA da sessão; e
20
?? Em seguida, o host se comunica por meio de um canal seguro. Além de
todos os itens de segurança aplicados a uma VPN como autenticidade da
conexão e dos usuários, deve se considerar a integridade.
Uma VPN pode ser desenvolvida de duas formas:
?? Conexão de um host em um provedor de acesso a Internet, permitindo a
conexão de um usuário remoto através de um túnel, conforme definido na
Figura 15.
Figura 15 - Host conecta-se em um provedor de Internet
?? Conexão de duas redes através de links dedicados ou discados via Internet,
formando assim um túnel entre elas, conforme definido na Figura 16.
Figura 16 - Duas redes interligadas através de links dedicados ou discados
A segurança é um ponto fundamental na implementação de VPNs. Considerando
que dados privados serão transmitidos pela Internet, que é um meio de transmissão
inseguro, eles devem ser protegidos de forma a não permitir que sejam modificados ou
interceptados. É fundamental, portanto, manter a privacidade e a integridade dos dados
que atravessam uma rede não confiável (por ter acessos de terceiros). Portanto, para o
bom funcionamento de uma VPN, algumas características mínimas devem ser
observadas, conforme descrito a seguir:
21
??Autenticação de usuários – restringir o acesso apenas às pessoas autorizadas;
?? Criptografia de dados – garantir a privacidade da informação, uma vez que
os dados trafegarão por uma rede pública; os dados devem ser criptografados
para que, caso alguém não autorizado tenha acesso aos dados, esta não
consiga reconhecer o conteúdo da mensagem; e
??Gerenciamento de chaves – o uso de chaves deve funcionar como um serviço
compartilhado exclusivamente entre as partes envolvidas.
Conforme abordado na primeira parte deste trabalho, o IPSec permite a
implementação de tais funcionalidades, garantindo, por conseguinte, os níveis de
segurança requeridos por uma VPN.
Existem os seguintes tipos de VPN:
?? VPN de acesso: oferece um acesso remoto à Rede Intranet ou Extranet em
cima de uma infra-estrutura que compartilha as mesmas políticas da rede
privada, conforme mostra a Figura 17. Por intermédio deste tipo de VPN, o
usuário ganha um meio de acesso seguro aos recursos corporativos onde
quer que esteja e quando necessário.
Figura 17 - VPN de Acesso
?? VPN para Intranet: a VPN interliga e integra a rede da sede, os escritórios
remotos e as filiais de uma corporação, em cima de uma infra-estrutura
compartilhada, conforme pode ser visto na Figura 18. Este tipo de VPN
permite que os negócios se utilizem da mesma política da rede privativa.
INTERNET
22
Figura 18 - VPN para Intranet
?? VPN para Extranet: realiza perfis de interação por meio da Internet,
conforme apresentado na Figura 19, com uma infra-estrutura compartilhada
que usa conexões dedicadas: cadeias entre clientes, fornecedores e parceiros,
empresas e sócios, comunidades de interesse comum.
Figura 19 - VPN para Extranet
A VPN baseia-se no conceito de tunelamento, a exemplo do que foi descrito
com o IPSec, a qual inclui criptografia, antes do encapsulamento do pacote
propriamente dito. Em seguida, o protocolo de tunelamento encapsula o pacote com um
novo cabeçalho IP (adicional) que contém as informações de roteamento.
O chamado túnel é o caminho lógico percorrido pelo pacote ao longo da rede
intermediária, conforme mostrado nas Figuras 20 (a) e (b). O processo de tunelamento
envolve as etapas de encapsulamento, de transmissão ao longo da rede intermediária e
de desencapsulamento do pacote.
23
Figura 20 (a) Tunelamento e a passagem do pacote
Figura 20 (b) Tunelamento IPSec.
Apesar do trabalho estar direcionado para o estudo do protocolo IPSec, deve-se
enfatizar que o tunelamento pode ocorrer tanto no nível de enlace quanto no nível de
rede, conforme descrito resumidamente a seguir:
?? Tunelamento no nível de enlace: os protocolos utilizam o quadro como
unidade de troca, encapsulando os pacotes da camada 3 (como o IP e o IPX)
em quadros do tipo PPP (Point-to-Point Protocol), PPTP (Point-to-Point
Tunneling Protocol), da Microsoft, L2F (Layer 2 Forwarding), da Cisco e
L2TP (Layer 2 Tunneling Protocol), da IETF (Internet Engineering Task
Force).
?? Tunelamento no nível de rede: o pacote IP original é encapsulado com um
novo cabeçalho IP, formando um novo pacote IP, antes de enviá- lo através
da rede, conforme já apresentado para o IPSec.
24
4. CONCLUSÃO
O protocolo IPSec fornece o que há de melhor no mercado atual em termos de proteção
do tráfego e rede IP. O IPSec possui um conjunto de padrões utilizados para garantir
uma comunicação segura entre dois computadores, mesmo que as informações estejam
sendo enviadas através de um meio não seguro, como, por exemplo, a Internet.
O IPSec é baseado em um modelo ponto-a-ponto, no qual, dois computadores
para trocarem informações de maneira segura, usando o protocolo, devem “concordar”
com um conjunto comum de regras e definições do IPSec. Com o uso do IPSec e das
tecnologias associadas, os dois computadores são capazes de se autenticar mutuamente
e manter uma comunicação segura, com dados criptografados, permitindo a criação de
VPNs em ambientes expostos e sensíveis aos aspectos de segurança.
5. BIBLIOGRAFIA
[1] TANENBAUM, Andrew S., Redes de Computadores. 4. ed. Rio de Janeiro:
Elsevier, 2003.
[2] FALBRIARD, Claude. Protocolos e aplicações para Redes de Computadores. 2.
ed. São Paulo: Érica, 2002.
[3] PETERSON, Larry L., DAVIE, Bruce S. Computer Networks: A Systems
Approach. 3. ed. San Francisco, CA: Elsevier, 2003.
[4] HUITEMA, Christian. IPv6: The New Internet Protocol. 2. ed. Los Angeles, CA:
Prentice Hall, 1998.
[5] IETF IP Security Protocol Working Group Charter: http://www.ietf.org/html.charters/ipsec-
charter.html.
[6] Internet Engineering Task Force: http://www.ietf.org/.
[7] IETF IPng Information: http://playground.sun.com/pub/ipng/html/ipng-main.html.
[8] Mirror Oficial IETF no Brasil: http://www.ietf.rnp.br/ e ftp://ftp.ietf.rnp.br/.
[9] IPv6 6Bone Site: http://www.6bone.net/.
[10] Br-6Bone - Backbone IPv6 Brasileiro: http://www.6bone.rnp.br/.
25
[11] RFC 2460 - Internet Protocol, Version 6 (IPv6) Specification IPv6: The New
Internet Protocol, by Christian Huitema, 2. ed., 1998, Prentice Hall. ftp://ftp.ietf.rnp.br/rfc/rfc2460.txt.
[12] RFC 2411 - IP Security Document Roadmap ftp://ftp.ietf.rnp.br/rfc/rfc2411.txt.
[13] RFC 2402 - IP Authentication Header ftp://ftp.ietf.rnp.br/rfc/rfc2402.txt.
[14] RFC 2406 - IP Encapsulating Security Payload ftp://ftp.ietf.rnp.br/rfc/rfc2406.txt.
[15] RFC 2403 The Use of HMAC-MD5 within ESP and AH ftp://ftp.ietf.rnp.br/rfc/rfc2403.txt.
[16] RFC 2404 The Use of HMAC-SHA-1 within ESP and AH ftp://ftp.ietf.rnp.br/rfc/rfc2404.txt.
[17] RFC 2405 - ESP DES-CBC ftp://ftp.ietf.rnp.br/rfc/rfc2405.txt.
[18] RFC 2393- IP Payload Compression Protocol ftp://ftp.ietf.rnp.br/rfc/rfc2393.txt.
[19] RFC 2409 - The Internet Key Exchange (IKE) ftp://ftp.ietf.rnp.br/rfc/rfc2409.txt.
[20] RFC 2408 - Internet Security Assoc. and Key Management Protocol (ISAKMP) ftp://ftp.ietf.rnp.br/rfc/rfc2408.txt.
[21] RFC 2412 - The OAKLEY Key Determination Protocol ftp://ftp.ietf.rnp.br/rfc/rfc2412.txt.
[22] STALLINGS, William. Data & Computer Communications. 6. ed., Upper Saddle
River, NJ: Prentice Hall, 2000.