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 Transporte. Retirado de Redes Virtuais Privadas – Pedro Celestino

IPSec Modo Túnel. 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
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
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.