Rede Privada Virtual - VPN [Tutorial]

Iniciado por DeamoN Cheat®, 24 de Maio de 2006, 20:34

tópico anterior - próximo tópico

DeamoN Cheat®

=================================================

Rede Privada Virtual - VPN

By Liou Kuo Chin <liou@ucsal.br>

=================================================


Introdução

A idéia de utilizar uma rede pública como a Internet em vez de linhas privativas para implementar redes corporativas é denominada de Virtual Private Network (VPN) ou Rede Privada Virtual. As VPNs são túneis de criptografia entre pontos autorizados, criados através da Internet ou outras redes públicas e/ou privadas para transferência de informações, de modo seguro, entre redes corporativas ou usuários remotos.

A segurança é a primeira e mais importante função da VPN. Uma vez que dados privados serão transmitidos pela Internet, que é um meio de transmissão inseguro, eles devem ser protegidos de forma a não permitir que sejam modificados ou interceptados.

Outro serviço oferecido pelas VPNs é a conexão entre corporações (Extranets) através da Internet, além de possibilitar conexões dial-up criptografadas que podem ser muito úteis para usuários móveis ou remotos, bem como filiais distantes de uma empresa.

Uma das grandes vantagens decorrentes do uso das VPNs é a redução de custos com comunicações corporativas, pois elimina a necessidade de links dedicados de longa distância que podem ser substituídos pela Internet. As LANs podem, através de links dedicados ou discados, conectar-se a algum provedor de acesso local e interligar-se a outras LANs, possibilitando o fluxo de dados através da Internet. Esta solução pode ser bastante interessante sob o ponto de vista econômico, sobretudo nos casos em que enlaces internacionais ou nacionais de longa distância estão envolvidos. Outro fator que simplifica a operacionalização da WAN é que a conexão LAN-Internet-LAN fica parcialmente a cargo dos provedores de acesso.

Aplicações para redes privadas virtuais

Abaixo, são apresentadas as três aplicações ditas mais importantes para as VPNs.

ACESSO REMOTO VIA INTERNET

O acesso remoto a redes corporativas através da Internet pode ser viabilizado com a VPN através da ligação local a algum provedor de acesso (Internet Service Provider - ISP). A estação remota disca para o provedor de acesso, conectando-se à Internet e o software de VPN cria uma rede virtual privada entre o usuário remoto e o servidor de VPN corporativo através da Internet.



CONEXÃO DE LANS VIA INTERNET

Uma solução que substitui as conexões entre LANs através de circuitos dedicados de longa distância é a utilização de circuitos dedicados locais interligando-as à Internet. O software de VPN assegura esta interconexão formando a WAN corporativa.

A depender das aplicações também, pode-se optar pela utilização de circuitos discados em uma das pontas, devendo a LAN corporativa estar, preferencialmente, conectada à Internet via circuito dedicado local ficando disponível 24 horas por dia para eventuais tráfegos provenientes da VPN.



CONEXÃO DE COMPUTADORES NUMA INTRANET

Em algumas organizações, existem dados confidenciais cujo acesso é restrito a um pequeno grupo de usuários. Nestas situações, redes locais departamentais são implementadas fisicamente separadas da LAN corporativa. Esta solução, apesar de garantir a "confidencialidade" das informações, cria dificuldades de acesso a dados da rede corporativa por parte dos departamentos isolados.

As VPNs possibilitam a conexão física entre redes locais, restringindo acessos indesejados através da inserção de um servidor VPN entre elas. Observe que o servidor VPN não irá atuar como um roteador entre a rede departamental e o resto da rede corporativa uma vez que o roteador possibilitaria a conexão entre as duas redes permitindo o acesso de qualquer usuário à rede departamental sensitiva. Com o uso da VPN o administrador da rede pode definir quais usuários estarão credenciados a atravessar o servidor VPN e acessar os recursos da rede departamental restrita. Adicionalmente, toda comunicação ao longo da VPN pode ser criptografada assegurando a "confidencialidade" das informações. Os demais usuários não credenciados sequer enxergarão a rede departamental.



Requisitos basicos

No desenvolvimento de soluções de rede, é bastante desejável que sejam implementadas facilidades de controle de acesso a informações e a recursos corporativos. A VPN deve dispor de recursos para permitir o acesso de clientes remotos autorizados aos recursos da LAN corporativa, viabilizar a interconexão de LANs de forma a possibilitar o acesso de filiais, compartilhando recursos e informações e, finalmente, assegurar privacidade e integridade de dados ao atravessar a Internet bem como a própria rede corporativa. A seguir são enumeradas características mínimas desejáveis numa VPN:

=> Autenticação de Usuários

Verificação da identidade do usuário, restringindo o acesso às pessoas autorizadas. Deve dispor de mecanismos de auditoria, provendo informações referentes aos acessos efetuados - quem acessou, o quê e quando foi acessado.

=> Gerenciamento de Endereço

O endereço do cliente na sua rede privada não deve ser divulgado, devendo-se adotar endereços fictícios para o tráfego externo.

=> Criptografia de Dados

Os dados devem trafegar na rede pública ou privada num formato cifrado e, caso sejam interceptados por usuários não autorizados, não deverão ser decodificados, garantindo a privacidade da informação. O reconhecimento do conteúdo das mensagens deve ser exclusivo dos usuários autorizados.

=> Gerenciamento de Chaves

O uso de chaves que garantem a segurança das mensagens criptografadas deve funcionar como um segredo compartilhado exclusivamente entre as partes envolvidas. O gerenciamento de chaves deve garantir a troca periódica das mesmas, visando manter a comunicação de forma segura.

=> Suporte a Múltiplos Protocolos

Com a diversidade de protocolos existentes, torna-se bastante desejável que uma VPN suporte protocolos padrão de fato usadas nas redes públicas, tais como IP (Internet Protocol), IPX (Internetwork Packet Exchange), etc.

Tunelamento

As redes virtuais privadas baseiam-se na tecnologia de tunelamento cuja existência é anterior às VPNs. Ele pode ser definido como processo de encapsular um protocolo dentro de outro. O uso do tunelamento nas VPNs incorpora um novo componente a esta técnica: antes de encapsular o pacote que será transportado, este é criptografado de forma a ficar ilegível caso seja interceptado durante o seu transporte. O pacote criptografado e encapsulado viaja através da Internet até alcançar seu destino onde é desencapsulado e decriptografado, retornando ao seu formato original. Uma característica importante é que pacotes de um determinado protocolo podem ser encapsulados em pacotes de protocolos diferentes. Por exemplo, pacotes de protocolo IPX podem ser encapsulados e transportados dentro de pacotes TCP/IP.

O protocolo de tunelamento encapsula o pacote com um cabeçalho adicional que contém informações de roteamento que permitem a travessia dos pacotes ao longo da rede intermediária. Os pacotes encapsulados são roteados entre as extremidades do túnel na rede intermediária. Túnel é a denominação do caminho lógico percorrido pelo pacote ao longo da rede intermediária Após alcançar o seu destino na rede intermediária, o pacote é desencapsulado e encaminhado ao seu destino final. A rede intermediária por onde o pacote trafegará pode ser qualquer rede pública ou privada.

Note que o processo de tunelamento envolve encapsulamento, transmissão ao longo da rede intermediária e desencapsulamento do pacote.



Protocolos de tunelamento

Para se estabelecer um túnel é necessário que as suas extremidades utilizem o mesmo protocolo de tunelamento.

O tunelamento pode ocorrer na camada 2 ou 3 (respectivamente enlace e rede) do modelo de referência OSI (Open Systems Interconnection).

O objetivo é transportar protocolos de nível 3, tais como o IP e IPX na Internet. Os protocolos utilizam quadros como unidade de troca, encapsulando os pacotes da camada 3 (como IP/IPX) em quadros PPP (Point-to-Point Protocol). Como exemplos podemos citar:

* PPTP (Point-to-Point Tunneling Protocol) da Microsoft permite que o tráfego IP, IPX e NetBEUI sejam criptografados e encapsulados para serem enviados através de redes IP privadas ou públicas como a Internet.

* L2TP (Layer 2 Tunneling Protocol) da IETF (Internet Engineering Task Force) permite que o tráfego IP, IPX e NetBEUI sejam criptografados e enviados através de canais de comunicação de datagrama ponto a ponto tais como IP, X25, Frame Relay ou ATM.

* L2F (Layer 2 Forwarding) da Cisco é utilizada para VPNs discadas.

*Tunelamento em Nível 3 - Rede - (IP sobre IP)

Encapsulam pacotes IP com um cabeçalho adicional deste mesmo protocolo antes de enviá-los através da rede.

* O IP Security Tunnel Mode (IPSec) da IETF permite que pacotes IP sejam criptografados e encapsulados com cabeçalho adicional deste mesmo protocolo para serem transportados numa rede IP pública ou privada. O IPSec é um protocolo desenvolvido para IPv6, devendo, no futuro, se constituir como padrão para todas as formas de VPN caso o IPv6 venha de fato substituir o IPv4. O IPSec sofreu adaptações possibilitando, também, a sua utilização com o IPv4.

O funcionamento dos túneis

Nas tecnologias orientadas à camada 2 (enlace), um túnel é similar a uma sessão, onde as duas extremidades do túnel negociam a configuração dos parâmetros para estabelecimento do túnel, tais como endereçamento, criptografia e parâmetros de compressão. Na maior parte das vezes, são utilizado s protocolos que implementam o serviço de datagrama. A gerência do túnel é realizada através protocolos de manutenção. Nestes casos, é necessário que o túnel seja criado, mantido e encerrado. Nas tecnologias de camada 3, não existe a fase de manutenção do túnel.

Uma vez que o túnel é estabelecido os dados podem ser enviados. O cliente ou servidor do túnel utiliza um protocolo de tunelamento de transferência de dados que acopla um cabeçalho preparando o pacote para o transporte. Só então o cliente envia o pacote encapsulado na rede que o roteará até o servidor do túnel. Este recebe o pacote, desencapsula removendo o cabeçalho adicional e encaminha o pacote original à rede destino. O funcionamento entre o servidor e o cliente do túnel é semelhante.

Protocolos × Requisitos de tunelamento

Os protocolos de nível 2, tais como PPTP e L2TP, foram baseados no PPP, e, como conseqüência, herdaram muito de suas características e funcionalidades. Estas características e suas contrapartes de nível 3 são analisadas juntamente com alguns dos requisitos básicos das VPNs:

AUTENTICAÇÃO DE USUÁRIO

Os protocolos de tunelamento da camada 2 herdaram os esquemas de autenticação do PPP e os métodos EAP (Extensible Authentication Protocol). Muitos esquemas de tunelamento da camada 3 assumem que as extremidades do túnel são conhecidas e autenticadas antes mesmo que ele seja estabelecido. Uma exceção é o IPSec que provê a autenticação mútua entre as extremidades do túnel. Na maioria das implementações deste protocolo, a verificação se dá a nível de máquina e não de usuário. Como resultado, qualquer usuário com acesso às máquinas que funcionam como extremidades do túnel podem utilizá-lo. Esta falha de segurança pode ser suprida quando o IPSec é usado junto com um protocolo de camada de enlace como o L2TP.

SUPORTE A TOKEN CARD

Com a utilização do EAP, os protocolos de tunelamento de camada de enlace podem suportar uma variedade de métodos de autenticação, tais como senhas e cartões inteligentes (smart cards). Os protocolos de camada 3 também podem usar métodos similares, como, por exemplo, o IPSec que define a autenticação de chave pública durante a negociação de parâmetros feita pelo ISAKMP (Internet Security Association and Key Management Protocol).

ENDEREÇAMENTO DINÂMICO

O tunelamento na camada 2 suporta alocação dinâmica de endereços baseada nos mecanismos de negociação do NCP (Network Control Protocol). Normalmente, esquemas de tunelamento na camada 3 assumem que os endereços foram atribuídos antes da inicialização do túnel.

COMPRESSÃO DE DADOS

Os protocolos de tunelamento da camada 2 suportam esquemas de compressão baseados no PPP. O IETF está analisando mecanismos semelhantes, tais como a compressão de IP, para o tunelamento na camada 3.

CRIPTOGRAFIA DE DADOS

Protocolos de tunelamento na camada de enlace suportam mecanismos de criptografia baseados no PPP. Os protocolos de nível 3 também podem usar métodos similares. No caso do IPSec são definidos vários métodos de criptografia de dados que são executados durante o ISAKMP. Algumas implementações do protocolo L2TP utilizam a criptografia provida pelo IPSec para proteger cadeias de dados durante a sua transferência entre as extremidades do túnel.

GERENCIAMENTO DE CHAVES

O MPPE (Microsoft Point-to-Point Encryption), protocolo de nível de enlace, utiliza uma chave gerada durante a autenticação do usuário, atualizando-a periodicamente. O IPSec negocia uma chave comum através do ISAKMP e, também, periodicamente, faz sua atualização.

SUPORTE A MÚLTIPLOS PROTOCOLOS

O tunelamento na camada de enlace suporta múltiplos protocolos o que facilita o tunelamento de clientes para acesso a redes corporativas utilizando IP, IPX, NetBEUI e outros. Em contraste, os protocolos de tunelamento da camada de rede, tais como o IPSec, suportam apenas redes destino que utilizam o protocolo IP.

Tipos de túneis

Os túneis podem ser criados de 2 diferentes formas - voluntárias e compulsórias:

* Túnel Voluntário - um cliente emite uma solicitação VPN para configurar e criar um túnel voluntário. Neste caso, o computador do usuário funciona como uma das extremidades do túnel e, também, como cliente do túnel.

* Túnel Compulsório - um servidor de acesso discado VPN configura e cria um túnel compulsório. Neste caso, o computador do cliente não funciona como extremidade do túnel. Outro dispositivo, o servidor de acesso remoto, localizado entre o computador do usuário e o servidor do túnel, funciona como uma das extremidades e atua como o cliente do túnel.


TUNELAMENTO VOLUNTÁRIO

Ocorre quando uma estação ou servidor de roteamento utiliza um software de tunelamento cliente para criar uma conexão virtual para o servidor do túnel desejado. O tunelamento voluntário pode requerer conexões IP através de LAN ou acesso discado.

No caso de acesso discado, o mais comum é o cliente estabelecer a conexão discada antes da criação do túnel.

Nas LANs, o cliente já se encontra conectado à rede que pode prover o roteamento de dados encapsulados para o servidor de túnel selecionado. Este é o caso de clientes numa LAN corporativa que inicializa túneis para alcançar uma subrede privada na mesma rede.

TUNELAMENTO COMPULSÓRIO

O computador ou dispositivo de rede que provê o túnel para o computador cliente é conhecido de diversas formas: FEP (Front End Processor) no PPTP, LAC (L2TP Access Concentrator) no L2TP ou IP Security Gateway no caso do IPSec. Doravante, adotaremos o termo FEP para denominar esta funcionalidade - ser capaz de estabelecer o túnel quando o cliente remoto se conecta.



No caso da Internet, o cliente faz uma conexão discada para um túnel habilitado pelo servidor de acesso no provedor (ISP). Por exemplo, uma companhia pode ter um contrato com uma ou mais provedores para disponibilizar um conjunto de FEPs em âmbito nacional. Estas FEPs podem estabelecer túneis sobre a Internet para um servidor de túnel conectado à rede corporativa privada, possibilitando a usuários remotos o acesso à rede corporativa através de uma simples ligação local.

Esta configuração é conhecida como tunelamento compulsório porque o cliente é compelido a usar um túnel criado pelo FEP. Uma vez que a conexão é estabelecida, todo o tráfego "de/para" o cliente é automaticamente enviado através do túnel. No tunelamento compulsório, o cliente faz uma conexão PPP. Um FEP pode ser configurado para direcionar todas as conexões discadas para um mesmo servidor de túnel ou, alternativamente, fazer o tunelamento individual baseado na identificação do usuário ou no destino da conexão.

Diferente dos túneis individualizados criados no tunelamento voluntário, um túnel entre o FEP e o servidor de túnel pode ser compartilhado por múltiplos clientes discados. Quando um cliente disca para o servidor de acesso (FEP) e já existe um túnel para o destino desejado, não se faz necessária a criação de um novo túnel redundante. O próprio túnel existente pode transportar, também, os dados deste novo cliente. No tunelamento compulsório com múltiplos clientes, o túnel só é finalizado no momento em que o último usuário do túnel se desconecta.

IPSEC – Internet Protocol Security

O IPSec é um protocolo padrão de camada 3 projetado pelo IETF que oferece transferência segura de informações fim a fim através de rede IP pública ou privada. Essencialmente, ele pega pacotes IP privados, realiza funções de segurança de dados como criptografia, autenticação e integridade, e então encapsula esses pacotes protegidos em outros pacotes IP para serem transmitidos. As funções de gerenciamento de chaves também fazem parte das funções do IPSec.

Tal como os protocolos de nível 2, o IPSec trabalha como uma solução para interligação de redes e conexões via linha discada. Ele foi projetado para suportar múltiplos protocolos de criptografia possibilitando que cada usuário escolha o nível de segurança desejado.

Os requisitos de segurança podem ser divididos em 2 grupos, os quais são independentes entre si, podendo ser utilizado de forma conjunta ou separada, de acordo com a necessidade de cada usuário:

* Autenticação e Integridade;
* Confidencialidade.

Para implementar estas características, o IPSec é composto de 3 mecanismos adicionais:

* AH - Autentication Header;
* ESP - Encapsulation Security Payload;
* ISAKMP - Internet Security Association and Key Management Protocol.

NEGOCIAÇÃO DO NÍVEL DE SEGURANÇA

O ISAKMP combina conceitos de autenticação, gerenciamento de chaves e outros requisitos de segurança necessários às transações e comunicações governamentais, comerciais e privadas na Internet. Com o ISAKMP, as duas máquinas negociam os métodos de autenticação e segurança dos dados, executam a autenticação mútua e geram a chave para criptografar os dados.

Trata-se de um protocolo que rege a troca de chaves criptografadas utilizadas para decifrar os dados. Ele define procedimentos e formatos de pacotes para estabelecer, negociar, modificar e deletar as SAs (Security Associations). As SAs contêm todas as informações necessárias para execução de serviços variados de segurança na rede, tais como serviços da camada IP (autenticação de cabeçalho e encapsulamento), serviços das camadas de transporte, e aplicação ou auto-proteção durante a negociação do tráfego. Também define pacotes para geração de chaves e autenticação de dados. Esses formatos provêm consistência para a transferência de chaves e autenticação de dados que independem da técnica usada na geração da chave, do algoritmo de criptografia e do mecanismo de autenticação.

O ISAKMP pretende dar suporte para protocolos de segurança em todas as camadas da pilha da rede. Com a centralização do gerenciamento dos SAs, o ISAKMP minimiza as redundâncias funcionais dentro de cada protocolo de segurança e também pode reduzir o tempo gasto durante as conexões através da negociação da pilha completa de serviços de uma só vez.

AUTENTICAÇÃO E INTEGRIDADE

A autenticação garante que os dados recebidos correspondem àqueles originalmente enviados, assim como garante a identidade do emissor. Integridade significa que os dados transmitidos chegam ao seu destino íntegros, eliminando a possibilidade de terem sido modificados no caminho sem que isto pudesse ser detectado.

O AH é um mecanismo que provê integridade e autenticação dos datagramas IP. A segurança é garantida através da inclusão de informação para autenticação no pacote a qual é obtida através de algoritmo aplicado sobre o conteúdo dos campos do datagrama IP, excluindo-se aqueles que sofrem mudanças durante o transporte. Estes campos abrangem não só o cabeçalho IP como todos os outros cabeçalhos e dados do usuário. No IPv6, o campo hop-count e o time-to-live (TTL) do IPv4 não são utilizados, pois são modificados ao longo da transferência.

Para alguns usuários o uso da autenticação pode ser suficiente não sendo necessária a "confidencialidade".

No IPV6, o AH normalmente é posicionado após os cabeçalhos de fragmentação e End-to-End, e antes do ESP e dos cabeçalhos da camada de transporte (TCP ou UDP, por exemplo).

CONFIDENCIALIDADE

Propriedade da comunicação que permite que apenas usuários autorizados entendam o conteúdo transportado. Desta forma, os usuários não autorizados, mesmo tendo capturado o pacote, não poderão ter acesso às informações nele contidas. O mecanismo mais usado para prover esta propriedade é chamado de criptografia.

O serviço que garante a "confidencialidade" no IPSec é o ESP - Encapsulating Security Payload. O ESP também provê a autenticação da origem dos dados, integridade da conexão e serviço anti-reply. A "confidencialidade" independe dos demais serviços e pode ser implementada de 2 modos - transporte e túnel. No primeiro modo, o pacote da camada de transporte é encapsulado dentro do ESP, e, no túnel, o datagrama IP é encapsulado inteiro dentro da cabeçalho do ESP.

Conclusão

As VPNs podem se constituir numa alternativa segura para transmissão de dados através de redes públicas ou privadas, uma vez que já oferecem recursos de autenticação e criptografia com níveis variados de segurança, possibilitando eliminar os links dedicados de longa distância, de alto custo, na conexão de WANs.

Entretanto, em aplicações onde o tempo de transmissão é crítico, o uso de VPNs através de redes externas ainda deve ser analisado com muito cuidado, pois podem ocorrer problemas de desempenho e atrasos na transmissão sobre os quais a organização não tem nenhum tipo de gerência ou controle, comprometendo a qualidade desejada nos serviços corporativos.

A decisão de implementar ou não redes privadas virtuais requer uma análise criteriosa dos requisitos, principalmente aqueles relacionados a segurança, custos, qualidade de serviço e facilidade de uso que variam de acordo com o negócio de cada organização.

Referências

* "Virtual Private Networking: An Overview" . 29 de Maio de 1998. On-Line. http://www.microsoft.com/workshop/server/feature/vpnovw.asp. 26 de Junho de 1998.

* Maughan, Douglas; Schertler, Mark; Schneider, Mark; Turner, Jeff. "Internet Security Association and Key Management Protocol (ISAKMP)". 10 de Março de 1998. On-Line.
http://www.imib.med.tu-dresden.de/imib/Internet/Literatur/
ISAKMP/draft-ietf-ipsec-isakmp-09.txt. 28 de Junho de 1998.

* "Virtual Private Network" . 1998. On-Line. http://www.stts.com.br/vpn.htm. 28 de Junho de 1998.

* "IPSEC - Internet Protocol Security". Security Project at the TCM Laboratory. On-Line. http://www.tcm.hut.fi/Tutkimus/IPSEC/ipsec.html. 20 de Junho de 1998.

* Werner, José. "Tecnologias para Implantação de Redes Virtuais Privadas" . Fórum Nacional sobre Segurança de Redes e Telecomunicações. Março/1998. 20 de Junho de 1998.

* Henthorn, Alex. "VPN - Virtual Private Networks" . Livingston Enterprises, Inc. http://www.cernet.com.br/Livingston/napl/vpn.htm. 22 de Junho de 1998.

* "VPNs e IP Tunneling". On-Line. http://mingus.modulo.com.br/funciona.htm. 22 de Junho de 1998.

==============================================

Créditos: Black Hood.

100+