Crie um site como este com o WordPress.com
Comece agora

Protocolo IPSec: Arquitetura de Segurança

Descrição

O Internet Protocol Security (IPSec) é um conjunto de protocolos de redes seguras que autentica e encripta pacotes de dados para prover comunicação encriptada segura entre dois computadores em uma rede IP. Como parte de um aprimoramento do IPv4, IPSec é um protocolo da camada de rede.

São oferecidos dois serviços de segurança: Authentication Header (AH) e Encapsulating Security Payload (ESP). O primeiro oferece autenticação do remetente e o segundo oferece autenticação do remetente e do destinatário dos dados, além de criptografar os dados. Além de dois modos de encriptação: transporte e túnel. O modo de transporte encripta somente o header das camadas superiores e dados de cada pacote. Enquanto que o modo de túnel encripta o header IP, os headers das camadas superiores e os dados de cada pacote.

Para o IPSec funcionar apropriadamente, é necessário que o remetente e o destinatário compartilhem uma chave pública. Isso é feito por meio de um protocolo chamado Internet Key Exchange version 2 (IKEv2). O protocolo permite que o destinatário receba uma chave pública do remetente e o autentique.

Uma das principais aplicações do IPSec é na implementação de Virtual Private Networks (VPNs). Logo, segmentos da camada de rede podem ser seguramente transportados por meio de túneis criptografados. Como os roteadores realizam encriptação e decriptação, as aplicações seguras não precisam de suporte criptográfico.

Authentication Header

O Authentication Header (AH) é um membro do conjunto de protocolos IPSec. O AH é um serviço de segurança que garante integridade não-orientado a conexão usando uma função hash e uma chave secreta compartilhada no algoritmo AH. AH também garante a origem dos dados autenticando o IP dos pacotes. Opcionalmente, um número de sequência pode ser utilizado para proteger pacotes IPSec de replay attacks, usando a técnica de janela deslizante e descartando pacotes antigos.

A seguir temos um diagrama de pacote AH.

Neste diagrama temos que: Os campos Next Header e Length possuem 8 bits cada e eles especificam o tipo de dado armazenado e o tamanho do header AH menos 2, respectivamente; O campo Reserved é reservado para usos futuros e o campo Security Parameter Index (SPI) específica a security association (SA) do destinatário; O campo Sequence Number é um número monotônico utilizado para prevenir replay attacks e o campo Authentication data é um campo de tamanho variável que contém o integrity check value (ICV) que pode ser utilizado para autenticar o header do remetente.

Encapsulating Security Payloads (ESP)

O Encapsulating Security Payloads (ESP) é um membro do conjunto de protocolos IPSec. O ESP é um serviço de segurança que oferece autenticação do remetente por autenticação da fonte dos dados, integridade dos dados por funções hash e confidencialidade por encriptografia dos pacotes IP. O ESP também pode oferecer apenas autenticação ou apenas encriptografia, contudo, utilizar apenas encriptografia não é recomendado por ser inseguro.

Ao contrário do AH, o modo de transporte do ESP não oferece integridade e autenticação do pacote IP por completo. Contudo, no modo de túnel, onde o pacote original IP é completamente encapsulado com um novo header de pacote adicionado, a proteção do ESP é oferecida para toda a parte interior do pacote IP, não protegendo os headers exteriores (incluindo headers exteriores de opções de IPv4 e extensões de IPv6).

Com ESP, temos que a encriptação é aplicada primeiro e em seguida autenticação. ESP faz basicamente o mesmo que AH faz, exceto que ele não autentica os headers exteriores do IP. Além disso, a encriptação dos dados é realizada utilizando uma chave secreta. Logo, apenas aqueles que conhecem a chave podem ler os dados, portando, providenciando confidencialidade.

A seguir temos um diagrama de pacote ESP.

Neste diagrama temos os seguintes campos que não estão presentes no diagrama de pacote AH: Initialization Vector, é uma variável utilizada como input para inicializar uma primitiva de criptografia; Protected Data, contém os dados encriptografados; Padding, extende o tamanho do campo Protected Data para torná-lo compatível com o tamanho de um bloco de cifra de encriptação; Padding Length, contém o tamanho do campo de Padding; Next header, contém o tipo do next header.

Internet Security Association and Key Management Protocol

Os protocolos de IPSec utilizam uma security association (SA), onde os participantes da comunicação estabelecem alguns atributos de segurança compartilhados como algoritmos e chaves. Logo, o IPSec oferece um conjunto de opções após ter sido decidido se será utilizado AH ou ESP. Alguns desses atributos de segurança são: um algoritmo de encriptação simétrico para encriptar o pacote IP (como AES ou ChaCha20) e que função hash utilizar para garantir a integridade dos dados (como BLAKE2 ou SHA256). Tais atributos estão associados a uma conexão entre remetente e destinatário e deve ser também especificado uma chave de conexão e o tempo de vida do conjunto de atributos.

A SA é estabelecida utilizando o Internet Security Association and Key Management Protocol (ISAKMP). O ISAKMP é um protocolo para estabelecer SA e chaves de criptografia em um ambiente da Internet, além disso, ele oferece somente um framework para autenticação e troca de chaves e é projetado para ser independente de troca de chaves. Protocolos como Internet Key Exchange (IKE) e Kerberized Internet Negotiation of Keys (KINK) oferecem autenticação de chaves para ser utilizado em conjunto com ISAKMP.

No caso do IPSec, temos que a SA é estabelecida com uma implementação de ISAKMP que utiliza pre-shared key, IKE e IKEv2, KINK e o uso de registros IPSECKEY DNS. Uma pre-shared key é um conjunto de dados que é conhecido previamente por ambos os participantes da comunicação e que foi transmitido previamente por meio de um canal seguro.

Para determinar que tipo de proteção é para ser oferecido a um pacote que está vindo ou saindo de um roteador, o IPSec utiliza SPI, que é um índice para o security association database (SADB), junto do endereço de destino se necessário, para determinar unicamente uma SA para esse pacote em específico.

Crie um website ou blog gratuito no WordPress.com.

Acima ↑