IP Security Protocol
O IPSec é um protocolo de camada 3 projetado para suprir a falta de segurança de informações trafegando em rede pública.
Basicamente o IPSec protege os pacotes IP de dados privados, encapsulando em outros pacotes IP para serem transportados.
Há duas maneiras do IPSec ser implementado:
modo túnel e
modo transporte, sendo este último o modo nativo.
IPSec Modo Transporte. Retirado de Redes Virtuais Privadas – Pedro Celestino
IPSec Modo Túnel. Retirado de Redes Virtuais Privadas – Pedro Celestino
A diferença entre os modos está no encapsulamento.
O modo transporte encapsula somente os dados, enquanto o modo túnel encapsula os dados e o cabeçalho.
Sendo assim, o modo transporte não garante a confiabilidade dos dados durante o envio.
Por isso é utilizado em dispositivos que já possuem o protocolo IPSec incorporados em sua pilha TCP/IP.
Lembrando dos
serviços de segurança necessários para a construição de uma VPN,
temos que um protocolo para a implementação de uma rede privada virtual obrigatoriamente necessita oferecer
um subconjunto dos serviços listados. O IPSec fornece os seguintes serviços de segurança:
autenticação, controle de acesso(AAA),
confidencialidade e integridade dos dados. Os habilitadores das tecnologias de segurança utilizados pelo
IPSec são: CHAP(Challenge Handshake Authentication Protocol), RADIUS(Remote Authentication Dial-in User Service)
e a Encriptação de Dados e dos Certificados Digitais.
**Essa parte foi fundamentalmente resumida de Redes Virtuais Privadas – Pedro Celestino
Um dos conceitos fundamentais do IPSec é a
Associação de Segurança(SA – Security Association).
Esse conceito é responsável pela segurança do 'caminho do pacote'.
Essa segurança é garantida pela utilização dos seguintes protocolos:
AH(Authentication Header),
ESP(Encapsulating Security Payload) ou ambos(para utilizar ambos, terá mais de uma associação de segurança).
Uma associação de segurança é identificada por três parâmetros:
SPI(Security Parameter Index),
endereço IP de destino e o indentificador do protocolo(AH ou ESP).Um detalhe importante é que uma SA só pode ser utilizada de forma unidirecional.
Portanto, para uma comunicação mútua, será preciso 2 SA's, sendo uma em cada sentido.
- SPI é um número(index) que identifica a associação de segurança(SA), sendo definido antes de estabelecer
essa associação. Sendo assim, todos os membros dessa associação devem saber qual é o SPI para usá-lo na comunicação.
- Endereço IP de destino pode ser unicast(1 receptor), multicast(múltiplos receptores) ou broadcast(toda a rede).
Portanto, o IPSec assume como unicast, replicando o fluxo de dados tantas vezes quantos forem os receptores.
Protocolos de Segurança
Authentication Header(AH)
Este protocolo garante a autenticidade, integridade e anti-replay do pacote,
podendo ser utilizado no modo transporte ou túnel.
IPSec em modo túnel com protocolo AH
- Próximo cabeçalho: identifica o protocolo do próximo cabeçalho;
- Tamanho: Tamanho do header;
- SPI: Identificação do SA(citado acima);
- Sequence Number: enumera os pacotes de uma determinada SA(importante para o anti-replay);
- Dados de autenticação(hash): campo que contém o ICV(Integrity Check Value) para o pacote.
Isto é calculado seguindo o algoritmo de autenticação usado, definido pelo SA.
Este protocolo previne múltiplos ataques. Entre eles estão:
- Replay: O interceptador não consegue replicar e reenviar o pacote, pois o campo Sequence Number numera os
pacotes que trafegam dentro de uma SA.
- Spoofing: O mecanismo de autenticação do AH não permite que o atacante se passe por um emissor confiável.
- Connection hijacking: Quando o interceptador invade o contexto de uma conexão e participa dela. O mecanismo
de autenticação do AH também não permite esse ataque.
Note que o AH garante a autenticidade e a integridade do pacote, porém não a confidencialidade.
Encapsulating Security Payload (ESP)
Este protocolo garante a confidencialidade, autenticidade, anti-replay e a integridade do pacote, de modo que só os
participantes da conexão terão acesso ao conteúdo do pacote.
IPSec em modo túnel com protocolo ESP
- SPI: Identificação do SA(citado acima);
- Sequence Number: enumera os pacotes de uma determinada SA(importante para o anti-replay);
- Padding: 0 a 255 bytes usado por algoritmos de criptografia, definidos pelo SA, para reordenar o conteúdo dos blocos.
- Tamanho do Padding: Tamanho do padding;
- Próximo cabeçalho: identifica o protocolo do próximo cabeçalho;
- Dados de autenticação(hash): campo que contém o ICV(Integrity Check Value) para o pacote. Isto é calculado
seguindo o algoritmo de autenticação usado, definido pelo SA.
Um detalhe interessante neste protocolo é que o ESP Trailer é criptografado
junto ao
Protocolo passageiro.
Este protocolo imuniza o pacote dos seguintes ataques:
- Replay: com a utilização do campo Sequence Number, do mesmo jeito do AH;
- Interceptação por particionamento de pacotes: Isso acontece quando o atacante consegue particionar pacotes,
formando um novo que pode ser aceito por membros da conexão. A autenticação previne esse ataque;
- Sniffer: Quando interceptador obtém pacotes trafegando na rede. O uso da criptografia não permite esse tipo de ataque.
Gerenciamento de chaves e VPN utilizando IPSec
Dependendo do número de hosts conectados, o gerenciamento de chaves pode ser manual ou automático. O protocolo
padrão para gerenciamento de chaves utilizado pelo IPSec é o
Internet Key Exchange(IKE).
O IKE opera em duas fases:
- Na fase 1, em meio inseguro, é estabelecido um canal seguro para realizar as operações do
ISAKMP(Internet Security Association and Key Management Protocol). É executada uma vez para várias fases 2.
- A fase 2 ocorre no canal seguro estabelecido na fase 1 e tem como objetivo definir as configurações da SA
que irá proteger a conexão, tais como algoritmo de criptografia(DES, 3DES, AES), algoritmo de autenticação(MD5, SHA-1)
e tempo de vida do SA(até 28.000 segundos). Esse processo pode ocorrer de tempo em tempo, conforme a vida útil do SA expira.
Para estabelecer uma comunicação por VPN utilizando IPSec são necessárias 4 fases:
- A primeira é definir o caminho para o IKE;
- A segunda é realizar a fase 1 do IKE, definindo um túnel seguro para a fase 2;
- A terceira é realizar a fase 2 do IKE, definindo os parâmetros para a associação de segurança(SA);
- O último passo é a transferência de dados, já utilizando o túnel seguro.
Por exemplo, após a SA ser estabelecida, pode-se enviar um pacote utilizando o protocolo IPSec no modo túnel utilizando o protocolo ESP.
O receptor irá receber o pacote, e com as
chaves simétricas definidas na fase 2, irá verificar a autenticidade
e descriptografar a mensagem, ciente que só ele quem recebeu e descriptografou o pacote.
O túnel se encerra quando é finalizado manualmente ou o tempo de vida acaba. O encerramento pode ser
configurado também a partir da ociosidade do meio ou a partir de uma certa quantidade de dados transmitidos.