A aplicação de um algoritmo de
criptografia num pacote é chamada no IPSec de transformação. Durante a
configuração de uma conexão entre dois nós podem ser definidas uma ou mais
transformações. Todo o tráfego de uma
comunicação via IPSec é executado sob o domínio de uma associação
segura (AS), que é uma entidade peer-to-peer e simplex, responsável
por todas as informações de controle dessa sessão IPSec entre os dois
nós. Uma associação de segurança é identificada unicamente por três parâmetros: o SPI (Security Parameter Index), o endereço IP de destino e o identificador do protocolo (AH ou ESP). - o SPI é uma string de 32 bits associada com uma e somente uma AS e com significância apenas local (nó onde a AS foi criada). É definido durante a negociação que antecede o estabelecimento da mesma. Assim, todos os membros de uma AS devem conhecer o SPI correspondente e usá-lo durante a comunicação; - o endereço IP de destino pode ser unicast, broadcast ou ainda multicast. No entanto, para a definição dos mecanismos de gerenciamento de AS, o IPSec assume um endereço destino unicast, estendendo as definições para os casos de broadcast e multicast; - o identificador do protocolo é o número 51 para o AH e o número 50 para o ESP. Ressalta-se que a negociação para o estabelecimento de
uma AS envolve a definição da chave, os algoritmos de criptografia e
autenticação e os parâmetros usados por estes algoritmos. Para seu funcionamento o IPSec
define duas estruturas de dados que são armazenadas em cada nó da rede que o
execute: o SPD (Security Policy Database) e o SAD (Security
Association Database). O SPD é composto por um conjunto de regras que determinam como processar os pacotes que chegam numa interface. O SAD armazena os parâmetros das AS´s definidas para o nó. Ele é um banco de dados dinâmico, ou seja, suas entradas são excluídas após o término da SA correspondente. Univocamente uma SA é
identificada no SAD através dos 3 parâmetros que a definem: SPI (Security
Parameters Index); endereço IP do destino e protocolo de segurança
utilizado (AH ou ESP). Além desses parâmetros, o SAD armazena também outras
informações das AS’s: -
Contador do número de
seqüência dos datagramas (32 bits); -
Flag que sinaliza o estouro (overflow) do número de
seqüência; -
Janela de anti-replay; -
Informações do AH; -
Informações do ESP; -
Tempo de vida da SA; -
Modo de funcionamento
(túnel ou transporte); -
MTU (Maximun
Transmit Unit) do caminho; Funcionamento: Todo pacote, ao chegar numa interface, é submetido às entradas da SPD a fim de ser feita uma relação entre a entrada e uma das AS’s do SAD. Se não houver nenhuma especificação para o pacote, esse pode ser descartado ou simplesmente não ser tratado pelo IPSec. Caso contrário, o pacote sofrerá a transformação solicitada pela AS relacionada com a entrada do SPD. Uma entrada do SPD é formada por campos chamados de seletores. Os seletores são campos do protocolo IP ou de um dos seus protocolos superiores. Os seguintes campos podem compor uma entrada do SPD: -
Endereço IP de destino; -
Endereço IP da fonte; -
ID do usuário; -
Marcação de sensibilidade
dos dados; -
Protocolo de transporte; -
Protocolo do IPSec; -
Portas origem e destino; -
Classe do IPv6; -
Marcação de fluxo do IPv6; -
ToS (Type of Service)
do IPv4. Uma AS define uma única
transformação aplicada nos pacotes que trafegam naquela conexão. Num mesmo
instante podem ser estabelecidas diversas AS’s entre dois nós, cada uma
realizando uma transformação diferente nos pacotes. Modos de trabalho: As AS’s podem trabalhar em
dois modos: Transporte e Túnel. No modo transporte, uma
Associação de Segurança é estabelecida entre dois hosts (host-to-host).
Nesse modo, o escopo de proteção do pacote restringe-se ao payload do
IP (segmento TCP ou UDP e pacote ICMP). O modo túnel é uma Associação de Segurança aplicada a um túnel IP. Nesse caso, o escopo da proteção é todo o pacote IP, pois um novo cabeçalho IP é gerado e o cabeçalho original é incluído no payload do novo cabeçalho IP. Em uma AS no modo túnel, o chamado cabeçalho IP externo especifica o destino no contexto do IPSec e o cabeçalho IP interno especifica o destino real do pacote IP. Esse
modo é usado para prover segurança para comunicações entre redes (subnet-to-subnet)
ou entre uma estação e uma rede (host-to-subnet), tipicamente
aplicações de VPN. Quando pelo menos um dos membros de uma AS for um gateway
de segurança, ou seja, for um gateway que implementa IPSec, então a AS
deverá ser estabelecida em modo túnel. Na figura abaixo, observa-se a alteração nos pacotes causada pela implementação do IPSec em cada um dos modos:
Implementações: De acordo com a RFC2401, o
IPSec pode ser implementado de 3 formas diferentes: -
Integrado ao software
nativo do IP: exige programação do código fonte do IP. -
BITS (Bump In The Stack):
entre a camada IP e os drivers da rede, não existe necessidade de
alterar o código do IP. Usualmente utilizado em hosts. -
BITW (Bump In The Wire):
em um hardware conectado na rede que realiza as funções do IPSec.
Usualmente utilizado em gateways de segurança. - de informações na rede. |