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.
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:
Modo Túnel: o AH cria um novo cabeçalho IP para cada pacote;
Modo Transporte: não ocorre a criação de um novo cabeçalho IP;
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:
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;
Payload Lenght (Tamanho do dado): indica o tamanho útil do pacote;
Reserved (Reservado): reservado para uso futuro;
Security Parameters Index (SPI- Índice do Parâmetro de Segurança): permite ao receptor saber quais algoritmos e protocolos IPSec foram aplicados ao pacote;
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);
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)
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:
Túnel: é o modo mais utilizado nas implementações com ESP. Cria-se um novo cabeçalho IP com os endereços de origem e destino do túnel-ESP (os endereços finais do túnel). Pode-se criptografar e/ou proteger a integridade dos dados do pacote, bem como o cabeçalho IP verdadeiro. A criptografia protege os dados de serem utilizados por terceiros e os endereços de destino e fonte do pacote o cabeçalho IP real. Tal modo pode ser utilizado em todas as arquiteturas de VPN;
Figura 4.7 ESP modo túnel (retirada referência 4)
Transporte: não se cria um novo cabeçalho IP, utiliza-se o antigo. A criptografia e a proteção à integridade não são feitas no cabeçalho IP. Geralmente, utiliza-se tal modo em topologias host-to-host.
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:
SPI: possui a mesma função do campo SPI do AH, é um indicador de conexão que informa ao destinatário os protocolos IPSec utilizados e os algoritmos utilizados;
Sequence Number: idêntico ao número de seqüência do AH, sendo uma forma de proteção contra ataques de pacotes duplicados ou antigos.
O ESP trailer é composto por 3 campos:
Padding: é um campo opcional. Consiste na adição bits aos dados, tais bits adicionais são descartados posteriormente pelo receptor. Como a criptografia é feita em blocos, as vezes é útil a adição de bits aos dados para que os blocos de criptografia possuam o mesmo tamanho, outras vezes é necessário padding para assegurar que o trailer seja múltiplo de 4 bits;
Padding Lenght: é obrigatório, indica o tamanho do Padding;
Next Header: idêntico ao do AH.
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
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:
Modo Principal (Main Mode): negocia a criação da conexão através da troca de três pares de mensagem. O primeiro par é relativo as formas de criptografia e autenticação (escolha dos algoritmos) e criação de chaves assimétricas. O segundo par de mensagens é responsável pelas trocas entre os pontos finais das chaves criadas, da assinatura digital ou da chave pública, de acordo com os parâmetros definidos. O último par de mensagens é relativo a autenticação de cada ponto final da rede em relação ao outro, através de assinatura digital ou chaves.
Modo Agressivo(Agressive Mode): é uma alternativa mais rápida ao modo principal, já que negocia a criação IKE SA através de três mensagens, ao invés de três pares de mensagens. A primeira mensagem de um dos extremos manda os parâmetros de segurança, juntamente com sua porção da chave criada por Diffie-Hellman e sua identidade. O outro extremo envia sua parte da chave, parâmetros de segurança e sua autenticação (geralmente por assinatura digital). Na última mensagem o primeiro extremo envia sua autenticação ao outro. Com essas três mensagens a conexão IKE SA está criada. Se ganha em velocidade, mas perde-se em segurança, por exemplo, as chaves podem ser interceptadas e forjadas. Tal método atualmente foi excluído do IKE.
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:
Next Header: similar ao utilizado pelo ESP e AH;
Reserved: reservado para uso futuro;
Compression Parameter Index (CPI): similar ao SPI do ESP e AH, indica o algoritmo utilizado na compressão.