Nome da Revista Vol. , Nº. 0, Ano 2011 COMPARANDO O USO DO IPSEC E DO SSL/TLS EM VPN autor Marcelo Fontes [email protected] RESUMO A VPN (Virtual Private Network) é uma forma simples e de baixo custo de se estabelecer conexões por aproveitar a infraestrutura disponibilizada pela Internet. Uma VPN deve oferecer mecanismos que garantam a segurança da comunicação em um meio inseguro como a Internet. Os principais protocolos adotados e difundidos em VPNs para garantir a segurança nas comunicações através da Internet são o IPSEC (Internet Protocol Security) e o SSL/TLS (Secure Socket Layer/Transport Layer Secure). Esses protocolos são apresentados e comparados por meio de suas principais características, tais como formas de autenticação, criptografia, estabilidade, escalabilidade, algoritmos de trocas de chaves e gerenciamento, e também são apresentados os seus benefícios e limitações quando empregados nas VPNs. Palavras-Chave : VPN; SSL; IPSEC; Segurança; ABSTRACT The VPN is a simple and low-cost way of establishing connections by using the infrastructure available through the internet. A VPN has to provide mechanisms which guarantees communication security inside an insecure environment like the internet. The main protocols adopted and disseminated in VPNs to guarantee security to internet based communications are the IPSEC (Internet Protocol Security) and the SSL/TLS (Secure Socket Layer/Transport Layer Secure). Those protocols are here presented and compared by their characteristics, such as authentication method, encryption, stability, scalability, key changing algorithms and management. Benefits and limitations when VPNs are applied is also shown. Keywords : VPN; SSL; IPSEC; Security; Anhanguera Educacional S.A. Correspondência/Contato Alameda Maria Tereza, 2000 Valinhos, São Paulo CEP 13.278-181 [email protected] Coordenação Instituto de Pesquis as Aplic adas e Desenv olv im ento Educacional - IPADE Artigo Original / Informe Técnico / Resenha Recebido em: 30/12/1899 Av aliado em: 30/12/1899 Publicação: 22 de setembro de 2009 1 2 Comparando o uso do IPSEC e do SSL/TLS em VPN 1. INTRODUÇÃO O crescimento do uso da World Wide Web para fins comerciais, Intranets, Extranets, aplicações B2B (Business to Business) faz-se necessário o uso de estratégias e de protocolos de redes que garantam a segurança na comunicação através da Internet . Muitas empresas possuem vários escritórios e fábricas espalhadas por estados e até em outros países e adotam a infraestrutura da Internet para poderem conectar-se de forma segura e eficaz para compartilhar recursos como Banco de Dados, softwares de gestão, entre outras aplicações remotas. Outro fator importante é o crescimento dos funcionários móveis que utilizam computadores portáteis para acessarem as redes da corporação para desenvolverem os seus trabalhos normalmente como se estivessem nas dependências da companhia. Neste contexto, as VPNs (Virtual Private Network) entram como um mecanismo de garantir a segurança e possibilitar o acesso somente às pessoas autorizadas, e assim permitir que os recursos da companhia não fiquem disponíveis à pessoas estranhas. Atualmente existem inúmeros fabricantes que oferecem diversas soluções de VPNs, principalmente baseadas nos protocolos IPSEC (Internet Protocol Security) e SSL/TLS (Secure Transport Layer / Transport Layer Security) para garantir a segurança e a operação adequada das VPNs. Esse trabalho tem por objetivo apresentar os conceitos de VPNs e mostrar as características gerais dos protocolos IPSEC e SSL/TLS e compará-los quando aplicados em VPNs. 2. VPN (VIRTUAL PRIVATE NETWORK) O conceito de VPN (Virtual Private Network) consiste de uma rede de comunicações adotada por uma empresa de forma privada, através de uma rede pública ou privada qualquer (MORIMOTO, 2009). Adota-se normalmente a Internet, ao invés de utilizar uma linha privativa na implementação de uma rede corporativa. Basicamente VPNs são túneis de criptografia entre dois pontos autorizados para transferência segura de informação entre redes corporativas ou usuários remotos. A segurança é uma importante função da VPN, sendo fundamental a proteção dos dados privados que trafegam pela Internet, considerado um meio inseguro de transmissão, não sejam alterados ou interceptados (CHIN, 2004). Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 3 Além da proteção, as VPNs oferecem serviços de conexões entre as corporações através da Internet. Possibilitam também criar conexões dial-up criptografadas que podem ser utilizadas por usuários móveis ou remotos, bem como por filiais distantes de uma empresa. As VPNs também permitem reduzir os custos envolvidos em comunicação, eliminando a necessidade de compra de links dedicados de longa distância que são substituídos pela Internet (NAKAMURA; GEUS, 2007). As redes locais por meio de links dedicados ou discados conectam-se a algum provedor de acesso local e interligam-se a outras LANs, possibilitando o fluxo de dados pela Internet. Esta solução pode ser útil sob o ponto de vista econômico, principalmente nos casos em que enlaces nacionais e internacionais estão envolvidos, permitindo a simplificação da operação da WAN, onde a conexão LAN-WAN-LAN fica parcialmente sobre a responsabilidade dos provedores de acesso. 3. REQUISITOS BÁSICOS DE UMA VPN A VPN deve como requisito básico permitir o acesso de clientes remotos autorizados aos recursos da LAN corporativa, viabilizar a conexão de LANs para possibilitar o acesso de filiais, compartilhar recursos e informações, assegurar privacidade e integridade de dados ao atravessar a rede corporativa e a Internet. A seguir são apresentadas algumas características mínimas necessárias em uma VPN. Autenticação de usuários para verificar a identidade do usuário, restringindo o acesso às pessoas autorizadas. Dispor de mecanismos de auditoria, fornecendo informações referentes aos acessos efetuados; gerenciamento de endereços para que o endereço do cliente na sua rede privada não seja divulgado, sendo adotados endereços fictícios para o tráfego externo; criptografia de dados para que os dados trafeguem na rede pública ou privada em um formato cifrado para no caso de ser interceptado não serem decodificados; gerenciamento de chaves para garantir a segurança das mensagens criptografadas, deve funcionar como um segredo compartilhado exclusivamente entre as partes envolvidas na comunicação. O gerenciamento de chaves deve garantir a troca periódica das chaves para manter a comunicação de forma segura; múltiplos protocolos para suportar a diversidade de protocolos existentes torna-se necessário oferecer suportes a protocolos padrão usados em redes públicas, tais como o IP. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 4 Comparando o uso do IPSEC e do SSL/TLS em VPN 3.1. Tunelamento As VPNs são baseadas na tecnologia de tunelamento que adotam o processo de encapsular um protocolo dentro do outro. O uso de encapsulamento em VPNs possibilita criptografar o pacote que será transportado. Este pacote encapsulado trafega através da Internet até alcançar o destino onde é desencapsulado e decriptografado, retornando ao seu formato original. Outra possibilidade é encapsular pacotes de um determinado protocolo em protocolos diferentes. Por exemplo, pacotes IPX (Internet Packet Exchange) podem ser encapsulados e transportados dentro de pacotes TCP/IP. O protocolo de tunelamento encapsula o pacote por meio de um cabeçalho adicional que contém as informações de roteamento que permitem a travessia de pacotes ao longo das redes intermediárias. Os pacotes encapsulados são roteados entre as extremidades do túnel na rede intermediária, retornando ao estado original no seu destino final. A rede intermediária em questão por onde os pacotes trafegaram pode ser qualquer rede pública ou privada. 3.2. Protocolos de Tunelamento Em uma VPN para se estabelecer um túnel é preciso que as duas extremidades utilizem o mesmo protocolo de tunelamento. O tunelamento pode ocorrer nas camadas 2 e 3 do modelo OSI (Open System Interconnection). Nos protocolos de camada 2 um túnel é semelhante a uma sessão, de modo que as duas partes do túnel negociam os parâmetros de configuração para estabelecer o túnel. Nestes parâmetros estão envolvidos o endereço, criptografia e compressão, sendo o gerenciamento realizado pelos protocolos de manutenção. Os protocolos de camada 3 ao estabelecer o túnel, os dados já podem ser enviados. O usuário do túnel, que pode ser o cliente ou o servidor, utiliza o protocolo de tunelamento para a transferência de dados, onde um cabeçalho é anexado para a realização do transporte do pacote. Então o cliente envia o pacote encapsulado que será roteado até o servidor no outro ponto do túnel. O servidor recebe o pacote, desencapsula removendo o cabeçalho adicional e encaminha o pacote original à rede de destino. Neste método não existe a fase de manutenção e o funcionamento do túnel entre o cliente e o servidor é semelhante ao dos protocolos de camada 2. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 5 Nas seções a seguir serão apresentados os protocolos de tunelamento das camadas 2 e 3. 3.3. Protocolos de Tunelamento de camada 2 Adotado para o transporte de protocolos do nível 3, utilizando quadros como unidade de troca, encapsulando os pacotes da camada 3,como por exemplo em quadros PPP (Point – to – Point Protocol). São citados abaixo os protocolos de tunelamento de camada 2: PPTP (Point-to-Point-Tunneling Protocol) da Microsoft possibilita que o trafego IP, IPX e NetBEUI sejam criptografados e encapsulados para serem enviados através de redes públicas ou privadas; L2TP (Layer 2 Tunneling Protocol) permite que o tráfego IP, IPX, NetBEUI sejam criptografados e enviados através de canais de datagrama, tais como IP, X25, Frame Relay ou ATM; L2F (Layer 2 Forwarding) é um protocolo da Cisco utilizado para VPNs discadas. 3.4. Protocolos de Tunelamento de camada 3 É criado um cabeçalho adicional do protocolo IP antes de ser enviado através da rede, o modo túnel da camada 3 é descrito abaixo: O IPSEC Tunnel Mode possibilita que os pacotes IP sejam criptografados e encapsulados com cabeçalho adicional deste mesmo protocolo para ser transportado através de redes IP. Mais detalhes sobre o IPSEC serão apresentados na seção sobre VPN IPSEC. 4. VPN IPSEC A VPN IPSEC utiliza a completa infraestrutura oferecida pelo IPSEC para garantir os requisitos básicos de seguranças mencionados anteriormente. Nas próximas seções serão apresentadas as características e uma visão geral dos protocolos que compõem a arquitetura do IPSEC e os mecanismos adotados para atingir os objetivos de uma VPN. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 6 Comparando o uso do IPSEC e do SSL/TLS em VPN 4.1. IPSEC (INTERNET PROTOCOL SECURITY) Em 1995 o IPSEC (Internet Protocol Security) surgiu para atender às necessidades de segurança contra o monitoramento e o controle de tráfegos não autorizados através das redes de comunicações. Projetado pelo Internet Engineering Task Force (IETF), o IPSEC é um protocolo padrão da camada 3 que tem por finalidade oferecer transferências seguras fim a fim de informações através de uma rede IP pública ou privada. O IPSEC é uma plataforma aberta formada por um conjunto de protocolos que proporcionam serviços de autenticação, integridade, controle de acesso e confidencialidade na camada de rede IP, operando em IPv4 ou IPv6. A tecnologia IPSEC é uma das opções para implementação de VPNs e seus serviços podem ser adotados por quaisquer protocolos das camadas superiores como TCP, UDP, ICMP, BGP, entre outros (SILVA; TEIXERA, 2004). A especificação do IPSEC consiste em diversos documentos, os principais deles, emitidos em novembro de 1998, são: RFC 2401: Uma visão geral de uma arquitetura de segurança; RFC 2402: Descrição de uma extensão de autenticação de pacotes para IPv4 e IPv6; RFC 2406: Descrição de uma extensão de criptografia de pacote para IPv4 e IPv6; RFC 2408: Especificação das capacidades de gerenciamento das chaves. Além dos documentos mencionados acima, O IPSec é composto por uma série de outros que foram publicados pelo IP Security Protocol Working Group estabelecido pelo IETF (Internet Engineering Task Force) para padronizar as informações referentes à tecnologia. Nas próximas seções, serão apresentados os conceitos do IPSEC bem como as suas características de arquitetura, criptografia, autenticação e serviços. 4.2. Arquitetura do IPSEC Como mencionado na seção anterior, o IPSEC está especificado em uma série de RFCs, e por definição sua arquitetura aberta possibilita a inclusão de outros algoritmos de autenticação e criptografia. A RFC 2411, IP Security Document Roadmap, apresenta regras para produção, organização e inter-relacionamento entre os diversos documentos que Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 7 descrevem o conjunto de protocolos que formam a arquitetura IPSEC, conforme demonstrado abaixo: Figura 1 - Visão Geral do Documento IPSEC A seguir é apresentada uma breve descrição de cada item descrito no roadmap: Arquitetura: Conceitos gerais, requisitos de segurança, definições e mecanismos definindo a tecnologia; encapsulamento Seguro do payload: Formato do pacote e questões gerais relacionadas ao uso do ESP (Encapsulating Security Payload) para criptografia de pacote, e opcionalmente autenticação; autenticação do Cabeçalho: Formato do pacote e questões gerais relacionadas ao uso do AH (Authentication Header) na autenticação de pacotes; algoritmo de criptografia: Um conjunto de documentos que descrevem como diversos algoritmos de criptografia são usados para ESP; algoritmo de autenticação: Documentos que descrevem como vários algoritmos de autenticação são usados para AH e para a opção de autenticação do ESP; gerenciamento de chaves: Documentos que descrevem esquemas para o gerenciamento das chaves; domínio de interpretação (DOI): Valores para os outros documentos se relacionarem, incluindo identificadores para algoritmos aprovados de criptografia e autenticação, além de parâmetros operacionais. A arquitetura IPSEC possibilita selecionar entre uma série de protocolos e algoritmos de segurança. Os serviços de segurança são escolhidos a partir de um menu de serviços os quais o usuário pode escolher recursos, tais como controle de acesso, integridade, autenticação, proteção contra replay (“antireplay”) e confidencialidade. O IPSEC também Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 8 Comparando o uso do IPSEC e do SSL/TLS em VPN permite controlar a granularidade com que os serviços de segurança são aplicados, permitindo proteger fluxos estreitos ou fluxos largos. 4.3. AH (Authentication Header) AH (Authentication Header) é um mecanismo que oferece integridade sem conexões e autenticação da origem dos dados para os datagramas IP, podem ser adotados recursos opcionais para proteção contra reproduções. A garantia de segurança é realizada através da inclusão de informação para autenticação no pacote obtido por meio de um algoritmo aplicado sobre o conteúdo dos campos do datagrama IP, excluindo-se aqueles que sofrem alterações durante o transporte. O AH vem após o cabeçalho IPv4 ou é uma extensão do IPv6, sendo demonstrado na figura a seguir: Figura 2 - AH Authentication Header do IPSEC O campo Next Header identifica o tipo da próxima carga útil após o AH. O Payload Length especifica o tamanho do AH em palavras de 32 bits menos 2. O Campo Reserved é reservado para uso futuro, sendo atualmente definido como 0. O campo Security Parameters Index é um valor de 32 bits usado para identificar a associação de segurança para o datagrama, em combinação com o endereço IP de destino. Sequence Number contém um contador que aumenta progressivamente, sendo utilizado para proteção contra o replay. O Authentication Data é um campo de tamanho variável que contém o código de integridade de mensagem para o pacote. 4.4. ESP (Encapsulating Security Payload) O ESP (Encapsulating Security Payload) fornece serviços de confiabilidade, adicionando confiabilidade de conteúdo de mensagens e a confiabilidade limitada de fluxo de tráfego, sendo oferecido opcionalmente recurso de autenticação. A seguir é demonstrado a estrutura do ESP: Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 9 Figura 3 - ESP do IPSEC O SPI (Security Parameters Index) é um campo de 32 bits que identifica uma associação de segurança. O Sequence Number (32 bits) oferece uma função antireplay, idêntico ao AH. O campo Payload Data é um campo variável, sendo um segmento do nível de transporte ou pacote IP protegido por criptografia. O Padding é requerido por alguns algoritmos de criptografia, também requerido para que o texto cifrado resultante termine em um limite de 4 bytes. O Pad Length de 8 bits indica o número de bytes de complementação, o campo Next Header serve para identificar o tipo de dados contidos no campo de dados do Payload. Por fim, o campo Authentication Data, necessariamente composto de um número inteiro de palavras de 32 bits, contém o valor de verificação de integridade calculado sobre o pacote ESP, exceto o campo ESP. 4.5. Algoritmos de Criptografia A especificação do IPSEC dita que uma implementação precisa oferecer suporte a DES (Data Encryption Standard) no modo encadeamento de cifra de bloco (STALLINGS, 2008). Diversos outros algoritmos receberam identificadores no documento DOI, sendo facilmente adotados para criptografia no IPSEC. Abaixo são relacionados os principais e mais frequentemente adotados: Three-key triple DES; RC5; Three-key triple IDEA; Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 10 Comparando o uso do IPSEC e do SSL/TLS em VPN CAST; Blowfish. 4.6. Modos do IPSEC O IPSEC trabalha de dois modos, sendo eles o Túnel e o Transporte. No modo Transporte a autenticação e a criptografia é aplicada ao payload de IP entregue ao host, porém o cabeçalho não é protegido. O modo Túnel a autenticação é aplicada ao pacote IP inteiro entregue ao destino de IP externo, onde a autenticação é realizada no destino, e todo o pacote IP interno é protegido pelo mecanismo de privacidade, para entrega ao destino de IP interno. Nos dois casos, a autenticação é aplicada ao texto cifrado, em vez do texto claro. 4.7. Gerenciamento de chaves Envolve a determinação e a distribuição de chaves secretas. O requisito típico é o uso de quatro chaves para a comunicação entre duas aplicações pares de transmissão e recepção tanto no AH quanto no ESP. O documento da arquitetura IPSEC exige suporte para dois tipos de gerenciamento de chaves, sendo eles o Manual e o Automatizado. O gerenciamento de chaves Manual permite a configuração de cada sistema com suas próprias chaves e com as chaves de outros sistemas em comunicação, sendo muito adotado em ambientes pequenos e estáticos. O gerenciamento Automatizado possibilita a criação de chaves para SAs (Security Associations) sob demanda, facilitando o uso de chaves em um grande sistema distribuído com uma configuração que não é constante. O protocolo para o gerenciamento de chaves padrão do IPSEC é o ISAKMP/Oakley. Oakley é um protocolo de troca de chaves baseado no algoritmo Diffie-Hellman com segurança adicional e não dita formatos específicos. O ISAKMP (Internet Security Association and Key Management Protocol) oferece uma infraestrutura para o gerenciamento de chaves pela Internet com suporte a um protocolo específico, com formatos para a negociação de atributos de segurança. O ISAKMP consiste de um conjunto de tipos de mensagens que permite o uso de uma série de algoritmos de troca de chaves. Já o Oakley é o algoritmo de troca de chaves especifico exigido para uso com a versão final do ISAKMP. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 11 5. VPN SSL (SECURE SOCKET LAYER) A VPN SSL utiliza o protocolo SSL (Secure Socket Layer) para disponibilizar aos usuários remotos acesso aos recursos da rede da companhia através do navegador web. Todos os objetivos de uma VPN mencionados anteriormente são alcançados através da infraestrutura oferecido pelos serviços do SSL. Nas próximas seções serão apresentados os conceitos do SSL, bem como os recursos que garantem a segurança da transmissão de dados. 5.1. SSL (Secure Socket Layer) O protocolo SSL foi criado pela Netscape Communications Corporation, sendo implementado na maioria dos navegadores web da atualidade. O objetivo do SSL é permitir criar um método seguro para transmissão de dados criptografados entre o cliente e o servidor. Atualmente na versão 3.0, as principais características do SSL são independência de protocolo, segurança na transmissão Cliente/Servidor, interoperabilidade, extensibilidade e eficiência. 5.2. Arquitetura do SSL O SSL utiliza o TCP (Transmission Control Protocol) para oferecer serviços seguros e confiáveis de ponto a ponto. O protocolo SSL é dividido em duas Camadas, sendo uma de mais baixo nível que trabalha com o protocolo de transporte que é denominado protocolo Record. Este protocolo é responsável por encapsular os dados das camadas superiores em pacotes compactados e cifrados e encaminhá-los à camada de transporte. Na camada superior, encontra-se o protocolo de Handshake, o CCSP (Change Cipher Spec Protocol) e o Alert Protocol. Esses protocolos mencionados são utilizados no gerenciamento de troca de chaves e serão apresentados os conceitos gerais nas próximas seções. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 12 Comparando o uso do IPSEC e do SSL/TLS em VPN Abaixo é apresentada a representação da pilha de protocolos do SSL. Figura 4 - Pilha de protocolos SSL 5.3. Protocolo Record SSL O protocolo Record SSL fornece serviços de confiabilidade e integridade de mensagens nas conexões SSL. Ele define um conjunto de formatos e procedimentos pelos quais as mensagens da camada de aplicação são fragmentadas ou misturadas em blocos de um tamanho adequado para as próximas etapas. O protocolo Record também fornece procedimentos de compactação, proteção, criptografia para as mensagens passadas à camada inferior. Os dados não interpretados das camadas superiores em forma de blocos de tamanhos variáveis são encapsulados em registros e dependendo do tamanho sofrem uma fragmentação. O conteúdo do registro sofre compactação, em seguida são cifrados usando os algoritmos e chaves definidos pelo processo de Handshake. Na seção a seguir é apresentada uma visão geral do protocolo de Handshake. 5.4. Protocolo de Handshake SSL Constituído de duas fases, onde na primeira fase é feita a escolha da chave entre o cliente e o servidor e na segunda é realizada a autenticação (caso requerida) e o fim do Handshake. Completado o Handshake, o processo de transferência de dados entre aplicações pode ser iniciado. O Handshake é responsável por manter a consistência dos estados de uma sessão tanto no cliente quanto no servidor. Uma mesma conexão SSL pode incluir várias conexões a partir dos mesmos dados que formam uma sessão SSL. Os dados que formam uma sessão SSL são os seguintes: Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 13 Session ID é um valor arbitrário escolhido pelo servidor para identificar esta sessão; peer certificate é usado para certificar uma organização. Está no formato X.509 e dentre outras coisas encontra-se dentro dele a chave pública da entidade que está utilizando aquela aplicação; compression method é o algoritmo usado na compressão dos dados; cipherspec que especifica que conjunto de algoritmos de cifragem e de hash serão utilizados; mastersecret é um segredo de 48 bytes compartilhado pelo servidor e pelo cliente; isresumable é uma flag utilizada para indicar se a sessão pode ou não ser retomada ao iniciar uma nova conexão. O Handshake pode ser realizado de formas diferentes, dependendo se há ou não autenticação das partes envolvidas ou se há uma sessão de retomada. A seguir são demonstradas as mensagens trocadas durante um processo de Handshake: Figura 5 - Protocolo de Handskake Na primeira fase são estabelecidas as verificações da versão do protocolo, ID de sessão, conjunto de cifras, método de compactação e números aleatórios. A segunda fase o servidor pode enviar certificado, troca de chaves e solicitar certificado, e o servidor sinaliza o final da fase da mensagem HELLO. Na terceira fase o certificado é enviado pelo cliente, caso solicitado, e as chaves são enviadas, sendo que o cliente pode enviar a verificação do certificado. A última fase é trocar o conjunto de cifras e encerrar o handkshake, após finalizar, os dados são transmitidos. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 14 Comparando o uso do IPSEC e do SSL/TLS em VPN 5.5. Protocolo ChangeCipherSpec Formado por uma única mensagem, a change_cipher_spec, onde sua função é sinalizar alguma modificação nas estratégias ou parâmetros de segurança utilizados. Quando uma das partes do protocolo recebe uma mensagem change_cipher_spec durante o processo de Handshake, ela automaticamente troca as informações do estado atual de leitura pelos dados do estado pendente de leitura. No momento que uma das partes envia uma change_cipher_spec, ela automaticamente atualiza seu estado atual de escrita para o estado pendente de escrita. Qualquer mensagem enviada ou recebida após esta mensagem será trabalhada utilizando a nova estratégia de segurança, negociada no processo de handshake. Esta mensagem sempre precederá a mensagem de FINISHED. Uma mensagem change_cipher_spec inesperada ocasiona o envio de um alerta unexpected_message. 5.6. Protocolo Alert Cada erro gerado é enviado uma mensagem de alerta para o outro lado da conexão, dependendo do nível do erro a conexão é abortada e as mensagens de alerta são tratadas como mensagens normais, sofrem compactação e cifragem. Os níveis das mensagens de alerta são warnings e fatals. Os warnings são simples avisos que informam que alguma coisa não normal aconteceu ou foi detectada. Estes tipos de alertas podem gerar um fechamento da conexão dependendo da forma em que o SSL foi implementado. Os alertas fatais sempre ocasionam o fechamento da conexão. Estes alertas dizem respeito ao comprometimento de algum segredo ou detecção de alguma falha durante a conexão. Todos os dados a respeito de uma sessão devem ser apagados quando um erro fatal é enviado ou recebido durante uma conexão. 5.7. Algoritmos utilizados no SSL Os algoritmos adotados no SSL para troca de chaves mais comuns são apresentados abaixo: Algoritmos simétricos são utilizados no sigilo dos dados trafegados durante uma sessão SSL. Na atual especificação do SSL são usados os algoritmos RC4, DES, 3DES, RC2, IDEA e Fortezza; algoritmos assimétricos e de derivação de chaves: algoritmos utilizados para a troca de chaves e para o processo de assinatura Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 15 digital. Neste grupo estão o RSA, o DAS, somente assinatura, e o Diffie-Hellman para derivação de chaves; algoritmos de hash são usados para prover a integridade das mensagens enviadas e no processo de criação dos segredos. São especificados o MD5 e o SHA. Os algoritmos são escolhidos no protocolo através do uso das ciphersuites, basicamente são utilizados os campos PROT_KE_SIGALG_WITH_SIMALG_MAC onde, PROT é na atual especificação o valor SSL; KE é o algoritmo de troca de chaves; SIGALG é o algoritmo usado para as assinaturas digitais; SIMALG é o algoritmo simétrico; e MAC (Message Authentication Code) é o algoritmo de hash. 5.8. TLS (Transpor Layer Security) O TLS (Transport Layer Security) é uma iniciativa de padronização do IETF com o intuito de produzir um padrão de Internet que seja uma versão do SSL. Definido na RFC 2246, sendo muito semelhante à versão 3 do SSL, onde praticamente todos os campos dos protocolos que o compõem possuem os mesmos formatos. Os protocolos Record e Handshake possuem as mesmas características do SSL, apenas o campo versão tem seu valor alterado, sendo no TLS a versão principal 3 e a secundária 1. No restante, todos os outros cabeçalhos mantêm-se de forma idêntica ao padrão SSL. Os códigos de alerta do TLS são os mesmos definidos no SSL, com exceção de no_certificate, também foram adicionados alguns códigos fatais. O MAC (Message Authentication Code) possui diferenças em relação ao SSL 3.0, sendo adotado no TLS o algoritimo HMAC (Hashing for Message Authentication Code). TLS admite todas as técnicas para de troca de chaves, exceto o Fortezza. Os algoritmos de criptografia simétrica são os mesmos do SSL versão 3 menos o Fortezza. A versão do TLS também é conhecida como SSL 3.1 ou SSL/TLS, mas ainda não está definido se substituirá ao SSL por ser um pouco mais forte e robusto, no entanto permanece o problema de chaves RC4 fracas (TANENBAUM, 2003). 6. COMPARANDO IPSEC E SSL/TLS EM VPN Os protocolos IPSEC e o SSL/TLS são as soluções mais comuns em projetos de VPNs devido à suas características mencionadas nas seções anteriores. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 16 Comparando o uso do IPSEC e do SSL/TLS em VPN Apesar de serem os protocolos mais comuns, não há interoperabilidade entre o SSL/TLS e o IPSEC, eles trabalham em camadas diferentes do modelo TCP e são adotados de acordo com as decisões do projeto (PETERSON; DAVIE, 2003). O SSL/TLS opera na camada de transporte do modelo TCP e as aplicações devem ser construídas para suportá-lo. Normalmente as VPNs SSL/TLS são acessadas via web browser, embora seja possível implementá-las em outras aplicações. Os benefícios do SSL/TLS são a transparência para os protocolos dos níveis mais altos, facilidade no uso em e-commerce, não há conectividade permanente entre o cliente e o servidor, compatibilidade com praticamente todos os web browsers que incluem a verificação e a inclusão de certificados, além da facilidade de gestão e escalabilidade. As limitações incluem pouco suporte ao tráfego UDP, algumas aplicações podem ficar limitadas apenas ao browser, SSL/TLS pode não ter todas as configurações atendidas em diferentes servidores e clientes para autenticação, pode se tornar lento no caso de utilizar uma autoridade certificadora externa para assinar vários certificados digitais. Já o IPSEC opera na camada de rede do modelo TCP, os pacotes são encapsulados em túneis não importando se são UDP, TCP ou qualquer pacote de outro protocolo, sendo atingida a transparência total. Os benefícios do IPSEC são a capacidade de ser acrescentado a qualquer versão do protocolo IP (IPv4 ou IPv6) através de cabeçalhos adicionais, possuir autenticação, confidencialidade e gerenciamento de chaves. A autenticação pode ser aplicada a todo o pacote IP original ou a todo o pacote exceto o cabeçalho IP, possibilita segurança ao encapsular o payload, e permitir ao usuário escolher o tipo de técnica para gerenciamento de chaves. As limitações do IPSEC são a complexidade de implementação, dificuldade de aplicação para usuários móveis, requer suporte em dispositivos de hardware (routers, switchs, servers), problemas de incompatibilidade entre diferentes projetos, caso o padrão não tenha sido seguido Na próxima seção serão apresentadas as comparações técnicas entre o IPSEC e o SSL/TLS. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 17 6.1. Comparação técnica entre IPSEC e SSL/TLS As próximas tabelas apresentam algumas das principais características técnicas do IPSEC e do SSL/TLS, bem como suas limitações e benefícios quando adotados na aplicação em VPNs. Tabela 1 - Co mparação das Características Gerais VPN - baseado em SSL/TLS VPN - baseado em IPSec Autenticação de uma via / token Autenticação Criptografia Segurança Acessibilidade Custo Instalação Simplicidade Autenticação de duas vias usando tokens Autenticação de duas vias / tokens Certificado Digital Forte Baseada no Browser Certificado Digital Forte Depende da implementação Segurança fim a fim Recursos criptografados para o cliente Em qualquer lugar a qualquer hora acesso a base de usuários amplamente distribuídos baixo Da borda para o cliente Não há nenhum software cliente adicional necessário instalação Plug and play Cliente de VPN gateway criptografado Acesso limitado à base de usuários bem definidos e controlados alto Requer software de cliente gerenciado Implantação em longo prazo Nenhum software de cliente adicional Requer o software no lado cliente e ou ou instalação de hardware hardware Utilizado através de browsers - fácil uso Difícil para usuários não técnicos Não requer um treinamento avançado Requer pessoas treinadas. Aplicações baseadas na Web File sharing E-mail Todos os serviços baseados em IP Aplicações Usuários Clientes, parceiros, colaboradores, usuários remotos, vendedores Mais apropriado para uso interno na companhia Escalabilidade Facilmente implantado e escalonável Escalonável no lado do servidor Dificuldade em escalonar clientes Fonte: (JUNIPER NETWORKS , 2010) Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 18 Comparando o uso do IPSEC e do SSL/TLS em VPN Tabela 2 - Características Gerais – Continuação IPSec SSL Configuração Função Complexa Simples Autenticação do Cliente Obrigatória Opcional Pre-Shared Key Sim Não Problemas de Interoperabilidade Sim Não Suporte ao TCP Todas Algumas Suporte ao UDP Sim Não Taxa de Transmissão Alta Alta Compressão Tempo de Handshake Sim Lento Apenas no SSL Rápido Fonte: (JUNIPER NETWOR KS, 2010) A próxima tabela compara as aplicações suportadas pelas VPNs. Tabela 3 - Tipos de Aplicações Suportadas VPN - baseado em SSL/TLS Aplicações Cliente/Servidpr Aplicações Legadas Aplicações HTTP File sharing Aplicações em Mainframe Terminal servers Dependência aplicação de Server socket Sim Sim Sim Sim Sim Sim VPN - baseado em IPSec Sim Sim Sim Sim Sim Sim Sim Sim Aplicações Web Conteúdo de Intranet Voz sobre IP File Servers Controle de acesso para Intranets e Extranets Email Sim Sim Não Sim Sim Sim Sim Sim Sim Não Sim Sim Fonte: (ARRAY NETWORKS ) A tabela a seguir apresenta as características de acordo com o ambiente de tecnologia da informação. Tabela 4 - Co mparação por amb iente de tecnologia Tipo de conexão Tipo de dispositivo Tipo de Acesso Controle de Acesso Fonte:( WITNETWORKS ) Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 VPN - baseado em IPSEC Fixa Dispositivo Gerenciado site-to-site Firewall VPN - baseado em SSL Transitória Vários dispositivos Remoto Através de políticas Marcelo Fontes 19 A tabela a seguir demonstra os modelos de segurança aplicados à VPNs. Tabela 5 – Modelo de segurança Proxy protection Strong user authentication Strong central authorization Suporte à Single Sign-On (SSO) Dual/Stacked Authentication Proibe a visibilidade de nomes e IP Forms-based Authentication Controle ao nível de URL VPN - baseado em IPSEC VPN - baseado em SSL Sim Não Proprietário Sim Limitado Sim Não Sim Não Sim Não Sim Não Sim Não Sim Fonte: (ISSA – INFORMATION SYSTEMS SECURITY ASSOC IATION) A seguir serão analisadas as características de mobilidade dos protocolos de VPN em questão. Tabela 6 – Características de mobilidade Computador Corporativo Acesso de casa ou de um hotel com banda larga Parceiro de negócio Através de um Firewall de outra Companhia Através de Quiosque Públicou ou PC Público Através de rede Wireless VPN - baseado em IPSEC VPN - baseado em SSL Sim Sim software/hardware Sim adicionais software/hardware adicionais Sim software/hardware adicionais Sim Não Sim Sim Sim Varia de acordo com o dispositivo e Sistema operacional Sim Sim PDA Wireless Sim Dispositivo Macintosh Não Sim Não Dispositivo Linux Smartphone Sim Fonte: (CONNEWS) Nas tabelas a seguir são comparadas a eficiência dos algoritmos dos protocolos SSL/TLS e IPSEC. Tabela 7 - Portas utilizadas Protocolo Modo Servidor IPSec Cliente SSL Portas ESP-50/TCP AH 51 50/TCP ESP-50/TCP AH 51 50/TCP Servidor HTTPS 443 Cliente Nenhum Fonte: (SANOG - SOUTH ASIAN NETWOR K OPERATORS GROUP) Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 20 Comparando o uso do IPSEC e do SSL/TLS em VPN Tabela 8 - Overhead Protocolo IPSec - Modo Tunel IPSec - Modo Transporte SSL Modo Tamanho - Byte ESP 32 ESP e AH 44 ESP 36 ESP e AH 48 HMAQ - MD5 21 HMAQ -SHA -1 25 Fonte: (SANOG - SOUTH ASIAN NETWORK OPER ATORS GROUP ) Tabela 9 - Tempo de Handshake IPSEC Modo Estabelecimento Modo Principal (PSK) 97 msec Modo Agressivo (PSK) 56 msec Modo Principal (RSA) 170 msec Fonte: (ALSHAMSI; SAITO, 2004) Tabela 10 - Tempo de Handshake SSL/TLS Modo Estabelecimento Autenticação do Servidor 41,7 msec Autenticação do Cliente 74,8 msec Autenticação do Servidor (Diffie - Hellman) 66,1 msec Autenticação do Cliente (Diffie - Hellman) 118,6 msec Fonte: (ALSHAMSI; SAITO, 2004) Tabela 11 - Tempo para t ransferência SSL/TLS Algoritmo Sem Algoritmo 3DES - EDE - CBC - SHA DES - CBC - SHA RC4 - 128 - SHA RC4 - 128 - MD5 EXP - RC2 - CBC - MD5 Fon te: (ALSHAMSI; SAITO, 2004) Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Tempo (s) 2 9,8 5,5 3,8 3,4 3,9 Marcelo Fontes 21 Tabela 12 - Tempo de transferência IPSEC Algoritmo Sem Algoritmo 3DES - SHA-1 3DES - MD5 3DES - SHA-1 - DEFLATE 3DES - MD5 - DEFLATE AES - 128 - SHA-1 Tempo (s) 2 12 10,5 8,4 7,8 4,5 Fonte: (ALSHAMSI; SAITO, 2004) Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 22 Comparando o uso do IPSEC e do SSL/TLS em VPN 7. CONSIDERAÇÕES FINAIS A VPN é uma forma segura e econômica de realizar conexões através da infraestrutura oferecida pela Internet. No entanto, a escolha do protocolo de segurança adequado dependerá do tipo de aplicação, sendo que os protocolos IPSEC e SSL/TLS possuem benefícios e limitações, que de acordo com o tipo de projeto, poderá oferecer maior ou menor desempenho. O IPSEC possui características que o torna viável em aplicações siteto-site, estabelecendo uma conexão confiável entre dois pontos através de dispositivos e softwares que adotam o IPSEC. No entanto, não demonstra pontos fortes em ambientes em que se exige um alto grau de mobilidade. Para os casos onde se exige um alto fator de mobilidade e escalabilidade, o SSL/TLS apresenta benefícios que o torna mais adequado a este tipo de ambiente. Além dos protocolos de seguranças tratados neste artigo, outros procedimentos devem ser adotados para garantir a segurança das comunicações através da Internet que não foram mencionados, sendo o foco desse trabalho apenas comparar as características gerais do IPSEC e do SSL/TLS quando usados em VPNs. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23 Marcelo Fontes 23 AGRADECIMENTOS Este artigo teve inspiração nas aulas de Redes Wireless e Segurança de Redes ministradas pelo professor Alessandro Coneglian Bianchini durante o curso de pós – graduação no Centro Universitário Anhanguera. REFERÊNCIAS MORIMOTO, C. E. Servidores Linux. 2. ed. Porto Alegre: EdSUL, 2009. 736p. CHIN, L. K. Rede Privada Virtual. Rio de Janeiro, jun. 2004. Seção NewsGeneration . Disponível em: < http://www.rnp.br/newsgen/9811/vpn.html>. Acesso em: 28 jan. 2011. NAKAMURA, E. S.; GEUS, P. L. Segurança de Redes em Ambientes Cooperativos. 2. ed. São Paulo:Novatec, 2007. 482 p. SILVA, S. J.;TEIXEIRA, R. C. Arquitetura IPSEC. Rio de Janeiro, abr. 2004. Seção NewsGeneration. Disponível em: < h ttp://www.rnp.br/newsgen/9907/ipsec3.html#ng-introducao>. Acesso em: 3 abr. 2011. STALLINGS, W. Criptografia e se gurança de redes. 4. ed. São Paulo: Pearson, 2008. 492p. TANENBAUM, A. S. Redes de Computadores. 4. ed. Rio de Janeiro: Ca mpus, 2003. 945 p. PETERSON, L. L. ; DAVIE, B. S. Redes de Computadores: Uma abordagem de sistemas. 3. ed. Rio de Janeiro: Campus, 2003. 588p. JUNIPER NETWORKS. Whitepaper 2010: SSL versus IPSEC. Disponível em <http://www.juniper.net/us/en/local/pdf/whitepapers/2000232 -en.pdf>. Acesso em: 5 abr. 2011. ARRAY NETWORKS. SSL VPN vs. IPSEC VPN. Disponível em: <http://www.arraynetworks.net/ufiles/File/SSLVPNvsIPSecWhitePaper021006.pdf>. Acesso em: 5 abr. 2011. WITNETWORKS. IPSEC Protocol. Disponível em: <http://www.witnetworks.com/Downloads/Aventail/IPSec_v.pdf>. Acesso em: 7 abr. 2011. ISSA. Aventail IPSec vs SSL. Disponível em: <http://www.issa.org/info_resources/ISSA_20050421_Aventail_IPSec_vs_SSL_A4.pdf>. Acesso em: 6 abr. 2011. CONNEWS. IPSEC vs. SSL. Disponível em: <http://www.comnews.com/WhitePaper_Library/Security/pdfs/IPSevsSSL.pdf>. Acesso em: 8 abr. 2011. SANOG. IPSEC vs.SSL. Disponível em: <http://www.sanog.org/resources/sanog8/sanog8ipsecvsssl-kudsi.pdf>. Acesso em: 10 abr. 2011. ALSHAMSI, A.; SAITO, T. Technical Comparison of IPSec and SSL. TOKY O, 2004. Disponível em: < http://eprint.iacr.org/2004/314.pdf>. Acesso em: 12 abr. 2011. Autor Marcelo Fontes Biografia Profissional com 15 anos de experiência em empresa de grande porte do seguimento de informática e redes de computadores, pós graduado em redes de computadores e telecomunicações. Nome da Revista Vol. , Nº. 0, Ano 2009 p. 1-23