Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceitos-De-Rede-Virtual-Privada-Para-Streaming-Seguro-De-Video - Monografia PDF
Conceitos-De-Rede-Virtual-Privada-Para-Streaming-Seguro-De-Video - Monografia PDF
Itatiba
2010
ii
Itatiba
2010
iii
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.
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
xi
LISTA DE SIGLAS
AVI
DVD
FLAC
IP
Internet Protocol
IPX
JPEG
LAN
MP3
MPEG
OGM
PCM
QoS
Quality Of Service
SSH
Secure Shell
TCP
UDP
VCD
VCR
VLC
VideoLAN Client
VLS
VideoLAN Server
WAV
xii
LISTA DE FIGURAS
xiii
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. 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
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 Unixlike, 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.
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 malintencionadas 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:
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:
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
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.
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).
Secure Hash Algorithm 2 (SHA-2), que retorna um resumo que pode ter 256, 384 e
512 bits.
10
Emissor
Receptor
Canal Inseguro
Chave
Chave
Secreta
Pblica
Emissor
Emissor
Cifrar
Decifrar
Canal Inseguro
11
Chave pblica;
Nmero de srie.
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.
12
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
14
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):
15
Decriptografia dos dados: Realiza a descriptografia dos pacotes finais, de forma que
o torne legvel para a outra extremidade do tnel.
16
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
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
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;
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
20
21
22
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.
23
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);
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
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.
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);
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 clienteservidor, 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:
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
29
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
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, temse 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.
32
seu
uso
mais
aconselhvel,
segundo
prprio
site
da
VideoLAN
(http://www.videolan.org/vlc/streaming.html)
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.
35
Computador Cliente
Sistema Operacional Ubuntu 10.04
IP Local: 192.168.0.100
IP Virtual VPN: 10.0.0.2
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
Desta forma, gerou-se uma chave esttica de criptografia, com o nome de chave.key,
com o contedo da Figura 17.
37
38
Primeiramente deve-se acessar o diretrio para onde ser copiada a chave esttica (cd
/etc/openvpn)
conectar
ao
servidor
atravs
do
protocolo
SFTP
(sftp
39
40
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
42
43
44
45
46
47
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.
49
Agora, deve-se selecionar o arquivo de vdeo a ser transmitido. Ento, deve-se clicar
no boto Adicionar (Figura 30) e depois escolher o vdeo e clicar no boto Abrir (Figura
31). No nosso caso, o arquivo a ser transmitido tem o nome video e do formado AVI,
possuindo um tamanho de 458,8 MB. O mesmo est localizado no seguinte diretrio:
/home/Felipe/Desktop.
50
Aps ter selecionado o arquivo, volta-se para a janela anterior, o qual se deve clicar no
boto Fluxo, para comear o procedimento de configurao de streaming (Figura 32).
51
52
Feito isto, define-se o nmero da porta como 1194, que a porta padro da VPN criada
pelo OpenVPN, garantindo a sada de transmisso pela porta da VPN. No campo Caminho,
define-se o nome do fluxo de streaming a ser gerado como /servidor, no formato de um
diretrio. Nesta mesma tela, habilita-se a opo de transcodificao e clica-se no cone
identificado com um crculo vermelho, como mostra a Figura 35.
53
54
Figura 36 - Encapsulamento
Na aba Codec de vdeo, seleciona-se o tipo de Codec de vdeo de acordo com o tipo
de encapsulamento escolhido. Ento, marca-se a opo Vdeo e seleciona-se o Codec
MPEG-4, que um dos Codecs de vdeo suportados pelo encapsulamento MPEG-TS, sendo
utilizado na compresso de dados digitais de vdeo transportados pela Internet (Figura 37).
55
56
Finalmente na ltima janela, verifica-se que foi gerada uma linha de sada de fluxo,
que ser til na criao de um Script para que o processo seja automatizado. No entanto, nesta
sesso apenas ser realizada a configurao manual, logo, deve-se clicar no boto Fluxo,
afim de que o vdeo seja transmitido, como identificado na Figura 40.
57
58
vlc rtsp://10.0.0.1:1194/servidor
Neste comando existem os seguintes campos:
1194: Porta por onde est saindo o fluxo gerado pelo servidor;
Depois de ter executado o comando acima, ser aberta uma janela do VLC, onde ser
reproduzido o vdeo que foi transmitido pelo servidor. Pode-se observar o acesso, identificado
na Figura 42.
59
60
61
#sdp = protocolo utilizado para criao de uma sesso de fluxo de dados com o nome
"servidor";
#10.0.0.1 = IP Virtual da VPN do lado Servidor, no qual ter a sada do fluxo de dados,
pois se quer a transmisso dentro da VPN. Este campo foi adicionado ao fluxo gerado para
forar a sada dos dados apenas pelo tunelamento.
#1194 = porta padro do OpenVPN, no qual ter a sada dos dados, pois se quer a
transmisso dentro da VPN.
No lado cliente tambm foi criado um Script, na qual automatiza o processo de acesso
ao vdeo transmitido pelo servidor dentro do tunelamento criado pela VPN. Abaixo, verificase o contedo do Script como o nome de streaming-cliente, onde os comentrios esto
identificados com #, exceto a primeira linha que indica para o sistema que ser o Shell que
ir interpretar os comandos:
#!/bin/bash
#Script para inicializao automtica de streaming de vdeo no cliente.
#Comando para acessar o vdeo transmitido pelo servidor
vlc rtsp://10.0.0.1:1194/servidor
Tanto o Script do servidor como o Script do cliente foram copiados para o diretrio
/usr/bin de sua respectiva mquina, para que o Script tenha capacidade de ser executado de
qualquer lugar do sistema. Ento, quando for digitado streaming-servidor ou streamingcliente no Shell do Linux, este ir interpret-lo como um comando e comear a ser
executado.
62
Atraso: o tempo que um determinado pacote leva para sair de um host emissor at um
host receptor;
primeiros pacotes do vdeo transmitido e calculado a atraso, Jitter e largura de banda ocupada,
e feito a mdia dos valores para cada mtrica, chegando a um valor final. Logo, consegue-se
ter uma estimativa aproximada. Deve-se lembrar que os vdeos transmitidos para as duas
aplicaes no possuem o mesmo tamanho e que a transmisso de Streaming de vdeo com
VPN foi feita em computadores de uma mesma rede local.
63
4. RESULTADOS E DISCUSSES
Com as mtricas de desempenho testadas na sesso 3.4, foi possvel montar as tabelas
2 e 3 que mostram as mtricas de desempenho calculadas atravs do Wireshark, para os dois
tipos de aplicao.
Atravs destas tabelas, pode-se observar que existe uma variao entre os valores de
atraso e Jitter das duas aplicaes. A aplicao deste projeto apresentou atraso e Jitter
maiores do que a aplicao do Youtube, pois alm do vdeo ser transmitido via streaming,
todos os dados esto sendo criptografados quando o mesmo transmitido dentro do
tunelamento da VPN, levando a uma maior sobrecarga de processamento. Assim, diferente
do Youtube, no qual os dados no esto sendo criptografados, levando a um atraso e um Jitter
um pouco menor.
A largura de banda menor na aplicao deste projeto, visto que a mesma est sendo
testada apenas em rede local, onde o consumo de banda e sobrecarga de aplicaes rodando
menor, se comparada aplicao do Youtube.
Portanto, a aplicao de Streaming com VPN se mostrou eficiente nos testes
realizados, tendo um bom desempenho em relao s mtricas analisadas, levando em conta a
questo de criptografia dos dados transmitidos.
64
Atraso (ms.)
0
6, 925
6, 949
6, 961
6, 949
2, 407
8, 015
10, 429
10, 431
10, 422
69, 488
6, 9488
Jitter (ms.)
6, 925
0, 012
4, 542
2,414
0, 009
4, 8
0, 96
Atraso (ms.)
0
0, 304
2, 236
2, 576
2, 102
2, 437
2,6
2, 941
2, 009
2, 436
19, 641
1, 9641
Jitter (ms.)
0, 304
0,34
0, 335
0, 341
0, 427
1, 747
0, 3494
65
5. CONCLUSES
A pesquisa deste trabalho foi importante para analisar diversas tcnicas de segurana
que foram teis para a configurao da VPN. Houve uma anlise dos principais conceitos de
VPN, analisando suas principais caractersticas, tecnologias, aplicaes, dentre outros
aspectos. Alm de um estudo sobre os principais conceitos de streaming de vdeo.
Neste contexto, foi possvel configurar uma VPN para a transmisso de streaming de
vdeo entre uma mquina servidora e uma mquina cliente, atravs de softwares livres, o que
demonstrou rapidez e eficincia nos testes realizados em rede local, apesar do atraso na
transmisso de pacotes, quando comparado com a aplicao de streaming de vdeo do
Youtube.
Alm disso, o sistema operacional Ubuntu em conjunto com esses softwares atendeu
as necessidades esperadas para o desenvolvimento do projeto. Portanto, este tipo de aplicao
pode, futuramente, tornar-se til em nvel corporativo, para uma empresa matriz que queira
transmitir um vdeo sigiloso de uma reunio em direo a sua empresa filial, levando a uma
integrao de mtodos de segurana em VPN e streaming de vdeo, atravs de uma soluo
barata e eficiente.
66
6. REFERNCIAS BIBLIOGRFICAS
3WAY.
Virtual
Networks.
Private
Networks
VPN.
Disponvel
em:
Miguel
Angel.
que
Streaming.
Disponvel
em:
CATALIN.
and
Multicast
streaming.
Disponvel
em:
L.
K.
Rede
Privada
Virtual.
Disponvel
em:
67
GTA. Grupo de Teleinformtica e Automao. SSL: Secure Socket Layer. Disponvel em:
<http://www.gta.ufrj.br/grad/00_2/ssl/ssl.htm>. Acesso em: 10 de mai. de 2010.
GUILHERME, Joel. Criptografia, Chaves Pblicas e Assinatura Digital para Leigos.
Disponvel em: <http://www.sbis.org.br/Criptografia.doc>. Acesso em: 8 de out. de 2010.
HOWTO.
Disponvel
em:
<http://www.openvpn.net/index.
php/open-
Disponvel
em:
<http://www.vivaolinux.com.br/artigo/Configuracao-de-um-
Jacques.
Estrutura
de
dados
Arquivos.
Disponvel
em:
68
SOUSA,
R.;
PUTTINI,
PR.
S.
Protocolo
SSL
3.0.
Disponvel
em:
UA
Server
RTSP
Communication.
Disponvel
em:
<http://www.w3.org/2008/WebVideo/Fragments/wiki/UA_Server_RTSP_Communication>.
Acesso em: 2 de mai. de 2010.