Écoute des communications VoIP cryptées

La téléphonie VoIP gagne progressivement du terrain avec les systèmes téléphoniques traditionnels à fils de cuivre, car elle offre un débit plus élevé à un coût de déploiement moindre. En 2013, le nombre d'abonnés VoIP s'élevait à plus de 150 millions , ce qui est beaucoup en soi; et en 2017, près d'un milliard . Mais qu'en est-il de la confidentialité des appels VoIP? Le cryptage de bout en bout utilisé dans les logiciels VoIP est-il capable de fournir cette même confidentialité? Ces problèmes sont devenus particulièrement d'actualité après les révélations de Snowden , qui a informé le monde entier des écoutes téléphoniques, qui sont effectuées par des agences de renseignement gouvernementales comme la NSA (National Security Agency) et le DSP (centre de communication gouvernemental) utilisant les logiciels espions PRISM et BULLRUN, qui écoute également les conversations cryptées. .


- Ce qu'un attaquant peut extraire d'un flux audio crypté
- Attaque sur VoIP sur les canaux de contournement
- Quelques mots sur l'algorithme DTW
- Le principe de fonctionnement des machines HMM
- Principe de fonctionnement des machines PHMM
- De la théorie à la pratique: reconnaissance du langage de la conversation
- Écoute du flux audio crypté de Skype
- Et si vous désactivez le mode VBR?



Comment PRISM, BULLRUN et d'autres logiciels similaires extraient-ils des informations du flux vocal transmis sur des canaux cryptés? Afin de comprendre la réponse à cette question, vous devez d'abord comprendre comment le trafic vocal est transmis en VoIP. Le canal de données dans les systèmes VoIP est généralement implémenté sur le protocole UDP, et fonctionne le plus souvent en utilisant le protocole SRTP (Secure Real-time Transport Protocol; protocole de transfert de données sécurisé en temps réel), qui prend en charge l'empaquetage (via les codecs audio) et le cryptage du flux audio. Dans ce cas, le flux chiffré qui est reçu à la sortie est de la même taille que le flux audio d'entrée. Comme nous le verrons ci-dessous, ces fuites d'informations apparemment insignifiantes peuvent être utilisées pour écouter des conversations VoIP «cryptées» .



Ce qu'un attaquant peut extraire d'un flux audio chiffré


La plupart des codecs audio utilisés dans les systèmes VoIP sont basés sur l' algorithme CELP (Code-Excited Linear Prediction; code linear prediction), dont les blocs fonctionnels sont illustrés à la figure 1. Afin d'obtenir une meilleure qualité sonore, sans augmenter la charge par canal de données, le logiciel VoIP utilise généralement des codecs audio en mode VBR (débit binaire variable; flux audio à débit binaire variable). Par ce principe, par exemple, le codec audio Speex fonctionne.



Figure 1. Blocs fonctionnels de l'algorithme CELP


À quoi cela mène-t-il en termes de confidentialité? Un exemple simple ... Speex, fonctionnant en mode VBR, contient des consonnes sifflantes avec un débit binaire inférieur à celui des voyelles; et de plus, même certaines voyelles et consonnes sont emballées avec un débit binaire spécifique pour elles (voir Fig. 2.a). Le graphique de la figure 2.b montre la distribution des longueurs de paquets - pour une phrase qui a des consonnes sifflantes: «Les patineurs de vitesse sprintent jusqu'à l'arrivée». Les dépressions profondes du graphique tombent précisément sur les fragments sifflants de cette phrase. La figure 2.c montre la dynamique du flux audio d'entrée, le débit binaire et la taille des paquets de sortie (cryptés), - superposés sur une échelle de temps commune; similitude frappante des deuxième et troisième graphiques - peut être vu à l'œil nu.



Figure 2. Comment les sifflements affectent la taille des paquets


De plus, si vous regardez la figure 2 à travers le prisme de l'appareil mathématique de traitement numérique du signal (qui est utilisé dans les tâches de reconnaissance vocale), comme une machine PHMM (Profile Hidden Markov Models; une version étendue du modèle Markov caché), vous pouvez voir bien plus que juste différence entre les voyelles et les consonnes. Y compris , identifier le sexe, l'âge, la langue et les émotions du locuteur.



Contourner l'attaque VoIP


Une machine PHMM fait un très bon travail de traitement des chaînes numériques, de comparaison entre elles et de recherche de modèles entre elles. C'est pourquoi la machine PHMM est largement utilisée pour résoudre les problèmes de reconnaissance vocale.


Une machine PHMM est également utile dans la tâche d'écoute d'un flux audio crypté. Mais pas directement, mais via des canaux de contournement. En d'autres termes, la machine PHMM ne peut pas répondre directement à la question: "Quelle est la phrase dans cette chaîne de paquets audio cryptés?", Mais elle peut répondre avec précision à la question: "Une telle phrase est-elle contenue dans tel ou tel endroit est le flux audio crypté? "


T.O. Une machine PHMM ne peut reconnaître que les phrases pour lesquelles elle a été initialement formée. Cependant, les technologies modernes d'apprentissage en profondeur sont si puissantes qu'elles sont capables de former une machine PHMM à un point tel que pour elle la frontière entre les deux questions exprimées juste au-dessus est floue. Pour apprécier toute la puissance de cette approche, vous devez plonger légèrement dans le matériel.



Quelques mots sur l'algorithme DTW


L'algorithme DTW (Dynamic Time Warping; transformation dynamique de la chronologie) jusqu'à récemment a été largement utilisé pour résoudre les problèmes d'identification des locuteurs et de reconnaissance vocale. Il est capable de trouver des similitudes entre deux chaînes numériques générées selon la même loi - même lorsque ces chaînes sont générées à des vitesses différentes et sont situées à des endroits différents sur l'échelle de temps. C'est exactement ce qui se passe lors de la numérisation du flux audio: par exemple, le locuteur peut prononcer la même phrase avec le même accent, mais en même temps plus rapidement ou plus lentement avec un bruit de fond différent. Mais cela n'empêche pas l'algorithme DTW de trouver des similitudes entre les première et deuxième options. Pour illustrer ce point avec un exemple, considérons deux chaînes entières:


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


Si nous comparons ces deux chaînes «sur le front», alors elles semblent très différentes l'une de l'autre. Cependant, si nous comparons leurs caractéristiques, nous verrons que les chaînes ont certainement des similitudes: les deux se composent de 8 entiers; les deux ont une valeur de crête similaire (25-26). La comparaison «frontale», à partir de leurs points d'entrée, ignore ces caractéristiques importantes d'eux. Mais l'algorithme DTW, en comparant les deux chaînes, prend en compte celles-ci et leurs autres caractéristiques. Cependant, nous ne nous concentrerons pas beaucoup sur l'algorithme DTW, car il existe aujourd'hui une alternative plus efficace - les machines PHMM. Il a été établi expérimentalement que les machines PHMM "reconnaissent" les phrases d'un flux audio crypté avec une précision de 90%; tandis que l'algorithme DTW ne donne qu'une garantie de 80%. Par conséquent, l'algorithme DTW (qui à son apogée était un outil populaire pour résoudre les problèmes de reconnaissance vocale) n'est mentionné que pour montrer à quel point, en comparaison avec lui, les machines PHMM (en particulier pour résoudre le problème de la reconnaissance d'un flux audio crypté) . Bien sûr, l'algorithme DTW, en comparaison avec les machines PHMM, apprend beaucoup plus rapidement. Cet avantage est indéniable. Cependant, avec la puissance de calcul moderne, cet avantage n'est pas fondamental.



Le principe de fonctionnement des machines HMM


HMM (juste HMM, pas PHMM) est un outil de modélisation statistique qui génère des chaînes numériques suivant le système défini par une machine à états finis déterministe, dont chacune des fonctions de transition est une soi-disant "Processus de Markov." Le fonctionnement de cet automate (voir Fig. 3) commence toujours par l'état "B" (début) et se termine par l'état "E" (fin). Le choix de l'état suivant auquel la transition du courant sera effectuée est effectué conformément à la fonction de transition de l'état actuel. Lorsque vous vous déplacez entre les états, la machine HMM à chaque étape produit un nombre, à partir duquel la chaîne de sortie des nombres est formée étape par étape. Lorsque la machine HMM est dans l'état "E", le chaînage se termine. En utilisant une machine HMM, on peut trouver des modèles dans des chaînes qui semblent aléatoires au départ. Par exemple, ici cet avantage de la machine HMM est utilisé pour trouver des modèles entre la chaîne de longueurs de paquets et la phrase cible, dont nous vérifions la présence dans un flux VoIP crypté.



Figure 3. Un exemple de machine HMM


Bien qu'il existe un grand nombre de façons possibles pour la machine HMM de passer du point «B» au point «E» (dans notre cas, lors de l'emballage d'un seul fragment audio), c'est toujours pour chaque cas spécifique (même pour un cas aussi aléatoire que « Processus de Markov »), il existe une seule meilleure voie , une seule meilleure chaîne. Elle est la candidate la plus susceptible, qui est la plus susceptible de choisir un codec audio lors de l'emballage du fragment audio correspondant (car son caractère unique s'exprime également dans le fait qu'elle se prête mieux à l'emballage que les autres). Ces «meilleures chaînes» peuvent être trouvées en utilisant l'algorithme de Viterbi (comme cela est fait ici par exemple).


De plus, dans les tâches de reconnaissance vocale (y compris à partir d'un flux de données cryptées, comme dans notre cas), en plus de pouvoir trouver le meilleur chemin pour la chaîne observée, il est également utile de pouvoir calculer la probabilité que la chaîne sélectionnée soit générée par la machine HMM. Une solution concise à ce problème est donnée ici ; il s'appuie sur l'algorithme Forward-Back et l'algorithme Baum-Welsh .


Ici, sur la base de l'automate HMM, une méthode d'identification de la langue dans laquelle la conversation est développée est développée; avec une précision de 66%. Mais cette faible précision n'est pas très impressionnante, il y a donc une modification plus avancée de la machine HMM - PHMM, qui tire beaucoup plus de modèles du flux audio crypté. Ainsi, par exemple, ici, il est décrit en détail comment identifier les mots et les phrases à l'aide d'une machine PHMM dans le trafic crypté (et cette tâche sera plus difficile que de simplement identifier la langue dans laquelle la conversation est conduite); avec une précision de 90%.



Principe de fonctionnement des machines PHMM


PHMM est une modification améliorée de la machine HMM, dans laquelle (voir Fig. 4.a), en plus des états de «correspondance» (carrés avec la lettre M), il y a aussi des états «d'insertion» (diamants avec la lettre I) et de «suppression» (cercles avec la lettre D). En raison de ces deux nouveaux états, les automates PHMM, contrairement aux automates HMM, sont capables de reconnaître la chaîne hypothétique "ABCD", même si elle n'est pas entièrement présente (par exemple, "ABD") ou si un insert y est inséré (par exemple, "ABXCD"). Pour résoudre le problème de la reconnaissance d'un flux audio crypté, ces deux innovations de la machine PHMM sont particulièrement utiles. Parce que la sortie du codec audio correspond rarement même lorsque les entrées audio sont très similaires (lorsque, par exemple, la même personne dit la même phrase). T.O. le modèle le plus simple d'une machine PHMM se compose de trois chaînes d'états interconnectés («correspondance», «insertion» et «suppression») qui décrivent la longueur attendue des paquets réseau à chaque position de la chaîne (paquets de trafic VoIP chiffrés pour la phrase sélectionnée).



Figure 4. Exemple d'une machine PHMM


Cependant, comme les paquets réseau dans lesquels la phrase cible est empaquetée dans un flux audio chiffré sont généralement entourés d'autres paquets réseau (le reste de la conversation), nous avons besoin d'une machine PHMM encore plus avancée. Celui qui peut isoler la phrase cible des autres sons qui l'entourent. Ici, pour cela, 5 nouveaux états sont ajoutés à la machine PHMM d'origine (voir Fig. 4.b). Le plus important de ces cinq états ajoutés est «aléatoire» (un diamant avec la lettre R). La machine PHMM (après la fin de la formation) entre dans cet état lorsque des paquets qui ne font pas partie de la phrase qui nous intéresse y arrivent. États PS (Profile Start) et PE (Profile End) - fournissent une transition entre un état aléatoire et la partie profil du modèle. Une telle modification améliorée de l'automate PHMM est capable de reconnaître même les phrases que l'automate «n'a pas entendues» au stade de la formation (voir Fig. 5).



Figure 5. La machine PHMM résout le problème de la reconnaissance du flux audio crypté



De la théorie à la pratique: reconnaître le langage de la conversation


Voici une configuration expérimentale basée sur une machine PHMM (voir Fig. 6), qui a été utilisée pour analyser les flux audio cryptés avec la parole de 2000 locuteurs natifs de 20 groupes linguistiques différents. Une fois le processus de formation terminé, la machine PHMM a identifié la langue de conversation avec une précision de 60 à 90%: pour 14 des 20 langues, la précision d'identification a dépassé 90%, pour le reste - 60%.


La configuration expérimentale illustrée à la figure 6 comprend deux PC Linux avec le logiciel VoIP OpenSource. L'une des machines fonctionne comme un serveur et écoute les appels SIP sur le réseau. Après avoir reçu l'appel, le serveur répond automatiquement à l'abonné, initialisant le canal vocal au mode «Speex over RTP». Il convient de mentionner ici que le canal de contrôle dans les systèmes VoIP est généralement implémenté sur le protocole TCP, et fonctionne soit sur certains des protocoles disponibles publiquement avec une architecture ouverte (SIP, XMPP, H.323), soit possède une architecture fermée spécifique à un domaine particulier. applications (comme dans Skype, par exemple ).



Figure 6. Configuration expérimentale pour travailler avec une machine PHMM


Lorsque le canal vocal est initialisé, le serveur lit le fichier à l'appelant, puis met fin à la connexion SIP. L'abonné, qui est une autre machine de notre réseau local, fait un appel SIP au serveur, puis, à l'aide du renifleur, «écoute» le fichier que le serveur joue: il écoute la chaîne de paquets réseau avec du trafic audio chiffré provenant du serveur. De plus, l'abonné forme la machine PHMM pour identifier la langue de conversation (en utilisant l'appareil mathématique décrit dans les sections précédentes), ou "demande" à la machine PHMM: "Dans quelle langue la conversation est-elle?" Comme déjà mentionné, cette configuration expérimentale garantit la précision de l'identification de la langue - jusqu'à 90%. Le processus de formation d'une machine PHMM sera décrit en détail dans la section suivante (dans l'exemple avec Skype).



Écoute du flux audio crypté de Skype


Il montre comment résoudre un problème encore plus complexe à l'aide d'une machine PHMM: reconnaître le flux audio crypté généré par Skype (qui utilise le codec audio Opus / NGC en mode VBR et le cryptage AES 256 bits). Le développement présenté fonctionne selon le principe de la figure 5. Pour cela, il utilise une configuration expérimentale comme celle de la figure 6. Mais uniquement avec le codec Skype Opus.


Pour former leur machine PHMM, les chercheurs ont utilisé la séquence d'étapes suivante: 1) ils ont d'abord collecté un ensemble de pistes sonores, y compris toutes les phrases qui les intéressent; 2) a ensuite installé le renifleur de paquets réseau et initié une conversation vocale entre les deux comptes Skype (cette manipulation a conduit à la génération de trafic UDP crypté entre les deux machines, en mode P2P); 3) puis ils ont joué chacune des pistes sonores collectées dans une session Skype en utilisant un lecteur multimédia; avec cinq secondes d'intervalle de silence entre les pistes; 4) entre-temps, le renifleur de paquets a été configuré pour enregistrer tout le trafic entrant dans la deuxième machine de la configuration expérimentale (voir la figure 6). Après avoir collecté toutes les données d'apprentissage, les chaînes de longueur de paquet UDP ont été extraites à l'aide d'un analyseur automatique pour les fichiers PCAP. Les chaînes résultantes, constituées des longueurs des paquets de charge utile, ont ensuite été utilisées pour entraîner le modèle PHMM, en utilisant l' algorithme Baum-Welsh .



Et si vous désactivez le mode VBR?


Il semblerait que le problème de ces fuites puisse être résolu en commutant les codecs audio en mode à débit binaire constant (bien que ce soit la solution - la bande passante est fortement réduite), mais même dans ce cas, la sécurité du flux audio crypté laisse encore beaucoup à désirer. Après tout, l'exploitation des longueurs de paquets du trafic VBR n'est qu'un exemple d'une attaque sur les canaux de contournement. Mais il existe d'autres exemples d'attaques, comme le suivi des pauses entre les mots .


La tâche est bien sûr non triviale, mais tout à fait résoluble . Pourquoi est-ce non trivial? Parce que dans Skype, par exemple, afin de coordonner le fonctionnement du protocole UDP et NAT (traduction d'adresse réseau; traduction d'adresse réseau); et également pour augmenter la qualité de la voix transmise - la transmission des paquets réseau ne s'arrête pas même lorsqu'il y a des pauses dans la conversation. Cela complique la tâche d'identifier les pauses dans le discours.


Cependant , ici un algorithme de valeur seuil adaptatif est développé, qui permet de distinguer le silence de la parole avec une précision de plus de 80%; la méthode proposée est basée sur le fait que l'activité vocale est fortement corrélée à la taille des paquets cryptés: plus d'informations sont encodées dans un paquet vocal lorsque l'utilisateur parle que pendant le silence de l'utilisateur. Et ici (avec un accent sur Google Talk, Lella et Bettati) le haut-parleur est identifié, même lorsqu'aucune fuite ne se produit à travers la taille des paquets (même lorsque le mode VBR est désactivé). Ici, les chercheurs comptent sur la mesure des intervalles de temps entre les réceptions de paquets. La méthode décrite repose sur les phases de silence, qui sont codées en petits paquets, avec des intervalles de temps plus longs - pour séparer les mots les uns des autres.


T.O. même la cryptographie la plus moderne n'est pas en mesure de protéger les communications VoIP cryptées de l'écoute, même si cette cryptographie est correctement implémentée, ce qui est peu probable en soi. , (PHMM-), - ( PRISM BULLRUN). . – .


Bibliographie
  1. Charles Wright, Lucas Ballard. Language Identification of Encrypted VoIP Traffic // Proceedings of the 16th USENIX Security Symposium. 2007. pp. 43-54.
  2. Charles Wright, Lucas Ballard. Uncovering Spoken Phrases in Encrypted VoIP Conversations // Proceedings of the IEEE Symposium on Security and Privacy. 2008. pp. 35-49.
  3. Benoit Dupasquier, Stefan Burschka. Analysis of information leakage from encrypted Skype conversations // International Journal of Information Security. 9(5), 2010. pp. 313-325.
  4. Shaun Colley. Practical Attacks Against Encrypted VoIP Communications // HITB Magazine. 4(19), 2014. pp. 30-41.
  5. 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).
  6. World Broadband Statistics – Q3 2017 // Point Topic. URL: http://point-topic.com/free-analysis/world-broadband-statistics-q3-2017/ ( : 25 2018).
  7. 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).
  8. Hiddem Markov Model // Wikipedia. URL: https://en.wikipedia.org/wiki/Hidden_Markov_model ( : 25 2018).
  9. Forward–backward algorithm // Wikipedia. URL: https://en.wikipedia.org/wiki/Forward%E2%80%93backward_algorithm ( : 25 2018).
  10. 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.
  11. Andrew Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm // IEEE Transactions on Information Theory. 13(2), 1967. pp. 260-267.
  12. 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.
  13. S. Eddy. Multiple alignment using hidden Markov models // Proceedings of the Third International Conference on Intelligent Systems for Molecular Biology. 1995. pp. 114-120.
  14. Yu-Chun Chang. Inferring speech activity from encrypted Skype traffic // Proceedings of IEEE Globecom. 2008.
  15. Tuneesh Lella. Privacy of encrypted voice-over-IP // Proceedings of the 2007 IEEE International Conference on Systems, Man and Cybernetics. 2007. pp. 3063-3068.
  16. 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.
  17. .. : SSL/TLS- // . №228. 2018.
  18. .. // . 2015. URL: https://habrahabr.ru/post/272385/ ( : 25 2018).

Source: https://habr.com/ru/post/fr461759/


All Articles