Canal seguro de comunicação VoIP na plataforma Android

May 25, 2017 | Autor: André Lehmann | Categoria: Mobile Computing, Criptografia
Share Embed


Descrição do Produto

Canal seguro de comunicação VoIP na plataforma Android André Luiz Lehmann Departamento de Sistema e Computação FURB Blumenau – Santa Catarina - Brazil [email protected]





Resumo— Desenvolvimento de biblioteca que realiza a comunicação segura de dados de voz sobre IP (VoIP) de ponta-a-ponta, com a utilização do algoritmo de Diffie-Hellman para a troca das chaves criptográficas, fazendo uso de curvas elípticas para o cálculo das chaves.

qualquer característica dos participantes. O algoritmo de Diffie-Hellman se baseia na intratabilidade do problema de Logaritmo Discreto (Fig. 2).

Palavras-chave—​VoIP, Curvas Elípticas, ZRTP, Diffie-Hellman

Fig. 2 Representação do problema do Logaritmo Discreto utilizado em Diffie-Hellman

I. INTRODUÇÃO

O problema de Logaritmo Discreto diz que mesmo em posse dos​ valores ​ de ​Ya, a e de ​p, é computacionalmente inviável a descoberta ​ do valor ​Xa. Com base nessas premissas, Diffie e Hellman criaram um algoritmo que permite a troca dos valores comuns a todos os participantes da criptografia, sem que intruso algum possa decifrar o conteúdo trafegado sem o conhecimento ​ do valor do ​a definido por cada lado. Assim que haja conhecimento das variáveis comuns do problema de Logaritmo Discreto, cada participante define um valor para ​a, que será a sua chave-privada na comunicação. Com esse valor, o participante calcula a sua chave-pública, ao aplicar os valores a formula do Logaritmo Discreto. De posse da sua chave-privada e da chave-pública do outro participante, ambos poderão calcular um fator comum, dado pela formula na Fig. 3:

Comunicação VoIP já é uma realidade para muitas empresas e pessoas. O baixo custo, aliado ao aumento da disponibilidade e a confiança de funcionamento, fazem-na uma ótima escolha, ainda mais ​ no ambiente ​mobile. Mas existem informações que são sensíveis demais para transitarem livremente pela internet. É querendo dar confidencialidade a estas informações que o trabalho a seguir é desenvolvido: criptografar o conteúdo, através do algoritmo ​ AES, com a troca das chaves criptográficas ocorrendo sobre Diffie-Hellman sobre Curvas Elípticas. II.

CURVAS ELÍPTICAS

Como dito em [1], curvas elípticas têm aplicações em diversas áreas, desde geometria diferencial e teoria dos números, alcançando até a criptografia. Uma curva elíptica é definida, obedecendo alguns critérios, como uma curva algébrica não-singular de gênero um (com um ponto racional). A sua representação genérica pode ser dada conforme a Fig. 1.

​ Fig. 1 Representação genérica de uma curva elíptica sobre o plano

A aparente simplicidade da sua representação no plano escondem a complexidade das suas operações. Como exposto em [2], a soma de 2 pontos quaisquer que estejam sobre a curva , sempre resultará num terceiro ponto que também está sobre a curva. A mesma premissa é válida para a operação de multiplicação de um ​ ponto na curva por um número natural ​k. III. DIFFIE-HELLMAN No ano de 1976, Whitfield Diffie e Martin Hellman desenvolveu um algoritmo assimétrico para a troca de chaves criptográficas sem a necessidade de conhecimento prévio de

Fig. 3 Cálculo do fator comum entre os participantes da troca de chave

Ambos os lados da troca de chave obterão o mesmo valor para ​K. Dessa forma, ambos possuem um valor comum para a criptografia dos dados, que pode ser trafegado livremente por qualquer rede de dados, sendo que somente os dois participantes poderão desfazer a criptografia, pois para isso será necessário o conhecimento da chave-pública do outro participante (Yb) e da sua chave-privada (Xa). IV. CRIPTOGRAFIA VOIP A utilização de comunicação através de VoIP cresce em um ritmo acelerado, graças a redução de custos e a confiabilidade proporcionadas pela tecnologia VoIP. Uma característica ainda não presente nos modelos de VoIP disponíveis livremente na internet e que tem um apelo comercial bom é a capacidade de criptografia dos dados trafegados. Isso porque, por trafegar somente os dados de



áudio pela rede, qualquer invasor que tenha acesso a esta rede poderá filtrar os dados passados pela mesma e dessa forma capturar e manipular esta comunicação. Já existem algumas implementações proprietárias de criptografia de dados para VoIP, e mesmo alguns poucos modelos abertos e livres para a criptografia dos dados no mundo ​desktop, mas o mundo mobile carece de padrões e implementações que permitam isso. Para o ambiente ​desktop, um padrão para a criptografia dos dados VoIP é o protocolo ZRTP. O ZRTP foi criado por Phil Zimmerman, o mesmo criador do ​Pretty Good Privacy (PGP), um software para a criptografia de e-mails, software esse que deu origem ao ​OpenPGP, padrão aberto de criptografia, utilizado até hoje. O protocolo ZRTP implementa o algoritmo de Diffie-Hellman para a troca das chaves criptográficas. Graças ao algoritmo de Diffie-Hellman, o ZRTP não depende de uma estrutura de ​Public-Key Infrastructre (PKI) e, portanto, não necessita de configurações prévias sobre Autoridades Certificadoras (CA), geração de chaves pública e privada, podendo gerar fases tão efêmeras quanto a própria comunicação VoIP. Para a utilização do protocolo ZRTP no ambiente ​mobile foi necessário o ​port de uma biblioteca que implementasse o ZRTP para a plataforma Android, plataforma escolhida para o desenvolvimento do projeto. A biblioteca escolhida foi a ZRTP4J, desenvolvida pelo projeto GNU. Após o ​port, foi selecionado um comunicador VoIP na plataforma Android, e que fosse de código aberto, para permitir a adequação do mesmo para o protocolo ZRTP. O comunicador que melhor se adequou aos critérios foi o SipDroid, projeto mantido por sua comunidade e de boa aceitação na plataforma Android. Após a adequação do comunicador SipDroid ao protocolo ZRTP, já era possível a comunicação de dados, de forma criptografada entre as partes da comunicação. Como definido no protocolo ZRTP, a comunicação era criptografada através do algoritmo ​Advanced Encription Standard (AES), com chaves criptográficas de 256 bits, e a troca das chaves era realizada através do algoritmo de Diffie-Hellman, com uma chave pública de 3072 bits de tamanho. O tamanho da chave pública do algoritmo de Diffie-Hellman pode ser um entrave para dispositivos ​móbile com pouco poder de processamento. Para o projeto foi utilizado um celular com um processador Snapdragon, da Qualcomm, com um ​clock de 1Ghz, o que garante um bom desempenho, mas para outros modelos, o cálculo da chave pública de 3084 bits pode vir a ser um entrave. Para evitar problemas de performance nestes aparelhos, foi implementada um outro cálculo para a geração da chave pública: o cálculo de curvas elípticas. Devido a complexidade computacional de se calcular o fator escalar de uma multiplicação de um ponto sobre uma curva elíptica, é possível utilizar uma chave de tamanho significativamente menor e mantendo o mesmo nível de segurança.

Como dito em [3], uma chave pública sobre curvas elípticas com tamanho de 256 bits possui a mesma força criptográfica que uma chave RSA de 3072 bits, e também de uma chave de logaritmo discreto do algoritmo de Diffie-Hellman de 3072 bits. Dessa maneira, os pacotes de dados do protocolo ZRTP responsáveis pelo tráfego das chaves públicas diminuem de aproximadamente 480 bytes, para pacotes de aproximadamente 160 bytes, além de reduzir em muito a computação exigida, já que o cálculo de multiplicação escalar em um ponto com coordenadas de 256 bits é menos intenso que o exigido no cálculo do módulo de um expoente primo de 3072 bits sobre um número base também grande. V. RESULTADOS Os resultados da criptografia dos pacotes de dados em uma comunicação VoIP foram significantes. Foi possível a comunicação sem qualquer tipo de retardo em função da computação despendida para a criptografia dos dados. Com a utilização de um celular equipado com um processador Snapdragon de 1Ghz, mesmo a troca de chaves com Diffie-Hellman não foi gargalo para a aplicação. Para efeito de comparação, a Fig. 4 exibe a comunicação sem criptografia, e a Fig. 5 exibe a comunicação utilizando o algoritmo AES.

Fig. 4 Comunicação VoIP sem o uso de criptografia

Fig. 5 Comunicação VoIP com o uso do algoritmo AES

Como a plataforma Android ainda não proporciona um software oficial para a captura dos pacotes trafegados, não é possível detectar a transmissão através de algum software formal do pacote que contém a chave pública com curvas elípticas, mas baseado no cálculo de curvas elípticas, e com uma análise bem informal (através de rotinas de ​log criadas para esse fim) dos pacotes, foi possível a constatação do tamanho reduzido da chave. Na Fig 6, vemos a captura formal de um pacote de transmissão de chave pública do algoritmo de Diffie-Hellman padrão, e na Fig 7 podemos ver o ​log de captura do pacote da chave criptográfica com curvas elípticas.

Fig. 6 Transmissão de chave pública com Diffie-Hellman padrão

Fig. 7 Transmissão de chave pública com Diffie-Hellman padrão

REFERENCES [1]

[2]

[3]

Sociedade Brasileira de Matemática, ​Colóquio de Matemática da Região Centro-Oeste, 2009. Disponível em: www.coloquiodematematica.ufms.br/conteudo/material/mc04.pdf P. C. S Lara, F. B. Oliveira, ​Curvas Elípticas:Aplicação em Criptografia Assimétrica. Disponível: http://www.lncc.br/~borges/doc/Curvas Elípticas - Aplicação em Criptografia Assimétrica.pdf. R. Pucella, ​Elliptic Curve Cryptography. Disponível: http://www.ccs.neu.edu/home/riccardo/courses/cs6750-fa09/talks/Elliselliptic-curve-crypto.pdf.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.