IP SECURITY (IPSEC)
Fontes: Internet Protocol Journal March 2000 Volume 3 Number 1
                FCCN - Fundação para a Computação Científica Nacional de Portugal
Andrey Vedana Andreoli
Redes de Computadores II
1. Problemas do IP hoje:
Atualmente o Internet Protocol (IP) possui diversas vulnerabilidades ainda muito exploradas, permitindo por exemplo, a monitoração  não autorizada de pacotes de dados trocados entre dois hosts, ou também a exploração de aplicações cuja autenticação é feita baseada no endereço ip, através de ip spoofing.
Devido a esses e diversos outros problemas que o protocolo possui, acaba sendo necessário que sejam desenvolvidos mecanismos de segurança a nível de aplicação para cada serviço que tem por objetivo sere seguro.  Como exemplos disso podemos citar o Pretty Good Privacy(PGP), que é um mecanismo de segurança utilizado para o serviço de mail.  Esses e outros fatos têm distanciado as funcionalidades oferecidas pelo protocolo e as necessidades atuais dos serviços de redes.

2. Qual a solução?
A solução para esses problemas e deficiências, chama-se IpSecurity ou simplesmente IPSEC, criado por um grupo de trabalho da IETF.
Sua proposta é implementar segurança no próprio nível IP, fazendo com que não seja mais necessário criar mecanismos de segurança a nível de aplicativos ou serviços.  Assim, todos os serviços existentes em uma rede estariam seguros.  Com essa segurança, esta solução pode ser útil não só para LANS, mas para  WANs públicas e por toda a Internet.
Resumidamente, pode-se dizer que todos os dados que trafegam em uma rede, sejam eles aplicações distribuídas, login remotos, modelos cliente/servidor, e-mail, ftp, http podem estar finalmente seguros, sem precisar de mais nenhum mecanismo adicional de proteção.  Assim, resta apenas proteger os equipamentos de uma LAN contra acessos não autorizados, com a utilização de firewalls, para alcançar  um nível de proteção satisfatório.
Como principais benefícios dessa solução, além do que já foi citado acima, é que ele fica abaixo da camada de transporte (TCP, UDP), tornando-se totalmente transparente para as aplicações que dá suporte, sem exigir nenhuma mudança no software dos servidores se o IPSEC for implementado em um firewall ou roteador.  Cabe citar que sendo implementado em um firewall ou roteador, o nível de segurança que pode ser obtido é extremamente alto, sem contar que tudo isso fica totalmente transparente para os usuários finais.
A única mudança necessária é que o IPSEC faça parte do código que implementa as camadas de rede em todas as plataformas (NT, Unix, Macintosh) e os sistemas operacionais que não fizerem isto não estarão aptos a utilizarem essa tipo de solução.
Outra característica do IPSEC é que trata-se de uma solução que pode ser utilizada tanto no protocolo Ipv4, ainda hoje mais utilizado, como em Ipv6, que implementa algumas das funcionalidades ditas aqui originalmente.

3. Características do IPSEC:
Para oferecer a segurança descrita até então, o IPSEC integra mecanismos de autenticação, gestão e distribuição de chaves.  Os mecanismos de autenticação utilizados são os cabeçalhos de extensão específicos do protocolo Ipv6, que são o cabeçalho de Autenticação (AH - Authentication Header) e o cabeçalho de encapsulamento de dados de segurança (ESP - Encapsulatins Security Payload Header).  Além dessas duas estruturas, o IPSEc utiliza o conceito de associação de segurança (SPI), que permite a comunicação entre duas ou mais entidades comunicantes e descreve todos os mecanismos de segurança a serem utilizados, por exemplo: algoritmo e modo de autenticação a aplicar no cabeçalho de autenticação, chaves usadas no algoritmos de autenticação e cifragem, tempo de vida da chave, tempo de vida da associação de segurança, nível de sensibilidade dos dados protegidos, entre outros.
Assim, quando uma entidade deseja estabelecer uma associação de segurança, esta utiliza um SPI e um endereço de destino (da entidade na qual se deseja fazer a comunicação segura) e envia essas informações à entidade com que se quer estabelecer o canal seguro.  Dessa maneira, para cada sessão de comunicação autenticada serão necessários dois SPIs, ou seja, um para cada sentido, devido ao fato de que a associação de segurança ser unidirecional.
Os algoritmos de cifra ou autenticação utilizados não possuem apenas uma estrutura específica.  Essa flexibilidade permite que sejam utilizadas sempre as normas mais recentes disponíveis, incrementando ainda mais a segurança.  Por default, os algoritmos utilizados são HMAC-MDR e HMAC-SHA-1 para autenticação e DESC-CBC para a cifra usada no cabeçalho.
É importante destacar que estes cabeçalhos utilizados  são cabeçalhos de extensão que irão ser adicionados a um cabeçalho IP e assim, os encaminhadores deste pacote poderão interpretá-lo como se isso fosse parte integrante dos dados, permitindo que equipamentos que conheçam IP e desconhecem IPSEC possam ser utilizados normalmente.

4. Componentes principais:
4.1 Cabeçalho de autenticação (AH)
Tem por funcionalidade validar a identidade de entidades comunicantes, identificando o emissor e destino corretos para certificar se o emissor é realmente quem diz ser.  Pelo motivo que este cabeçalho é apenas adicionado ao fonte do datagrama IP, por si só, este cabeçalho não oferece segurança contra ataques de análise de tráfego ou confidencialidade, sendo que para isso o é feita uma ação juntamente com o cabeçalho de encapsulamento para tratar isso.
 

Formato do cabeçalho de autenticação (AH)

 

4.2 Cabeçalho de Encapsulamento de Dados de Segurança (ESP)
Tem por finalidade fornecer integridade e confidencialidade aos datagramas IP através da cifra dos dados contidos no datagrama.  Existem dois motos de utilização do ESP, citados abaixo:
Modo de transporte: Proporciona proteção principalmente aos protocolos da camada superior.  É utilizado na maioria das vezes em comunicações entre cliente e servidor.  Neste modo, a informação do protocolo da camada de transporte é cifrada, adicionando-lhe um novo cabeçalho IP não cifrado, pelo que se torna vantajogo em redes pequenas, onde os servidores e os nodos existentes implementam IPSEC;

Modo de Túnel: Proporciona proteção ao pacote IP.  Para isso, depois da adição dos campos de ESP ao pacote IP, todo o pacote é tratado como o módulo de dados de um novo pacote IP.  Deste modo, pode ser usado para enviar dados cifrados através de um túnel, o que permite enviar dados independentemente da infraestrutura utilizada.  Um exemplo de utilização seria o envio de pacotes IP através de canais virtuais criados numa rede IP pública, como Internet e assim pode ser dada segurança a um grupo de nodos que não implementam IPSEC;
 

Formato simplificado do cabeçalho de encapsulamento (ESP)

 
Ao lado, pode-se observar os componentes de um pacote original (a), pacote no modo de transporte (b) e um pacote no modo de túnel (c);

4.3 Mecanismos de Gestão de Chaves
Este mecanismo responsabiliza-se pela criação, eliminação e alteração das chaves para autenticação e validação de informações.  Embora o IPSEC não integre um mecanismo de gestão de chaves, a IETF definiu como norma de gestão o protocolo híbrido ISAKMP/Oakley, que também é denominado de IKE (Internet Key Exchange), que se encontra baseado em diversos outros documentos.  O IKE utiliza a porta 500 UDP para interagir com os demais mecanismos de segurança IPSEC através de associações de segurança para diversos protocolos e associações de segurança, permitindo uma utilização transparente para associar diferentes mecanismos de segurança sem envolver as entidades participantes na comunicação.

5. Links para consulta:
http://ietf.org/html.charters/ipsec-charter.html
Listas de discussão, descrição do grupo de trabalho e diversos documentos sobre assuntos ligados a IPSEC (Internet Drafts e RFCs);
http://web.mit.edu/tytso/www/ipsec/index.html
Listas dos fabricantes e o estado de suas implementações em relação ao IPSEC e outras informações relevantes;