The Cable GuyO protocolo Authenticated IP

Joseph Davies

Trechos desta coluna abordam uma versão de pré-lançamento do Windows Server 2008. Esses detalhes estão sujeitos a alteração.

O Windows Vista e o Windows Server 2008 (atualmente em teste beta) dão suporte ao protocolo AuthIP (Authenticated IP), uma versão aprimorada do protocolo IKE (Internet Key Exchange). AuthIP e IKE são protocolos usados para determinar material para chave e negociar parâmetros de segurança para comunicações protegidas que usam

protocolo IPSec (Internet Protocol security). AuthIP oferece configuração e manutenção simplificadas da diretiva IPSec em muitas configurações, além de flexibilidade adicional para autenticação IPSec de mesmo nível. Este artigo descreve os detalhes do protocolo AuthIP e os comportamentos de coexistência entre protocolos IPSec de mesmo nível que dão suporte tanto a AuthIP quanto a IKE ou apenas a IKE.

Visão geral do IKE

Exemplos de negociação

Para demonstrar o comportamento de coexistência, examinemos o que acontece entre os protocolos IPSec de mesmo nível baseado no Windows Vista e no Windows XP durante a tentativa de negociação da proteção IPSec.

Exemplo 1: dois protocolos IPSec de mesmo nível baseados no Windows Vista no modo de solicitação

Nesse exemplo, um IPSec de mesmo nível baseado no Windows Vista (Mesmo nível 1) é o iniciador, e o respondente está executando o Windows Vista (Mesmo nível 2). Ambos os níveis estão configurados com o modo de solicitação para comunicações de entrada e de saída. No modo de solicitação, um IPSec de mesmo nível solicita a proteção IPSec, embora ela não seja necessária. As mensagens trocadas são as seguintes:

  1. Mesmo nível 1 envia um segmento de sincronização (SYN) TCP de texto não criptografado, o que inicia uma conexão TCP com Mesmo nível 2.
  2. Mesmo nível 2 envia um segmento de confirmação (ACK) de SYN TCP.
  3. Mesmo nível 1 envia um segmento ACK TCP.
  4. Mesmo nível 1 envia uma mensagem de protocolo ISAKMP baseada em AuthIP, o que inicia uma negociação no modo principal de AuthIP.
  5. Mesmo nível 1 envia uma mensagem ISAKMP baseada em IKE, o que inicia uma negociação no modo principal de IKE.
  6. Mesmo nível 2 responde com uma mensagem ISAKMP baseada em AuthIP, o que continua uma negociação no modo principal de AuthIP.
  7. Os protocolos de mesmo nível 1 e 2 concluem a negociação no modo principal de AuthIP, no modo rápido e no modo estendido (opcional).
  8. Os segmentos subseqüentes enviados pela conexão TCP são protegidos pelo IPSec.

A ordem exata das mensagens de 1 a 5 depende da latência da rede. Os exemplos descritos neste artigo são para uma rede de latência muito baixa, em que o handshake TCP (mensagens de 1 a 3) é concluído antes que o Mesmo nível 1 possa enviar as mensagens ISAKMP iniciais (mensagens 4 e 5). Em uma rede de latência maior, você veria Mesmo nível 1 enviando o segmento SYN TCP de texto não criptografado, a mensagem ISAKMP baseada em AuthIP e a mensagem ISAKMP baseada em IKE como as três primeiras mensagens da troca.

Exemplo 2: IPSec de mesmo nível baseado no Windows Vista no modo de solicitação e um IPSec de mesmo nível baseado no Windows XP no modo de solicitação

Nesse exemplo, um IPSec de mesmo nível baseado no Windows Vista (Mesmo nível 1) é o iniciador, e o respondente está executando o Windows XP (Mesmo nível 2). Ambos os níveis estão configurados com o modo de solicitação para comunicações de entrada e de saída. As mensagens trocadas são as seguintes:

  1. Mesmo nível 1 envia um segmento SYN TCP de texto não criptografado, o que inicia uma conexão TCP com Mesmo nível 2.
  2. Mesmo nível 2 envia um segmento SYN-ACK TCP.
  3. Mesmo nível 1 envia um segmento ACK TCP.
  4. Mesmo nível 1 envia uma mensagem de protocolo ISAKMP baseada em AuthIP, o que inicia uma negociação no modo principal de AuthIP.
  5. Mesmo nível 1 envia uma mensagem ISAKMP baseada em IKE, o que inicia uma negociação no modo principal de IKE.
  6. Mesmo nível 2 responde com uma mensagem ISAKMP baseada em IKE, o que continua uma negociação no modo principal de IKE.
  7. Os protocolos de mesmo nível 1 e 2 concluem a negociação no modo principal de IKE e no modo rápido.
  8. Os segmentos subseqüentes enviados pela conexão TCP são protegidos pelo IPSec.

Exemplo 3: IPSec de mesmo nível baseado no Windows Vista no modo de solicitação e um IPSec de mesmo nível baseado no Windows XP no modo de exigência

Nesse exemplo, um IPSec de mesmo nível baseado no Windows Vista (Mesmo nível 1) é o iniciador, e o respondente está executando o Windows XP (Mesmo nível 2). Mesmo nível 1 está configurado com o modo de solicitação para comunicações de saída e Mesmo nível 2 está configurado com o modo de exigência para comunicações de entrada. No modo de exigência, um IPSec de mesmo nível exige a proteção IPSec e descarta silenciosamente os pacotes desprotegidos. As mensagens trocadas são as seguintes:

  1. Mesmo nível 1 envia um segmento SYN TCP de texto não criptografado, o que inicia uma conexão TCP, descartada silenciosamente pelo Mesmo nível 2.
  2. Mesmo nível 1 envia uma mensagem ISAKMP baseada em AuthIP, o que inicia uma negociação no modo principal de AuthIP, descartada silenciosamente pelo Mesmo nível 2.
  3. Mesmo nível 1 envia uma mensagem ISAKMP baseada em IKE, o que inicia uma negociação no modo principal de IKE.
  4. Mesmo nível 2 responde com uma mensagem ISAKMP baseada em IKE, o que continua uma negociação no modo principal de IKE.
  5. Mesmo nível 1 e 2 concluem a negociação no modo principal de IKE e no modo rápido.
  6. Mesmo nível 1 retransmite o segmento SYN TCP (protegido com IPSec).
  7. Mesmo nível 2 envia o segmento SYN-ACK TCP (protegido com IPSec).
  8. Mesmo nível 1 envia o segmento ACK TCP (protegido com IPSec).

IKE é um padrão de Internet, definido no RFC 2409 (ietf.org/rfc/rfc2409.txt), que define um mecanismo para estabelecer SAs (associações de segurança) IPSec. Uma SA é uma combinação entre uma diretiva de acordo mútuo e chaves que definem os serviços de segurança e os mecanismos que ajudam a proteger a comunicação entre protocolos IPSec de mesmo nível. Especificamente, IKE combina o protocolo ISAKMP (Internet Security Association and Key Management Protocol) do RFC 2408 e o protocolo OKDP (Oakley Key Determination Protocol) do RFC 2412. IKE usa OKDP para gerar material de chave secreta para comunicações protegidas.

IKE usa ISAKMP para negociar SAs. ISAKMP inclui recursos para identificar e autenticar protocolos de mesmo nível, gerenciar SAs e trocar material para chave. ISAKMP é uma estrutura para negociar comunicações protegidas que independe de determinados protocolos de troca, algoritmos de criptografia e integridade, além de métodos de autenticação.

Os protocolos de mesmo nível IPSec usam IKE para realizar a negociação no modo principal e no modo rápido. A negociação no modo principal cria ISAKMP SA, que protege negociações de segurança. Durante a negociação no modo principal, o iniciador e o respondente trocam uma série de mensagens ISAKMP para poder negociar os algoritmos de criptografia e hash para ISAKMP SA, trocar material de determinação da chave, identificar e autenticar um ao outro.

Na fase de negociação no modo rápido, as duas SAs IPSec (uma SA para dados de entrada e outra SA para dados de saída) são criadas, o que protege os dados enviados entre dois protocolos IPSec de mesmo nível. Durante a negociação no modo rápido, o iniciador e o respondente trocam uma série de mensagens ISAKMP criptografadas para poder negociar os algoritmos de criptografia e hash para SAs IPSec de entrada e de saída.

Para obter mais informações sobre as negociações no modo rápido e no principal baseadas em IKE, consulte "IKE Negotiation for IPsec Security Associations" em microsoft.com/technet/community/columns/cableguy/cg0602.mspx.

Visão geral de AuthIP

AuthIP é uma versão aprimorada de IKE que oferece flexibilidade adicional com suporte à autenticação baseada no usuário, autenticação com várias credenciais, negociação do método de autenticação aprimorada e autenticação assimétrica. Assim como IKE, AuthIP dá suporte à negociação no modo principal e no modo rápido. AuthIP também dá suporte ao modo estendido, uma parte da negociação IPSec de mesmo nível durante a qual uma segunda sessão de autenticação pode ser realizada. O modo estendido, que é opcional, pode ser usado para várias autenticações. Por exemplo, com o modo estendido, é possível realizar autenticações baseadas no computador e no usuário.

O suporte a várias autenticações faz parte da imposição de IPSec para a plataforma NAP (Proteção de Acesso à Rede), na qual protocolos IPSec de mesmo nível se autenticam com credenciais de computador e também usam um certificado de integridade para provar que são compatíveis com os requisitos de integridade do sistema. Para obter mais informações sobre a Proteção de Acesso à Rede, visite microsoft.com/nap. E para obter mais informações sobre os recursos de AuthIP, consulte "AuthIP in Windows Vista" em microsoft.com/technet/community/columns/cableguy/cg0806.mspx.

Mensagens de AuthIP

Tanto IKE quanto AuthIP usam ISAKMP como seu principal protocolo de troca e negociação SA. As mensagens de ISAKMP são enviadas pelo protocolo UDP (User Datagram Protocol) e consistem em um cabeçalho ISAKMP e em uma ou mais cargas ISAKMP. O cabeçalho ISAKMP contém informações sobre a mensagem, inclusive o tipo de mensagem. A Figura 1 mostra o formato do cabeçalho ISAKMP.

Figura 1 Formato do cabeçalho ISAKMP

Figura 1** Formato do cabeçalho ISAKMP **

No cabeçalho ISAKMP, os cookies iniciador e respondente estão definidos como um número aleatório não nulo escolhido pelos protocolos IPSec de mesmo nível. O campo Próxima carga indica a primeira carga na mensagem ISAKMP, um pouco além do cabeçalho ISAKMP. O RFC 2408 lista os valores definidos do campo Próxima carga. Os tipos de carga entre 128 e 255 estão reservados para uso particular. Os campos Versão principal e Versão secundária indicam as versões de ISAKMP no protocolo IPSec de mesmo nível que envia a mensagem ISAKMP. Para IKE e AuthIP, a versão principal é 1 e a secundária, 0.

O campo Tipo de intercâmbio indica o tipo de troca ISAKMP que está sendo realizada. O tipo de troca estabelece a estrutura e a ordem das cargas ISAKMP. O RFC 2408 define os valores do campo Tipo de intercâmbio. Os tipos de intercâmbio entre 128 e 255 estão reservados para uso particular.

O campo Sinalizadores contém três sinalizadores definidos no RFC 2408. O bit de ordem inferior (bit 0) é Criptografia, o que indica que as cargas ISAKMP são criptografadas (quando definido como 1) ou não (quando definido como 0). A criptografia é feita com o algoritmo negociado para ISAKMP SA, o que é identificado pela combinação dos campos Cookie iniciador e Cookie respondente. O próximo bit de ordem inferior (Bit 1) é Confirmar, o que indica que a troca de chaves está sincronizada (quando definido como 1) ou não (quando definido como 0). O bit Confirmar é usado para garantir que a SA conclua a negociação antes do envio de dados criptografados. O próximo bit de ordem inferior (Bit 2) é Somente autenticação, usado para indicar que a mensagem contém (quando definido como 1) ou não (quando definido como 0) toda a carga Notificar do tipo de intercâmbio informativo e que ela foi autenticada, mas não criptografada.

O campo ID da mensagem contém um identificador exclusivo da mensagem. ID da mensagem é usado para impedir colisões quando ambos os protocolos IPSec de mesmo nível tentam estabelecer uma SA IPSec simultaneamente. O campo Tamanho indica o tamanho de toda a mensagem ISAKMP.

Para IKE, a mensagem ISAKMP contém uma série de cargas ISAKMP. A primeira carga é indicada pelo campo Próxima carga do cabeçalho ISAKMP. Todas as cargas ISAKMP têm seu próprio campo Próxima carga para indicar a carga seguinte. O campo Próxima carga na última carga está definido como 0. A Figura 2 mostra o formato das mensagens IKE.

Figura 2 Formato das mensagens IKE

Figura 2** Formato das mensagens IKE **

AuthIP usa mensagens ISAKMP com os tipos de troca 243 (Modo principal), 244 (Modo rápido), 245 (Modo estendido) e 246 (Notificar) no campo Tipo de intercâmbio do cabeçalho ISAKMP. Uma diferença importante nas mensagens ISAKMP baseadas em AuthIP é que elas contêm apenas uma carga ISAKMP: Criptografia ou Notificar. A carga Criptografia contém as cargas incorporadas usadas na negociação em modo principal, modo rápido ou modo estendido. A carga Criptografia pode conter um conjunto de cargas criptografadas ou em texto sem formatação, dependendo do bit Criptografia no campo Sinalizadores do cabeçalho ISAKMP. A Figura 3 mostra o formato das mensagens AuthIP que contêm a carga Criptografia.

Figura 3 Formato das mensagens AuthIP que contêm a carga Criptografia

Figura 3** Formato das mensagens AuthIP que contêm a carga Criptografia **

Coexistência entre AuthIP e IKE

O Windows Vista® e o Windows Server® 2008 dão suporte tanto a IKE quanto a AuthIP. No entanto, o Windows® XP e o Windows Server 2003, dão suporte apenas a IKE. Um protocolo IPSec inicial que dê suporte a AuthIP e IKE e que tenha uma diretiva de segurança da conexão que usa AuthIP e IKE deve determinar se o IPSec de resposta dá suporte a AuthIP e IKE. Em seguida, ele deve usar o protocolo mais apropriado à negociação da proteção de IPSec, dando preferência ao uso de AuthIP em relação a IKE.

Para determinar o protocolo de negociação do protocolo IPSec de mesmo nível de resposta, um IPSec de mesmo nível inicial que usa AuthIP e IKE envia as seguintes mensagens simultaneamente:

  • Mensagem 1 – uma mensagem AuthIP que inicia uma negociação no modo principal
  • Mensagem 2 – uma mensagem IKE que inicia uma negociação no modo principal

Caso o nó de resposta dê suporte a AuthIP, ele deve responder à Mensagem 1 com uma mensagem AuthIP de continuidade da negociação no modo principal e descartar silenciosamente a Mensagem 2. Um nó de resposta que não dê suporte a AuthIP descarta silenciosamente a Mensagem 1 porque o campo Tipo de intercâmbio contém um valor para o qual ele não dá suporte e responde à Mensagem 2.

Para impedir a negociação baseada em IKE entre dois protocolos IPSec de mesmo nível em execução no Windows Vista ou no Windows Server 2008 quando a Mensagem 1 é descartada da rede ou chega depois da Mensagem 2, os protocolos IPSec em execução no Windows Vista ou no Windows Server 2008 enviam a Mensagem 2 com uma carga ISAKMP do ID do fornecedor com suporte de AuthIP. A carga do ID do fornecedor com suporte de AuthIP indica que o protocolo IPSec de mesmo nível dá suporte a AuthIP.

Por isso, caso um protocolo IPSec de mesmo nível em execução no Windows Vista ou no Windows Server 2008 receba uma Mensagem 2 com a carga do ID do fornecedor com suporte de AuthIP, ele aguarda o protocolo IPSec de mesmo nível de inicialização para retransmitir as mensagens 1 e 2 e responde à Mensagem 1.

O protocolo IPSec de mesmo nível de inicialização continua retransmitindo as mensagens 1 e 2 até receber uma resposta ou expirar. Quando recebe uma resposta, o iniciador determina a capacidade do respondente a partir do cabeçalho ISAKMP da resposta. Caso o Tipo de intercâmbio esteja definido como 243 (o tipo de intercâmbio para negociação no modo principal baseada em AuthIP), o respondente é compatível com AuthIP. Caso o Tipo de intercâmbio esteja definido como 2 (o tipo de intercâmbio para Proteção de identidade e negociação no modo principal baseada em IKE), o respondente é compatível com IKE.

Com base na resposta, o iniciador responde com a próxima mensagem AuthIP para a negociação no modo principal AuthIP ou com a próxima mensagem IKE para a negociação no modo principal IKE. Os protocolos IPSec de mesmo nível usam o mesmo protocolo usado na negociação da SA ISAKMP durante o tempo de vida da SA.

Joseph Davies é redator técnico da Microsoft e autor da coluna online mensal da TechNet, The Cable Guy, em Microsoft.com/technet/community/columns/cableguy.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..