Universidade Estadual de Campinas

Instituto de Computação

Mestrado Profissional

 

 

 

 

 

MP202 – Gerência da Segurança da Informação

 

Prof. Ricardo Dahab

 

Protocolo IP Security

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Campinas, 6 de Dezembro de 2003

Alexandre Hogata

RA: 881516

Omar Hajime Fidelis

RA: 962999


Introdução. 3

1.     Por que o IPSec foi desenvolvido ?. 3

2.     O que é IPSec ?. 4

Arquitetura do Protocolo IPSec. 6

1.     Estrutura do IPSec – RFC2401. 6

2.     Implementações do IPSec. 6

3.     Associação de Segurança. 7

4.     Cabeçalho de Autenticação (AH) – RFC2402. 9

5.     Cabeçalho de Encapsulamento de Dados de Segurança (ESP) – RFC2406. 10

6.     Mecanismos de Gestão de Chaves. 11

7.     Modo de Transporte. 12

8.     Modo de Túnel 13

Exemplo de uso do IPSec. 14

1.     VPN para Intranet 14

2.     VPN para Acesso Remoto. 14

3.     VPN para Extranet 15

Bibliografia. 17


Introdução

 

O aumento crescente da utilização de sistemas de bases de dados distribuídas, e portanto, uma maior demanda por serviços que empregam trocas de informações pela rede, torna-se evidente a necessidade de implementarem-se mecanismos que possibilitem o processamento e transmissão de dados de modo seguro. A área de estudos a qual preocupa-se com a implementação de tais mecanismos é denominada Segurança em Redes de Comunicação, a qual está voltada para as soluções de comunicações que permitam a transmissão de informação de forma a garantir autenticidade e integridade. A tecnologia mais largamente utilizada para tal fim e que constitui a base para implementação dos mecanismos de segurança aplicados às redes de computadores é a criptografia.

 

1.    Por que o IPSec foi desenvolvido ?

 

O relatório anual do Computer Emergency Response Team, uma entidade pertencente ao governo Norte Americano, que pesquisa sobre segurança na Internet, listou aproximadamente 2500 (dois mil e quinhentos) acidentes com segurança os quais atingiram 12.000 (doze mil) ambientes em 1995. Os ataques relatados de conseqüências mais graves incluíam IPspoofing (ataque que se utilizam pacotes IP com endereços falsos), eavesdropping (análise não autorizada dos pacotes que trafegam na rede) e packet sniffing (ataque no qual um intruso pode diretamente ler as informações transmitidas, incluindo logon e conteúdo de base de dados). Os fatos citados deixam clara a necessidade da implementação de mecanismos de segurança eficazes capazes de cobrir áreas como: proteção da infra-estrutura contra monitoramento não autorizado e controle de tráfego de rede. Além disso, torna-se necessário defender o tráfego entre usuários finais usando mecanismos de autenticação e criptografia. A segurança implementada para o protocolo IP é apresentada como uma das soluções do problema.

Essa solução chama-se IPSecurity ou simplesmente IPSec, criado por um grupo de trabalho da IETF (Internet Engineering Task Force). 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 nas camadas superiores, permitindo que todos os serviços existentes em uma rede fossem 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.

O principal benefício dessa solução é de ser implementada 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 no caso da implementação do IPSec em firewall ou roteador.  Essa implementação em firewall ou roteador, permite que o nível de segurança obtido seja extremamente alto, ale’m de ser 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). Os sistemas operacionais que não implementarem esse novo protocolo não poderão utilizar essa solução. Outra característica do IPSEC é que se trata de uma solução que pode ser utilizada tanto no protocolo Ipv4, ainda hoje mais utilizada, como em Ipv6, que já implementa algumas das funcionalidades.

 

2.    O que é IPSec ?

 

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 (Authentication Header - AH) e o Cabeçalho de Encapsulamento de Dados de Segurança (Encapsulatins Security Payload Header  - ESP). Além dessas duas estruturas, o IPSec utiliza o conceito de Associação de Segurança (Security Asociation - SA), 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 nos algoritmos de autenticação e criptografia, 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  (Security Parameter Index) 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 criptografia 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. Como padrão, os algoritmos utilizados são HMAC-MD5 e HMAC-SHA-1 para autenticação e DESC-CBC para a criptografia do cabeçalho. É importante destacar que estes cabeçalhos utilizados são de extensão e irão ser adicionados a um cabeçalho IP. 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.


Arquitetura do Protocolo IPSec

 

1.    Estrutura do IPSec – RFC2401

 

O uso de tecnologias de criptografia foi cuidadosamente traçado nas RFC de números 2401 até 2412, que substituíram as de número 1825 à 1829. Os componentes principais são: Cabeçalho de Autenticação (AH), protocolo de Segurança (ESP) e o Gerenciamento de Chaves. O projeto do AH e do ESP foi concebido para ser modular, o que possibilita o uso de novos algoritmos à medida que são desenvolvidos. Para padronizar os parâmetros de uma determinada SA, o IPSec usa o conceito de Domínio de Interpretação (DI), no qual os algoritmos criptográficos, tamanhos de chaves, formato das chaves e etc. são definidos a priori, quando no estabelecimento da conexão segura.

 

2.    Implementações do IPSec

 

As aplicações atuais para o IPSec necessitam de pilhas especiais e à medida que o IPv6 é implementado, essa necessidade diminui. Há várias formas de implementação para o IPSec, desde o servidor, até roteadores ou firewalls. Os mais freqüentes são:

 

ü      Integração do IPSec na implementação nativa do TCP/IP. Isto requer acesso ao código fonte e pode ser implementado tanto em servidores como em gateways de segurança;

ü      Bump-In-The-Stack (BITS), onde o IPSec é implementado sobre a pilha TCP/IP existente, entre a camada IP nativa e o driver de rede local existente. Essa implementação não precisa do código fonte e portanto perfeita para sistemas legados;

ü      Bump-In-The-Wire (BITW), onde se faz uso de dispositivo físico para criptografia (cryptor-processor) em sistemas militares ou comerciais dedicados. Normalmente o dispositivo é endereçável na camada IP e pode ser encontrado em servidores e gateways. Quando implementado em um único servidor, assemelha-se ao BITS.

 

3.    Associação de Segurança

 

Um conceito chave que aparece em ambos os mecanismos de autenticação e privacidade para o protocolo IP é a Associação de Segurança - conjunto de diretivas que permite negociar algoritmos de cifra a utilizar. Uma associação é uma relação de sentido único entre um emissor e um receptor que descrevem quais os mecanismos de segurança a utilizar para estabelecer uma comunicação seguram. Se uma relação que se processa em dois sentidos é necessária, então, duas associações de segurança são necessárias.

Além disso, cada fase da comunicação segura requer uma SA. Assim, para a autenticação é necessária uma SA, e para a criptografia dos dados, uma outra SA. Mesmo que usando o mesmo algoritmo, o conjunto de chaves é diferente.

Uma associação de segurança é unicamente identificada por um endereço internet e um índice de parâmetro de segurança (Security Parameter Index - SPI). Desta forma, em qualquer pacote IP, a associação de segurança é unicamente identificada pelo endereço de destino e pelo SPI. Uma associação de segurança é definida pelos seguintes parâmetros:

 

ü      Algoritmo de autenticação e modo do algoritmo usado com Cabeçalho de Autenticação IP;

ü      Chave(s) usada(s) no algoritmo de autenticação utilizado no Cabeçalho de Autenticação;

ü      Algoritmo de criptografia, modo do algoritmo, e transformação usada no Cabeçalho de Encapsulamento de dados de segurança;

ü      Chave(s) usada(s) no algoritmo de criptografia utilizados no Cabeçalho de Encapsulamento de dados de segurança;

ü      Presença/ausência e tamanho do campo do vetor de inicialização ou sincronização criptográfica para o algoritmo de criptografia;

ü      Algoritmo de autenticação e modo usados com a transformada ESP, se alguma estiver em uso;

ü      Chave(s) de autenticação usada com o algoritmo de autenticação, a qual é parte da transformada ESP, caso haja alguma;

ü      Tempo de vida da chave ou tempo para o qual deverá ocorrer mudança da mesma;

ü      Tempo de vida da associação de segurança;

ü      Endereço origem da associação de segurança, o qual poderia ser um endereço wildcard se mais de uma origem divide a mesma associação de segurança com o destino;

ü      Nível de sensibilidade (por exemplo, "secreto" ou "não classificado") dos dados a serem protegidos (requerido para todos os sistemas que necessitam prover segurança em níveis múltiplos).

 

O mecanismo chave de gerência que é usado para distribuir chaves é acoplado aos mecanismos de autenticação e privacidade apenas por meio do índice de parâmetros de segurança (SPI). Desta forma, autenticação e privacidade são especificadas de forma independente de qualquer mecanismo específico de gerência de chaves.

O SPI especifica para o recipiente do pacote que o grupo de protocolos de segurança que o remetente está utilizando. Para fazer a autenticação dos dados, o protocolo padrão utilizado é o HMAC (Hash-based Message Authentication Code) acoplado com o MD5 (Message Digest version 5) ou com o SHA-1 (Secure Hash Algorithm modified).

O MD5 (RFC 2403) produz um resumo fixo de 128 bits, está deixando de ser utilizado, pois possui uma vulnerabilidade com relação a ataques de colisão. Atualmente o algoritmo SHA-1 (RFC 2404) é o mais largamente utilizado, pois produz um resumo de 160 bits, e é tido como o mais imune a ataques de colisão.

 

4.    Cabeçalho de Autenticação (AH) – RFC2402

 

O cabeçalho AH tem a funcionalidade de validar a identidade de entidades comunicantes, isto é, certificar-se que o emissor/receptor é realmente quem dizem ser.  Este cabeçalho é apenas adicionado ao datagrama IP, portanto, não oferece segurança contra ataques de análise de tráfego ou confidencialidade. Para assegurar a confidencialidade dos dados, faz-se necessário usar o cabeçalho ESP.

 

Figura 1: Cabeçalho de Autenticação

 

Os campos são:

 

ü     Next header (oito bits). Identifica o tipo de cabeçalho que segue imediatamente depois;

ü     Length (oito bits). Comprimento do campo de autenticação em palavras de 32 bits;

ü     Reserved (16 bits). Para uso futuro;

ü     Security Parameters Index (32 bits). Identifica a associação de segurança;

ü     Authentication Data (variável). Um número de 32 bits.

 

5.    Cabeçalho de Encapsulamento de Dados de Segurança (ESP) – RFC2406

 

O cabeçalho de Encapsulamento de Dados de Segurança (ESP) é responsável pela criptografia dos dados e é inserido entre o cabeçalho IP e o restante do datagrama. Desta forma, os campos de dados são alterados após serem criptografados. Juntamente com o ESP, segue o SPI para informar ao recipiente do pacote como proceder para abertura apropriada do conteúdo do mesmo. Um contador no ESP informa quantas vezes o mesmo SPI foi utilizado para o mesmo endereço IP de destino. Esse mecanismo previne um tipo de ataque no qual os pacotes são copiados e enviados fora de ordem, confundindo assim os nós de comunicação.

Todo o restante do pacote, com exceção a parte de autenticação, é criptografado antes de ser transmitido. Os algoritmos de criptografia mais utilizados são o DES (Data Encryption Standard) e o 3 DES (Triple Data Encryption Standard) e protocolos proprietários de fabricantes. O ESP também pode ser utilizado para autenticação, com o campo opcional destinado para esse fim. O somatório de verificação (checksum) é computado sobre todo o ESP, com exceção do campo de autenticação, e o seu comprimento varia de acordo com o algoritmo utilizado. A autenticação do ESP é diferente da fornecida pelo AH, porque não protege o cabeçalho IP que precede o ESP, embora proteja um cabeçalho IP encapsulado no modo Túnel, que veremos a seguir. O AH, por sua vez, protege este cabeçalho externo, juntamente com todo o conteúdo do pacote ESP. As duas autenticações não são utilizadas simultaneamente por questão de economia de processamento.

 

Figura 2: Formato do cabeçalho ESP

 

Os campos são:

 

ü     Índice de parâmetro de segurança: Identifica a associação de segurança;

ü     Vetor de Inicialização: Entrada para o algoritmo CBC, um múltiplo de trinta e dois bits;

ü     Dados de Payload (variável): Antes da criptografia, esse campo possui a bloco de dados a ser criptografado, o qual pode ser um segmento da camada de transporte (modo de transporte) ou um pacote IP (modo túnel);

ü     Padding: Antes da criptografia, preenchido com dados quaisquer de modo a completar os campos "tamanho de Pad" e "tipo de payload" no limite de 64 bits;

ü     Comprimento de Pad (oito bits): O tamanho do campo de padding antes da criptografia;

ü     Tipo de payload (oito bits) : Indica o tipo de protocolo do campo de dados de payload (por exemplo IP,TCP). O vetor de visualização é transmitido em texto não criptografado. Como mencionado na descrição feita de DES-CBC, este já não é um modelo de segurança. Entretanto para fins desta aplicação ele provê aceitável segurança.

6.    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 (Internet Security Association and Key Management Protocol), 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. A fase de negociação do IKE utiliza o mecanismo Diffie-Hellman.

 

7.    Modo de Transporte

 

O IPSec trabalha em dois modos, modo de Transporte e modo Túnel. No modo de Transporte , apenas o segmento da camada de transporte á processado, isto é, autenticado e criptografado. Este modo é aplicável para implementações em servidores e gateways, protegendo camadas superiores de protocolos, além de cabeçalhos IP selecionados. O cabeçalho AH é inserido após o cabeçalho IP e antes do protocolo de camada superior (TCP, UDP, ICMP), ou antes de outros cabeçalhos que o IPSec tenha inserido. Os endereços de IP de origem e destinos ainda estão abertos para modificação, caso os pacotes sejam interceptados.

Figura 3: Estrutura do IPSec – Modo Transporte

 

8.    Modo de Túnel

 

No modo Túnel todo o pacote IP é autenticado ou criptografado, ficando apenas o cabeçalho IP externos (como o último endereço de destino e origem) visível, informando o destino do gateway (roteador, firewall, etc), permanecendo todo o conteúdo interno criptografado.

Este método pode ser usado para evitar a análise de tráfego. Devido ao fato de o cabeçalho IP conter o endereço de destino e possivelmente as diretivas de roteamento e informação proveniente da opção hop-by-hop, não é possível simplesmente transmitir o pacote IP criptografado utilizando prefixo de cabeçalho ESP, pois roteadores intermediários seriam incapazes de processar tal pacote. 

Desta forma, é necessário encapsular o bloco inteiro (cabeçalho ESP mais pacote IP criptografado) com um novo cabeçalho IP que deverá conter informações suficientes para roteamento, mas não para análise de tráfego. Enquanto o modo de transporte é adequado para proteger conexões entre estações que suportam o modo ESP o modo túnel é útil numa configuração que inclua um firewall ou outro tipo de gateway de segurança que protege uma rede confiável das redes externas. No segundo caso, a criptografia acorre apenas entre uma estação externa e o gateway de segurança, ou entre dois gateways de segurança. Isto libera as estações da rede interna do processamento de criptografia e também simplifica a tarefa de distribuição de chaves pela redução do número de chaves necessárias. Além disso, inibe a análise de tráfego baseada no destino final. 

 

Figura 4: Estrutura do IPSec – Modo Túnel

 

Exemplo de uso do IPSec

 

1.    VPN para Intranet

 

Uma Intranet é utilizada para conectar sites que geralmente possuem uma infra-estrutura completa de rede local, podendo, ou não, ter seus próprios servidores e aplicativos locais. Tais sites têm em comum a necessidade de compartilhar recursos que estejam distribuídos, como bases de dados e aplicativos, ou mesmo de troca de informações, como no caso de e-mail. A Intranet pode ser entendida como um conjunto de redes locais de uma corporação, geograficamente distribuídas e interconectadas através de uma rede pública de comunicação. Esse tipo de conexão também pode ser chamado de LAN-to-LAN ou Site-to-Site.

 


Figura 5: Exemplo de Rede Virtual Privada

 


2.    VPN para Acesso Remoto

 

É chamado de acesso remoto aquele realizado por usuários móveis que se utilizam um computador para conexão com a rede corporativa, partindo de suas residências ou hotéis.

Esse tipo de conexão, que também é denominado Point-to-Site, está se tornando cada vez mais utilizada. Aplicações típicas do acesso remoto são:

 

ü      Acesso de vendedores para encaminhamento de pedidos, verificação de processos ou estoques;

ü      Acesso de gerentes e diretores em viagens, mantendo atualizadas suas comunicações com sua base de operação, tanto para pesquisas na rede corporativa como acompanhamento de seu correio eletrônico;

ü      Equipe técnica em campo, para acesso a sistemas de suporte e documentação, bem como a atualização do estado dos atendimentos.

 


Figura 6: Exemplo de conexão de acesso remoto e Extranet

 


3.    VPN para Extranet

 

Em uma Extranet, tem-se a disponibilidade para o acesso de parceiros, representantes, clientes e fornecedores ao ambiente da rede corporativa. Esta comunicação é permitida com o objetivo de agilizar o processo de troca de informações entre as partes, estreitando o relacionamento, e tornando mais dinâmica e efetiva a interação.

Esse tipo de conexão também pode ser chamado de LAN-to-LAN ou Site-to-Site.


Bibliografia

 

ü      RFC (Request For Comment) RFC2401 a RFC2406 – Kent, Stephen e Atkinson, Randall – Security Architecture for the Internet Protocol, [1998]

ü      Redes Privadas Virtuais com IPSec – Martins, Dener – UNB, [2000]

ü      IPSec – Introdução http://www.redes.unb.br/security/firewall/ipsec.html

ü       

ü      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;

ü      Cisco company – www.cisco.com

ü      Redbooks – www.redbooks.ibm.com