monografia pos seguranca openvpn com ssl no linux

Upload: wagner-rocha

Post on 08-Jul-2015

863 views

Category:

Documents


5 download

TRANSCRIPT

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 ILUSTRAESFigura 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 QUADROSQuadro 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 SIGLAS3DES 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

SUMRIO1 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 geralEste 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 da1

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 textoEste 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 REDESEste 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 computadoresPara 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, equipamentos2

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 comunicaoA 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 AmeaasPara 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

4

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 computadoresA 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

5

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.

6

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 Handshake7

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.

9

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

33

Figura 10 Ataque Smurf

34

3 A ARQUITETURA TCP/IP DE QUATRO CAMADASO 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 aplicaoFunciona 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 TransporteFornece 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 ProtocolQuadro 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 InternetA 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 VPNUma 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 CriptografiaA 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.