Anda di halaman 1dari 76

FUNDAO DE APOIO ESCOLA TCNICA DO ESTADO DO RIO DE JANEIRO

INSTITUTO SUPERIOR DE TECNOLOGIA EM CINCIA DA COMPUTAO LABORATRIO NACIONAL DE COMPUTAO CIENTFICA

Uma Implementao de VPN

Bruno Alves Fagundes

Petrpolis RJ 2007

Bruno Alves Fagundes

Uma Implementao de VPN

Monografia de Graduao apresentada ao Instituto Superior de Tecnologia em Cincias da Computao de Petrpolis de como parte das exigncias do Curso FORTIC Tecnologia da Informao e da Comunicao.

Orientador: Fbio Borges de Oliveira

Petrpolis Rio de Janeiro Brasil 2007

Bruno Alves Fagundes

Uma Implementao de VPN

Monografia de Graduao apresentada ao Instituto Superior de Tecnologia em Cincias da Computao de Petrpolis de como parte das exigncias do Curso FORTIC Formao em Tecnologia da Informao e da Comunicao.

______________________________ Fbio Borges de Oliveira (Orientador)

______________________________ Antnio Tadeu Azevedo Gomes LNCC/MCT

_____________________________ Ercilia de Stefano COPPE/UFRJ

_____________________________ Jos Rodrigues Fernandes IST/FESO/Petrobrs

Petrpolis Rio de Janeiro Brasil 2007 3

RESUMO A interconexo de redes por um meio pblico uma alternativa muito atraente para empresas que necessitam compartilhar seus recursos com outras empresas ou funcionrio, no entanto trafegar esses dados sem nenhuma forma de proteo um risco muito alto. A tecnologia de VPN permite esta conexo de forma segura e utiliza a Internet para este fim.

Este trabalho ir apresentar alguns conceitos de segurana que servem como base para o entendimento do funcionamento de uma VPN. Sero abordadas as principais formas de criptografia no meio computacional, assim como tambm sero levados em considerao outras formas de segurana como firewall, por exemplo.

Ao final desta introduo tecnolgica este trabalho apresentar os principais protocolos utilizados para criar e gerenciar os tneis, apresentando seus pontos positivos e negativos.

ABSTRACT The net interconnection through a public channel is a very attractive alternative for the companies which need to share their resources with others companies or employees. The VPN technology allow this connection and the Internet can be used for this end.

This work will show some security conceptions that are useful to understand a VPN work. The main ways of cryptography in the computational world wont be taken for granted, as well as other means of security (firewall, for example).

At the end of the technological introduction this work will present the main used protocols to create and to manage the tunnels, presenting their positive and negative points.

LISTA DE FIGURAS Figura 1 Atacante Passivo e Atacante Ativo ............................................................... 12 Figura 2 Processo de criptografia ................................................................................ 14 Figura 3 Criptografia simtrica ................................................................................... 15 Figura 4 Criptografia simtrica / nmero de chaves.................................................... 16 Figura 5 Criptografia assimtrica ................................................................................ 18 Figura 6 Assinatura digital .......................................................................................... 22 Figura 7 Men-in-the-middle attack .............................................................................. 25 Figura 8 Filtro de pacotes ............................................................................................ 29 Figura 9 Screening Router ........................................................................................... 29 Figura 10 Servidor Proxy ............................................................................................ 30 Figura 11 Proxy (Camada de aplicao) ..................................................................... 31 Figura 12 Firewall Stateful .......................................................................................... 32 Figura 13 Arquitetura dual home-host......................................................................... 33 Figura 14 Screened host .............................................................................................. 34 Figura 15 Arquitetura Screened Subnet....................................................................... 35 Figura 16 Tnel VPN .................................................................................................. 37 Figura 17 Transporte subjacente.................................................................................. 38 Figura 18 Topologia Host-host .................................................................................... 39 Figura 19 Topologia Host-gateway ............................................................................. 39 Figura 20 Gateway-gateway ........................................................................................ 40 Figura 21 Conexo PPTP ............................................................................................ 42 Figura 22 Tunelamento PPTP ..................................................................................... 43 Figura 23 Processo de comunicao PPTP.................................................................. 44 Figura 24 Conexo L2F ............................................................................................... 46 Figura 25 Conexo L2TP ............................................................................................ 47 Figura 26 Encapsulamento L2TP ................................................................................ 49 Figura 27 IPSec modo transporte ................................................................................ 50 Figura 28 IPSec modo tnel ........................................................................................ 50 Figura 29 Campos do cabealho AH ........................................................................... 51 Figura 30 Pacote ESP .................................................................................................. 52 Figura 31 Conexo SSL............................................................................................... 55 Figura 32 Camada de Atuao do SSL........................................................................ 56 Figura 33 Mensagem do protocolo handshake ............................................................ 56 Figura 34 Funcionamento do protocolo SSL Record .................................................. 58 Figura 35 Cenrio de implementao 1 ....................................................................... 59 Figura 36 Cenrio de implementao 2 ....................................................................... 60 Figura 37 Instalao do cliente OpenVPN para Windows .......................................... 71 Figura 38 cone do OpenVPN para Windows ............................................................. 71

LISTA DE ABREVIATURAS 3DES AES AH ANSI ATM CHAP DES DMZ DoS ECC ESP FTP GRE HDLC HTTP ICMP IETF IKE IP IPS IPSec Ipv4 Ipv6 IPX ISAKMP ISDN L2F L2TP LAN LZO 3 Data Encryption Standard Advanced Encryption Standard Authentication Header American National Standards Institute Asynchronous Transfer Mode Challenge Handshake Authentication Protocol Data Encryption Standard Demilitarized Zone Denial of Service Elliptic Curve Cryptography Encapsulation Secure Payload File Transfer Protocol Generic Routing Encapsulation High-Level Data Link Control Hyper Text Transfer Protocol Internet Control Message Protocol Internet Engineering Task Force Internet Key Exchange Protocol Internet Protocol Intrusion-prevention system IP Secure IP Verso 4 IP Verso 6 Internetwork Packet Exchange Internet Security Association and Key Management Protocol Integrated Services Digital Network Layer Two Forwarding Layer Two Tunneling Protocol Local Area Network Lempel-Ziv-Oberhumer

MAC MD5 MS-CHAP NAS NetBEUI NIST OSI PAP PFS PoP3 PPP PPTP RC4 RSA SA SAD SHA-1 SHA-2 SLIP SMLI SMTP SPD SPI SSL TCP TLS UDP VLAN VPN

Message Authentication Code Message Digest 5 Microsoft Challenge Handshake Authentication Protocol Network Access Server NetBIOS Extended User Interface National Institute of Standards and Technology dos E. U. Open Systems Interconnection Password Authentication Protocol Perfect Forward Secrecy Post Office Protocol verso 3 Point-to-Point Protocol Point-to-Point Tunneling Protocol Rivest Cipher 4 Ron Rivest, Adi Shamir e Len Adleman. Security Association Security Association Database Secure Hash Algorithm 1 Secure Hash Algorithm 2 Serial Line IP Stateful Multi-Layer Inspection Simple Mail Transfer Protocol Security Police Database Security Index Parameter Security Socket Layer Transmission Control Protocol Transport Layer Security User Datagram Protocol Virtual Local Area Network Virtual Private Network

Sumrio

Sumrio ........................................................................................................ 9 Captulo 1 ................................................................................................... 11


Introduo ................................................................................................................. 11

Captulo 2 ................................................................................................... 12
Segurana .................................................................................................................. 12 2.1 - Segurana da Informao ............................................................................... 13
2.2.1 - Confidencialidade ............................................................................................... 13 2.2.2 - Integridade .......................................................................................................... 13 2.2.3 - Autenticidade ...................................................................................................... 14 2.2.4 - Disponibilidade ................................................................................................... 14

2.3 - Criptografia .................................................................................................... 14


2.3.1 Criptografia simtrica ........................................................................................... 15 2.3.2 Criptografia assimtrica ....................................................................................... 18

2.4 Message Digest (Hash) ..................................................................................... 20


MD5 (Message Digest 5) ............................................................................................... 21 SHA-1 (Secure Hash Algorithm) .................................................................................... 21 MAC (Message Authentication Code) ............................................................................ 22

2.5 Assinatura Digital ............................................................................................. 22 2.6 Formas de Ataques ........................................................................................... 23


2.6.1 Criptoanlise ......................................................................................................... 23 2.6.2 Fora Bruta (Brutal Force Attack) ....................................................................... 24 2.6.3 Homem Intermedirio (Men-In-The-Middle Attack)............................................. 24 2.6.4 Reenvio (Replay Attack) ........................................................................................ 25

Captulo 3 ................................................................................................... 26
Firewall ...................................................................................................................... 26 3.1 O que um firewall pode fazer ........................................................................... 27 3.2 O que um firewall no pode fazer .................................................................... 27 3.3 Arquitetura de Firewall..................................................................................... 28
3.3.1 Filtro de pacotes ................................................................................................... 28 3.3.2 Servidor Proxy ...................................................................................................... 30 3.3.4 Firewall Stateful .................................................................................................... 31

3.4 Topologias ........................................................................................................ 32


3.4.1 Dual Home-host .................................................................................................... 32 3.4.2 Screened host ........................................................................................................ 33 3.4.3 Screened Subnet .................................................................................................... 34

Captulo 4 ................................................................................................... 37
VPN Virtual Private Network .............................................................................. 37 4.1 Elementos de uma conexo VPN ..................................................................... 38 4.2 Topologias ........................................................................................................ 39
4.2.1 Host-host ............................................................................................................... 39 4.2.2 Host-gateway......................................................................................................... 39 4.2.3 Gateway-gateway .................................................................................................. 40

4.3 Protocolos ......................................................................................................... 40


4.3.1 - PPTP (Point-to-Point Tunneling Protocol) ........................................................ 40

4.3.2 - L2F (Layer Two Forwarding)............................................................................. 45 4.3.3 - L2TP (Layer Two Tunneling Protocol)............................................................... 46 4.3.4 - IPSec (IP Security).............................................................................................. 49 4.3.5 - SSL (Secure Socket Layer) .................................................................................. 55

Capitulo 5 ................................................................................................... 59
Cenrio de Implementao ...................................................................................... 59 Cenrio 1: gateway-gateway .................................................................................. 59 Cenrio 2: host-gateway ......................................................................................... 60 5.1 OpenVPN ......................................................................................................... 61 5.2 Instalao .......................................................................................................... 62 5.3 Softwares desenvolvidos .................................................................................. 74

Captulo 6 ................................................................................................... 75
Concluso .................................................................................................................. 75

10

Captulo 1

Introduo
Inicialmente quando surgiram as redes de computadores no havia uma preocupao to grande quanto segurana como hoje, no dava para imaginar, naquela poca, que nos dias de hoje praticamente tudo funcionaria com o auxilio de mquinas. E em um ambiente corporativo elas so simplesmente indispensveis.

Com o surgimento das redes de computadores e os avanos tecnolgicos, alcanamos diversas formas de conectarmos nossas mquinas, as redes de computadores nos permitem uma grande reduo de custos com infra-estrutura e equipamentos.

Atualmente muito comum termos a necessidade de conectar vrias redes prximas ou no. Como soluo temos os canais dedicados e as VPNs, cada um com seus prs e contras, o que mais motiva a instalao de uma VPN o seu baixo custo, se comparada com uma soluo de canal dedicado. Uma VPN permite que redes se comuniquem de forma segura atravs de um meio pblico, geralmente utilizada a Internet. Esta tecnologia cria tneis virtuais e transmite os dados criptografados atravs deles.

O objetivo deste trabalho apresentar as principais caractersticas de uma VPN assim como os principais protocolos disponveis, ao seu final ser descrita uma implementao em Linux utilizando o SSL (Secure Socket Layer).

Este trabalho est divido em 6 captulos, onde o captulo 1 possui uma introduo, o captulo 2 apresenta conceitos de segurana e algumas formas de ataque, o captulo 3 descreve sobre firewall e as principais arquiteturas existentes, o captulo 4 apresenta os conceitos de VPN e os protocolos mais utilizados, o captulo 5 descreve a implementao de uma VPN em Linux utilizando o OpenVPN que cria tneis SSL e o captulo 6 uma avaliao sobre o trabalho.

11

Captulo 2

Segurana
Diariamente novas formas de se atacar um usurio so descobertas, a criatividade dos atacantes no tm limites, so e-mails falsos sobre informaes de contas bancrias, promoes com links suspeitos, notificaes de que seu CPF est irregular etc. Na maioria desses casos o atacante depende da ingenuidade do usurio para poder ter acesso s informaes confidenciais, esses tipos de ataques so chamados de ataques de engenharia social, onde o atacante faz com que o usurio passe todas as informaes sem se negar. Mas, existem outras formas de ataque que um usurio pode sofrer, o atacante pode tomar conhecimento de informaes importantes de um usurio sem utilizar tcnicas de engenharia social, desta forma o atacante invade o ambiente onde o usurio est e ento com acesso ao seu micro rouba as informaes que deseja.

Existem duas maneiras de um atacante atuar, de forma passiva, ou seja, ele apenas escuta o meio e busca informaes ou de forma ativa onde o atacante alm de capturar as mensagens ele tambm altera seu contedo retransmitindo ou at mesmo gerando novas mensagens assumindo assim a identidade do usurio. Veja a figura 1.

Figura 1 Atacante Passivo e Atacante Ativo

12

2.1 - Segurana da Informao


A segurana dos dados certamente a principal preocupao de um administrador e para chegar a uma soluo eficaz necessrio fazer uma anlise detalhada do ambiente que deve ser protegido.

Como as empresas esto cada vez mais dependentes das redes de computadores para realizar suas atividades, a preocupao com a segurana dos dados cresce a cada dia.

Quando falamos de segurana da informao presumimos que trs premissas devem ser atendidas: Confidencialidade, Integridade e Autenticidade. Em alguns casos, como servios pela rede, tambm temos que garantir a Disponibilidade.

2.2.1 - Confidencialidade Como as informaes trafegam em um meio pblico muito simples capturar um pacote e ter acesso ao seu contedo, para assegurar-se de que o contedo de um pacote no ser legvel para um intruso, mas somente para o real destinatrio, utilizamos tcnicas de criptografia. Onde a informao original criptografada em sua origem e enviada para o destinatrio, este por sua vez, recebe o pacote criptografado, descriptografa-o e ento tem acesso ao contedo do pacote.

O elemento-chave na segurana de uma criptografia o tamanho da chave utilizada, uma vez que a maioria dos algoritmos de domnio pblico.

2.2.2 - Integridade Integridade garantir que a mesma informao que foi enviada pelo remetente chegar idntica ao destinatrio, inibindo assim qualquer tentativa de se alterar o contedo das mensagens. Esta premissa garantida atravs de funes de hash que so calculadas no remetente e enviadas junto com a mensagem, o destinatrio executa a funo hash

13

novamente na mensagem recebida e compara com o resultado envido. Se os dois valores de hash forem iguais no houve alterao de contedo.

2.2.3 - Autenticidade a garantia de que a mensagem realmente foi enviada pelo emissor esperado. Assim o destinatrio tem a certeza do remetente.

2.2.4 - Disponibilidade fazer com que um determinado servio esteja disponvel quando for solicitado. De nada adianta ter um servio que no esteja disponvel quando for solicitado.

2.3 - Criptografia
A criptografia existe h muito tempo e consiste na arte ou cincia de codificar uma mensagem para que somente pessoas autorizadas possam ter acesso ao contedo. Com o passar dos tempos e o desenvolvimento da matemtica e da informtica muitas outras formas de criptografia foram desenvolvidas.

A palavra criptografia vem do grego (Kryptos = oculto e Grafia = escrita) [7]. A criptografia hoje est cada vez mais no cotidiano. Para qualquer transao bancria atravs da Internet um bom nvel de segurana considerado pr-requisito, pois estamos transmitindo dados valiosos atravs de um meio inseguro. Um exemplo do processo de criptografia pode ser descrito atravs da figura 2.

Figura 2 Processo de criptografia

14

A segurana da criptografia est relacionada chave utilizada, esta chave consiste em uma seqncia de bits e quando maior ela for maior poder ser a segurana obtida.

Dependendo do tipo de chave utilizada a criptografia pode se classificar em simtrica e assimtrica.

2.3.1 Criptografia simtrica Este mtodo de criptografia consiste na utilizao de uma nica chave para cifrar e decifrar as mensagens e geralmente so algoritmos bem rpidos. Esta chave trocada ou combinada entre os extremos da conexo antes da transmisso dos dados. A figura 3 demonstra este processo.

Figura 3 Criptografia simtrica

A mensagem cifrada com a chave compartilhada entre as duas partes e ento enviada. O receptor faz o processo inverso: pega a mensagem cifrada e a decifra com a chave compartilhada e assim tem acesso mensagem original.

Uma desvantagem deste processo e que quanto mais usurios participarem da transmisso maior ser o nmero de chaves que todos devero armazenar.

15

Figura 4 Criptografia simtrica / nmero de chaves

A figura 4 mostra que quanto mais usurios existirem na comunicao maior ser o nmero de chaves necessrias para que todos possam se comunicar de forma segura. Para cada par de hosts transmitindo necessrio uma chave distinta. Isso faz com que um grupo com 4 host necessitem de 4x(4-1) = 12 chaves. Como a segurana da transmisso depende da segurana da chave quanto mais chaves existirem maior o risco de problemas.

Os algoritmos de chave simtrica podem ser divididos em duas categorias: de bloco e de fluxo:

Algoritmos de Bloco Cifram os dados a partir de blocos, ou seja, se o dado a ser cifrado um texto, esse texto ser dividido em blocos e a criptografia ser aplicada em cima de cada bloco. Um problema com estes algoritmos que se o mesmo bloco de texto simples aparecer em dois lugares, ele encriptar o mesmo texto, gerando assim, um padro de repetio.

Algoritmos de Fluxo Cifram os dados byte a byte. O dado a ser criptografado no cifrado por blocos, como o anterior e sim, serialmente. A informao vai sendo criptografada do incio ao fim, sem separaes.

16

Algoritmos de criptografia simtrica:

DES o Padro para Criptografia de Dados (Data Encryption Standard) foi adotado como padro pelo governo dos EUA em 1977, e como padro ANSI em 1981. O DES um algoritmo de bloco e tem diferentes modos de operao, dependendo da finalidade com que usado. Foi o algoritmo mais utilizado internacionalmente, sendo o primeiro cujo conhecimento se tornou pblico. Possui uma entrada de 64 bits, chaves de 56 bits, e sada de 64 bits; utiliza a mesma chave para descriptografar. Utilizado em aplicaes tpicas que necessitam de bom desempenho. Sua fraqueza o pequeno tamanho da chave (56 bits), facilitando o ataque por fora bruta.

3DES Foi uma maneira de tornar o DES pelo menos duas vezes mais seguro, usando o algoritmo de criptografia trs vezes, com trs chaves diferentes. Atualmente, o AES substituiu o Triple-DES por ser muito mais rpido e seguro.

RC4 Inventado em 1987 pela RSA, nunca teve o seu algoritmo de

funcionamento

interno publicado. Esse segredo possua interesses financeiros e no de segurana. A empresa esperava que o mantendo em segredo, ningum mais o implementaria e o

comercializaria. uma cifragem muito utilizada hoje em dia, at fazendo parte no protocolo de comunicao SSL (Security Socket Layer). Embora o tamanho da sua chave possa variar, ela normalmente utilizada com 128 bits. A cifra foi desenvolvida por Ron Rivest, e o fornecedor garante que o algoritmo imune a algumas tcnicas de criptoanlise (quebrar um texto ilegvel ou quebrar a chave) como a diferencial (mtodo probabilstico para ataque do tipo texto legvel conhecido - o analista conhece o texto claro, o texto criptografado e o algoritmo, mas no conhece a chave). O problema mais comum o uso de chaves com comprimento pequeno.

AES O AES surgiu como uma proposta para substituir o DES, para isso foi realizado um concurso, pelo NIST (National Institute of Standards and Technology dos E. U.), onde os algoritmos deveriam atender as seguintes caractersticas: Algoritmo publicamente definido; ser uma cifra simtrica de bloco; permitir que o tamanho da chave possa aumentar; Implementvel tanto em hardware quanto em software e

17

disponibilizado livremente ou em acordo com termos ANSI. E aps trs anos o algoritmo Rijndael escrito por Vincent Rijmen e Joan Daemen foi o vencedor. Baseado em uma rede de permutao em blocos de 128, 192 e 256 bits e chaves de 128, 192 e 256 bits. O algoritmo baseado em um trabalho anterior de Rijmen e Daemen chamado Square, que por sua vez derivado do algoritmo Shark tambm de ambos.

2.3.2 Criptografia assimtrica Tambm conhecida como criptografia de chave pblica ela consiste na utilizao de duas chaves, uma pblica e outra privada, desta forma um usurio que pretenda transmitir seus dados, dever manter sua chave privada em um local muito seguro, pois esta chave que vai garantir a autenticidade das mensagens enviadas pelo usurio e possibilitar a leitura das mensagens recebidas.

J a chave pblica, no necessita de tanta segurana, pois ela ser de conhecimento de todos. Como as chaves so complementares se a mensagem foi cifrada por uma das chaves somente a outra chave poder decifr-la.

Figura 5 Criptografia assimtrica

Vamos imaginar a seguinte situao: Inicialmente queremos mandar uma mensagem para o usurio A, ento obtemos a chave pblica do usurio A e ciframos a mensagem a ser enviada e aps este processo a enviamos para o destinatrio. O destinatrio ao receber a mensagem pega sua chave privada e decifra a mensagem recebida. A criptografia assimtrica tambm utilizada para realizao do processo de assinatura digital como apresentado na sesso 2.5.

18

Diferente da criptografia simtrica cada usurio participante da comunicao deve ter apenas que se preocupar com a segurana da sua chave privada.

Uma desvantagem que os mtodos assimtricos so mais lentos do que os mtodos de criptografia simtrica.

Algoritmos assimtricos

ECC A tecnologia ECC (Elliptic Curve Cryptography) possui segurana comparvel tecnologia RSA, com a vantagem de trabalhar com chaves bem menores, ideal para aplicaes onde o processador, memria e trfego em rede so recursos crticos. Pode atuar com chaves de 160, 224, 256, 384 ou 512 bits o que so equivalentes s chaves de 1024, 2048, 3072, 7682, 15360 bits para o RSA respectivamente [4]. A segurana de um sistema de criptografia baseado em curvas elpticas baseia-se no problema do logaritmo discreto em tais curvas.

RSA O RSA (Rivest-Shamir-Adleman), inventado por Ron Rivest, Adi Shamir e Leonard Adleman em 1977, apresenta a vantagem de permitir a utilizao de chaves criptogrfica de tamanho varivel, permitindo a utilizao de chaves grandes, favorecendo a segurana, ou pequenas, favorecendo a eficincia. O tamanho do bloco de dados a ser encriptado tambm varivel, desde que seu tamanho seja menor que o da chave utilizada. O criptograma gerado sempre do mesmo tamanho que a chave.

Tanto o RSA como o ECC utilizam criptografia em blocos e possuem uma segurana muito forte, devido ao alto poder computacional necessrio para se tentar quebrar uma chave. Podem tanto ser usados para cifrar informaes como para servir de base para um sistema de assinatura digital.

Algoritmo de troca de chaves:

Diffie-Hellman Um sistema para troca de chaves criptogrficas entre partes. Na verdade, no um mtodo de cifrar ou decifrar, um mtodo para troca de chave

19

secreta compartilhada por meio de um canal de comunicao pblico. Com efeito, as duas partes estabelecem certos valores numricos comuns e cada uma delas cria uma chave. As transformaes matemticas das chaves so trocadas. Cada parte calcula ento uma terceira chave (a chave de sesso) que no pode ser descoberta facilmente por um atacante que conhea os valores trocados.

Uma caracterstica curiosa deste algoritmo, proposto por W. Diffie e M. E. Hellman em 1976 o fato de no serem realizadas operaes de encriptao e assinatura de mensagens.

Este algoritmo torna possvel a determinao de uma chave compartilhada entre duas entidades que desejem trocar dados de forma segura, mas que s possam trocar dados por meio de um canal pblico. Sua funo , portanto, o estabelecimento de uma chave secretamente atravs de um canal inseguro. Uma vez que esta tenha sido estabelecida, algum algoritmo de criptografia simtrico ou assimtrico pode ser utilizado para promover a troca segura de dados.

Este algoritmo apresenta a desvantagem de no prover autenticao, tornando possvel o estabelecimento de uma chave compartilhada com uma entidade que esteja pretendendo se passar por outra. Esta deficincia torna possvel um ataque do tipo men-in-themiddle.

2.4 Message Digest (Hash)


Os termos hash e message digest so utilizados para identificar funes com as caractersticas abaixo:

Mapeiem um valor de entrada em um valor de sada; No haja qualquer correlao direta entre os valores de entrada e sada; Recebam valores de entrada de tamanhos arbitrrios e mapeiem-nos em valores de sada de tamanho fixo. 20

Principais propriedades de um hash:

desejvel que a partir dele no se pode descobrir a mensagem original; improvvel que duas mensagens que produzam o mesmo resumo (coliso);

Colises quando o algoritmo produz para duas mensagens diferentes o mesmo hash.

MD5 (Message Digest 5) Criado em 1991 por Ron Rivest, basicamente um MD4 melhorado. Foi desenvolvido para mquinas de 32 bits e pode ser facilmente implementado, teve seu algoritmo publicado em abril de 1992.

O MD5 recebe uma mensagem de tamanho aleatrio e retorna um resumo de 128 bits. Antes de iniciar os clculos o algoritmo complementa a mensagem, se necessrio, para que o tamanho da mensagem mais 64 bits (esses 64 bits correspondem a uma representao binria do tamanho original da mensagem) possam ser divididos por 512. Pois o algoritmo trabalha com blocos de 512 bits, aps esta operao e que o MD5 faz uso de um buffer de quatro registradores de 32 bits cada para iniciar os clculos e produzir um resumo.

SHA-1 (Secure Hash Algorithm) Este algoritmo foi aprovado pelo governo dos Estados Unidos da Amrica em 1995 para ser utilizado em todos os departamentos e agncias federais para autenticao de documentos digitais.

Assim como o MD5 o SHA-1 tambm surgiu a partir de estudos feitos sobre o MD4, portanto possui uma estrutura semelhante ao MD5, pois trabalha com blocos de 512 bits e faz o mesmo processo de complemento da mensagem original para que possa ser dividida por 512. Aps o processo de complemento do tamanho da mensagem o SHA-1

21

faz uso de dois buffers de cinco words de 32 bits para produzir um resumo de 160 bits ao final de seus clculos.

MAC (Message Authentication Code) um pequeno bloco de dados que gerado a partir de uma chave compartilhada, este bloco anexado mensagem e enviado para a outra extremidade da comunicao, esta extremidade realiza o mesmo clculo sobre a mensagem utilizando a chave compartilhada e compara os dois resultados MAC. Assim possvel certificar a integridade e autenticidade da mensagem.

2.5 Assinatura Digital


A assinatura digital a forma de garantir ao receptor da mensagem o seu real emissor. Para que possamos realizar o processo de assinatura digital temos que fazer uso de um sistema de chaves pblicas, a figura 6 ilustra este processo.

Figura 6 Assinatura digital

O emissor de posse da mensagem original, tambm chamada de texto pleno, inicialmente calcula o hash da mensagem e ento o criptografa com sua chave privada, logo em seguida ele envia a mensagem e o hash criptografado para o destinatrio.

O destinatrio ao receber a mensagem para verificar se o autor realmente quem diz ser, vai at uma autoridade certificadora e busca a chave pblica do remetente, com ela

22

o destinatrio poder descriptografar o hash, recalcul-lo e ento verificar se o remetente autentico.

Este tipo de procedimento no previne que um invasor tenha conhecimento do contedo da mensagem, apenas garante quem o remetente. Uma boa combinao alm do emissor criptografar o hash com sua chave privada ele cifra toda a mensagem com a chave pblica do destinatrio, desta forma somente o destinatrio com sua chave privada poder ter acesso ao contedo da mensagem.

2.6 Formas de Ataques


2.6.1 Criptoanlise Criptoanlise a cincia que abrange os princpios e mtodos para se chegar a desvendar um criptograma sem as chaves criptogrficas empregadas na sua gerao.

Um atacante pode tentar obter acesso a dados cifrados por duas formas: obtendo a chave, ou tentando deduzir a mensagem a partir do criptograma. Ambas fazem uso de mtodos de criptoanlise.

H basicamente trs mtodos de ataque para se decifrar um criptograma: utilizando apenas o criptograma, conhecendo-se a mensagem, ou escolhendo-se a mensagem.

Em ataques utilizando apenas o criptograma (ciphertext-only), o criptoanalista deve determinar a chave a partir de criptogramas interceptados. Em alguns casos o mtodo de criptografia, o idioma, o assunto ou as provveis palavras utilizadas nas mensagens podem ser conhecidos facilitando o ataque.

Em ataques cuja mensagem conhecida (known-plaintext), o criptoanalista possui acesso a pares mensagem-criptograma e procura reconhecer padres entre diferentes pares.

23

Em ataques do tipo mensagem escolhida (chosen-plaintext), o criptoanalista possui acesso a algum mecanismo que lhe fornece o criptograma referente a uma mensagem de sua escolha.

Um algoritmo criptogrfico considerado incondicionalmente seguro se no existe anlise sistemtica capaz de obter acesso a mensagens, independente da quantidade de criptogramas aos quais se tenha acesso e do conhecimento do algoritmo.

2.6.2 Fora Bruta (Brutal Force Attack) Consiste na tentativa de descobrir a chave atravs de testes com chaves geradas seqencialmente, aleatoriamente ou seguindo algum padro. A melhor forma de se evitar este tipo de ataque utilizar chaves razoavelmente grandes, o que aumentaria o nmero de possibilidades, por exemplo: com uma chave de 256 bits teremos aproximadamente 1077 possibilidades de chaves diferentes, mesmo assim o atacante poder descobrir a senha nas primeiras tentativas. Havendo tempo disponvel este ataque sempre obter sucesso.

2.6.3 Homem Intermedirio (Men-In-The-Middle Attack) Neste tipo de ataque, tambm conhecido como Ataque Brigada de Incndio (Bucket Brigade Attack) e ilustrado na Figura 7, duas entidades A e B desejam estabelecer uma comunicao segura por meio de criptografia assimtrica. No entanto, um atacante X, intercepta e altera de forma conveniente as informaes trocadas entre A e B, de modo a impedir a comunicao direta entre eles.

Ao interceptar a chave pblica de A enviada por A para B, X envia para B sua prpria chave pblica, pretendendo ser A. O mesmo ocorre para a chave pblica de B enviada para A. Deste modo, X consegue estabelecer comunicaes seguras com A e B, fazendo estas duas crerem estar se comunicando diretamente.

24

Figura 7 Men-in-the-middle attack

Para impedir este tipo de ataque importante que as chaves pblicas envolvidas sejam fornecidas por alguma entidade confivel.

2.6.4 Reenvio (Replay Attack) Este tipo de ataque consiste na retransmisso indevida por parte do atacante de alguma mensagem anteriormente interceptada. Como exemplo, pode-se imaginar um cliente (A) que deve solicitar ao banco (B) a transferncia de certo valor para um empregado (X). X intercepta ento a mensagem (encriptada) com a solicitao, e mesmo sem compreender seu contedo, mas sabendo que esta lhe favorece, reenvia, possivelmente diversas vezes, a mesma mensagem para B. Algumas formas de se contornar esta vulnerabilidade so:

A anexao da data e hora de envio, devidamente encriptados, de modo que pedidos mais antigos sejam desconsiderados. Mensagens reenviadas dentro desse espao de tempo seriam, no entanto, consideradas vlidas. necessrio sincronismo entre os relgios internos dos equipamentos envolvidos, o que muitas vezes no uma tarefa simples;

A anexao de nmeros de seqncia s mensagens, tambm encriptados, de modo a rejeitar mensagens com nmeros de seqncia repetidos;

O desenvolvimento de protocolos de autenticao mais complexos.

25

Captulo 3

Firewall
Firewall um elemento de software ou hardware que tem a funo de regular o trfego de uma rede, permitindo ou no a passagem de determinados pacotes usando como base as regras de segurana que lhe foram estabelecidas.

O firewall hoje um elemento muito importante na construo de uma rede segura. Quando pensamos em compartilhar dados de nossa rede com outras temos que ter alguns cuidados especiais. Por exemplo: se uma empresa pretende disponibilizar um servio de consulta a um banco de dados para seus clientes e este banco de dados est na rede local da empresa isso far com que a rede local fique exposta rede pblica, permitindo assim que um atacante tenha acesso a outras informaes da empresa alm do servio disponibilizado. A instalao de um firewall entre a empresa e a Internet ajudaria a barrar estas tentativas de invaso.

Para se implantar um firewall muito importante ter uma poltica de segurana eficiente, pois com base nesta poltica que o firewall ser implementado.

Um firewall funciona como um porteiro da sua rede. ele quem vai decidir quais pacotes podem entrar na ou no na rede, assim como tambm ele quem determina quais pacotes podem ou no sair dela. Ele est associado a um conjunto de regras especficas que podem remeter a aes como bloquear, negar, rejeitar ou aceitar os pacotes. Estes critrios de avaliao utilizam parmetros como protocolo, endereo IP de origem, endereo IP de destino, nmero da porta de origem, nmero da porta de destino etc.

26

3.1 O que um firewall pode fazer


O firewall o elemento da rede que est exposto rede pblica, desta forma qualquer ataque dever primeiro passar por ele, sendo assim ele pode ser considerado um checkpoint, ou seja, o foco para a tomada de decises referentes segurana.

Com a implantao de um firewall voc acaba obrigando a adoo de uma poltica de segurana ou a reviso de uma j existente alm de poder monitorar de forma mais eficiente todo o trfego da Internet e paralelamente poder definir perfis para os usurios e reduzir a exposio da rede na Internet.

3.2 O que um firewall no pode fazer


Um firewall no pode proteger contra conexes que no passem por ele. De nada adianta a implantao de um firewall se os usurios da rede interna podem acessar a internet diretamente, sem passar pelo firewall, atravs de conexes discadas, por exemplo.

Um firewall no pode proteger contra usurios internos mal intencionados. Nada pode ser feito quando um usurio da rede deseja prejudicar o seu funcionamento, por exemplo, ele pode copiar informaes sigilosas atravs de CDs, disquetes ou pendrives ou at mesmo instalar programas que criem brechas para que um atacante possa agir.

Por mais bem configurado que um firewall seja ele no tem como proteger contra ameaas totalmente novas, mesmo que o administrador bloqueie tudo que no permitido, um atacante pode explorar uma nova vulnerabilidade de um servio que at o momento parecia seguro e ter acesso rede interna.

Um firewall no pode proteger a rede contra vrus, para isso necessrio um software especfico de antivrus.

27

3.3 Arquitetura de Firewall


Antes de apresentar algumas arquiteturas de firewall vamos primeiro demonstras alguns conceitos importantes:

Bastion host Um bastion host qualquer mquina da rede configurada para exercer um papel crtico de segurana na rede interna, ele representa a presena pblica da rede na Internet. Ser o ponto de ligao entre a rede local e a rede pblica.

Como o bastion host ser o possvel alvo dos ataques, ele deve possuir uma estrutura simples que permita uma fcil manuteno.

DMZ DMZ a sigla para DeMilitarized Zone ou Zona Desmilitarizada, tambm conhecida como Perimeter Network ou Rede Perimetral ela est situada entre a rede confivel (rede local) e a rede pblica (geralmente a Internet).

3.3.1 Filtro de pacotes o tipo mais simples de firewall, ele consiste em determinar a ao que um pacote receber baseado em informaes como:

Endereo IP de origem; Endereo IP de destino; Protocolos TCP, UDP ou ICMP; Portas TCP ou UDP de origem; Portas TCP ou UDP de destino; Tipo de mensagem ICMP; Tamanho do pacote.

28

Este firewall atua na camada de Rede do modelo OSI.

Figura 8 Filtro de pacotes

Este tipo de filtragem muito comum ser implementado diretamente em roteadores e so chamados de screening routers, ficam posicionados em pontos de ligao entre redes.

Figura 9 Screening Router

Vantagens: Transparncia para os usurios; Variedade de software para filtro de pacotes; Consome pouco recurso computacional, pois verifica cabealhos apenas da camada de rede.

Desvantagens: As ferramentas disponveis no so perfeitas, pois alguns protocolos no so bem adaptados; difcil testar uma poltica aplicada;

29

3.3.2 Servidor Proxy Um servidor Proxy atua como um intermedirio entre o cliente da rede interna e o servio da rede externa. Esta conexo ocorre da seguinte forma:

O cliente da rede interna faz a solicitao, esta solicitao chega ao Proxy, ele a armazena e faz a mesma solicitao ao servio de Internet, o servio responde ao Proxy e ento ele envia a resposta ao cliente da rede interna, assim o processo se torna totalmente transparente para o cliente e para o servio da internet, pois ambos acreditam estar se comunicando diretamente.

Tendo posse deste controle o servidor Proxy pode restringir qualquer requisio de um servio externo por um cliente interno. A figura 10 ilustra o funcionamento de um servio de Proxy.

Figura 10 Servidor Proxy

Existem tambm servidores Proxy que visam o melhor desempenho da rede, estes so chamados de Proxy de cache. Consiste em armazenar uma cpia das ltimas requisies feitas pelos clientes internos desta forma quando houver uma reincidncia o servidor Proxy poder responder diretamente para o cliente interno sem necessitar consultar novamente o servio solicitado.

Um firewall do tipo Proxy atua na camada de aplicao do modelo OSI, uma implementao mais segura do que o filtro de pacotes, porm consome mais recursos visto que necessrio que o pacote percorra todas as camadas para ento sofrer a ao.

30

Figura 11 Proxy (Camada de aplicao)

Vantagens: Possuem bons registros de log; Pode fornecer cache; Pode fornecer autenticao no nvel de usurio; Permite aos usurios acesso direto a servios da internet.

Desvantagens: necessrio um servidor para cada servio; O desenvolvimento de novas aplicaes para servidores proxy no acompanha o desenvolvimento dos servios da Internet.

3.3.4 Firewall Stateful Foi desenvolvida inicialmente pela CheckPoint, desenvolvedora do Firewall-1, e posteriormente foi implementada em sistemas de cdigo aberto como Ipf & ipfilter. Este tipo de firewall considerado um dos mais seguros, pois une as caractersticas dos outros dois tipos apresentados: filtro de pacote e Proxy.

Pertence a terceira gerao de firewalls, pois suportam a tecnologia SMLI - Stateful Multi-Layer Inspection, ou seja: Inspeo Total de todas as Camadas do modelo OSI. Esta tecnologia permite que o firewall examine cada pacote em todas suas camadas do modelo OSI, desde a de transporte at a de aplicao, sem necessidade de processar a mensagem.

31

Figura 12 Firewall Stateful

Esta tecnologia utiliza um mtodo de comparao dos pacotes e padres pr-definidos de pacotes amigveis, isso junto com algoritmos de verificao de trfego otimizados pode oferecer a velocidade de um firewall de filtro de pacotes e a mesma segurana de um firewall do tipo proxy.

Vantagens: totalmente transparente aos usurios; mais rpido que o firewall proxy; Oferece recursos de filtragem de pacotes.

Desvantagens: Por ser uma tecnologia mais nova no est disponvel para qualquer aplicao.

3.4 Topologias
3.4.1 Dual Home-host Esta arquitetura formada por um computador com duas interfaces de rede, uma para rede segura (rede local) e outra para a rede pblica (internet). Este computador vai isolar as duas redes, onde apenas os servios do firewall tm acesso a ambas as redes, ningum da rede segura consegue acessar a rede pblica e ningum da rede pblica consegue acessar algum da rede segura. Para que isso ocorra uma conexo dever chegar ao firewall e ele far a conexo com a mquina desejada aplicando as regas de filtragem aos pacotes. 32

Figura 13 Arquitetura dual home-host

Esta arquitetura indicada para um sistema com as seguintes caractersticas:

Pequeno trfego para Internet; Trfego pela internet no crtico; No prov servios a usurios externos; Os dados da rede interna no possuem muito valor.

3.4.2 Screened host Nesta arquitetura os servios so providos a partir de um bastion host, que est conectado apenas a rede interna, o que separa a rede interna da rede pblica um roteador do tipo screening router, que implementa o filtro de pacotes, fazendo com que todo trfego externo que passa pelo roteador seja direcionado para o bastion host, assim os servios externos s conseguem conexo com o bastion host e no com a rede interna.

33

Figura 14 Screened host

uma arquitetura fcil de implementar e de dar manuteno e o acesso a servios proxy rpido pois o servidor est na mesma rede.

Uma desvantagem que h apenas uma barreira que protege a rede interna, o roteador, se este for comprometido toda segurana da rede tambm ser.

Esta arquitetura apropriada para sistemas com as caractersticas: Poucas conexes chegam pela Internet; A rede interna deve ser relativamente bem protegida; No recomendado quando o bastion host um web server.

3.4.3 Screened Subnet Esta arquitetura conta com a presena de uma DMZ ou Rede perimetral, que fica situada entre a rede interna e a rede pblica. considerada uma das mais seguras implementaes de firewall, pois conta com trs nveis de segurana. A figura 15 ilustra esta segurana.

34

Figura 15 Arquitetura Screened Subnet

O Roteador Externo (1 nvel)

Este equipamento ira permitir a entrada somente de requisies para servios disponveis na DMZ e conseqentemente ter uma filtragem menos rigorosa do que o roteador interno. As regras para proteo da rede interna devem ser praticamente as mesmas em ambos os roteadores.

DMZ (2 nvel)

Nesta rede estaro situados os servidores que iro prover servios rede externa e o bastion host para permitir a interconectividade da rede interna com a DMZ

O Roteador Interno (3 nvel)

Este roteador executa a maior parte da filtragem dos dados, pois ele s ir permitir a sada de requisies para o bastion host e a entrada de pacotes originados nele, isolando a rede interna e tornando o bastion host o nico ponto de acesso rede.

Imaginando que um atacante fosse invadir esta arquitetura ele primeiro teria que passar pelo roteador externo e mesmo que conseguisse, ficaria preso em algumas das mquinas da DMZ para poder chegar rede local teria ainda que passar pelo bastion host e depois 35

pelo outro roteador. altamente recomendado que duas equipes diferentes configurem os roteadores uma o roteador externo e outra o roteador interno, pois possivelmente se for encontrada uma falha em um deles o outro tambm poder estar comprometido.

36

Captulo 4

VPN Virtual Private Network


As VPNs surgiram como alternativa para se conectar redes fisicamente distantes atravs de um meio pblico no seguro. Vamos supor que uma empresa abrisse uma filial em outro estado, para que a filial compartilhasse os mesmos recursos da rede local da matriz seria necessrio fazer a contratao de um canal dedicado junto a uma operadora de telecomunicaes, este custo muito elevado o que acaba inviabilizando esta soluo. Como alternativa para este problema temos as VPNs que possuem um custo muito inferior ao de um canal dedicado, esta diferena de valores pode ser considerado o principal fator de desenvolvimento das VPNs.

A sigla VPN quer dizer Virtual Private Network, ou seja, Redes Privadas Virtuais, onde o termo redes corresponde s redes de computadores, Privada corresponde forma como os dados trafegam, neste caso os dados so criptografados o que garante a privacidade das informaes, e o termo Virtual por no fazerem, necessariamente, parte do mesmo meio fsico.

Ao criar uma conexo VPN estamos criando um tnel entre as extremidades da conexo assim os dados trafegam seguros de uma ponta at a outra.

Figura 16 Tnel VPN

37

A VPN deve dispor de recursos para permitir o acesso de clientes remotos autorizados aos recursos da LAN corporativa, viabilizar a interconexo de LANs de forma a possibilitar acesso de filiais, compartilhamento de recursos e informaes, e finalmente, assegurar privacidade e integridade dos dados que trafegam pela Internet.

4.1 Elementos de uma conexo VPN


Os principais elementos de uma conexo VPN so: tunelamento, autenticao das extremidades e o transporte subjacente [8].

Tunelamento O tunelamento se d pela forma como os dados trafegam pela conexo VPN. A idia do tnel surge quando para enviar os dados uma das extremidades da conexo, primeiro criptografa e depois encapsula o pacote original dentro de um novo pacote.

Autenticao das Extremidades Ao utilizar a autenticao das extremidades em uma conexo VPN garantimos que somente usurios vlidos esto participando da transmisso, atravs de protocolos de autenticao, que em sua maioria implementam algoritmos de hash. O que garante a integridade das mensagens.

Transporte Subjacente Devido ao protocolo TCP/IP ser a base da Internet, ele amplamente utilizado para a comunicao entre redes. Entretanto, ele muito inseguro. Por isso, uma VPN utiliza a infra-estrutura da rede j existente do TCP/IP para transmitir os seus pacotes pela Internet adicionando alguns cabealhos, o que possibilita a instalao destes em qualquer parte da rede [1].

Figura 17 Transporte subjacente

38

4.2 Topologias
4.2.1 Host-host Comunicao entre dois hosts com acesso a internet separados fisicamente podendo estar ou no em uma rede. A finalidade para este tipo de conexo seria para sincronismo de dados.

Figura 18 Topologia Host-host

4.2.2 Host-gateway Conexo de um host a uma rede. uma conexo tpica de empresas que possuem vendedores fora das suas dependncias e estes precisam acessar a rede da empresa enquanto esto fora, como por exemplo, ao realizar uma venda ele se conecta a rede da empresa e ao confirmar a venda no sistema da empresa o vendedor j poderia disparar processos para o setor de produo e iniciar o processo de fabricao dos produtos o que reduziria o tempo de entrega.

Figura 19 Topologia Host-gateway

39

4.2.3 Gateway-gateway Conexo entre duas empresas onde os gateways de VPN estaro sempre conectados, dessa forma as empresas, geograficamente distantes, podem compartilhar os mesmos recursos de rede com um custo muito reduzido.

Figura 20 Gateway-gateway

4.3 Protocolos
Os protocolos so os responsveis pela abertura e gerenciamento das sesses de tneis VPN.

4.3.1 - PPTP (Point-to-Point Tunneling Protocol) Desenvolvido por um frum de empresas denominado PPTP Frum, entre os membros estavam empresas como a Microsoft, Ascend Communications, ECI Telematics, US Robotics e outras. Esse frum tinha por objetivo facilitar o acesso de computadores remotos a uma rede privada atravs da Internet ou outra rede baseada em IP, foi um dos primeiros protocolos de VPN que surgiram.

Est incorporado no Windows a partir do NT 4.0 e um cliente em um patch para Windows 95. Agrega as funcionalidades do PPP para que o acesso remoto seja tunelado para um destino. Ele encapsula pacotes PPP utilizando uma verso modificada do

40

protocolo de encapsulamento genrico de roteamento (GRE). Permitindo ao PPTP flexibilidade em lidar com outros tipos de protocolos como IPX, NetBEUI etc.

O protocolo se baseia nos mecanismos de autenticao do PPP, os protocolos PAP, CHAP e MS-CHAP.

PAP (Password Authentication Protocol) um protocolo de autenticao de texto em formato simples. Os dados so transmitidos sem nenhuma forma de criptografia, ou seja, se o pacote for interceptado o atacante tem acesso a todo o contedo do pacote.

CHAP (Challenge Handshake Authentication Protocol) um protocolo de autenticao por desafio de resposta. Ele utiliza o MD5 para responder a um desafio emitido pelo servidor de acesso remoto.

uma melhoria do PAP, pois a senha nunca enviada na primeira mensagem. A senha usada para criar uma string hash de desafio. O servidor que sabe a senha duplica a operao e compara os resultados.

MS-CHAP (Microsoft Challenge Handshake Authentication Protocol) Muito semelhante ao CHAP, sua grande diferena que no CHAP, a verso de texto simples da senha deve estar disponvel para validar a resposta de desafio. No MSCHAP, o servidor de acesso remoto exige s a string de hash da senha para validar a resposta do desafio.

O PPTP apresenta algumas limitaes: No prover forte criptografia; No suportar mtodos de autenticao por token.

41

Funcionamento

Existem trs elementos envolvidos em uma conexo PPTP. O cliente, o servidor de acesso rede e o servidor PPP.

Figura 21 Conexo PPTP

A comunicao criada pelo PPTP tipicamente envolve trs processos, cada um exige que os anteriores sejam satisfeitos. 1. Conexo de comunicao PPP; 2. Conexo de controle PPTP; 3. Tunelamento de dados PPTP.

Conexo de comunicao

O cliente PPTP utiliza o PPP para se conectar ao ISP utilizando uma linha telefnica ou ISDN padro. Nesta etapa o PPP utilizado para estabelecer a conexo, criptografar e autenticar os dados.

42

Conexo de controle PPTP

Utilizando a conexo estabelecida pelo PPP cria-se uma conexo de controle desde o cliente at o servidor PPTP na Internet. nesta etapa que todos os parmetros de configurao da conexo so definidos entre as extremidades do tnel. Esta conexo utiliza pacotes TCP e chamada de Tnel PPTP.

Tunelamento dos dados

Os pacotes de dados so primeiro criptografados e encapsulados com um cabealho PPP. O quadro PPP resultante ento encapsulado com um cabealho GRE. Este quadro por fim encapsulado com um cabealho IP que contm os endereos de origem e destino correspondentes s extremidades da conexo PPTP.

Figura 22 Tunelamento PPTP

Encapsulamento de um datagrama IP feito pelo PPTP.

Datagrama PPTP

Existem dois tipos bsicos de datagramas PPTP: Datagramas IP contm mensagens de dados; Datagramas TCP contm mensagens de controle, estas mensagens so responsveis pelo gerenciamento do tnel.

A figura 23 descreve o processo de comunicao PPTP analisando os pacotes que esto sendo trafegados.

43

Figura 23 Processo de comunicao PPTP

1- Datagrama IP original; 2- Datagrama IP dentro de um quando PPP; 3- Quadro PPP encapsulado usando o encapsulamento de roteamento genrico (GRE) com cabealho IP; 4- Quadro PPP com todo pacote construdo. Esse quadro enviado para o servidor de acesso a rede; 5- Retirando o cabealho PPP, o pacote enviado atravs da Internet para o servidor PPTP utilizando o tnel PPTP; 6- Os cabealhos IP e GRE so removidos e o servidor PPTP recebe o quadro PPP; 7- O servidor retira o cabealho PPP e coloca o datagrama IP dentro da rede interna.

Desvantagens

1. Processo de negociao dos parmetros de conexo feita com criptografia muito fraca, permitindo que um atacante modifique os parmetros ou obtenha alguns dados como endereo IP, nome e verso do software do usurio e em alguns casos at o hash da senha.

44

2. As mensagens do canal de controle so transmitidas sem qualquer forma de autenticao ou proteo de integridade. O que expe o canal a ataques de seqestro de conexo.

3. No perodo de negociao dos parmetros de conexo possvel que um atacante inicie vrios processos de negociao falsos, visto que no existe autenticao do cliente nesse momento o que poderia acarretar em um ataque de negao de servio (DoS Denial of Service).

4.3.2 - L2F (Layer Two Forwarding) Desenvolvido pela empresa CISCO ele surgiu nos primeiros estgios da tecnologia VPN.

Uma diferena entre o L2F e o PPTP que o L2F possui tunelamento independente do IP, sendo capaz de trabalhar diretamente com outros meios como ATM e Frame Relay. O L2F sempre assume que a rede privada do cliente estar atrs de um gateway, podendo ser um roteador ou um firewall.

Utiliza o PPP para autenticao de usurios remotos, mas tambm pode incluir suporte para autenticao via RADIUS, TACACS e TACACS+.

Existem dois nveis de autenticao de usurio: um no IPS antes de estabelecer o tnel e outro quando se estabelece a conexo com o gateway.

Funcionamento

Primeiro o usurio estabelece uma conexo PPP com o servidor de acesso a rede (NAS) do ISP, ento o NAS estabelece um tnel L2F com o gateway. Finalmente o gateway autentica o nome do usurio e a senha e estabelece a conexo PPP ou SLIP (Serial Line IP).

45

A autenticao feita quando uma sesso VPN-L2F estabelecida, o cliente, o NAS e o gateway da Internet usam um sistema triplo de autenticao via CHAP.

Figura 24 Conexo L2F

A grande desvantagem do L2F no definir criptografia e encapsulamento de dados.

4.3.3 - L2TP (Layer Two Tunneling Protocol) Em uma tentativa de se criar um padro para protocolos de tunelamento o IETF reuniu neste protocolo as melhores caractersticas dos dois protocolos existentes o PPTP e o L2F. Aps alguns meses de estudo, concluiu-se que um novo protocolo seria o ideal para um padro, mas os desenvolvedores do PPTP no aceitaram muito bem essa idia e continuaram a desenvolv-lo, enquanto que os desenvolvedores do L2F decidiram parar o projeto e adotar o L2TP.

Ele oferece a flexibilidade e a escalabilidade do IP com a privacidade do Frame Relay ou ATM, permitindo que os servios de rede sejam enviados nas terminaes dos tneis.

46

O L2TP realiza o encapsulamento de pacotes PPP, podendo ento fazer uso dos mecanismos de autenticao PPP. Tambm prov suporte para autenticao do Tnel, permitindo que ambos os extremos do tnel sejam autenticados

Este protocolo foi desenvolvido para suportar dois modos de tunelamento: o tunelamento voluntrio e o compulsrio [8].

Voluntrio iniciado pelo computador remoto, sendo mais flexvel para usurios em trnsito que podem discar para qualquer provedor de acesso, pois o provedor no participa da criao dos tneis.

Compulsrio criado automaticamente e iniciado pelo servidor de acesso rede sob a conexo discada. Isto necessita que o servidor de acesso rede seja pr-configurado para saber a terminao de cada tnel baseado nas informaes de autenticao de usurio.

Figura 25 Conexo L2TP

47

Funcionamento

Um concentrador de acessos L2TP localizado no Servidor de Acesso a Rede (NAS) troca mensagens PPP com o servidor de rede L2TP para criao dos tneis. O L2TP passa os pacotes atravs do tnel virtual entre as extremidades da conexo.

Os quadros enviados pelo usurio so aceitos pelo ISP, encapsulados em pacotes L2TP e encaminhados pelo tnel. No gateway de destino os quadros L2TP so desencapsulados e os pacotes originais so processados para interface apropriada.

Datagramas L2TP

Existem dois tipos de datagramas: Mensagens de controle utilizadas para manter, gerenciar e excluir tneis e chamadas; Mensagens de dados so utilizadas para encapsular pacotes PPP a serem transmitidos pelo tnel.

O L2TP suporta tunelamento dos seguintes quadros: Frame Relay; Ethernet; VLAN; HDLC (High-Level Data Link Control) PPP

Autenticao

Devido ao uso do PPP para links dial-up o L2TP inclui mecanismos de autenticao dentro do PPP, os protocolos PAP e CHAP. Outros sistemas de autenticao tambm podem ser utilizados como RADIUS e o TACACS. Porm o L2TP no possui processos para gerenciamento de chaves criptogrficas.

48

Diante deste problema, us-lo em uma rede insegura como a Internet no recomendado. Para isso deve ser combinado com outros protocolos que supram essas ausncias como o IPSec, por exemplo.

Encapsulamento L2TP

Figura 26 Encapsulamento L2TP

Cabealho do L2TP

Quando dados passam por uma interface de entrada de um tnel L2TP, eles so encapsulados por um cabealho adicional L2TP, este cabealho e composto pelos seguintes parmetros: Cabealho de entrega (Delivery header) o cabealho necessrio para transmitir pacotes L2TP atravs da rede; Cabealho L2TP contm informaes que permitem identificar de maneira nica um tnel no local em que ser desencapsulado; Informaes (payload) o que ser transportado pelo L2TP podendo ser tanto um quadro da camada de enlace quanto um pacote da camada de rede.

4.3.4 - IPSec (IP Security) Em 1995 como uma resposta as carncias de segurana existentes no protocolo IP o Grupo de Trabalho de Segurana IP do IEFT desenvolveu o IPSec, como uma alternativa para a nova gerao do Ipv4, o Ipv6 [6].

Este conjunto de protocolos fornece principalmente servios de integridade, autenticao, controle de acesso e confidencialidade permitindo interoperabilidade com protocolos de camadas superiores como TCP, UDP, ICMP etc.

49

O IPSec apresenta trs caractersticas principais [2][6]. Cabealho de Autenticao (Authentication Header) AH prove a integridade dos pacotes garantindo sua origem; Cabealho de Encapsulamento do Payload (Encapsulation Header Payload) ESP garante a confidencialidade dos pacotes; Protocolo de negociao e troca de chaves (Internet Key Exchange) IKE permite a troca de chaves de forma segura.

O IPSec pode trabalhar de dois modos diferentes.

Modo Transporte

o modo nativo do IPSec, nele h a transmisso direta dos dados protegidos entre os hosts. Toda autenticao e cifragem so realizadas no payload. Utilizado em clientes que implementam o IPSec.

Figura 27 IPSec modo transporte

Modo Tnel

mais utilizado por gateways que manipulam trfego de hosts que no tm suporte ao IPSec. O pacote original encapsulado em um novo pacote com a criptografia do IPSec incluindo o cabealho original, ento enviado para o outro gateway IPSec que desencapsula e o encaminha ao destinatrio.

Figura 28 IPSec modo tnel

50

Authentication Header (AH)

A utilizao do protocolo AH previne ataques do tipo replay, spoofing e hijacking isso porque o protocolo faz uso de mecanismos de autenticao. A figura 29 descreve os campos do protocolo AH.

Figura 29 Campos do cabealho AH

Para proteger um pacote o AH insere um cabealho AH dentro do pacote a ser protegido, utiliza um nmero seqencial que zerado a cada estabelecimento de uma nova associao segura e adiciona funes de hash (MD5, SHA1 ou SHA2) ao AH [2][6].

Encapsulation Security Payload (ESP)

Alm de fornecer as caractersticas do AH, este protocolo tambm oferece a confidencialidade como podemos observar na figura 30. Ele adiciona um cabealho ESP logo aps o cabealho AH (caso este esteja sendo utilizado) e criptografa toda a parte correspondente aos dados (payload) com um algoritmo que foi negociado durante o estabelecimento da SA.

51

Figura 30 Pacote ESP

Security Association (SA)

Security Associations ou Associaes de Segurana, so muito importantes dentro do IPSec, so elas que contm todas as informaes que sero necessrias para configurar as conexes entre as entidades do IPSec.

Elas so criadas durante o processo de negociao dos parmetros da conexo, uma SA contm informaes como algoritmo de criptografia, chaves secretas ou seqncias de nmeros, funes hash, modo de funcionamento (tnel ou transporte), porta de comunicao e outros.

A identificao de uma SA feita por trs parmetros: endereo IP, protocolo de segurana (AH ou ESP) e por um ndice denominado SPI (Security Parameter Index) que definido na fase de negociao, fase esta que ocorre antes da criao da SA.

Bancos de dados de Segurana

Existem dois bancos de dados utilizados pelo IPSec, o SPD (Security Police Database) e o SAD (Security Association Database). Os SPDs possuem as polticas de segurana, as quais os pacotes iro se submeter, estas polticas so definidas pelo administrador do sistema. Estas polticas sero utilizadas pelas SAs durante o processamento do pacote IP.

52

Informaes armazenadas nos SADs

- ndice dos parmetros de segurana (SPI); - Tipo de protocolo AH ou ESP; - Modo tnel ou modo transporte; - Seqencial do pacote IP dentro da SA; - Nmero mximo de unidades de transmisso; - Endereo IP de origem da SA; - Endereo IP de destino da SA; - Algoritmo de autenticao e sua chave; - Algoritmo de criptografia e sua chave; - Tempo de vida das chaves; - Tempo de vida da SA.

Os SPDs submetem os pacotes a uma lista de regras e o pacote que atender pelo menos uma destas regras sofrer a ao determinada pelo administrador. Esta ao pode ser: recusar o pacote, aceitar o pacote e aplicar o IPSec sobre ele ou deix-lo entrar sem aplicar o IPSec.

O SPD trata o trfego de entrada e de sada independentemente, em que cada interface de rede tem polticas especficas e processa o pacote relativo a cada direo.

Gerenciamento de chaves

O gerenciamento das SAs no IPSec pode ser feito de maneira automtica ou de maneira manual, sendo que para redes de grande porte, torna-se invivel gerenciar todas as SAs manualmente. Existem protocolos que implementam o gerenciamento de chaves automaticamente de maneira satisfatria, no entanto o principal deles o IKE (Internet Key Exchange Protocol) que combina o ISAKMP (Internet Security Association and Key Management Protocol) para definir o mtodo de distribuio de chaves, com o OAKLEY para definir como as chaves sero determinadas.

53

O protocolo IKE utiliza o ISAKMP para estabelecer um tnel entre as entidades da conexo IPSec. A criao deste tnel dividida em duas etapas.

1 Etapa: estabelecida uma associao de segurana do ISAKMP, diferente da SA do IPSec, neste momento em que as entidades da conexo trocam informaes como parmetros das chaves e um valor randmico que previne ataques do tipo replay. Por fim estas informaes so autenticadas por um dos mtodos: Segredo compartilhado, Assinatura digital ou troca de chaves pblicas.

Segredo compartilhado a chave gerada a partir de um desafio que escolhido entre as entidades. Depois que a chave criada ela passa por um processo de hash para garantir a autenticidade na hora de usa-la, durante a negociao.

Assinatura digital necessrio utilizar uma autoridade certificadora para que as entidades possam ter acesso aos certificados digitais, este o lugar onde esto armazenadas as assinaturas de cada usurio, a partir desta assinatura que a autenticao ser baseada.

Criptografia de chaves pblicas as entidades iro trocar as chaves criptogrficas.

2 Etapa: tambm chamada de Modo Rpido, nesta fase se utiliza o canal criado na fase anterior assim os dados j esto protegidos ento as entidades negociam a SA do IPSec ao final desta negociao estes dados so gravados nos SADs de cada extremidade.

Existe uma alternativa para aumentar ainda mais a segurana nesta etapa, e o Perfect Forward Secrecy (PFS) esta opo faz com que a chave seja derivada do algoritmo de Diffie-Hellman aumentando a segurana e reduzindo a performance.

54

4.3.5 - SSL (Secure Socket Layer) Originalmente o protocolo SSL (Secure Socket Layer) foi desenvolvido pela Netscape Communications para garantir a segurana entre aplicaes cliente/servidor evitando influncias externas, falsificao dos dados e escutas. Ao ser padronizado recebeu o nome de TLS (Transport Layer Security) o TLS 1.0 o mesmo que o SSL 3.0.

Conforme descrito por T. Dierks [3], os objetivos do protocolo SSL em ordem de prioridade so:

1- Garantir o sigilo e a segurana dos dados de uma conexo entre duas partes atravs do uso de criptografia; 2- Permitir que programadores pudessem desenvolver aplicaes utilizando o SSL/TLS independente de sua plataforma de trabalho, garantindo sua interoperabilidade; 3- Prover uma estrutura adequada para incorporar novos mtodos de criptografia e chave pblica quando necessrio, sem a necessidade de criar um novo protocolo ou uma nova biblioteca de segurana interna, garantindo assim a extensibilidade do protocolo; 4- Disponibilizao de um esquema opcional para armazenamento temporrio de dados das sesses estabelecidas, o que ajuda a diminuir o trfego entre as partes, logo influencia em um melhor desempenho do protocolo.

Figura 31 Conexo SSL

55

O SSL atua entre as camadas Transporte (TCP) e Aplicao, podendo rodar sobre outros protocolos como o http, Telnet, FTP, SMTP e outros de forma transparente.

Figura 32 Camada de Atuao do SSL

O Protocolo SSL dividido em duas camadas, na camada inferior temos o SSL Record Protocol utilizado para encapsular os protocolos de nvel superior alm de prover servios de autenticao, encriptao, fragmentao e compresso da mensagem. J na camada superior temos alguns protocolos auxiliares que provem os recursos de segurana.

SSL Handshake protocol o protocolo responsvel pela autenticao do cliente e do servidor, alm de fornecer os parmetros para o funcionamento do SSL Record Protocol. Todas as mensagens de Handshake so trocadas usando um MAC (Message Authentication Code) para dar mais segurana desde o incio do processo.

O protocolo de handshake constitudo de duas fases, numa feita uma escolha de chave que ser utilizada entre o cliente e o servidor, a autenticao do servidor e a troca da chave mestra, j a segunda feita uma autenticao do cliente, mas esta fase pode no ser requerida. Abaixo a figura 33 demonstra o formato das mensagens deste protocolo:

Figura 33 Mensagem do protocolo handshake

56

Handshake type indica o tipo de mensagem de handshake que ser enviada; Tamanho indica o tamanho do corpo em bytes Corpo os dados da mensagem.

Change Cipher Spec Protocol

Este protocolo o responsvel pela troca dos algoritmos de criptografia utilizados. Ele consiste em uma varivel que indica qual o mtodo de criptografia ser utilizado. A alterao desta varivel pode ser realizada tanto pelo cliente quanto pelo servidor.

Alert Protocol

o protocolo responsvel por supervisionar os erros existentes durante as transaes do SSL, a cada erro encontrado o Alert Protocol envia uma mensagem de alerta para a outra extremidade da conexo, caso este nmero de erros se torne muito elevado, a conexo interrompida.

SSL Record

A comunicao deste protocolo se d atravs do estabelecimento de uma sesso, caracterizado por um Estado de Sesso e um Estado de Conexo, estes estados so criados aps o protocolo de handshake concluir suas funes. A figura 25 representa o funcionamento do protocolo

57

Figura 34 Funcionamento do protocolo SSL Record

O protocolo recebe os dados da camada superior e os fragmenta em tamanhos fixos para que possam ser melhor manuseados, posteriormente, dependendo dos parmetros recebidos da fase de negociao do protocolo de handshake os dados so ou no compactados, em seguida aplica-se um MAC com uma das funes de hash como MD5 ou SHA-1, por exemplo. Agora os dados so encriptados com o algoritmo definido e finalmente transmitidos.

A outra extremidade da conexo executa a operao inversa, junta os fragmentos e entrega a mensagem completa para os protocolos da camada superior.

Vantagens: Um dos protocolos mais convenientes e utilizados para implementao de transaes seguras; Simples implantao; Trabalho independente das aplicaes utilizadas e, aps o handshake inicial, comporta-se como um canal seguro; Possui uma padronizao do IETF.

58

Captulo 5

Cenrio de Implementao
Para a demonstrao da utilizao de uma VPN criamos dois cenrios conforme mostrado nas figuras 35 e 36, para a segurana da nossa aplicao vamos utilizar o mtodo de chaves pblicas baseado em SSL/TLS + RSA.

Cenrio 1: gateway-gateway

Figura 35 Cenrio de implementao 1

Vamos demonstrar a utilizao de uma VPN que tipicamente criada para atender a necessidade de manter duas redes sempre conectadas como, por exemplo, uma empresa matriz ligada a uma filial, esta filial precisa que seus dados sejam enviados para a matriz com muita rapidez e de maneira segura, portanto vamos criar uma VPN entre os servidores. Servidor A (servidor da matriz) e Servidor B (servidor da filial). A rede da matriz 192.168.0.0/24 e a rede da filial 192.168.1.0/24.

Nos servidores esto instaladas distribuies Linux (Slackware 10.2) e possuem duas interfaces de rede: Eth0 (para rede local) e Eth1 (para acesso a Internet).

59

Estamos utilizando endereos IP fixos para acesso a Internet onde as duas empresas, matriz e filial, possuem endereos reais. Mas vamos comentar uma forma de acesso atravs de conexes ADSL com IP dinmico.

Cenrio 2: host-gateway

Figura 36 Cenrio de implementao 2

Neste cenrio pretendemos apresentar uma soluo para o seguinte problema: Imagine uma empresa que possui um grupo de vendedores externos e para melhorar seu atendimento a empresa sempre oferece os menores prazos de entrega. Para realizar este tipo de operao os vendedores precisam entrar no sistema da empresa e realizar seus pedidos diretamente no servidor da matriz. Para isso, nosso servidor de VPN ficar sempre conectado esperando as conexes dos clientes.

Quando um vendedor precisa realizar um pedido, para ele ser necessrio conectar-se a Internet e criar uma conexo com o servidor da matriz.

Nesta demonstrao o servidor possui uma distribuio Linux instalada (Slackware 10.2) com das interfaces de rede: Eth0 (para rede local) e Eth1 (para acesso a Internet). O cliente est rodando Windows XP Sp2 com uma conexo ADSL ou dial-up para acesso a Internet.

60

5.1 OpenVPN

O OpenVPN uma soluo VPN baseada em Security Sockets Layer (SSL). Ele est disponvel para as plataformas: Linux, Windows 2000/XP ou superior, OpenBSD, FreeBSD, NetBSD, Mac OS X e Solaris. uma soluo robusta e muito simples de se instalar em qualquer arquitetura de rede, pois no envolve diretamente o sistema operacional. Possui suporte para autenticao com chaves pblicas, chaves estticas e permite a criao de tneis sem autenticao. Para garantir a criptografia da comunicao o OpenVPN faz uso do OpenSSL, pode ser configurado para utilizar trfego TCP ou UDP em uma definio bem simples do seu funcionamento o OpenVPN simplesmente criptografa o pacote e o envia dentro de um novo pacote UDP/TCP [9].

Ele necessita que o sistema operacional tenha suporte ao driver TUN/TAP para que possa funcionar corretamente. No Linux, nas verses de kernel anteriores a 2.2, ser necessrio realizar a instalao deste driver e recompilar o kernel. Para usurios do kernel 2.4.7 ou superior o suporte a esse driver j est includo.

Para aplicaes mais robustas com trfego intenso possvel implementar o loadbalance onde diversos servidores sero os responsveis pelo acesso a rede interna, com um sistema inteligente o OpenVPN pode gerenciar qual servidor ser utilizado para criar o tnel ou os servidores vo sendo utilizados por ordem, ou seja, esgotou o nmero de conexes permitidas para aquele servidor o tnel ser criado em outro.

Ainda permite a utilizao da biblioteca LZO para compactao dos dados a serem transmitidos. O OpenVPN pode trabalhar com dois tipos de tneis:

Tneis IP roteveis utilizado para rotear o trfego ponto-a-ponto sem broadcast. So tneis muito fceis de configurar e apresentam um desempenho muito satisfatrio.

Tneis Ethernet Bridge utilizado para situaes onde h necessidade de broadcast sobre o tnel. So tneis um pouco mais complexos de se configurar e precisam da 61

criao de um dispositivo virtual para realizar a ponte. O pacote do OpenVPN possui scripts pr-configurados para auxiliar na criao desse dispositivo.

5.2 Instalao
A primeira coisa a se fazer verificar se o kernel tem suporte ao driver TUN/TAP, para isso execute o comando:
# locate if_tun.h

O retorno deve ser algo parecido com:


/usr/include/linux/if_tun.h

O site oficial do projeto OpenVPN http://www.openvpn.net, a verso utilizada para esta demonstrao foi a 2.0.7.

O OpenVPN, como foi mencionado anteriormente, faz uso da biblioteca LZO para compactao dos dados a serem transmitidos. Esta biblioteca est disponvel para download no endereo: http://www.oberhumer.com/opensource/lzo/download, a verso utilizada para os testes foi a 1.0.8.

Os arquivos utilizados foram:

LZO: lzo-1.0.8.tar.gz OpenVPN: openvpn-2.0.7.tar.gz

Instalando a biblioteca LZO Descompacte o pacote da biblioteca.


$ $ $ $ $ # tar xzvf lzo-1.0.8.tar.gz cd lzo-1.0.8 ./configure make su make install

62

Instalando o OpenVPN
$ $ $ $ $ # tar xzvf openvpn-2.0.7.tar.gz cd openvpn-2.0.7 ./configure make su make install

Agora vamos ativar o roteamento de pacotes IP no sistema:


$ su # echo 1 > /proc/sys/net/ipv4/ip_forward

Nesta etapa precisamos criar os certificados para os nossos servidores ento vamos utilizar o OpenSLL para isso.

O prprio OpenVPN possui um arquivo previamente configurado para nos auxiliar na criao da autoridade certificadora e os certificados digitais.

Criando a Autoridade Certificadora (AC) Acesse o diretrio onde o OpenVPN foi descompactado como por exemplo: /home/usuario/openvpn-2.0.7. Dentro deste diretrio existe uma pasta chamada easyrsa, nela teremos uma srie de scripts pr-configurados para facilitar nossa configurao.

Edite o arquivo vars.


# cd easy-rsa # vi vars

Agora vamos alterar algumas informaes do arquivo


export KEY_DIR=/etc/openvpn/keys

Define a pasta onde sero gerados os certificados e as chaves.

63

export KEY_SIZE=1024

Define o tamanho da chave, em bits, que ser utilizada, 1024 bits um tamanho considervel seguro, mas caso deseje-se uma segurana maior pode ser utilizado o valor de 2048. export CA_EXPIRE=3650 export KEY_EXPIRE=3650 Estes dois parmetros definem o tempo de validade (em dias) dos certificados que sero gerados, aps este nmero de dias o certificado estar espirado.

Salve as alteraes no arquivo e execute os seguintes comandos:


# . ./vars # ./clean-all # ./build-ca

O primeiro comando carrega as configuraes do arquivo vars para a memria j o comando clean-all vai limpar qualquer outra informao de uma possvel autoridade certificadora existente e por fim o comando build-ca ir criar nossa autoridade certificadora.

Ser solicitado um nome para a Autoridade certificadora utilizamos CA-VPN entre outras informaes. Ao final deste processo sero gerados quatro arquivos:
ca.crt ca.key index.txt serial

Gerando parmetros Diffie-Hellman Agora precisamos gerar os parmetros Diffie-Hellman, para a troca de chaves durante o estabelecimento das conexes.
# ./build-dh

64

Este processo poder demorar alguns minutos. Ser gerado um arquivo dh1024.pem (onde 1024 corresponde ao tamanho da chave export KEY_SIZE=1024).

Criando os certificados Para criar os certificados digite o comando:


# ./build-key-server matriz # ./build-key filial # ./build-key cliente

Para o campo Common Name digite matriz, filial e cliente respectivamente. Quando for solicitado Certificate is to be certifified until Apr 25 18:04:24 2017 GTM (3650 days). Sing the certificate? [yes | no] e 1 out of 1 certificate requests certified, commit? [yes | no] escolha a opo yes para ambos.

Sero gerados os seguintes arquivos:


matriz.crt matriz.csr matriz.key filial.crt filial.csr filial.key cliente.crt cliete.csr cliente.key

Mas para nossa implementao sero necessrios apenas os arquivos com extenso .crt e .key. Para maior segurana recomendado que os dados da CA fiquem em outro computador ou em uma mdia segura que possa ser acessado quando for necessrio.

Para adicionar novos usurios a nossa VPN basta executar o script build-key no computador onde a CA est configurada. Existe tambm a possibilidade de gerar certificados com senha, para isso deve executar o script build-key-pass e aps solicitar os dados para gerao do certificado ser solicitado uma senha que futuramente ser digitada pelo usurio sempre que ele se conectar a VPN.

65

Scripts de configurao (Gateway Gateway) Servidor A - Matriz

Para realizar a configurao vamos utilizar como base o arquivo tls-office.conf contido do diretrio sources do OpenVPN [9]. Segue listagem abaixo:

Contedo do arquivo /etc/openvpn/matriz.conf


# Usar como interface o driver tun. dev tun # 10.10.0.1 IP do tnel da matriz. # 10.10.0.2 IP do tnel da filial. ifconfig 10.10.0.1 10.10.0.2 # Arquivo que contm as rotas. # Ele ser executado quando o tnel estiver concludo. up ./etc/openvpn/matriz.up # Informa que o servidor da transmisso tls-server # Parmetros Diffie-Hellman dh /etc/openvpn/dh.pem # Certificado da CA ca /etc/openvpn/ca.crt # Certificado pblico da Matriz cert /etc/openvpn/matriz.crt # Certificado privado da Matriz key matriz.key # Porta UDP para transmisso. port 5000 # Envia um ping via UDP para a parte # remota a cada 15 segundos. ping 15 # logs. log /var/log/openvpn.log # nvel de detalhes do log (pode variar de 0 at 9) verb 3

66

Arquivo de rotas matriz.up


#!/bin/bash route add -net 192.168.10.0 netmask 255.255.255.0 gw $5

O parmetro $5 representa o endereo IP do gateway VPN.

Executando o OpenVPN no servidor.


# openvpn --config /etc/openvpn/matriz.conf --daemon

Servidor B - Filial A configurao do servidor da filial ser muito semelhante a do servidor da matriz e tambm utilizaremos o arquivo tls-office.conf como base para nossa configurao. Segue listagem abaixo:

Contedo do arquivo /etc/openvpn/filial.conf


# Usar como interface o driver tun. dev tun # Ip da Matriz. # Caso o servidor no possua um IP fixo # poder ser utilizado algum servio de DNS dinmico remote 200.156.45.10 # 10.10.0.2 IP do tnel da filial. # 10.10.0.1 IP do tnel da matriz. ifconfig 10.10.0.2 10.10.0.1 # Arquivo que contm as rotas. # Ele ser executado quando o tnel estiver concludo. up ./etc/openvpn/filial.up # Informa que o cliente da transmisso tls-client # Certificado da CA ca /etc/openvpn/ca.crt # Certificado pblico da Matriz cert /etc/openvpn/filial.crt

67

# Certificado privado da Matriz key /etc/openvpn/filial.key # Porta UDP para transmisso. port 5000 # Envia um ping via UDP para a parte # remota a cada 15 segundos. ping 15 # logs. log /var/log/openvpn.log # nvel de detalhes do log (pode variar de 0 at 9) verb 3

Arquivo de rotas filial.up


#!/bin/bash route add -net 192.168.0.0 netmask 255.255.255.0 gw $5

Da mesma forma que na configurao do servidor o parmetro $5 representa o endereo IP do gateway VPN.

Executando o OpenVPN na filial.


# openvpn --config /etc/openvpn/filial.conf --daemon

Testando a conexo VPN.

Para testar a conexo, basta executarmos o comando ping de uma extremidade da conexo para outra. Supondo que na rede da Matriz tenhamos uma maquina cujo IP 192.168.0.27 ento, de qualquer maquina da rede da Filial executamos o comando ping para esta mquina.

# ping 192.168.0.27 Resposta de 192.168.0.27: bytes=32 tempo<43ms TTL=64 Resposta de 192.168.0.27: bytes=32 tempo<21ms TTL=64

E o mesmo processo ser feito de uma mquina da rede da Matriz para a rede da Filial. 68

# ping 192.168.10.43 Resposta de 192.168.10.43: bytes=32 tempo<64ms TTL=64 Resposta de 192.168.10.43: bytes=32 tempo<39ms TTL=64

Scripts de configurao (Host Gateway) Ao se conectar com o Gateway VPN o host recebera um IP da rede local, e assim passar a fazer parte da rede. Aqui utilizaremos as ferramentas de bridge-utils[5] disponveis junto ao pacote do OpenVPN

Gateway da Matriz - Servidor

Contedo do arquivo /etc/openvpn/servidor.conf


# Usar como interface o driver tap. dev tap0 # Especifica que o servidor ir se comportar como uma bridge # 192.168.0.100 255.255.255.0 # IP e marcara da bridge depois que o tnel for criado # 192.168.0.192 192.168.0.254 # Faixa de IPs que estaro disponveis para os clientes Server-bridge 192.168.0.100 255.255.255.0 192.168.0.192 192.168.0.254 # Parmetros Diffie-Hellman dh /etc/openvpn/dh.pem # Certificado da CA ca /etc/openvpn/ca.crt # Certificado pblico da Matriz cert /etc/openvpn/matriz.crt # Certificado privado da Matriz key matriz.key # Porta para conexo port 1194 # Permite que o cliente veja as mquinas da matriz # no ambiente de rede do Windows client-to-client

69

# Ativa a compactao LZO comp-lzo # Determina o nmero mximo de conexes simultneas max-clients 15 # logs. log /var/log/openvpn.log # nvel de detalhes do log (pode variar de 0 at 9) verb 3

Executando o OpenVPN no servidor.


# openvpn --config /etc/openvpn/servidor.conf --daemon

Para termos certeza de que o servio est rodando devemos verificar o log do OpenVPN.
# tail /var/log/openvpn.log

Instalando o cliente Windows Existe um cliente para Windows disponvel para download no em http://openvpn.se este cliente cria um cone na barra de tarefas do Windows e atravs dele o usurio dera conectar e desconectar os tneis. A instalao muito simples e segue o padro da maioria dos softwares para Windows.

1- Baixar o cliente OpenVPN (http://openvpn.se/download.html) a verso utilizada a 2.0.7 o arquivo de intalao : openvpn-2.0.7-gui-1.0.3-install.exe; 2- Execute o arquivo; 3- Na janela que se abrir para instalao clique no boto Next; 4- Clique no boto I agree para aceitar os termos de utilizao do software; 5- Deixe a marcao padro e clique no boto Next; 6- Clique sobre o boto Installe aguarde o final da instalao. Se durante este processo aparecer uma janela conforme a figura 37 clique no boto SIM;

70

Figura 37 Instalao do cliente OpenVPN para Windows

7- Aps a copia dos arquivos clique sobre o boto Next > e depois sobre o boto Finish. Ao concluir a instalao aparecer ao lado do relgio um cone conforme a figura 38. Isto representa que sua instalao foi bem sucedida.

Figura 38 cone do OpenVPN para Windows

Aps concluir a instalao devemos criar o arquivo de configurao do cliente.

Contedo do arquivo cliente.ovpn

# Usar como interface o driver tap. dev tap0 # Determina que o cliente na transmisso client # Protocolo proto upd # Ip da parte remota # Caso o servidor no possua um IP fixo # poder ser utilizado algum servio de DNS dinmico remote 200.156.45.10

71

# No permite alterao do IP e porta aps a conexo nobind # Nmero de tentativas de conexo com o servidor resolve-retry infinite # Certificado da CA ca ca.crt # Permite ao cliente receber configuraes do servidor pull # Certificado pblico da Matriz cert matriz.crt # Certificado privado da Matriz key matriz.key # Porta para conexo port 1194 # Permite que o cliente enxergue as mquinas da matriz client-to-client # logs. log /var/log/openvpn.log # nvel de detalhes do log (pode variar de 0 at 9) verb 3

Ao concluir a instalao do cliente OpenVPN acesse a pasta onde o software foi instalado (a instalao padro C:\Arquivos de Programas\OpenVPN);

Abra o diretrio config e copie o arquivo de configurao para esta pasta junto com os certificados e a chave secreta.

Certificado da CA: ca.crt Certificado do usurio: cliemte.crt Chave Privada: cliente.key Arquivo de configurao: cliente.ovpn Agora basta clicar sobre o cone do OpenVPN, localizado prximo ao relgio do Windows, com o boto direito do mouse e clicar sobre a opo Connect. Aps concluir alguns testes a conexo estar realizada. 72

Testando a conexo Da mesma forma que na topologia gateway-gateway, vamos utilizar o comando ping para realizar os testes em nossa conexo. Supondo que na nossa rede exista um servidor http, cujo IP 192.168.0.128, ento da maquina do cliente executamos o comando ping.

# ping 192.168.0.128 Resposta de 192.168.0.128: bytes=32 tempo<60ms TTL=128 Resposta de 192.168.0.128: bytes=32 tempo<54ms TTL=128

Gerenciando usurios A gerncia dos usurios pode ser feita de duas formas [10]. Podemos criar um tnel para cada usurio, configurando uma porta para cada cliente e consequentemente um daemon no servidor para cada conexo, outra forma e deixarmos o OpenVPN gerenciar os tneis utilizando as ferramentas de bridge e a partir da podemos criar rotas invlidas para os usurios que no possuem mais o acesso rede ou ento podemos revogar o seu certificado.

Para criar rotas invalida vamos adicionar a linha abaixo no arquivo de configurao do servidor, esta linha aponta para um diretorio que contm os arquivos com rotas invlidas para os clientes.
client-config-dir ccd

Crie o diretrio ccd, no servidor, e dentro dele um arquivo conforme abaixo:


# cat ccd/cliente ifconfig-push 10.0.0.5 10.0.0.25

Assim quando o usurio cliente se conectar ao servidor VPN ele pegar uma rota invlida, pois este comando seta novos IPs para conexo VPN. 73

Outra forma de bloquear um cliente de se conectar ao servidor revogarmos seu certificado, para isso utilizamos um script pr-configurado do OpenVPN que est na pasta easy-rsa. Ao executar o comando ele ir atualizar ou criar o arquivo crl.pem.
# revoque-full cliente

Aps revogar o certificado devemos inserir a linha abaixo no arquivo de configurao do servidor, servidor.conf, caso ele esteja rodando dever ser reiniciado.
crl-verify crl.pem

Assim quando um usurio tentar se conectar ao servidor receber uma mensagem de erro informando uma falha no processo de handshake.

5.3 Softwares desenvolvidos


Para complementar o servio de VPN foi desenvolvido um sistema para distribuio dos manuais, softwares, senhas e certificados. Este sistema foi desenvolvido em PHP utilizando o banco de dados MySQL e o apache como servidor.

O sistema consiste em um cadastro de usurios que possuem acesso ao servio de VPN, aps realizar o cadastro do usurio no servidor de VPN e gerar os certificados o operador insere no banco de dados s informaes referentes ao usurio criado. Os certificados so manualmente copiados para um diretrio que est acessvel pelo servidor apache. Quando o usurio se autenticar no sistema ele ter disponvel os links para baixar os manuais e softwares para instalao assim como seu certificado, certificado do servidor e sua senha do certificado.

Esta senha gerada de forma aleatria contendo obrigatoriamente letras, nmeros e totalizando oito caracteres.

74

Captulo 6

Concluso
Ao final deste trabalho, conclui-se que uma soluo VPN a forma mais econmica de se conectar redes atravs de um meio pblico. Dentre os protocolos apresentados os que se demonstraram eficazes para elaborao de uma VPN foram: o IPSec e o SSL, os demais apresentaram falhas ou deficincias de segurana, portanto foram considerados inadequados.

Optou-se por utilizar o OpenVPN, por ser um software livre, possui fcil implementao e utiliza tneis SSL. O SSL amplamente utilizado para transaes segurar pela Internet e est em constante atualizao, conforme mencionado anteriormente.

Ao final da implementao foi possvel perceber que conseguimos atender as caractersticas desejveis para uma VPN segura utilizando o OpenVPN, ele possui mtodos de criptografia eficientes, suporte para gerenciamento de chaves, suporte a mltiplos protocolos, gerenciamento de endereos dos clientes e autenticao.

Esta soluo foi implementada no Laboratrio Nacional de Computao Cientfica utilizando uma topologia host-gateway visando permitir que usurios externos obtivessem acesso aos recursos da rede interna. A implementao realizada neste trabalho foi baseada nesta experincia.

Mas somente a VPN no suficiente, para permitir que usurios externos tenham acesso aos recursos da rede de forma segura, extremamente recomendado possuir outras forma de proteo como firewall e uma poltica de segurana bem elaborada.

75

Bibliografia

[1] KOLESNIKON, Oleg e HATCH, Brian. Building Linux Virtual Private Networks (VPNs) EUA, Editora New Riders, 2002.

[2] S. DA SILVA, Lino. Virtual Private Network VPN 2 Ed., So Paulo, Editora Novatec, 2005

[3] T. Dierks, C. Allen, The TLS Protocol Version 1.0. RFC 2246, 1999.

[4] http://www.certicom.com

[5] http://www.openvpn.org

[6] http://www.wikipedia.com

[7] http://www.absoluta.org/cripty/cripty_h.htm

[8] http://www.rnp.br/newsgen/9811/vpn.html

[9] http://epx.com.br/artigos_3rd/howto.php

[10] http://www.istf.com.br/vb/showthread.php?t=8624

76