IPsec

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de IPSec)
Ir para: navegação, pesquisa
Modelo OSI
Camada Protocolo
7.Aplicação HTTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping ...
6.Apresentação XDR, TLS ...
5.Sessão NetBIOS ...
4.Transporte NetBEUI, TCP, UDP, RTP, SCTP, DCCP, RIP ...
3.Rede IP (IPv4, IPv6), IPsec, ICMP, ARP, RARP, NAT ...
2.Enlace Ethernet, 802.11 WiFi, IEEE 802.1Q, 802.11g, HDLC, Token ring, FDDI, PPP, Switch, Frame relay, ATM ...
1.Física Modem, RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, 10BASE-T, 100BASE-TX, ISDN, SONET, DSL ...

Protocolo de Segurança IP (IP Security Protocol, mais conhecido pela sua sigla, IPsec) é uma extensão do protocolo IP que visa a ser o método padrão para o fornecimento de privacidade do usuário (aumentando a confiabilidade das informações fornecidas pelo usuário para uma localidade da internet, como bancos), integridade dos dados (garantindo que o mesmo conteúdo que chegou ao seu destino seja o mesmo da origem) e autenticidade das informações ou prevenção de identity spoofing (garantia de que uma pessoa é quem diz ser), quando se transferem informações através de redes IP pela internet.

Segundo a RFC 6071, IPsec é uma suíte de protocolos que provê segurança no nível da camada IP para comunicações pela Internet.[1] Opera sob a camada de rede (ou camada 3) do modelo OSI. Outros protocolos de segurança da internet como SSL e TLS operam desde a camada de transporte (camada 4) até a camada de aplicação (camada 7).

Isto torna o IPsec mais flexível, como pode ser usado protegendo os protocolos TCP e UDP, mas aumentando sua complexidade e despesas gerais de processamento, porque não se pode confiar em TCP (camada 4 do modelo OSI) para controlar a confiabilidade e a fragmentação. O IPsec é parte obrigatória do IPv6, e opcional para o uso com IPv4. O padrão foi projetado para ser indiferente às versões do IP, à distribuição atual difundida e às implementações do IPv4.

História e desenvolvimento[editar | editar código-fonte]

A RFC 1825, publicada em 1995, estabeleceu a arquitetura de segurança na camada de inter-redes da pilha TCP/IP (equivalente à camada de rede do modelo OSI), através da especificação dos protocolos AH (Autentication Header, "cabeçalho de autenticação") e ESP (Encapsulated Security Payload, "encapsulamento de segurança de carga útil"), cujos cabeçalhos seriam usados para prover serviços de segurança (autenticidade, integridade e confidencialidade) ao IPv4 e IPv6.[2] Detalhes de implementação destes dois protocolos foram inicialmente especificados nas RFC 1826 e RFC 1827.[3] [4] A RFC 1825 também definiu a necessidade de um protocolo de gerenciamento de chaves como necessário ao uso de AH ou ESP, bem como especificou o conceito de Security Association ("associação de segurança", ou simplesmente SA), um conjunto de informações que definem uma conexão, igualmente necessário em qualquer implementação dos protocolos AH e ESP. Foram ainda definidos o MD5 e o DES no modo CBC como algoritmos padrões do AH e ESP, respectivamente.

Em novembro 1998, uma série de RFCs foi publicada (da RFC 2401 à RFC 2412), atualizando e estendendo as especificações da suíte de protocolos e ferramentas IPsec, por exemplo, introduzindo o protocolo IKE (Internet Key Exchange, "compartilhamento de chaves na Internet") como ferramenta de gerenciamento automático de chaves. Este conjunto de RFCs ficou conhecido como "antigo IPsec" ou "IPsec-v2". Em 2005 a arquitetura IPsec foi novamente renovada e expandida em uma terceira geração de RFCs (RFC 4301, 4302 e 4306, dentre outras), o que se convencionou chamar "IPsec-v3", ou "novo IPsec". Atualmente, o HMAC-SHA-1 e o AES-CBC de 128 bits são os algoritmos padrões para garantia de autenticidade, integridade e confidencialidade no IPsec, em substituição ao MD5 e ao DES.[1]

Características[editar | editar código-fonte]

O IPsec é uma combinação de diferentes e diversas tecnologias criadas para prover uma segurança melhor, como um mecanismo de troca de chaves de Diffie-Hellman; criptografia de chave pública para assinar as trocas de chave de Diffie-Hellman, sendo assim, garantindo a integridade das partes e evitando ataques como o man-in-the-middle; algoritmos para grandes volumes de dados, com o DES; algoritmos para cálculo de hash como utilização de chaves, com o HMAC, junto com os algoritmos de hash tradicionais como o MD5 ou SHA, autenticando pacotes e certificados digitais assinados por uma autoridade certificadora, que agem como identidades digitais[5] .

Arquitetura de segurança[editar | editar código-fonte]

IPsec é o protocolo de criptografia da internet para tunelamento, criptografia e autenticação. Existem dois modos, consoante a unidade o que se está protegendo. No modo transporte se protege o conteúdo útil do pacote IP e no modo túnel se protege o pacote IP completo.

Modo de transporte[editar | editar código-fonte]

No modo transporte, somente a mensagem (payload) é criptografada. O roteamento permanece intacto, desde que o cabeçalho do IP não seja modificado e nem cifrado; entretanto, quando o cabeçalho da autenticação é usado, os endereços IP não podem ser traduzidos, porque isto invalida o valor de hash. As camadas de transporte e de aplicação são fixas sempre pelo hash, assim, não podem sofrer nenhuma modificação. O modo transporte é usado para comunicações de host-a-host.

Modo de tunelamento[editar | editar código-fonte]

No modo de tunelamento, o pacote IP é criptografado por inteiro. Deve, assim, encapsular um novo pacote IP para distribuí-lo. O tunelamento é usado para comunicações da rede-a-rede (túneis seguros entre roteadores) ou comunicações de host-a-rede e de host-a-host sobre a internet.

Características técnicas[editar | editar código-fonte]

Dois protocolos foram desenvolvidos para prover um nível de segurança para os fluxos dos pacotes e mudanças de chaves como:

  • Encapsulating Security Payload (ESP), que provê autenticação, confidencialidade dos dados e integridade da mensagem.
  • Cabeçalho de autenticação (AH), que provê a autenticação e integridade dos dados, mas não a confidencialidade.

Cabeçalho de autenticação (AH)[editar | editar código-fonte]

0 - 7 bit 8 - 15 bit 16 - 23 bit 24 - 31 bit
Próximo cabeçalho Tamanho da mensagem RESERVADO
Identificação dos Parâmetros de Segurança (SPI)
Número de Sequência
Dados de autenticação (variável)

Descrição dos campos:

próximo cabeçalho
Identifica o protocolo de dados de transferência;
tamanho da mensagem
Tamanho do cabeçalho AH;
RESERVADO
reservado para uso futuro;
identificação dos parâmetros de segurança (SPI)
a identificação dos parâmetros de segurança (SPI) que, em combinação com o endereço IP, identifica a Associação de Segurança (SA) implementada para este pacote;
número de sequência
um número crescente, usado para impedir ataques repetitivos;
dados de autenticação
contém o valor da verificação da integridade (ICV) necessário para autenticação do pacote.

Encapsulating Security Payload (ESP)[editar | editar código-fonte]

O diagrama ESP:

0 - 7 bit 8 - 15 bit 16 - 23 bit 24 - 31 bit
Identificação dos Parâmetros de Segurança (SPI)
Número de Sequência
Dados de payload (variável)
  Padding (0-255 bytes)  
    Tamanho do Pad Próximo cabeçalho
Dados de autenticação (variável)

Descrição dos campos:

identificação dos parâmetros de segurança (SPI)
identifica os parâmetros de segurança em combinação com o endereço de IP;
número de sequência
um número crescente, usado para impedir ataques repetitivos;
dados da mensagem
os dados a serem transferidos;
padding
usado por alguns algoritmos criptográficos para reordenar por inteiro o conteúdo dos blocos;
tamanho do pad
tamanho do pad em bytes;
próximo cabeçalho
identifica o protocolo para transferência dos dados;
dados de autenticação
contém os dados usados para autenticação do pacote.

Implementações[editar | editar código-fonte]

O suporte ao IPsec é geralmente incluído no núcleo do sistema operacional com gerência de chave e ISAKMP/IKE entre as negociações realizadas no espaço do usuário-final. Existem implementações do IPsec que tendem a incluir ambas as funcionalidades. Entretanto, porque há uma relação padrão para a gerência de chave, é possível controlar uma pilha do IPsec no núcleo usando uma ferramenta de gerência de chave com implementação diferente.

Por esta causa, há confusão a respeito das origens da implementação do IPsec que está no núcleo Linux. FreeS/WAN é o projeto que primeiro implementou uma solução completa e de código aberto do IPsec para Linux, e o projeto foi encerrado em março de 2004. Openswan e strongSwan são as continuações do FreeS/WAN. KAME project também implementou um suporte completo ao IPsec para o NetBSD e FreeBSD. O OpenBSD fez seu próprio daemon de ISAKMP/IKE, nomeado simplesmente como isakmpd (que foi movido também a outros sistemas, incluindo Linux).

Entretanto, nenhumas destas pilhas do IPsec foram integradas no Linux. Alexey Kuznetsov e David S. Moleiro escreveram uma implementação de IPsec para o Linux em torno do fim de 2002. Esta pilha foi liberada subseqüentemente como parte do Linux 2.6.

Conseqüentemente, contrariando a opinião popular, a pilha do IPsec no Linux não se originou do projeto KAME. Como suporta o protocolo padrão PF_KEY (RFC 2367) e a relação nativa XFRM para a gerência de chave, a pilha do IPsec no Linux pode ser usada conjuntamente com qualquer uma das implementações citadas abaixo.

Ver também[editar | editar código-fonte]

Referências

Ligações externas[editar | editar código-fonte]