ZRTP
ZRTP es un protocolo de negociación de clave de cifrado criptográfico que se utiliza en los sistemas de voz sobre IP ( VoIP ). ZRTP describe un método de derivación de clave Diffie-Hellman para el Protocolo de transporte seguro en tiempo real ( SRTP ). ZRTP realiza la negociación de claves en el mismo flujo RTP sobre el que se establece la conexión de audio/video, es decir, no requiere un canal de comunicación separado. Diseñado por Phil Zimmermann (autor de Pretty Good Privacy ), Jon Callas y Alan Johnston en 2006. La descripción del protocolo se presentó ante el IETF el 5 de marzo de 2006.
Descripción
ZRTP se propone como una forma de negociar claves de cifrado utilizando el método Diffie-Hellman sobre un flujo de medios establecido por el protocolo RTP (Protocolo de transporte en tiempo real), que se forma después del inicio de la llamada, utilizando cualquier tipo de señalización, por ejemplo - Sesión Protocolo de iniciación ( SIP ). Durante la llamada, se crea una identificación pública, que se usa para crear las claves que se usarán para cifrar el flujo de medios de la conversación. Por lo tanto, la clave solo es válida para una conversación, formando así una sesión RTP segura ( SRTP ). Cuando se interrumpe la conexión, la clave y todo el contexto criptográfico se destruyen, proporcionando un secreto directo perfecto (PFS). Por lo tanto, existe la posibilidad de que este mecanismo se integre en productos de software de VoIP , puertas de enlace y teléfonos IP existentes.
El protocolo no requiere claves generadas previamente, ni el soporte de una Infraestructura de intercambio de claves ( PKI ) o una Autoridad de certificación (CA). Esto elimina la complejidad de crear una estructura de autorización basada en la confianza, como la que se usa en el cifrado SSL . El objetivo principal de organizar un canal encriptado, ya sea una sesión de voz o una conexión https a un banco de Internet, es evitar la posibilidad de la presencia de un hombre en el medio ( man in the middle ), brindando una protección criptográfica única. entre dos puntos cualesquiera del mundo IP.
En teoría, ZRTP se puede usar junto con cualquier protocolo de señalización que use RTP para la transmisión de medios, incluidos SIP , H.323 , SCCP , MGCP Unistim y Jingle , ya que, en teoría, ZRTP no depende de la señalización mediante el intercambio de claves en la sesión de medios RTP. Por lo tanto, ZRTP puede convertirse en el estándar abierto de facto en el mundo de la telefonía IP.
Autenticación
S.A.S.
Por sí mismo, el algoritmo de intercambio de claves Diffie-Hellman no puede brindar protección contra la presencia de un hombre en el medio (man in the middle) . ZRTP utiliza la cadena de autenticación corta (SAS) para la autenticación, que es una representación abreviada del hash criptográfico de las claves Diffie-Hellman recibidas. Los valores de SAS se calculan en cada lado de la conexión, los suscriptores se los transmiten entre sí por voz para su verificación. Si los valores no coinciden, entonces con gran certeza podemos suponer la presencia de Man_in the middle . El uso del algoritmo Diffie-Hellman le da al Man -in-the-Middle potencial solo un intento de generar el SAS correcto cuando intenta un ataque. Dado que el SAS se deriva de los 32 bits superiores del hash y tiene dos formas de representación (B256 de 16 bits como un par de palabras de la lista PGP y B32 de 20 bits como cuatro caracteres), es muy corto, la probabilidad de no detectar un ataque al usar SAS en formato B256 es 1/65536. El uso de SAS en el formato B32 reduce la probabilidad de no detectar un ataque en 16 veces (en comparación con B256), a 1/1048576.
Continuidad del material clave
La segunda capa de protección ZRTP contra los ataques de intermediarios es la continuidad del material clave. El hash de la información clave de la llamada anterior se mezcla con los parámetros del algoritmo Diffie-Hellman en la siguiente llamada (entre los mismos suscriptores), lo que hace que el protocolo ZRTP sea similar a SSH. Si no hubo "hombre en el medio" en la primera convocatoria, está excluido de todas las posteriores.
Estándar abierto
- El cliente de software Twinkle usa GNU ccRTP y el proyecto GNU ZRTP para usar ZRTP en el desarrollo. Todos los paquetes enumerados están bajo la licencia de código abierto GPL .
- Jitsi actualmente tiene soporte ZRTP usando la librería externa ZRTP4J.
- PJSIP es una pila multiplataforma para el desarrollo de VoIP de código abierto, que se espera que se lance con soporte ZRTP completo en el primer trimestre de 2009. Soporte declarado para Linux , Windows , OSX , Symbian , Windows Mobile .
- PhonerLite - Biblioteca ZRTP de desarrollo propio.
- El soporte ZRTP se puede agregar experimentalmente a Asterisk usando un conjunto de parches desarrollados por el proyecto Zfone. Al mismo tiempo, se usa libZRTP para que el protocolo funcione.
- La compatibilidad con ZRTP se agregó al código central de FreeSWITCH desde el 5 de abril de 2012
Uso comercial
- El desarrollo del autor del propio Philip Zimmerman: Zfone , disponible para Mac OS X, Windows y Linux . Gratis durante la prueba beta, pero solo se planea distribuir copias comerciales no libres en el futuro, ya lo demostró Philip Zimmerman en Moscú.
- KHAMSA SA como PrivateGSM es la primera implementación de ZRTP sobre GSM (sin usar VoIP ) para la plataforma Symbian OS , respectivamente, solo para teléfonos inteligentes. Las extensiones ZRTP/S opcionales le permiten expandir el uso de ZRTP en redes ISDN , PSTN y telefonía satelital. Utiliza la biblioteca libZRTP desarrollada por Zimmerman.
- UM Labs ha lanzado una puerta de enlace de controlador de seguridad SIP que proporciona conexiones cifradas seguras entre dispositivos compatibles con ZRTP, redes VoIP con IP PBX comerciales o gratuitas que no admiten ZRTP u otra protección de cifrado.
- M5T ZRTP SAFE es un desarrollo independiente separado de la pila ZRTP.