Troubleshooting VPN – Parte 4

Dando continuidade à série de artigos sobre VPN falaremos, hoje, sobre os protocolos de tunelamento (tunneling), começando pelo Protocolo Ponto-a-Ponto (PPP).


Protocolos de Tunneling

Para se estabelecer um túnel, tanto o cliente quanto o servidor devem estar usando o mesmo protocolo de tunneling. A tecnologia de tunneling pode ser baseada tanto no protocolo de tunneling da Camada 2 quanto da Camada 3. Essas camadas correspondem ao Modelo de Referência OSI (Open Systems Interconnection), ou Interconexões de Sistemas Abertos. Os protocolos da Camada 2 correspondem à camada de link de dados e utilizam os frames como suas unidades de permuta. O PPTP e o L2TP são os protocolos de tunneling da Camada 2; ambos encapsulam a carga em um frame PPP para que ela seja enviada pela rede. Os protocolos da Camada 3 correspondem à Camada de Rede e utilizam pacotes. O modo de túnel IPSec é um exemplo de protocolo de tunneling da Camada 3 e encapsula pacotes IP com um cabeçalho IP adicional antes de enviá-los pela rede IP.


Como Funciona o Tunneling
Para o PPTP e o L2TP, um túnel se parece com uma sessão; ambas as extremidades do túnel devem estar de acordo com o túnel, negociando variáveis de configuração, tais como atribuição de endereço ou criptografia ou parâmetros de compressão. Na maioria dos casos, os dados transportados pelo túnel são enviados usando um protocolo baseado em datagrama. Um protocolo de gerenciamento de túnel é usado como um mecanismo para criar, manter e finalizar o túnel.
Uma vez que o túnel é estabelecido, seus dados podem ser enviados. O cliente ou servidor de túnel utiliza um protocolo de transferência de dados do túnel a fim de preparar os dados para transferência. Por exemplo, quando um cliente túnel envia uma carga ao servidor túnel, o cliente primeiro anexa à carga um cabeçalho de protocolo de transferência dos dados. Em seguida, o cliente envia a carga encapsulada resultante através da rede, que a roteia até o servidor túnel. O servidor túnel aceita os pacotes, remove o cabeçalho e encaminha a carga até a rede de destino. As informações enviadas entre o servidor túnel e o cliente se comportam da mesma maneira.
Protocolos Tunneling e Requisitos Básicos da VPN
Como eles são baseados em um protocolo PPP bem definido, o PPTP e o L2TP herdaram um conjunto de recursos úteis. Esses recursos fazem referência aos requisitos básicos da VPN, conforme listados abaixo.
Autenticação de Usuário. O PPTP e o L2TP herdam os esquemas de autenticação de usuário do PPP, incluindo métodos EAP, que serão abordados mais para frente. Ao utilizar o EAP (Extensible Authentication Protocol), as conexões PPTP e L2TP podem suportar uma grande variedade de métodos de autenticação, incluindo senhas em tempo real, calculadoras criptográficas e smart cards.
Atribuição de Endereço Dinâmico. As conexões PPTP e L2TP suportam atribuições dinâmicas de endereços clientes baseados no mecanismo de negociação do NCP (Network Control Protocol), ou Protocolo de Controle de Rede. Por exemplo, um IP utiliza o IPCP (Internet Protocol Control Protocol) para negociar um endereço IP e outros endereços de servidores de resolução de nomes.
Compressão de Dados. O PPTP e o L2TP suportam esquemas de compressão baseados em PPP. Por exemplo, as implementações da Microsoft referentes ao PPTP e L2TP utilizam o MPPC (Microsoft Point-to-Point Compression), ou Compressão ponto-a-ponto da Microsoft .
Criptografia de Dados. O PPTP e o L2TP suportam mecanismos de criptografia dos dados baseados em PPP. A implementação do PPTP pela Microsoft suporta o uso do MPPE (Microsoft Point-to-Point Encryption), ou Criptografia ponto-a-ponto da Microsoft, baseado no algoritmo RSA/RC4. A implementação do L2TP pela Microsoft utiliza a criptografia do IPSec para proteger a corrente de dados contra clientes e servidores VPN.
Gerenciamento de Chave. O MPPE para conexões PPTP conta com a chave inicial gerada durante a autenticação de usuário, atualizando-a periodicamente. O IPSec para conexões L2TP/IPSec negocia de maneira explícita uma chave comum durante a permuta IKE, também atualizando-a periodicamente.
Protocolo Ponto-a-ponto (PPP)
Pelo fato de o PPTP e L2TP dependerem muito dos recursos especificados originalmente para o PPP, é melhor examinar este protocolo mais de perto. O PPP foi designado para enviar dados através de conexões dial-up ou de ponto-a-ponto dedicadas. Para o IP, o PPP encapsula os pacotes IP dentro dos frames, e depois os transmite por meio de um link ponto-a-ponto. O PPP foi originalmente definido como um protocolo a ser usado entre um cliente dial-up e um NAS.
Existem quatro fases diferentes de negociação em uma conexão PPP. Cada uma dessas fases deve ser concluída de maneira bem sucedida antes que a conexão PPP esteja pronta para transmitir dados do usuário.
Fase 1: Estabelecendo o Link PPP
O PPP utiliza o LCP (Link Control Protocol), ou Protocolo de Controle do Link, para estabelecer, manter e finalizar a conexão lógica ponto-a-ponto. Durante a Fase, são selecionadas as opções básicas de comunicação. Por exemplo, os protocolos de autenticação são selecionados, mas não são realmente implementados até a fase de autenticação da conexão (Fase 2). Da mesma maneira, durante a Fase 1, é tomada uma decisão a respeito de quando os dois pontos irão negociar o uso da compressão e/ou criptografia. A escolha real dos algoritmos de compressão e criptografia, assim como outros detalhes, acontecem durante a Fase 4.
Fase 2: Autenticação de Usuário
Na Segunda fase, o computador cliente envia as credenciais de usuário para o servidor de acesso remoto. Um esquema seguro de autenticação fornece proteção contra ataques e disfarces de cliente remoto. Um ataque ocorre quando terceiros monitoram uma conexão bem sucedida e utiliza pacotes capturados para jogar de volta a resposta do cliente remoto, para que ele consiga obter uma conexão autenticada. Já um disfarce de cliente remoto acontece quando um terceiro captura uma conexão autenticada. O intruso espera até que a conexão tenha sido autenticada e então arma os parâmetros de comunicação, desconectando o usuário autenticado e assumindo o controle da conexão autenticada. O Windows Server 2003 e o Windows XP suportam os seguintes protocolos de autenticação PPP:


PAP (Password Authentication Protocol)

O PAP é um esquema de autenticação simples e nítido. O NAS requer o nome de usuário e a senha, e o PAP os retorna em clear text (não criptografado). Obviamente, esse esquema de autenticação não é seguro, pois um terceiro pode capturar o nome de usuário e senha e usá-los para obter acesso subseqüente ao NAS e a todos os recursos fornecidos por ele. O PAP não oferece proteção contra ataques ou disfarces de cliente remoto uma vez que a senha do usuário estiver comprometida.
CHAP (Challenge-Handshake Authentication Protocol)
O CHAP é um mecanismo de autenticação criptografado que evita a transmissão da senha real na conexão. O NAS envia uma contestação, que consiste de um ID de sessão e uma seqüência de caracteres arbitrários ao cliente remoto. O cliente remoto deve usar o algoritmo MD5 de um caminho para retornar o nome de usuário e um hash da contestação, um ID de sessão e uma senha do cliente. O nome de usuário é enviado em texto plano.
O CHAP é um aprimoramento em relação ao PAP, pois a senha em clear-text não é enviada pelo link. Em vez disso, a senha é usada para criar um hash a partir da contestação original. O servidor conhece a senha em clear-text do cliente e pode, portanto, replicar a operação, comparando o resultado com a senha enviada na resposta do cliente. O CHAP protege contra ataques pelo uso de uma seqüência de caracteres arbitrários para cada tentativa de autenticação. O CHAP protege contra disfarces de clientes remotos enviando, de maneira inesperada, contestações repetidas ao cliente remoto durante toda o tempo de conexão.
Microsoft Challenge-Handshake Authentication Protocol (MS-CHAP)
O MS-CHAP é um mecanismo de autenticação criptografado muito parecido com o CHAP. Assim como no CHAP, o NAS envia uma contestação, que consiste em um ID de sessão e uma seqüência de caracteres arbitrários ao cliente remoto. O cliente remoto deve retornar o nome de usuário em um formulário criptografado a partir da seqüência de contestação, do ID de sessão e da senha MD4. Essa atribuição, que utiliza o hash MD4 da senha, fornece um nível adicional de segurança, pois permite que o servidor armazene senhas misturadas em vez de senhas em clear-text. O MS-CHAP também fornece códigos adicionais de erros, incluindo uma senha de código vencido e mensagens cliente-servidor criptografadas adicionais que permitem aos usuários alterar suas senhas durante o processo de autenticação. No MS-CHAP, tanto o cliente como o servidor e o NAS geram, de maneira independente, uma chave de criptografia inicial para criptografia subseqüente de dados pelo MPPE. Portanto, a autenticação MS-CHAP é requerida para possibilitar a criptografia de dados baseada no MPPE.
MS-CHAP versão 2 (MS-CHAP v2)
O MS-CHAP v2 é um mecanismo de autenticação criptografado atualizado que fornece maior segurança para a permuta de credenciais de nome de usuário e senhas, além da determinação de chaves criptografadas. Com o MS-CHAP v2, o NAS envia uma contestação ao cliente de acesso, que consiste de um identificador de sessão e de uma seqüência de caracteres arbitrários. O cliente de acesso remoto envia uma resposta que contém um nome de usuário, uma seqüência de caracteres de pontos arbitrários e um formulário criptografado da contestação recebida, além do identificador de sessão e senha do usuário.

O NAS verifica a resposta do cliente e envia de volta uma resposta contendo uma indicação de sucesso ou falha da tentativa de conexão, além de uma resposta autenticada baseada na seqüência de caracteres da contestação, na seqüência de caracteres dos pontos da contestação, na resposta criptografada do cliente e na senha de usuário. O cliente de acesso remoto certifica a resposta de autenticação e, se estiver correta, utiliza a conexão. Se a resposta de autenticação não estiver correta, o cliente de acesso remoto finaliza a conexão.
Usando este processo, o MS-CHAP v2 fornece autenticação mútua—o NAS verifica que o cliente de acesso tem conhecimento da senha do usuário. O MS-CHAP v2 também determina duas chaves de criptografia, sendo uma para dados enviados e outra para dados recebidos.


Extensible Authentication Protocol (EAP).

O EAP é o novo protocolo de autenticação PPP que leva em conta um método de autenticação arbitrário. O EAP é descrito na seção “Extensible Authentication Protocol (EAP)” deste documento. O EAP difere-se de outros protocolos de autenticação, pois, durante a fase de autenticação, ele não desempenha de fato a autenticação. A Fase 2 do EAP negocia somente o uso do método EAP de autenticação comum (conhecido como um tipo de EAP). A verdadeira autenticação para o tipo de EAP negociado acontece depois da Fase 2.
Durante a fase 2 da configuração do link PPP, o NAS coleta os dados de autenticação, validando-os contra o banco de dados de seu próprio usuário ou contra um servidor central de banco de dados de autenticação, como qualquer um mantido pelo controlador de domínio do Windows, ou então os dados são enviados para um servidor RADIUS (Remote Authentication Dial-in User Service).
Fase 3: Controle de Retorno de Chamada PPP
A implementação da Microsoft sobre o PPP inclui uma fase opcional de controle de retorno de chamada. Essa fase utiliza o CBCP (Callback Control Protocol) logo após a fase de autenticação. Se configurados para retorno de chamada, o cliente remoto e o NAS são desconectados após a autenticação. O NAS então chama de volta o cliente remoto por um número de telefone específico. Isso fornece um nível adicional de segurança para conexões dial-up. O NAS permite conexões de clientes remotos que residem fisicamente em números específicos somente. O retorno só é usado para conexões dial-up, não para conexões VPN.
Fase 4: Chamando um Protocolo de Camada de Rede(s)
Uma vez que as fases anteriores foram definidas, o PPP chama os diversos protocolos de controle de rede (NCPs), que foram selecionados durante a fase 1, de estabelecimento de links, para configurar protocolos usados pelo cliente remoto. Por exemplo, durante essa fase, o IPCP é usado para atribuir um endereço dinâmico ao cliente PPP. Na implementação da Microsoft sobre o PPP, o CCP é utilizado para negociar tanto a compressão de dados (usando o MPPC) quando a criptografia dos dados (usando o MPPE).
Fase de Transferência de Dados
Uma vez que as quatro fases da negociação do PPP estiverem concluídas, o PPP começa a encaminhar dados a partir dos dois pontos e para esses dois pontos. Cada pacote de dados transmitido no cabeçalho do PPP é removido pelo sistema de recebimento. Se a compressão de dados foi selecionada na fase 1 e negociada na fase 4, os dados são comprimidos antes da transmissão. Se a criptografia dos dados é selecionada e negociada, os dados são criptografados antes da transmissão. Se tanto a criptografia quanto a compressão são negociadas, os dados são comprimidos primeiro e depois criptografados.
Point-to-Point Tunneling Protocol (PPTP)
O PPTP encapsula frames de PPP nos datagramas de IP para transmissão pela rede IP, tal como a Internet. O PPTP pode ser usado para acesso remoto e conexões VPN roteador-a-roteador. O PPTP está documentado no RFC 2637.
O Point-to-Point Tunneling Protocol (PPTP) utiliza uma conexão TCP para o gerenciamento de túnel e uma versão modificada de GRE (Generic Routing Encapsulation), ou Encapsulamento Genérico de Roteamento, para encapsular frames de PPP para dados de túnel. As cargas dos frames PPP encapsulados podem ser criptografados e/ou comprimidos. A Figura 6 exibe a estrutura do pacote PPTP que contém um datagrama IP.
imagem1.png

Se você quiser fazer o download deste arquivo (em PDF), basta clicar aqui.

2 respostas para Troubleshooting VPN – Parte 4

  1. POENTIOTASILI disse:

    Sounds crazy. I like the way you react to my righteous holding Oh, good joke) What kind of lettuce was served on the Titanic? Iceberg.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: