A telefonia VoIP está gradualmente ganhando terreno com os sistemas telefônicos tradicionais com fio de cobre, pois fornece maior produtividade a um custo menor de implantação. Em 2013, o número de assinantes de VoIP atingiu mais de 150 milhões , o que é bastante em si; e em 2017, quase 1 bilhão . Mas e a privacidade das chamadas VoIP? A criptografia de ponta a ponta usada no software VoIP é capaz de fornecer a mesma privacidade? Tais questões se tornaram especialmente atuais após as revelações de Snowden , que contou ao mundo sobre as escutas telefônicas totais, realizadas por agências de inteligência governamentais como a NSA (Agência de Segurança Nacional) e o CPS (centro de comunicações do governo) usando spywares PRISM e BULLRUN, que também escuta conversas criptografadas. .
- O que um invasor pode extrair de um fluxo de áudio criptografado
- Ataque em VoIP através de canais de desvio
- Algumas palavras sobre o algoritmo DTW
- O princípio de operação das máquinas HMM
- Princípio de funcionamento das máquinas PHMM
- Da teoria à prática: reconhecimento da linguagem da conversa
- Ouvindo o fluxo de áudio criptografado do Skype
- E se você desligar o modo VBR?

Como o PRISM, BULLRUN e outro software similar extraem informações do fluxo de voz transmitido pelos canais criptografados? Para entender a resposta a esta pergunta, você deve primeiro entender como o tráfego de voz é transmitido no VoIP. O canal de dados nos sistemas VoIP geralmente é implementado pelo protocolo UDP e, na maioria das vezes, funciona usando o protocolo SRTP (Protocolo de transporte seguro em tempo real; protocolo de transferência segura de dados em tempo real), que suporta empacotamento (via codecs de áudio) e criptografia de fluxo de áudio. Nesse caso, o fluxo criptografado recebido na saída é do mesmo tamanho que o fluxo de áudio de entrada. Como será mostrado abaixo, esses vazamentos de informações aparentemente insignificantes podem ser usados para ouvir conversas VoIP "criptografadas" .
O que um invasor pode extrair de um fluxo de áudio criptografado
A maioria dos codecs de áudio usados nos sistemas VoIP é baseada no algoritmo CELP (previsão linear excitada por código; previsão linear de código), cujos blocos funcionais são mostrados na Figura 1. Para obter uma qualidade de som mais alta, sem aumentar a carga por canal de dados, o software VoIP geralmente usa codecs de áudio no modo VBR (taxa de bits variável; fluxo de áudio com taxa de bits variável). Por esse princípio, por exemplo, o codec de áudio Speex funciona.

Figura 1. Blocos funcionais do algoritmo CELP
O que isso leva em termos de confidencialidade? Um exemplo simples ... O Speex, trabalhando no modo VBR, embala consoantes sibilantes com uma taxa de bits mais baixa que as vogais; além disso, até certas vogais e consoantes são empacotadas com uma taxa de bits específica para elas (veja a Figura 2.a). O gráfico na Figura 2.b mostra a distribuição dos comprimentos dos pacotes - para uma frase que tem consoantes sibilantes: “Os patinadores de velocidade correm até o fim”. As depressões profundas do gráfico caem precisamente nos fragmentos sibilantes dessa frase. A Figura 2.c mostra a dinâmica do fluxo de áudio de entrada, a taxa de bits e o tamanho dos pacotes de saída (criptografados), - sobrepostos em uma escala de tempo comum; impressionante semelhança do segundo e terceiro gráficos - pode ser vista a olho nu.

Figura 2. Como os assobios afetam o tamanho do pacote
Além disso, se você observar a Figura 2 através do prisma do aparato matemático do processamento de sinal digital (usado nas tarefas de reconhecimento de fala), como uma máquina PHMM (Profile Hidden Markov Models; uma versão estendida do modelo Markov oculto), você poderá ver muito mais do que apenas diferença entre vogais e consoantes. Incluindo , identifique o sexo, idade, idioma e emoções do interlocutor.
Ignorar ataque de VoIP
Uma máquina PHMM faz um excelente trabalho no processamento de cadeias numéricas, comparando-as e encontrando padrões entre elas. É por isso que a máquina PHMM é amplamente usada na solução de problemas de reconhecimento de fala.
Uma máquina PHMM também é útil na tarefa de ouvir um fluxo de áudio criptografado. Mas não diretamente, mas através dos canais de desvio. Em outras palavras, a máquina PHMM não pode responder diretamente à pergunta: “Qual frase está nesta cadeia de pacotes de áudio criptografados?”, Mas pode responder com precisão à pergunta: “Essa frase está contida em tal e tal lugar? é o fluxo de áudio criptografado? "
T.O. Uma máquina PHMM pode reconhecer apenas frases para as quais foi originalmente treinada. No entanto, as modernas tecnologias de aprendizado profundo são tão poderosas que são capazes de treinar uma máquina PHMM a tal ponto que, para isso, a linha entre as duas perguntas acima é apagada. Para apreciar todo o poder dessa abordagem, você precisa mergulhar um pouco no material.
Algumas palavras sobre o algoritmo DTW
O algoritmo DTW (Dynamic Time Warping; transformação dinâmica da linha do tempo) até recentemente tem sido amplamente utilizado na resolução de problemas de identificação de alto-falante e reconhecimento de fala. Ele é capaz de encontrar semelhanças entre duas cadeias numéricas geradas de acordo com a mesma lei - mesmo quando essas cadeias são geradas em velocidades diferentes e localizadas em locais diferentes na escala de tempo. É exatamente o que acontece ao digitalizar o fluxo de áudio: por exemplo, o alto-falante pode pronunciar a mesma frase com o mesmo sotaque, mas ao mesmo tempo mais rápido ou mais lento com diferentes ruídos de fundo. Mas isso não impede que o algoritmo DTW encontre semelhanças entre a primeira e a segunda opções. Para ilustrar esse ponto com um exemplo, considere duas cadeias inteiras:
0 0 0 4 7 14 26 23 8 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 6 13 25 24 9 4 2 0 0 0 0 0
Se compararmos essas duas correntes “na testa”, elas parecem muito diferentes uma da outra. No entanto, se compararmos suas características, veremos que as cadeias definitivamente têm algumas semelhanças: ambas consistem em 8 números inteiros; ambos têm um valor de pico semelhante (25-26). A comparação "frontal", a partir de seus pontos de entrada, ignora essas características importantes deles. Mas o algoritmo DTW, comparando as duas cadeias, leva em conta essas e outras características. No entanto, não focaremos muito no algoritmo DTW, já que hoje existe uma alternativa mais eficaz - as máquinas PHMM. Foi estabelecido experimentalmente que as máquinas PHMM "reconhecem" frases de um fluxo de áudio criptografado com 90% de precisão; enquanto o algoritmo DTW oferece apenas uma garantia de 80%. Portanto, o algoritmo DTW (que no auge era uma ferramenta popular na solução de problemas de reconhecimento de fala) é mencionado apenas para mostrar quão melhor, em comparação com ele, as máquinas PHMM (em particular para solucionar o problema de reconhecer um fluxo de áudio criptografado) . Obviamente, o algoritmo DTW, em comparação com as máquinas PHMM, aprende muito mais rápido. Essa vantagem é inegável. No entanto, com o poder da computação moderna, essa vantagem não é fundamental.
O princípio de operação das máquinas HMM
O HMM (apenas HMM, não o PHMM) é uma ferramenta de modelagem estatística que gera cadeias numéricas seguindo o sistema definido por uma máquina determinística de estados finitos, cada uma das quais cujas funções de transição são as chamadas "Processo de Markov." A operação deste autômato (veja a Fig. 3) sempre começa com o estado “B” (início) e termina com o estado “E” (final). A escolha do próximo estado para o qual a transição da corrente será realizada é realizada de acordo com a função de transição do estado atual. À medida que você se move entre os estados, a máquina HMM em cada etapa produz um número, a partir do qual a cadeia de números de saída é formada passo a passo. Quando a máquina HMM está no estado “E”, o encadeamento termina. Usando uma máquina HMM, é possível encontrar padrões em cadeias que parecem aleatórias desde o início. Por exemplo, aqui esta vantagem da máquina HMM é usada para encontrar padrões entre a cadeia de tamanhos de pacotes e a frase de destino, cuja presença é verificada em um fluxo de VoIP criptografado.

Figura 3. Um exemplo de uma máquina HMM
Embora exista um grande número de maneiras possíveis de a máquina HMM ir do ponto "B" ao ponto "E" (no nosso caso, ao compactar um único fragmento de áudio), ainda é para cada caso específico (mesmo para um caso tão aleatório como " Processo de Markov ”) existe uma única melhor maneira , uma única melhor cadeia. Ela própria é a candidata mais provável, com maior probabilidade de escolher um codec de áudio ao compactar o fragmento de áudio correspondente (porque sua singularidade é expressa também no fato de que ela se presta melhor à compactação do que outras). Essas “melhores cadeias” podem ser encontradas usando o algoritmo Viterbi (como é feito aqui, por exemplo).
Além disso, nas tarefas de reconhecimento de fala (inclusive de um fluxo de dados criptografado, como no nosso caso), além de poder encontrar o melhor caminho para a cadeia observada, também é útil calcular a probabilidade de a cadeia selecionada ser gerada pela máquina HMM. Uma solução concisa para esse problema é fornecida aqui ; ele se baseia no algoritmo Forward-Back e no algoritmo Baum-Welsh .
Aqui, com base no autômato HMM, foi desenvolvido um método para identificar o idioma em que a conversa está sendo desenvolvida; com uma precisão de 66%. Mas essa baixa precisão não é muito impressionante, portanto, há uma modificação mais avançada da máquina HMM - PHMM, que extrai muito mais padrões do fluxo de áudio criptografado. Assim, por exemplo, aqui é descrito em detalhes como identificar palavras e frases usando uma máquina PHMM no tráfego criptografado (e essa tarefa será mais difícil do que simplesmente identificar o idioma em que a conversa está sendo conduzida); com uma precisão de 90%.
Princípio de operação de máquinas PHMM
O PHMM é uma modificação aprimorada da máquina HMM, na qual (ver Fig. 4.a), além dos estados de "correspondência" (quadrados com a letra M), também existem estados de "inserção" (diamantes com a letra I) e "excluir" (círculos com a letra D). Graças a esses dois novos estados, os autômatos PHMM, em contraste com os autômatos HMM, são capazes de reconhecer a cadeia hipotética "ABCD", mesmo que ela não esteja completamente presente (por exemplo, "ABD") ou uma inserção seja feita nela (por exemplo, "ABXCD"). Ao resolver o problema de reconhecer um fluxo de áudio criptografado, essas duas inovações da máquina PHMM são particularmente úteis. Como a saída do codec de áudio raramente corresponde, mesmo quando as entradas de áudio são muito semelhantes (quando, por exemplo, a mesma pessoa diz a mesma frase). T.O. O modelo mais simples de uma máquina PHMM consiste em três cadeias de estados interconectadas ("correspondência", "inserção" e "exclusão") que descrevem o comprimento esperado dos pacotes de rede em cada posição da cadeia (pacotes de tráfego VoIP criptografados para a frase selecionada).

Figura 4. Exemplo de uma máquina PHMM
No entanto, como os pacotes de rede nos quais a frase de destino é empacotada em um fluxo de áudio criptografado geralmente são cercados por outros pacotes de rede (o restante da conversa), precisamos de uma máquina PHMM ainda mais avançada. Um que pode isolar a frase alvo de outros sons ao seu redor. Aqui, para isso, cinco novos estados são adicionados à máquina PHMM original (veja a Fig. 4.b). O mais importante desses cinco estados adicionados é "aleatório" (um diamante com a letra R). A máquina PHMM (após a conclusão do estágio de treinamento) entra nesse estado quando os pacotes que não fazem parte da frase em que estamos interessados chegam a ela. Estados PS (Início do perfil) e PE (Fim do perfil) - fornecem uma transição entre um estado aleatório e a parte do perfil do modelo. Uma modificação tão aprimorada do autômato PHMM é capaz de reconhecer até mesmo aquelas frases que o autômato “não ouviu” no estágio de treinamento (veja a Fig. 5).

Figura 5. A máquina PHMM resolve o problema do reconhecimento de fluxo de áudio criptografado
Da teoria à prática: reconhecendo a linguagem da conversa
Aqui está uma configuração experimental baseada em uma máquina PHMM (veja a Fig. 6), que foi usada para analisar fluxos de áudio criptografados com fala de 2.000 falantes nativos de 20 grupos de idiomas diferentes. Após a conclusão do processo de treinamento, a máquina PHMM identificou o idioma da conversa com uma precisão de 60 a 90%: para 14 dos 20 idiomas, a precisão da identificação excedeu 90%, para os demais - 60%.
A configuração experimental mostrada na Figura 6 inclui dois PCs Linux com software OpenSource VoIP. Uma das máquinas funciona como servidor e ouve chamadas SIP na rede. Após receber a chamada, o servidor atende automaticamente o assinante, inicializando o canal de fala no modo "Speex over RTP". Deve-se mencionar aqui que o canal de controle nos sistemas VoIP geralmente é implementado através do protocolo TCP e funciona em alguns dos protocolos publicamente disponíveis com uma arquitetura aberta (SIP, XMPP, H.323) ou possui uma arquitetura fechada específica para um determinado aplicativos (como no Skype, por exemplo ).

Figura 6. Configuração experimental para trabalhar com uma máquina PHMM
Quando o canal de voz é inicializado, o servidor reproduz o arquivo para o chamador e finaliza a conexão SIP. O assinante, que é outra máquina em nossa rede local, faz uma chamada SIP para o servidor e, usando o sniffer, "escuta" o arquivo que o servidor reproduz: escuta a cadeia de pacotes de rede com tráfego de áudio criptografado proveniente do servidor. Além disso, o assinante treina a máquina PHMM para identificar o idioma da conversa (usando o aparelho matemático descrito nas seções anteriores) ou "pergunta" a máquina PHMM: "Em que língua está a conversa?" Como já mencionado, essa configuração experimental garante a precisão da identificação do idioma - até 90%. O processo de treinamento de uma máquina PHMM será descrito em detalhes na próxima seção (no exemplo com o Skype).
Ouvindo o fluxo de áudio criptografado do Skype
Ele demonstra como resolver um problema ainda mais complexo usando uma máquina PHMM: reconheça o fluxo de áudio criptografado gerado pelo Skype (que usa o codec de áudio Opus / NGC no modo VBR; e criptografia AES de 256 bits). O desenvolvimento apresentado funciona de acordo com o princípio mostrado na Figura 5. Para isso, ele usa uma configuração experimental como a mostrada na Figura 6. Mas apenas com o codec Opus do Skype.
Para treinar sua máquina PHMM, os pesquisadores usaram a seguinte sequência de etapas: 1) primeiro eles coletaram um conjunto de trilhas sonoras, incluindo todas as frases de seu interesse; 2) instalou o sniffer de pacotes de rede e iniciou uma conversa de voz entre duas contas do Skype (essa manipulação levou à geração de tráfego UDP criptografado entre duas máquinas no modo P2P); 3) eles tocaram cada uma das trilhas sonoras coletadas em uma sessão do Skype usando um media player; com intervalos de cinco segundos de silêncio entre as faixas; 4) enquanto isso, o farejador de pacotes foi configurado para registrar todo o tráfego que entra na segunda máquina da configuração experimental (veja a Fig. 6). Depois de coletar todos os dados de treinamento, as cadeias de comprimento de pacote UDP foram extraídas usando um analisador automático de arquivos PCAP. As cadeias resultantes, consistindo nos comprimentos dos pacotes de carga útil, foram então usadas para treinar o modelo PHMM, usando o algoritmo Baum-Welsh .
E se você desligar o modo VBR?
Parece que o problema de tais vazamentos pode ser resolvido alternando os codecs de áudio para o modo de taxa de bits constante (embora que tipo de solução seja essa - a largura de banda disso é bastante reduzida), mas mesmo nesse caso, a segurança do fluxo de áudio criptografado ainda deixa muito a desejar. Afinal, a exploração de tamanhos de pacotes de tráfego VBR é apenas um exemplo de ataque a canais de desvio. Mas existem outros exemplos de ataques, como rastrear pausas entre palavras .
A tarefa é obviamente não trivial, mas bastante solucionável . Por que não é trivial? Porque no Skype, por exemplo, para coordenar a operação do protocolo UDP e NAT (tradução de endereços de rede; tradução de endereços de rede); e também para aumentar a qualidade da voz transmitida - a transmissão de pacotes de rede não para mesmo quando há pausas na conversa. Isso complica a tarefa de identificar pausas na fala.
No entanto , aqui é desenvolvido um algoritmo adaptativo de valor limiar, que permite distinguir o silêncio da fala com uma precisão de mais de 80%; o método proposto baseia-se no fato de que a atividade de fala se correlaciona fortemente com o tamanho dos pacotes criptografados: mais informações são codificadas em um pacote de voz quando o usuário fala do que durante o silêncio do usuário. E aqui (com ênfase no Google Talk, Lella e Bettati) o alto-falante é identificado, mesmo quando não há vazamento pelo tamanho dos pacotes (mesmo quando o modo VBR está desativado). Aqui, os pesquisadores confiam na medição de intervalos de tempo entre as recepções de pacotes. O método descrito se baseia nas fases do silêncio, que são codificadas em pacotes menores, com intervalos de tempo mais longos - para separar as palavras umas das outras.
T.O. mesmo a criptografia mais moderna não é capaz de proteger as comunicações VoIP criptografadas da escuta, mesmo que essa criptografia seja implementada adequadamente, o que é improvável por si só. , (PHMM-), - ( PRISM BULLRUN). . – .
- Charles Wright, Lucas Ballard. Language Identification of Encrypted VoIP Traffic // Proceedings of the 16th USENIX Security Symposium. 2007. pp. 43-54.
- Charles Wright, Lucas Ballard. Uncovering Spoken Phrases in Encrypted VoIP Conversations // Proceedings of the IEEE Symposium on Security and Privacy. 2008. pp. 35-49.
- Benoit Dupasquier, Stefan Burschka. Analysis of information leakage from encrypted Skype conversations // International Journal of Information Security. 9(5), 2010. pp. 313-325.
- Shaun Colley. Practical Attacks Against Encrypted VoIP Communications // HITB Magazine. 4(19), 2014. pp. 30-41.
- Global VoIP subscriber numbers and net growth // Point Topic. 2013. URL: http://point-topic.com/free-analysis/global-voip-subscriber-numbers-q1-2013/ ( : 25 2018).
- World Broadband Statistics – Q3 2017 // Point Topic. URL: http://point-topic.com/free-analysis/world-broadband-statistics-q3-2017/ ( : 25 2018).
- James Ball. Revealed: how US and UK spy agencies defeat internet privacy and security // Guardian. 2013. URL: https://www.theguardian.com/world/2013/sep/05/nsa-gchq-encryption-codes-security ( : 25 2018).
- Hiddem Markov Model // Wikipedia. URL: https://en.wikipedia.org/wiki/Hidden_Markov_model ( : 25 2018).
- Forward–backward algorithm // Wikipedia. URL: https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm ( : 25 2018).
- Leonard Baum, Norman Weiss. A maximization technique occurring in the statistical analysis of probabilistic functions of Markov chains // Annals of Mathematical Statistics. 41(1), 1970. pp. 164-171.
- Andrew Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm // IEEE Transactions on Information Theory. 13(2), 1967. pp. 260-267.
- Manfred Schroeder. Code-excited linear prediction(CELP): High-quality speech at very low bit rates // Proceedings of the 1985 IEEE International Conference on Acoustics, Speech, and Signal Processing. v.10, 1985. pp, 937-940.
- S. Eddy. Multiple alignment using hidden Markov models // Proceedings of the Third International Conference on Intelligent Systems for Molecular Biology. 1995. pp. 114-120.
- Yu-Chun Chang. Inferring speech activity from encrypted Skype traffic // Proceedings of IEEE Globecom. 2008.
- Tuneesh Lella. Privacy of encrypted voice-over-IP // Proceedings of the 2007 IEEE International Conference on Systems, Man and Cybernetics. 2007. pp. 3063-3068.
- Charles Wright. Language identification of encrypted VoIP traffic: Alejandra y Roberto or Alice and Bob? // Proceedings of the 16th USENIX Security Symposium. 2007. pp. 1-12.
- .. : SSL/TLS- // . №228. 2018.
- .. // . 2015. URL: https://habrahabr.ru/post/272385/ ( : 25 2018).