82
UNIVERSIDADE SÃO FRANCISCO Curso de Engenharia de Computação FELIPE CESAR CARDOSO CONCEITOS DE REDE VIRTUAL PRIVADA PARA STREAMING SEGURO DE VÍDEO Itatiba 2010

50959393 Tcc Conceitos de Rede Virtual Privada Para Streaming Seguro de Video

Embed Size (px)

Citation preview

  • UNIVERSIDADE SO FRANCISCO Curso de Engenharia de Computao

    FELIPE CESAR CARDOSO

    CONCEITOS DE REDE VIRTUAL PRIVADA PARA STREAMING SEGURO DE VDEO

    Itatiba 2010

  • ii

    FELIPE CESAR CARDOSO R.A. 002200600550

    CONCEITOS DE REDE VIRTUAL PRIVADA PARA STREAMING SEGURO DE VDEO

    Monografia apresentada disciplina Trabalho de Concluso de Curso, do curso de Engenharia de Computao da Universidade So Francisco, sob orientao do Prof. Marcelo Augusto Gonalves Bardi, como exigncia para concluso do curso de graduao.

    Orientador: Prof. Marcelo Augusto Gonalves Bardi

    Itatiba 2010

  • iii

    Dedico este trabalho aos meus pais, Antonio Carlos Cardoso e

    Sueli Maria Thomasini Cardoso, que sempre me incentivaram e

    ajudaram em todas as minhas decises e momentos difceis.

  • iv

    AGRADECIMENTOS

    Agradeo a realizao deste trabalho a minha famlia, que sempre me apoiou em todos

    os momentos da minha vida, sempre me dando fora e incentivo.

    Agradeo tambm ao meu orientador, Marcelo Augusto Gonalves Bardi, pela sua

    colaborao durante toda a elaborao do trabalho, compartilhando seus conhecimentos.

  • v

    As pessoas comuns pensam apenas como passar o

    tempo. Uma pessoa inteligente tenta usar o tempo. (Arthur Schopenhauer)

  • vi

    RESUMO

    Com o crescimento da Internet aliado ao aumento das velocidades de acesso com banda larga, a mesma se transformou em um meio conveniente para transmisso de dados em nvel coorporativo, como por exemplo, a transmisso de streaming de vdeo baseada no modelo cliente-servidor. Todavia, quando se quer transmitir dados de maneira segura e confivel, a Internet em si no a melhor escolha, visto que as informaes que nela trafegam podem estar susceptveis a serem capturadas e/ou visualizadas indevidamente. Por isso, a VPN (Virtual Private Network) surge como uma alternativa barata e vivel para este tipo de transmisso, visto que tal estrutura construda sobre a rede pblica de comunicao e garante uma transmisso segura atravs de tcnicas de tunelamentos e mtodos de segurana, tendo como destaque a criptografia. Este trabalho pretende desenvolver uma alternativa para a transmisso de streaming de vdeo em estrutura de tunelamento criada pela VPN, previamente configurada, utilizando softwares livres que se baseiam no sistema operacional Unix-like. Para a configurao da VPN, foi utilizado o software OpenVPN, trabalhando com chave esttica de criptografia e criando IPs virtuais para a mquina servidora e para a mquina cliente. Em relao ao streaming de vdeo, foi utilizado o software VLC Media Player, no qual o usurio do lado servidor seleciona um vdeo de interesse, e este ser transmitido via streaming em direo ao cliente, por meio do tunelamento criado pelo OpenVPN. Assim, evidencia-se que possvel transmitir vdeo de maneira segura e eficiente, em razo da integrao entre VPN e streaming de vdeo.

    Palavras-chave: VPN; streaming de vdeo; criptografia.

  • vii

    ABSTRACT

    The growth of the Internet linked to the increasing speeds of a broadband, it became a convenient way for data transmission in corporative level, such as the transmission of streaming video-based client-server model. However, when one wants to transmit data securely and reliably, the Internet is not the best choice, because the information travels in it may be susceptible to being captured and / or displayed improperly. Therefore, the VPN (Virtual Private Network) appears as an alternative cheap and feasible for this type of transmission, since such a structure is built on the public network of communication and ensures a secure transmission through techniques of tunneling and security methods, with emphasis encryption. This project intends to develop an alternative to the transmission of streaming video on the structure created by the VPN tunneling, preconfigured, using free software that are based on Unix-like operating system. For the configuration of the VPN, it was used OpenVPN software, working with static key encryption and creating virtual IPs to the server machine and the client machine. Regarding the streaming video, it was used VLC Media Player software, in which the user server-side selects a video of interest, and this will be transmitted via streaming towards the client, through the tunneling created by OpenVPN. Thus, it becomes evident that you can transmit video safely and efficiently, due to the integration of VPN and video streaming.

    Keywords: VPN; video streaming; encryption.

  • viii

    SUMRIO

    1. INTRODUO ..................................................................................................................... 1 1.1 Objetivos ................................................................................................................................ 2 1.2 Organizao do Trabalho ....................................................................................................... 2

    2. ASPECTOS TERICOS ...................................................................................................... 3 2.1 SEGURANA ....................................................................................................................... 3 2.1.1 Firewall ............................................................................................................................... 4

    2.1.2 Criptografia ......................................................................................................................... 4 2.1.2.1 Criptografia Simtrica ..................................................................................................... 5 2.1.2.2 Criptografia Assimtrica ................................................................................................. 7 2.1.3 Funo de Hash .................................................................................................................. 9 2.1.4 Assinatura Digital ............................................................................................................... 9 2.1.5 Certificado Digital .............................................................................................................. 10 2.2. VIRTUAL PRIVATE NETWORK (VPN) ............................................................................... 11 2.2.1 Principais tipos de VPN ...................................................................................................... 11 2.2.2 Vantagens e Desvantagens da VPN .................................................................................... 13 2.2.3 Principais Caractersticas e Requisitos ............................................................................... 13 2.2.4 Tunelamento ....................................................................................................................... 14

    2.2.5 Protocolos de Tunelamento ................................................................................................ 16 2.2.5.1 PPTP ................................................................................................................................ 16 2.2.5.2 L2F .................................................................................................................................. 16 2.2.5.3 L2TP ................................................................................................................................ 17 2.2. 5.4 IPSEC ............................................................................................................................. 17 2.2.5.5 SSL/TLS ........................................................................................................................... 18 2.3. STREAMING DE VDEO ..................................................................................................... 20 2.3.1 Aplicaes Multimdia ....................................................................................................... 21 2.3.1.1 Streaming de Vdeo Armazenado .................................................................................... 21 2.3.1.2 Streaming de Vdeo ao Vivo ........................................................................................... 22 2.3.1.3 Vdeo Interativo em Tempo Real .................................................................................... 22 2.3.2 Streaming Unicast e Multicast ........................................................................................... 23 2.3.3 Protocolos Multimdia ........................................................................................................ 24 2.3.3.1 HTTP ............................................................................................................................... 24

    2.3.3.2 RTP .................................................................................................................................. 25

  • ix

    2.3.3.3 RTCP ............................................................................................................................... 26 2.3.3.4 RTSP ................................................................................................................................ 27

    2.3.4 Codec e Compresso de dados ........................................................................................... 29 2.4. FERRAMENTAS PARA VPN ............................................................................................. 29 2.4.1 FreeS/Wan .......................................................................................................................... 29 2.4.2 OpenVPN ............................................................................................................................ 30

    2.5. FERRAMENTAS PARA STREAMING DE VDEO ........................................................... 31 2.5.1 VLC Media Player .............................................................................................................. 32 2.5.2 Flumotion Streaming Software ........................................................................................... 32 3. METODOLOGIA DE DESENVOLVIMENTO ................................................................. 34 3.1 FERRAMENTAS UTILIZADAS ......................................................................................... 34 3.2 CONFIGURAO DA VPN ................................................................................................ 34 3.2.1 Cenrio de Configurao .................................................................................................... 34 3.2.2 Instalao do OpenVPN ...................................................................................................... 35 3.2.3 Driver TUN/TAP ................................................................................................................ 35 3.2.4 Gerao de Chave de Criptografia ...................................................................................... 36 3.2.5 Cpia de Chave Esttica para o Cliente ............................................................................. 37 3.2.6 Configurao do Servidor ................................................................................................... 38 3.2.7 Configurao do Cliente ..................................................................................................... 40 3.2.8 Inicializao da VPN no Servidor ....................................................................................... 41 3.2.9 Inicializao da VPN no Cliente ......................................................................................... 43 3.2.10 Testes de Conexo ............................................................................................................ 45 3.2.11Acesso ao Servidor ............................................................................................................ 47 3.3. CONFIGURAO DO SERVIDOR DE STREAMING DE VDEO .................................. 47 3.3.1 Cenrio de Configurao .................................................................................................... 47 3.3.2 Instalao do VLC ............................................................................................................... 48 3.3.3 Configurao Manual de Streaming de Vdeo no Servidor ................................................ 49 3.3.5 Acesso do Cliente ao Streaming de Vdeo ......................................................................... 58 3.3.6 Automatizao do Processo com Script ............................................................................. 59 3.4 TESTES DE INTEGRAO ................................................................................................ 61 4. RESULTADOS E DISCUSSES ........................................................................................ 63 5. CONCLUSES ...................................................................................................................... 65 5.1 Sugestes de Trabalhos Futuros ............................................................................................ 65

  • x

    6. REFERNCIAS BIBLIOGRFIAS ................................................................................... 66

  • xi

    LISTA DE SIGLAS

    AVI Audio Video Interleave DVD Digital Video Disc FLAC Free Lossless Audio Codec IP Internet Protocol IPX Internetwork Packet Exchange JPEG Joint Photographic Experts Group

    LAN Local Area Nerwork MP3 MPEG-1/2 Audio Layer 3 MPEG Moving Picture Experts Group

    OGM Ogg Media File PCM Pulse Code Modulation QoS Quality Of Service SSH Secure Shell TCP Transmission Control Protocol UDP User Datagram Protocol VCD Video Compact Disc VCR Video Cassette Recorder VLC VideoLAN Client VLS VideoLAN Server WAV Waveform Audio Format

  • xii

    LISTA DE FIGURAS

    Figura 1: Exemplo de Firewall .................................................................................................... 4

    Figura 2: Modelo de criptografia simtrica ................................................................................. 6

    Figura 3: Criptografia Assimtrica .............................................................................................. 8

    Figura 4: Autenticao ................................................................................................................. 8

    Figura 5: Processo de Assinatura Digital .................................................................................... 10

    Figura 6: Arquitetura Host-Host .................................................................................................. 12

    Figura 7: Arquitetura Host-Rede ................................................................................................. 12

    Figura 8: Arquitetura Rede-Rede ................................................................................................ 13

    Figura 9: Processo de Tunelamento ............................................................................................ 15

    Figura 10: Camadas do modelo TCP/IP modificadas com SSL .................................................. 19

    Figura 11: Camadas do protocolo SSL ........................................................................................ 20

    Figura 12: Processo de Streaming ............................................................................................... 21

    Figura 13: Streaming Unicast ...................................................................................................... 23

    Figura 14: Streaming Multicast ................................................................................................... 24

    Figura 15: RTP sobre UDP ........................................................................................................... 25

    Figura 16: Comunicao RTSP .................................................................................................... 28

    Figura 17: Contedo da chave esttica ........................................................................................ 36

    Figura 18: Transferncia da chave esttica .................................................................................. 38

    Figura 19: Inicializao da VPN no servidor ............................................................................... 42

    Figura 20: Contedo do arquivo servidor.log .............................................................................. 43

    Figura 21: Contedo do arquivo servidor-status.log ................................................................... 43

    Figura 22: Inicializao da VPN no cliente ................................................................................. 44

    Figura 23: Contedo do arquivo cliente.log ................................................................................ 45

    Figura 24: Contedo do arquivo cliente-status.log ...................................................................... 45

  • xiii

    Figura 25: Teste de conexo com o cliente ................................................................................. 46

    Figura 26: Teste de conexo com o servidor ............................................................................... 46

    Figura 27: Acesso ao servidor ..................................................................................................... 47

    Figura 28: Integrao de VPN com Streaming de vdeo ............................................................. 48

    Figura 29: Configurao Grfica do VLC .................................................................................... 49

    Figura 30: Adicionar Arquivo de vdeo ....................................................................................... 50

    Figura 11: Seleo do Arquivo .................................................................................................... 50

    Figura 32: Incio do Fluxo ........................................................................................................... 51

    Figura 33: Confirmao da Fonte ................................................................................................ 51

    Figura 34: Seleo do Protocolo .................................................................................................. 52

    Figura 35: Configurao RTSP .................................................................................................... 53

    Figura 36: Encapsulamento ......................................................................................................... 54

    Figura 37: Codec de Vdeo .......................................................................................................... 54

    Figura 38: Codec de udio ........................................................................................................... 55

    Figura 39: Seleo do Perfil ........................................................................................................ 56

    Figura 40: Fluxo Gerado ............................................................................................................. 57

    Figura 41: Transmisso do streaming de vdeo ........................................................................... 57

    Figura 42: Acesso do cliente ....................................................................................................... 58

  • xiv

    LISTA DE TABELAS

    Tabela 1: Especificaes dos Computadores ............................................................................... 35 Tabela 2: Mtricas para Streaming com VPN ............................................................................. 64 Tabela 3: Mtricas para Youtube ................................................................................................. 64

  • 1

    1. INTRODUO

    Atualmente, com o crescimento da Internet, o constante aumento de sua rea de abrangncia, e a expectativa de uma rpida melhoria na qualidade dos meios de comunicao associada ao aumento das velocidades de acesso com banda larga, a mesma passou a ser vista como um meio conveniente para as comunicaes corporativas. No entanto, a transmisso de dados sensveis pela rede somente se torna possvel com o uso de tecnologias que tornem esse meio altamente inseguro em um meio confivel. Com essa abordagem, o uso de VPN (Virtual Private Network) sobre o modelo de referncia TCP/IP parece ser uma alternativa vivel e adequada (ROSSI e FRANZIN, 2010).

    Assim, uma VPN, ou Rede Privada Virtual, uma rede privada construda sobre a infra-estrutura de uma rede pblica, normalmente a Internet. Ou seja, ao invs de se utilizar links dedicados ou redes de pacotes (como Frame Relay e X.25) para conectar redes remotas, utiliza-se a infra-estrutura da Internet.

    Alm de estabelecer comunicao entre duas redes privadas, as VPNs tm que garantir alguns aspectos em termos de comunicao segura, como: confidencialidade, autenticao, integridade e disponibilidade dos dados (KUROSE e ROSS; 2003).

    Uma VPN baseada em conceitos de tunelamento, na qual existem vrios protocolos que podem ser utilizados para a transferncia de dados pela rede pblica (Internet), sendo que o tunelamento pode ser definido como o processo de encapsular um protocolo dentro de outro.

    Analisando-se os principais conceitos de segurana e tunelamento, nota-se que o mtodo de criptografia de extrema importancia durante a definio de uma VPN. Alm da criptografia, pode-se ter outros mtodos de segurana, como funes de hash, assinatura digital e certificado digital.

    Deste modo, podemos ter diversas aplicaes trabalhando em conjunto com a VPN, sempre levando em considerao tcnicas de segurana, por meio de criptografia. Uma dessas aplicaes, que ser o objetivo do trabalho, a transmisso de streaming de vdeo pela VPN, onde todos os dados da transmisso estariam protegidos por meio de mtodos de segurana e tunelamento. Nesse caso, interceptores externos, que no esto conectados na VPN, no conseguiriam visualizar um vdeo sigiliso ou dedicado, por exemplo.

    Podemos definir streaming como uma forma de distribuir informao multimdia numa rede atravs de pacotes. Em streaming, as informaes da mdia no so usualmente arquivadas pelo usurio que est recebendo o stream, mas sim a mdia geralmente

  • 2

    constantemente reproduzida medida que chega ao usurio se a sua banda for suficiente para reproduzir a mdia em tempo real.

    Em suma, neste trabalho, fazeremos uso de softwares livres, tanto para configurar a VPN como para configurar um servidor de streaming de vdeo em cima de plataforma Unix-like, sendo utilizado o sistema operacional Ubuntu. Desta forma, poderemos estudar os conceitos do projeto sem maiores problemas de restrines, possuindo total liberdade de configurao e desenvolvimento, para depois realizarmos integrao e testes.

    1.1 Objetivos

    A elaborao deste projeto tem como objetivo estudar os principais conceitos de Rede Virtual Privada, que utilizada amplamente em diversos lugares para transmisso segura de dados entre redes distintas, propondo a aplicao destes conceitos na transmisso de streaming de vdeo de maneira segura e eficiente, em ambiente livre.

    1.2 Organizao do Trabalho

    No Captulo 2 so apresentados os principais aspectos tericos que sero importantes para o estudo e elaborao deste trabalho. Tem-se um detalhamento dos conceitos de segurana, VPN (Virtual Private Network) e streaming de vdeo em rede de computadores. Alm, de uma anlise e seleo das principais ferramentas que sero teis na configurao da VPN e streaming de vdeo.

    O Captulo 3 descrito como foi realizada a configurao da VPN e do servidor de streaming de vdeo, explicando passo a passo os detalhes das configuraes, atravs do software OpenVPN e do software VLC Media Player. Tambm descreve como foi feito os testes de integrao.

    No Captulo 4, tm-se os resultados e discusses feitos atravs de testes realizados depois de todas as configuraes prontas, comparando o projeto com outra aplicao de streaming de vdeo.

    Por fim, no Captulo 5 tem-se a concluso deste projeto, bem como sugestes para trabalhos futuros.

  • 3

    2. ASPECTOS TERICOS

    Este captulo tem como principal objetivo realizar uma reviso bibliogrfica dos principais aspectos tericos que sero fundamentais para o desenvolvimento do projeto. Em virtude disto, ser descrito e analisado os principais conceitos de segurana, VPN (Virtual Private Network) e streaming de vdeo. Alm disso, ser feito uma anlise e seleo das principais ferramentas para configurao de VPN e streaming de vdeo.

    2.1 SEGURANA

    Segundo TANENBAUM (2003), a segurana um assunto abrangente e inclui diversos tipos de problemas. De maneira geral, a segurana foca-se em garantir que pessoas mal-intencionadas no leiam ou modifiquem secretamente mensagens enviadas a outros destinatrios.

    Com a introduo do computador, tornou-se evidente a necessidade de ferramentas automatizadas para proteger arquivos e outras informaes armazenadas no computador. Esse especialmente o caso de um sistema compartilhado, como um sistema de time-sharing. A necessidade ainda mais evidente para sistemas que podem ser acessados por meio de uma rede telefnica pblica, rede de dados ou a Internet. O nome genrico para o conjunto de ferramentas projetadas para proteger dados e impedir hackers a segurana do computador (STALLINGS, 2008).

    Deste modo, conforme KUROSE e ROSS (2004), pode-se identificar as seguintes propriedades desejveis para uma comunicao segura:

    Confidencialidade: Somente o remetente e o destinatrio pretendido devem poder entender a mensagem transmitida;

    Autenticao: O remetente e o destinatrio precisam confirmar a identidade da outra parte envolvida na comunicao;

    Integridade: Mesmo que o remetente e o destinatrio consigam se autenticar reciprocamente, eles tambm querem assegurar que o contedo da comunicao no seja alterado, por acidente ou por m inteno, durante a transmisso.

    Disponibilidade: Manter os recursos disponveis, mesmo em caso de ataques.

  • 4

    2.1.1 Firewall

    Um firewall uma combinao de hardware e software que tem a funo de isolar a rede interna de uma organizao da Internet, permitindo que alguns pacotes passem e bloqueando outros, conforme mostra a Figura 1:

    Fonte: CASNOVA (2010) Figura 1: Exemplo de um Firewall

    H mais de uma forma de funcionamento de um firewall, que varia de acordo com o sistema, aplicao ou do desenvolvedor do programa. No entanto, existem dois tipos bsicos de conceitos de firewalls: o que baseado em filtragem de pacotes IP e o que baseado em controle de aplicaes, que geralmente instalado em servidores e so conhecidos como Proxy.

    2.1.2 Criptografia

    De acordo com TANENBAUM (2003), a palavra criptografia vem das palavras gregas (Kryptos = escondido, oculto e Grafia = escrita) que significam escrita secreta. As mensagens a serem criptografadas, conhecidas como texto simples (plain text) so

  • 5

    transformadas por uma funo que parametrizada por uma chave. Em seguida, a sada do processo de criptografia, conhecida como texto cifrado (cipher text), transmitida, normalmente atravs de um mensageiro. Presume-se que o inimigo, ou intruso, oua e copie cuidadosamente o texto cifrado completo. No entanto, ao contrrio do destinatrio pretendido, ele no conhece a chave pra descriptografar o texto e, portanto, no pode faz-lo com muita facilidade.

    Em sistemas de criptografia, deve-se observar que a chave o elemento mais importante. A chave formada por uma combinao de bits, e quanto maior for esta combinao, maior ser a segurana adquirida, entretanto ocorrendo uma maior sobrecarga de processamento. Ento, dependendo do tipo de chave utilizada, tem-se criptografia simtrica ou criptografia assimtrica.

    2.1.2.1 Criptografia Simtrica

    Na tcnica de criptografia simtrica, tem-se a mesma chave para criptografar e decriptografar os dados. Logo, esta chave ser previamente trocada entre o emissor e receptor, por meio de uma comunicao segura.

    Segundo STALLINGS (2008), um esquema de criptografia simtrica possui cinco componentes (Figura 2):

    Texto claro: Esta a mensagem ou dados originais, como entrada para o algoritmo.

    Algoritmo de criptografia: O algoritmo de criptografia realiza diversas substituies e transformaes no texto claro.

    Chave secreta: A chave secreta tambm a entrada para o algoritmo de criptografia. A chave um valor independente do texto claro e do algoritmo. O algoritmo produzir uma sada diferente, dependendo da chave especfica sendo usada no momento. As substituies e transformaes exatas realizadas pelo algoritmo dependem da chave;

    Texto cifrado: Essa a mensagem embaralhada, produzida como sada. Ela depende do texto claro e da chave secreta.

  • 6

    Algoritmo de decriptografia: Esse basicamente o algoritmo de criptografia executado de modo inverso. Ele toma o texto cifrado e a chave secreta e produz o texto claro original.

    Fonte: STALLINGS (2008) Figura 2: Modelo de criptografia simtrica

    A criptografia simtrica possui algumas desvantagens em relao transmisso das chaves, pois caso esta transmisso no seja segura o bastante, a segurana de toda a criptografia da informao pode ficar comprometida. Ento como uma chave gerada para a comunicao entre duas pessoas, a segurana nessas chaves dever ser alta. E se o nmero de emissores e receptores for grande, necessariamente tem-se um elevado nmero de chaves para gerenciar.

    Entretanto, a criptografia simtrica possui a vantagem em relao alta velocidade para codificao e decodificao dos dados.

    De acordo com ASSIS (2003), existem vrios algoritmos simtricos que produzem chaves de tamanhos variados:

    Data Encryption Standard (DES): 56 bits; Triple Data Encryption Standard (3DES): 112 bits; Blowfish: at 448 bits; Twofish: 128, 192 ou 256 bits; Advanced Encryption Standard (AES): 128, 192 ou 256 bits.

    Nesses algoritmos, quanto maior a chave, maior ser a segurana adquirida.

  • 7

    2.1.2.2 Criptografia Assimtrica

    Na criptografia assimtrica, a criptografia e a decriptografia so realizadas usando chaves diferentes, na qual existe uma chave privada e uma chave pblica. Desta forma, tal mtodo transforma o texto claro em texto cifrado usando uma das duas chaves e um algoritmo de criptografia, e usando a outra chave associada e um algoritmo de decriptografia, o texto claro recuperado a partir do texto cifrado.

    Segundo STALLINGS (2008), um esquema de criptografia assimtrica possui seis componentes:

    Texto claro: Essa a mensagem ou dados legveis, como entrada para o algoritmo;

    Algoritmo de criptografia: O algoritmo de criptografia realiza vrias transformaes no texto claro;

    Chaves pblicas e privadas: Esse um par de chaves que foi selecionado de modo que, se uma for usada para criptografia, a outra ser usada para decriptografia. As transformaes exatas realizadas pelo algoritmo dependem da chave pblica ou privada que fornecida como entrada;

    Texto cifrado: Essa a mensagem codificada produzida como sada. Ela depende do texto claro e da chave. Para uma determinada mensagem, duas chaves diferentes produziro dois textos cifrados diferentes;

    Algoritmo de decriptografia: Esse algoritmo aceita o texto cifrado e a chave correspondente e produz o texto claro original.

    As etapas essenciais so as seguintes:

    1. Cada usurio gera um par de chaves a ser usado para a criptografia e a decriptografia das mensagens.

    2. Cada usurio coloca uma das duas chaves em um registro pblico ou outro arquivo acessvel. Essa a chave pblica. A outra chave permanece privada.

    3. Se um emissor deseja enviar uma mensagem confidencial para receptor, o emissor criptografa a mensagem usando a chave pblica do receptor.

    4. Quando o receptor recebe a mensagem, ele a decriptografa usando sua chave privada. Nenhum outro destinatrio pode decriptografar a mensagem, pois somente o receptor conhece a sua chave (Figura 3).

  • 8

    Fonte: STALLINGS (2008) Figura 3 - Criptografia Assimtrica

    No entanto, se o emissor faz o uso da chave privada para cifrar a mensagem, qualquer pessoa na rede poder decifr-la, j que a chave pblica conhecida por todos. Ento, apenas garante-se a autenticidade da mensagem (Figura 4).

    Fonte: STALLINGS (2008) Figura 4 Autenticao

    A grande desvantagem desse tipo de criptografia sua velocidade de processamento dos dados, uma vez que faz uso de mais que um tipo de chave para criptografia, alm de possuir uma estrutura mais complexa.

    O principal algoritmo assimtrico o RSA (Rivest Shamir Addleman) que um padro criado em 1977 e que utiliza chaves de 512, 768, 1024 ou 2048 bits. Tal algoritmo explora

  • 9

    propriedades especficas dos nmeros primos e a dificuldade de fator-los mesmo em equipamentos velozes.

    2.1.3 Funo de Hash

    Uma funo de Hash tem como principal funo produzir um nmero, atravs da mensagem que um determinado emissor quer transmitir. Este nmero tambm conhecido como resumo, que ir representar unicamente a mensagem a ser enviada. Ento, quando um determinado receptor receber a mensagem, este dever recalcular a funo de hash para verificar se o resumo teve alguma alterao. Se este resumo for diferente significa que a mensagem foi alterada, violando o princpio da integridade.

    Deve-se destacar que, a partir de um dado resumo, de extrema importncia no ser possvel descobrir a mensagem original, alm de ser improvvel que duas mensagens produzam o mesmo resumo.

    Segundo ASSIS (2003), dentre os principais algoritmos para realizao de funo hash, destacam-se

    Message Digest 5 (MD5) que retorna um resumo de 128 bits; Secure Hash Algorithm 1 (SHA-1) que retorna um resumo de 160 bits; Secure Hash Algorithm 2 (SHA-2), que retorna um resumo que pode ter 256, 384 e

    512 bits.

    2.1.4 Assinatura Digital

    A Assinatura Digital uma funo de assinatura eletrnica que consiste em um selo eletrnico que acrescentado a um documento e que criado atravs de um sistema de criptografia assimtrica, ou seja, a chave privada serve para assinar o documento e a chave pblica serve para verificar a assinatura.

    Ento, um sistema de assinatura digital simples possui o seguinte processo: quando um emissor quer assinar sua mensagem para ser entregue a um receptor, ele ir fazer uso de sua chave privada para assinar a mensagem. No momento que o receptor receber esta mensagem, ele ir utilizar a chave pblica do emissor para produzir uma cpia da mensagem e fazer uma comparao com a recebida. Desta forma, pode-se claramente comprovar que foi realmente o

  • 10

    emissor original da mensagem que a enviou, no sendo alterada durante a transmisso. (Figura 5)

    Fonte: GUILHERME (2010) Figura 5 Processo de Assinatura Digital

    Adicionalmente, o processo de assinatura digital pode tambm usar o conceito de funo de hash. Como o uso de algoritmos de chaves pblicas nas assinaturas digitais pode causar muita demora em um processo de decifragem, a funo de hash se mostra como uma soluo ideal.

    2.1.5 Certificado Digital

    O certificado digital um tipo de documento que armazena a chave pblica de um usurio e seus dados de identificao. Este documento deve ser assinado e reconhecido por uma entidade confivel, conhecida como Autoridade Certificadora.

    Logo, os certificados digitais so utilizados para garantir a integridade e origem de chaves pblicas depositadas em bases de dados de acesso pblico. O padro mais utilizado para certificados digitais o denominado X.509.

    Um Certificado Digital normalmente possui as seguintes informaes:

    Nome da pessoa ou entidade a ser associada chave pblica;

    Perodo de validade do certificado;

    Cifrar

    Decifrar Canal Inseguro

    Chave

    Pblica

    Emissor

    Chave

    Secreta

    Emissor

    Emissor Receptor

    Canal Inseguro

  • 11

    Chave pblica;

    Nome e assinatura da entidade que assinou o certificado;

    Nmero de srie.

    Portanto, conseguindo uma chave pblica de um usurio associada a um certificado, confiando-se na autoridade certificadora, podemos ter certeza de que a chave realmente pertence ao usurio solicitado.

    2.2. VIRTUAL PRIVATE NETWORK (VPN)

    A sigla VPN significa Virtual Private Network, ou seja, Redes Privadas Virtuais, onde: Rede corresponde s redes de computadores;

    Privada corresponde forma como os dados trafegam neste caso os dados podem ser criptografados o que garante a privacidade das informaes;

    Virtual por no fazerem, necessariamente, parte do mesmo meio fsico (FAGUNDES, 2007).

    Ento, uma VPN uma rede privada construda sobre a infra-estrutura de uma rede pblica j existente, normalmente a Internet, onde o acesso e a troca de dados s so permitidos a pessoas que estejam autorizadas. Desta forma, tem-se a construo de um tnel entre duas ou mais redes, pelo qual pode ser configurado para garantir autenticidade de dados, sigilo de informao, controle de acesso atravs de criptografia do trfego de informao entre uma rede e outra.

    2.2.1 Principais Tipos de VPN

    Existem basicamente, trs tipos de configurao para o uso de uma VPN:

    Host- Host: Neste tipo de configurao de VPN, h o estabelecimento de um tnel seguro entre duas mquinas (hosts), para que ambas possam se comunicar atravs do meio pblico (Internet). As mquinas podem estar em redes separadas ou na mesma rede, tal como ilustra a Figura 6:

  • 12

    Fonte: 3WAY (2010) Figura 6 - Arquitetura Host Host

    Host Rede: Neste tipo de configurao de VPN, a principal finalidade estabelecer uma comunicao de um host externo com uma rede privada. Por exemplo, esta estrutura pode ser utilizada quando se deseja estabelecer comunicao entre um computador de casa com a rede privada corporativa de uma empresa, tal como ilustra a Figura 7.

    Fonte: 3WAY (2010) Figura 7- Arquitetura Host Rede

    Rede Rede: Neste tipo de configurao de VPN, tem-se como principal finalidade estabelecer a comunicao entre duas redes distintas. Um exemplo deste tipo de VPN quando se deseja interligar a rede matriz de uma empresa com a rede filial desta mesma empresa, para que ambas se comuniquem de maneira segura, tal como representado na Figura 8.

  • 13

    Fonte: 3WAY (2010) Figura 8 - Arquitetura Rede Rede

    2.2.2 Vantagens e Desvantagens da VPN

    Segundo CHIN (2010), uma das grandes vantagens decorrentes do uso das VPNs a reduo de custos com comunicaes corporativas, pois elimina a necessidade de links dedicados de longa distncia que podem ser substitudos pela Internet. As LANs podem, por exemplo, atravs de links dedicados ou discados, conectarem-se a algum provedor de acesso local e interligar-se a outras LANs, possibilitando o fluxo de dados atravs da Internet.

    No entanto, uma VPN depende da rede pblica (Internet) para realizao de suas conexes. Logo, esta rede pblica deve estar quase que sempre disponvel, porm isto praticamente impossvel, pois podem ocorrer falhas nas mesmas, falhas de seguranas, ataques externos, etc.

    2.2.3 Principais Caractersticas e Requisitos

    De acordo com CHIN (2010), quando se desenvolve um VPN, deve-se ter em mente algumas caractersticas e requisitos que podem fazer parte do projeto a ser implementado. Dentre as principais caractersticas, destacam-se:

    Autenticao de usurio: Verificao da identidade do usurio, restringindo o acesso s pessoas autorizadas. Na maioria de vezes, temos recursos de usurio e senha para garantir a autenticao;

  • 14

    Gerenciamento de endereos: O endereo do cliente na sua rede privada no deve ser divulgado, devendo-se adotar endereos fictcios para o trfego externo, ou seja, so criados endereos virtuais quando se estabelece um tnel entre duas pontas da rede;

    Compresso e Criptografia dos dados: Os dados devem trafegar na rede pblica ou privada num formato cifrado e, caso sejam interceptados por usurios no autorizados, no devero ser decodificados, garantindo a privacidade da informao. Alm disso, tais dados devem ser comprimidos e compactados, quando forem transferidos para o canal de comunicao da VPN;

    Gerenciamento de chaves: O uso de chaves que garantem a segurana das mensagens criptografadas deve funcionar como um segredo compartilhado exclusivamente entre as partes envolvidas. O gerenciamento de chaves pode garantir a troca peridica das mesmas, visando manter a comunicao de forma segura;

    Suporte a mltiplicos protocolos: Uma VPN pode dar suporte aos mais variados tipos de protocolos existentes usados em redes pblicas, como: IP, IPX, Appletalk, etc.

    2.2.4 Tunelamento

    De acordo com MARLETA (2007), o tunelamento uma tcnica utilizada pela VPN para encapsular um protocolo dentro de outro. Assim, pode-se utilizar esta tcnica para que seja possvel que um pacote dentro de uma rede que no usa o protocolo IP, possa trafegar pela Internet.

    No entanto, quando se utiliza o tunelamento por meio de VPN, existem estratgias de criptografia a serem adicionadas ao processo, antes de encapsular um pacote que ir ser transportado pela rede. Logo, o processo de tunelamento em uma VPN composto pelas seguintes fases (ASSIS, 2003):

    Criptografia dos dados: Criptografar o pacote a ser transportado, de forma que o torne ilegvel em caso de interceptao da transmisso;

    Encapsulamento: Um dado protocolo de tunelamento encapsula os pacotes com um cabealho que contm informaes de roteamento, com identificao do destino do pacote;

  • 15

    Transmisso ao longo da rede: Os pacotes so roteados entre as extremidades do tnel na rede intermediria (rede pblica), at chegarem ao seu destino;

    Desencapsulamento: No destino, o pacote desencapsulado, deixando apenas informaes do protocolo da rede local;

    Decriptografia dos dados: Realiza a descriptografia dos pacotes finais, de forma que o torne legvel para a outra extremidade do tnel.

    A Figura 9 ilustra o processo de tunelamento:

    Fonte: CHIN (2010) Figura 9 - Processo de Tunelamento

    Segundo ASSIS (2003), pode-se ter dois tipos de tunelamento: Tunelamento Voluntrio: Quando uma estao de trabalho ou um servidor utiliza um

    software para o cliente de tunelamento para criar uma conexo at o servidor VPN. Este mtodo utilizado por clientes dial-up que primeiro conectam-se a Internet, para depois criar o tnel utilizando o software, com isso o cliente passa a ser o fim do tnel;

    Tunelamento Compulsrio: Neste tipo de tunelamento, o computador do usurio no funciona como extremidade do tnel. Existe um servidor de acesso remoto, que est localizado entre o computador do usurio e o servidor do tnel, pelo qual funciona como uma das extremidades do tnel. Desta forma, no necessrio que os clientes de rede tenham software cliente para tunelamento.

  • 16

    2.2.5 Protocolos de Tunelamento

    Existem diversos protocolos utilizados para definir como os pacotes sero encapsulados para serem transmitidos na rede pblica, alm de definir como uma chave de criptografia ser compartilhada entre os integrantes da comunicao e o tipo de autenticao que ser utilizada. Desta maneira, dependendo do tipo de protocolo utilizado, estes podem atuar em camadas diferentes do modelo TCP/IP. Os principais protocolos utilizados para o tunelamento so: PPTP (Point-to-Point Tunneling Protocol), L2F (Layer-2-Forwarding), L2TP (Layer Two Tunneling Protocol), IPSEC (IP Security) e SSL/TLS (Secure Sockets Layer/ Transport Layer Security).

    2.2.5.1 PPTP

    O PPTP (Point-to-Point Tunneling) um protocolo de tunelamento para acesso discado, tendo como principal desenvolvedor a Microsoft. Para se realizar criptografia necessita-se de mtodos especficos de autenticao em que seja possvel a troca de uma chave, j que a criptografia simtrica. No faz autenticao de pacotes e o tnel construdo com computadores remotos, sendo, por isso, chamados de tneis voluntrios, ou seja, o prprio sistema permite que o usurio final configure e estabelea conexes sem a intermediao do provedor de acesso, fazendo o encapsulamento dos pacotes fim a fim (MARLETA, 2007).

    O protocolo PPTP capaz de lidar com outros tipos de pacotes, alm do IP, como o IPX (Internet Packet Exchange) e o NetBEUI (Network Basic Input/Output System Extended User Interface), pois um protocolo baseado na camada de enlace. Este tipo de caracterstica torna-se a grande vantagem desse protocolo.

    2.2.5.2 L2F

    O L2F (Layer-2-Forwarding) um protocolo cujo principal desenvolvedor foi a Cisco. Tinha como misso permitir que provedores de acesso ou empresas de telecomunicaes oferecessem ao mercado acesso remoto discado para redes privadas. Desta

  • 17

    forma, as empresas no necessitariam adquirir modems ou equipamentos de acesso remoto. Neste protocolo, o tnel formado pelo provedor de acesso e no do computador remoto, por isso so chamados de tneis compulsrios (MARLETA, 2007).

    A grande vantagem desse protocolo que os tneis podem suportar mais de uma conexo, o que no possvel no protocolo PPTP. E assim como o PPTP, tambm permite lidar com outros pacotes diferentes, como o IPX e NetBEUI (Network Basic Input/Output System Extended User Interface) por ser um protocolo baseado na camada de enlace.

    2.2.5.3 L2TP

    Este protocolo foi criado pela IETF (Internet Engennering Task Force) para resolver as falhas do PPTP e do L2F. Na verdade, utiliza os mesmo conceitos do L2F e assim como este, foi desenvolvido para transportar pacotes por diferentes meios, como X.25, frame-relay e ATM e tambm capaz de lidar com outros pacotes diferentes, como o IPX e o NetBEUI (CATRAMBY, 2010).

    No entanto, o protocolo L2TP faz uso de um tunelamento compulsrio, pelo qual temos a criao do mesmo por um provedor de acesso, que no permite a um determinado usurio realizar participao na criao do tnel. Assim, antes do tnel ser instalado, o usurio autenticado pelo provedor de acesso e depois autenticado quando a conexo estabelecida entre as duas pontas da comunicao VPN.

    2.2.5.4 IPSEC

    O protocolo IPSEC (IP Security) considerado um conjunto de protocolos da camada de rede, que define a arquitetura e as especificaes para prover servios de segurana dentro do protocolo IP. Foi desenvolvido pela IP Security Work Group da IETF e ser um padro utilizado para o IPV6. Logo, o IPSEC foi padronizado para garantir interoperabilidade, mecanismo de criptografia para o IPV4 e tambm para o IPV6. No se pode esquecer que o IPSEC tem como principais caractersticas fornecer servios de segurana, incluindo integridade dos dados, autenticao, confidencialidade e limite do fluxo de trfego (MARLETA, 2007).

  • 18

    O protocolo IPSEC pode trabalhar de 2 modos distintos, que so os seguintes (VASQUES e SCHUBER, 2002):

    Modo Transporte: Este modo utilizado quando se trabalha com uma arquitetura de VPN Host-Host, na qual o host responsvel pelo encapsulamento, e medida que os pacotes vo sendo criados so adicionados cabealhos IPSEC entre o cabealho IP original e os dados;

    Modo Tnel: Este modo utilizado entre comunicao de gateways, na qual o gateway responsvel pelo encapsulamento, que mais tarde ir desencapsular em outra ponta da comunicao para ser entregue ao host. Ento, o pacote original encapsulado em um novo pacote com criptografia do IPSEC, incluindo um cabealho original. Este modo bem mais seguro, em comparao com o outro modo.

    Alm disso, o protocolo IPSEC constitudo de vrios outros protocolos que garantem a segurana durante a transmisso de informaes pela rede pblica. Os dois principais protocolos so (FAGUNDES, 2007):

    AH (Autentication Header): Este protocolo garante autenticidade e a integridade do pacote, ou seja, que este no foi modificado durante a sua transmisso;

    ESP (Encapsulating Security Payload): Este protocolo fornece autenticao, confidencialidade e integridade dos dados trafegados durante a comunicao.

    2.2.5.5 SSL/TLS

    O protocolo SSL (Secure Sockets Layer) foi originalmente desenvolvido pela empresa Netscape e ao ser padronizado recebeu o nome de TLS (Transport Layer Security), sendo que a verso TLS 1.0 equivalente ao SSL 3.0.

    O SSL foi projetado para fornecer criptografia dos dados e autenticao entre um cliente e um servidor Web. O protocolo comea com uma fase de apresentao mtua que negocia um algoritmo de criptografia e chaves, e depois autentica o servidor para o cliente, tambm podendo o cliente ser autenticado para o servidor. Uma vez concluda a apresentao mtua e iniciada a transmisso de dados da aplicao, todos os dados so criptografados usando chaves de sesso negociadas durante a fase de apresentao mtua (KUROSE, 2004).

  • 19

    Um exemplo de funcionamento bsico deste tipo de protocolo quando existe um servidor web que est sendo acessado por meio de um cliente (browser). Neste caso, o servidor envia uma chave pblica ao browser. O browser usa esta chave para criptografar sua chave simtrica e envia a mesma para o servidor. Desta forma, servidor e o cliente compartilham a mesma chave simtrica, podendo ser utilizada para realizar a criptografia de todos os dados que forem transmitidos entre as duas entidades, dentro de um canal de comunicao.

    Logo, o SSL considerado uma adio de uma nova camada acima da camada de transporte do modelo TCP/IP, isto , fica entre a camada de transporte e a camada de aplicao (Figura 10). Ele pode rodar sobre outros protocolos como HTTP, TELNET, FTP, SMTP dentre outros, transparentemente, de modo que o usurio da aplicao praticamente no o perceba sua presena. Como exemplo, o HTTPS, que o protocolo HTTP rodando sobre uma conexo SSL.

    Fonte: GTA (2010) Figura 10 Camadas do modelo TCP/IP modificadas com SSL

    O protocolo SSL dividido em duas camadas (Figura 11): Record e Handshake. A camada Record responsvel por encapsular os dados das camadas superiores em pacotes compactados e cifrados e repass-los para a camada de transporte. J a camada Handshake permite que a aplicao servidora e a aplicao cliente autentiquem-se e negociem os algoritmos de cifragem e as chaves criptogrficas antes que o protocolo de aplicao receba ou envie seu primeiro byte (SOUSA e PUTTINI, 2010).

  • 20

    Fonte: SOUSA e PUTTINI (2010) Figura 11 - Camadas do protocolo SSL

    2.3 STREAMING DE VDEO

    H alguns anos, para se assistir um vdeo na Internet, consumia-se em um elevado tempo para download, pelo qual o usurio teria que realizar o download completo do vdeo em seu computador, para depois assisti-lo. Desta forma, surgiu a possibilidade de reproduzir o vdeo desejado antes mesmo que todo o arquivo fosse gravado localmente no computador. Tal tecnologia ficou conhecida como streaming, que composta por tcnicas de compresso e armazenamento em memria temporria (buffer).

    O streaming de vdeo funciona da seguinte maneira: O computador cliente conecta-se com o servidor e este comea a lhe enviar o arquivo de vdeo. O cliente comea a receber o arquivo de vdeo e constri um buffer onde comea a salvar a informao. Quando o buffer preenchido com uma pequena parte do arquivo, conhecido como stream, o cliente comea a executar e ver o arquivo em um player enquanto, simultaneamente, o download continuado. Portanto, o sistema est sincronizado para que o arquivo possa ser visto enquanto se baixa o arquivo, podendo ser rpido ou no dependendo da banda de rede disponvel do usurio (ALVAREZ, 2010).

    A Figura 12 demonstra essa interao, onde uma fonte (servidor) envia um arquivo por meio de fluxo de dados (stream) que sero entregues ao destino (cliente):

  • 21

    Fonte: SAUV (2010) Figura 12 - Processo de Streaming

    Deve-se destacar que questes relacionadas temporizao e a tolerncia perda de dados so meramente importantes para aplicaes de multimdia em rede, como o caso de streaming de vdeo. Consideraes de temporizao so importantes porque muitas aplicaes de multimdia so altamente sensveis ao atraso. Entretanto, estas aplicaes so mais tolerantes a perda de dados, na qual perdas esparsas causam pequenas falhas que podem passar desapercebidas (KUROSE e ROSS, 2004).

    2.3.1 Aplicaes Multimdia

    Existem diversas aplicaes multmidias, tendo como destaque: Streaming de Vdeo Armazenado, Streaming de Vdeo ao Vivo e Vdeo Interativo em Tempo Real.

    2.3.1.1 Streaming de Vdeo Armazenado

    De acordo com KUROSE e ROSS (2004), neste tipo de aplicao multimdia, os clientes requisitam, sob demanda, arquivos de vdeo comprimidos que esto armazenados em servidores. Tal aplicao possui trs caractersticas fundamentais:

    Mdia armazenada: O contedo de vdeo foi pr-gravado e est armazenado no servidor. Desta forma, o usurio pode fazer pausa, voltar, avanar, dentre outras funes, que so similares a um VCR;

    Fluxo Contnuo: O cliente inicia a reproduo do vdeo alguns segundos aps comear a receber o arquivo do servidor. Ou seja, o cliente estar reproduzindo uma

  • 22

    parte do arquivo ao mesmo tempo em que est recebendo do servidor partes do arquivo que esto mais a frente;

    Reproduo Contnua: Uma vez que a reproduo comea, isto deve ocorrer de acordo com o tempo original de gravao, pelo qual a informao deve chegar ao destino, a tempo de ser vista corretamente pelo cliente.

    2.3.1.2 Streaming de Vdeo ao Vivo

    Segundo KUROSE E ROSS (2004), neste tipo de aplicao, tem-se uma semelhana em relao transmisso tradicional de rdio e televiso, no entanto a transferncia da informao feita pela Internet, permitindo que o usurio receba uma transmisso de rdio ou televiso ao vivo de qualquer parte do mundo.

    Nesta aplicao, um cliente no pode interagir com o vdeo que est recebendo, visto que o fluxo contnuo de vdeo no armazenado. Entretanto, com o armazenamento local de dados recebidos, outras operaes interativas, como pausa e retrocesso, so possveis em alguns casos.

    2.3.1.3 Vdeo Interativo em Tempo Real

    Essa aplicao permite s pessoas utilizar udio e vdeo para comunicar-se em tempo real. Dentre as aplicaes interativas em tempo real temos softwares de telefonia e videoconferncia na Internet, onde dois ou mais usurios podem se comunicar oral e visualmente.

    Para uma conversao com interao entre vrios usurios, o atraso entre o momento

    em que o usurio fala ou se move e o momento em que a ao se manifesta nos hospedeiros receptores deve ser menor que algumas centenas de milissegundo. Portanto, este tipo de aplicao torna-se mais exigente nos requisitos de atraso de informaes (KUROSE e ROSS, 2004).

  • 23

    2.3.2 Streaming Unicast e Multicast

    De acordo TSCHKE (2001) o fluxo de dados enviados do servidor para o cliente pode ser feitos atravs de dois mtodos principais:

    Unicast: uma conexo ponto-a-ponto entre o cliente e o servidor, onde cada cliente recebe seu prprio stream do servidor. Dessa forma, cada usurio conectado ao stream tem sua prpria conexo e os dados vm diretamente do servidor. A vantagem deste mtodo que os computadores clientes podem requisitar diretamente o stream do servidor e a desvantagem cada cliente que conectar ao servidor ir receber um stream separado, o que ocasiona o aumento de consumo da largura de banda da rede (Figura 13);

    Fonte: CATALIN (2010) Figura 13 - Streaming Unicast

    Multicast: Ocorre quando o contedo transmitido sobre uma rede com suporte multicast, onde todos os clientes na rede compartilham o mesmo stream. Desta forma, temos a vantagem de que apenas uma cpia do stream seja enviada na rede para um grupo de clientes, reduzindo o trfego na conexo. A grande desvantagem deste mtodo que os clientes no possuem controle em cima dos streams recebidos, ou seja, no podem avanar, pausar, retroceder, continuar o contedo recebido, apenas o recebe (Figura 14).

  • 24

    Fonte: CATALIN (2010) Figura 14 - Streaming Multicast

    2.3.3 Protocolos Multimdia

    Existem vrios protocolos que podem ser utilizados para realizar a transmisso de streaming de vdeo na Internet, sendo que os principais so: HTTP, RTP, RTCP e RTSP.

    2.3.3.1 HTTP

    O HTTP (Hypertext Transfer Protocol) um protocolo da camada de aplicao da Web, na qual implementado em dois programas: um programa cliente e outro servidor. Os dois programas, executados em sistemas finais diferentes, conversam um com o outro por meio da troca de mensagens HTTP, sendo que o HTTP define a estrutura dessas mensagens e o modo como o cliente o servidor as trocam (KUROSE e ROSS, 2004).

    Ento, o protocolo HTTP utiliza o protocolo de transporte TCP, pelo qual um cliente inicia uma conexo TCP com o servidor na porta 80 (porto padro do HTTP). O servidor aceita a conexo TCP do cliente, e assim mensagens HTTP so trocadas entre o cliente (normalmente um browser) e o servidor (normalmente um servidor Web). Finalmente a conexo TCP finalizada e fechada.

    Segundo URBITA (2007), o protocolo HTTP no foi criado para streaming de dados, na qual a comunicao sobre o protocolo HTTP stateless, ou seja, o servidor no mantm informaes sobre os pedidos passados pelos clientes e usualmente respostas do HTTP utilizam buffer. Entretanto, a verso HTTP 1.1 adicionou suporte para streaming atravs do

  • 25

    cabealho keep-alive, onde uma conexo permanece aberta at ser finalizada pelo cliente ou pelo servidor.

    O protocolo HTTP, normalmente no realiza streaming em tempo real, para fazer este procedimento, necessita-se de uma largura de banda da rede maior que a taxa de dados do vdeo. Logo, como tal protocolo roda em cima do protocolo TCP, a sensibilidade de perdas de pacotes alta, transformando esse protocolo inadequado para streaming ao vivo, sendo mais utilizada para streaming de vdeo armazenado.

    2.3.3.2 RTP

    O protocolo RTP (Real Time Protocol) um protocolo que oferece funes de transporte de rede fim a fim para aplicaes que transmitem fluxos de dados em tempo real. Logo, o protocolo RTP utilizado para transportar pacotes com formatos de dados para udio e para vdeo, cujos pacotes RTP normalmente so enviados atravs do protocolo UDP da camada de transporte da arquitetura TCP/IP. Ou seja, RTP roda em cima do UDP, na camada de transporte, de acordo com a Figura 15.

    Fonte: KUROSE e ROSS (2004) Figura 15 - RTP sobre UDP

    De acordo com ALMEIDA (2010), o protocolo RTP pode ser usado no somente em uma comunicao ponto a ponto, mas tambm pode ser usada em uma comunicao multicast. Este protocolo no reserva recursos nem garante qualidade de servio (QoS), todavia ele na maioria da vezes utilizado em paralelo com o protocolo RTCP (Real Time Control Protocol) permitindo que haja certa monitorao da comunicao.

  • 26

    Alm disso, o RTP permite atribuir a cada fonte (por exemplo, uma cmera ou um microfone) o seu prprio fluxo de pacotes RTP independente. Por exemplo, para uma videoconferncia entre dois participantes, quatro fluxos RTP poderiam ser abertos: dois fluxos para transmitir o udio (um em cada direo) e dois fluxos para o vdeo (novamente, um em cada direo). Contudo, algumas tcnicas de codificao populares, incluindo MPEG1 e MPEG2, renem o udio e o vdeo num nico fluxo durante o processo de codificao. Quando o udio e o vdeo so reunidos pelo codificador, ento apenas um fluxo RTP gerado em cada direo (KUROSE e ROSS, 2004).

    Enfim, segundo KUROSE e ROSS (2004), o protocolo RTP possui diversos campos especficos localizados dentro de seu cabealho, que oferecem funes importantes ao suporte de streaming de vdeo. Os principais so:

    Tipo de carga: Usado para indicar o tipo de codificao que est sendo usado no momento, ou seja, o formato dos dados transportados (Ex: Vdeo MPEG1, Vdeo MPEG2, Motion JPEG, udio MPEG, etc);

    Nmero de Seqncia: Um nmero de seqncia incrementado de um a cada pacote RTP enviado, podendo ser usado para detectar perdas de pacotes e para recuperar a seqncia de pacotes;

    Marca de Tempo: um nmero que permite sincronizar a aplicao servidora e cliente e eliminar a variao de atraso de pacotes atravs da indicao temporal do momento em que foi gerado o sinal de streaming;

    Identificador de sincronizao da fonte (SSRC Synchronization source identifier): Identifica a fonte do fluxo RTP, pelo qual cada fluxo numa sesso RTP deve ter um SSRC distinto.

    2.3.3.3 RTCP

    O protocolo RTCP (Real Time Control Protocol) normalmente utilizado em conjunto com o protocolo RTP para monitoramento da comunicao. Cada participante de uma sesso RTP transmite periodicamente pacotes de controle RTCP para todos os outros participantes. Deste modo, cada pacote RTCP contm relatrios do transmissor ou do receptor que sero teis para a aplicao (KUROSE e ROSS; 2004).

    Os relatrios gerados pelo protocolo RTCP so compostos por estatsticas que incluem o nmero de pacotes enviados, nmero de pacotes perdidos, variao de atraso entre

  • 27

    chegadas, etc. Estas informaes podem ser utilizadas para controle do desempenho de transmisso e para fins de diagnstico.

    Ento, de acordo com ALMEIDA (2010), o uso das informaes geradas pelos relatrios importante, quando todos os participantes da comunicao podero estar enviando pacotes RTCP a todo o momento. Nesta situao necessrio restringir a taxa de transmisses dos participantes para no sobrecarregar a rede, havendo um controle de banda.

    2.3.3.4 RTSP

    O RTSP (Real Time Streaming Protocol) um protocolo da aplicao do tipo cliente-servidor, na qual permite ao usurio controlar apresentaes de mdia contnua, tais como: voltar ao incio, avanar, pausar, continuar, etc.

    De acordo com KUROSE e ROSS (2004), o RTSP no define e no restringe as seguintes caractersticas:

    No define esquemas de compresso para udio e vdeo;

    No define como o udio e vdeo so encapsulados em pacotes para transmisso em uma rede, sendo que o encapsulamento para mdia de fluxo contnuo pode ser fornecido por RTP;

    No restringe como a mdia contnua transportada, podendo usar UDP ou TCP;

    No restringe como o receptor armazena o udio e o vdeo, a qual o udio e o vdeo podem ser reproduzidos logo que comea a chegar ao cliente, aps um atraso de alguns segundos, ou pode ser descarregado integralmente antes de ser reproduzido.

    O RTSP considerado um protocolo fora de banda, isto , as mensagens de controle RTSP usam diferentes nmeros de portas em relao ao fluxo de dados de mdia contnua, e, portanto so enviados fora de banda. J o fluxo de dados de mdia contnua, cuja estrutura no definida pelo RTSP, considerado dentro de banda. As mensagens RTSP usam o nmero de porta 554 e a corrente de mdia utiliza um nmero diferente, sendo que as mensagens RTSP podem ser enviadas por TCP ou UDP (KUROSE e ROSS, 2004).

    Na figura 16, tem-se um exemplo de comunicao RTSP entre o cliente e o servidor:

  • 28

    Fonte: W3C (2010) Figura 16 - Comunicao RTSP

    Neste exemplo, o cliente obtm uma descrio de apresentao multimdia do servidor, que pode ser atravs de um servidor Web, usando HTTP. Essa apresentao de descrio um arquivo que contm informaes sobre a mdia a ser enviada, tais como, formato de codificao, caracterstica dos fluxos de mdia, etc. Depois disto, o cliente ir chamar um transdutor de mdia (tocador), com base de contedo da descrio de apresentao. E, teremos os seguintes passos (KUROSE e ROSS, 2004):

    a) O cliente atravs do transdutor envia o comando de requisio RSTP SETUP para iniciar uma sesso, e o servidor envia uma resposta de confirmao (RTSP OK), que ir conter um identificador de sesso utilizado nas outras requisies;

    b) O cliente atravs do transdutor envia o comando de requisio RSTP PLAY e o servidor envia uma resposta de confirmao (RTSP OK), iniciando a transmisso dos dados;

    c) O servidor descarrega o fluxo de mdia (udio e vdeo), atravs do protocolo RTP; d) O cliente atravs do transdutor envia o comando de requisio RSTP PAUSE e o

    servidor envia uma resposta de confirmao (RTSP OK), pausando a reproduo do vdeo;

    e) O cliente atravs do transdutor envia o comando de requisio RSTP TEARDOWN e o servidor envia uma resposta de confirmao (RTSP OK), finalizando a sesso.

  • 29

    2.3.4 Codec e Compresso de dados

    Um Codec considerado um algoritmo, que possui a responsabilidade de comprimir dados, quando ocorrer algum tipo de gravao e produo de arquivos de udio ou vdeo, e descomprimir quando o arquivo estiver sendo executado. Um Codec tambm possui a funo de realizar a codificao e a decodificao dos dados, isto , converter os sinais analgicos em sinais digitais.

    De acordo com KUROSE e ROSS (2004), a necessidade de digitalizao bvia, uma vez que as redes de computadores transmitem bits, e toda informao transmitida deve ser representada como uma seqncia de bits. Logo, a compresso dos dados importante porque o udio e vdeo no comprimidos consomem um quantidade elevada de capacidade de armazenamento e de largura de banda. Tais fatores podem prejudicar a transmisso de streaming de vdeo, na qual exige uma boa qualidade de largura de banda para uma transmisso sem atrasos.

    Existem diversos Codecs para compresso, tanto para udio como para vdeo. Dentre os Codecs para udio destacam-se PCM, MPEG-Audio, MP3, dentre outros. Os mais conhecidos para vdeo, tem-se MPEG-1 para vdeo com qualidade de CD-ROM, MPEG-2 para vdeo com qualidade de DVD, MPEG-4 para compresso de vdeo na Internet, entre vrios outros Codecs.

    2.4. FERRAMENTAS PARA VPN

    Para a criao de uma VPN, existem vrias ferramentas para o seu desenvolvimento. Dentre as mais importantes, destacam-se: FreeS/Wan e OpenVPN.

    2.4.1 FreeS/Wan

    Desenvolvida em 1996, esta ferramenta implementa os protocolos do IPSEC, com a finalidade de proteger a comunicao da Internet contra ataques de interceptao, utilizando um mecanismo gratuito. Por usar recursos criptogrficos, o FreeS/WAN sofre com algumas leis de exportao, principalmente as dos Estados Unidos, que probem a exportao de

  • 30

    qualquer software criptogrfico de computadores deste pas, sem a prvia autorizao do governo. Em geral, estas leis restringem inclusive quando o software j de domnio pblico ou so oriundos de outros pases. Por esta razo, o projeto no pode aceitar qualquer contribuio de cidados americanos, nem mesmo para correes de problemas no software (VASQUES e SCHUBER, 2002).

    Como o fundador do projeto do FreeS/WAN, John Gilmore, americano, ele no pode desenvolver o cdigo, funo essa desempenhada por uma equipe de canadenses, residentes no Canad, a fim de evitar problemas com o governo (VASQUES e SCHUBER, 2002).

    Esta ferramenta para criao de VPN segue um padro de algoritmos de chaves assimtrica RSA, simtrica 3DES, funes de hash MD5 e SHA-1. Ela tambm utilizada o recurso de IKE (Internet Key Exchange), que utilizado para estabelecer uma relao de confiana entre as duas entidades da VPN, para negociar opes de segurana, como por exemplo, trocas de chaves de criptografia.

    Portanto, esta ferramenta no ser usada para a configurao da VPN, uma vez que no to simples de implementar com o protocolo IPSEC. Alm disso, o projeto de desenvolvimento da ferramenta no est mais em andamento, estando desatualizado.

    2.4.2 OpenVPN

    O OpenVPN um software de cdigo aberto que implementa o protocolo SSL/TLS (Secure Sockets Layer/Transport Layer Security), o qual estabelece um canal de comunicao criptografada entre o cliente e o servidor, e permite realizar diferentes tipos de VPN, como: Host-Host, Host-Rede e Rede-Rede. O software foi escrito por James Yonan e publicado sob licena GNU General Pulic Licence (GPL), e um servio que roda sobre a camada de aplicao, podendo ser utilizados em vrias plataformas: Linux, FreeBSD, OpenBSD, NetBSD, Windows 2000/XP, Solaris e Mac OS X.

    Pode operar basicamente em trs modos de operao: sem nenhuma criptografia, criptografia com chaves estticas ou no modo TLS. No modo sem nenhuma criptografia, tem-se apenas a criao do tnel para comunicao entre as entidades. J no modo de criptografia com chaves estticas, existem chaves pr-compartilhadas entres as entidades da comunicao, a qual ser simtrica para ambos, sendo um mtodo simples e rpido de implementar. E no modo TLS, tem-se uma comunicao criptografada por meio de chaves pblicas, trabalhando

  • 31

    junto com certificados e algoritmos assimtricos (Ex: RSA), pelo qual as chaves sero trocadas periodicamente.

    O OpenVPN utiliza a biblioteca OpenSSL para prover criptografia entre ambos os canais de controle de dados. Assim, o OpenSSL realiza o funcionamento de toda a criptografia e autenticao, permitindo ao OpenVPN utilizar todas as cifras disponveis no pacote do OpenSSL.

    Alm, disso o OpenVPN pode ser configurado para transportar os dados sobre TCP ou UDP e tem a grande vantagem de conseguir estabelecer conexes diretas entre computadores que estejam atrs de Firewalls, tendo um timo desempenho e suportando o trabalho junto com Proxy Servers e NAT (Network Address Translation).

    No se pode esquecer que o OpenVPN faz uso de uma interface genrica (TUN/TAP) para a criao da interface de rede virtual, permitindo que ele funcione corretamente, e desta forma cada VPN aparece na tabela de roteamento como se fosse uma placa adicional da rede. O sistema operacional, na qual o OpenVPN est rodando deve ter suporte a este tipo de interface. No caso do Linux, que ser utilizado para a configurao da VPN, as verses de kernel anteriores a 2.2, 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 (FAGUNDES, 2007).

    Para finalizar, existe outra caracterstica opcional que pode ser utilizada durante a configurao da VPN: utilizar uma biblioteca de compresso chamada LZO, que tem a funo de compactar os dados que iro ser transmitidos pela rede.

    2.5 FERRAMENTAS PARA STREAMING DE VDEO

    Para a criao de streaming de vdeo existem vrias ferramentas para o seu desenvolvimento. Dentre as mais importantes, destacam-se: VLC Media Player e Flumotion Streaming Software.

  • 32

    2.5.1 VLC Media Player

    O VLC Media Player um player multimdia de cdigo aberto, que foi desenvolvido por estudantes da Ecole Centrale Paris alm de colaboradores de vrios lugares do mundo. Por ser um programa e um projeto de cdigo aberto, o mesmo pode ser instalado e configurado em vrios sistemas operacionais (Windows, Linux, MacOS, etc), suportando vrios formatos e Codecs de udio e vdeo. Para vdeo destacam-se MPEG-1, MPEG-2, MPEG-4, DVD, OGM, VCDs, DivX, dentre outros. J para udio tem-se FLAC, MP3, WAV, OGG, etc.

    Alm de todas essas caractersticas do VLC, no se pode esquecer-se de uma de suas principais funes, que a capacidade de realizar streaming de vdeo e udio por uma rede, fazendo o uso de vrios protocolos de streaming, como RTP, RTSP, HTTP, UDP, etc. Desta forma, tal ferramenta pode ser utilizada como um servidor de streaming de vdeo, tendo suporte a uma transmisso Unicast ou Multicast.

    O VLC faz parte de uma das solues do projeto chamado VideoLAN, que alm do VLC, tem o VLS como outra opo. O VLC derivado do nome VideoLAN Client basicamente usado como servidor e como cliente para realizar streaming de vdeo e receber streaming de vdeo. Por outro lado, o VLS derivado do nome VideoLAN Server utilizado apenas como servidor de streaming de vdeo. Nas primeiras verses do projeto, o VLS era mais aconselhvel para criao do servidor de streaming de vdeo, tendo que usar o VLC como cliente. Entretanto, nas ultimas verses do VLC, o mesmo possui praticamente as mesmas funcionalidades do VLS, podendo ser utilizado como servidor e cliente ao mesmo tempo, sendo seu uso mais aconselhvel, segundo o prprio site da VideoLAN (http://www.videolan.org/vlc/streaming.html)

    2.5.2 Flumotion Streaming Software

    De acordo com URBITA (2007), o Flumotion Streaming Software um programa servidor para realizar streaming de vdeo e foi desenvolvido pela empresa Fluendo. Tal ferramenta distribuda em duas verses: a bsica e a avanada. A verso bsica livre, tendo suporte a alguns tipos de formatos livres para realizar streaming (Ex.: OGG, Theora, etc). J a

  • 33

    verso mais avanada, utilizada para uso comercial, tem mais funes e recursos, podendo trabalhar e dar suporte para formatos de udio e vdeo proprietrios (Ex.: MPEG).

    Esta ferramenta tem a capacidade de realizar streaming de vdeo apenas por meio do protocolo HTTP, necessitando do protocolo de transporte TCP para isto. Desta forma, no possui protocolos especficos de streaming, como RTSP e RTP, para trabalhar com esta ferramenta, tornado o processo de configurao um pouco mais restrito. Alm disso, opera apenas sobre Linux, no possuindo verses para outros tipos de sistemas operacionais.

    Enfim, esta ferramenta no ser usada para ser feita a configurao de streaming de vdeo, uma vez que possui apenas suporte para protocolo HTTP, o que deixaria o estudo do projeto um pouco mais limitado.

  • 34

    3. METODOLOGIA DE DESENVOLVIMENTO

    Este captulo tem como finalidade descrever como foi feita a configurao da VPN bem como a configurao do servidor de streaming de vdeo, explicando passo a passo os detalhes das configuraes, para depois serem realizados testes de integrao.

    3.1 FERRAMENTAS UTILIZADAS

    Ser utilizado o software OpenVPN para a configurao da VPN e o software VLC Media Player para a configurao do servidor de streaming de vdeo. Para os testes de anlise de desempenho, ser utilizado o software Wireshark, que um programa que analisa o trfego de rede, possibilitando a captura e filtragem de pacotes transmitidos pela rede.

    3.2 CONFIGURAO DA VPN

    3.2.1 Cenrio de Configurao

    Ser utilizado o software OpenVPN na verso 2.1.1 para o desenvolvimento de uma VPN entre dois computadores (hosts). Um host ser o servidor e o outro ser o cliente, na qual ambos iro se interconectar atravs de um tnel criptografado. No caso, tem-se uma VPN do tipo host-host. Foi escolhida esta ferramenta, por ser um software estvel, simples de configurar, alm de ser um projeto que est sempre em desenvolvimento, sendo facilmente instalada no sistema operacional Ubuntu. Deve-se destacar que tal ferramenta trabalha no nvel da camada de aplicao do modelo TCP/IP, levando a uma configurao fcil e objetiva.

    A configurao do OpenVPN para o desenvolvimento da VPN ser feita por meio de chave esttica compartilhada (criptografia simtrica) entre o servidor e o cliente, pelo qual o tamanho dessa chave de 2048 bits utilizada para criptografar os dados transmitidos pelo tnel. Desta forma, com uma configurao de chave esttica compartilhada, tem-se um mtodo simples, rpido de implementar, sendo mais veloz, levando em considerao que ir ser realizada a transmisso de streaming de vdeo pela VPN, a qual exige que a comunicao

  • 35

    no tenha tantos atrasos de pacotes e sobrecarga de processamento. A chave de tamanho de 2048 bits um chave padro fornecida pelo OpenVPN neste tipo de configurao, sendo um tamanho bom em nvel de segurana para uma configurao de rede local.

    Um detalhe importante que a configurao da VPN entre os dois hosts ser feita em uma mesma rede local, visto que se pretende apenas estudar e entender como funciona uma VPN, tornando o processo mais simples, podendo no futuro servir como base para uma implementao mais sofisticada.

    A Tabela 1 apresenta algumas especificaes dos dois computadores a serem utilizados nesta configurao.

    Tabela 1 Especificaes dos Computadores Computador Servidor Computador Cliente

    Sistema Operacional Ubuntu 10.04 Sistema Operacional Ubuntu 10.04 IP Local: 192.168.0.101 IP Local: 192.168.0.100 IP Virtual VPN: 10.0.0.1 IP Virtual VPN: 10.0.0.2

    3.2.2 Instalao do OpenVPN

    Teve-se que fazer a instalao do OpenVPN nas duas mquinas (servidor e cliente). Desta forma, foi utilizado o comando apt-get, principal instalador de pacotes do Ubuntu, tal

    como segue:

    apt-get install openvpn

    3.2.3 Driver TUN/TAP

    Antes de configurar o OpenVPN, foi feito o carregamento do driver TUN/TAP, que realiza a criao da interface de rede virtual utilizada pela VPN para transmisso dos dados pelos IPs virtuais. O carregamento foi feito atravs do seguinte comando no terminal:

    modprobe tun

    Tambm se acrescentou o mdulo tun dentro do arquivo /etc/modules para que ele

    seja carregado no kernel a cada boot. O mdulo tun responsvel pelas interfaces virtuais que

  • 36

    o OpenVPN cria. Ento, foi digitado no terminal do servidor e do cliente, o seguinte comando (MORIMOTO, 2010):

    echo tun >> /etc/modules

    3.2.4 Gerao da Chave de Criptografia

    Depois de ter instalado o OpenVPN nas duas mquinas e ter carregado o mdulo tun no kernel, ser gerado a chave esttica de criptografia no servidor.

    Primeiramente deve-se acessar o diretrio padro onde estaro os arquivos de configurao, atravs do comando abaixo:

    cd /etc/openvpn

    Depois, gera-se a chave de criptografia, atravs do seguinte comando (MAGUIONE, 2010):

    openvpn --genkey --secret chave.key

    Desta forma, gerou-se uma chave esttica de criptografia, com o nome de chave.key,

    com o contedo da Figura 17.

    Figura 17 - Contedo da chave esttica

  • 37

    3.2.5 Cpia da Chave Esttica para o Cliente

    Depois de ter gerado a chave esttica de criptografia no servidor, ter que ser feita a cpia da chave para o cliente de uma maneira segura. Ento foi necessrio instalar o OpenSSH, no servidor e no cliente. O OpenSSH uma coleo de programas de computador que provem a criptografia em sesses de comunicaes em uma rede de computadores usando o protocolo SSH.

    Ento, no servidor foi instalado o OpenSSH Server, atravs do seguinte comando no terminal:

    apt-get install openssh-server

    J no cliente, teve-se que instalar o OpenSSH Client, atravs do seguinte comando no terminal:

    apt-get install openssh-client

    Depois de ter instalado o pacote OpenSSH no servidor e no cliente, o servidor foi acessado a partir do cliente, atravs de SFTP (Secure File Transfer Protocol, tambm conhecido como SSH File Transfer Protocol), o qual um protocolo de rede que oferece o acesso a arquivos, transferncias de arquivos e funcionalidade de gerenciamento de arquivos de maneira segura. O SFTP j est incluso no pacote OpenSSH.

    Portanto, no cliente, foram digitados alguns comandos para acessar o servidor e transferir a chave, como mostra a Figura 18:

  • 38

    Figura 18 - Transferncia da chave esttica

    Primeiramente deve-se acessar o diretrio para onde ser copiada a chave esttica (cd /etc/openvpn) e conectar ao servidor atravs do protocolo SFTP (sftp [email protected]), onde se deve digitar a senha do usurio root do servidor.

    Depois de conectado ao servidor, acessa-se o diretrio onde se encontra a chave

    esttica (cd /etc/openvpn), onde realizada a cpia da chave (get chave.key). E finalmente desconecta-se do servidor (quit).

    3.2.6 Configurao do Servidor

    Primeiramente, foi necessrio criar um arquivo chamado servidor.conf no diretrio

    /etc/openvpn do servidor:

    touch servidor.conf

  • 39

    Dentro deste arquivo, foi colocado o seu contedo de configurao, onde os comentrios de cada comando esto identificados com #:

    #Utilizao da Interface Virtual da VPN dev tun

    #IP Remoto do cliente remote 192.168.0.100

    #Endereo IP virtual da VPN no servidor e no cliente, ou seja, direo do tnel do servidor para o cliente ifconfig 10.0.0.1 10.0.0.2

    #Protocolo utilizado para transporte dos dados proto udp

    #Porta padro da VPN usada pelo OpenVPN port 1194

    #Diretrio de localizao da chave esttica secret /etc/openvpn/chave.key

    #Compresso de dados atravs da biblioteca LZO comp-lzo

    #Realiza monitoramento da conexo: primeiro nmero d um ping para o cliente a cada 10 segundos sem atividade, e o segundo nmero identifica que a VPN reiniciada depois de 120 segundos sem resposta. keepalive 10 120

    #Mantm a chave carregada quando a VPN reiniciada persist-key

    #Mantm a interface tun carregada quando a VPN reiniciada persist-tun

    #Caso o IP da outra mquina mude, o tnel continua estabelecido float

    #Nvel de log 3. Existem nveis 0,1,3 e 9. Quanto maior o nvel, maior ser o detalhamento do log. verb 3

    #Arquivo que mostra informaes de status da conexo status /var/log/openvpn/servidor-status.log

    #Arquivo de log que mostra o estabelecimento da conexo log-append /var/log/openvpn/servidor.log

  • 40

    Aps ter ajustado o arquivo de configurao do servidor, foram criados os arquivos de log do OpenVPN, que so importantes, por exemplo, para detectar algum erro de conexo.

    Mas primeiro, criou-se um diretrio, onde foram armazenados os arquivos de log:

    mkdir /var/log/openvpn

    E depois se criou os arquivos de log do servidor:

    touch /var/log/openvpn/servidor-status.log

    touch /var/log/openvpn/servidor.log

    3.2.7 Configurao do Cliente

    Primeiramente, foi necessrio criar um arquivo chamado cliente.conf no diretrio

    /etc/openvpn do cliente:

    touch cliente.conf

    Dentro deste arquivo, foi colocado o seu contedo de configurao, onde os comentrios de cada comando esto identificados com #:

    #IP Remoto do servidor remote 192.168.0.101

    #Utilizao da Interface Virtual da VPN dev tun

    #Endereo IP virtual da VPN no cliente e no servidor, ou seja, direo do tnel cliente para o servidor ifconfig 10.0.0.2 10.0.0.1

    #Protocolo utilizado para transporte dos dados proto udp

    #Porta padro da VPN usada pelo OpenVPN port 1194

    #Chave esttica secret /etc/openvpn/chave.key

    #Compresso de dados atravs da biblioteca LZO

  • 41

    comp-lzo

    #Realiza monitoramento da conexo: primeiro nmero d um ping para o servidor a cada 10 segundos sem atividade, e segundo nmero identifica que a VPN reiniciada depois de 120 segundos sem resposta. keepalive 10 120

    #Mantm a chave carregada quando a VPN reiniciada persist-key

    #Mantm a interface tun carregada quando a VPN reiniciada persist-tun

    #Caso o IP da outra mquina mude, o tnel continua estabelecido float

    #Nvel de log 3. Existem nveis 0,1,3 e 9. Quanto maior o nvel, maior ser o detalhamento do log. verb 3

    #Informaes de status da conexo status /var/log/openvpn/cliente-status.log

    #Arquivo de log que mostra o estabelecimento da conexo log-append /var/log/openvpn/cliente.log

    Aps ter ajustado o arquivo de configurao do cliente, foram criados os arquivos de log do OpenVPN, que so importantes, por exemplo, para detectar algum erro de conexo.

    Mas primeiro, criou-se um diretrio, onde foram armazenados os arquivos de log:

    mkdir /var/log/openvpn

    E depois se criou os arquivos de log do cliente:

    touch /var/log/openvpn/cliente-status.log

    touch /var/log/openvpn/cliente.log

    3.2.8 Inicializao da VPN no Servidor

    Para inicializar a VPN no servidor, digita-se o seguinte comando no terminal:

    /etc/init.d/openvpn start

  • 42

    A inicializao da VPN no servidor verificada na Figura 19.

    Figura 19 - Inicializao da VPN no servidor

    Se quisermos finalizar a VPN, deve-se digitar o seguinte comando no terminal:

    /etc/init.d/openvpn stop

    Se quisermos reinicializar a VPN, deve-se digitar o seguinte comando no terminal:

    /etc/init.d/openvpn restart

    Pode-se verificar o status da conexo e o processo de estabelecimento da VPN, atravs dos arquivos de logs criados no servidor.

    No servidor, o arquivo servidor.log mostra o processo de estabelecimento da

    conexo no servidor, na qual ao final do processo aparecer a confirmao de sucesso identificada na Figura 20.

  • 43

    Figura 20 - Contedo do arquivo servidor.log

    No servidor, o arquivo servidor-status, mostra o status da conexo, verificado na

    Figura 21.

    Figura 21 - Contedo do arquivo servidor-status.log

    3.2.9 Inicializao da VPN no Cliente

    Para inicializar a VPN no cliente, digita-se o seguinte comando no terminal:

    /etc/init.d/openvpn start

    A inicializao da VPN no cliente verificada na Figura 22:

  • 44

    Figura 22 - Inicializao da VPN no cliente

    Se quisermos finalizar a VPN, deve-se digitar o seguinte comando no terminal:

    /etc/init.d/openvpn stop

    Se quisermos reinicializar a VPN, deve-se digitar o seguinte comando no terminal:

    /etc/init.d/openvpn restart

    Pode-se verificar o status da conexo e o processo de estabelecimento da VPN, atravs dos arquivos de logs criados no cliente.

    No cliente, o arquivo cliente.log mostra o processo de estabelecimento da conexo no

    cliente, na qual ao final do processo aparecer a confirmao de sucesso identificada Figura 23.

  • 45

    Figura 23 - Contedo do arquivo cliente.log

    No cliente, o arquivo cliente-status, mostra o status da conexo, verificado na

    Figura 24.

    Figura 24 - Contedo do arquivo cliente-status.log

    3.2.10 Testes de Conexo

    Depois de ter iniciado a VPN no servidor e no cliente, foi testada a conexo utilizando o comando ping no IP criado pela interface virtual no cliente (10.0.0.2), a partir do servidor (Figura 25):

  • 46

    Figura 25 - Teste de conexo com o cliente

    Mas tambm, foi testada a conexo pingando o IP criado pela interface virtual do servidor (10.0.0.1), a partir do cliente (Figura 26):

    Figura 26 - Teste de conexo com o servidor

  • 47

    3.2.11 Acesso ao Servidor

    Para fazer acesso ao servidor, utilizou-se do protocolo SSH. Na Figura 27, tm-se os comandos necessrios para acessar o servidor a partir do cliente:

    Figura 27 - Acesso ao servidor

    Observa-se que no comando ssh [email protected], foi utilizado o IP virtual do

    servidor, uma vez que se quer fazer uso do tunelamento criado pela VPN para comunicao segura dos dados acessados.

    3.3 CONFIGURAO DO SERVIDOR DE STREAMING DE VDEO

    3.3.1 Cenrio de Configurao

    Foi utilizada a ferramenta VLC na verso 1.1.4 para a transmisso de streaming de vdeo entre o servidor e o cliente configurados durante o desenvolvimento da VPN. Esta

  • 48

    ferramenta foi escolhida, uma vez que possui suporte aos principais protocolos de streaming, que podero ser utilizados para a transmisso de um vdeo atravs da rede, tendo flexibilidade e facilidade para trabalhar tanto como host servidor como host cliente. Alm disso, tem-se uma gama grande de Codecs e formatos de udio e vdeo suportados, tanto proprietrios como abertos. Basicamente, a transmisso de vdeo ser feita entre os IPs virtuais de tunelamento criados durante a configurao da VPN, tanto na mquina servidor (IP 10.0.0.1) como na mquina cliente (IP 10.0.0.2), garantindo assim a segurana do vdeo a ser transmitido atravs de criptografia simtrica de chave esttica. Neste caso, o usurio que estiver no lado servidor selecionar um vdeo a ser transmitido para o usurio cliente, atravs do tunelamento formado pela VPN. Portanto, pode-se considerar que este tipo de transmisso est bem prximo de uma aplicao de streaming de vdeo ao vivo, j que no o cliente que comea a fazer a primeira interao, e sim o servidor que primeiramente comear a transmitir o vdeo com destino ao cliente. O processo pode ser observado na Figura 28.

    Figura 28 - Integrao de VPN com Streaming de vdeo

    3.3.2 Instalao do VLC

    Teve-se que fazer a instalao do VLC nas duas mquinas (servidor e cliente). Desta forma, foi utilizado o comando apt-get, principal instalador de pacotes do Ubuntu, tal como

    segue:

  • 49

    apt-get install vlc

    3.3.3 Configurao Manual de Streaming de Vdeo no Servidor

    Para fazer a configurao manual de Streaming de Vdeo no Servidor, ser utilizada a interface grfica do VLC, simplificando o processo de configurao. Desta forma, com o VLC aberto deve-se clicar no menu Mdia e depois escolher a opo Fluxo, como identificado na Figura 29.

    Figura 29 - Configurao Grfica do VLC

    Agora, deve-se selecionar o arquivo de vdeo a ser transmitido. Ento, deve-se clicar no boto Adicionar (Figura 30)