Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo: Este artigo busca avaliar a desempenho de ligações VoIP com utilização de criptografia
nos protocolos SIP e RTP. Segurança e privacidade são uma constante preocupação, com o passar
do tempo novas tecnologias surgem onde hardware e software recebem melhorias com isso é
possível obter melhor qualidade de voz e segurança com baixo consumo de recursos de
hardware.Durante a análise será observado à qualidade de voz e comparado o hardware exigido
durante ligações normais e criptografadas.
Palavras-chave: VoIP; Asterisk; TLS; SRTP; Criptografia.
1. INTRODUÇÃO
As centrais telefônicas de arquitetura fechada não tiveram grandes avanços. As centrais
telefônicas convencionais podem ter suas chamadas interceptadas, ouvidas e gravadas sem
necessidade que o atacante tenha um conhecimento avançado para fazê-lo, este tipo de ataque pode
ser feito dentro de sua própria estrutura ou nos postes e armários existentes na rua por onde passam
os fios que interligam clientes com operadoras de telefonia, sem que as vítimas de escutas
telefônicas fiquem sabendo desta intrusão.
Ligações VoIP também podem ser vitima de interceptação, porem é necessário um
conhecimento avançado de redes, invadindo servidores que geralmente possuem mecanismos de
segurança que impedem este tipo de ataque e geram alertas aos administradores ou acesso direto a
rede física local.
Como muitas empresas de grande porte possuem suas filiais espalhadas pelo mundo o
melhor custo beneficio de manter a comunicação interligada é a utilização do VoIP, permitindo a
ligação entre unidades de maneira simplificada e sem gerar custos.Muitas destas empresas devem
seu sucesso ao seu segredo que deve ser mantido apenas dentro das empresas e controlado por
poucos e é uma preocupação tratar qualquer assunto por telefone, pela fragilidade existente na
telefonia.
A implantação de mecanismos de segurança para dados de voz pode ser considerada um
desafio, manter a qualidade de voz e garantir a confiabilidade dos pacotes através de criptografia vai
precisar de um bom casamento entre hardware com bom processamento da informação e um
software capaz de proporcionar um método de criptografia eficiente.
Para este artigo será realizado uma analise de desempenho utilizando os protocolos TLS e
SRTP que fornecem criptografia no SIP e RTP. O TLS e SRTP são nativos do Asterisk não sendo
necessários softwares adicionais, outra vantagem é que a utilização dos protocolos em conjunto
fornece uma segurança ponta a ponta onde à criptografia ocorre durante todo o percurso, utilizando
clientes que suportem estes protocolos será possível fazer um comparativo de desempenho entre
ligações criptografadas e não criptografadas.
2. CONTEXTUALIZAÇÃO
2
com tecnologia embarcada necessária para se comunicar com servidores VoIP e já disponibilizam
interface para conexão a rede e Softphones, programas disponíveis para computadores, smartphones
e tablets, independente do dispositivo utilizado, todos podem se comunicar entre eles.
A qualidade da ligação esta ligada a dois fatores, um ligado ao meio de transmissão e outro a
tradução entre codecs. O VoIPcomumente é utilizado sobre UDP e RTP.
O UDP(UserDatagramProtocol) é o protocolo irmão do TCP
(TransmissionControlProtocol). A diferença básica entre os dois é que o TCP é um protocolo
orientado à conexão, que inclui vários mecanismos para iniciar e encerrar a conexão, negociar
tamanhos de pacotes e permitir a retransmissão de pacotes corrompidos.No UDP não existe
checagem de nada, nem confirmação alguma. Os dados são transmitidos apenas uma vez, incluindo
apenas um frágil sistema de CRC. Os pacotes que cheguem corrompidos são simplesmente
descartados, sem que o emissor sequer saiba do problema (Carlos E. Morimoto, 2005).
O RTP(Real-time TransportProtocol) determina um formato de pacote padrãopara o
transporte de rede adequado para aplicações de transmissão de dados em tempo real fim-a-fim como
áudio, vídeo e dados pela Internet. O RTP não aborda reserva de recursos e não garante a qualidade
de serviço para serviços em tempo real (RFC1889, 1996).
Caso uma rede esteja congestionada alguns pacotes podem ser perdidos, apesar de existirem
algoritmos de compensação e correção, a ligação pode apresentar picotes e falhas. Onde o hardware
não tenha sido bem dimensionado ou o número de traduções entre codecs diferentes seja muito
grande pode gerar uma sobrecarga no processador e as ligações podem acabar gerando atraso
(delay) deixando as ligaçõesconfusas e cansativas.
3
Transport Layer Security (TLS) prove criptografia para sinalização de chamada. É um meio
pratico de prevenir que intermediários modifiquem tenham acesso ou falsifiquem os pacotes de voz
que estão sendo transmitidos (RFC 2246, 1999).
IP Security (IPSec) fornece criptografia no nível de rede para proteger um canal de
comunicação entre dois sistemas finais diretamente conectados ou entre dois sistemas
intermediários. O IPSec funciona autenticando e criptografando os pacotes IP e precisa de um
protocolo adicional para troca de chaves (RFC 6071, 2011).
Secure Real-time Transport Protocol (SRTP) e o Real-time Control Protocol (SRTCP)
oferecem integridade, autenticidade e proteção contra replays (retransmissão fraudulenta) dos
pacotes RTP e RTCP prevenindo ataques como escuta do RTP, manipulações do SSRC,
manipulações do CODEC e inserções RTCP (RFC 3711, 2004).
Network Asserted Identity é um mecanismo bastante específico para a troca de identidade
entre elementos de rede que já possuam relacionamento confiável utilizando algum outro
mecanismo ou política de segurança inicialmente obtido por um SIP (RFC 3324, 2002).
Authenticated Identity Body (AIB) é um mecanismo que utiliza corpos de mensagens e
certificados S/MIME para assinar parte do cabeçalho das mensagens de forma a autenticar o user
agent, dessa forma evitando ataques do tipo spoofing (RFC 3893, 2004).
Identity Header Field é outro mecanismo que também permite assinar parte dos cabeçalhos
da mensagem. A diferença é que este mecanismo utiliza cabeçalhos padrão específicos para a
assinatura e para o acesso ao certificado, o que resolve alguns dos problemas associados à utilização
do padrão S/MIME (RFC 3325, 2002).
Mesmo com esta grande variedade de mecanismos de segurança, cada um deles apresentam
uma fraqueza, sendo deixando pontos desprotegidos ou expostos, alguns apresentando
incompatibilidade quando a rede possui NAT (Network Address Translation), outros precisam de
uma rede composta de equipamentos que suportem o encaminhamento de sinalização entre outros
problemas conhecidos.
Considerando a documentação existente, trabalhos já publicados e necessidade de segurança
ponto a ponto foramescolhidos o TLS e SRTP estes protocolos trabalham nas camadas de aplicação
e transporte, sendo suportados pelo servidor e clientes e não possuem a necessidade de aplicação de
segurança na camada de rede, podendo os pacotes de voz ser transmitidos tanto na rede local quanto
na rede publica sem preocupações.
4
2.2.1. O Protocolo TLS
Os objetivos deste protocolo são a segurança por meio de criptografia, a interoperabilidade, a
extensibilidade e a eficiência (RFC 2246, 1999).Ele é capaz de estabelecer uma conexão segura
entre as duas pontas e garantir que os dois aplicativos consigam se comunicar e trocar parâmetros
independente da forma que foram construídos. Ele é capaz de abarcar futuras extensões, diminuindo
a necessidade de se criar um novo protocolo e uma nova biblioteca de segurança. Estes últimos dois
pontos são muito importantes, já que a criação de um protocolo ou de métodos de segurança podem
trazer novas falhas.
A eficiência do protocolo vem do número reduzido de conexões necessárias, uma vez que é
utilizado cache para guardar certas informações, poupando também tempo de processamento.
O TLS prove essencialmente três serviços criptografia, autenticação e integridade de dados.
A criptografia ofusca os dados, autenticação provê um mecanismo para verificar a identidade dos
membros do grupo e a integridade prove um mecanismo que detecta se a mensagem sofreu alguma
alteração.
O TLS pode ser unilateral ou bilateral, sendo quando apenas um dos lados é autenticado e o
outro permanece anônimo ou os dois lados cliente e servidor possuem um certificado de
autenticidade.
Ao estabelecer uma conexão TLS, cliente e servidor trocam chaves, desta forma ambos os
lados sabem como criptografar ou descriptografar as mensagens. Podem ser usadas chaves
simétricas ou chaves assimétricas no processo de autenticação dos participantes.
O protocolo TLS se situa entre as camadas de aplicação e transporte. Ele encapsula os
protocolos de aplicação como o HTTP (Hypertext Transfer Protocol) e o FTP (File Transfer
Protocol) e trabalha em cima de um protocolo de transporte como o TCP (Transmission Control
Protocol) e UDP (User Datagram Protocol). Para que a transmissão seja confiável, deve ser
utilizado o protocolo TCP uma vez que o UDP esta sujeito a perdas por não garantir a entrega dos
pacotes.
O protocolo TLS é composto também de duas camadas, formadas por dois tipos de
protocolos: os protocolos de Handshaking e o protocolo de registro (RFC 2246, 1999).
5
Handshake Protocol ChangeCipcherSpec Alert Protocol
Application Protocol
Protocol
Record Protocol
Figura 2 - Protocolo TLS e seus subprotocolos.
Latência –atraso na entrega dos pacotes irá causar eco nas ligações.
Jitter – variações no atraso da entrega dos pacotes.
Pacotes perdidos – muito trafego na rede pode causar a perda e o descarte de pacotes.
É quase impossível ter uma conversação quando existem grandes atrasos, durante a conversa
um acaba interrompendo o outro. Jitter causa sons e ruídos estranhos durante a ligação, mas que
podem ser corrigidos dependendo da tolerância de cada codec utilizado.
Perda de pacotes causa interrupções durante a ligação e esta perda de pacotes pode acabar
passando despercebido dependendo da quantidade de pacotes perdidos. Porem, se uma grande
quantidade for perdida haverá cortes na ligação.
6
3. DESENVOLVIMENTO
Para este artigo foi utilizado o Sistema Operacional Debian 7.8 e para servidor VoIP o
Asterisk 11, apesar de existir versões mais atuais tanto do Sistema Operacional quanto do Asterisk,
estes foram escolhidos por serem versões maduras e estáveis.
Os protocolos de segurança escolhidos foram o TLS e SRTP, pois são suportados
nativamente pelo Debian e Asterisk, sem a necessidade de adição de softwares de terceiros ou
suporte de hardware para que estes funcionem.
Tanto o TLS quando o SRTP podem ser utilizados separadamente para prover segurança nas
ligações, porem se utilizados separadamente cada umcorre um risco diferente devido as suas
vulnerabilidades conforme será demonstrado nas sessões3.5.1 e 3.5.2.
O SIP pode funcionar sobre três tipos de protocolo de transporte UDP por padrão, TCP ou
TLS que é a melhor opção. O protocolo UDP a pesar de um protocolo leve e rápido, ele não requer
handshake nem garante a entrega dos pacotes. O TLS possui todas as virtudes do TCP porem ele
possui criptografia.
A utilização do TLS permite que a sinalização fique segura, ninguém fica sabendo para que
número foidiscado, mas o áudio/vídeo não possui segurança, desta forma qualquer um pode
interceptar os pacotes RTP através da rede.
O SRTP é responsável apenas por criptografar o RTP, porem o RTP continuará sendo
transportado através do UDP, mas ambos os lados terão trocado chaves no SIP para habilitar a
criptografia. É possível utilizar SRTP independente do transporte usado no SIP, pois eles são
independente.
Apesar de existir segurança no SRTP, ele pode ser considerado uma segurança fraca já que
as chaves trocadas são trocadas em texto puro, qualquer um que estiver interceptando os pacotes
SIP terá a chave para descriptografar o SRTP. Portanto o SRTP realmente deve ser utilizado em
conjunto com o TLS.
Ativar o TLS e SRTP no Asterisk é relativamente simples, abaixo estarei exibindo os
comandos executados para a instalação e explicando qual a utilidade de cada um deles, deixando o
servidor pronto para os testes. Todos os comandos foram executados como super usuário.
7
pacotes de mídia são trocados diretamente entre origem e destino desta
esta maneira o processamento
processam e
a rede do Servidor Asterisk são
ão poupados.
Quando directmedia estiver como yes, o seu padrão,, o Asterisk só irá fazer o intermédio
caso os as pontas estejam utilizando codecs diferentes sendo necessária a conversão de um codec
para o outro, no caso do SRTP mesmo que ambos estejam utilizando os mesmos codecs a mídia
passará pelo Asterisk, pois ele que fará a criptografia dos pacotes para ambos os lados.
8
Figura 5 - SoftphonePhonerLite em uma ligação criptografada.
O mesmo pode ser observado no Blink, durante uma ligação o cadeado em azul representa a
criptografia do TLS e o cadeado em cinza a criptografia do SRTP, a imagem dos cadeados só irão
aparecer caso os protocolos estejam ativados.
9
3.3. Métricas utilizadas
Para os testes foram utilizados três servid
servidores
ores com Linux/Asterisk e dois desktops com
softphone, visando ter um real parâmetro de comparação foi definido que todo o trafego deveria
passar pelo servidor VoIP, somente desta maneira seria possível capturar os pacotes RTP para as
chamadas sem criptografia,
afia, assim podendo criar um referencialentre chamadas criptografadas e não
criptografadas.
Como todo o trafego de dados passará pelo servidor VoIP também é possível fazer uma
medida precisa para comparar como cada protocolo se comporta e o quanto ele irá exigir do
processamento e rede do servidor.Para os testes foram criados dois cenários, um onde são utilizados
dois desktops e cada um com um softph
softphone conforme que se conecta ao servidor Ateriskpodendo
gerar apenas uma chamada por vez conforme descrito na Figura 3.
O outro cenário utiliza três servidores Asterisk, duas plataformas Asterisk atuando como
ramais (5000 e 5001) e um como servidor VoIP conforme Figura 7,desta
,desta forma é possível gerar
várias chamadas simultâneas assim criando um cenário mais próximo da realidade de uma central
telefônica VoIP.
10
protocolos utilizados, pacotes perdidos, jitter, latência, atraso, ordem dos pacotes e até mesmo
reproduzir o áudio da ligação se necessário.
8
Processamento (%)
6
4
Softphone (4000-4001)
2
Asterisk (5000-5001)
0
1 10 40
Tempo em segundos
8
Processamento (%)
6
4
Softphone (4000-4001)
2
Asterisk (5000-5001)
0
1 10 40
Tempo em segundos
11
22,5
22
KB/s
21 TLS+SRTP
20,5
4000
4000-4001 Asterisk (5000-5001)
3.5. Criptografia
3.5.1. Risco de utilizar apenas TLS
Para demostrar a vulnerabilidade de uma chamada utilizando apenas TLS foram capturados
pacotes durante uma chamada. Ao analisar é possível identificar que existe a sinalização através do
TLS, desta maneira não é possível identificar os ramais de origem e ddestino,
estino, porem a mídia fica
exposta podendo ser reproduzida sem muita dificuldade.
Quando utilizado TLS o WireShark não consegue identificar os pacotes RTP, isso ocorre
porque por padrão o WireShark interpreta apenas SIP na porta 5060 e o TLS utiliza 5061. Para
corrigir isto basta identificar onde ocorre o primeiro HandShake e procurar pela sequencia de
pacotes UDP, selecionado o frame 132 ((Figura 8)) foi utilizado a sequencia de menus, Analyze,
Decode As..., na aba transporte
porte foi selecionado RTP e aplicado, feito isso foi possível ver o trafego
RTP (Figura 9) e reproduzir o áudio da ligação (Figura 10). Outra maneira de fazer isso é indo até
Edit, Preferencias, Protocols, RTP e marcar a opção, Trytodecode RTP outsideofconversations.
12
Figura 9 – Pacotes RTP decodificados.
Como pode ser observado na ((Figura 13)) ao tentar reproduzir o RTP é possível ver que não
existe uma onda de áudio convencional, ao tentar reproduzir só será ouvido chiado.
13
Figura 13 - Mídia RTP criptografada.
Para encontrar a chave da chamada de destino basta expandir a parte SDP da mensagem 200
OK, que neste caso é o frame de nume
numero 115. Abaixo (Figura 15) podemos ver que a
AES_CM_128_HMAC_SHA1_80 é a ferramenta de criptografia usada e a chave pode ser vista em
texto puro com o valor de “jceipaLR+P5MgUFU9wQXvX8qwWp7D7I10OsODVND
jceipaLR+P5MgUFU9wQXvX8qwWp7D7I10OsODVND Após usar a
jceipaLR+P5MgUFU9wQXvX8qwWp7D7I10OsODVND”.
chave para quebrar a criptografia é possível ouvir o áudio sem problemas (Figura
Figura 16).
14
Figura 16 – Mídia RTP após criptografia ser quebrada.
70
60
50
40
30
20
10
0
1 2 3 4 5 10 20 30 40 50 90
G.729 2 6 11 12 12 10 14 20 25 32 53
G.729 (TLS+SRTP) 3 8 13 15 14 11 18 25 34 44 74
G.711 3 7 12 12 13 9 15 20 25 34 52
G.711 (TLS+SRTP) 3 8 13 16 17 11 19 26 34 45 80
Chamadas Simultâneas.
Gráfico 4 - Process
Processamento
amento médio conforme número de chamadas simultâneas.
15
2500
2000
1500
KB/s
1000
500
0
1 2 3 4 5 10 20 30 40 50 90
G.729 7 11 22 29 36 73 142 218 287 360 654
G.729 (TLS+SRTP) 8 16 25 33 41 82 165 244 328 413 743
G.711 21 42 62 83 104 209 418 628 822 1047 1861
G.711 (TLS+SRTP) 22 44 65 88 109 219 438 657 875 1095 1968
Chamadas Simultâneas.
Com base nos dados coletados é possível criar gráficos e comparar a utilização do
processamento e trafego da rede quando utilizadosdiferentes codecs e protocolos.O codec G.729 é o
mais recomendado seus algoritmos permite a compressão de voz sem perder qualidade utilizando
baixa quantidade de banda além corrigir os pacotes se necessário e tem uma maior tolerância perda
de pacotes e atraso.
Foi selecionado o codec G.729 para avaliar a qualidade das ligações perante odesempenho
devido à imprecisão da informação gerada pelo G.711, o fator que causou essa imprecisão foi o uso
de um switch domestico durante os testes, que nos momentos de grande volume detroca de dados
acaba atrasando a entrega dos pacotes, prejudicando parte do estudo.
Para determinar a qualidade de uma ligação, não podemos apenas nos basear no que
ouvimos, deve ser considerada a perda de pacotes, falha na sequencia e jitter, todas essas
informações podem ser obtidas analisando os pacotes pelo WireShark, mesmo que o RTP esteja
criptografado a ferramenta fornece essas informações.
A chamada pode ser considerada de qualidade quando o Max Delta esta abaixo de 50 ms e
inaceitável quando acima de 150 ms, MeanJitter acima de 20 ms também é inaceitável, grande
perda de pacotes (Lost RTP packets) ira degradar a chamada. Para o estudo iremos observar apenas
o Max Delta, pois em nenhum dos testes utilizando G.729 a perda chegou a 1% e o MeanJitter
sempre se manteve abaixo de 1 ms.
16
90
80
70
60
milisegundos
50
40
30
20
10
0
1 2 3 4 5 10 20 30 40 50 90
Variação 1 20 3 2 3 1 18 2 23 19 42
Max Delta 41 23 41 41 40 41 24 40 22 40 40
Chamadas Simultâneas.
140
120
100
milisegundos
80
60
40
20
0
1 2 3 4 5 10 20 30 40 50 90
Variação 3 2 2 22 12 19 17 16 4 12 85
Max Delta 40 41 41 40 40 40 41 40 40 40 40
Chamadas Simultâneas.
17
Figura 17– Trecho de transmisões RTP.
4. CONCLUSÕES
Este artigo buscou expor as brechas de segurança, entender os mecanismos de segurança e
avaliar o desempenho do TLS em conjunto com o SRTP que oferecem segurança na sinalização e
no transporte dos dados de mídia.
Para chegar aos resultados obtidos foram executadas 18408 chamadas e com isso pode
pode-se
afirmar que a utilização do TLS e SRTP fornece uma segurança completa, ofuscando identificações,
ocultando chaves e tornando a mídia impossível de ser reproduzida sem a posse das chaves
chaves.
Foi possível notar um acréscimo no consumo do processamento e rede conforme o
aumentado o número de chamadas simultâneas, mesmo aumentando o numero de chamadas
simultâneas a qualidade das ligações foram mantidas até que se criasse um gargalo na rede devido
ao switch utilizado.
Este artigo visou à criptografia de chamadas para ambientes corporativos onde a espionagem
industrial é uma realidade e uma preocupação independente do tipo de tecnologia utilizada para
fazer ligações. Pode-se
se afirmar que em um ambi
ambiente
ente de telefonia VoIP o uso do TLS com SRTP
tornarão a chamada segura e irá desestimular este meio como fonte de espionagem devido à
dificuldade de quebrar esta criptografia.
Ainda que o processamento de uma chamada de criptografia TLS com SRTP seja acima do
normal ela é altamente recomendada para os casos onde é desejável manter a privacidade de uma
chamada, é possível manter um ambiente misto de chamadas com e sem criptografia, mantendo
assim um equilíbrio sem a necessidade de investir pesadamente em har
hardware para manter a
segurança.
REFERÊNCIAS BIBLIOGRÁFICAS
ENDLER, David de: COLLIER Mark. Hacking Exposed VoIP: Voice Over IP SecuritySecrets &
Solutions.. McGrawHill/Osborne, 2007
18
MEGGELEN, Jim Van de: SMITH,Jared de: MADSEN, Leif. Asterisk O Futuro daTelefonia.
USA: Alta BooksLtda, 2005.
GUEDES, Anderson Danilo Costa de: LAPA, Igor Raphael dos Passos de: MEIRELES,Matheus
Barreto Vianna. IESAM - Instituto De Estudos Superiores da Amazônia.
FERREIRA, Rogério da Cunha. Abordagens para escuta legal nas redes de Voz sobre
IP.Universidade Federal Fluminence, Niterói, 2008.
PASSITO, Alexandre de: MOTA, Edjair de: QUEIROZ, Saulo de: BEZERRA, Eduardo
de:GALVÃO, Leandro. Análise de desempenho de tráfego VoIP utilizando o Protocolo IP Security,
Universidade Federal do Amazonas. 2014.
19
IETF. The TLS Protocol. (1999).https://tools.ietf.org/html/rfc2246. [Online; acesso em 29 junho.
2015].
IETF. IP Security (IPsec) and Internet Key Exchange (IKE) DocumentRoadmap. (2011).
https://tools.ietf.org/html/rfc6071. [Online; acesso em 29 junho. 2015].
top - Display Linux tasks. (2002). http://www.unixtop.org. [Online; acessoem 25 agosto. 2015].
20