IPSec é um conjunto de técnicas e protocolos definido pela IETF e utilizado para transferir
dados de maneira segura na Camada de Rede. É uma extensão do IP, que tem por objetivo
garantir a privacidade e integridade dos dados enviados.
Está baseado num modelo de segurança fim-a-fim, em que apenas o remetente e o destinatário
sabem da proteção IPsec. Cada um controla a segurança em seu próprio extremo, sempre tendo
em consideração que o meio físico que utilizam não é seguro.
A fim de proteger a comunicação a ser estabelecida, o IPSec realiza uma série de tarefas. É
necessário que se determine qual protocolo de segurança será usado assim como o algoritmo de
criptografia. Também é preciso que sejam trocadas entre os nós as chaves necessárias para a
decodificação das informações encriptadas.
Devido a sua diversidade de opções, o IPSec requer um meio de se armazenar os parâmetros
de segurança referentes a uma sessão de comunicação. Para isso são utilizadas as chamadas
Associações de Segurança (Security Association, SA) que permitem que os nós mantenham
registro das informações pertinentes aos relacionamentos seguros existentes entre eles.
Para redes de larga escala, a configuração manual das SAs se torna inviável. Este problema
pode ser solucionado utilizando-se o protocolo Internet Key Exchange (IKE) que fornece meios
para que os nós negociem entre si as SAs a serem aplicadas e efetuem as trocas de chaves
automaticamente.
O IPSec é constituído por dois protocolos de segurança: Authentication Header (AH) e
Encapsulated Security Payload (ESP). Estas duas técnicas são os principais componentes do
IPSec e podem fazer uso de diferentes algoritmos de criptografia, sendo os mais usuais o Secure
Hash Algorithm 1 (SHA-1) e o Message Digest 5 (MD5).
Authentication Header (AH)
Provê a garantia de integridade e autenticação dos dados, permitindo que o receptor verifique se
o pacote recebido realmente veio de quem deveria ter vindo e se ele foi modificado. Com isso, a
comunicação fica protegida contra falsificação de identidade, perda de integridade e ataque por
reenvio de pacote. Não há garantia de privacidade. Adiciona um cabeçalho AH ao pacote.
Encapsulated Security Payload (ESP)
Provê a garantia de privacidade dos dados, utilizando criptografia para que apenas o destino
seja capaz de decodificar as informações. Também fornece um mecanismo opcional próprio de
autenticação, para o caso de o AH não estar sendo utilizado. É formado por três campos, sendo
eles um cabeçalho ESP, uma cauda ESP e um campo referente a autenticação opcional.
Dependendo das necessidades da rede, as duas técnicas podem ser usadas em conjunto para
fornecer tanto autenticação quanto privacidade. No entanto, o AH e o ESP podem operar
separadamente, sendo apenas um deles suficiente para atender a maioria dos casos. Alem disso,
o IPSec pode ser implementado seguindo dois modos de operação diferentes, denominados modo
de transporte e modo de tunelamento.
Modo de Transporte
Neste modo, os cabeçalhos de segurança são adicionados depois do cabeçalho IP, encriptando
apenas do cabeçalho de transporte em diante. Dessa forma, a origem e destino do pacote ficam
visíveis na rede pública.
Modo de Tunelamento
Neste modo os cabeçalhos de segurança são adicionados na frente de todo o pacote original,
que é totalmente encriptado, e então é adicionado na frente dos cabeçalhos de segurança um novo
cabeçalho IP. Portanto, um túnel IPSec é estabelecido entre a origem e destino deste novo
cabeçalho IP, por onde irão trafegar os pacotes IP encriptados.
As extremidades do túnel IPSec podem ser roteadores encarregados de lidar com os protocolos
do IPSec e posteriormente encaminhar os pacotes desencriptados aos seus sistemas finais, que
não precisam estar a par da utilização do IPSec.