Você está na página 1de 133

FACULDADE SALESIANA DE VITRIA PS-GRADUAO EM SEGURANA DE REDES DE COMPUTADORES

ANDR LUIZ PERCIANO FANELI VANDERLEI CARLOS MARCHEZINI

OPENVPN: IMPLEMENTAO DE VPN ATRAVS DE SSL EM AMBIENTE DE SOFTWARE LIVRE

VITRIA 2007

ANDR LUIZ PERCIANO FANELI VANDERLEI CARLOS MARCHEZINI

OPENVPN: IMPLEMENTAO DE VPN ATRAVS DE SSL EM AMBIENTE DE SOFTWARE LIVRE

Monografia apresentada ao Curso de Psgraduao em Segurana de Redes de Computadores da Faculdade Salesiana de Vitria, como requisito final para obteno do ttulo de Especialista em Segurana de Redes de Computadores. Orientador: Prof. M. Sc. drian Bonf Drago

VITRIA 2007

Dados Internacionais de Catalogao-na-publicao (CIP) (Biblioteca da Faculdade Salesiana de Vitria, Esprito Santo, Brasil)

F211o

Faneli, Andr Luiz Perciano, 1963; Marchezini, Vanderlei Carlos, 1959 Openvpn : implementao de VPN atravs de SSL em ambiente de software livre / Andr Luiz Perciano Faneli, Vanderlei Carlos Marchezini. 2007. 133 f. : il. Orientador: drian Bonf Drago. Monografia (Ps-graduao em Segurana de Redes de Computadores) Faculdade Salesiana de Vitria. 1. Rede de Computadores Segurana. 2. Rede Virtual Privada. 3. OpenVPN. I. Marchezini, Vanderlei Carlos. II. Teixeira, Srgio. III. Faculdade Salesiana de Vitria. IV. Ttulo. CDU: 004.7

ANDR LUIZ PERCIANO FANELI VANDERLEI CARLOS MARCHEZINI

OPENVPN: IMPLEMENTAO DE VPN ATRAVS DE SSL EM AMBIENTE DE SOFTWARE LIVRE

Monografia apresentada ao Curso de Ps-graduao em Segurana de Redes de Computadores da Faculdade Salesiana de Vitria, como requisito final para obteno do ttulo de Especialista em Segurana de Redes de Computadores. Aprovada em 19 de junho de 2007.

COMISSO EXAMINADORA _________________________________________ Prof. M. Sc. Adrian Bonf Drago Orientador _________________________________________ Prof. M. Sc. Srgio Teixeira Faculdade Salesiana de Vitria _________________________________________ Prof. D.Sc. Davidson Cury Universidade Federal do Esprito Santo

AGRADECIMENTOS

s famlias, pelo incentivo e pacincia com que enfrentaram as inmeras ausncias dos finais de semana. Ao orientador, Adrian Bonf Drago, pela ateno, dedicao, ensinamentos e pacincia. Aos demais orientadores e professores do curso de psgraduao, que colaboraram por meio de crticas e sugestes, contribuindo dessa forma para a melhoria da qualidade deste trabalho.

RESUMO

Este trabalho objetiva examinar o conceito de VPN (Virtual Private Network) nos aspectos de aplicabilidade, funcionalidade, segurana, custos e benefcios, valendo-se de algumas ferramentas de software livre em ambiente Linux. Para tanto, escolheu-se a soluo OpenVPN, que tem como base o protocolo TLS/SSL. A idia central dessa escolha foi buscar uma alternativa qualitativamente capaz de equiparar-se s solues de VPN baseadas no protocolo IPSec, tecnologia onipresente no mercado e com ampla predominncia na literatura sobre o tema. O OpenVPN um projeto open source, disponvel para diversos ambientes computacionais e sistemas operacionais, incluindo Linux e Windows, e se beneficia da maturidade reconhecida do protocolo TLS/SSL, cuja evoluo e fortalecimento decorrem da forma exaustiva com que tem sido analisado procura de falhas. Ao final, apresentada uma proposta de implementao de uma VPN atravs do OpenVPN num cenrio matriz-filiais e feita a apresentao dos resultados obtidos. Palavras-chave: Redes de Computadores Segurana, Rede Virtual Privada, OpenVPN.

ABSTRACT

This work wishes to evaluate the concept of VPN (Virtual Private Network) on applicability, functionality, safety, costs and benefits, using some free software tools on Linux environment. Therefore, the chosen solution was OpenVPN, which is based on the

TLS/SSL protocol. The main idea on this alternative was to search for a capable way of equaling the solutions of VPN based on the IPSec protocol, technology that is omnipresent on the market with a wide prevalence on the related literature. The OpenVPN is an open source project, available for several computational environments and operating systems, including Linux and Windows, and benefits itself on the maturity recognized on the TLS/SSL protocol, of wichs evolution and strengthening come from the exhausting way with wich has been analyzed in search of flaws. In the end it is introduced an

implementation proposal of a VPN through the OpenVPN on a matrix-branch scenery and it is done and presentation of the obtained results.

Keywords: Computer Networks Security, Virtual Private Network, OpenVPN.

LISTA DE ILUSTRAES
Figura 1: Rede de computadores ................................................................................... 20 Figura 2: Fluxo normal de dados .................................................................................. 24 Figura 3: Interceptao.................................................................................................. 24 Figura 4: Interrupo ..................................................................................................... 24 Figura 5: Modificao ................................................................................................... 25 Figura 6: Fabricao ...................................................................................................... 25 Figura 7: TCP handshake.............................................................................................. 29 Figura 8: SYN flooding .................................................................................................. 30 Figura 9: Ataque man-in-the-middle............................................................................. 31 Figura 10: Ataque smurf................................................................................................ 33 Figura 11: O modelo de quatro camadas do TCP/IP .................................................... 34 Figura 12: Fluxo de dados entre as camadas da pilha TCP/IP ..................................... 35 Figura 13: Processo de handshake do TCP................................................................... 38 Figura 14: Redes com interligao via roteadores ........................................................ 41 Figura 15: Localizao de endereos num frame Ethernet. .......................................... 43 Figura 16: Exemplo de um firewall ............................................................................. 46 Figura 17: Gateway VPN dentro de um firewall. ............................................................ 48 Figura 18: Gateway VPN paralelo ao firewall. .......................................................................................... 48 Figura 19: Gateway VPN atrs de um firewall ............................................................ 49 Figura 20: Processo de cifragem e decifragem ............................................................. 50 Figura 21: Processo de criptografia simtrica......................................................................................... 51 Figura 22: Criptografia simtrica. ................................................................................ 51 Figura 23: Processo de criptografia assimtrica........................................................... 55 Figura 24: Criptografia assimtrica .............................................................................. 56 Figura 25: Representao do algoritmo RSA............................................................... 58 Figura 26: Processamento da funo hash.................................................................... 59 Figura 27: Processo de assinatura digital...................................................................... 62 Figura 28: Tnel virtual entre duas redes ..................................................................... 65 Figura 29: Topologia host-host..................................................................................... 69 Figura 30: Topologia host-rede .................................................................................... 70 Figura 31: Topologia rede-rede. ................................................................................... 71 Figura 32: Formato do pacote L2TP.............................................................................. 74 Figura 33: Modos do protocolo IPSec........................................................................... 78 Figura 34: Localizao da camada de segurana TLS/SSL na pilha TCP/IP................ 79 Figura 35: Frame Ethernet detalhando os protocolos superiores.................................. 80 Figura 36: TLS/SSL processo de handshake.............................................................. 82 Figura 37: Diagrama de conexes do laboratrio ......................................................... 86 Figura 38: Menu de opes do OpenVPN para Windows .............................................116

LISTA DE QUADROS
Quadro 1: Portas padronizadas .............................................................................................. 37 Quadro 2: Comparao entre protocolos de VPN ................................................................. 84 Quadro 3: Caractersticas de uso e localizao de chaves e certificados .............................. 98

LISTA DE ABREVIATURAS E SIGLAS


3DES Triple Data Encryption Standard ADSL Asymmetric Digital Subscriber Line AES Advanced Encryption Standard AH Authentication Header ANSI American National Standards Institute API Application Programming Interface ARP Address Resolution Protocol ATM Asynchronous Transfer Mode BSD Berkeley Software Distribution CA Certificate Authority CBC Cipher Block Chaining CEF Caixa Econmica Federal CFB Cipher Feedback CRL - Certificate Revogation List DES Data Encryption Standard DHCP Dynamic Host Configuration Protocol DNS Domain Name System DoS Denial of Service ECB Eletronic Codebook ESP Encapsulating Security Payload FTP File Transfer Protocol GPL General Public License GRE Generic Routing Encapsulation HMAC Hash Message Authentication Code ICMP Internet Control Message Protocol IDC International Data Corporation IDEA International Data Encryption Algorithm IETF Internet Engineering Task Force IKE Internet Key Exchange Protocol IP Internet Protocol IPSec Internet Protocol Secutity IPv4 Internet Protocol version 4 IPX Interwork Packet Exchange ISO International Organization for Standardization ISAKMP Internet Security Association and Key Management Protocol ISP Internet Service Provider ITU-T International Telecommunication Union - Telecommunication Standard Sector L2F Layer Two Forwarding L2TP Layer Two Tunneling Protocol LAN Local Area Network LPCD Linha Privativa de Comunicao de Dados LZO - Lempel-Ziv-Oberhumer MAN Metropolitan Area Network MD-5 Message Digest 5 MHz - Megahertz MPPE Microsoft Point-to-Point Encryption MS-CHAP Microsoft-Challenge Handshake Authentication Protocol

NAT Network Address Translation NetBEUI NetBIOS Extended User Interface NIST National Institute of Standards and Technologies NSA - National Security Agency OSI Open Systems Interconnection PAM - Pluggable Authentication Modules PKI Public Key Infrastructure POP3 Post Office Protocol 3 PPP Point-to-Point Protocol PPTP Point-to-Point Tunneling Protocol RARP Reverse Address Resolution Protocol RC6 - Rivest Cipher 6 ou Ron's Code 6 RFC Request For Comments RIP Routing Information Protocol RSA Rivest Shamir Adleman SA Security Association SAD Security Association Database SERASA Centralizao dos Servios dos Bancos S.A SERPRO Servio Federal de Processamento de Dados SHA Secure Hash Algorithm (SHA-1, SHA-2, SHA-224, SHA-256, SHA-384, SHA-512) SKEME - Secure Key Exchange Mechanism SMTP Simple Mail Transfer Protocol SNMP Simple Network Management Protocol SPD Security Policy Database SPI Security Parameters Index SRF Secretaria da Receita Federal SSH - Secure Shell SSL Secure Sockets Layer TAP - Terminal Access Point Interface TCP Transmission Control Protocol TI Tecnologia da Informao TLS Transport Layer Security TTL Time to Live TUN Tunneling Interface UDP User Datagram Protocol URL Uniform Resource Locator VPN Virtual Private Network WAN Wide Area Network WEB World Wide Web Wi-Fi Wireless Fidelity WINS Windows Internet Name Service

SUMRIO
1 INTRODUO ................................................................................. 15 1.1 Objetivo geral ....................................................................................... 16 1.2 Objetivo especfico ............................................................................... 17 1.3 Metodologia de trabalho ........................................................................ 17 1.4 Organizao do texto ............................................................................. 18 2 PRINCPIOS DE SEGURANA DA INFORMAO NAS REDES .......19 2.1 Redes de computadores..............................................................................20 2.2 Protocolos de comunicao ........................................................... 21 2.3 Fatores de segurana da informao na comunicao ..................... 21 2.4 Ameaas ...................................................................................... 23 2.4.1 Processo normal ................................................................. 24 2.4.2 Interceptao ..................................................................... 24 2.4.3 Interrupo ........................................................................ 24 2.4.4 Modificao ....................................................................... 25 2.4.5 Fabricao ......................................................................... 25 2.5 Principais ameaas e ataques s redes de computadores ................. 26 2.5.1 Vrus ................................................................................. 26 2.5.2 Verme (Worm) ................................................................... 26 2.5.3 Cavalo de Tria (Trojan horse) .......................................... 26 2.5.4 Back door (Porta dos fundos) ............................................. 26 2.5.5 Bomba lgica (Logic bomb)................................................ 27 2.5.6 Port scanning (varredura de portas) .................................... 27 2.5.7 Estouro de buffer (buffer overflow)..................................... 27 2.5.8 Quebra de senha (password cracking)................................. 28 2.5.9 Engenharia social ............................................................... 28 2.5.10 Sniffing (monitoramento, grampo) ................................... 28 2.5.11 DoS Denial of service (Interrupo de servios) ............... 29 2.5.12 SYN flooding (Inundao de SYN) ...................................... 29 2.5.13 Ping da morte (Ping of death) ............................................. 30 2.5.14 Spoofs................................................................................ 30 2.5.14.1 IP spoofing ......................................................... 30 2.5.14.2 Sequence number spoofing .................................. 31 2.5.14.3 Man-in-the-middle (homem no meio) .................. 31 2.5.14.4 Redirecionamento............................................... 31 2.5.14.5 DNS spoofing ..................................................... 32 2.5.14.6 Envenenamento de DNS (DNS poisoning)........... 32 2.5.14.7 Smurf ................................................................. 32 3 A ARQUITETURA TCP/IP DE QUATRO CAMADAS ................................34 3.1 Camada de aplicao ..................................................................................36 3.2 Camada de transporte .................................................................................37 3.2.1 Portas .............................................................................................. 37 3.2.2 Sockets ............................................................................................ 37 3.2.3 TCP Transmission Control Protocol ..........................................38 3.2.4 UDP User Datagram Protocol ................................................... 39 3.3 Camada de Internet..................................................................................... 40 3.3.1 IP (Internet Protocol) .....................................................................40

3.4

3.3.2 ICMP (Internet Control Message Protocol) ..................................42 Camada de acesso rede............................................................................43

4 MTODOS DE DEFESA......................................................................................... 45 4.1 Firewall ......................................................................................................45 4.2 Firewall e VPN .......................................................................................... 47 4.3 Criptografia ................................................................................................ 49 4.3.1 Criptografia simtrica.....................................................................50 4.3.1.1 Data Encryption Standard (DES) ...................................52 4.3.1.2 Triple Data Encryption Standard (3DES) ...................... 53 4.3.1.3 Advanced Encryption Standard (AES) ........................... 53 4.3.1.4 International Data Encryption Algorithm (IDEA) .........53 4.3.1.5 Blowfish/Twofish ............................................................. 54 4.3.2 Criptografia assimtrica .................................................................54 4.3.2.1 RSA (Rivest, Shamir e Adleman) ...................................57 4.3.2.2 Diffie-Hellman ................................................................ 58 4.3.3 Funo hash.................................................................................... 59 4.3.3.1 Message Digest (MD-5)..................................................60 4.3.3.2 Secure Hash Algorithm 1 (SHA-1) .................................60 4.3.4 Assinatura digital............................................................................61 4.3.5 Certificado digital...........................................................................62 5 CONCEITOS SOBRE VPNS................................................................................... 64 5.1 Tunneling ........................................................................................................64 5.2 Autenticao nas extremidades......................................................................65 5.3 Vantagens das VPNs ......................................................................................65 5.3.1 Segurana ...........................................................................................65 5.3.2 Transparncia .....................................................................................66 5.3.4 Custos .................................................................................................66 5.3.4 Flexibilidade.......................................................................................66 5.4 Desvantagens das VPNs.................................................................................66 5.5 Comparao com outras tecnologias de acesso remoto................................68 5.5.1 VPN x linhas dedicadas .....................................................................68 5.5.2 VPN x servidor de acesso remoto .....................................................68 5.6 Topologias.......................................................................................................69 5.6.1 Host-host.............................................................................................69 5.6.2 Host-gateway......................................................................................70 5.6.3 Gateway-Gateway..............................................................................70 5.7 Protocolos utilizados nas VPNs .....................................................................71 5.7.1 PPTP Point to Point Tunneling Protocol.......................................72 5.7.2 L2F Layer 2 Forwarding................................................................73 5.7.3 L2TP Layer 2 Tunneling Protocol .................................................73 5.7.4 IPSec Internet Protocol Security....................................................75 5.7.4.1 Negociao do nvel de segurana.....................................76 5.7.4.2 Autenticao e integridade.................................................77 5.7.4.3 Confidencialidade...............................................................78 5.7.5 TLS/SSL Transport Layer Security / Secure Sockets Layer .......79 5.8 Comparao entre protocolos de tunneling ................................................84

6 IMPLEMENTAO DE UMA VPN ATRAVS DO OPENVPN ...............85 6.1 Estudo de caso .............................................................................................85 6.1.1 Cenrio .............................................................................................86 6.1.2 Instalao............................................................................................88 6.1.2.1 Deciso quanto ao modo de operao desejado (router ou bridge) e do nvel de segurana requerido ........................................88 6.1.2.2 Download dos mdulos necessrios para a plataforma operacional, arquitetura de processador e nvel de segurana adotado ...........................................................................................89 6.1.2.3 Preparao do kernel dos gateways Linux ......................89 6.1.2.4 Instalao dos mdulos baixados nos gateways..............90 6.1.2.5 Criao da infra-estrutura de gerao e gerenciamento de chaves de criptografia e outros elementos de segurana..............91 6.1.2.5.1 Gerao da PKI.................................................92 6.1.2.5.2 Matriz ..............................................................95 6.1.2.5.3 Filiais e micro standalone (Windows) ..............97 6.1.2.5.4 Gerao de parmetros Diffie-Hellman............97 6.1.2.5.5 Resumo das caractersticas de utilizao das chaves e certificados gerados ...........................98 6.1.2.6 Preparao do arquivo de configurao da Matriz e setup dos demais elementos necessrios ao funcionamento do OpenVPN ...........................................................................................99 6.1.2.7 Preparao dos arquivos de configurao das Filiais e setup dos demais elementos necessrios ao funcionamento do OpenVPN ....................................................................................107 6.1.2.8 Instalao e configurao do OpenVPN no micro standalone (ambiente Windows).................................................. 112 7 CONSIDERAES FINAIS E FUTUROS TRABALHOS..........................119

REFERNCIAS........................................................................................................... 123 ANEXOS .........................................................................................................................125 ANEXO I - O algoritmo Diffie-Hellman..........................................................125 APNDICES........................................................................................................................127 APNDICE A - Comparativos entre OpenVPN e VPNs IPSec ......................127 APNDICE B - Caractersticas do OpenVPN .................................................128

15

1 INTRODUO

Nos ltimos anos tm ocorrido grandes mudanas na rea de tecnologia da informao, abrangendo tanto o hardware, o software e a infra-estrutura de comunicaes, como tambm as formas de distribuio de contedos atravs da Internet.

Inicialmente as redes locais de computadores eram utilizadas basicamente para o compartilhamento de seus recursos e aplicaes, sem muita preocupao com aspectos de segurana. As razes para isso eram diversas: a abrangncia fsica da rede era limitada, o nmero de usurios era pequeno, as aplicaes eram menos crticas no quesito disponibilidade, etc.

Com o advento da internet comercial e com a.crescente necessidade de comunicao entre as redes locais, incluindo o acesso a sistemas remotos, tornou-se necessria a adoo de uma poltica de segurana que garantisse o funcionamento desse conjunto de forma segura e confivel. Vrios mtodos foram desenvolvidos com este objetivo, entre eles a VPN (Virtual Private Network - Rede Privada Virtual.).

Antes do surgimento do conceito de VPN, as comunicaes entre as vrias localidades de uma empresa eram feitas atravs de servios de frame relay, linhas privadas, servidores de acesso remoto e modems. Apesar de serem seguras e apresentarem grande disponibilidade, essas tecnologias tinham um custo elevado e pouca escalabilidade. A cada nova filial a ser

conectada rede da empresa, entre outras situaes possveis, uma nova conexo dedicada deveria ser adicionada.

A tecnologia utilizada pela VPN consiste em criar "tneis virtuais" de comunicao entre as redes que se deseja interligar, fazendo com que os dados trafeguem por eles de forma criptografada. A criptografia imprescindvel, uma vez que o meio fsico de interligao, por questes de custo e abrangncia geogrfica, a prpria Internet.

Como benefcio adicional, a VPN permite expandir a quantidade de computadores que podem ter acesso a essa rede, sem investimentos em infra-estrutura extra. Permite tambm o suporte a usurios mveis, sem a utilizao de modems ou servidores de acesso remoto, ajudando a

16

aumentar a flexibilidade e diminuir os gastos com equipamentos extras.(SCRIMGER et al, 2002).

1.1 Objetivo geral


Este trabalho prope-se a demonstrar a funcionalidade e a segurana da tecnologia VPN, em ambiente Linux, utilizando a soluo de software livre OpenVPN, Para isso, ser utilizado um cenrio de integrao matriz-filial com links de comunicao ADSL.

A configurao de uma VPN requer inicialmente a escolha do sistema operacional dos gateways e a ferramenta que ser usada para implementar os protocolos adotados. Existem vrias ferramentas disponveis no mercado, com preos variados ou totalmente gratuitas. Este estudo preocupou-se com trs fatores bsicos: segurana, usabilidade e baixo custo de implementao. Por isso, foi utilizado o Linux, sistema operacional bastante flexvel, podendo ser configurado com o mnimo de opes necessrias, de forma a garantir maior segurana da rede. Alm disso, por ser de livre distribuio e estar disponvel gratuitamente atravs da Internet, reduz drasticamente os gastos com licenas, o que se reflete no custo total de propriedade. A distribuio escolhida foi a Fedora, derivada do Red Hat, pois alm de ser largamente utilizada em servidores do mundo inteiro, sendo reconhecida por sua estabilidade, foi a utilizada nos exerccios de laboratrio do curso de ps-graduao ao qual se relaciona este trabalho, o que garante bastante familiaridade com suas particularidades.

Em relao soluo de VPN, foi observado inicialmente uma predominncia quase absoluta de solues baseadas no protocolo IPSec. Percebeu-se um market share1, entre solues proprietrias e livres, em torno de 60% (RENDON, 2004). Na literatura sobre VPNs foi observada a mesma predominncia. Analisadas as razes, constatou-se que requisitos como robustez, segurana, aderncia a padres de mercado, variedade de recursos, entre outros, justificavam tal posio. No mundo do software livre o IPSec estava representado pelo OpenS/Wan (derivado do antigo FreeS/Wan), tendo sido a soluo de VPN utilizada nos exerccios de laboratrio do curso de ps-graduao citado. A partir dessas observaes, e da
1

Participao de mercado.

17

rejeio idia de produzir apenas mais um trabalho sobre o tema, foi levantado o seguinte questionamento: EXISTE OUTRO PROTOCOLO CAPAZ DE FAZER FRENTE AO IPSEC EM RELAO S CARACTERSTICAS CITADAS, COM DISPONIBILIDADE DE SOLUES OPEN SOURCE? A resposta foi SIM, obtida atravs de pesquisas na Internet, quando travou-se contato com o OpenVPN, soluo baseada no protocolo TLS/SSL. Pelas caractersticas bsicas exigidas (as mesmas citadas antes para as solues IPSec), aliadas a facilidade de configurao, disponibilidade como freeware para vrios sistemas operacionais, incluindo o Microsoft Windows e, principalmente e por conviver de forma amigvel com redes baseadas em NAT e IP dinmico, a ferramenta adotada acabou sendo o OpenVPN.

Como comum em se tratando de softwares open source e completamente gratuitos (Linux e OpenVPN), as orientaes para instalao e configurao foram obtidas principalmente da Internet, atravs de material disponvel on-line.

1.2 Objetivo especfico

Sedimentar e ampliar os conhecimentos adquiridos no curso ps-graduao em segurana de redes com Linux, ministrado pela FACULDADE SALESIANA no perodo de 2004 a 2006, e que se relacionam com o projeto proposto: segurana de redes, mtodos de criptografia, criptografia de chave pblica, gerao e utilizao de certificados digitais, protocolos de segurana, conceitos de firewall, conceitos de VPN, entre outros.

1.3 Metodologia de trabalho

Aps tomada a deciso sobre o tema VPN e escolhida a ferramenta OpenVPN, o trabalho voltou-se para a construo de um estudo de caso envolvendo um cenrio de interligao matriz-filial, com suporte adicional a micros isolados acessando a matriz. Procurou-se

conceituar os aspectos relevantes de implementao, o que exigiu algumas escolhas entre as alternativas suportadas. Foram ento aferidos os aspectos escolhidos para anlise de

resultados: flexibilidade de uso, segurana e comportamento nas condies adversas adotadas (links com IP dinmico em todas as pontas). Ao longo do trabalho, foram conceituados os

18

diversos elementos utilizados no projeto: redes, protocolos de rede, TCP/IP, ataques comuns na Internet, segurana na Internet, protocolos de segurana, etc.

1.4Organizao do texto
Este captulo trata da introduo do trabalho, dos seus objetivos, da metodologia adotada e resume o contedo dos diversos captulos. O captulo 2 aborda os princpios de comunicao nas redes de computadores, bem como questes de segurana, conceituando os fatores de segurana e descrevendo os tipos de ataque mais comuns.

O captulo 3 explica o modelo de quatro camadas do TCP/IP, expondo de forma resumida cada uma delas. Os conceitos abordados neste captulo so fundamentais para o entendimento do funcionamento da VPN, e de algumas decises de implementao adotadas. O captulo 4 contm informaes relevantes a respeito dos mtodos de defesa adotados nas VPNs, sendo abordados temas como criptografia, protocolos de cifragem, protocolos para troca de chaves, mecanismos de hashing, assinaturas e certificados digitais, entre outros. O captulo 5 trata exclusivamente dos conceitos concernentes as VPNs, sendo observadas as suas principais caractersticas, seus elementos, as topologias e as vantagens e desvantagens do seu uso em comparao com outras tecnologias. Tambm aborda e compara alguns dos principais protocolos usados no estabelecimento de VPNs.

O captulo 6 mostra em detalhes como uma VPN experimental utilizando o OpenVPN foi implementada, descrevendo o ambiente de testes e os aspectos relevantes de sua configurao, alm dos resultados obtidos.

Por fim, no captulo 7, vm as consideraes finais e sugestes para trabalhos futuros relacionados ao tema.

19

2 PRINCPIOS DE SEGURANA DA INFORMAO NAS REDES


Este captulo trata dos princpios da segurana que se aplicam s atividades da rea de tecnologia da informao, atravs dos quais se busca, utilizando ferramentas adequadas de hardware e de software, evitar os riscos de vazamento de dados, uso indevido ou roubo de informaes, interceptao de senhas, indisponibilizao de servios, ou qualquer outro tipo de ameaa que possa causar prejuzo e descontinuidade de servios para as organizaes.

As redes de computadores surgiram como resposta necessidade da troca de informaes, permitindo o acesso a dados localizados fisicamente a distncias considerveis.

Com as sucessivas redues no custo dos insumos de informtica observadas nos ltimos anos, comum que uma empresa possua uma ou vrias filiais com suas prprias redes de computadores. Em geral, porm, elas no tm qualquer ligao entre si, fato que se deve principalmente ao fator custo. Este, por sua vez, est relacionado, em alguns casos, grande distncia geogrfica existente entre elas. Apesar disso, a troca de informaes, boa parte das quais sigilosas, essencial. Com o objetivo de dar suporte a essa necessidade, diversos mtodos foram desenvolvidos para interligar essas redes de forma segura. Atualmente, a Internet o meio pblico mais utilizado para a troca de informaes entre organizaes ou entre diferentes localidades de uma mesma empresa. A VPN constitui uma das principais formas de interligao dessas redes, sendo comum a utilizao de meios pblicos de transmisso de dados, dentre eles a Internet . A principal caracterstica da VPN a criao de tneis virtuais de comunicao entre as redes, de tal forma que os dados trafeguem embaralhados ou criptografados.

De acordo com Cyclades A principal motivao para a implementao de VPNs financeira [...]. Tal percepo tem despertado um interesse crescente de empresas com diversas filiais que necessitam de uma forma econmica de comunicao, a adotarem esta tecnologia. (CYCLADES, 2000)

Outra caracterstica que as VPNs possuem a escalabilidade. Uma vez implantado um site de acesso (matriz ou filial), pode-se adicionar novos computadores rede local, com pleno acesso aos demais sites que fazem parte da VPN, sem investir em infra-estrutura extra.

20

O suporte a usurios mveis tambm garantido pela tecnologia, que dispen s a a m anut eno de i nmeros modems, linhas telefnicas e servidores de acesso remoto.

A correta utilizao das ferramentas de VPN, combinada com outras ferramentas de segurana e com medidas de controle adequadas, proporciona um ambiente seguro e organizado e concede benefcios diversos: aumento de produtividade, funcionamento contnuo e sem interrupo das aplicaes e ambiente seguro para as informaes da empresa.

2.1 Redes de computadores


Para Tanenbaum, uma rede de computadores um conjunto de computadores autnomos interconectados, trocando informaes entre si, atravs de fios de cobre, fibras pticas, links de rdio, microondas, satlites de comunicao, entre outros, a Figura 1, composta por cinco computadores, uma impressora e um hub2, demonstra um exemplo de rede de computadores. (TANENBAUM, 1997)

Figura 1 Rede de computadores

A tecnologia de interligao de computadores e perifricos em redes foi criada objetivando inicialmente compartilhar recursos entre os seus usurios, tais como aplicaes, equipamentos
2

Dispositivo de baixo custo, responsvel por concentrar as conexes dos equipamentos de uma rede local, repetindo os sinais recebidos para todas as suas portas. Assim, sua forma de trabalho mais simples se comparada de um switch ou de um roteador.

21

e dados.

Tal compartilhamento deveria se dar de forma transparente, independendo da

localizao fsica dos usurios ou dos prprios recursos.

Trs itens foram fundamentais para o desenvolvimento das redes: a confiabilidade (duas ou mais fontes alternativas de fornecimento do mesmo dado), a escalabilidade (possibilidade de aumentar os recursos gradualmente, medida que isso se mostra necessrio) e a economia de custos (troca de carssimos computadores de grande porte mainframes por um maior nmero de computadores pessoais de preo accessvel).

Um exemplo de rede mundialmente difundida a Internet, que possui milhes de computadores interconectados trocando as mais diversas informaes, tais como email, arquivos, pginas web pessoais e corporativas, blogs, vdeos, etc...

2.2 Protocolos de comunicao


A famlia de protocolos TCP/IP, por se constituir no protocolo bsico da Internet desde a sua criao, amplamente utilizado para a comunicao tanto na rede local quanto entre redes. Por razes histricas, o projeto do TCP/IP no deu nfase s questes de segurana. Trata-se, portanto, de um protocolo muito inseguro. As aplicaes que demandam algum nvel de segurana devem agregar novas funcionalidades ao protocolo original. Isso pode ser feito adicionando novos cabealhos ou novas camadas, o que, em ambos os casos, significa introduzir um novo protocolo. Dada sua importncia, no captulo seguinte mostrado em detalhes o TCP/IP, com todos os seus principais protocolos e conceitos associados.

2.3 Fatores de segurana da informao na comunicao

Dado que o TCP/IP por si s no prov mecanismos para uma comunicao segura e confivel entre dois ns de rede, foram desenvolvidas ao longo dos anos ferramentas que buscam fechar essa lacuna. Essas ferramentas sero mais detalhadas no captulo 4.

Alm dos problemas intrnsecos do TCP/IP, outros fatores de risco existem, situando-se no

22

mbito do sistema operacional, dos protocolos e dos aplicativos: falhas de programao que se traduzem em vulnerabilidades explorveis por atacantes. As principais origens das vulnerabilidades so: Deficincias de projeto: provocam brechas de segurana no hardware ou no software; Deficincias de implementao: instalao/configurao incorreta, por inexperincia, falta de treinamento ou desleixo; Deficincias de gerenciamento: procedimentos inadequados, verificaes e monitoramentos insuficientes. Exemplos de situaes que podem ter como conseqncia o surgimento de vulnerabilidades: Software: limites mal definidos, bugs no projeto ou na programao, algoritmos deficientes em funo de situaes no previstas; Instalao fsica: m proteo fsica de equipamentos e de mdias contendo dados; Mdia: roubo, perda, danificao, desgaste no controlado de discos, fitas etc... Transmisso: interceptao de sinal, monitoramento, grampo; Humana: incompetncia tcnica, desleixo, preguia, ganncia, revolta, e outras.

Assim, considerando que o meio de comunicao e os dispositivos que possibilitam o acesso a ele so vulnerveis, as entidades envolvidas na troca de informaes pela rede devem garantir a segurana e o sigilo, alm de estar preparadas para se defender de atacantes que conhecem e exploraram tais vulnerabilidades.

Quando se fala em Internet, essa preocupao torna-se ainda maior. Com sua popularizao crescente nas empresas, o risco das informaes serem acessadas ou alteradas grande, pois, em tese, qualquer pessoa conectada rede pode vir a tomar posse delas, caso no estejam bem protegidas.

Segundo Margi, as principais funes de segurana so: (MARGI, 2000) Autenticidade: Procura certificar-se que a pessoa com quem se est trocando informaes sigilosas quem realmente deveria ser. A verificao de autenticidade necessria aps qualquer processo de identificao, seja de usurio para sistema, de sistema para usurio ou de sistema para sistema;

23

Confidencialidade: Consiste em proteger a informao contra leitura ou cpia por algum que no tenha sido explicitamente autorizado pelo seu proprietrio. Isso feito geralmente atravs do uso de criptografia; Integridade: D e v e a ssegurar que os dados no sero alterados durante s u a transmisso; Controle de acesso: Limita o acesso e a utilizao de recursos apenas a pessoas autorizadas. Acessos desconhecidos ou feitos por elementos no autorizados colocam a necessidade de uma verificao em todos os recursos envolvidos em busca de possveis danos que possam ter sido causados ao sistema, mesmo que nenhuma evidncia disso tenha sido percebida; Disponibilidade: Consiste na proteo dos servios prestados pelo sistema de forma que eles no sejam degradados ou tornem-se indisponveis sem autorizao. Deve manter os recursos disponveis, mesmo em caso de ataques; No-repdio: Impede que uma entidade (computador, pessoa, etc.) envolvida em uma transao de transmisso ou de recepo de dados, negue a sua participao nela; Auditoria: Consiste na capacidade de verificao das atividades do sistema e determinao do que foi feito, quando, por quem e o que foi afetado. Aplica-se no apenas verificao das atividades de usurios no autorizados, mas tambm de usurios autorizados, que podem cometer erros ou executar aes maliciosas no sistema.

2.4 Ameaas
Para tornar uma rede mais segura e confivel, deve-se estar atento s principais ameaas que podem comprometer a integridade das informaes nela existentes. Ao contrrio do que se pensa, nem sempre o inimigo est fora da rede, como um hacker3 ou cracker 4, mas event ualm ente dentro dela, como por exemplo um funcionrio mal intencionado, que geralmente possui livre acesso aos recursos disponveis.

As ameaas so classificadas em dois tipos: passivas e ativas. Uma ameaa dita passiva quando o sistema continua sua operao sem a percepo de ter um invasor na rede e, geralmente, tem como conseqncia o roubo de informaes. Uma ameaa ativa ocorre quando o invasor prejudica o sistema, atingindo os dados ou degradando os servios. (BATISTA, 2002)
3

Indivduo hbil em enganar os mecanismos de segurana de sistemas de computao. O mesmo que hacker, mas com o intuito de roubar, alterar ou apagar as informaes da rede invadida.

24

Os principais tipos de ataques, descritos por Margi, so mostrados a seguir de forma esquemtica. (MARGI, 2000)

2.4.1 Processo Normal A Figura 2 ilustra um processo normal para efeito de comparao.

Figura 2 Fluxo normal de dados

2.4.2 Interceptao Ataca a confidencialidade. um ataque passivo, conforme a Figura 3.

Figura 3 Interceptao

2.4.3 Interrupo Ataca a disponibilidade. um ataque ativo como demonstrado na Figura 4 a seguir.

Figura 4 Interrupo

25

2.4.4 Modificao Ataca a integridade. um ataque ativo, conforme a Figura 5.

Figura 5 - Modificao

2.4.5 Fabricao Ataca a autenticidade. O invasor se faz passar por uma origem conhecida do destino e simula uma comunicao falsa. um ataque ativo como ilustrado na Figura 6.

Figura 6 Fabricao

26

2.5 Principais ameaas e ataques s redes de computadores


A World Wide Web (Web) foi projetada sem muita, ou quase nenhuma, preocupao, com segurana. O objetivo principal era disponibilizar informaes de uma forma mais amigvel que os recursos disponveis na poca. Com o rpido crescimento da Web e com a diversificao de sua utilizao, a segurana se tornou um ponto de importncia crucial.

2.5.1 Vrus

um programa ou fragmento de cdigo, incapaz de funcionar de forma autnoma, requerendo por isso um programa hospedeiro, ao qual se anexa. Uma vez instalado num sistema, entra em operao quando o programa infectado executado. Utiliza uma tcnica de autopropagao, sendo capaz de infectar outros programas presentes no mesmo sistema ou alcanar outros sistemas atravs de emails com anexos infectados.

2.5.2 Verme (Worm) Em geral, um programa independente (autnomo), caracterstica que o diferencia dos vrus. Sua concepo faz com que se propague procurando outros sistemas atravs das conexes de redes acessveis ao sistema infectado. Atualmente existem programas de intruso que renem caractersticas de vrus e worms.

2.5.3 Cavalo de Tria (Trojan horse) Programa que se apresenta com tendo uma determinada finalidade, que realmente tem, mas, adicionalmente e de forma secreta, possui uma segunda funo cujo objetivo abrir o computador para invases, acessos remotos ou roubo de informaes (senhas, por exemplo).

2.5.4 Back door (Porta dos fundos) Funo no documentada de um programa de conexo ou autenticao, criada secretamente por quem o projetou ou programou. Em geral, objetiva permitir ou facilitar o acesso a um

27

sistema, ou ainda permitir o acesso privilegiado a algum. comum que um hacker, aps invadir um sistema, instale uma back door que lhe permita retornar futuramente caso o usurio ou administrador do sistema invadido descubra que sua segurana foi violada. Pode estar na forma de um programa executvel, de um script (muito comum no mundo Unix) ou de elementos do sistema (exemplo: uma conta de usurio com nome comum, mas com privilgios de administrador). Essas vrias formas da back door a diferenciam dos trojans, que so sempre arquivos executveis.

2.5.5 Bomba lgica (Logic Bomb) Programa ou seo de um programa projetado para executar alguma atividade ilegal relacionada com intruso, mas com a caracterstica particular de ser ativado por determinada condio lgica.

2.5.6 Port scanning (Varredura de portas5) Tcnica de reconhecimento bastante utilizada por hackers. Consiste num programa que procura descobrir as portas associadas aos daemons em execuo no sistema que se deseja invadir. De posse dessas informaes, o hacker pode planejar o ataque utilizando alguma vulnerabilidade daquele daemon.

2.5.7 Estouro de buffer (Buffer overflow) Consiste em enviar para um programa que espera a digitao de um dado qualquer uma informao que excede o tamanho previsto, ou que seja inconsistente com o padro de armazenamento requerido para aquele dado. Isso s possvel em programas que no tratam ou tratam de forma inadequada a consistncia dos dados de entrada. A conseqncia a desestruturao do cdigo em execuo, permitindo que cdigo estranho seja introduzido e executado. Esse cdigo estranho pode fazer parte da entrada de dados no consistida. Outra

Porta (port) representada por um nmero situado entre 1 e 65535 cuja funo identificar a aplicao qual o processo de comunicao se refere (vide captulo 3 item 3.2.1)

28

possibilidade que esses dados entrados de forma maliciosa forneam uma chamada para a execuo de um programa j presente no sistema ou localizados remotamente. Nas formas mais comuns de buffer overflow, cujas vtimas so servidores web ou ftp, o atacante submete uma URL6 muito grande (acima de 150 caracteres) que faz com que os servidores parem de responder.

2.5.8 Quebra de senha (Password cracking) Tambm conhecido como ataque de fora bruta. Ocorre quando se tenta vrias possibilidades de senha para ver se uma delas coincide. comum o uso de dicionrio de palavras/expresses comuns para balizar as tentativas. Existem muitos programas quebrasenha disponveis para a maioria dos sistemas operacionais e de rede.

2.5.9 Engenharia social Utiliza mtodos no-tcnicos para obter acesso a um sistema, em geral atravs de processos de persuaso, que levam algum a revelar informao sigilosa. Exemplo tpico: ligar para algum pertencente ou com acesso aos sistemas de uma empresa, identificando-se de forma convincente como um elemento pertencente rea de suporte tcnico, e inventar uma histria para solicitar a senha de acesso da vtima.

2.5.10 Sniffing (Monitoramento, grampo) Consiste no monitoramento dos pacotes transitando na rede. um processo passivo. Muitas vezes so usadas ferramentas de fabricantes ou comerciais, criadas com propsitos legtimos (gerenciamento e manuteno). As informaes obtidas so endereos IP, senhas, usernames, etc. Baseia-se no fato de que algumas aplicaes (telnet, por exemplo) no criptografam as senhas digitadas pelo usurio, fazendo com que trafeguem livremente at o servidor.

Uniform Resource Locator Define o protocolo de acesso e o endereo de uma informao na Internet, sendo utilizada nas aplicaes, incluindo os web browsers, para fins de endereamento.

29

2.5.11 DoS - Denial of Service (Interrupo de Servio) Ao que interrompe um servio ou impede totalmente seu uso por usurios/entidades legtimos. O objetivo principal tirar do ar (indisponibilizar) um servio, apenas para causar transtorno/prejuzo, ou para eliminar uma proteo que assim permitiria ao hacker utilizar outras formas de acesso no autorizadas. Os tipos de ataques DoS mais comuns so: Consumo da banda de rede: o atacante possui banda maior que a da rede alvo ou vrios atacantes atuam simultaneamente para provocar a sobrecarga; Consumo de recursos de sistema: visa criar situaes de abuso ou sobrecarga que ultrapassem o limite de determinado recurso (buffer, HD...); Adulterao de rotas/DNS: ao invs de desativar um servio, impede o acesso ao servio legtimo (DNS Poisoning, j visto anteriormente).

A explorao de falhas conhecidas do ambiente ou do software que tm como conseqncia a interrupo de determinado servio.

2.5.12 SYN Flooding (Inundao de SYN7) Ataca o handshake de 3-vias (3-way handshake) do estabelecimento de conexo TCP. O cliente envia uma sequncia SYN; o servidor o reconhece e responde com um SYN-ACK; o cliente reconhece a resposta enviando ACK8 e inicia a transferncia de dados. A Figura 7 mostra o processo normal de estabelecimento de uma conexo TCP.

Figura 7 TCP Handshake


7

SYN (Synchronize sequence number) pacote enviado por um dispositivo de rede ao seu destinarrio para indicar que deseja iniciar uma conexo TCP. 8 ACK (Aknowledgement packet) pacote de confirmao que o destino envia origem para sinalizar que recebeu corretamente os dados enviados atravs de uma rede.

30

O ataque consiste em enviar SYNs e no responder aos SYN-ACK, deixando em aberto os processos de estabelecimento de conexo at ocupar todos os buffers de conexo do servidor. Com isso, outros clientes no conseguem iniciar conexes legtimas e o ataque pode derrubar o sistema operacional se a situao consumir toda a memria livre do servidor. A Figura 8 mostra esse processo.

Figura 8 SYN Flooding

2.5.13 Ping da Morte (Ping of Death) O ping um comando do TCP/IP que envia um pacote IP para um endereo, para testar se ele existe e est vivo. Um sistema vulnervel no trata adequadamente pacotes ICMP (pacote de controle da camada IP) maiores do que o normal. O ataque feito enviando uma seqncia de pings com tamanho mximo (muito maior que o comum), que sobrecarregam o sistema atacado. Portanto, trata-se de um tipo de ataque que explora uma vulnerabilidade.

2.5.14 Spoofs So ataques baseados na falsificao ou disfarce da identidade do atacante. Existem vrios ataques desse tipo desse tipo, sendo os principais mostrados a seguir. 2.5.14.1 IP Spoofing Conforme ser detalhado no captulo 3, todo dispositivo em rede TCP/IP tem um endereo IP nico, que sua identificao (ex: 141.31.48.18). A tcnica consiste em atribuir mquina

31

invasora um IP que possa ser aceito pelos sistemas de validao (roteador, firewall) da rede na qual se situa o servidor alvo do ataque.

2.5.14.2 Sequence Number Spoofing Tambm conforme ser detalhado no captulo 3, conexes de rede TCP/IP usam nmeros de seqncia, includos nas transmisses e incrementados por transao. Se o algoritmo de gerao de nmeros previsvel, um hacker pode monitorar a conexo, gravar a troca de nmeros de seqncia e prever os prximos para se inserir na conexo.

2.5.14.3 Man-In-the-middle (Homem no meio) Consiste numa tcnica em que o invasor se interpe entre dois computadores que se comunicam. O trfego entre os dois computadores interceptado, de forma imperceptvel para ambos. O invasor ento altera os dados transmitidos de forma a atingir seus objetivos. um ataque difcil de ser implementado por exigir do invasor grande conhecimento de programao e das caractersticas das redes nas quais se inserem os computadores alvo. A Figura 9 a seguir ilustra como isso acontece.

Figura 9 Ataque man-in-the-middle

2.5.14.4 Redirecionamento

Consiste em inserir links para destinos falsos. O usurio pensa que est se comunicando com determinada entidade, quando na verdade foi redirecionado para outro servidor que se

32

comporta aparentemente como o original. O exemplo mais corriqueiro desse tipo de ataque aquele em que os usurios de home banking so direcionados para uma pgina falsa que emula o layout e forma de interao da pgina original. Com isso, o invasor consegue capturar a senha e outros dados do usurio.

2.5.14.5 DNS spoofing Consiste em alterar o endereo IP associado a determinado hostname9, no servidor DNS do domnio daquele hostname. Exemplo: quando algum fizer um acesso ao host identificado pelo hostname www.bancodobrasil.com.br, a consulta ao servidor DNS do domnio bancodobrasil.com.br retornar um IP que no corresponde ao IP do site do Banco do Brasil, mas a outro site previamente preparado para isso. Tal ataque requer a invaso do servidor DNS do domnio do servidor alvo.

2.5.14.6 Envenenamento de DNS (DNS Poisoning) Baseia-se no fato de que as consultas mais freqentes feitas a um servidor DNS so armazenadas em cache para facilitar futuras consultas (da prxima vez, no ser mais necessrio um acesso fsico para obter a resposta, uma vez que ela j se encontra disponvel). O ataque consiste em alterar o IP da mquina alvo no cache DNS, de forma a se obter uma resposta que direciona o acesso para uma mquina previamente preparada, tal como ocorre no DNS spoofing.

2.5.14.7 Smurf

O atacante envia uma mensagem ICMP do tipo ECHO REQUEST fazendo spoofing do endereo de origem (substituindo-o pelo endereo IP da mquina alvo do ataque) e solicitando uma resposta (ICMP ECHO REPLY) a todas as mquinas da rede escolhida para desferir o ataque. A rede inteira responde para a mquina alvo real enviando o ECHO REPLY, o que sobrecarrega a rede e o sistema alvo. A Figura 10 ilustra o que ocorre.

Hostname - Nome que identifica um computador ou outro recurso na rede.

33

Figura 10 Ataque Smurf

34

3 A ARQUITETURA TCP/IP DE QUATRO CAMADAS


O TCP/IP um conjunto de protocolos de interconexo de sistemas que utiliza uma arquitetura de quatro camadas. Cada camada desse modelo consiste de um conjunto de protocolos que so referenciados como conjunto de protocolos TCP/IP (TCP/IP protocol sute). As quatro camadas so: acesso rede, internet, transporte e aplicao. A Figura 11 mostra a disposio das quatro camadas, sendo suas posies relativas importante porque definem o interfaceamento entre elas e delas com as aplicaes de rede e com a rede fsica.

Figura 11 O modelo de quatro camadas do TCP/IP

Cabe observar que no existe uma correspondncia exata em termos de agrupamento das sete camadas do modelo OSI nas quatro camadas da arquitetura TCP/IP. Por exemplo, a camada 3 do modelo OSI (rede) corresponde camada 2 do TCP/IP (internet), enquanto a camada de transporte e parte da camada de sesso do modelo OSI correspondem camada de transporte do TCP/IP.

35

O funcionamento do modelo de camadas baseia-se na adio de cabealhos aos dados transmitidos pela aplicao, em cada camada, e, no lado receptor, pela sua extrao medida em que ocorre o processamento nas respectivas camadas. Os dados contidos nos cabealhos contm informaes importantes para o transporte fsico e para o processamento. No lado emissor, cada camada, comeando pela de aplicao, insere o seu cabealho, e trata a mensagem recebida da camada superior como se fossem apenas dados. Assim, a mensagem vai ganhando novos cabealhos de controle medida em desce pela pilha TCP/IP, at ser transmitida pelo meio fsico. No lado receptor, os cabealhos vo sendo retirados e

processados por cada camada, na medida em que sobem pela pilha. Quando a mensagem chega aplicao de destino, est livre de cabealhos de controle e corresponde exatamente informao transmitida pelo emissor. A Figura 12 ilustra o fluxo de dados pela pilha TCP/IP entre dois hosts (A e B) com um roteador entre eles.

Figura 12 Fluxo de dados entre as camadas da pilha TCP/IP

36

3.1 Camada de aplicao


Funciona como uma interface de ligao entre os processos de comunicao de rede e as aplicaes utilizadas pelo usurio. No se deve confundir a camada de aplicao com as aplicaes do usurio propriamente ditas. Por exemplo, o protocolo SMTP situa-se na

camada de aplicao, mas um usurio no o utiliza diretamente. Ao invs disso, faz uso de um programa cliente de correio eletrnico, que por sua vez utiliza o protocolo SMTP para enviar emails. Cabe observar tambm que elementos da camada de aplicao podem estar implementados no prprio sistema operacional, e no necessariamente em ferramentas de terceiros.

de vital importncia perceber que as aplicaes de rede normalmente requerem dois programas separados: um mdulo servidor (server) e um mdulo cliente (client). O mdulo servidor geralmente executado em background e iniciado quase sempre junto com o sistema operacional, sendo referenciado pelo termo daemon. Do outro lado do link de rede, um usurio executa o mdulo cliente.

Nesta camada, os hosts so referenciados (endereados) por um nome, conhecido como hostname. Em aplicaes voltadas para a Internet, utiliza-se uma hierarquia de nomes

baseada em domnios e sub-domnios. Exemplo de um hostname completamente identificado (fully qualified hostname) seria: ftp.milmicroscorp.com.br, cuja interpretao seria: o host ftp pertence organizao milmicroscorp, que situa-se no sub-domnio com e no domnio br. Em outras palavras, identifica o servidor de ftp da empresa milmicroscorp, que pertence ao mundo das empresas comerciais (.com) e situa-se no Brasil (.br). Esse host ftp possui um endereo IP, que est associado ao seu hostname. Essa associao mantida por um sistema de abrangncia global chamado DNS (Domain Name Service).

Exemplos de protocolo: File Tranfer Protocol (FTP), Telnet, Simple Network Management Protocol (SNMP).

37

3.2 Camada de Transporte


Fornece servios de entrega fim-a-fim, entre servidor e cliente. Entre suas principais funes pode-se citar a organizao das mensagens recebidas das camadas mais altas em segmentos de tamanho menor, o controle de erros e o controle de fluxo fim-a-fim. Os protocolos dessa camada so o UDP e o TCP.

3.2.1 Portas

Um conceito importante do mundo TCP/IP o nmero de porta (port number) ou simplesmente porta. A cada aplicao de rede rodando num determinado computador (host) associada uma nica porta. Essa associao ocorre na camada de transporte. De forma simplificada, a porta pode ser vista como o endereo da aplicao dentro do host. O

cabealho dessa camada especifica sempre uma porta de origem e uma porta de destino. Se, por exemplo, um host deseja estabelecer uma sesso telnet com outro host, ele definir a porta de destino como 23 (porta padro da aplicao telnet) e a de origem como um nmero acima de 1.023 (as portas abaixo de 1.024 so reservadas para servios padronizados). Os nmeros de porta podem ir at 65.535. Assim existem 65.535 portas TCP e 65.535 portas UDP. Algumas portas padronizadas so mostradas no Quadro 1.

Servio FTP DNS SMTP POP3 SNMP

Descrio File Transfer Protocol Domain Name Service Simple Mail Transfer Protocol Post Office Protocol Simple Network Management Protocol
Quadro 1 Portas padronizadas

Porta 21 53 25 110 161

Protocolo TCP UDP TCP TCP UDP

3.2.2 Sockets Outro conceito importantssimo o de soquete (socket). Os sockets so a base para o estabelecimento da comunicao numa rede TCP/IP. Cada conexo possui um socket associado, que composto de trs informaes: 1) os endereos IP de origem e destino; 2) As portas de origem e destino e 3) protocolo de transporte utilizado. Exemplo de um socket

38

seria: IP de origem 201.23.234.5, IP de destino 201.39.124.35, porta de origem 2.345, porta de destino 22, protocolo de transporte TCP. O socket nico para cada conexo.

3.2.3 TCP Transmission Control Protocol um protocolo orientado a conexo (connection-oriented protocol). A comunicao que um protocolo desse tipo oferece dita segura com entrega garantida (reliable data delivery). Nela, os dados so formatados em pacotes (packets) que so seqenciados e submetidos a um processo de confirmao de recebimento (acknowledgement), estabelecendo um circuito virtual de comunicao entre o servidor e o cliente. Caso o emissor do pacote no receba uma mensagem de confirmao de recebimento (ACK), ocorrer uma retransmisso. A segurana da comunicao garantida por esse mecanismo. Por questes de desempenho (diminuio do overhead10), no se utiliza acknowledgements para cada pacote transmitido. Ao invs disso, os pacotes so agrupados e os Esse conceito

acknowledgements ocorrem por grupo, e no para pacotes individuais.

conhecido como windowing. Os algoritmos que implementam essa tcnica dentro do TCP so bastante sofisticados e no cabe descrev-los aqui.

Antes que dados possam ser transmitidos, deve ser estabelecida uma conexo TCP, e o processo que faz isso recebe o nome de three-way handshake. Uma descrio bem resumida desse processo ilustrado na Figura 13.

Figura 13 Processo de handshake do TCP

10

Overhead diz respeito a utilizao excessiva de um recurso computacional (processamento, memria, espao em disco, largura de banda, etc), provocando uma queda perceptvel no desempenho do sistema afetado.

39

Passo 1 - O host que deseja iniciar a comunicao transmite um pacote SYN (Synchronize Sequence Numbers) para o outro host com o objetivo de informar que uma nova conexo est sendo requisitada e para estabelecer que nmero ser usado como ponto de partida para numerao seqencial das mensagens transmitidas. Esses nmeros seqenciais so utilizados pelo protocolo para garantir que os pacotes recebidos sero processados na ordem correta. Passo 2 - Para que o processo possa prosseguir, o host receptor deve confirmar o recebimento do pacote SYN e definir o nmero seqencial que ser usado para o envio de dados. Isso se d pelo envio de um pacote SYN, ACK de volta para o host emissor. Passo 3 - Finalmente, o host emissor envia um pacote ACK para informar ao host receptor que recebeu sua confirmao do pedido de conexo, e junto com ele envia os primeiros dados. A partir da, a comunicao continua com o envio e recepo efetivo de dados.

A comunicao prossegue at que todos os dados tenham sido enviados. Ocorre ento um processo de desconexo semelhante ao de conexo, tambm em trs fases, com o pacote FIN substituindo o pacote SYN.

Exemplos de aplicaes que utilizam TCP so: Telnet, FTP e SMTP.

3.2.4 UDP User Datagram Protocol Fornece servios de entrega sem conexo (connectionless) e sem garantia de sucesso. Ele transmite os dados pela rede especificando um endereo de destino e assume que eles chegaro l. A rede se esforar para manter os dados intactos e na ordem correta, mas se existem mltiplos caminhos entre o emissor e o receptor, os pacotes podero chegar fora de ordem. Tambm podem ocorrer perdas ou adulterao dos dados medida que eles viajam pela rede. No h meios de saber se uma mensagem chegou ao seu destino, ou se chegou na ordem correta. O UDP no se preocupa com essas possibilidades, assumindo que devem existir mecanismos na camada de aplicao capazes de cuidar desses problemas e de outros.

Tal como o TCP, o UDP tambm utiliza portas para identificar as aplicaes. Uma diferena importante entre os dois protocolos que o UDP permite o uso de broadcast de pacotes (envio de um pacote para todos os hosts de uma rede), ao passo que o TCP no.

40

A deciso sobre usar TCP ou UDP uma tarefa do desenvolvedor da aplicao de rede. O TCP, a princpio, parece ser uma melhor escolha, j que ele garante a entrega dos dados. Entretanto, o overhead decorrente da necessidade de acknowledgements pode tornar a implementao de certos sistemas impossvel. Assim, por ser mais rpido, o UDP pode ser uma opo melhor para esses sistemas. Exemplos de aplicaes que usam UDP so: DNS, SNMP e OpenVPN.

3.3 Camada de Internet


A principal funo dessa camada rotear pacotes entre diferentes hosts, o que feito atravs de um esquema de endereamento fornecido pelo protocolo IP (Internet Protocol). Este o protocolo principal da camada de internet (equivalente camada de rede do modelo OSI). Alm do IP, mais um protocolo dessa camada ser brevemente descritos: o ICMP (Internet Control Message Protocol).

3.3.1 IP (Internet Protocol) O protocolo IP um protocolo no orientado a conexo e incapaz de garantir a entrega de pacotes na rede. Se servios orientados a conexo forem necessrios, eles devero estar implementados na camada de transporte ou de aplicao. Suas principais funes so: endereamento de pacotes entre hosts, roteamento de pacotes entre redes, fragmentao e remontagem de mensagens e movimentao de dados entre a camada de transporte e a camada de acesso rede.

O cabealho IP contm muitos campos, sendo os principais o endereo de origem, o endereo de destino e o TTL (time to live).

41

Para ilustrar o processo de envio de pacotes entre dois hosts, pode-se utilizar como exemplo a Figura 14 a seguir. Primeiro, PC111 deseja enviar um pacote para PC2. Em seguida, para PC3. Interessa aqui analisar a diferena entre as duas situaes.

Figura 14 Redes com interligao via roteadores

No primeiro caso (de PC1 para PC2) o exame do endereo de destino do pacote mostra que PC2 est na mesma rede que PC1 (Rede A). Neste caso, o pacote enviado diretamente para PC2. No segundo caso (de PC1 para PC3), o protocolo IP implementado em PC1, ao analisar o endereo de destino do pacote, percebe que PC3 no est em sua prpria rede (Rede A). O pacote ento encaminhado para o gateway padro (default gateway), que nesse caso o roteador 2. O roteador 2, por sua vez, tambm analisando o endereo de destino e sua tabela de roteamento encaminha o pacote para o roteador 1. O roteador 1 finalmente faz a entrega do pacote ao seu destino, j que tem uma de suas portas conectadas Rede C, onde est o PC3. A definio de gateway padro ou default gateway : endereo IP para qual deve ser encaminhado um pacote cujo endereo de destino no faz parte da prpria rede do host emissor.

PC - Personal computer ou computador pessoal. Refere-se a um microcomputador utilizado de forma isolada (standalone) ou em rede, caso em que chamado tambm de estao de trabalho.

11

42

Conforme pode ser percebido, a funo do roteador encaminhar pacotes de uma rede para outra. Dito de outra forma, rotear pacotes entre redes fsicas diferentes.

O campo TTL do pacote IP usado para garantir que um pacote no se perca em loops de roteamento, isto , fique circulando entre os roteadores da rede eternamente, nunca alcanando seu destino. A regra que garante isso que cada vez que um pacote atravessa um roteador, seu campo TTL reduzido de uma unidade. Quando esse valor chega a zero, o pacote descartado pelo roteador. O valor inicial do campo TTL depende do protocolo de roteamento utilizado. No caso do RIP (Routing Internet Protocol), esse valor 15. Foge aos propsitos deste trabalho um detalhamento maior do esquema de endereamento IP. Basta saber que um endereo IP formado por 32 bits, divididos em quatro partes de 8 bits cada, sendo cada parte representada por um nmero decimal na faixa de 0 a 255. Na notao mais comum, os quatro nmeros so separados por um ponto. Exemplo: 200.276.0.34.

3.3.2 ICMP (Internet Control Message Protocol) O protocolo ICMP permite que roteadores e hosts enviem mensagens de erro e de controle entre si. Executa quatro funes principais: 1) Controle de fluxo (flow control) Quando o receptor da mensagem est muito ocupado para processar os pacotes que chegam, ele envia uma source quench message para o emissor solicitando uma interrupo temporria do envio de dados. 2) Alerta de destino inalcanvel (unreachable destination) Enviado quando detectado que um endereo IP de destino no alcanvel, ou porque o IP no corresponde a uma mquina existente na rede, ou devido a uma falha no link de comunicao. 3) Redirecionamento de rota (redirecting routes) Solicita mquina emissora que utilize um outro gateway. Exemplo: um roteador sabe, a partir de sua tabela de rotas, que um pacote pode alcanar seu destino mais rapidamente atravs de uma outra rota que no passa por ele. 4) Verificao de host remoto (checking remote hosts) Atravs de ICMP echo messages uma mquina pode checar se existe conexo fsica entre ela e outra atravs da rede. Para isso, envia um pacote ICMP echo request (conhecido como ping). O destinatrio se for alcanado, responde com um ICMP echo reply.

43

3.4 Camada de Acesso Rede (Network Access) A camada de acesso rede relaciona a camada de internet com o harware que efetivamente efetua o transporte fsico dos dados (infra-estrutura composta por cabos, conectores, switches, etc). a camada mais baixa da pilha TCP/IP (diferentemente do modelo OSI , nela no foi definida camada fsica). O ponto chave a ser entendido aqui que endereos de rede (IP) no fazem sentido para essa camada. Os endereos utilizados endeream os dispositivos fisicamente e tm significado apenas dentro do segmento de rede no qual o pacote foi transmitido. Em outras palavras, os endereos da camada de acesso rede no atravessam roteadores. Outro ponto importante que, diferentemente das camadas superiores, essa

camada precisa conhecer detalhes da infra-estrutura fsica da rede, a fim de que possa preparar corretamente os dados para transmisso, o que inclui a utilizao de protocolos que definem as caractersticas eltricas e mecnicas da transmisso.

Ainda em relao aos endereos utilizados nessa camada, eles recebem vrios nomes que dependem da tecnologia utilizada: MAC address, para redes locais ethernet ou token-ring, e hardware address ou physical address para outras tecnologias. O MAC address tem o tamanho de 6 bytes, e vem gravado de fbrica nas ROMs das interfaces de rede (placas de rede, portas de switches, portas LAN de roteadores, etc). O exemplo abaixo mostra a notao mais utilizada para representar esses endereos:

08:CA:00:31:56:AE (seis nmeros hexadecimais de dois dgitos cada)

A figura abaixo ilustra, de forma simplificada, os vrios endereos presentes num pacote ethernet, situando as camadas responsveis pela adio dos mesmos como parte de seus respectivos cabealhos.

Figura 15 Localizao de endereos num frame Ethernet

44

Uma observao importante diz respeito ao que ocorre com os endereos da camada de acesso rede quando o endereo IP de destino localiza-se fora da rede do dispositivo emissor. Conforme visto anteriormente, os endereos dessa camada no atravessam roteadores, s sendo reconhecidos na prpria rede do emissor. Nesse caso, o roteador alterar os MAC address de origem e destino, substituindo-os pelo MAC address da sua porta de sada, e pelo MAC address do destinatrio. Portanto, medida que o pacote viaja pela Internet, os endereos fsicos da camada de acesso rede vo mudando. Os IPs de origem e destino, no entanto, permanecem inalterados.

45

4 MTODOS DE DEFESA

Foi visto no captulo 3 que as redes conectadas Internet esto sujeitas a uma gama de ataques que exploram a diversidade de elementos que compem o ambiente de TI12 da empresa: o hardware composto por roteadores, switches, servidores, links de comunicao, etc; o software, desde os aplicativos voltados para o usurio final, at o sistema operacional e os protocolos de rede e de segurana; e por fim, os fatores relacionados ao elemento humano: procedimentos, normas de segurana, regras de acesso, segurana fsica, etc...

Do ponto de vista tecnolgico, de acordo com Scrimger et al H dois aspectos da segurana de uma rede proteger o acesso aos dados e proteger a transmisso dos dados. Dessa forma, a base da segurana de uma VPN est na autenticao entre as partes que se comunicam e na criptografia das informaes que trafegam entre elas. (SCRIMGER et al, 2002)

Alm desses dois aspectos, que o software de VPN deve ser capaz de suprir, existem outros mtodos de defesas disponveis para os mais variados tipos de ataque, que passam por outras tecnologias que devem atuar de forma complementar. Dada a extenso do assunto, este trabalho ir limitar-se a explicar de forma simplificada aquelas que so teis implementao de uma VPN.

4.1 Firewall

uma combinao de hardware e software que tem por objetivo controlar o fluxo de informaes entre as redes privadas e a Internet, comportando-se como uma barreira entre as duas redes capaz de impedir os acessos no autorizados, conforme mostra a Figura 16 a seguir.

12

Tecnologia da Informao Diz respeito ao conjunto de todas as atividades e solues providas por recursos de computao.

46

Figura 16 Exemplo de um Firewall. Fonte: Adaptadade Scrimger (SCRIMGER et al, 2002)

Uma das possveis classificaes para os firewalls define trs tipos: filtros de pacotes, inspeo de pacotes com tratamento do estado das conexes e aplicativos de firewalls e de proxy 13 .

O filtro de pacotes o tipo mais comum de firewall e tem como objetivo permitir ou negar a entrada de um determinado pacote em uma rede, levando em considerao apenas o endereo IP e/ ou a porta de origem e de destino. Por atuar apenas sobre as informaes existentes no cabealho do pacote IP, no se interessando pelo contedo do pacote em si, mais barato e rpido que os outros tipos de firewall. Essas seriam as suas vantagens. Entretanto, por fazer uma filtragem apenas superficial, apresenta a desvantagem de ser mais inseguro e menos flexvel.

O firewall por inspeo de pacotes com tratamento do estado das conexes, alm de desempenhar as funes do filtro de pacotes, capaz de checar e armazenar o estado de cada conexo, e tomar decises com base nele. Apenas as conexes vlidas que cumprem as condies estabelecidas pelo firewall, tm acesso rede. Essa caracterstica relativa ao estado das conexes torna-o bastante flexvel e poderoso, alm de simplifica o projeto das regras de acesso.

13

Proxy um servidor que oferece servios de rede que permitem que computadores clientes faam acessos a outros servidores de forma indireta, atuando assim como um procurador ou intermedirio.

47

Os aplicativos de firewall e de proxy so os mais complexos, pois verificam todos os dados que passam por eles, podendo bloquear pacotes com base em critrios associados ao seu contedo. Possuem como vantagens oferecer a maior segurana, alm de apresentar a

habilidade de autenticar as atividades dos usurios. P or s erem mais complexos, s o tambm mais lentos e mais caros que os outros dois tipos. So conhecidos tambm pela denominao filtro de contedo.

4.2 Firewall e VPN


Uma VPN permite interligar duas ou mais redes de computadores, provendo um mecanismo seguro de comunicao, conforme ser abordado no captulo seguinte. Constituise numa ferramenta muito til para proteger os dados de empresas que necessitam interconectar suas redes espalhadas geograficamente. Entretanto, ela no capaz de sozinha dar conta de todos os aspectos de segurana de uma rede. imprescindvel a utilizao de um firewall, que deve atuar em conjunto com o gateway 14 VPN. Aqui surge uma questo: qual a localizao correta do gateway VPN em relao ao firewall? Pode-se afirmar que

necessrio um planejamento cuidadoso antes de escolher a melhor das trs opes existentes: gateway VPN e firewall na mesma mquina, em mquinas separadas e em paralelo ou em mquinas separadas com o gateway VPN atrs do firewall.

O gateway VPN dentro de um firewall, ou seja, ambos no mesmo servidor, parece ser a opo mais natural, uma vez que toda a segurana da rede feita em apenas um computador, conforme ilustra a Figura 17 a seguir. Entretanto, para que isso seja vivel, o firewall deve ser extremamente seguro, uma vez que qualquer configurao imprpria e m s u a s regras a b r e e s p a o p a r a que o trfego vindo da Internet penetre na rede utilizando endereos de VPN, sem ser percebido.

14

Gateway uma mquina intermediria geralmente destinada a interligar redes e com capacidade de traduzir os protocolos entre elas. O proxies, os firewalls e os servidores de VPN atuam como gateways.

48

Figura 17: Gateway VPN dentro de um firewall. Fonte: Adaptada de Koleniskov e Hatch (KOLENISKOV e HATCH, 2002)

A opo de gateway VPN e m paralelo c o m o firewall, separa o trfego da VPN do trfego da Internet em dois ou mais computadores, c o n f o r m e m o s t r a d o n a F i g u r a 1 8 . Uma das vantagens da separao que, devido ao fluxo das informaes transmitidas a VPN no passar pelo firewall, nenhuma configurao extra necessria no f i r e w a l l para permitir a passagem de pacotes VPN. P o r o u t r o l a d o, o gateway VPN torna-se vulnervel a ataques externos.

Figura 18: Gateway VPN paralelo ao firewall. Fonte: Adaptadaa de Koleniskov e Hatch (KOLENISKOV e HATCH, 2002)

49

A terceira opo, gateway VPN atrs de um firewall, fora todo o trfego vindo da Internet a passar primeiramente pelo firewall, conforme a Figura 19. Isso deixa a rede mais segura. Em conseqncia, deve-se configurar regras no firewall para redirecionar o trfego de VPN vindo da Internet para o gateway VPN. Esta topologia possui como desvantagem uma perda de performance pelo fato de todo o contedo da VPN passar antes pelo firewall.

Figura 19: Gateway VPN atrs de um firewall. Fonte: Adaptada de Koleniskov e Hatch (KOLENISKOV e HATCH, 2002)

4.3 Criptografia
A palavra criptografia vem do grego, onde Kryptos s i gni fi c a escondido, oculto e Grafia significa escrita. Pode ser definida como a arte ou cincia de garantir a segurana de mensagens, de forma que apenas pessoas autorizadas a leiam. Seu uso vem dos

primrdios da civilizao. O imperador romano Jlio Csar utilizava uma tcnica de gravar uma mensagem na cabea raspada de um escravo para, aps o crescimento do cabelo, envilo como mensageiro. No local de destino, a cabea do escravo era novamente raspada, de forma que a mensagem pudesse ser lida. O detalhe aqui que apenas o destinatrio da mensagem conhecia o segredo do processo (cabea contendo mensagem sob os cabelos). H tambm inmeros registros de uso da cincia da criptologia na rea militar, durante a primeira e segunda guerras mundiais. A ttulo de ilustrao, atravs de uma tcnica que substitui cada letra de um texto pela terceira letra subseqente do alfabeto, a seqncia ANDR E VANDERLEI seria criptografada como DQGUH H YDQGHUOHL. O crdito desta tcnica tambm pertence ao imperador romano Jlio Csar, q u e h mais de 2000

50

anos, inventou o mtodo de criptografia por substituio. Como se pode perceber, trata-se de uma tcnica extremamente simples, mas o importante aqui o segredo ou chave de criptografia e como fazer com que os dois lados saibam como utiliz-la (SARLO, 2003).

A criptografia garante confidencialidade, autenticidade, integridade e no-repdio (SCHNEIER, 1996).

Uma breve descrio do processo de criptografia s eri a: um emissor gera a mensagem original, chamada de texto plano e, utilizando uma chave e um algoritmo de cifragem, gera um texto cifrado, incompreensvel para quem no est autorizado a l-lo. Chagando ao receptor, este texto cifrado passa pelo processo inverso, chamado decifragem, o que resulta no texto plano original. O processo est ilustrado na Figura 20 abaixo.

Figura 20: Processo de cifragem e decifragem. Fonte: Adaptadaa de Brocardo (BROCARDO, 2001)

Uma chave uma seqnci a de bits e quanto maior for esta s eqnci a, maior ser a segurana resultante. Dependendo do tipo de chave utilizada, a criptografia classifica-se em dois tipos: criptografia simtrica e criptografia assimtrica.

4.3.1 Criptografia simtrica

A criptografia simtrica utiliza uma nica chave. A mesma chave utilizada para a cifragem ser usada para a decifragem. Como vantagem comparativa em relao ao processo assimtrico, pode-se citar o melhor desempenho. Por outro lado, a vulnerabilidade a ataques do tipo fora bruta ou quebra de senha (password cracking) maior.

51

O processo, de acordo com a Figura 21 abaixo, o seguinte: a chave simtrica previamente trocada entre o emissor e o receptor por um canal de comunicao seguro. Utilizando essa chave, ocorre o processo de cifragem no lado emissor, quando o texto plano convertido em texto cifrado. O texto cifrado enviado. No lado receptor, utilizando a mesma chave, feita a decifragem, que retorna o texto cifrado a texto plano.

Figura 21: Processo de criptografia simtrica. Fonte: Adaptadaa de Brocardo (BROCARDO, 2001)

As desvantagens deste processo devem-se ao fato de que como apenas uma chave utilizada para cada par de entidades que se comunicam, o sigilo exigido deve ser extremamente rgido. Se o nmero de entidades que necessitam comunicar-se de forma segura for muito grande, sero necessrias inmeras chaves, o que dificultar ainda mais seu processo de gerenciamento. Na Figura 22 mostrado novamente o processo de criptografia simtrica, reforando alguns dos elementos envolvidos.

Figura 22: Criptografia simtrica. Fonte: Carmo (CARMO, 2005)

52

Conforme se pode observar na figura, um elemento importante do processo o algoritmo de criptografia utilizado.

Os algoritmos simtricos modernos so baseados em cifras de blocos. Isso significa que durante o seu processamento, o objeto a ser criptografado dividido em blocos, em geral com tamanhos de 64 ou 128 bits. Existem vrios modos de operao sobre os blocos, cada um deles apresentando vantagens sob determinado aspecto. Alguns atuam sobre os blocos tomando-os de forma independente uns dos outros, outros executam operaes lgicas entre o bloco que est sendo processado e seu antecessor, e assim por diante. Os modos mais comuns so: CBC (Cipher Block Chaining), ECB (Electronic Codebook), CFB (Cipher Feedback) e OFB (Output Feedback). Cada algoritmo possibilita escolher entre alguns desses vrios modos.

A seguir sero descritos brevemente alguns algoritmos simtricos com as principais caractersticas das chaves envolvidas.

4.3.1.1 Data Encryption Standard (DES) um dos algoritmos de criptografia simtrica mais antigos e difundidos, tendo se desenvolvido a partir de um projeto da IBM de 1974. Em 1977 foi adotado como p a d r o pelo ANSI (American National Standards Institute) para aplicaes no sensveis. Utiliza chaves c om comprimento de 56 bits. Na verdade, a chave tem 64 bits, mas apenas 56 so utilizados para cifragem (o restante utilizado para funes de controle). Opera sobre blocos de 64 bits. Um problema com o DES que os critrios de projeto no foram totalmente revelados pelos desenvolvedores, o que causou, durante anos, desconfiana de que o algoritmo contivesse armadilhas secretas que permitiriam comunidade de informao acesso s mensagens cifradas dos usurios.

O DES considerado vulnervel desde meados dos anos 90, tendo sua chave sido quebrada 1997, em um desafio lanado na Internet, e novamente em 1998, em apenas dois dias de processamento. A explicao que em funo dos avanos obtidos na capacidade de processamento dos computadores nos anos recentes, a chave de 56 bits tornou-se pequena demais.

53

4.3.1.2 Triple Data Encryption Standard (3DES)

O 3DES foi uma tentativa de fortalecer DES. A idia foi efetuar a cifragem mltiplas vezes utilizando chaves diferentes. Pode ser usado com duas ou trs chaves, o que equivale a um comprimento efetivo de chave de 112 ou 168 bits, respectivamente. Quando utilizadas trs chaves, os dados so cifrados com a primeira chave, decifrados com a segunda chave, o que no retorna o texto original, e ento novamente cifrados, agora com a terceira chave. Isto faz com que o 3DES seja seguro, mas lento demais para um algoritmo que tinha a pretenso de se tornar um padro de mercado. Ainda assim, bastante utilizado.

4.3.1.3 Adanced Encryption Standard (AES)

O DES e sua variante 3DES foi a cifra padro oficial dos Estados Unidos entre 1976 e 2001, quando foi substitudo pelo AES. A histria do AES comea em 1977, quando o NIST (National Institute of Standard and Technology) iniciou um projeto que visava promover um substituto para o DES como algoritmo de criptografia padro. Criou ento um concurso para escolha do novo algoritmo. Os finalistas foram os algoritmos: Serpent, Mars, RC6, Twofish e Rinjdael, em 2 de dezembro de 2001 foi anunci ado o vencedor: o algoritmo Rijndael, c r i a d o p e l o s belgas Joan Daemen e Vicent Rijmen. Esta nova gerao de algoritmos criptogrficos agrega fatores que combinam segurana, desempenho, eficincia, facilidade de implementao e flexibilidade em diversas plataformas de hardware e software (SARLO, 2003). O AES utiliza chaves de 128, 192 ou 256 bits e opera sobre blocos de 128 bits, tendo uma expectativa de vida entre 20 e 30 anos. At o momento no existem ataques bem sucedidos a este protocolo.

4.3.1.4 International Data Encryption Algorithm (IDEA)

O protocolo IDEA foi criado em 1991 por James Massey e Xuejia Lai, sendo patenteado pela empresa sua Ascom Systec. Sua chave tem comprimento de 128 bits. O algoritmo segue as

54

mesmas linhas gerais do DES. Mas na maioria dos microprocessadores, uma implementao por software do IDEA mais rpida do que uma implementao por software do DES. O IDEA utilizado principalmente no mercado financeiro e no PGP, programa mais disseminado no mundo para criptografia de email pessoal.

4.3.1.5 Blowfish/Twofish

O Blowfish um algoritmo desenvolvido por Bruce Schneier. Oferece a escolhe entre maior segurana ou desempenho atravs de chaves de tamanho varivel. As chaves podem ter de 32 a 448 bits, em incrementos de 128. O tamanho do bloco de 64 bits.

Mais recentemente, o Blowfish foi aperfeioado, dando origem ao Twofish, que atualmente concorrente do AES (Conforme visto no item 4.3.1.3 acima, o twofish foi finalista do concurso para escolha do AES). Utiliza chave de comprimento varivel at o limite de 256 bits, tamanho considerado eficiente para execuo at mesmo em softwares que rodam em pequenos processadores tais como aqueles embutidos em smart cards ou tokens. O algoritmo processado em blocos de dados de 128 bits. um algoritmo no patenteado, de uso livre e gratuito. No existem ataques bem sucedidos a nenhum desses dois algoritmos. Uma vez estudados os algoritmos simtricos, cabem duas observaes. Primeiro, a

criptografia simtrica no resolve um problema bsico: o estabelecimento seguro da chave secreta entre as duas partes que se comunicam. Segundo: nos sistemas desse tipo, as partes so incapazes de demonstrar a autoria de uma mensagem a uma terceira parte. No existe um mecanismo equivalente a assinaturas para suprir essa deficincia. A criptografia de chave pblica tem resposta a esses dois problemas.

4.3.2 Criptografia assimtrica A criptografia assimtrica, em contraposio simtrica estudada no item 4.3.1, faz uso de duas chaves distintas, matematicamente relacionadas, uma privada e outra pblica. Pode-se utilizar

55

qualquer uma das chaves para cifrar a mensagem. Entretanto, somente a chave inversa associada pode ser utilizada para decifr-la. Exemplo, se um emissor utiliza a chave pblica do receptor para cifrar a mensagem, o receptor deve utilizar a sua chave privada para decifr-la, conforme a Figura 23. Dessa forma, garante-se autenticidade e confidencialidade.

Figura 23: Processo de criptografia assimtrica. Fonte: Adaptada de Brocardo (BROCARDO, 2001)

Contudo, se o emissor utilizar sua chave privada para cifrar a mensagem, qualquer pessoa que conhea sua chave pblica poder decifr-la, uma vez que a chave pblica de livre divulgao. Neste caso, estar garantida apenas a autenticidade da mensagem, j que todos que a decifraram tero certeza absoluta que foi cifrada por quem detinha a chave privada correspondente chave pblica que utilizaram. Basicamente o processo ocorre como se a chave fosse dividida em duas partes: uma privativa e secreta que no pode ser divulgada para ningum, e outra pblica e aberta, que pode ser entregues a qualquer pessoa c o m a qual se deseje efetuar

t r a n s a e s q u e e n v o l v a m c o n f i d e n c i a l i d a d e o u a u t e n t i c i d a d e . Para que o processo seja bi-direcional, garantindo as duas funes nos dois sentidos, necessrio que as duas partes envolvidas tenham seu par de chaves e divulguem outra parte a sua chave pblica.

Conforme se pode deduzir das explicaes acima, nos sistemas de chave pblica o dono do par de chaves usadas numa comunicao tem controle da situao. O nome assimtrico vem do fato de se usaram chaves distintas no mesmo processo de cifragem e decifragem. Para que um sistema de chave pblica seja efetivo, necessrio que duas premissas sejam atendidas: 1) a funo de ciframento seja difcil de inverter; 2) seja muito difcil descobrir a chave privada, apesar do conhecimento da chave pblica.

56

Sistemas assimtricos poderiam substituir completamente sistemas simtricos, exceto por dois aspectos importantes: performance e segurana na obteno da chave pblica. Os algoritmos de chave pblica so extremamente mais lentos que os de chave simtrica. Em relao chave pblica, necessrio que se tenha absoluta certeza de que ela de fato pertence a uma determinada entidade ou pessoa.

Na prtica, sistemas de chave pblica so usados apenas para estabelecer uma chave secreta de um sistema simtrico, num processo que se d a cada sesso de comunicao. Essa chave secreta denominada chave de sesso. Aps o encerramento da sesso, a chave deixa de existir. Desta forma, uma sesso de comunicao fica dividida em duas fases: a primeira utiliza um algoritmo assimtrico para gerar e distribuir uma chave secreta. Esse processo se d com confidencialidade e autenticidade. Uma vez que os dois lados estejam de posse dessa chave, ocorre um chaveamento para um algoritmo simtrico de criptografia e vem ento a segunda fase: uso da mesma chave secreta pelos dois lados para troca de dados.

Procura-se com isso combinar a flexibilidade dos sistemas assimtricos com a eficincia dos sistemas simtricos.

A Figura 24 mostra o processo de cifragem e decifragem via uso da criptografia assimtrica.

Figura 24: Criptografia assimtrica. Fonte: Carmo (CARMO, 2005)

A seguir sero estudados dois algoritmos de chave pblica: RSA e Diffie-Hellman.

57

4.3.2.1 RSA (Rivest, Shamir e Adleman) O RSA utiliza chaves de 512, 768, 1024 ou 2048 bits. Este algoritmo ut i l i z ad o p el a maioria das aplicaes de criptografia assimtrica em uso atualmente.

RSA vem dos sobrenomes de seus inventores, Ron Rivest, Adi Shamir e Leonard Adleman, tendo sido criado em 1997, nos EUA. Atualmente, o algoritmo de chave pblica mais utilizado no mundo todo, alm de ser uma das mais poderosas formas de criptografia de chave pblica conhecidas at o momento. Matematicamente, o RSA baseia-se no fato de que fcil multiplicar dois nmeros primos para obter um terceiro nmero, mas muito difcil executar o caminho inverso, isto , fatorar esse terceiro nmero para recuperar os dois primos que deram origem a ele. Por exemplo, os fatores primos de 3.337 so 47 e 71. Gerar a chave pblica envolve multiplicar dois primos grandes (isso fcil e qualquer um pode fazer). Obter a chave privada a partir da chave pblica envolve fatorar um nmero grande. Se o nmero for grande o suficiente e bem escolhido, ningum conseguir fazer isto em um espao de tempo razovel. Assim, a segurana do RSA baseia-se na dificuldade de fatorao de nmeros grandes. Em 1999, uma chave RSA de 512 bits foi quebrada pelo Instituto Nacional de Pesquisa da Holanda. Esta tarefa contou com a participao de cientistas de mais seis pases e levou cerca de sete meses, tendo sido utilizadas 300 estaes de trabalho no processo. A primeira vista pode no parecer, mas preocupante que cerca de 95% dos sites de comrcio eletrnico utilizem chaves RSA de 512 bits. Este algoritmo no faz a gerao de senhas, mas usa as chaves geradas previamente por uma infra-estrutura de chaves publicas (PKI Public Key Infrastructure), cifrando e d e c i f r a n d o com o par de chaves de cada usurio, conforme ilustrado na prxima Figura 25.

58

Figura 25 - Representao do algoritmo RSA

As chaves pblicas podem ficar disponveis na Internet, administradas por rgos certificadores ou por uma CA (Certificate Authority), ou ficar em um servidor interno rede local para uso exclusivo da empresa (SARLO, 2003).

4.3.2.2 Diffie-Hellman Sua matemtica difere da utilizada no RSA, mas tambm envolve a manipulao de grandes quantidades numricas. Sua segurana advm de uma questo matemtica denominado problema do logaritmo discreto.

Os princpios bsicos da tecnologia de chave pblica foram propostos em meados da dcada de 70 por Whitfield Diffie e Martin Hellman no artigo New directions in Cryptography, que tornou-se um marco na histria da criptografia moderna.

O algoritmo Diffie-Hellman constitui um mtodo que permite estabelecer uma chave secreta usando um canal inseguro para isso. Diferentemente do algoritmo RSA, ele no possibilita cifragem, decifragem ou assinatura digital.

A obteno de uma chave secreta compartilhada se d por mtodo puramente matemtico, sem os processos de cifragem e decifragem utilizando chaves pblicas e privadas que ocorrem no algoritmo RSA. A descrio completa do mtodo encontra-se no Anexo 1.

59

4.3.3 Funo hash

Consiste em um algoritmo que mapeia uma entrada de tamanho varivel para uma sada de tamanho fixo. Dada uma mensagem original, a funo hash tem como objetivo produzir um nmero, conhecido como resumo, que representa de forma nica esta mensagem. Uma propriedade desta funo diz que o caminho inverso dever ser computacionalmente invivel, isto , no dever ser possvel obter a mensagem original a partir do seu resumo. Tambm verdade que pequenas alteraes na mensagem original (um bit que seja) produzir um resumo completamente diferente.

A idia de uso das funes hash que elas funcionem como um mecanismo de garantia de integridade nas transmisses de mensagens pela Internet. Na origem, calcula-se o resumo da mensagem. A mensagem, juntamente com o resumo, transmitida. No destino, a partir da mensagem recebida, calcula-se novamente o resumo, utilizando o mesmo algoritmo hash. Compara-se o resumo calculado com o recebido. Se forem iguais, conclui-se que a mensagem recebida corresponde quela que foi transmitida. Tem-se ento garantia de integridade.

A Figura 26 abaixo mostra o funcionamento de um algoritmo hash puro, sem criptografia associada.

Figura 26: Processamento da funo hash. Fonte: Adaptada de Carmo (CARMO, 2005)

Os dois principais algoritmos de hash utilizados atualmente so: MD-5 e o SHA-1.

60

4.3.3.1 Message Digest (MD-5)

Criada por Ron Rivest, um dos criadores do algoritmo RSA. Produz um valor hash de 128 bits para qualquer mensagem de entrada de tamanho arbitrrio. Foi inicialmente proposto em 1991, aps alguns ataques terem sido descobertos contra a funo de hashing criada anteriormente por Rivest: a MD4. O algoritmo foi projetado para ser rpido, simples e seguro. Entretanto, o fato dele produzir um resumo de apenas 128 bits causa preocupao a alguns especialistas em criptoanlise.

4.3.3.2 Secure Hash Algorithm 1 (SHA-1)

Foi criada pela NSA (National Security Agency), em 1995. Gera um valor hash de 160 bits, tambm a partir de um tamanho arbitrrio de mensagem. O funcionamento interno do SHA-1 baseado no MD-4, com melhorias na parte de segurana. Atualmente, no se conhece nenhum ataque de criptoanlise contra o SHA-1. Ataques da fora bruta so impraticveis, devido ao seu valor hash de 160 bits. A principal diferena entre os dois que o primeiro mais rpido por retornar um resumo de ap en as 128 bits, enquanto que o segundo retorna um nmero de 160 bits, sendo, por isso, mais seguro. O SHA-1 j tem seus sucessores, capazes de retornar resumos maiores. So os protocolos SHA-224, SHA-256, SHA-384 e SHA-512, conhecidos coletivamente pela denominao SHA-2. Outro ponto a frisar que os algoritmos de hash so normalmente utilizados em conjunto com algoritmos criptogrficos. Assim, a transmisso do texto junto com seu resumo, de forma no criptografada, como j mostrado na Figura 26, teve inteno apenas didtica, buscando no misturar a funo hash com outras tcnicas, o que tornaria a figura confusa.

61

4.3.4 Assinatura Digital uma tecnologia que permite autenticar o contedo de uma mensagem, garantido sua integridade e a autenticidade de sua origem. Utiliza criptografia assimtrica associada a funes de hash.

Autenticar, na definio de Albuquerque (2001) [...] confirmar a identidade de uma entidade com o objetivo de se garantir que a entidade quem ela diz ser. (ALBUQUERQUE, 2001)

As tcnicas mais comuns de autenticao fazem uso de informaes sigilosas (como senhas), meios fsicos como cartes magnticos (smart cards ou tokens), verificao de informaes biomtricas (como impresses digitais) ou uma combinao delas. Um exemplo desta combinao est no carto de crdito, onde, alm do carto fsico, exigida tambm uma senha para efetuar a transao.

A assinatura digital faz uso da criptografia assimtrica, pois utiliza um par de chaves, uma privada e outra pblica. A chave privada serve para assinar o documento, enquanto a pblica usada para verificar a assinatura. Conforme explicado no item 4.3.3, o processo de gerao da assinatura utiliza uma funo hash para obteno do resumo do documento, que, em seguida, cifrado, juntamente como o documento a ser assinado, com a chave privada do emissor. Os dois itens so ento enviados ao receptor. O receptor utilizar a chave pblica do emissor para decifrar a mensagem e o resumo recebidos, e a mesma funo hash para recalcular o resumo a partir do documento, comparando-o com o resumo recebido. Se houver igualdade no contedo dos dois resumos, a integridade do documento estar garantida. A autenticidade tambm, pois o fato de conseguir decifrar os textos com a chave pblica do emissor garante que a cifragem s poderia ter sido feita por ele. No h sigilo neste processo, uma vez que outras entidades ou pessoas alm do receptor podem ter conhecimento da chave pblica do emissor. A prxima Figura 27 ilustra o processo descrito.

62

Figura 27: Processo de assinatura digital. Fonte: Adaptadaa de Brocardo (BROCARDO, 2001)

4.3.5 Certificado digital O certificado digital um arquivo assinado eletronicamente por uma entidade confivel, denominada Autoridade Cerificadora ou CA (Certificate Authority).

Representa um documento digital e contm informaes de identificao do seu proprietrio tais como nome, email, chave pblica e validade da chave pblica, alm do nome e assinatura da CA que o emitiu, do nmero de srie do certificado, entre outros dados. Um certificado tem co m o fi nal idade prover aut enti cao, int egridade, confi denci al idad e e i rret rat abili dade, ao associar uma chave pblica a uma pessoa ou entidade. Constitui tambm um mecanismo para a divulgao da chave pblica. Qualquer entidade que conhea a chave pblica da CA pode examinar o contedo dos certificados assinados por ela e confirmar assim a sua autenticidade, uma vez que a CA assina os certificados utilizando sua chave privada. A recomendao mais aceita e utilizada para a produo de certificados digitais a X.509 v3, formulada pela Internacional Telecommunication Union Telecommunication Standard Sector (ITU-T). Portanto o padro X.509 aceito como base para a estruturao da Public Key Infrastructure (PKI), ou Infra-estrutura de chaves pblicas, ambiente onde so definidos os formatos de dados e procedimentos relativos distribuio de chaves pblicas usando certificados assinados digitalmente. Formalmente trata-se de um conjunto composto por hardware, software, pessoas, polticas e procedimentos necessrios para criar, gerenciar, armazenar, distribuir e revogar certificados baseados em criptografia de chave pblica.

63

Para ilustrar como so estruturadas as PKIs, em 24 de Agosto de 2001, foi editada no Brasil a medida provisria n 2.200-2 pela qual foi instituda a ICP-Brasil (Infra-estrutura de Chaves Pblicas Brasileira), rgo vinculado Presidncia da Repblica que resumidamente objetiva prover um conjunto de tcnicas, prticas e procedimentos, a serem implementados pelas organizaes governamentais brasileiras (SERPRO, CEF, SRF e outras) e privadas (SERASA, CertiSign, etc) com o objetivo de estabelecer os fundamentos tcnicos e

metodolgicos de um sistema de certificao digital baseado em chaves pblicas. Este captulo introduziu os conceitos bsicos de segurana, mostrando as principais ameaas, os tipos mais comuns de ataques e os mecanismos de defesa comumente utilizados, compostos por firewalls, criptografia, assinaturas e certificados digitais. Todos so importantes para um entendimento satisfatrio das VPNs. O prximo captulo abordar os principais conceitos sobre VPNs, explicando cada uma de suas caractersticas e citando alguns dos protocolos utilizados, com nfase no TLS/SSL, protocolo principal do OpenVPN.

64

5 CONCEITOS SOBRE VPNS

VPNs so redes de computadores que esto separadas fisicamente e, que atravs de um meio pblico de comunicao geralmente a Internet comunicam-se de forma segura, por meio do uso de criptografia.

As VPNs possuem seus prprios protocolos de comunicao que atuam em conjunto com o TCP/IP, fazendo com que um tnel virtual seja estabelecido e os dados trafeguem por ele criptografados. Dentre eles, podemos destacar o Point-to-Point Tunneling Protocol

(PPTP), o Layer Two Tunneling Protocol (L2TP), IPSec (Secure IP) e o Transport Layer Security / Secure Sockets Layer (TLS/SSL), que sero abordados no prximo captulo. Alguns dos dispositivos que implementam uma VPN so: roteadores15, mdulos especficos de VPN implementados em hardware e softwares de VPN instalados em servidores de uso geral, conhecidos como gateways de VPN.

5.1 Tunneling
Uma VPN tem como principal elemento a criao de um tnel virtual encriptado, tcnica conhecida como tunneling ou, numa traduo um tanto estranha, tunelamento.

As informaes transmitidas entre as redes que compem uma VPN trafegam de forma cifrada, dando a idia da existncia de um tnel virtual no qual os dados perecem ininteligveis para quem no faz parte dele. Dessa forma, se alguma informao for

capturada, ser quase impossvel entend-la, a menos que se descubra a chave de criptografia utilizada, como mostra a prxima Figura 28.

Roteadores ou routers so dispositivos capazes de interligar redes com diferentes padres de endereamento na camada de Internet (rede).

15

65

Figura 28: Tnel virtual entre duas redes. Fonte: Adaptadaa de Cyclades (CYCLADES, 2000)

A tcnica de tunneling consiste em encapsular um pacote de dados de um certo protocolo em um pacote de outro protocolo. Numa extremidade do tnel os dados so encapsulados, a seguir transmitidos, e, na extremidade oposta, desencapsulados. Para as estaes das duas redes, o processo transparente. Apenas os gateways VPN tm conhecimento do que ocorre, e todos os protocolos utilizados (troca de chave de sesso, criptografia, hashing, etc) so implementados neles.

5.2 Autenticao das extremidades


As mensagens devem ser autenticadas como meio de garantir que vieram de usurios vlidos. Isso deve ocorrer em ambas as extremidades do tnel e feito utilizando protocolos de autenticao associados a algoritmos de hash.

5.3 Vantagens das VPNs


Entre os principais benefcios que as VPNs proporcionam esto aqueles relacionados a custo, transparncia, flexibilidade e segurana.

5.3.1 Segurana

Uma VPN fornece funes vitais de segurana, como autenticidade, confidencialidade, integridade e controle de acesso. Os riscos de ataques externos ficam minimizados (IP Spoofing e man-in-the-middle, por exemplo, j estudados no captulo 3).

66

5.3.2 Transparncia

A transparncia consi st e

em

dot ar

VP N

de

m ecanis mos

que

to rn em

des necess rio que usurios, aplicaes e computadores precisem conhecer a localizao fsica dos recursos que esto sendo utilizados na rede, permitindo que sejam acessados de locais remotos como se estivessem presentes localmente. Tal caracterstica facilita o gerenciamento, diminui a necessidade de treinamento para os administradores e elimina a necessidade de treinar os usurios.

5.3.3 Custos

A reduo de custos uma das maiores vantagens de se implementar uma VPN, pois p o d e s e r f e i t a utilizando conexes locais de Internet, d i s p e ns an d o, por exemplo, a co ntrat ao de linhas de comunicao dedicadas (LPCDs - linhas privativas de comunicaes de dados) ou a ut iliz ao de servidores para acesso remoto, que so relativamente mais caros de se manter em comparao com uma VPN.

5.3.4 Flexibilidade

As VPNs apresentam-se bastante flexveis em relao a aspectos como escalabilidade, absoro de novas tecnologias, utilizao de novos protocolos, etc. Como exemplo podemos citar a insero de uma nova filial rede de uma empresa. No lado da matriz, basta alterar a configurao do gateway VPN para autenticar a nova rede e, se necessrio, efetuar um upgrade no link de Internet. No caso de novos protocolos, como so implementados nos gateways VPN, basta que sejam instalados e configurados nessas mquinas.

5.4 Desvantagens das VPNs


Em contraposio a todas as vantagens citadas anteriormente, as VPNs, de forma geral, so complexas, demandam grande tempo de implantao, exigem um bom planejamento primplantao, apresentam certa dificuldade na localizao de defeitos, e s t a b e l e c e m u m a

67

relao de confiana entre as redes interconectadas, podem apresentar deficincias de desempenho e dependem da disponibilidade da Internet.

Os problemas de planejamento dizem respeito principalmente gerncia das chaves e particularmente importante que se tenha um bom conhecimento de como as redes que se pretende interligar esto funcionando, assim como d e suas configuraes, pois qualquer imperfeio pode resultar em mais tempo gasto em sua correo.

Em razo dos dados trafegarem de forma cifrada em uma VPN, a localizao de defeitos, como a falta de sincronismo entre as chaves, falhas nos processos de autenticao, excesso de pacotes perdidos e a sobrecarga dos gateways VPN pode constituir um grande problema.

A relao de confiana entre as redes que a VPN interliga de fundamental importncia para o bom funcionamento do conjunto, e deve ser muito bem planejada, pois os recursos compartilhados por uma das redes ficaro acessveis s outras. P or i s s o , se uma das redes no possuir uma segurana adequada, ela est vulnervel a ataques externos e, conseqentemente, toda a VPN tambm estar. segurana de sua rede mais vulnervel. A segurana da VPN equivalente

Pelo fato das VPNs serem dependentes da Internet para conectar suas redes, o que representa o principal fator de baixo custo dessa tecnologia, necessrio que ela esteja sempre disponvel, o que nem sempre possvel, devido s falhas existentes nos provedores de servios de Internet.

Em aplicaes onde o tempo de transmisso crtico, o uso de VPNs deve ser analisado com cuidado. Os problemas de desempenho e atrasos na transmisso, sobre os quais a empresa no tem nenhum tipo de gerncia ou controle, podem comprometer a qualidade desejada nos servios corporativos.

68

5.5 Comparao com outras tecnologias de acesso remoto

Uma forma de analisar a validade de se utilizar a tecnologia VPN compar-la diretamente com outras tecnologias que tm a mesma finalidade: as linhas dedicadas e os servidores de acesso remoto.

5.5.1 VPN x Linhas Dedicadas Quando se fala em conexo de redes a longa distncia para a troca e a atualizao diria de informaes entre banco de dados, pensa-se primeiramente e m l i n k s dedicados. Um dos benefcios dessa abordagem est na disponibilidade da conexo, pois nesse caso os equipamentos que permitem a comunicao so controlados pela prpria empresa. No

entanto, os custos de implantao de linhas dedicadas podero inviabilizar seu uso. Utilizar uma soluo de VPN certamente reduzir esse custo.

5.5.2 VPN x Servidor de Acesso Remoto Nos tempos atuais, existe uma tendncia no mundo empresarial de flexibilizar o trabalho dos seus funcionrios, tanto em termos de horrio quanto da possibilidade de exercerem suas funes em suas prprias residncias, principalmente quando h grande distncia entre a empresa e as residncias, ou em grandes centros urbanos em que se perde boa parte do dia no trnsito. Outra situao de trabalho a distncia ocorre nas viagens de negcio. Existem duas opes tradicionais que buscam solucionar as questes colocadas acima: abrir os recursos da rede interna da empresa para a Internet ou manter um pool de modems em quantidade suficiente para permitir o acesso remoto dos usurios.

A primeira opo causa enormes riscos segurana, pois se por uma situao qualquer os recursos da rede ficarem comprometidos, informaes confidenciais da empresa tambm ficaro. O mesmo ocorrer com os servidores. Tudo isso poder gerar grandes perdas

financeiras, tanto pelo roubo de informaes quanto por uma eventual indisponibilidade de servios da rede invadida.

69

A outra opo eleva bastante os custos, pois so necessrios servidores dedicados, placas multiseriais de boa qualidade, linhas telefnicas exclusivas, ligaes interurbanas se o funcionrio estiver em outra cidade.

5.6 Topologias
As VPNs admitem trs layouts bsicos de integrao: host-host, host-gateway e gatewaygateway.

5.6.1 Host-host Neste trabalho, podemos definir host como sendo um computador que possui acesso Internet. Esta topologia permite comunicar dois hosts separados fisicamente, fornecendo a segurana necessria para a troca de informaes via Internet. Estes hosts podem ou no fazer parte de uma rede. A Figura 29 abaixo mostra dois hosts pertencentes a duas filiais de uma mesma empresa, sincronizando suas informaes. Deve fi car cl ar o que, n este caso, o objetivo no era interligar as redes inteiras, o que exigiria um esforo maior e desnecessrio, alm de acarretar custos extras.

Figura 29: Topologia host-host. Fonte: Carmo (CARMO, 2005)

70

5.6.2 Host-Gateway Tambm chamada de acesso remoto VPN, esta topologia permite a conexo de um host mvel a uma determinada rede atravs da Internet. Para isso, basta ao usurio ter um software para conexes remotas VPN instalado neste host. Esta opo bastante utilizada por funcionrios que viajam constantemente ou passam bom tempo fora da empresa e precisam m anter de alguma forma o contato.

Nesta topologia, tambm chamada de client-to-gateway, a VPN usada para criar um tnel entre uma mquina standalone e a rede da empresa. Exemplo: funcionrio em viagem usa seu notebook em um hotspot (acesso wireless) de aeroporto e acessa a rede da empresa para fazer o upload dos pedidos vendidos at aquele momento. Nestas situaes, sempre o cliente que inicia a conexo com o gateway VPN. (NAKAMURA, 2002), (SARLO, 2003)

A Figura 30 a seguir ilustra esse caso.

Figura 30 - Topologia host-rede. Fonte: Adaptada de Kolesnikov e Hatch (KOLENISKOV e HATCH, 2002)

5.6.3 Gateway-gateway Nesta configurao existe um gateway VPN nas extremidades de duas ou mais redes, conforme mostrado na prxima Figura 31 Esta topologia indicada para interligar redes de

71

uma mesma empresa geograficamente distante entre si. Pode ser utilizada tambm para compartilhar recursos especficos entre parceiros de negcios, como fornecedores, principais consumidores e outras companhias. Neste tipo de VPN o recurso de transparncia visto

anteriormente se reveste de especial importncia.

Figura 31 - Topologia rede-rede Fonte: Carmo (CARMO, 2005)

5.7 Protocolos usados nas VPNs


Esta seo apresenta os principais protocolos utilizados nas VPNs. Para manter a sintonia com os objetivos desse trabalho, eles sero vistos de forma breve, com nfase um pouco maior para TLS/SSL.

Tomando por referncia o modelo OSI, o tunneling pode ocorrer na camada 2 (enlace) ou na camada 3 (rede). Conforme visto no captulo 3, na pilha TCP/IP corresponderiam s camadas de acesso rede e internet, respectivamente. referncia baseada no modelo OSI. Neste captulo ser utilizada a primeira

72

Os protocolos de camada 2 so o PPTP, o L2F e o L2TP. O objetivo do tunneling de camada 2 transportar protocolos de camada 3 tais como AppleTalk, IP e IPX na Internet. At mesmos protocolos no roteveis podem ser encapsulados dessa forma (por exemplo, o Netbeui, da Microsoft) e transportados. Para conseguir isto, seus projetistas se basearam no protocolo de camada 2 PPP (Point to Point Protocol), que foi concebido originalmente para transportar diferentes protocolos de nvel 3 em canais seriais. Na estratgia adotada os pacotes de camada 3 so encapsulados em pacotes PPP, que por sua vez so re-encapsulados em pacotes IP, o que possibilita seu transporte via Internet. O OpenVPN, objeto de estudo deste trabalho, tambm implementa tneis de camada 2 quando instalado no modo bridge usando a interface virtual TAP.

Como protocolo de camada 3 pode-se citar o IPsec. Seu funcionamento baseia-se no encapsulamento de IP sobre IP. Isso feito tomando os pacotes IP que devem ser

transmitidos e aplicando a eles as funes de segurana estudadas no captulo 4, com objetivo de prover privacidade, autenticao e integridade. A seguir, esses pacotes, j protegidos, so encapsulados em outros pacotes IP para transmisso pela Internet. O IPsec engloba tambm funes de gerenciamento de chaves. O transporte de outros protocolos de camada 3, como IPX e Appletalk, pode ser realizado dentro do IPSec atravs do encapsulamento de protocolos de nvel 3.

Alm do IPSec, o OpenVPN instalado no modo router atravs da interface virtual TUN tambm implementa tneis de camada 3.

Na seqncia sero vistas algumas caractersticas dos protocolos citados.

5.7.1 PPTP Point to Point Tunneling Protocol

Foi desenvolvido pelo Frum PPTP - consrcio formado pelas empresas US Robotics, Microsoft, 3Com, Ascend e ECI Telematic. Sua implementao mais conhecida a da Microsoft, utilizada em sistemas Windows.

Utiliza os mesmos mecanismos de autenticao do PPP para fazer as conexes atravs da

73

Internet. As funes de encapsulamento so feitas atravs do protocolo GRE (Generic Routing Encapsulation).

No PPTP a autenticao feita atravs do MS-CHAP (Microsoft - Challenge Handshake Authentication Protocol) e a criptografia por meio do MPPE (Microsoft Point to Point Encryption), que utiliza chaves de 40, 56 ou 128 bits. Apresenta as vantagens j citadas de um protocolo de tunneling de camada 2, mas seu ponto mais fraco relaciona-se a segurana. Sem entrar em detalhes de funcionamento, pode-se citar: a negociao do tnel no protegida; as chaves de criptografia so geradas utilizando a senha do usurio como base (se esta senha for fraca, a chave tambm ser) e o processo de autenticao feito aps a negociao do tnel.

5.7.2 L2F Layer 2 Forwarding Foi um dos protocolos pioneiros para VPNs. De forma semelhante ao PPTP, o L2F foi concebido para ser um protocolo de tunneling entre usurios remotos e redes locais. Diferentemente do PPTP, no entanto, o L2F no depende do protocolo IP, sendo, por isso, capaz de trabalhar diretamente com outros protocolos como Frame Relay ou ATM. A autenticao de usurios remotos utiliza conexes PPP, mas prov tambm suporte para TACACS+ e RADIUS, o que possibilita uma autenticao desde o inicio da conexo. Na verdade, esse processo de autenticao feito em dois nveis: primeiro, no momento em que a conexo solicitada pelo usurio ao provedor de acesso Internet; depois, quando o tnel se estabelece, o gateway VPN da rede tambm exigir autenticao. Uma grande vantagem desse protocolo que os tneis podem suportar mais de uma conexo, o que no possvel no protocolo PPTP. Outro ponto j citado: por ser um protocolo de camada 2, o L2F permite encapsular diferentes protocolos de camada 3: IP, IPX, NetBEUI, etc. Atualmente, est praticamente em desuso. 5.7.3 L2TP Layer 2 Tunneling Protocol Foi criado pela Cisco Systems e, mais tarde, homologado pela IETF (Internet Engineering Task Force) como protocolo padro. Seu projeto foi desenvolvido a partir do L2F com o

74

objetivo de resolver alguns problemas do PPTP, sendo por isso considerado o seu herdeiro. Algumas caractersticas, como a utilizao do PPP para fornecer o acesso remoto e a capacidade de encapsular protocolos como NetBEUI e IPX, foram mantidas do PPTP e do L2F. Pode funcionar com IP, Frame Relay, ATM e X.25.

Uma diferena importante em relao a seu predecessor PPTP relaciona-se forma de autenticao, que feita em dois nveis, como no L2F. No primeiro, o usurio autenticado pelo provedor de acesso Internet antes do tnel ser instalado e, no segundo, quando a conexo estabelecida entre os gateways VPN. Outro ponto positivo: no L2TP os dados so criptografados antes da conexo ser estabelecida.

Por se tratar de um protocolo padro, permitido a qualquer fabricante criar produtos que o utilizem. Para os usurios, significa liberdade de escolha pela no dependncia de produtos fornecidos por uma nica empresa.

O L2TP utiliza o protocolo UDP para manter o tnel atravs da porta 1701. Uma vez que o protocolo UDP no garante a entrega dos pacotes, normalmente usado com o IPSec. formato do pacote L2TP ilustrado pela Figura 32. O

Figura 32: Formado do pacote L2TP.

Como no protocolo PPTP, o protocolo L2TP tambm possui alguns nveis de tunneling, sendo eles: Encapsulamento L2TP - O pacote encapsulado, recebendo um cabealho PPP, em seguida um cabealho L2TP; Encapsulamento UDP - O pacote L2TP encapsulado pelo protocolo UDP, e enviado porta 1701; Encapsulamento IPSec Nesta fase o pacote ganha segurana. Os dados so criptografados e autenticados;

75

Encapsulamento IP - Aqui o pacote ganha um cabealho com informaes referentes ao destino e origem; Encapsulamento de camada de transporte Por ltimo, o pacote recebe um cabealho que representa os padres utilizados pela rede na camada de transporte.

Apesar de ser um protocolo atual, o L2TP no possui um mecanismo eficiente de encapsulamento. Para realizar esta tarefa, ele necessita do protocolo IPSec, de forma que em conjunto possam garantir a segurana da VPN.

5.7.4 IPSec Internet Protocol Security

O IPSec foi desenvolvido pela IETF (Internet Engineering Task Force) para ser o protocolo padro de endereamento da prxima verso do IP (IPv6) que est em fase de testes em diversas instituies no mundo inteiro. Foi adaptado ao IPv4 atualmente em uso, tornando-se assim uma das opes mais robustas para implementar VPNs. Seus servios podem ser utilizados para quaisquer protocolos das camadas superiores como TCP, UDP, etc...

Segundo Kolesnikov e Hatch, IPSec "[...] um conjunto de protocolos desenvolvidos para proteger o trfego dos pacotes IP". (KOLESNIKOV e HATCH, 2002) O IPSec foi projetado para suportar mltiplos protocolos de criptografia, dando aos projetistas da VPN a possibilidade de escolha do nvel de segurana desejado. Os requisitos de segurana podem ser divididos em trs grupos: - Negociao do nvel de segurana; - Autenticao e Integridade; - Confidencialidade. Os dois ltimos so independentes entre si, podendo ser utilizados de forma conjunta ou isoladamente, de acordo com as necessidades colocadas pelo projeto.

76

Para implementar estas caractersticas, o IPSec composto de trs mecanismos adicionais: - AH - Autentication Header; - ESP - Encapsulation Security Payload; - ISAKMP - Internet Security Association and Key Management Protocol. Esses mecanismos sero mostrados a seguir, situando-os em relao aos requisitos de segurana citados acima.

5.7.4.1 Negociao do nvel de segurana O protocolo ISAKMP combina conceitos de autenticao, gerenciamento de chaves e outros itens de segurana necessrios comunicao atravs da Internet. O ISAKMP possibilita que duas mquinas negociem os mtodos de autenticao e segurana dos dados, executem a autenticao mtua e gerem a chave de sesso que permitir criptografar os dados. Alm da gerao da chave de sesso, o ISAKMP define os procedimentos e os formatos de pacotes necessrios para estabelecer, negociar, modificar e excluir as SAs (Security Associations ou Associaes de Segurana). SAs constituem um dos conceitos fundamentais do IPSec, podendo ser definidas como conexes que viabilizam o trfego de servios seguros. As SAs ficam armazenadas num banco de dados denominado SAD (Security Association Dtabase). As SAs contm todas as informaes necessrias para execuo dos diversos servios de segurana, que garantida pela utilizao dos protocolos AH, ESP ou dos dois em conjunto. Quando utilizados AH e ESP simultaneamente, mais de uma SA deve ser utilizada. Uma SA definida de modo nico por trs parmetros: o SPI (Security Parameter Index), o endereo IP de destino e o identificador do protocolo de segurana (AH ou ESP). O SPI um nmero que identifica uma SA, sendo criado durante a negociao que antecede o estabelecimento da SA. Todos os servios pertencentes a uma SA devem conhecer o SPI correspondente e utiliz-lo durante a comunicao. Alm do SAD, existe uma outra database importante denominado SPD (Security Policy Database), responsvel pela ao mais importante a ser feita sobre o pacote, que consiste em determinar se o mesmo ser descartado, seguir apenas em frente ou seguir adiante aplicando-se o protocolo IPSec.

77

O ISAKMP pretende dar suporte para protocolos de segurana em todas as camadas da pilha TCP/IP. Centralizando o gerenciamento das SAs, o ISAKMP minimiza as redundncias funcionais dentro de cada protocolo de segurana e possibilita uma reduo do tempo gasto durante as conexes efetuando a negociao da pilha completa de servios de uma s vez. Outra questo importante diz respeito ao gerenciamento de chaves. Em redes pequenas, com poucos computadores, pode-se configurar as SAs e os SPDs manualmente. Entretanto, se a rede for grande, a configurao manual torna-se invivel. O recomendado ento configurlos automaticamente, o que significa usar o gerenciamento de chaves automtico. Dentre os protocolos que implementam de forma satisfatria este gerenciamento, o principal deles o Internet Key Exchange Protocol (IKE), que combina os protocolos ISAKMP, SKEME e Oakley Key Determination Protocol. O IKE negocia automaticamente as SAs, permitindo maior proteo contra ataques.

5.7.4.2 Autenticao e integridade Conforme visto no captulo 2, a autenticao garante a identidade do emissor, enquanto a integridade significa que os dados transmitidos chegam ao seu destino sem alteraes, eliminando a possibilidade modificaes no percebidas no caminho entre emissor e receptor. O AH um mecanismo que fornece garantia de integridade e autenticao dos datagramas IP. A segurana garantida pela incluso de informaes para autenticao no pacote. Essas informaes so obtidas por meio de um algoritmo aplicado sobre o contedo dos campos do datagrama IP, excluindo-se aqueles passveis de mudanas durante o processo de transmisso. Esses campos abrangem no s o cabealho IP como todos os outros cabealhos e os dados da aplicao propriamente ditos. O campo time-to-live (TTL) do IPv4 no utilizado, pois, conforme visto no captulo 3, sofre mudanas ao longo da transferncia. Para algumas aplicaes, o uso de autenticao pode ser suficiente, no sendo necessria a confidencialidade. Neste caso, o protocolo AH pode ser utilizado sozinho, sem necessidade do ESP.

78

5.7.4.3 Confidencialidade Recapitulando o conceito, explicado no captulo 2, confidencialidade uma propriedade da comunicao que garante que apenas usurios autorizados possam entender o contedo transportado. Na hiptese de usurios no autorizados, via captura de pacotes, conseguirem acesso aos dados, eles no sero entendidos pelo fato de terem sido criptografados na origem. O servio que garante a confidencialidade no IPSec o ESP. O ESP tambm prov a autenticao da origem dos dados e a integridade da conexo. A confidencialidade independe dos demais servios e pode ser implementada nos dois modos de utilizao do IPSec transporte e tnel. No primeiro modo, o pacote da camada de transporte encapsulado dentro do ESP. No segundo, o datagrama IP encapsulado inteiro dentro do cabealho do ESP. A Figura 33 mostra os pacotes nos dois modos de utilizao.

Figura 33 Modos do protocolo IPSec

Mais informaes sobre o IPSec podem ser encontradas nas RFCs 2401 (S.Kent; R.Atkison, 1998) e 2411 (R.Thayer; N. Doraswamy; R. Glenn, 1998), disponveis em <http://www.ietf. org/rfc/ rfc2401.txt e http://www.faqs.org/rfcs/>.

79

5.7.5 TLS/SSL Transport Layer Security / Secure Sockets Layer O protocolo TLS uma verso atualizada do SSL verso 3, originalmente criado pela Netscape. Os dois protocolos so bastante semelhantes, embora no possam interoperar diretamente entre si. O TLS/SSL fornece um servio de comunicao segura entre cliente e servidor, permitindo autenticao mtua e garantindo a integridade dos dados pelo uso de assinaturas digitais e privacidade pelo uso de criptografia. Ele implementado como uma camada adicional entre o TCP/IP e os protocolos de nvel superior tais como HTTP, SMTP, etc. Sua implementao em web browsers a mais conhecida dos usurios da Internet, oferecendo autenticao e encriptao baseada em sesso. Um dos pontos fortes do TLS/SSL que ele atua diretamente no topo dos sockets TCP/IP e se relaciona com eles de forma muito mais fcil que os protocolos das camadas superiores. Como resultado, torna-se muito mais fcil construir aplicaes de rede utilizando o TLS que programando diretamente sobre sockets. O termo sockets refere-se ao mtodo utilizado para troca de dados entre os mdulos cliente e servidor de uma aplicao de rede ou entre camadas de programas em um mesmo computador. O TLS/SSL implementado de modo a atuar como uma subcamada da camada aplicao, posicionada entre ela e a camada de transporte, conforme mostra a Figura 34.

Figura 34 Localizao da camada de segurana TLS/SSL na pilha TCP/IP

80

J a estrutura do quadro transmitido pode ser observada na Figura 35.

Figura 35 Frame Ethernet detalhando os protocolos superiores

Diferentemente do IPSec, visto na sesso anterior, que fornece segurana a todos os datagramas IP, o TLS/SSL implementado na prpria aplicao (ex.: browsers Internet Explorer ou Mozilla), sendo portanto uma poro do seu cdigo. Isto possibilita aplicao determinar que dados devero ser protegidos, o que representa uma vantagem em relao ao IPSec, pois elimina o overhead resultante da proteo desnecessria de certos dados. O protocolo foi projetado de modo a suportar diversos algoritmos de criptografia e assinatura digital, permitindo a seleo dos mais convenientes para cada situao, assim como a incorporao de novos algoritmos, medida que forem surgindo. A escolha desses protocolos negociada entre o cliente e o servidor durante o estabelecimento de uma sesso. O protocolo TLS comea com um handshake, no qual cliente e servidor tentam chegar a um acordo sobre que cipher sute (grupo de algoritmos criptogrficos) eles iro utilizar para autenticao e criptografia de sesso. Uma vez feita essa negociao, cliente e servidor podero se autenticar mutuamente e gerar uma premaster secret, que ser usada como base para a construo da chave de sesso propriamente dita. A chave de sesso ser utilizada ento para encriptar e decriptar todo o trfego entre cliente e servidor, sendo vlida apenas enquanto durar aquela sesso. O truque desse processo que cliente e servidor estabelecem uma chave secreta para troca de informaes sem nunca precisar enviar um texto aberto (plaintext) pela rede, o que garante a confidencialidade da comunicao. Para facilitar o entendimento desse processo, segue abaixo o dilogo entre cliente e servidor durante a fase de handshake, traduzido para linguagem comum:

81

Cliente: Hello, aqui est a lista de cifradores (cipher sute) que eu posso usar.

Servidor: Hello, aqui est o cifrador (cipher sute) que eu escolhi a partir da sua lista. E aqui est tambm um certificado X.509v3 que contem minha chave pblica RSA.

Cliente: [Vasculha o certificado e verifica se ele est assinado por uma autoridade certificadora conhecida e confivel. Gera tambm uma premaster secret e a partir dela a chave de sesso].

Servidor: OK, obrigado. Aqui est a premaster secret, encriptada com sua chave pblica. A prxima coisa que eu disser para voc estar encriptada com a chave de sesso.

Cliente: [Encriptado] Eu j terminei o handshake.

Servidor: [Decripta a premaster secret enviada pelo cliente usando sua chave privada e ento gera a chave de sesso.]. A prxima coisa que eu disser para voc tambm estar encriptada com a chave de sesso.

Servidor: [Encriptado] Eu tambm j terminei o handshake.

No processo acima, o cliente envia a premaster secret encriptada com a chave pblica do servidor. O servidor pode ser ento considerado autenticado, porque s sua chave privada pode ser utilizada para decriptar a premaster secret enviada pelo cliente. Mesmo que o servidor j tenha enviado seu certificado para o cliente, ele s prova que tem a chave privada correspondente chave pblica existente no certificado (e assim confirma sua identidade) no momento em que consegue decriptar a premaster secret enviada pelo cliente. Partindo da mesma premaster secret, cliente e servidor, independentemente um do outro, geram a mesma chave de sesso. TLS tambm suporta o protocolo de troca de chaves Diffie-Hellman. O processo de troca de chaves com ele ligeiramente diferente do utilizado no exemplo acima, baseado no algoritmo RSA. Mas o resultado final que ambos os lados tero a mesma a mesma chave de sesso.

82

Variaes em relao ao exposto so possveis. Em sistemas que implementam autenticao bidirecional, por exemplo, o servidor pode solicitar ao cliente que envie seu certificado. Mas a idia central a mesma: autenticao, negociao de protocolos que ambos os lados suportem e troca segura da chave de sesso. O processo de handshake entre o cliente e o servidor visto acima utiliza trs protocolos: - SSL Handshake Protocol - Promove o estabelecimento da sesso entre cliente e servidor; - SSL Change Cipher Spec Protocol - Estabelece o mecanismo de criptografia a ser utilizado na sesso; - SSL Alert Protocol - Composto por eventuais mensagens de erro entre cliente e servidor. A Figura 36 abaixo mostra o processo de handshake com mais detalhes, situando nas mensagens os protocolos acima.

Figura 36 TLS/SSL processo de handshake

Uma vez estabelecida a conexo, cliente e servidor podem trocar dados de forma segura. Cada registro de dados individualmente encapsulado em um SSL Record Protocol e um valor hash

83

calculado, com objetivo de garantir a integridade dos dados. Caso os dados sofram alteraes durante a transmisso, um valor hash invlido ser gerado no destino, possibilitando a identificao do problema.

Para encerrar a conexo, uma das partes envia uma mensagem comunicando o fato (Close Notify).

O TLS/SSL suporta tambm o restabelecimento de conexo. Caso o cliente queira estabelecer outra sesso com o servidor, ele pode dar continuidade a uma sesso anterior fornecendo seu identificador de sesso em sua mensagem Hello. Isto faz com que protocolo de handshake seja executado de forma reduzida, de modo que os parmetros de segurana e a chave de sesso estabelecida anteriormente sejam reutilizados. Reduz-se assim o overhead com o estabelecimento de sesses, visto que o trfego de dados via web browser tipicamente caracterizado por vrias sesses, simultneas ou consecutivas, entre um cliente e um servidor.

84

5.8 Comparao entre protocolos de tunneling


O Quadro 2 abaixo mostra a potencialidade de cada protocolo de VPN.
Propriedades Autenticao de Usurio Autenticao de Computadores Suporte a NAT Suporte a MultiProtocolo Atribuio Dinmica de Endereo IP Descrio Consegue autenticar os usurios que queiram estabelecer uma conexo. Autentica computadores envolvidos na conexo. Passa por meio de um NAT para esconder os pontos finais da conexo. Define um mtodo padro para o trfego IP e no IP Define uma negociao de endereamento IP entre o servidor VPN e seus clientes. Isso elimina configuraes manuais do protocolo IP. Pode criptografar o trfego corrente. Usa infra-estrutura de chave pblica para imple mentar a criptografia e a autenticao. Prov um mtodo de autenticao que garante que os pacotes no foram alterados durante a transmisso. PPTP L2F L2TP/IPSec IPSec Implementao em andamento. TLS/SSL

SIM

SIM

SIM

SIM

SIM

SIM

SIM

SIM

SIM

SIM

SIM

NO

NO Implementao em andamento.

SIM

SIM

SIM

SIM

SIM

Implementao em andamento. SIM SIM SIM SIM

Encriptao

SIM

SIM

SIM

SIM

SIM

Uso de PKI

SIM

SIM

SIM

SIM

SIM

Autenticao de Pacotes

NO

NO

SIM

SIM

SIM

Quadro 2: Comparao entre protocolos de VPN

85

6 IMPLEMENTAO DE UMA VPN ATRAVS DO OPENVPN


A configurao de uma VPN requer a escolha do sistema operacional dos gateways e da ferramenta que ser usada para implementar os protocolos adotados. Existem vrias ferramentas disponveis no mercado, com preos variados ou totalmente gratuitas.

Este trabalho preocupou-se com trs fatores bsicos: segurana, usabilidade e baixo custo de implementao. Por isso, foi utilizado o Linux, sistema operacional bastante flexvel, podendo ser configurado com o mnimo de opes possveis, de forma a garantir maior segurana da rede. Alm disso, por ser de livre distribuio e estar disponvel gratuitamente pela Internet, reduz drasticamente os gastos com licenas e custo total de propriedade.

A distribuio escolhida foi a Fedora, derivada do Red Hat, pois alm de ser largamente utilizada em servidores do mundo inteiro, sendo reconhecida por sua estabilidade, foi a utilizada nos exerccios de laboratrio do curso de ps-graduao, o que garante bastante familiaridade com suas particularidades.

Dentre as ferramentas gratuitas de VPN consideradas nas pesquisas efetuadas, duas se destacaram por sua robustez, por seguir padres de mercado e por sua variedade de recursos: o OpenS/Wan, sucessor do FreeS/Wan, que implementa o protocolo IPSec, e o OpenVPN, baseado no protocolo TLS/SSL. A ferramenta adotada acabou sendo o OpenVPN, pela sua facilidade de configurao, disponibilidade como freeware para vrios sistemas operacionais, incluindo Microsoft Windows e, principalmente, por conviver bem com redes baseadas em NAT e IP dinmico, que so realidade incontestvel no mundo de hoje. O APNDICE A mostra um breve comparativo entre essas duas ferramentas de VPN, mostrando os prs e contras de cada uma.

Por tratar-se de softwares open source e completamente gratuitos (Linux e OpenVPN), as orientaes para instalao e configurao foram obtidas principalmente da Internet, atravs de material disponvel on-line.

6.1 Estudo de caso


A seguir ser mostrado como a VPN experimental foi implementada, descrevendo o ambiente

86

de testes e os aspectos relevantes de sua configurao, bem como os resultados obtidos.

6.1.1 Cenrio Com base na Figura 37, os testes foram conduzidos simulando-se trs redes distintas de uma mesma empresa, cujas denominaes adotadas foram matriz, filial1 e filial2, onde cada uma delas possui um gateway VPN e um host. Um quarto elemento foi considerado: um equipamento standalone (no ligado a uma rede e, portanto, sem um gateway de Internet para implementar o tnel VPN) com necessidade de acesso rede Matriz, rodando o sistema operacional Microsoft Windows e o software OpenVPN para Windows. Para esse micro foi adotada a denominao Windows. Foram utilizados links ADSL (Velox da Telemar) para a conexo das trs redes e do computador Windows Internet. Todos os modems ADSL esto configurados no modo router.

Figura 37 Diagrama de conexes do laboratrio

87

Os gateways foram configurados com duas placas de rede, sendo uma voltada para a rede interna da empresa e a outra para a Internet. Os hosts, por sua vez, possuem apenas uma placa de rede e funcionam em ambientes Windows (escolhemos Windows por ser mais comum, mas poderia ser um desktop Linux ou um MacIntosh, j que o OpenVPN roda tambm nessas plataformas). Da mesma forma, o computador Windows citado possui uma nica placa de rede que possibilita sua conexo a VPN atravs de link ADSL (alternativamente, poderia ser uma linha discada com acesso Internet atravs de um ISP Internet Service Provider ou uma conexo a cabo atravs de um cable modem, entre outras opes). Os trs gateways Linux desempenham tambm o papel de firewall das respectivas redes. O acesso matriz se dar atravs do identificador labvpn-matriz.dyndns.org, que estar dinamicamente associado ao IP do seu link ADSL. Os IPs das filiais no precisam ser conhecidos nem mapeados dinamicamente, j que elas no se acessam mutuamente. Os IPs utilizados so: Modems ADSL IP porta LAN: 192.168.254.254 Matriz IP da interface Internet (eth0): IP da interface local (eth1): IP da interface de host-m : Filial 1 IP da interface Internet (eth0): IP da interface local (eth1): IP da interface de host-f1 : Filial 2 IP da interface Internet (eth0): IP da interface local (eth1): IP da interface de host-f2 : Windows - IP da interface local : 192.168.254.1 192.168.0.250 192.168.0.1 192.168.254.1 192.168.1.250 192.168.1.1 192.168.254.1 192.168.2.250 192.168.2.1 192.168.254.250

88

6.1.2 Instalao

Definido o ambiente de trabalho, ser visto a seguir os procedimentos para instalao do OpenVPN, que requer a execuo dos seguintes passos:

Deciso quanto ao modo de operao desejado (router ou bridge) e do nvel de segurana requerido;

Download dos mdulos necessrios para a plataforma operacional, arquitetura de processador e nvel de segurana adotado;

Preparao do kernel dos gateways Linux;

Instalao dos mdulos baixados nos gateways;

Criao da infra-estrutura de gerao e gerenciamento de chaves de criptografia e outros elementos de segurana;

Preparao do arquivo de configurao da Matriz e setup dos demais elementos necessrios ao funcionamento do OpenVPN;

Preparao dos arquivos de configurao das Filiais e setup dos demais elementos necessrios ao funcionamento do OpenVPN;

Instalao e configurao do OpenVPN no micro standalone (ambiente Windows).

6.1.2.1 Deciso quanto ao modo de operao desejado (router ou bridge) e do nvel de segurana requerido. O OpenVPN admite dois modos de funcionamento: Router ou Brigde. No cenrio

estabelecido neste trabalho, ser usado o modo Router. O modo Bridge seria obrigatrio se:

A VPN tivesse necessidade de suportar protocolos no-IP, tais como IPX, por exemplo;

89

Fosse necessrio dar suporte a aplicaes baseadas em broadcasts de rede, tais como LAN games.

Fosse necessrio permitir browsing, atravs da VPN, de recursos compartilhados pelas estaes Windows, sem o suporte de um servidor SAMBA ou WINS.

Em relao ao nvel de segurana da VPN, sero utilizados todos os recursos suportados pela soluo, o que engloba autenticao baseada em certificados, encriptao de chave pblica e distribuio dinmica de chaves.

6.1.2.2 Download dos mdulos necessrios para a plataforma operacional, arquitetura de processador e nvel de segurana adotado. Conforme j visto, o OpenVPN roda em vrias plataformas operacionais e suporta uma variedade de arquiteturas de processador. Este trabalho foi desenvolvido em Linux

(distribuio Fedora) rodando em plataforma Intel x86. Assim, os downloads necessrios so:
Fonte do OpenVPN: openvpn-2.0.9.tar.gz Link para download: http://openvpn.net/download.html Biblioteca LZO : lzo-2.02.tar.gz Link para download: http://www.oberhumer.com/opensource/lzo/download/

A biblioteca LZO prov funes de compresso em tempo real dos dados que trafegam no tnel VPN, permitindo otimizar a utilizao do link.

A biblioteca OpenSSL j est includa na distribuio Linux Fedora.

Obs: No foi considerado aqui o mdulo para ambiente Windows necessrio para instalar o OpenVPN no micro standalone [vide item 8 - Instalao e configurao do OpenVPN no micro standalone (ambiente Windows)].

6.1.2.3 Preparao do kernel dos gateways Linux.

Do ponto de vista do kernel do Linux, o nico pr-requisito para instalao do OpenVPN que o suporte aos drivers TUN e/ou TAP esteja disponvel. Isso necessrio para permitir que programas rodando no espao do usurio, que o caso do OpenVPN, conforme mostrado

90

no APNDICE B deste trabalho, possam controlar dispositivos virtuais IP ponto-a-ponto (virtual point-to-point IP devices ) ou dispositivos virtuais Ethernet (virtual Ethernet devices).

O driver virtual TUN utilizado no modo de operao router do OpenVPN, tambm chamado de modo tnel. O driver TAP apenas no modo bridge. No cenrio adotado, ser considerado o driver TUN (interface tun0 no Linux).

No caso da distribuio Fedora, adotada no cenrio de implementao descrito anteriormente, os drivers TUN/TAP j esto presentes no kernel. Em outras distribuies em que isso no ocorra, o kernel dever ser recompilado.

6.1.2.4 Instalao dos mdulos baixados nos gateways

Antes de descrever o processo de instalao do OpenVPN a partir do fonte baixado anteriormente, tarefa extremamente simples, cabe estabelecer que a instalao do Fedora deve ser a mais simples possvel, partindo da regra bsica de segurana que diz que todo software contm falhas de programao e que estas falhas podem se traduzir em vulnerabilidades, e que, portanto, quanto menos software, menos riscos. Assim, no se deve utilizar interface grfica e mdulos desnecessrios. O firewall utilizado neste trabalho j est contido no kernel (Netfilter/Iptables).

Os passos para instalao podem ser descritos pela execuo dos seguintes comandos, em sesso com privilgio de root:

1 parte Instalar a biblioteca de compactao LZO


cd /root tar xzvf lzo-2.02.tar.gz cd lzo-2.02 ./configure make make install

91

2 parte Instalar o OpenVPN


cd /root tar xvzf openvpn-2.0.9.tar.gz cd /openvpn-2.09 ./configure make make install

A instalao cria o diretrio /etc/openvpn, com todos os subdiretrios necessrios ao funcionamento do software.

6.1.2.5 Criao da infra-estrutura de gerao e gerenciamento de chaves de criptografia e outros elementos de segurana.

O OpenVPN, em sua implementao mais segura, suporta autenticao bi-direcional baseada em certificados, o que significa que o cliente (Filial ou micro standalone) deve autenticar o certificado do servidor, e o servidor (Matriz) deve autenticar o certificado do cliente, antes que se estabelea uma relao de confiana mtua que permita a criao do tnel VPN. Para tornar tal processo possvel, torna-se necessrio construir uma PKI Public Key Infrastructure, que consiste em: Um certificado individual (que contm uma chave pblica) e uma chave privada para o servidor e para cada cliente; Um certificado mestre da autoridade certificadora (CA) e uma chave privada mestre que ser utilizada para assinar cada certificado emitido para o servidor e para cada cliente;

Servidor e cliente devero se autenticar mutuamente primeiramente verificando se o certificado apresentado pela outra parte est assinado pela autoridade certificadora mestre (CA) e em seguida checando as informaes existentes no cabealho (header) do mesmo (common name, que identifica a entidade proprietria do certificado e o type do certificado servidor ou cliente). Este modelo de segurana apresenta algumas caractersticas importantes sob a perspectiva da VPN:

92

O servidor necessita apenas de seu prprio certificado e chave privada. Ele no precisa conhecer os certificados individuais de cada cliente que possa vir a conectar-se a ele; O servidor somente aceita clientes cujos certificados tenham sido assinados pela autoridade certificadora mestre (CA). E, pelo fato do servidor poder efetuar essa verificao de assinatura sem necessidade de acesso chave privada mestre da CA, possvel que essa chave (o elemento mais sensvel e importante de toda a PKI) fique armazenada numa mquina completamente diferente, inclusive sem nenhuma conexo de rede, o que garantiria maior segurana; Se uma chave privada tornar-se comprometida por alguma razo, ela pode ser desabilitada adicionando-se seu certificado a uma CRL (certificate revogation list). A CRL possibilita que certificados comprometidos sejam seletivamente rejeitados sem necessidade de reconstruir a PKI inteira. A CRL deve ter uma cpia no servidor, para que a checagem possa ser feita; O servidor pode considerar direitos de acesso especficos dos clientes com base em campos embutidos em seus certificados (Common Name, por exemplo).

Apresentado o overview acima, pode-se agora gerar a PKI no prprio servidor (Matriz), tendo em mente que num ambiente de produo ela deveria ficar num equipamento isolado de rede por motivos de segurana.

Uma vez que j foi instalado o OpenVPN no passo anterior, existem duas opes para construir uma PKI. A primeira seria trabalhar diretamente com as diretivas da biblioteca OpenSSL, disponvel no Linux, e que quem d suporte efetivo criao e gerenciamento da PKI. A segunda utilizar a interface disponibilizada pelo OpenVPN para simplificar as diretivas do OpenSSL. Ser utilizada esta ltima opo.

6.1.2.5.1 Gerao da PKI A instalao a partir do arquivo.tar.gz utilizada anteriormente cria um diretrio easy-rsa em /root/openvpn-2.09. Para facilitar o gerenciamento da VPN, deve-se mover esse diretrio para /etc/openvpn. cp Rv /root/openvpn-2.09/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa

93

Deve-se em seguida editar o arquivo vars, existente neste diretrio alterando as seguintes linhas (os nmeros no incio de cada linha no fazem parte do arquivo) para os valores mostrados: 01 02 03 04 05 06 07 08 09 10 11 export EASY_RSA="/etc/openvpn/easy-rsa" export KEY_CONFIG="$EASY_RSA/openssl.cnf" export KEY_DIR="$EASY_RSA/keys" export KEY_SIZE=1024 export CA_EXPIRE=365 export KEY_EXPIRE=365 export KEY_COUNTRY="BR" export KEY_PROVINCE="ES" export KEY_CITY="Vitoria" export KEY_ORG="labvpn" export KEY_EMAIL="vanderlei@helpcenter-vix.com.br"

Este arquivo um script que contm parmetros que sero utilizados pelo OpenVPN para seu prprio controle e para gerao dos certificados. Segue uma breve explicao sobre cada uma das linhas acima: Linha 01: Linha 02: Diretrio onde ser construda a estrutura PKI Arquivo de configurao do OpenSSL que ser alimentado pelos parmetros informados neste arquivo e por outros complementares obtidos em tempo de execuo dos comandos de gerao dos certificados. Diretrio onde sero colocados os certificados criados. Tamanho das chaves geradas em bits. Nmero de dias em que a chave privada da CA ir expirar. Nmero de dias em que os certificados iro expirar. Campo COUNTRY do certificado. Campo PROVINCE do certificado. Campo CITY do certificado. Campo ORGANIZATION do certificado. Campo EMAIL do certificado.

Linha 03: Linha 04: Linha 05: Linha 06: Linha 07: Linha 08: Linha 09: Linha 10: Linha 11:

Feita essa parte, pode-se partir para a inicializao da PKI executando os seguintes comandos/scripts: ./vars ./clean-all ./build-ca O primeiro script j foi visto. O segundo inicializa os arquivos necessrios para comear a gerao da PKI do zero. O terceiro ir gerar o certificado mestre da CA e a chave mestre privada da CA.

94

A execuo de build-ca invocar interativamente o comando openssl, cujos resultados esto reproduzidos abaixo:
Generating a 1024 bit RSA private key ............++++++ ...........++++++ writing new private key to 'ca.key' ----You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [BR]: State or Province Name (full name) [ES]: Locality Name (eg, city) [Vitria]: Organization Name (eg, company) labvpn}: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:CA Email Address [vanderlei@helpcenter-vix.com.br]:

Deve-se observar na seqncia interativa acima que os valores default de alguns campos so aqueles informados no arquivo vars. O campo Organizational Unit Name opcional e foi deixado em branco e o campo Common Name foi preenchido com a seqncia CA. Este ltimo campo no existe em vars e deve ser informado explicitamente, pois deve ser nico para cada par certificado/chave privada gerada. Os arquivos resultantes do script acima so: ca.crt ca.key index.txt serial.txt Certificado mestre da CA. Chave privada mestre da CA. Campo de controle Campo de controle

Com isso, a PKI foi inicializada e os arquivos mestre da CA criados. Pode-se agora partir para a criao dos certificados/chaves privadas para a matriz, as filiais e o micro standalone (Windows).

95

6.1.2.5.2 Matriz ./build-key-server

Como no passo anterior, os parmetros default devem ser aceitos e em Common Name deve ser informado matriz. Duas outras perguntas devem ser respondidas positivamente: "Sign the certificate? [y/n]" e "1 out of 1 certificate requests certified, commit? [y/n]". A primeira estabelece que o certificado deve ser assinado pela CA e a segunda confirma que o conjunto certificado/chave privada gerados deve ser criado. Os arquivos resultantes do script acima que nos interessam so:

matriz.crt matriz.key

- Certificado da matriz assinado - Chave privada da matriz

Abaixo, uma reproduo do certificado da matriz.


Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption Issuer: C=BR, ST=ES, L=Vitoria, O=labvpn, OU=, CN=CA /emailAddress=vanderlei@helpcentervix.com.br Validity Not Before: Out 17 20:29:25 2006 GMT Not After : Out 16 20:29:25 2007 GMT Subject: C=BR, ST=ES, L=Vitoria, O=labvpn, OU=, CN=matriz /emailAddress=vanderlei@helpcenter-vix.com.br Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:9c:35:d9:4c:15:66:ec:3d:6d:7f:84:9b:e7:97: 8c:3f:9d:0d:ad:06:45:7d:9b:0b:6d:75:4f:71:89: 0e:85:e6:34:29:26:a0:8f:13:3e:6e:f3:1a:fb:8a: 9b:68:1f:d1:f7:5c:80:19:ba:5a:97:68:98:7f:c4: 80:d3:b2:1a:cb:a8:bc:0f:2e:4f:51:2c:1a:df:7b: 22:57:2d:94:a7:3a:a6:61:68:7c:26:63:2a:e0:07: b1:4f:82:27:79:ca:a3:bf:e1:e6:48:71:50:bd:2a: df:d5:20:b0:6d:24:82:af:1a:27:9c:eb:5b:9a:8e: ef:45:1f:5c:a2:a2:0b:2e:63 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Server Certificate

96

X509v3 Subject Key Identifier: 00:1C:82:7F:CF:AA:95:37:95:C5:57:32:37:A1:EA:01:6F:A2:FE:BE X509v3 Authority Key Identifier: keyid:2E:3F:B3:2E:6E:17:12:48:A1:00:C1:93:75:75:CF:99:2C:8F:48:F2 DirName:/C=BR/ST=ES/L=Vitoria/O=labvpn/OU=/CN=CA/ emailAddress=vanderlei@helpcenter-vix.com.br serial:00 X509v3 Extended Key Usage: TLS Web Server Authentication X509v3 Key Usage: Digital Signature, Key Encipherment Signature Algorithm: md5WithRSAEncryption 8a:e2:91:51:b1:ba:8e:fe:de:93:49:98:63:a0:27:62:5b:f5: 0c:bf:0b:bb:5b:45:7e:0e:1f:2f:9d:08:52:b0:3d:b6:60:84: 2e:fe:45:65:d4:4d:52:6e:2c:ae:15:e5:4d:c7:00:0b:08:37: 14:d9:a5:ff:0d:69:17:92:5a:c3:69:a1:ad:0e:cd:0d:21:eb: 71:1a:a6:a7:f5:18:db:e4:58:6a:b4:77:3b:2f:c7:6b:e2:00: ef:5d:87:02:9b:40:74:45:4d:7e:02:13:15:c2:9f:c9:c1:51: 5f:65:86:ff:5b:8f:c1:99:8b:2b:17:5e:ad:3f:60:8b:26:9f: 44:2e -----BEGIN CERTIFICATE----MIID/TCCA2agAwIBAgIBATANBgkqhkiG9w0BAQQFADCBljELMAkGA1UEBhMCQlIx CzAJBgNVBAgTAkVTMRAwDgYDVQQHEwdWaXRvcmlhMRMwEQYDVQQKEwpIZWxwY2Vu dGVyMQswCQYDVQQLEwJIQzEWMBQGA1UEAxMNSGVscGNlbnRlciBDQTEuMCwGCSqG SIb3DQEJARYfdmFuZGVybGVpQGhlbHBjZW50ZXItdml4LmNvbS5icjAeFw0wNjA3 MTcyMDI5MjVaFw0xNjA3MTQyMDI5MjVaMIGPMQswCQYDVQQGEwJCUjELMAkGA1UE CBMCRVMxEDAOBgNVBAcTB1ZpdG9yaWExEzARBgNVBAoTCkhlbHBjZW50ZXIxCzAJ BgNVBAsTAkhDMQ8wDQYDVQQDEwZtYXRyaXoxLjAsBgkqhkiG9w0BCQEWH3ZhbmRl cmxlaUBoZWxwY2VudGVyLXZpeC5jb20uYnIwgZ8wDQYJKoZIhvcNAQEBBQADgY0A MIGJAoGBAJw12UwVZuw9bX+Em+eXjD+dDa0GRX2bC211T3GJDoXmNCkmoI8TPm7z GvuKm2gf0fdcgBm6WpdomH/EgNOyGsuovA8uT1EsGt97IlctlKc6pmFofCZjKuAH sU+CJ3nKo7/h5khxUL0q39UgsG0kgq8aJ5zrW5qO70UfXKKiCy5jAgMBAAGjggFe MIIBWjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0E JhYkT3BlblNTTCBHZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQW BBQAHIJ/z6qVN5XFVzI3oeoBb6L+vjCBwwYDVR0jBIG7MIG4gBQuP7MubhcSSKEA wZN1dc+ZLI9I8qGBnKSBmTCBljELMAkGA1UEBhMCQlIxCzAJBgNVBAgTAkVTMRAw DgYDVQQHEwdWaXRvcmlhMRMwEQYDVQQKEwpIZWxwY2VudGVyMQswCQYDVQQLEwJI QzEWMBQGA1UEAxMNSGVscGNlbnRlciBDQTEuMCwGCSqGSIb3DQEJARYfdmFuZGVy bGVpQGhlbHBjZW50ZXItdml4LmNvbS5icoIBADATBgNVHSUEDDAKBggrBgEFBQcD ATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAiuKRUbG6jv7ek0mYY6An Ylv1DL8Lu1tFfg4fL50IUrA9tmCELv5FZdRNUm4srhXlTccACwg3FNml/w1pF5Ja w2mhrQ7NDSHrcRqmp/UY2+RYarR3Oy/Ha+IA712HAptAdEVNfgITFcKfycFRX2WG /1uPwZmLKxderT9giyafRC4= -----END CERTIFICATE-----

Alm do nvel de segurana garantido pelo protocolo SSL/TLS, o OpenVPN possui um recurso que torna possvel criar uma de espcie de firewall interno ao daemon para ajudar no bloqueio de ataques DoS e de inundao (flooding) de pacotes UDP. Esse recurso utiliza-se de uma chave esttica que deve ser gerada atravs do comando:
openvpn --genkey --secret ta.key

97

Essa chave deve ser copiada para o servidor e para os clientes da VPN. Sua ativao deve ser feita atravs da diretiva tls-auth nos arquivos de configurao do OpenVPN (vide arquivos de configurao nos tpicos seguintes).

6.1.2.5.3 Filiais e micro standalone (Windows) ./build-key filial1 ./build-key filial2 ./build-key Windows De forma anloga da matriz, os Common Names so filial1, filial2 e Windows, espectivamente.

6.1.2.5.4 Gerao de parmetros Diffie-Hellman ./build-dh O arquivo gerado o dh1024.pem. Conforme visto no captulo 2, o algoritmo Diffie-Hellman foi o primeiro algoritmo de chave pblica descoberto, em 1976. Ele usado at hoje para a distribuio de chaves, mas no capaz de cifrar ou decifrar mensagens. Seu objetivo permitir a troca de chaves entre duas entidades remotas atravs de um meio de comunicao no seguro. Matematicamente, baseiase na aplicao de funes unidirecionais. Deve-se observar que o Algoritmo Diffie-Hellman usado somente para a troca segura de chaves. Uma vez feita a troca, a comunicao passa a utilizar a criptografia tradicional baseada em chaves simtricas.

98

6.1.2.5.5 Resumo das caractersticas de utilizao das chaves e certificados gerados

Resumidamente, os pares certificado/chave privada e o arquivo de parmetros DiffieHellman tm as seguintes caractersticas de utilizao conforme ilustrado no Quadro 3.

Arquivo

Necessrio para Servidor + todos os clientes Mquina que assina somente Servidor apenas

Propsito

Secreto

Ca.crt

Certificado mestre da CA

NO

Ca.key

Chave mestre da CA

SIM

Dh1024.pem

Parmetros Diffie Hellman

NO

Matriz.crt

Servidor apenas

Certificado do Servidor

NO

matriz.key

Servidor apenas

Chave privada do servidor

SIM

filial1.crt

Cliente 1 apenas

Certificado do Cliente 1 Chave privada do Cliente 1 Certificado do Cliente 2

NO

Filial1.key

Cliente 1 apenas

SIM

Filial2.crt

Cliente 2 apenas

NO

Filial2.key

Cliente 2 apenas

Chave privada do Cliente 2 Certificado do micro Windows Chave privada do micro Windows

SIM

Windows.crt

Micro Windows apenas

NO

Windows.key

Micro Windows apenas

SIM

Quadro 3 - Caractersticas de uso e localizao de chaves e certificados

99

O passo final desse processo copiar todos os arquivos indicados na tabela para seus respectivos locais de utilizao, tomando o cuidado bsico de transferir os arquivos secretos atravs de um meio de transmisso seguro.

6.1.2.6 Preparao do arquivo de configurao da Matriz e setup dos demais elementos necessrios ao funcionamento do OpenVPN. Uma vez definida a estrutura de PKI e geradas as chaves e certificados necessrios, deve-se preparar o servidor da VPN (Matriz), cuja configurao estar inteiramente contida num arquivo de configurao localizado em /etc/openvpn.

A seguir mostrado o arquivo de configurao que dar suporte ao cenrio proposto, no lado do servidor, com os devidos comentrios sobre as principais opes. Este arquivo no obrigatrio, podendo-se especificar cada uma de suas linhas como parmetro do comando que carrega o daemon openvpn (cada linha constitui uma opo co comando e deve ser precedida de dois hfens). Entretanto, a utilizao do arquivo de configurao permite uma melhor visualizao e organizao das opes utilizadas, sendo a forma adotada neste trabalho.
#==================================== # Arquivo de configurao do OpenVPN verso 2 # (multi-client server) # # MATRIZ # # Este arquivo configura o lado server (Matriz) # de uma configurao vrios-clientes <-> um # servidor. # # Esta configurao se aplica a sistemas baseados # no Windows ou em Linux/BSD. # # Comentrios so precedidos de '#' ou ';' e # so permitidas linhas em branco. #===================================== # Define o IP local que o OpenVPN deve monitorar (opcional). local 192.168.254.1 # Este o endereo IP associado placa eth0 do servidor # openvpn da matriz. # Define a porta TCP/UDP o OpenVPN deve monitorar. # Se por # alguma razo se deseja executar mltiplas instncias do # OpenVPN na mesma mquina, deve-se utilizar um nmero de # porta diferente para cada uma delas. Ser necessrio ainda # abrir essa porta no firewall da rede. Valor default: 1194. port 5100

100

# TCP ou UDP? ;proto tcp proto udp # "dev tun" ir criar um tnel IP roteado. "dev tap" ir criar # um tnel ethernet. Em muitos sistemas a VPN no funcionar # a menos que seja desabilitada parcial ou completamente o # firewall para a interface. # TUN/TAP. ;dev tap dev tun # SSL/TLS: certificado mestre da CA (ca), certificado (cert) e # chave privada (key). Cada cliente ou servidor deve ter seu # prprio arquivo de certificado e de chave privada. O servidor # e todos os clientes iro utilizar o mesmo arquivo "ca". # # No diretrio "easy-rsa" existe uma srie de scripts para a # gerao de certificados RSA e chaves privadas. Deve-se # utilizar Common Names exclusivos para os certificados do # servidor e de cada cliente. ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/matriz.crt key /etc/openvpn/keys/matriz.key # Deve ser mantido secreto # Parmetros Diffie-Hellman. Podem ser gerados pelo comando # ./build-dh do OpenVPN ou openssl dhparam -out dh1024.pem # 1024 da biblioteca OpenSSL. 1024 deve ser substitudo por # 2048 quando se deseja usar chaves de 2048 bits. dh /etc/openvpn/keys/dh1024.pem # A configurao abaixo fornece uma sub-rede VPN para o OpenVPN # a partir da qual sero gerados outros endereos para os # clientes. O servidor ir tomar o primeiro endereo (10.8.0.1) # para si e os endereos a seguir sero disponibilizados para # os clientes. cada cliente estar apto a encontrar o servidor # em 10.8.0.1. server 10.8.0.0 255.255.255.0 # A prxima opo mantm um registro das associaes cliente # x endereo IP virtual no arquivo especificado. Se OpenVPN # fica indisponvel ou reiniciado, na reconexo dos clientes # o mesmo endereo IP virtual que estava previamente associado # mantido. ifconfig-pool-persist ipp.txt # Envia rotas para os clientes para possibilitar que eles # encontrem outra ou outras sub-redes privadas atrs do servidor # (nesse caso, conectadas a eth1). Deve-se lembrar que estas # sub-redes privadas (nesse caso apenas uma) tambm precisaro # saber como rotear o pool de endereos dos clientes do OpenVPN # de volta para o servidor. push "route 192.168.0.0 255.255.255.0" # OBS: 192.168.0.0 o endereo de rede local da matriz. # Para associar endereos IP especficos a determinados # clientes ou se um cliente da VPN possui uma sub-rede # privada atrs de si cujos micros tambm devam ter acesso # VPN, deve-se utilizar o subsdiretrio "clients-config" # para manter arquivos de configurao especficos para cada

101

# cliente. # Neste estudo de caso, os clientes com certificados # de common name "filial1" e "filial2" tm atrs de si as # sub-redes 192.168.1.0 e 192.168.2.0, respectivamente. client-config-dir clients-config route 192.168.1.0 255.255.255.0 # CN=filial1 route 192.168.2.0 255.255.255.0 # CN=filial2 route 192.168.254.250 255.255.255.0 #CN=Windows # Ento, deve-se criar no diretrio clients-config da matriz # os arquivos "filial1", filial2" e Windows(nomes idnticos aos # common names de seus respectivos certificados) com as # seguintes linhas: # filial1 --> iroute 192.168.1.0 255.255.255.0 # filial1 # ifconfig-push 10.8.0.3 10.8.0.4 # filial1 # filial2 --> iroute 192.168.2.0 255.255.255.0 # filial2 # ifconfig-push 10.8.0.5 10.8.0.6 # filial2 # Windows --> iroute 192.168.2.0 255.255.255.0 # Windows # ifconfig-push 10.8.0.7 10.8.0.8 # Windows # Isto possibilitar s mquinas existentes em cada uma das # duas sub-redes acessar a VPN e tambm fixar seus IPs # virtuais (10.8.0.3/10.8.0.4, 10.8.0.5/10.8.0.6 e 10.8.0.7/ # 10.8.0.8) respectivamente). # A diretiva abaixo deve ser descomentada para permitir que # os clientes da VPN estejam aptos a se enxergar mutuamente. # Por default, os clientes podem ver apenas o servidor. # Nesse estudo de caso, ser mantida a opo default, e # a diretiva permanecer comentada. ;client-to-client # Se for desejado que mltiplos clientes se conectem com os # mesmos arquivos de certificado, chaves privadas e common # names, a diretiva abaixo deve ser descomentada. Tal opo # s deve ser usada para fins de teste. Em ambiente de # produo cada cliente deve ter seu prprio par certificado/ # chave. Assim foi feito neste trabalho. ;duplicate-cn # A opo keepalive faz com que mensagens similares ao ping # sejam enviadas atravs do link para que cada lado saiba # quando outro lado caiu. Os valores especificados informam # que so enviados pings a cada 10 segundos e assumido que # o outro lado caiu se nenhum ping for recebido durante o # intervalo de tempo de 120 segundos. keepalive 10 120 # Para um nvel de segurana alm daquele proporcionado pelo # protocolo SSL/TLS, possvel criar um firewall HMAC" para # ajudar no bloqueio de ataques DoS e UDP port flooding. # Para isso deve ser gerada uma chave esttica atravs do # comando: # # openvpn --genkey --secret ta.key # # O servidor e cada cliente devem ter uma cpia desta chave. # O segundo parmetro da diretiva deve ser 0 para o servidor # e 1 para os clientes. tls-auth ta.key 0 # Este arquivo secreto # OpenVPN permite escolher o cifrador criptogrfico. Esta

102

# escolha # deve ser reproduzida nos arquivos de configurao # dos clientes. As opes so Blowfish, AES e 3DES. cipher BF-CBC # Blowfish (default) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES # Esta diretiva habilita a compresso no link VPN. Se for # habilitada no servidor, obrigatrio que tambm seja nos # clientes. comp-lzo # Nmero mximo de clientes conectados concorrentemente. max-clients 100 # Por questes de seguranas, uma boa idia reduzir os # privilgios do daemon OpenVPN aps sua inicializao # (vlido apenas para sistemas no-Windows). Significa que # o OpenVPN inicializado com direitos de root e a seguir # sofre um rebaixamento. Assim, em caso de um ataque # bem sucedido, o invasor ter direitos limitados. user nobody group nobody # As opes persist iro tentar evitar que certos recursos # sejam acessados durante eventuais restarts, uma vez que eles # podero no estar mais disponveis em funo do downgrade # de privilgios ocasionado pelas duas opes anteriores. persist-key persist-tun # A opo abaixo gera um pequeno arquivo de status mostrando # as conexes ativas ( reescrito a cada minuto). status openvpn-status.log # Por default, as mensagens do OpenVPN sero enviadas ao syslog, # no Linux. No Windows, se o OpenVPN estiver rodando como um # servio, as mensagens sero gravadas no diretrio \Arquivos # de Programas\OpenVPN\log". As opes log e log-append mudaro # a definio default. # "log" ir reiniciar o arquivo de log a cada startup do OpenVPN. # "log-append" ir adicionar mensagens no final do arquivo de # log. Deve ser utilizado um ou outro, mas no os dois. ;log openvpn.log log-append openvpn.log # A diretiva verb estabelece o nvel apropriado de detalhes que # ser relatado nos logs. # 0 silncio, exceto para erros fatais. # 3 e 4 so nveis razoveis para uso geral. # 5 e 6 podem ajudar na depurao de problemas de conexo. # 9 o nvel mais detalhado. verb 3 # A opo abaixo estabelece que no mximo 20 mensagens seqenciais # da mesma categoria sero direcionadas para os logs. Visa evitar # que o log se torne inchado pela repetio exaustiva de # mensagens. mute 20

103

Alm do arquivo de configurao principal (matriz.conf), processado diretamente pelo daemon OpenVPN durante sua carga, existem ainda os arquivos por ele referenciados, a saber:

/etc/openvpn/keys/ca.crt /etc/openvpn/keys/matriz.crt /etc/openvpn/keys/matriz.key /etc/openvpn/keys/dh1024.pem /etc/openvpn/ipp.txt /etc/openvpn/clients-config/filial1 /etc/openvpn/clients-config/filial2 /etc/openvpn/keys/ta.key /etc/openvpn/openvpn.log

(1) (2) (3) (4) (5) (6) (7) (8) (9)

A funo de todos eles j foi detalhada anteriormente, no item sobre PKI e nos comentrios do prprio arquivo matriz.conf. Resumidamente, os trs primeiros so gerados pelo sistema PKI a partir de parmetros informados durante o processo de gerao dos certificados e chaves. O mesmo ocorre com o 4 e 8 arquivos, que tambm so gerados atravs do OpenSSL. O arquivo 5 para controle do OpenVPN, sendo gerado e atualizado em tempo de operao da VPN, automaticamente. O arquivo 9 o log do OpenVPN e tambm gerado

automaticamente. Restam ento os arquivos 6 e 7, que so construdos manualmente, estando reproduzidos abaixo.

# Filial 1 iroute 192.168.1.0 255.255.255.0 ifconfig-push 10.8.0.3 10.8.0.4 # Filial 2 iroute 192.168.2.0 255.255.255.0 ifconfig-push 10.8.0.5 10.8.0.6 # Windows iroute 192.168.254.250 255.255.255.0 ifconfig-push 10.8.0.7 10.8.0.8

Definida a estrutura de arquivos, necessrio ainda preparar o Linux para executar algumas tarefas necessrias e complementares ao correto funcionamento do OpenVPN. So elas: No arquivo /etc/rc.d/rc.local, incluir as seguintes linhas:

104

echo 1 > /proc/sys/net/ipv4/ip_forward route add default gw 192.168.254.254 /usr/bin/inadyn -u labvpn -p LabVPN2006 a labvpn-matriz.dyndns.org --syslog --background /etc/firewall/iptables.conf /usr/local/sbin/openvpn --config /etc/openvpn/matriz.conf --daemon -float

(1) (2)

(3) (4) (5)

Como sabido, este arquivo contm comandos ou chamadas de scripts que devem ser executados em tempo de carga do Linux. As linhas acima tm os seguintes significados:

(1)

Ativa o roteamento entre as interfaces de rede do Linux, que por default est desabilitado. Define a rota default do gateway matriz, apontando-a para a interface LAN do modem ADSL. Executa o aplicativo inadyn, responsvel pela associao do identificador labvpnmatriz.dyndns.org ao IP pblico do link ADSL. Esse aplicativo monitora as mudanas de IP e quando ocorrem providencia sua atualizao junto ao servio DYNDNS. Os cinco parmetros especificados na linha significam: 1) nome do usurio responsvel pelo identificador junto ao servio DYNDNS (-u labvpn), 2) senha do usurio (-p LabVPN2006), 3) identificador do gateway matriz na Internet (-a labvpn.dyndns.org), 4) direciona o log do aplicativo para o syslog e 5) executa a aplicao inadyn em background, tornado-a residente em memria e apta a efetuar o monitoramento do IP. O aplicativo um freeware e pode ser baixado do link http://www.softpicks.net/ software/inadyn-22675.htm. Executa o script /etc/firewall/iptables.conf, que contem os comandos que constituem o firewall da rede matriz (entre esses comandos esto os necessrios para liberar o trfego atravs da VPN (vide detalhamento abaixo). Executa o daemon openvpn. Os trs parmetros do comando significam: 1) arquivo de configurao que deve ser utilizado (--config /etc/openvpn/matriz.conf), 2) estabelece que a finalizao do processo de carga do OpenVPN seja retardada at que as funes de inicializao capazes de gerar erros fatais estejam completas (--daemon), 3) importante quando se trabalha com IPs dinmicos, como o caso aqui (links ADSL), e define que nas mudanas de IP dos clientes haver um novo processo de autenticao e o novo endereo passar a ser considerado na mesma sesso, sem perda da comunicao. til tambm em conexes dial-up.

(2)

(3)

(4)

(5)

105

No script que contm os comandos de firewall do servidor matriz (no caso o arquivo /etc/firewall/iptables.conf), devem ser includos os comandos para liberao do trfego da VPN atravs da interface virtual tun0. No script utilizado, reproduzido a seguir, foram omitidas as linhas no relacionadas VPN, representadas por seqncias de trs pontos (...). A designao tun+ especifica todas as interfaces tun possveis: tun0, tun1, tun2, etc).

# Firewall do Servidor Matriz Implementao para o laboratrio labvpn # # Internet -------> eth0 # Rede interna ---> eth1 # LAN=192.168.0.0/24 ... ... declarao de outras variveis ... # iptables.conf() { # iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # ... ... outros comndos do firewall (tabela filter) ... # Permite trfego para conexes j existentes iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT # # Permite conexes atravs da interface "tun" (OpenVPN) iptables -A INPUT -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT # # Abre a porta UDP 5100 para conexoes ao OpenVPN Server iptables -A INPUT -p udp --dport 5100 -j ACCEPT iptables -A FORWARD -p udp --dport 5100 -j ACCEPT # # ... ... outros comndos do firewall (tabela filter) ... # iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT # # iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT #

106

... ... outros comndos do firewall (tabela nat) ... # # Efetua NAT dos pacotes originados na rede interna iptables -t nat -A POSTROUTING -s $LAN -j MASQUERADE # } iptables.conf # # -------------------------------------------------------------------

Uma vez iniciado o OpenVPN, pode-se visualizar sua presena atravs de alguns comandos do Linux, como ifconfig e route, reproduzidos a seguir. O ifconfig reporta a presena da interface virtual tun0 (destacada em negrito), onde pode-se observar os IPs 10.8.0.1 e 10.8.0.2. No comando route pode-se observar referncias a esses IPs virtuais, bem como aos IPs reais, tanto da matriz quanto das filiais 1 e 2.

[root@labvpn-matriz vanderlei]# ifconfig eth0 Encapsulamento do Link: Ethernet Endereo de HW 00:0A:E6:6B:E0:46 inet end.: 192.168.254.1 Bcast:192.168.254.255 Masc:255.255.255.0 endereo inet6: fe80::20a:e6ff:fe6b:e046/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1 RX packets:4538183 errors:0 dropped:0 overruns:0 frame:0 TX packets:4249691 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:1000 RX bytes:2848927465 (2716.9 Mb) TX bytes:613270031 (584.8 Mb) IRQ:11 Endereo de E/S:0xae00 Encapsulamento do Link: Ethernet Endereo de HW 00:40:F4:61:81:AC inet end.: 192.168.0.250 Bcast:192.168.0.255 Masc:255.255.255.0 endereo inet6: fe80::240:f4ff:fe61:81ac/64 Escopo:Link UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1 RX packets:4529129 errors:0 dropped:0 overruns:0 frame:0 TX packets:4529779 errors:0 dropped:0 overruns:3 carrier:0 colises:0 txqueuelen:1000 RX bytes:2773409343 (2644.9 Mb) TX bytes:2978568558 (2840.5 Mb) IRQ:12 Endereo de E/S:0xe800 Encapsulamento do Link: Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereo inet6: ::1/128 Escopo:Mquina UP LOOPBACKRUNNING MTU:16436 Mtrica:1 RX packets:6642 errors:0 dropped:0 overruns:0 frame:0 TX packets:6642 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:0 RX bytes:1490177 (1.4 Mb) TX bytes:1490177 (1.4 Mb)

eth1

lo

107

tun0

Encapsulamento do Link: Protocolo Ponto-a-Ponto inet end.: 10.8.0.1 P-a-P:10.8.0.2 Masc:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Mtrica:1 RX packets:485919 errors:0 dropped:0 overruns:0 frame:0 TX packets:389266 errors:0 dropped:0 overruns:0 carrier:0 colises:0 txqueuelen:100 RX bytes:239529196 (228.4 Mb) TX bytes:69509712 (66.2 Mb)

[root@labvpn-matriz vanderlei]#_ [root@labvpn-matriz vanderlei]# route -n Tabela de Roteamento IP do Kernel Destino Roteador MscaraGen. Opes MtricaRef 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 192.168.2.0 10.8.0.2 255.255.255.0 UG 0 0 192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 192.168.254.0 0.0.0.0 255.255.255.0 U 0 0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0.0.0.0 192.168.254.254 0.0.0.0 UG 0 0 [root@labvpn-matriz vanderlei]#_

Uso Iface 0 tun0 0 tun0 0 tun0 0 tun0 0 eth1 0 eth0 0 lo 0 eth0

6.1.2.7 Preparao dos arquivos de configurao das Filiais e setup dos demais elementos necessrios ao funcionamento do OpenVPN. Nesta etapa, deve-se preparar as filiais que tm gateway Linux (Filial1 e Filial2), cujas configuraes estaro inteiramente contidas num arquivo de configurao localizado em /etc/openvpn/clients-config. Este diretrio foi criado na estrutura do OpenVPN da matriz, e para efeito de padronizao, ser mantido tambm nas filiais.

De forma anloga Matriz, a seguir mostrado o arquivo de configurao da Filial1 (filial1.conf).


#======================================================= # Arquivo de configurao do OpenVPN verso 2 # (multi-client server) # # FILIAL 1 # # Este arquivo configura o lado cliente(Filial1) # de uma configurao vrios-clientes <-> um # servidor do OpenVPN. Cada cliente deve ter seu # prprio arquivo de configurao e seu certificado # e chave privada. # # Esta configurao se aplica a sistemas baseado # no Windows ou em Linux/BSD.

108

# # Para ambiente Windows, este arquivo deve ter # entenso .ovpn. # # Comentrioss so precedidos de '#' ou ';' e # so permitidas linhas em branco. #==================================== # Especifica que este arquivo refere-se a um lado cliente e # que ir puxar certas diretivas do arquivo de configurao # do servidor. client # Aqui deve ser utilizada a mesma configurao definida para o # servidor. # "dev tun" ir criar um tnel IP roteado. "dev tap" ir criar # um tnel ethernet. Em muitos sistemas a VPN no funcionar # a menos que seja desabilitada oarcial ou completamente o # firewall para a interface. ;dev tap dev tun # Aqui deve ser utilizada a mesma configurao definida para o # servidor. # A conexo ser feita com um servidor TCP ou UDP? ;proto tcp proto udp # Configurao do hostname ou IP e porta do servidor. Pode-se # ter mltiplas entradas nesta opo, o que estabeleceria # um balanceamento de carga entre os servidores especificados. #remote <servidor> 1194 remote labvpn.dyndns.org 5100 # Define a escolha do servidor randomicamente a partir de uma # lista para fins de balanceamento de carga. No ser utilizado # neste projeto. ;remote-random # Define que o cliente deve tentar indefinidamente resolver o # hostname do servidor OpenVPN. Muito til em mquinas que no # permanecem conctadas Internet full time (exemplo: notebooks). resolv-retry infinite # A opo abaixo pode ser usada se o cliente no necessita de # ligao (bind) a uma porta local especfica. nobind # Por questes de seguranas, uma boa idia reduzir os # privilgios do daemon OpenVPN aps sua inicializao # (vlido apenas para sistemas no-Windows). user nobody group nobody # As opes persist iro tentar evitar que certos recursos # sejam acessados durantes os restarts, uma vez que eles # podero no estar mais disponveis em funo do downgrade # de privilgios ocasionado pelas duas opes anteriores. persist-key persist-tun

109

# Se a conexo ao servidor OpenVPN deve ser feita atravs de # um proxy http, coloque o IP e a porta do proxy aqui. # Se o proxy requer autenticao, consulte a man page para # mais informaes. ;http-proxy-retry # retry on connection failures ;http-proxy [proxy server] [proxy port #] # Redes wireless diversas vezes produzem uma grande # quantidade de pacotes duplicados. Esta opo deve ser # utilizada para evitar as advertncias a respeito de # pacotes duplicados. mute-replay-warnings # SSL/TLS: certificado mestre da CA (ca), certificado (cert) e # chave privada (key). Cada cliente ou servidor deve ter seu # prprio arquivo de certificado e de chave privada. O servidor # e todos os clientes iro utilizar o mesmo arquivo "ca". ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/filial1.crt key /etc/openvpn/keys/filial1.key # A opo abaixo verifica o certificado do servidor checando # se o campo nsCertType est setado para "server". Esta # uma importante precauo contra um potencial ataque # discutido no site http://openvpn.net/howto.html#mitm. # Para utilizar esse recurso, necessrio gerar o certificado # do servidor com o campo nsCertType setado para server. ns-cert-type server # Para um nvel de segurana alm daquele proporcionado pelo # protocolo SSL/TLS, possvel criar um firewall HMAC" para # ajudar no bloqueio de ataques DoS e UDP port flooding. # Para isso deve ser gerada uma chave esttica atravs do # comando: # # openvpn --genkey --secret ta.key # # O servidor e cada cliente devem ter uma cpia desta chave. # O segundo parmetro da diretiva deve ser 0 para o servidor # e 1 para os clientes. # # Se a opo tls-auth key usada no servidor, ento todos os # clientes tambm devero stiliz-la. tls-auth ta.key 1 # Este arquivo secreto

# OpenVPN permite escolher o cifrador criptogrfico. Esta # escolha deve reproduzir aquela feita no arquivo de # configurao do servidor. cipher BF-CBC # Blowfish (default) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES # Esta diretiva habilita a compresso no link VPN. Se for # habilitada no servidor, obrigatrio que tambm seja nos # clientes. comp-lzo # A diretiva verb estabelece o nvel apropriado de detalhe que # ser relatado nos logs.

110

# 0 silncio, exceto para erros fatais. # 3 e 4 so nveis razoveis para uso geral. # 5 e 6 podem ajudar na depurao de problemas de conexo. # 9 o nvel mais detalhado. verb 3 # A opo abaixo estabelece que no mximo 20 mensagens seqenciais # da mesma categoria sero direcionadas para os logs. mute 20

O arquivo da Filial 2 idntico, mudando apenas a sesso relativa ao certificado e chave privada, que so individualizadas para cada filial. Na reproduo deste arquivo, as partes idnticas s da Filial 1 esto representadas por uma seqncia de trs pontos (...).

#==================================== # Arquivo de configurao do OpenVPN verso 2 # (multi-client server) # # FILIAL 2 # # Este arquivo configura o lado cliente(Filial1) # de uma configurao vrios-clientes <-> um # servidor do OpenVPN. Cada cliente deve ter seu # prprio arquivo de configurao e seu certificado # e / chave privada. # # Esta configurao se aplica a sistemas baseado # no Windows ou em Linux/BSD. # # Para ambiente Windows, este arquivo deve ter # entenso .ovpn. # # Comentrioss so precedidos de '#' ou ';' e # so permitidas linhas em branco. #==================================== ... ... ... # SSL/TLS: certificado mestre da CA (ca), certificado (cert) e # chave privada (key). Cada cliente ou servidor deve ter seu # prprio arquivo de certificado e de chave privada. O servidor # e todos os clientes iro utilizar o mesmo arquivo "ca". ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/filial2.crt key /etc/openvpn/keys/filial2.key ... ... ...

Tambm de forma anloga Matriz, alm do arquivo de configurao principal (filialx.conf), processado diretamente pelo daemon OpenVPN durante sua carga, existem ainda os arquivos por ele referenciados:

111

/etc/openvpn/keys/ca.crt /etc/openvpn/keys/filialx.crt /etc/openvpn/keys/filialx.key /etc/openvpn/keys/dh1024.pem /etc/openvpn/ipp.txt /etc/openvpn/keys/ta.key /etc/openvpn/openvpn.log

(1) (2) (3) (4) (5) (6) (7) A funo de todos eles j foi

Os arquivos filialx em (2) e (3) referem-se a filial1 e filial2.

detalhada anteriormente, e no sero repetidas aqui. Cabe apenas chamar a ateno para a inexistncia dos arquivos filial1 e filial2, necessrios apenas no servidor da Matriz.

Tambm aqui, alm dessa estrutura de arquivos, necessrio preparar o Linux para executar algumas tarefas adicionais, que so: No arquivo /etc/rc.d/rc.local, incluir as seguintes linhas:

echo 1 > /proc/sys/net/ipv4/ip_forward route add default gw 192.168.254.254 /etc/firewall/iptables.conf /usr/local/sbin/openvpn --config /etc/openvpn/clientesconfig/filialx.conf --daemon -float

(1) (2) (3)

(4)

As explicaes so as mesmas feitas para a Matriz, e deve-se notar a ausncia da linha de execuo do inadyn. Conforme j frisado, apenas o servidor precisa ser referenciado atravs da Internet, e da a necessidade de associar um identificador fixo ao IP varivel da conexo ADSL. Pode-se observar no arquivo de configurao das filiais a referncia a esse identificador, bem como porta UDP utilizada, na linha remote labvpn.dyndns.org 5100.

Os scripts de firewall das filiais (/etc/firewall/iptables.conf), tambm devem conter comandos para liberao do trfego da VPN atravs da interface virtual tun0. A nica linha diferente, em relao Matriz, no que diz respeito VPN, aquela que define a varivel LAN, que deve ser: Para a Filial 1 LAN=192.168.1.0/24 Para a Filial 2 LAN=192.168.2.0/24

112

Uma vez iniciado o OpenVPN na filial1, as estaes de sua rede interna j conseguem enxergar a matriz. O comando tcpdump executado na matriz para a interface tun0, cujo resultado visto abaixo, mostra os pacotes echo request e echo reply correspondentes execuo do comando ping 192.168.0.1 na estao host-f1. importante observar o campo link type mostrando LINUX_SSL, o que confirma o uso de protocolo TLS/SSL no tnel VPN.

[root@labvpn-matriz vanderlei]# tcpdump -i tun0 tcpdumo: verbose output supressed, use -v or -vv for full protocol decode listening on tun0, link type LINUX_SSL (Linux cooked), capture size 96 bytes 12 packets captured 12 packets received by filter 0 packets dropped by kernel 15:08:20.622317 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 235 15:08:20.623667 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 235 15:08:21.622614 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 236 15:08:21.623614 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 236 15:08:22.626053 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 237 15:08:22.627056 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 237 15:08:23.622067 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 238 15:08:23.623047 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 238 15:08:24.619606 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 239 15:08:24.620586 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 239 15:08:25.624525 IP 10.8.0.3 > 192.168.0.1: icmp 64: echo request seq 240 15:08:25.625537 IP 192.168.0.1 > 10.8.0.3: icmp 64: echo reply seq 240 [root@labvpn-matriz vanderlei]#_

6.1.2.8 Instalao e configurao do OpenVPN no micro standalone (ambiente Windows). Para obter o arquivo de instalao do OpenVPN para Windows, deve-se efetuar o download a partir do endereo http://openvpn.se/download.htm.

O mdulo para instalao em Windows o openvpn-2.0.9-gui-1.0.3-install.exe. Ele est escrito em cdigo C win32 puro, e no requer nenhuma biblioteca run-time para executar. At este momento, a verso 1.03 a ltima verso estvel da interface grfica para Windows e j traz consigo a verso 2.0.9 do OpenVPN.

O OpenVPN para Windows suportado nas verses 2000, XP e posteriores. Sua instalao requer basicamente a execuo do arquivo executvel baixado. Nesse processo criado um diretrio openvpn sob a pasta arquivos de programas. O restante da estrutura de pastas e do

113

processo de instalao bem parecido com o do Linux: adaptar o arquivo de configurao para as caractersticas estabelecidas no cenrio descrito em 6.1.1 para a mquina standalone, copiar os certificados e chaves geradas para a mquina Windows e definir os mecanismos de carga do software (manual ou automtico).

O arquivo de configurao :

#==================================== # Arquivo de configurao do OpenVPN verso 2 # (multi-client server) # # MICRO STANDALONE WINDOWS # # Este arquivo configura o lado cliente (Windows) # de uma configurao vrios-clientes <-> um # servidor do OpenVPN. Cada cliente deve ter seu # prprio arquivo de configurao e seu certificado # e chave privada. # # Esta configurao se aplica a sistemas baseado # no Windows ou em Linux/BSD. # # Para ambiente Windows, este arquivo deve ter # entenso .ovpn. # # Comentrioss so precedidos de '#' ou ';' e # so permitidas linhas em branco. #==================================== # Especifica que este arquivo refere-se a um lado cliente e # que ir puxar certas diretivas do arquivo de configurao # do servidor. client # Aqui deve ser utilizada a mesma configurao definida para o # servidor. # "dev tun" ir criar um tnel IP roteado. "dev tap" ir criar # um tnel ethernet. Em muitos sistemas a VPN no funcionar # a menos que seja desabilitada oarcial ou completamente o # firewall para a interface. ;dev tap dev tun # Aqui deve ser utilizada a mesma configurao definida para o # servidor. # A conexo ser feita com um servidor TCP ou UDP? ;proto tcp proto udp # Configurao do hostname ou IP e porta do servidor. Pode-se # ter mltiplas entradas nesta opo, o que estabeleceria # um balanceamento de carga entre os servidores especificados. #remote <servidor> 1194 remote labvpn.dyndns.org 5100

114

# Define a escolha do servidor randomicamente a partir de uma # lista para fins de balanceamento de carga. No ser utilizado # neste projeto. ;remote-random # Define que o cliente deve tentar indefinidamente resolver o # hostname do servidor OpenVPN. Muito til em mquinas que no # permanecem conctadas Internet full time (exemplo: notebooks). resolv-retry infinite # A opo abaixo pode ser usada se o cliente no necessita de # ligao (bind) a uma porta local especfica. nobind # Por questes de seguranas, uma boa idia reduzir os # privilgios do daemon OpenVPN aps sua inicializao # (vlido apenas para sistemas no-Windows). #user nobody #group nobody # As opes persist iro tentar evitar que certos recursos # sejam acessados durantes os restarts, uma vez que eles # podero no estar mais disponveis em funo do downgrade # de privilgios ocasionado pelas duas opes anteriores. persist-key persist-tun # Se a conexo ao servidor OpenVPN deve ser feita atravs de # um proxy http, coloque o IP e a porta do proxy aqui. # Se o proxy requer autenticao, consulte a man page para # mais informaes. ;http-proxy-retry # retry on connection failures ;http-proxy [proxy server] [proxy port #] # Redes wireless diversas vezes produzem uma grande # quantidade de pacotes duplicados. Esta opo deve ser # utilizada para evitar as advertncias a respeito de # pacotes duplicados. mute-replay-warnings # SSL/TLS: certificado mestre da CA (ca), certificado (cert) e # chave privada (key). Cada cliente ou servidor deve ter seu # prprio arquivo de certificado e de chave privada. O servidor # e todos os clientes iro utilizar o mesmo arquivo "ca". ca c:\\arquiv~1\\openvpn\\keys\\ca.crt cert c:\\arquiv~1\\openvpn\\keys\\Windows.crt key c:\\arquiv~1\\openvpn\\keys\\Windows.key # A opo abaixo verifica o certificado do servidor checando # se o campo nsCertType est setado para "server". Esta # uma importante precauo contra um potencial ataque # discutido no site http://openvpn.net/howto.html#mitm. # Para utilizar esse recurso, necessrio gerar o certificado # do servidor com o campo nsCertType setado para server. ns-cert-type server # Para um nvel de segurana alm daquele proporcionado pelo # protocolo SSL/TLS, possvel criar um firewall HMAC" para # ajudar no bloqueio de ataques DoS e UDP port flooding.

115

# Para isso deve ser gerada uma chave esttica atravs do # comando: # # openvpn --genkey --secret ta.key # # O servidor e cada cliente devem ter uma cpia desta chave. # O segundo parmetro da diretiva deve ser 0 para o servidor # e 1 para os clientes. # # Se a opo tls-auth key usada no servidor, ento todos os # clientes tambm devero stiliz-la. tls-auth ta.key 1 # Este arquivo secreto

# OpenVPN permite escolher o cifrador criptogrfico. Esta # escolha deve reproduzir aquela feita no arquivo de # configurao do servidor. cipher BF-CBC # Blowfish (default) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES # Esta diretiva habilita a compresso no link VPN. Se for # habilitada no servidor, obrigatrio que tambm seja nos # clientes. comp-lzo # A diretiva verb estabelece o nvel apropriado de detalhe que # ser relatado nos logs. # 0 silncio, exceto para erros fatais. # 3 e 4 so nveis razoveis para uso geral. # 5 e 6 podem ajudar na depurao de problemas de conexo. # 9 o nvel mais detalhado. verb 3 # A opo abaixo estabelece que no mximo 20 mensagens seqenciais # da mesma categoria sero direcionadas para os logs. mute 20

Deve-se observar um detalhe importante de sintaxe entre os arquivos de configurao do OpenVPN para Linux e para Windows: na especificao dos caminhos de localizao dos certificados e chaves, a barra \ deve ser grafada em duplicidade \\ e o diretrio arquivos de programas deve ser escrito com arquiv~1 (nome DOS no formato 8.3). Seguidas essas regras, a grafia ficou:

ca c:\\arquiv~1\\openvpn\\keys\\ca.crt cert c:\\arquiv~1\\openvpn\\keys\\Windows.crt key c:\\arquiv~1\\openvpn\\keys\\Windows.key

Tambm de forma anloga Matriz, alm do arquivo de configurao principal (c:\arquivosde programas\openvpn\config\Windows.ovpn), processado diretamente pelo OpenVPN durante sua carga, existem ainda os arquivos por ele referenciados:

116

c:\arquivos de programas\openvpn\keys\ca.crt c:\arquivos de programas\/openvpn\keys\Windows.crt c:\arquivos de programas\openvpn\keys\Windows.key c:\arquivos de programas\openvpn\keys\dh1024.pem c:\arquivos de programas\openvpn\ipp.txt c:\arquivos de programas\openvpn\keys\ta.key

(1) (2) (3) (4) (5) (6)

A funo de todos eles j foi detalhada anteriormente, cabendo apenas chamar a ateno para a inexistncia do arquivo Windows, necessrio apenas no servidor da Matriz. O log do OpenVPN fica integrado ao sistema de logs do Windows, inexistindo o arquivo openvpn.log.

Tambm aqui, alm dessa estrutura de arquivos, necessrio preparar o Windows para executar algumas tarefas adicionais, que so:

Tornar o firewall do Windows (ou de terceiros, se for o caso) ON para a interface TAP. OBS: No Windows, mesmo utilizando tun no arquivo de configurao do OpenVPN, a interface virtual da VPN ser mostrada como TAP.

A escolha do modo de carga do OpenVPN feita durante a instalao. A escolha depender do uso do host. Se for necessria conexo com a Matriz em regime fulltime, deve-se escolher start automtico. Seno, manual. Neste ltimo caso, podese utilizar um cone criado pelo instalador na bandeja do sistema (system tray). Um clique com o boto direito do mouse exibe um menu com as opes, conforme Figura 38.

Figura 38 Menu de opes do OpenVPN para Windows

117

As opes Connect e Disconnect podem ser usadas a qualquer momento que se deseje. Alm delas, tem-se outras opes de gerenciamento do OpenVPN (View Log, Edit Config, Change Password, Proxy Settings, About e Exit), todas auto-explicativas. A disponibilidade das opes no menu depende do nvel de privilgios do usurio logado. O log de uma conexo bem sucedida est mostrado abaixo, com as linhas que referenciam elementos de segurana e dos protocolos de compactao do link em negrito.

Sun Nov 19 16:04:45 2006 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006 Sun Nov 19 16:04:45 2006 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Sun Nov 19 16:04:45 2006 LZO compression initialized Sun Nov 19 16:04:45 2006 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ] Sun Nov 19 16:04:46 2006 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ] Sun Nov 19 16:04:46 2006 Local Options hash (VER=V4): '41690919' Sun Nov 19 16:04:46 2006 Expected Remote Options hash (VER=V4): '530fdded' Sun Nov 19 16:04:46 2006 UDPv4 link local: [undef] Sun Nov 19 16:04:46 2006 UDPv4 link remote: 201.78.227.1:5100 Sun Nov 19 16:04:47 2006 TLS: Initial packet from 201.78.227.1:5100, sid=674d6008 f38bf356 Sun Nov 19 16:04:52 2006 VERIFY OK: depth=1, /C=BR/ST=ES/L=Vitoria/O=labvpn /OU=/CN=windows/emailAddress=vanderlei@helpcenter-vix.com.br Sun Nov 19 16:04:52 2006 VERIFY OK: depth=0, /C=BR/ST=ES/L=Vitoria/O=labvpn /OU=/CN=matriz/emailAddress=vanderlei@helpcenter-vix.com.br Sun Nov 19 16:04:59 2006 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Sun Nov 19 16:04:59 2006 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Sun Nov 19 16:04:59 2006 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Sun Nov 19 16:04:59 2006 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Sun Nov 19 16:04:59 2006 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256SHA, 1024 bit RSA Sun Nov 19 16:04:59 2006 [server] Peer Connection Initiated with 201.78.227.1:5100 Sun Nov 19 16:05:00 2006 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) Sun Nov 19 16:05:01 2006 PUSH: Received control message: 'PUSH_REPLY,route 192.168.0.0 255.255.255.0,route 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.1 10.8.0.8' Sun Nov 19 16:05:01 2006 OPTIONS IMPORT: timers and/or timeouts modified Sun Nov 19 16:05:01 2006 OPTIONS IMPORT: --ifconfig/up options modified Sun Nov 19 16:05:01 2006 OPTIONS IMPORT: route options modified Sun Nov 19 16:05:01 2006 TAP-WIN32 device [Conexo local 2] opened: \\.\Global\{26D1FB41E7C0-4038-BB3D-3AFD6C1D8FCF}.tap Sun Nov 19 16:05:01 2006 TAP-Win32 Driver Version 8.4 Sun Nov 19 16:05:01 2006 TAP-Win32 MTU=1500 Sun Nov 19 16:05:01 2006 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.7/255.255.255.252 on interface {26D1FB41-E7C0-4038-BB3D-3AFD6C1D8FCF} [DHCP-serv: 10.20.0.2, lease-time: 31536000] Sun Nov 19 16:05:01 2006 Successful ARP Flush on interface [65540] {26D1FB41-E7C0-4038-BB3D3AFD6C1D8FCF} Sun Nov 19 16:05:01 2006 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down

118

Sun Nov 19 16:05:01 2006 Route: Waiting for TUN/TAP interface to come up... Sun Nov 19 16:05:03 2006 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down Sun Nov 19 16:05:03 2006 Route: Waiting for TUN/TAP interface to come up... Sun Nov 19 16:05:04 2006 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down Sun Nov 19 16:05:04 2006 Route: Waiting for TUN/TAP interface to come up... Sun Nov 19 16:05:05 2006 TEST ROUTES: 0/0 succeeded len=2 ret=0 a=0 u/d=down Sun Nov 19 16:05:05 2006 Route: Waiting for TUN/TAP interface to come up... Sun Nov 19 16:05:06 2006 TEST ROUTES: 2/2 succeeded len=2 ret=1 a=0 u/d=up Sun Nov 19 16:05:06 2006 route ADD 192.168.0.0 MASK 255.255.255.0 10.8.0.8 Sun Nov 19 16:05:06 2006 Route addition via IPAPI succeeded Sun Nov 19 16:05:06 2006 route ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.8 Sun Nov 19 16:05:06 2006 Route addition via IPAPI succeeded Sun Nov 19 16:05:06 2006 Initialization Sequence Completed

Nesse ponto fica concludo o captulo de implementao da VPN proposta, utilizando o OpenVPN como ferramenta principal. No captulo seguinte ser feita a concluso do trabalho expondo os aspectos mais relevantes de todo o estudo efetuado, bem como apresentadas sugestes de novas pesquisas sobre features suportadas pelo OpenVPN que no puderam ser abordadas nesta oportunidade.

119

7 CONSIDERAES FINAIS E FUTUROS TRABALHOS


As pesquisas feitas ao longo do desenvolvimento deste trabalho permitiram constatar que VPN uma tecnologia em franco crescimento. Dados do IDC mostram que as vendas de solues proprietrias de VPN baseadas em IP comercializadas pelas principais empresas da rea (Nortel, Check Point, Cisco, Lucent, Axent, Nokia, Citrix, etc) subiram de U$ 5,4 bilhes em 2001 para U$ 14,7 bilhes em 2006, ficando as projees para 2009 em U$ 34,6 bilhes. Pode-se inferir da que tais crescimentos de demanda aplicam-se tambm s solues open source. As principais razes para esta crescente procura esto relacionadas segurana, flexibilidade e economia no trfego de informaes que o estgio atual da tecnologia j proporciona. (IDC, 2002) Esta segurana, conforme ficou demonstrado neste trabalho, obtida principalmente pela utilizao de algoritmos de criptografia e protocolos especficos, que interpem grandes obstculos s tentativas de invaso. Conforme foi visto, nesse campo as VPNs, e notadamente o OpenVPN, incorporam o estado da arte dessas tecnologias.

Entre as funes de segurana oferecidas pela tecnologia de VPN esto a garantia de integridade e confidencialidade das informaes transmitidas, bem como a autenticao e o controle de acesso aos gateways, itens que conferem maior confiana s empresas e organizaes interessadas neste tipo de soluo.

Este trabalho mostrou tambm que a combinao do sistema operacional Linux com o OpenVPN e outras ferramentas open source bastante eficaz, tornando-se, pela sua qualidade e ampla gama de recursos, uma soluo atrativa para qualquer organizao, mas

especialmente para aquelas que dispem de recursos financeiros insuficientes para investir em softwares de VPN proprietrios. Tambm a caracterstica de portabilidade do OpenVPN para os mundos Unix/Linux, Windows e Mac torna-o uma soluo muito flexvel: implementaes comuns que misturam servidores Linux e Windows a estaes de trabalho Windows, Linux ou Mac estariam completamente cobertas, mesmo considerando a utilizao de notebooks remotos efetuando acessos do tipo road warrior16.

16

Road warrior um termo que designa um computador com acesso VPN a partir de local remoto onde no h um gateway de VPN disponvel. Esse computador deve ser capaz por si s de estabelecer a conexo com o gateway da VPN que deseja acessar.

120

Ficou evidente tambm, em comparao com as VPNs baseadas em IPSEc, a vantagem do OpenVPN em relao a redes que implementam NAT e IP dinmico. Em relao questo do NAT, indiferente ao OpenVPN a localizao do gateway de VPN relativamente ao firewall da rede. Nas solues baseada em IPSec, torna-se obrigatria a utilizao do modo tnel quando o gateway de VPN situa-se atrs do firewall, o que acarreta alguns sacrifcios de funcionalidade, como por exemplo a perda de transparncia na comunicao entre dois ns quaisquer que implementem IPSec. Em relao utilizao de links com IP varivel (ADSL, por exemplo), o OpenVPN oferece grande resilincia17 atravs das opes de configurao -ifconfig-pool, --push e --pull, que permitem, entre outros usos, enviar endereos para o lado remoto (quando o endereo IP muda, seja no servidor ou no cliente, o fato prontamente comunicado outra ponta, restabelecendo-se imediatamente o link).

Outros pontos importantes dizem respeito facilidade de configurao e utilizao e estabilidade do cdigo executvel. As VPNs baseadas em IPSec so complexas quando se deseja um ajuste criterioso dos aspectos de segurana. Conforme Hosner, VPNs basedas em IPSec ou so muito caras ou muito difceis de utilizar de forma segura. IPSec denso e contm uma grande quantidade de opes a serem configuradas e administradas. Por operarem no espao do kernel, oferecem a oportunidade de falhas catastrficas. OpenVPN rejeita a complexidade do IPSec utilizando um protocolo exaustivamente testado, o TLS/SSL, e bibliotecas de criptografia que provem igual ou melhor funcionalidade, tudo isso num nico e simples pacote. OpenVPN opera no espao do usurio, o que aumenta a segurana e a estabilidade.(HOSNER, 2004)

Do ponto de vista da configurao da VPN, foi visto e testado com sucesso que o OpenVPN capaz de exportar (push) rotas, endereos de servidores DNS e outros detalhes de configurao para os clientes. Como conseqncia, a configurao de clientes mveis (road warriors) fica extremamente facilitada, pois pode ser modificada sem necessidade de acesso fsico aos computadores remotos. Isso vale para notebooks em trnsito, por exemplo, mas tambm para gateways clientes (o gateway de VPN de uma filial, por exemplo). Outro item facilitador que o cdigo do servidor e dos clientes o mesmo: a configurao que determina a funo, conforme pde ser constatado no captulo 6 (vide a semelhana entre os arquivos de configurao da matriz, das filiais e do cliente Windows).
17

Resilincia um termo da fsica que expressa a propriedade que alguns materiais tm de acumular energia, quando exigidos e estressados, e voltar ao seu estado original sem qualquer deformao.

121

De tudo o que foi visto, chega-se concluso que as VPNs, em conjunto com outras ferramentas de segurana, so capazes de garantir integridade, confidencialidade, autenticao e controle de acesso, permitindo uma comunicao to segura quanto o estgio atual da tecnologia possibilita. Entretanto, para usufruir de todos os benefcios hoje disponveis, a implementao deve ser cuidadosamente planejada, procurando-se ajustar os recursos existentes s diversas situaes possveis do cenrio prtico real. Isso envolve polticas rgidas de segurana tanto para a parte fsica quanto lgica da rede, aplicveis aos diversos elementos que a compem: servidores, proxies, firewalls, gateways, gateways de VPN, estaes de trabalho, anti-vrus, anti-spyware, anti-spam, etc.

Alm dos aspectos citados acima, a execuo deste trabalho permitiu um contato mais estreito com os conceitos e teorias relacionadas aos temas segurana de redes e VPN, vistos no curso de ps-graduao. Foi possvel visualizar com clareza a utilizao dos diversos mecanismos de segurana e as questes envolvidas em sua escolha, dada a variedade de opes oferecidas: TCP ou UDP, tamanho de chave versus performance versus nvel de segurana, DiffieHelmann ou RSA, modo tnel ou modo bridge, e assim por diante.

Pesquisas de mercado indicam um crescimento significativo das VPNs baseadas em TLS/SSL, onde o OpenVPN se destaca como a melhor soluo open source. Levantamento da Sinergy Research feito no incio de 2007, que compara o crescimento de 2006 sobre 2005, aponta um avano de 8% nas vendas de solues proprietrias de fireawall/VPN e de 41% nas vendas de solues de VPN baseadas em TLS/SSL. (SINERGY, 2007)

A concluso final que o OpenVPN uma soluo importante, apresentando vantagens significativas sobre outras solues em diversos aspectos. A aliana de suas caractersticas tcnicas a uma relativa facilidade de implementao torna-a uma soluo bastante indicada. Espera-se que este trabalho contribua para sua maior divulgao e funcione como um guia, inclusive de instalao, para aqueles que se interessarem em implement-la na prtica. Tomando os dados do pargrafo anterior como referncia, pode-se prever uma demanda crescente e significativa para solues baseadas no OpenVPN. Pode-se considerar tambm que haver boas perspectivas profissionais para quem domine bem essa tecnologia, podendo este trabalho servir de ponto de partida para os interessados. Entretanto, dada a amplitude do tema, muitas questes com as quais houve contato durante a realizao do trabalho ficaram

122

em aberto. A sugesto que se d continuidade ao trabalho, complementando-o com alguns dos seguintes tpicos, entre tantos outros possveis:

Implementar na VPN detalhada neste trabalho a possibilidade de browsing SMB. O objetivo permitir que estaes Windows ou Linux com Samba possam enxergar as estaes localizadas nos outros lados dos tneis VPN criados, utilizando ferramentas de browsing tais como ambiente de rede ou meus locais de rede do Windows, por exemplo, ou comandos de mapeamento do tipo net use.

Implementar uma VPN com OpenVPN no modo bridge, de forma a possibilitar o trfego de pacotes de camada 3 no-IP. Os testes podem ser feitos com Netbeui do Windows ou IPX/SPX da Novell.

Implementar VPNs com OpenVPN e IPSec, estabelecendo comparaes relativas a facilidade de configurao, facilidade de utilizao e desempenho. Os testes podem ser feitos em rede local, se no houver facilidade com links ADSL.

Efetuar modificaes na VPN detalhada neste trabalho de forma a explorar outros protocolos de autenticao, compresso e cifragem. Deve-se lembrar que foram utilizados Os protocolos Diffie-Hellman, Blowfish, SHA-1 e LZO, mas o OpenVPN suporta um amplo leque de opes, incluindo tneis UDP sem cifragem.

123

REFERNCIAS
ALBUQUERQUE, Fernando. TCP/IP Internet: Protocolos e Tecnologias. 3. ed.. Rio de Janeiro: Axcel Books, 2001. 362 p. BATISTA, Thas Vasconcelos. Segurana em Redes de Computadores. Natal, 2002. Aula 1. Disponvel em: <http://www.dimap.ufrn.br/~thais/Seguranca/home.html>. Acesso em: 22 mai 2006. BROCARDO, Marcelo Luiz. I2AC: Um Protocolo Criptogrfico para Anlise Segura de Crdito. 2001. 122 f. Dissertao de Mestrado em Cincia da Computao - Universidade Federal de Santa Catarina, Florianpolis, 2001. CARMO, Alexandre Pereira. Guia VPN em Linux Apostila Gerncia de Segurana de Redes Linux. Vitria: FACULDADE SALESIANA, 2005. 48 p. CYCLADES. Guia Internet de Conectividade. 6. ed. So Paulo: SENAC, 2000. 167 p. DVILA, Mrcio. Segurana de Redes. FUMEC, 2001. Disponvel em: <http://www. mhavila.com.br/aulas/seguranca/material/segredes01.pdf>. Acesso em: 17 set 2006. FREES/WAN, Version 1.99. FreeS/WAN. [S.l.], 2002. Disponvel em: <http://www. freeswan.org/download.html>. Acesso em: 09 jul 2006. HOSNER, Charlie. OpenVPN and the SSL VPN Revolution. SANS Institute, 2004. Disponvel em <http://www.sans.org/reading_room/whitepapers/vpns/1459.php>. Acesso em 13 Jan 2007. IDC. IP VPN Services: U.S. Market Forecast and Analysis, 2001-2006. IDC #25861, 2002. Referncia disponvel em: <http://www.vpnlabs.com/vpn-categories/MarketResearch/143/ index.html> sob o ttulo IP-VPN Market Forecast. Acesso em 28 Mar 2007. KOLENISKOV, Oleg; HATCH, Brian. Building Linux Virtual Private Networks (VPNs). 1. ed. EUA: New Riders, 2002. 385 p. LEWIS, Chris. Cisco TCP/IP Routing Professional Reference. [S.l.]: McGraw Hill, 1997. 402 p. MARGI, Cntia Borges;RUGGIERO, Wilson Vicente.Tutorial sobre segurana de redes Networld + Interop Brasil. EPUSP, 2000. Disponvel em: <http:// www.larc.usp.br/~cbmargi/pdf/Tutorial-comdex-ot.pdf>. Acesso em 14 Out 2006. MENDES, Hammurabi Chagas.Usando OpenSSL - Uma implementao livre do protocolo SSL. Universidade de Braslia, 2003. Disponvel em: <http://www.cic.unb.br/ docentes/pedro/trabs/hammurabi.htm>. Acesso em: 25 Jul 2006. MONTEIRO, Edmundo. Segurana em Redes. Coimbra, Portugal, 1999. Captulo 1. Disponvel em: <http://eden.dei.uc.pt/~sr/Teoricas/>. Acesso em: 08 abr 2006.

124

NAKAMURA, Emilio Tissato; GEUS, Paulo Licio de. Segurana de Redes em Ambientes Cooperativos. 3. ed. So Paulo: Editora Futura, 2002. OPENSSL, Pgina Oficial do projeto. Disponvel em : <http://www.openssl.org>. Acesso em: 25 Jul 2006. OPENVPN, Pgina Oficial do projeto. Disponvel em : <http://www.openssl.org>. Acesso em: 10 Jun 2006. RENDON, Jim. VPN market makes room for IPsec and SSL. 2004. Disponvel em: <http://searchnetworking.techtarget.com/originalContent/0,289142,sid7_gci996711,00.html >. Acesso em 24 mar 2007. SARLO, Lino, da Silva. Virtual Private Network. Aprenda a construir redes privadas virtuais em plataformas Linux e Windows. Rio de Janeiro: Editora Novatec, 2003. SCHNEIER, Bruce. Applied Cryptography. New York, NY: John Wiley & Sons, 1996. SCRIMGER, Rob et al. TCP/IP: A Bblia. 1. ed. Rio de Janeiro: Campus, 2002. 642 p. SETTING up a VPN Gateway. [S.l.], 2002. Disponvel em: <http://www.Linuxjournal. com/ article.php?sid=4772>. Acesso em: 09 jun 2006. SINERGY. Decision Report: Solues de segurana de rede movimentam US$ 5 bi. ed. 23/02/2007, 2007, Disponvel em: <http://www.decisionreport.com.br/publique/cgi/ cgilua.exe/sys/start.htm?infoid=910&sid=23>. Acesso em: 28 mar 2007. SOARES, L. F. G.; LEMOS, G.; COLCHER, S. Redes de computadores: das LANs, MANs e WANs s Redes ATM. 2. ed. rev. aum. Rio de Janeiro: Campus, 1995. 705 p. TANENBAUM, Andrew S. Redes de Computadores. 3. ed. Rio de Janeiro: Campus, 1997. 923 p.

125

ANEXO I O ALGORITMO DIFFIE-HELLMAN


um algoritmo bastante interessante por permitir o estabelecimento de uma chave secreta (criptografia simtrica) num processo de comunicao segura entre dois hosts, sem utilizar nenhum algoritmo de chave pblica para alcanar esse objetivo, a exemplo do que o RSA faz. O texto abaixo foi transcrito do site da RSA, cujo acesso pode ser feito pela URL <http://www.rsasecurity .com/rsalabs/node.asp?id=2248>.

[] What is Diffie-Hellman? The Diffie-Hellman key agreement protocol (also called exponential key agreement) was developed by Diffie and Hellman [DH76] in 1976 and published in the ground-breaking paper "New Directions in Cryptography." The protocol allows two users to exchange a secret key over an insecure medium without any prior secrets. The protocol has two system parameters p and g. They are both public and may be used by all the users in a system. Parameter p is a prime number and parameter g (usually called a generator) is an integer less than p, with the following property: for every number n between 1 and p-1 inclusive, there is a power k of g such that n = gk mod p. Suppose Alice and Bob want to agree on a shared secret key using the Diffie-Hellman key agreement protocol. They proceed as follows: First, Alice generates a random private value a and Bob generates a random private value b. Both a and b are drawn from the set of integers . Then they derive their public values using parameters p and g and their private values. Alice's public value is ga mod p and Bob's public value is gb mod p. They then exchange their public values. Finally, Alice computes gab = (gb)a mod p, and Bob computes gba = (ga)b mod p. Since gab = gba = k, Alice and Bob now have a shared secret key k. The protocol depends on the discrete logarithm problem for its security. It assumes that it is computationally infeasible to calculate the shared secret key k = gab mod p given the two public values ga mod p and gb mod p when the prime p is sufficiently large. Maurer [Mau94]

126

has shown that breaking the Diffie-Hellman protocol is equivalent to computing discrete logarithms under certain assumptions. The Diffie-Hellman key exchange is vulnerable to a man-in-the-middle attack. In this attack, an opponent Carol intercepts Alice's public value and sends her own public value to Bob. When Bob transmits his public value, Carol substitutes it with her own and sends it to Alice. Carol and Alice thus agree on one shared key and Carol and Bob agree on another shared key. After this exchange, Carol simply decrypts any messages sent out by Alice or Bob, and then reads and possibly modifies them before re-encrypting with the appropriate key and transmitting them to the other party. This vulnerability is present because Diffie-Hellman key exchange does not authenticate the participants. Possible solutions include the use of digital signatures and other protocol variants. The authenticated Diffie-Hellman key agreement protocol, or Station-to-Station (STS) protocol, was developed by Diffie, van Oorschot, and Wiener in 1992 [DVW92] to defeat the man-in-the-middle attack on the Diffie-Hellman key agreement protocol. The immunity is achieved by allowing the two parties to authenticate themselves to each other by the use of digital signatures (see Question 2.2.2) and public-key certificates (see Question 4.1.3.10). Roughly speaking, the basic idea is as follows. Prior to execution of the protocol, the two parties Alice and Bob each obtain a public/private key pair and a certificate for the public key. During the protocol, Alice computes a signature on certain messages, covering the public value ga mod p. Bob proceeds in a similar way. Even though Carol is still able to intercept messages between Alice and Bob, she cannot forge signatures without Alice's private key and Bob's private key. Hence, the enhanced protocol defeats the man-in-themiddle attack. In recent years, the original Diffie-Hellman protocol has been understood to be an example of a much more general cryptographic technique, the common element being the derivation of a shared secret value (that is, key) from one party's public key and another party's private key. The parties' key pairs may be generated anew at each run of the protocol, as in the original Diffie-Hellman protocol. The public keys may be certified, so that the parties can be authenticated and there may be a combination of these attributes. The draft ANSI X9.42 (see Question 5.3.1) illustrates some of these combinations, and a recent paper by Blake-Wilson, Johnson, and Menezes provides some relevant security proofs.

127

APNDICE A

COMPARATIVOS ENTRE OPENVPN E VPNS IPSEC


Na Internet existem diversos artigos que ressaltam aspectos diversos das duas tecnologias, fornecendo vises interessantes sobre determinados pontos de vista, alguns de carter meramente prtico, outros mais tericos ou voltados para situaes especficas. Os links de acesso so:

SSL VPNs and OpenVPN: A lot of lies and a shred of truth


September 2005 Charlie Hosner Acesso pela URL <http://software.newsforge.com/software/05/09/22/164231.shtml?tid=78>

OpenVPN and the SSL VPN Revolution


August 2004 Charlie Hosner Acesso pela URL <http://www.sans.org/reading_room/whitepapers/vpns/1459.php>

SSL Remote Access VPNs: Is this the end of IPSec?


October 2003 Steven Ferrigni Acesso pela URL < http://www.sans.org/reading_room/whitepapers/vpns/1285.php>

Linux's answer to MS-PPTP


September 2003 Peter Gutmann Acesso pela URL <http://www.cs.auckland.ac.nz/~pgut001/pubs/Linux_vpn.txt>

SSL VPNs dissected


December 2005 Joel Snyder Acesso pela URL <http://www.networkworld.com/reviews/2005/121905-ssl-test-intro.html?review=sslvpn>

Meet OpenVPN
December 2004 Hans-Cees Speel Acesso pela URL <http://www.Linuxjournal.com/article/7949>

128

APNDICE B CARACTERSTICAS DO OPENVPN


Introduo O OpenVPN uma soluo completa de VPN baseada no protocolo SSL que suporta uma grande variedade de configuraes, incluindo acesso remoto, acessos LAN-to-LAN, Segurana Wi-Fi e solues de acesso remoto em escala enterprise, com balanceamento de carga, failover e controle de acesso granular. O OpenVPN implementa extenses de segurana de rede nas camadas OSI 2 ou 3 usando o protocolo padro da indstria TLS/SSL, que apresenta flexibilidade nos mtodos de autenticao de clientes (suporta certificados digitais, smart cards, etc) e permite polticas de controle de acesso por usurios ou grupos usando regras de firewall aplicadas interface virtual VPN (TUN/TAP). O OpenVPN no um proxy web e no opera atravs de um browser web. OpenVPN um projeto open source e licenciado sob a forma GPL. Tambm pode ser licenciado comercialmente para empresas que desejem redistribu-lo como parte de sua aplicao proprietria.

Portabilidade OpenVPN roda nos seguintes sistemas operacionais: Linux, Windows 2000/XP e verses posteriores, OpenBSD, FreeBSD, NetBSD, Mac OS X e Solaris. As famlias de

processadores suportados incluem: Intel x86, Alpha, Sparc, AMD64 e ARM.

Recursos Com OpenVPN possvel: Efetuar tunneling de qualquer sub-rede IP ou adaptador virtual ethernet atravs de uma nica porta UDP ou TCP.

129

Configurar servidores VPN com escalabilidade e balanceamento de carga, usando uma ou mais mquinas, que sero capazes de manusear milhares de conexes dinmicas provenientes de clientes VPN.

Utilizar todos os recursos de encriptao, autenticao e certificao da biblioteca OpenSSL para proteger os dados das redes privadas quando em trnsito pela Internet.

Utilizar qualquer algoritmo de cifragem (cipher), tamanho de chave ou digestor HMAC (para checagem de integridade) suportados pela biblioteca OpenSSL.

Escolher entre utilizar encriptao convencional baseada em chave esttica ou encriptao de chave pblica baseada em certificados digitais.

Usar chaves estticas pr-compartilhadas ou distribuio dinmica de chaves atravs do protocolo TLS/SSL.

Utilizar compresso de link em tempo real e de forma adaptativa e gerenciar a utilizao da largura de banda disponvel.

Fazer tunneling de redes cujos pontos de conexo com a Internet utilizem IPs dinmicos tais como clientes DHCP ou dial-in.

Fazer tunneling de redes atravs de firewalls stateful orientados a conexo sem necessidade de utilizar regras de firewall explcitas.

Fazer tunneling de redes sobre NAT. Criar bridges ethernet seguras usando virtual tap devices. Isso permitir o trfego pelo tnel de outros protocolos de camada 3 tais como sobre IPX, Appletalk, Netbeui, etc.

Controlar e gerenciar o OpenVPN usando uma interface grfica em ambiente Windows ou Mac OS X.

Diferenciais em relao a outros softwares de VPN

Os principais pontos fortes do OpenVPN incluem portabilidade para diversas plataformas conhecidas do universo computacional (PC, Mac, Sun, etc), grande estabilidade, escalabilidade para centenas ou milhares de clientes, instalao relativamente fcil e suporte para IP dinmico e NAT.

130

O OpenVPN fornece um framework para VPN projetado para permitir customizaes diversas, tais como capacidade para distribuir pacotes de instalao pr-configurados para clientes ou suporte a mtodos alternativos de autenticao atravs de plugins (por exemplo, o mdulo openvpn-auth-pam permite que o OpenVPN autentique clientes usando qualquer mtodo de autenticao PAM), que podem ser usados exclusivamente ou combinados com certificados X509.

O OpenVPN oferece uma interface de gerenciamento que pode ser utilizada para controlar remotamente ou gerenciar de forma centralizada o daemon OpenVPN. A interface de gerenciamento pode tambm ser utilizada para desenvolver um front end grfico ou web para o OpenVPN.

No ambiente Windows, o OpenVPN pode ler certificados ou chaves privadas a partir de smart cards que suportem a API Crypto do Windows.

O OpenVPN utiliza um modelo de segurana que protege as redes contra ataques passivos e ativos. Esse modelo baseado do uso de SSL/TLS para autenticao de sesso. OpenVPN suporta X509 PKI (public key infrastructure) para autenticao de sesso, o protocolo TLS para distribuio de chaves, uma interface cipher-independent para encriptao dos dados enviados pelo tnel e o algoritmo HMAC SHA-1 para autenticao dos dados enviados pelo tnel.

O OpenVPN foi construdo para ser portvel. Atualmente, OpenVPN roda em Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X e Windows 2000/XP. Em funo do OpenVPN ser escrito como um daemon que roda no espao do usurio (user-space daemon) e no como um mdulo do kernel ou uma complexa modificao da camada IP, os esforos requeridos para port-lo ficam dramaticamente menores.

O OpenVPN fcil de usar. Em geral, um tnel pode ser criado e configurado com um simples comando (e sem nenhum arquivo de configurao ser necessrio). A documentao do OpenVPN contm exemplos ilustrativos de sua utilizao.

O OpenVPN projetado e testado com rigor para operar de forma robusta em redes no confiveis. O principal objetivo do design do OpenVPN que ele deve ser o responsvel, tanto na operao normal quanto em situaes de recuperao de erros, pela continuidade e restabelecimento do tnel. Isso significa que, se a camada IP cai por 5 minutos, quando ela voltar, o trfego no tnel ser imediatamente retomado, sem interveno humana.

131

O OpenVPN tem um projeto fortemente modular. Toda a criptografia manuseada pela biblioteca OpenSSL e todas as funcionalidades de IP tunneling so providas pelo driver de rede virtual TUN/TAP. Os benefcios dessa modularidade podem ser vistos, por exemplo, na forma como o OpenVPN pode ser dinamicamente linkado com novas verses da biblioteca SSL e imediatamente ter acesso a qualquer nova funcionalidade trazida pelo novo release. Por exemplo, quando o OpenVPN foi construdo com a verso 0.9.7 da biblioteca OpenSSL, ele automaticamente ganhou acesso a novos encriptadores (ciphers) tais como AES-256 (Advanced Encryption Standard com chave de 256 bits). De forma semelhante, o design para rodar no espao do usurio permite portabilidade direta para qualquer sistema operacional para o qual exista o driver de rede virtual TUN/TAP.

O OpenVPN rpido. Rodando em Red Hat 7.2 num PC Pentium II 266 MHz, usando autenticao de sesso baseada em TLS, o cifrador Blowfish, autenticao de dados no tunnel SHA-1 e fazendo tunneling de uma sesso FTP com arquivos grandes e prcomprimidos, OpenVPN alcanou uma taxa de envio/recebimento de 1,455 megabytes por segundo de tempo de CPU.

Ainda que o OpenVPN possua um vasto nmero de opes para controlar os parmetros de segurana do tnel VPN, ele prov tambm opes para proteger a segurana do servidor propriamente dito, o que inclui --chroot para restringir a parte do filesystem que o daemon OpenVPN tem acesso, --user e --group para diminuir os privilgios do daemon aps a inicializao e --mlock para garantir que seqncias relativas s chaves e aos dados que trafegam no tnel nunca sejam paginados para o disco rgido, de onde poderiam ser recuperados posteriormente.

Uso do protocolo TLS para autenticao e negociao de chaves O TLS a ltima evoluo da famlia de protocolos SSL e foi desenvolvida originalmente pela Netscape para o seu primeiro web browser seguro. O TLS e seus predecessores SSL tm se espalhado pela web ao longo dos anos e tm sido extensivamente analisados procura de falhas. Isso tem permitido sua evoluo e fortalecimento, de forma que nos dias de hoje TLS/SSL considerado um dos mais robustos e maduros protocolos disponveis.

132

Compatibilidade com IPSec ou PPTP Existem trs famlias de implementaes de VPN IP usadas extensivamente nos dias de hoje: SSL, IPSec e PPTP. OpenVPN uma VPN SSL e como tal no compatvel com IPSec e PPTP.

O protocolo IPSec foi projetado para ser implementado como uma modificao da pilha IP no espao do kernel, e, dessa forma, cada sistema operacional requer sua prpria implementao do IPSec.

Em contraste, a implementao do OpenVPN no espao do usurio permite portabilidade entre sistemas operacionais e arquiteturas de processador. Existem vantagens e desvantagens nas duas abordagens. A principal vantagem da abordagem do OpenVPN a portabilidade, facilidade de configurao e compatibilidade com NAT e endereamento dinmico. A curva de aprendizado para instalar e usar o OpenVPN parecida com a de outros daemons relacionados a segurana, tais como SSH.

Historicamente, uma das vantagens do IPSec tem sido o suporte multi-vendor, o que comea ocorrer tambm com o OpenVPN, com o surgimento de dispositivos de hardware dedicados que o utilizam internamente.

A vantagem do protocolo PPTP ter um cliente pr-instalado na plataforma Windows. Entretanto, anlises feitas por especialistas em criptografia tm revelado muitas vulnerabilidades, o que no recomenda sua utilizao em situaes onde a segurana seja um fator crtico.

Padres seguidos pelo OpenVPN

Como um daemon que roda no espao do usurio, OpenVPN compatvel com TLS/SSL, certificados RSA e X509, PKI, NAT, DHCP e TUN/TAP virtual devices.

OpenVPN no compatvel com IPSec,

IKE (Internet Key Exchange, que negocia

associaes de segurana entre duas entidades e realiza a troca de chaves), PPTP e L2TP.

133

Uso de web browser como cliente OpenVPN

No possvel. Ainda que o OpenVPN use o protocolo TLS/SSL para segurana, ele no uma aplicao web proxy. Ele uma soluo de tunneling de camada 2 ou 3 e requer que o OpenVPN esteja instalado nos lados servidor e cliente.

Construo do OpenVPN

OpenVPN pode ser facilmente construdo a partir dos fontes para as variantes Linux e BSD. Construir OpenVPN para Windows mais complexo, entretanto um instalador pr-construdo est disponvel no site de download do OpenVPN.

OpenVPN pode ser construdo: Com as bibliotecas OpenSSL Crypto e SSL (verso 0.9.6 ou superior requerida),

oferecendo autenticao baseada em certificados, encriptao de chave pblica e distribuio dinmica de chaves baseada em TLS. S com a biblioteca OpenSSL Crypto, oferecendo encriptao e autenticao convencional baseadas em chaves estticas. Sozinho, com suporte a tneis UDP no criptografados.

OpenVPN pode tambm ser linkado com a biblioteca de compresso em tempo real LZO. Suporta tambm compresso adaptativa (adaptive compression), significando que ir habilitar a compresso somente quando os dados que trafegam no tnel forem comprimveis.

OpenVPN roda inteiramente no espao do usurio e no requer nenhum componente especial do kernel alm do driver de rede virtual TUN/TAP, disponveis para Linux, Windows e variantes do BSD.

Você também pode gostar