Com o IPSec, a segurança é implementada na
camada do IP. Isto faz com que ele seja transparente para as
aplicações, que não precisam ter seu código-fonte alterado para
garantir segurança. Além disso, pode ser facilmente utilizado em
conjunto com o UDP, protocolo muito usado atualmente em comunicações
multimídia.
Diferentemente, as soluções de segurança mais
comumente adotadas (SSL, TLS, SSH etc.) operam nas camadas de
transporte ou aplicação. Muitas vezes, estas são utilizadas devido
à complexidade da arquitetura e dos protocolos do IPSec, que exigem
que a pilha TCP/IP seja alterada ou estendida, de acordo com a opção
de implementação.
O IPSec pode ser implementado de diversas
maneiras, seja num terminal, em um roteador ou firewall (para
criar um gateway de
segurança) ou em um dispositivo de segurança independente. Na
RFC 4301 [8], são definidas 3 alternativas de implementação para o
IPSec:
Integração no IP
Se baseia na integração dos protocolos do IPSec
na implementação nativa do IP, o que é viável tanto para um
terminal quanto para um gateway de
segurança. Pode ser considerada a solução padrão, mais
elegante.
Entretanto, é preciso alterar o código-fonte da
implementação IP, o que foi feito no Microsoft Windows 2000 (sendo
incluído nas versões posteriores) e no Linux Kernel 2.6. Um
tutorial simples sobre a utilização da pilha IPSec nativa do Ubuntu
pode ser encontrado em https://help.ubuntu.com/community/IPSecHowTo.
Bump-in-the-stack (BITS)
Consiste em implementar os
protocolos IPSec entre a implementação nativa IP e os drivers da
rede local. Os pacotes passados adiante pela camada do IP são
interceptados por uma camada extra IPSec, que provê segurança e,
depois, encaminha para a interface de rede na camada seguinte.
Figura 1: Ilustração da alternativa de implementação BITS.
Os cabeçalhos do IPSec são acrescentados após o cabeçalho IP.
Ilustração adaptada de [3].
Para
esta implementação, não é necessário o acesso ao código-fonte da pilha IP.
Normalmente, quando adotada, esta estratégia é aplicada a terminais
da Internet.
Bump-in-the-wire (BITW)
Neste método, é
utilizado um hardware adicional, que provê os serviços
IPSec. Este hardware atua de maneira semelhante ao software
BITS, interceptando pacotes IP, adicionando segurança e
repassando-os na rede.
Quando utilizado em
conjunto com um roteador ou firewall, pode-se criar um gateway
de segurança, que permite que diversos computadores numa rede local
estabeleçam conexões seguras com terminais fora da rede, sem
implementarem o IPSec. Mais informações poderão ser obtidas na
descrição do modo túnel, na seção Modos de Operação.
Assim como a opção
de implementação BITS, o Bump-in-the-wire não requer o
acesso ao código da implementação IP nativa.
Como será visto mais
adiante, as três estratégias de implementação (integrada, BITS e
BITW) se relacionam com os dois modos de operação do IPSec.