¿Cómo funciona el nuevo protocolo de chat en grupo de WhatsApp y qué propiedades de seguridad tiene?

17

A estas alturas, todo el mundo se ha dado cuenta de que WhatsApp se lanzó al final. - finalice el cifrado recientemente , para comunicación directa, para archivos adjuntos de medios y para chats grupales .

He leído sus white-paper (PDF) y noté una diferencia con < a href="https://whispersystems.org/blog/private-groups/"> Chats grupales de Signal , donde Signal envía el mensaje del grupo a todos los miembros (con un indicador especial en el encabezado cifrado) y WhatsApp envía el mensaje al servidor que lo distribuye.

Ahora estoy confundido sobre cómo funciona el protocolo de chat grupal de WhatsApp, porque no puede usar el protocolo simple de persona a persona (como lo hace Signal) y más bien utiliza una derivación de clave basada en un "trinquete" algo complicado (creo) y qué propiedades de seguridad favorables son sacrificadas por WhatsApp.

Entonces, ¿qué propiedades de seguridad tiene el protocolo de chat en grupo y cómo funciona (en un nivel alto)?

Debido a que las "propiedades de seguridad" son un poco genéricas, aquí hay una lista de las propiedades de seguridad que solicito:

  • Seguridad pasiva (un intruso no puede romper el cifrado)
  • Seguridad activa (un hombre en el medio no puede interrumpir la encriptación después de la primera configuración)
  • Secreto hacia adelante (un compromiso de las claves de cifrado secretas de hoy no rompe la seguridad de los mensajes pasados, grabados por el atacante)
  • Denegación plausible (no hay pruebas sólidas de que me haya enviado un mensaje específico tan pronto como haya transcurrido el tiempo X)
  • Consistencia de la transcripción (hay una prueba "difícil" de que todos los miembros del grupo vieron / vieron los mismos mensajes)
pregunta SEJPM 06.04.2016 - 13:26
fuente

2 respuestas

8

En primer lugar, de su documento

  

Los mensajes a los grupos de WhatsApp se basan en las sesiones cifradas de pares   esbozado anteriormente para lograr un despliegue eficiente del lado del servidor para la mayoría   Mensajes enviados a grupos. Esto se logra utilizando las "teclas de remitente"   componente del protocolo de mensajería de señal.

     

La primera vez que un miembro del grupo de WhatsApp envía un mensaje a un grupo:

     
  1. El remitente genera una clave de cadena aleatoria de 32 bytes.
  2.   
  3. El remitente genera un par de claves de clave de firma Curve25519 aleatorias.
  4.   
  5. El remitente combina la clave de cadena de 32 bytes y la clave pública de la clave de firma en un mensaje de clave de remitente.
  6.   
  7. El remitente encripta individualmente la clave del remitente para cada miembro del grupo, utilizando el protocolo de mensajería en pares explicado anteriormente.   Para todos los mensajes posteriores al grupo:
  8.   
  9. El remitente deriva una clave de mensaje de la clave de cadena y actualiza la clave de cadena.
  10.   
  11. El remitente cifra el mensaje utilizando AES256 en modo CBC.
  12.   
  13. El remitente firma el texto cifrado con la clave de firma.
  14.   
  15. El remitente transmite el único mensaje de texto cifrado al servidor, que hace un despliegue del lado del servidor a todos los participantes del grupo. El "hash   trinquete "de la clave de cadena del remitente del mensaje proporciona el secreto hacia adelante.   Cada vez que un miembro del grupo se va, todos los participantes del grupo borran sus   Sender Key y empezar de nuevo.
  16.   

Diría que el punto clave aquí es el número 4: el remitente individualmente cifra la clave del remitente a cada miembro del grupo, utilizando el protocolo de mensajería de pares explicado anteriormente

Es una adaptación inteligente que se basa en el protocolo uno a uno: úselo para distribuir una clave compartida a cada miembro individual del grupo, de modo que el grupo pueda usar el servidor para proporcionar un ventilador eficiente. -out "(así como almacenamiento de blob) sin que el servidor tenga acceso a las claves privadas requeridas.

"Entonces, ¿qué propiedades de seguridad tiene el protocolo de chat de grupo y cómo funciona (en un nivel alto)?"

En cuanto a cómo funciona, creo que el documento es tan detallado como el que estará disponible por ahora hasta que alguien más realice un análisis completo (aplicado).

En cuanto a las características que proporciona ...

  • Secreto hacia adelante: el mecanismo de trinquete descrito proporciona esto (o eso dicen)

  • Pasivo: el método de distribución "Clave del remitente" en el punto 4 hace que los ataques pasivos sean casi imposibles: tenga en cuenta que una parte pasiva tendría que pasar a través de la capa de cifrado de canalizaciones de ruido (a los servidores de WhatsApp) para cada una de las partes en el grupo y probablemente requeriría múltiples puntos de presencia, lo que facilitó el acceso al tráfico para cada parte del grupo ... así que prácticamente puede descartar que haya alguien allí a menos que sea un proveedor principal de la red troncal o NSA .

  • Ataque activo: diría un ataque de canal lateral en uno de los dispositivos del grupo sería factible, pero si tiene ese nivel de acceso invasivo al dispositivo (y, por lo tanto, muy probablemente a su dueño), un par de alicates y 5 minutos con el propietario del dispositivo probablemente será mucho más fructífero. .

  • Coherencia de la transcripción: todos los mensajes utilizan HMAC para garantizar la integridad (paso 7)

  • Denegación plausible: en todo caso, toda la seguridad adicional proporcionada por su nueva implementación hace que sea muy difícil negar que un usuario en particular haya enviado un mensaje ...

respondido por el Nathan 06.04.2016 - 16:33
fuente
1

Por lo que puedo reunir en el documento técnico, el mensaje de grupo se cifra dentro del grupo. El mismo Sender Key es distribuido y usado por cada participante, lo que hace que el mensaje no esté autenticado por construcción.

¿Cómo se sincroniza el trinquete entre los remitentes, sin pista?

Propiedades:

  • Seguridad pasiva: Sí (un intruso no puede romper el cifrado)
  • Seguridad activa (un hombre en el medio no puede romper el cifrado sin notar después de la primera configuración): Sí, incluso si intenta hacerse pasar por el servidor, ya que el servidor nunca obtiene ninguna clave.
  • Secreto hacia adelante: sí por medio de la función de trinquete.
  • Deniabilidad plausible: Sí, todos firman y encriptan con la misma clave simétrica (por lo que puedo decir).
  • Coherencia de la transcripción: sí, ya que deben notificarse los cambios de Chain Key .

El documento técnico está lejos de ser una descripción técnica del protocolo. Así que tomaría esto con extrema precaución.

    
respondido por el M'vy 06.04.2016 - 16:57
fuente

Lea otras preguntas en las etiquetas