Saltar al contenido

Confirmación de cifrado de las comunicaciones extremo a extremo con Whatsapp

En las últimas horas, van apareciendo una serie de mensajes en las conversaciones de la aplicación de mensajería instantánea Whatsapp con el siguiente texto:

Las llamadas y mensajes enviados a este chat ahora están seguros con cifrado de extremo a extremo. Toca para más información.

Aunque en sus orígenes Whatsapp era una aplicación bastante insegura, con cada versión se superan. Aparte de encriptar ahora las conversaciones en ambos extremos (entre clientes de mensajería) también se encriptan las llamadas y ficheros adjuntos a partir de las versiones liberadas a partir del 31 de marzo de 2016.

Mensaje de comunicación encriptada mostrado por Whatsapp.
Mensaje de comunicación encriptada mostrado por Whatsapp.

Los tipos de claves utilizadas son:

  • Públicas:
    • Par de claves de identidad (Identity Pair Key): par de claves generadas durante la instalación de 128 bits mediante el algoritmo de curva elíptica de Diffie-Hellman.
    • Par de claves de firma (Signed Pre Key): Otro par de claves similar al anterior pero de menor vida útil: dicho par se regenera pasado un tiempo determinado.
    • Claves de un sólo uso (One-time Pre Keys): Una cola de claves como las anteriores pero de un único uso que se van generando según van siendo necesarias.
  • De sesión:
    • Clave maestra (Root Key): clave de longitud 32 bytes utilizada para la generación de Chain Keys.
    • Clave de encadenamiento (Chain Key): otra clave de longitud 32 utilizada para la generación de claves de mensaje.
    • Claves de mensaje (Message Key): valor de 80 bytes usado para encriptar los contenidos de los mensajes, de los cuales:
      • 32 bytes son para encriptar el mensaje mediante AES-256.
      • 32 bytes son para firmar el mensaje con HMAC-SHA256.
      • 16 bytes se reservan para el vector de incialización.

Para comprobar si el cifrado está habilitado en el mensaje proporcionado por Whatsapp ya aparece el candado, pero para cerciorarse de que el otro extremo de la comunicación es quien dice ser, presencialmente con la otra persona es posible utilizar un código QR y escanearlo con el otro dispositivo para verificar la seguridad.

Al pulsar sobre el mensaje mostrado se proporcionan las opciones de confirmar la identidad de los dispositivos involucrados en la comunicación (QR o mediante bytes) así como la de obtener información acerca de la encriptación.
Al pulsar sobre el mensaje mostrado se proporcionan las opciones de confirmar la identidad de los dispositivos involucrados en la comunicación (QR o mediante bytes) así como la de obtener información acerca de la encriptación.

De todos modos, aunque el protocolo de encriptación utilizado por Whatsapp es Open Source (libsignal, desarrollado por la empresa Open Whispery Systems) al tratarse de una aplicación de código privativo y no ser los sistemas internos transparentes al usuario siempre puede existir alguna vulnerabilidad o atacante MiTM (intencionado o no) que comprometa la seguridad de las comunicaciones. Eso sí, las posibilidades de esto son pequeñas. Además, el sistema de cifrado aparenta poseer una elevada robustez.

Más información disponible en https://www.whatsapp.com/security/.

Publicado enDesarrollo para dispositivos móvilesNoticiasRedes e InternetSeguridad de Sistemas