projeto de uma vpn - virtual private network - baseada em

Download Projeto de uma VPN - Virtual Private Network - baseada em

If you can't read please download the document

Post on 08-Jan-2017

250 views

Category:

Documents

32 download

Embed Size (px)

TRANSCRIPT

  • Projeto de uma VPN (Rede Privada Virtual)baseada em computao reconfigurvel e

    aplicada a robs mveis

    Marcelo Honorato Marleta

  • SERVIO DE PS-GRADUAO DO ICMC-USP

    Data de Depsito: 15 de fevereiro de 2007

    Assinatura:

    Projeto de uma VPN (Rede Privada Virtual) baseada emcomputao reconfigurvel e aplicada a robs mveis

    Marcelo Honorato Marleta

    Orientador: Prof. Dr. Eduardo Marques

    Dissertao apresentada ao Instituto de Cincias Matemti-cas e de Computao ICMC/USP, para obteno do t-tulo de Mestre em Cincias de Computao e MatemticaComputacional.

    USP - So CarlosFevereiro/2007

  • Dedicatria

    Dedico este trabalho a meus pais, Edson Honorato Marletae Snia Maria Tom Marleta, pelo grande amor, incentivo,apoio e zlo que tiveram para comigo por toda a minha exis-tncia e que me proporcianaram a realizao deste sonho.Dedico tambm as minhas irms, Fernanda Tom Marletae Paula Cristina Tom Marleta, pelo amor e incentivo de-monstrados mesmo nos momentos mais difceis.

  • O futuro tem muitos nomes: para os fracos, ele inatingvel; para os temerosos, ele odesconhecido; para os corajosos, ele a chance, a oportunidade.

    (Victor Hugo)

  • Agradecimentos

    A Deus pela sade, energia e pela famlia maravilhosa que me proporcionou.Agradeo muito aos meus pais, Edson Honorato Marleta e Snia Maria Tom Marleta, pelo

    incansvel apoio, amor, carinho, incentivo e respeito que me dispensaram ao longo da minhajornada. So exemplos de honestidade, determinao, perseverana e coragem que eu tento meespelhar.

    As minhas irms, Fernanda Tom Marleta e Paula Cristina Tom Marleta, por estarem sempreme incentivando e me apoiando, formando junto com meus pais uma base familiar slida que fezcom que eu no perecesse.

    A meus verdadeiros familiares que oram por mim, me incentivam e que sempre prezam pelomeu bem-estar.

    Ao Prof. Dr. Eduardo Marques que mais do que um orientador, um amigo que tive a opor-tunidade de trabalhar. Suas diretrizes seguras, sua pacincia e seu apoio foram de fundamentalimportncia para a concluso deste trabalho.

    A Neimar Marques Duarte por me ceder gentilmente o coprocessador AES desenvolvido emsua dissertao de mestrado alm de me dar suporte durante todo o perodo deste trabalho.

    Ao Prof. Dr. Denis Fernando Wolf pela ajuda e pacincia na reviso do texto em ingls.Aos meus amigos do LCR pela amizade, compreenso e pela ajuda mtua ao longo do perodo

    de mestrado.A todos meus amigos que me ajudaram, direta ou indiretamente, que me emanaram fludos

    positivos e que me proporcionaram diversos momentos de felicidade.A Capes pelo apoio financeiro durante o mestrado.

    iii

  • Resumo

    Este trabalho apresenta uma implementao de VPN utilizando-se doscircuitos reprogramveis do tipo FPGA (Field Programmable Gate Array)que so a base da computao reconfigurvel. VPNs utilizam criptogra-fia para permitir que a comunicao seja privada entre as partes. Assim,todo o custo computacional decorrente desta prtica executado em nvelde hardware, procurando-se atingir um alto desempenho e voltado para asaplicaes de sistemas embutidos.

    O uso desta soluo, VPN por hardware, ser na interligao de um rob(em desenvolvimento no Laboratrio de Computao Reconfigurvel - LCRdo Instituto de Cincias Matemticas e de Computao da Universidade deSo Paulo) ao seu servidor de configurao e tarefas, atravs de linhas pri-vadas. O emprego de uma VPN em robtica permitir a utilizao de umsistema de comunicao, com ou sem fio, e toda a infra-estrutura da Inter-net para a comunicao com o rob (e no futuro entre os robs) a qualquerdistncia de forma segura e confivel.

    O hardware reconfigurvel utilizado para a VPN deste trabalho propor-ciona flexibilidade no modo de implementao, possibilitando que o sistemaseja adequado para satisfazer situaes que exijam alto desempenho. Almdisso, a arquitetura proposta possibilita que parte das operaes sejam exe-cutadas em software (no caso, foi utilizado o sistema operacional Clinux eferramentas para se estabelecer a VPN) e parte das operaes executadas emhardware (um coprocessador criptogrfico AES). As principais ferramentasde software so o conjunto ipsec-tools que foram desenvolvidas para seremexecutadas com o IPSec nativo do Kernel e devidamente portadas para oClinux.

    iv

  • Abstract

    This work designs a system that implements a VPN using FPGA (FieldProgrammable Gate Array) reprogrammable circuits, which are the basis ofreconfigurable computing. VPNs use cryptography to allow private com-munication between parts. In this manner, the computational cost of thecryptography is handled by the hardware, achieving great performance andallowing its usage on embedded systems applications.

    The system proposed in this thesis has been used to establish secure com-munication between a PC and a mobile robot (that is in development at Re-configurable Computing Laboratory - LCR of Institute of Mathematics andComputer Science of Univesity of So Paulo). The use of VPN in roboticswill allow a communication, either wired or wireless, using Internets infra-structure with the robot (and in the future among robots), in a secure andtrustable manner.

    The reconfigurable hardware used in this work allows flexibility in theimplementation, making possible its usage in situations that requires highperformance. Furthermore, the proposed architecture allows part of appli-cations executing in software (using Clinux operating system and tools toestablish the VPN) and other parts in hardware (a cryptographic coproces-sor AES). The main software tools are the ipsec-tools that were developed toexecute with native Kernel IPSecs implementation and were properly portedto Clinux.

    v

  • Sumrio

    Resumo iv

    Abstract v

    1 Introduo e Objetivos 11.1 Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    2 Computao Reconfigurvel 32.1 Evoluo dos Circuitos Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Circuitos FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 Sistemas Reconfigurveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Classificao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 A Famlia de FPGA Stratix da Altera . . . . . . . . . . . . . . . . . . . . . . . . . 102.6 Linguagens de Descrio de Hardware . . . . . . . . . . . . . . . . . . . . . . . . 112.7 System-on-a-Programmable-Chip (SOPC) . . . . . . . . . . . . . . . . . . . . . . 122.8 Ferramentas de Desenvolvimento de Hardware . . . . . . . . . . . . . . . . . . . 13

    2.8.1 Quartus II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.8.2 SOPC Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.9 Consideraes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3 VPN (Virtual Private Network) 183.1 Conceito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.2 Segurana da informao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3.2.1 Conceitos bsicos de segurana . . . . . . . . . . . . . . . . . . . . . . . 193.3 Conceitos de Criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3.3.1 Modos de Operao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4 Aplicaes para VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5 Encapsulamento e Criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.6 Protocolos de Encapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.6.1 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.6.2 Uma outra soluo de VPN . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    3.7 Consideraes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    vi

  • 4 Material e Metodologia 384.1 Definio Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 O processador NIOS II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.3 O Barramento Avalon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 O sistema operacional Clinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    4.4.1 Ferramenta NIOS II IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.5 Ferramentas de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.6 Algoritmos Criptogrficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.7 Consideraes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    5 Implementao e Resultados 505.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.3 Ipsec-tools no Clinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.4 Implementao do Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.5 Construo da soluo final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.6 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.7 Consideraes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    6 Concluso e Trabalhos Futuros 686.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    A Apndice A 71

    B Apendice B 77

    vii

  • Lista de Figuras

    2.1 Principais tipos de circuitos digitais . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Um Elemento Lgico de uma FPGA Stratix . . . . . . . . . . . . . . . . . . . . . 72.3 Formas de Reconfigurao (COMPTON e HAUCK, 1999) . . . . . .

View more >