4.2 Elementos

        4.2.1 Authentication Header (AH)

        4.2.2 Encapsulating Security Payload (ESP)

        4.2.3 Internet Key Exchange (IKE)

        4.2.4 IP Compression Protocol (IPComp)

   

Os componentes fundamentais do IPSec são os protocolos AH (Authentication Header),  ESP ( Encapsulating Security Payload) e IKE (Internet Key Exchange) e IPComp (IP Payload Compression Protocol). As funções e os propósitos de  cada elemento será explicado a seguir, assim como trabalham em conjunto para a criação de conexões IPSec.

 

4.2.1 Authentication Header (AH)

 

Esse protocolo IPSec proporciona a proteção da integridade dos cabeçalhos de pacotes e dos dados, pode também prover a proteção na retransmissão de pacotes e no acesso, mas o AH não realiza nenhuma criptografia sobre os pacotes. 

Nos primórdios da tecnologia IPSec, o protocolo ESP fornecia apenas a criptografia aos dados e, então o ESP e Ah eram utilizados conjuntamente. No entanto, atualmente, o foram adicionadas funcionalidades de autenticação no  protocolo ESP e, portanto o AH perdeu importância, e algumas configurações não o utilizam mais. Porém, ele ainda está presente, pois existem porções de pacotes em que o AH pode autenticar que o ESP não consegue.

 

4.2.1.1 Modos de Implementação

Existem dois modos de implementação do AH:

Independentemente do modo utilizado, a proteção a integridade do pacote é garantida. O modo túnel é utilizado, principalmente, na arquitetura entre gateways, porque o endereço IP de origem ou de destino deve ser alterado para o endereço do gateway. O  modo transporte geralmente é utilizado em arquiteturas de host-to-host, onde não se pode alterar ou criar novo endereço IP, pois acarretaria a perda do pacote durante a transmissão. Não há como proteger integridade total do IP, já que alguns campos do IP são dinâmicos justamente para que o pacote seja transmitido corretamente.

 

Figura 4.3 AH modo transporte (retirada  referência 4)

 

Figura 4.4 AH modo túnel (retirada referência 4)

 

A proteção de integridade é feita pela utilização de algoritmos específicos. Tais algoritmos são responsáveis por criar um código baseado na mensagem transmitida e adicionar tal código ao pacote a ser enviado, baseiam-se também numa chave secreta compartilhada pelo destinatário e receptor, esses são os algoritmos de códigos chaveados. Tais algoritmos são conhecidos como Message Authentication Code (MAC). O algoritmo utilizado pelo IPSec é o HMAC, responsável pela criação e inserção de dois códigos chaveados ao pacote.

O código do pacote é gerado pelo emissor e o receptor pode regenar tal código através da chave, se os códigos coincidirem, não ocorreu corrupção do pacote, se forem diferentes alguma mudança durante a transmissão ocorreu no pacote.

Como o IP possui campos dinâmicos o código recalculado pelo receptor seria diferente do emitido, implicando sempre em detecção de corrupção de pacotes. Para contornar tal fato, o código gerado pelo algoritmo de autenticação não se baseia nos campos dinâmicos do IP, o que assegura que o receptor avaliará a integridade do pacote corretamente. O AH não é utilizado juntamente com NAT (Network Address Translation), muda o endereço privado do emissor para um endereço público da rede), devido à mudança de endereço realizada pelo NAT, o código gerado pelo algoritmo de autenticação ao ser recalculado pelo receptor será sempre diferente do gerado no emissor, o que implicaria em falha na integridade do pacote.

 

O protocolo AH adiciona um cabeçalho a cada pacote e é composto por 6 campos:

  1. Next Header (Próximo cabeçalho): identifica o próximo protocolo a encapsular o pacote. No modo túnel protocolo IP, numa configuração IP-in-IP. No modo transporte, identifica o TCP ou UDP, protocolos da camada de transporte;
  2. Payload Lenght (Tamanho do dado): indica o tamanho útil do pacote;
  3. Reserved (Reservado): reservado para uso futuro;
  4. Security Parameters Index (SPI- Índice do Parâmetro de Segurança): permite ao receptor saber quais algoritmos e protocolos IPSec foram aplicados ao pacote;
  5. Sequence Number (Número de Seqüência): responsável pela numeração de cada pacote por um número dentro de uma sliding window, essa é uma forma de proteção contra ataques feitos com pacotes repetitivos (teriam o mesmo numero de um dos pacotes recebidos e seriam descartados)  ou velhos (a numeração deles estará fora da sliding window e serão descartados);
  6. Authentication Information (Dados de Autenticação):contém a saída do algoritmo MAC, que pode ser recalculada pelo receptor e comparada a tal campo para saber se o pacote sofreu modificações durante a transmissão.

 

Figura 4.5 Cabeçalho AH (retirada da referência 9)

 

Figura 4.6 Exemplo de funcionamento AH no modo de transporte (retirada referência 4)

 

4.2.2 Encapsulating Security Payload (ESP)

 

 O ESP é um elementos dos mecanismos de segurança do IPSec. Em sua primeira versão, possibilitava apenas a criptografia dos dados do pacote. Hoje tornou-se mais flexível possibilitando, além da criptografia dos dados, a proteção da integridade dos pacotes, serviço antes restritos aos AHs. No entanto, tal proteção não é compatível com todos os cabeçalhos IP.

Logo, ESP é utilizado de diferentes formas: provendo criptografia e proteção a integridade dos pacotes, provendo somente a criptografia dos pacotes ou somente a proteção de integridade.

O ESP apresenta dois modos:

Figura 4.7 ESP modo túnel (retirada referência 4)

 

 

Figura 4.8 ESP modo transporte (retirada referência 4)

 

A criptografia realizada pelo ESP é simétrica (explicação na sessão de segurança), o que implica a utilização de uma mesma chave para criptografar ou descriptografar pacotes. Quando um extremo de uma VPN baseada em IPSec, criptografa os pacotes utilizando ESP, ele divide o pacote em blocos, e aplica o algoritmo de criptografia a cada bloco, o outro extremo VPN utilizando a mesma chave de criptografia retira a proteção e pode utilizar os dados do pacote. Os principais algoritmos usados pelo ESP são AES-Cipher Block Chaining (AES-CBC), AES Counter Mode (AES-CTR), e  Triple DES (3DES), tais algoritmos realizam a criptografia dividindo o pacote em blocos, sendo chamados de block cipher algorithms.

 

Cada ESP adiciona ao pacote um cabeçalho e insere um trailer em cada pacote.

O cabeçalho ESP é composto por dois campos:

O ESP trailer é composto por 3 campos:

 

Figura 4.9 Esquema dos campos ESP (retirada referência 9)

 

O vetor de inicialização (Initialization Vector- IV) é utilizado para fazer a criptografia dos dados. O campo Authentication Information é semelhante ao campo do AH, no entanto não inclui a maioria do cabeçalho IP nos cálculos.

 

Figura 4.10 Possibilidades de utilização de algoritmos dos protocolos AH e ESP

4.2.3 Internet Key Exchange (IKE)

 

Componente do IPSec responsável pela autenticação mútua, estabilização e manutenção das Security Association (SA), um termo genérico para uma série de valores que definem as características do IPSec e as proteções aplicadas em uma conexão. As SAs podem ser configuradas pelos usuários, no entanto para uma grande rede VPN tal processo é inviável.

O protocolo IKE é utilizado para estabelecer um mecanismo seguro para conexões protegidas por IPSec. O IKE permite diversos tipos de mudanças para criar os valores que definem o IPSec (SA), informações relativas ao erro e o estado da transferência, além de definir novos grupos Diffie-Hellman (algoritmo de criptografia assimétrica). Existem diferentes tipos de trocas/mudanças realizadas pelo IKE que serão a seguir explicadas.

 

4.2.3.1 Primeira Fase de Troca (Phase One Exchange)

 

A principal finalidade dessa primeira troca é permitir que os pontos finais consigam definir os parâmetros SA para estabelecer um canal seguro para futuramente estabelecer uma conexão IPSec. Tal canal é chamado IKE SA. Esse canal tem a função de criar criptografia e autenticação bidirecional para as outras trocas IKE e passagem de pacotes IPSec.

O IKE SA pode ser realizado de duas formas:

 

 

A vantagem de tais modos é que não dependem que os clientes negociem utilizando IP fixos, o que é muito interessante em uma rede como a VPN.

 

4.2.3.2 Segunda Fase de Troca (Phase Two Exchange)

 

Com o canal seguro criado pela primeira fase, os pontos finais IPSec podem negociar os parâmetros da conexão IPSec, os IPSec SA que ao contrário do IKE SA são unidirecionais, o que significa a existência de dois conjuntos de parâmetros numa conexão IPSec. O par de IPSec SA é negociado através do modo rápido (quick mode), baseado na troca de três mensagens, é bom lembrar que o quick mode já está protegido pelos IKE SA, criados na primeira fase.

O modo rápido troca três mensagens. A primeira mensagem é enviada pelo extremo IPSec A ao extremo IPSec B contém as chaves, números de identificação (utilizados uma única vez para evitar ataques por mensagens repetitivas), e uma sugestão de parâmetros de segurança IPSec. A segunda mensagem enviada por B contém o mesmo que a mensagem anterior com a diferença de enviar os parâmetros já selecionados e uma porção para autenticação. A terceira mensagem enviada por A contém uma porção para autenticação.

Todos os parâmetros ativos de proteção SA são armazenados num banco de dados denominado SAD (Security Association Database) que possui informações diversas sobre a conexão IPSec (endereço IP do emissor e receptor, os tipos de algoritmos de proteção de integridade e de criptografia, as chaves secretas de criptografia e o tamanho delas, os números de seqüência entre outras informações úteis numa conexão IPSec). O banco de dados só pode ser acessado pela combinação de três parâmetros: o tipo de protocolo de segurança IPSec utilizado (AH, ESP), o IP de destino e o SPI (informa os algoritmos utilizados pelos protocolos de segurança IPSec). Assim, quando um extremo de conexão IPSec deseja enviar um pacote, deve acessar o bando de dados SAD para saber as medidas de segurança adotadas na conexão.

O SAD não informa o tipo de tráfego e nem as circunstâncias que o pacote deve ser protegido, essas informações são fornecidas pelo SPD (Security Police Database), o banco de dados classifica o tráfego como protegido (devem ser aplicadas as medidas de segurança IPSec), bypass (não são necessárias as medidas de segurança IPSec) e proibido (não permitido, deve ser descartado).

A grande maioria das implementações possuem uma interface que permite a configuração do banco de dado SPD, o SAD tem sua inicialização feita pelo IKE, durante a criação do IKE SA e IPSec SA. Ambos bancos de dados devem ser protegidos permitindo apenas o acesso do administrador geral da rede privada.

 

4.2.3.3 Troca Informativa e Grupos

 

A função da troca informativa e fornecer informações sobre o status e erros das mensagens, uma forma de garantir que mensagens não autorizadas penetrem na conexão IPSec. E a troca de grupos é relativa à criação adicional de um grupo Diffie-Hellman, tais grupos são responsáveis por gerarem uma nova criptografia, definidos o grupo adicional a ser criado os extremos IPSec começam a reconfigurar os parâmetros através de um IKE SA. Geralmente, como não é trivial a criação de um grupo adicional a troca na é realizada. A troca de grupos foi excluída do IKE.

Tanto o IKE SA e o IPSec SA têm um tempo de vida útil, ao se aproximar desse tempo os extremos IPSec devem criar novos parâmetros, criando novos IKE E IPSec SAs para a conexão. Geralmente, o tempo de vida útil não é maior que um dia.

Existe, atualmente, um método de criação de ambos IPSec e IKE SAs através de apenas quatro mensagens. O primeiro par de mensagens os extremos da conexão estabelecem os parâmetros de segurança e enviam as chaves produzidas pro Diffie-Hellman. O segundo par de mensagens autentica cada extremo e estabelece os parâmetros IPSecc, criando o IPSec SA.

O IKE permite o IPSec trabalhar com o EAP (Extensible Authentication Protocol) que permite a utilização de métodos de autenticação como RADIUS, utilizado também nos túneis L2TP.

O IKE também possui um banco de dados com as identidades validas para cada usuário e os algoritmos de autenticação válidos de cada usuário, tal banco de dados recebe o nome de PAD (Peer Authorization Database).

 

Figura 4.11 Resumo das fases de negociação IKE em uma conexão IPSec Gateway-gateway

(retirada do pdf TechNote: VPN Configuration Case Studies)

4.2.4 IP Payload Compression Protocol (IPComp)

 

A compressão de dados com poucas perdas é utilizada para diminuir o tamanho do pacote e transmiti-lo em uma forma menor com a mesma informação, porém utilizando menos banda do meio.

O IPSec possui um protocolo que realiza a compressão dos dados, tal protocolo é o IPComp. Como os pacotes do IPSec são criptografados, para evitar perda de informações a compressão ocorre antes da criptografia, que é geralmente feita pelo ESP.

Alguns pacotes já apresentam compressão de dados, não sendo necessária a utilização do IPComp. Geralmente, o IPComp só é utilizado quando representa uma diminuição significativa no tamanho do pacote, pios devido ao tamanho do cabeçalho criado pelo IPComp, a compressão pode ser ineficiente ocasionando um overhead de cabeçalho. Portanto, se o IPComp realizar a compressão e detectar que não é uma grande vantagem, ele manda o pacote original economizando tempo e processamento do destinatário.

O IPComp pode ser configurado para promover a compressão em tráfegos unidirecionais ou bidirecionais, além de permitir a escolha de diversos algoritmos de compressão. Sendo O IPComp uma forma simples e efetiva de compressão de dados IPSec.

Cada pacote comprimido ganha um cabeçalho IPComp que possui três campos:

 

 

Voltar para Seção 4.IPSec