La telefonía VoIP está ganando terreno gradualmente con los sistemas telefónicos tradicionales de alambre de cobre, ya que proporciona un mayor rendimiento a un menor costo de implementación. En 2013, el número de suscriptores de VoIP ascendió a más de 150 millones , lo cual es mucho en sí mismo; y en 2017, casi mil millones . Pero, ¿qué pasa con la privacidad de las llamadas VoIP? ¿El cifrado de extremo a extremo utilizado en el software VoIP puede proporcionar esta misma privacidad? Dichos problemas se volvieron especialmente tópicos después de las revelaciones de Snowden , quien le contó al mundo sobre las escuchas telefónicas totales, que llevan a cabo agencias de inteligencia del gobierno como la NSA (Agencia de Seguridad Nacional) y el DSP (centro de comunicaciones del gobierno) usando el spyware PRISM y BULLRUN, que también escucha conversaciones encriptadas .
- Lo que un atacante puede extraer de una transmisión de audio encriptada
- Ataque en VoIP sobre canales de derivación
- Algunas palabras sobre el algoritmo DTW
- El principio de funcionamiento de las máquinas HMM.
- Principio de funcionamiento de máquinas PHMM
- De la teoría a la práctica: reconocimiento del lenguaje de la conversación.
- Escuchar la transmisión de audio encriptada de Skype
- ¿Y si apagas el modo VBR?

¿Cómo PRISM, BULLRUN y otro software similar extraen información del flujo de voz transmitido a través de canales encriptados? Para comprender la respuesta a esta pregunta, primero debe comprender cómo se transmite el tráfico de voz en VoIP. El canal de datos en los sistemas VoIP generalmente se implementa a través del protocolo UDP, y con mayor frecuencia funciona utilizando el protocolo SRTP (Protocolo de transporte seguro en tiempo real; protocolo de transferencia de datos seguro en tiempo real), que admite el empaquetado (a través de códecs de audio) y encriptación de flujo de audio. En este caso, la secuencia cifrada que se recibe en la salida es del mismo tamaño que la secuencia de audio de entrada. Como se mostrará a continuación, estas filtraciones de información aparentemente insignificantes se pueden utilizar para escuchar conversaciones VoIP "encriptadas" .
Lo que un atacante puede extraer de una transmisión de audio encriptada
La mayoría de los códecs de audio utilizados en los sistemas VoIP se basan en el algoritmo CELP (predicción lineal excitada por código; predicción lineal por código), cuyos bloques funcionales se muestran en la figura 1. Para lograr una mejor calidad de sonido, sin aumentar la carga por canal de datos, el software VoIP generalmente usa códecs de audio en modo VBR (velocidad de bits variable; transmisión de audio con velocidad de bits variable). Por este principio, por ejemplo, el códec de audio Speex funciona.

Figura 1. Bloques funcionales del algoritmo CELP
¿A qué conduce esto en términos de confidencialidad? Un ejemplo simple ... Speex, trabajando en modo VBR, contiene consonantes silbantes con una tasa de bits más baja que las vocales; y además, incluso ciertas vocales y consonantes están empaquetadas con una tasa de bits específica para ellas (ver Fig. 2.a). El gráfico de la Figura 2.b muestra la distribución de las longitudes de los paquetes, para una frase que tiene consonantes silbantes: "Los patinadores de velocidad corren hasta el final". Las profundas depresiones del gráfico recaen precisamente en los fragmentos silbantes de esta frase. La figura 2.c muestra la dinámica del flujo de audio de entrada, la velocidad de bits y el tamaño de los paquetes de salida (cifrados), superpuestos en una escala de tiempo común; sorprendente similitud del segundo y tercer gráfico: se puede ver a simple vista.

Figura 2. Cómo los silbidos afectan el tamaño del paquete
Además, si observa la Figura 2 a través del prisma del aparato matemático de procesamiento de señal digital (que se utiliza en tareas de reconocimiento de voz), como una máquina PHMM (Modelos de Markov ocultos en el perfil; una versión extendida del modelo oculto de Markov), puede ver mucho más que solo diferencia entre vocales y consonantes. Incluyendo , identificar el género, edad, idioma y emociones del hablante.
Omitir ataque VoIP
Una máquina PHMM hace un muy buen trabajo procesando cadenas numéricas, comparándolas entre sí y encontrando patrones entre ellas. Es por eso que la máquina PHMM es ampliamente utilizada para resolver problemas de reconocimiento de voz.
Una máquina PHMM también es útil en la tarea de escuchar una transmisión de audio encriptada. Pero no directamente, sino a través de canales de derivación. En otras palabras, la máquina PHMM no puede responder directamente a la pregunta: "¿Qué frase hay en esta cadena de paquetes de audio encriptados?", Pero puede responder con precisión la pregunta: "¿Esta frase está contenida en tal o cual lugar? es la secuencia de audio encriptada?
T.O. Una máquina PHMM solo puede reconocer frases para las que fue entrenada originalmente. Sin embargo, las tecnologías modernas de aprendizaje profundo son tan poderosas que pueden entrenar una máquina PHMM hasta tal punto que, por ello, se borra la línea entre las dos preguntas expresadas anteriormente. Para apreciar todo el poder de este enfoque, debe sumergirse ligeramente en el material.
Algunas palabras sobre el algoritmo DTW
El algoritmo DTW (Dynamic Time Warping; transformación dinámica de la línea de tiempo) hasta hace poco se ha utilizado ampliamente para resolver problemas de identificación del hablante y reconocimiento de voz. Es capaz de encontrar similitudes entre dos cadenas numéricas generadas de acuerdo con la misma ley, incluso cuando estas cadenas se generan a diferentes velocidades y se encuentran en diferentes lugares en la escala de tiempo. Esto es exactamente lo que sucede al digitalizar la transmisión de audio: por ejemplo, el hablante puede pronunciar la misma frase con el mismo acento, pero al mismo tiempo más rápido o más lento con un ruido de fondo diferente. Pero esto no impide que el algoritmo DTW encuentre similitudes entre la primera y la segunda opción. Para ilustrar este punto con un ejemplo, considere dos cadenas enteras:
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 comparamos estas dos cadenas "en la frente", entonces parecen ser muy diferentes entre sí. Sin embargo, si comparamos sus características, veremos que las cadenas definitivamente tienen algunas similitudes: ambas consisten en 8 enteros; ambos tienen un valor pico similar (25-26). La comparación "frontal", comenzando desde sus puntos de entrada, ignora estas características importantes de ellos. Pero el algoritmo DTW, que compara las dos cadenas, tiene en cuenta estas y sus otras características. Sin embargo, no nos centraremos mucho en el algoritmo DTW, ya que hoy existe una alternativa más efectiva: las máquinas PHMM. Se estableció experimentalmente que las máquinas PHMM "reconocen" frases de una transmisión de audio encriptada con una precisión del 90 por ciento; mientras que el algoritmo DTW ofrece solo una garantía del 80 por ciento. Por lo tanto, el algoritmo DTW (que durante su apogeo era una herramienta popular para resolver problemas de reconocimiento de voz) solo se menciona para mostrar cuánto mejor, en comparación con él, las máquinas PHMM (en particular para resolver el problema de reconocer un flujo de audio encriptado) . Por supuesto, el algoritmo DTW, en comparación con las máquinas PHMM, aprende mucho más rápido. Esta ventaja es innegable. Sin embargo, con la potencia informática moderna, esta ventaja no es fundamental.
El principio de funcionamiento de las máquinas HMM.
HMM (solo HMM, no PHMM) es una herramienta de modelado estadístico que genera cadenas numéricas que siguen el sistema definido por una máquina determinista de estados finitos, cada una de cuyas funciones transitorias es una llamada "Proceso de Markov". La operación de este autómata (ver Fig. 3) siempre comienza con el estado "B" (comienzo) y termina con el estado "E" (fin). La elección del siguiente estado al que se llevará a cabo la transición de la corriente se lleva a cabo de acuerdo con la función de transición del estado actual. A medida que se mueve entre los estados, la máquina HMM en cada paso produce un número, a partir del cual se forma la cadena de números de salida paso a paso. Cuando la máquina HMM está en el estado "E", termina el encadenamiento. Usando una máquina HMM, uno puede encontrar patrones en cadenas que parecen aleatorias desde el principio. Por ejemplo, aquí esta ventaja de la máquina HMM se usa para encontrar patrones entre la cadena de longitudes de paquetes y la frase objetivo, cuya presencia verificamos en un flujo de VoIP cifrado.

Figura 3. Un ejemplo de una máquina HMM
Aunque hay una gran cantidad de formas posibles en que la máquina HMM puede pasar del punto "B" al punto "E" (en nuestro caso, al empaquetar un solo fragmento de audio), sigue siendo para cada caso específico (incluso para uno tan aleatorio como " Proceso de Markov ") hay una sola mejor manera , una sola mejor cadena. Ella misma es la solicitante más probable, y es más probable que elija un códec de audio cuando empaqueta el fragmento de audio correspondiente (porque su singularidad se expresa también en el hecho de que se presta mejor para empacar que otros). Estas "mejores cadenas" se pueden encontrar utilizando el algoritmo de Viterbi (como se hace aquí, por ejemplo).
Además, en las tareas de reconocimiento de voz (incluso de un flujo de datos cifrados, como en nuestro caso), además de poder encontrar la mejor ruta para la cadena observada, también es útil poder calcular qué tan probable es que la máquina HMM genere la cadena seleccionada. Aquí se da una solución concisa a este problema; se basa en el algoritmo Forward-Back y el algoritmo Baum-Welsh .
Aquí, sobre la base del autómata HMM, se desarrolla un método para identificar el lenguaje en el que se desarrolla la conversación; con una precisión del 66%. Pero una precisión tan baja no es muy impresionante, por lo tanto, hay una modificación más avanzada de la máquina HMM: PHMM, que extrae muchos más patrones de la transmisión de audio encriptada. Entonces, por ejemplo, aquí se describe en detalle cómo identificar palabras y frases usando una máquina PHMM en tráfico encriptado (y esta tarea será más difícil que simplemente identificar el idioma en el que se lleva a cabo la conversación); con una precisión del 90%.
Principio de funcionamiento de máquinas PHMM
PHMM es una modificación mejorada de la máquina HMM, en la que (ver Fig. 4.a), además de los estados de "correspondencia" (cuadrados con la letra M), también hay estados de "inserción" (diamantes con la letra I) y "eliminar" (círculos con la letra D). Gracias a estos dos nuevos estados, los autómatas PHMM, en contraste con los autómatas HMM, pueden reconocer la cadena hipotética "ABCD", incluso si no está completamente presente (por ejemplo, "ABD") o se inserta un inserto (por ejemplo, "ABXCD"). Al resolver el problema de reconocer un flujo de audio encriptado, estas dos innovaciones de la máquina PHMM son particularmente útiles. Debido a que la salida del códec de audio rara vez coincide incluso cuando las entradas de audio son muy similares (cuando, por ejemplo, la misma persona dice la misma frase). T.O. El modelo más simple de una máquina PHMM consta de tres cadenas de estados interconectados ("correspondencia", "inserción" y "eliminación") que describen la longitud esperada de los paquetes de red en cada posición de la cadena (paquetes de tráfico VoIP cifrados para la frase seleccionada).

Figura 4. Ejemplo de una máquina PHMM
Sin embargo, dado que los paquetes de red en los que la frase objetivo está empaquetada en la secuencia de audio encriptada generalmente están rodeados por otros paquetes de red (el resto de la conversación), necesitamos una máquina PHMM aún más avanzada. Uno que pueda aislar la frase objetivo de otros sonidos que la rodean. Aquí, para esto, se agregan 5 nuevos estados a la máquina PHMM original (ver Fig. 4.b). El más importante de estos cinco estados agregados es "aleatorio" (un diamante con la letra R). La máquina PHMM (después de completar la etapa de entrenamiento) entra en este estado cuando los paquetes que no son parte de la frase en la que estamos interesados llegan. Estados de PS (inicio de perfil) y PE (final de perfil): proporcionan una transición entre un estado aleatorio y la parte de perfil del modelo. Tal modificación mejorada del autómata PHMM es capaz de reconocer incluso aquellas frases que el autómata "no escuchó" en la etapa de entrenamiento (ver Fig. 5).

Figura 5. La máquina PHMM resuelve el problema del reconocimiento de flujo de audio encriptado
De la teoría a la práctica: reconocer el lenguaje de la conversación.
Aquí hay una configuración experimental basada en una máquina PHMM (ver Fig. 6), que se utilizó para analizar transmisiones de audio encriptadas con voz de 2,000 hablantes nativos de 20 grupos de idiomas diferentes. Una vez que se completó el proceso de capacitación, la máquina PHMM identificó el idioma de conversación con una precisión del 60 al 90%: para 14 de los 20 idiomas, la precisión de la identificación superó el 90%, para el resto - 60%.
La configuración experimental que se muestra en la Figura 6 incluye dos PC con Linux con software OpenSource VoIP. Una de las máquinas funciona como servidor y escucha las llamadas SIP en la red. Después de recibir la llamada, el servidor responde automáticamente al suscriptor, inicializando el canal de voz al modo "Speex over RTP". Debe mencionarse aquí que el canal de control en los sistemas VoIP generalmente se implementa a través del protocolo TCP, y funciona en algunos de los protocolos disponibles públicamente con una arquitectura abierta (SIP, XMPP, H.323), o tiene una arquitectura cerrada específica para un determinado aplicaciones (como en Skype, por ejemplo ).

Figura 6. Configuración experimental para trabajar con una máquina PHMM
Cuando se inicializa el canal de voz, el servidor reproduce el archivo a la persona que llama y luego termina la conexión SIP. El suscriptor, que es otra máquina en nuestra red local, realiza una llamada SIP al servidor y luego, utilizando el sniffer, "escucha" el archivo que reproduce el servidor: escucha la cadena de paquetes de red con tráfico de audio cifrado que proviene del servidor. Además, el suscriptor o bien entrena la máquina PHMM para identificar el idioma de la conversación (utilizando el aparato matemático descrito en las secciones anteriores) o "pregunta" a la máquina PHMM: "¿En qué idioma está la conversación?" Como ya se mencionó, esta configuración experimental garantiza la precisión de la identificación del idioma, hasta un 90%. El proceso de entrenamiento de una máquina PHMM se describirá en detalle en la siguiente sección (en el ejemplo con Skype).
Escuchar la transmisión de audio encriptada de Skype
Demuestra cómo resolver un problema aún más complejo con una máquina PHMM: reconoce el flujo de audio cifrado generado por Skype (que utiliza el códec de audio Opus / NGC en modo VBR; y el cifrado AES de 256 bits). El desarrollo presentado funciona de acuerdo con el principio que se muestra en la Figura 5. Para esto, utiliza una configuración experimental como la que se muestra en la Figura 6. Pero solo con el códec Skype Opus.
Para entrenar su máquina PHMM, los investigadores utilizaron la siguiente secuencia de pasos: 1) primero recopilaron un conjunto de pistas de sonido, incluidas todas las frases de interés para ellos; 2) luego instaló el sniffer de paquetes de red e inició una conversación de voz entre dos cuentas de Skype (esta manipulación condujo a la generación de tráfico UDP cifrado entre dos máquinas en modo P2P); 3) luego tocaron cada una de las pistas de sonido recopiladas en una sesión de Skype utilizando un reproductor multimedia; con intervalos de cinco segundos de silencio entre pistas; 4) mientras tanto, el rastreador de paquetes se configuró para registrar todo el tráfico que ingresa a la segunda máquina de la configuración experimental (ver Fig. 6). Después de recopilar todos los datos de entrenamiento, las cadenas de longitud del paquete UDP se extrajeron utilizando un analizador automático para archivos PCAP. Las cadenas resultantes, que consisten en la longitud de los paquetes de carga útil, se utilizaron para entrenar el modelo PHMM, utilizando el algoritmo Baum-Welsh .
¿Y si apagas el modo VBR?
Parece que el problema de tales fugas se puede resolver cambiando los códecs de audio al modo de velocidad de bits constante (aunque, ¿qué tipo de solución es? El ancho de banda de esto se reduce drásticamente), pero incluso en este caso la seguridad del flujo de audio cifrado todavía deja mucho que desear. Después de todo, la explotación de las longitudes de paquetes del tráfico VBR es solo un ejemplo de un ataque en canales de derivación. Pero hay otros ejemplos de ataques, como el seguimiento de pausas entre palabras .
La tarea, por supuesto, no es trivial, pero puede resolverse . ¿Por qué no es trivial? Porque en Skype, por ejemplo, para coordinar el funcionamiento del protocolo UDP y NAT (traducción de direcciones de red; traducción de direcciones de red); y también para aumentar la calidad de la voz transmitida: la transmisión de paquetes de red no se detiene incluso cuando hay pausas en la conversación. Esto complica la tarea de identificar pausas en el habla.
Sin embargo , aquí se desarrolla un algoritmo de valor umbral adaptativo, que permite distinguir el silencio del habla con una precisión de más del 80%; El método propuesto se basa en el hecho de que la actividad del habla se correlaciona fuertemente con el tamaño de los paquetes cifrados: se codifica más información en un paquete de voz cuando el usuario habla que durante el silencio del usuario. ( Google Talk, Lella Bettati) , ( VBR- ). . , , – .
T.O. VoIP- , , – . , (PHMM-), - ( PRISM BULLRUN). . – .
- Charles Wright, Lucas Ballard. Identificación del idioma del tráfico de VoIP cifrado // Actas del 16º Simposio de seguridad de USENIX. 2007. pp. 43-54.
- Charles Wright, Lucas Ballard. Descubriendo frases habladas en conversaciones encriptadas de VoIP // Actas del Simposio IEEE sobre seguridad y privacidad. 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).