Criptografía contra el coronavirus

Gonzalo Álvarez Marañón    9 junio, 2020
Criptografía contra el coronavirus

Gobiernos y autoridades sanitarias de todo el mundo están lanzando apps de seguimiento de contagios. Por otra parte, en una alianza sin precedentes, Apple y Google unieron fuerzas para crear una API que facilita su desarrollo. Los científicos coinciden en que la adopción de este tipo de apps por el mayor número posible de ciudadanos ayudará a desacelerar la expansión de la Covid-19. Según un cálculo aproximado, si el 80% de los usuarios de terminales móviles con iOS o Android las instalan, esto equivaldría al 56% de la población total, una cifra suficiente para contribuir significativamente a frenar la pandemia.

Por desgracia, desde el anuncio de la puesta en marcha de estas apps han circulado todo tipo de bulos y fake news difundiendo mentiras sobre escenarios conspiranoicos de espionaje masivo. Este miedo infundado puede llevar a muchas personas a no utilizar la app cuando esté disponible en su país, por eso en este artículo vamos a explicar cómo funciona su criptografía para garantizar la privacidad de los usuarios.

La criptografía de las apps basadas en la API de Apple y Google

Si las autoridades sanitarias de tu país o región han creado una app, puedes acudir a Apple Store o a Play Store a descargártela, dependiendo de si tu dispositivo es iOS o Android, respectivamente. Aunque puedes tener instalada en tu dispositivo más de una app que use las notificaciones de exposición, sólo puede haber una activa al mismo tiempo.

Si decides instalar voluntariamente la app autorizada en tu región o país, ésta te solicitará permiso para recopilar y compartir identificadores aleatorios. Para proteger tu privacidad, la app usa un Generador de Números Aleatorios Critptográficamente Seguro para generar aleatoria e independientemente una clave temporal de exposición (Temporal Exposure Key o ExpKey) cada 24 horas. A partir de ella se derivan, mediante una función HDKF, una clave de cifrado para generar los identificadores temporales de proximidad (Rolling Proximity Key o RPIKey) y una clave de cifrado de metadatos asociados (Associated Encrypted Metadata Key o AEMKey) para cifrar metadatos adicionales en caso de que posteriormente des positivo en un test.

RPIKey = HKDF(ExpKey, NULL, UTF8(“EN-RPIK”), 16)

AEMKey = HKDF(ExpKey, NULL, UTF8(“EN-AEMK”), 16)

Las especificaciones de Bluetooth de Baja Energía (Bluetooth Low Energy o BLE) asumen que la dirección MAC de tu dispositivo cambia cada 15-20 minutos para evitar el rastreo del dispositivo. Cada vez que cambia tu dirección MAC, la app genera un nuevo identificador rotativo de proximidad (Rolling Proximity ID o RPID) obtenido cifrando, mediante AES-128 con la clave RPIKey anterior, el valor de la nueva ventana de tiempo de 10 minutos, Ti.

RPID = AES128(RPIKey, UTF8(“EN-RPI”) || 0x000000000000 || Ti)

Por otro lado, los metadatos asociados se cifran con AES128-CTR usando como clave la AEMKey anterior y como IV, el RPID.

AEM = AES128−CTR(AEMKey, RPID, Metadata)

Ilustración 1. Esquema de Claves para Notificación de Exposiciones
Ilustración 1. Esquema de Claves para Notificación de Exposiciones (fuente: Exposure Notification Cryptography Specification)

Estos metadatos comprenden la fecha, la duración estimada de la exposición y la intensidad de la señal Bluetooth. Para proteger aún más tu privacidad, la duración estimada máxima que se registra es de 30 minutos. La intensidad de la señal Bluetooth ayuda a comprender la proximidad de los dispositivos. Por lo general, cuanto más cerca estén los dispositivos, mayor será la intensidad de la señal registrada. Asimismo, otros dispositivos que reciban tus identificadores Bluetooth los registrarán de un modo similar y los almacenarán junto con los metadatos asociados.

Como puedes ver, ni los identificadores Bluetooth ni las claves aleatorias del dispositivo incluyen información sobre tu ubicación ni sobre tu identidad. Tampoco aparece GPS por ningún lado, por lo que no hay forma de rastrear tus movimientos.

Tu terminal y los terminales que te rodean funcionan en segundo plano intercambiando constantemente esta información sobre RPID y metadatos cifrados a través de BLE sin necesidad de tener la aplicación abierta para que este proceso se lleve a cabo.

¿Qué sucede si doy positivo en Covid-19?

Si posteriormente se te diagnostica la Covid-19, tu terminal publica tus últimas 14 claves de exposición temporal (ExpKey) en un servidor de las autoridades sanitarias de tu región o país denominado Servidor de Diagnóstico. Su misión es agregar las claves de diagnóstico de todos los usuarios que han dado positivo y distribuirlas a todos los demás usuarios que participan en la notificación de la exposición.

Todos los demás dispositivos del sistema descargan estas 14 claves, regeneran los identificadores RPID para los 14 últimos días y los comparan con los identificadores almacenados localmente. Si existe alguna coincidencia, la app tendrá acceso a los metadatos asociados (pero no al identificador coincidente), de modo que podrá notificarte que se ha producido una posible exposición y te orientará sobre qué medidas adoptar en función de las instrucciones dictadas por las autoridades sanitarias.

En función de su diseño, es posible que la app genere un valor de riesgo de exposición que el Gobierno o las autoridades sanitarias podrían utilizar para adaptar las directrices específicamente para ti y así controlar mejor la pandemia. El valor de riesgo de exposición se define y se calcula en función de los metadatos asociados, así como el valor de riesgo de transmisión que el Gobierno o las autoridades sanitarias pueden definir para las claves aleatorias del dispositivo coincidentes. En ningún caso se compartirá el valor de riesgo de exposición ni el valor de riesgo de transmisión con Apple ni Google.

Los parámetros usados para este valor de riesgo de transmisión podrían incluir información que les has proporcionado (como los síntomas de los que informes o si tu diagnóstico ha sido confirmado mediante una prueba) u otra información que el Gobierno o las autoridades sanitarias consideren que podría afectar a tu riesgo de transmisión, como tu profesión. La información que decidas proporcionar al Gobierno o a las autoridades sanitarias se recopila de conformidad con los términos de la política de privacidad de la app y sus obligaciones legales.

Por el contrario, si permaneces sano y no das positivo, tus Claves de Exposición Temporal no abandonarán tu dispositivo.

Algunas reflexiones finales sobre la API de Apple y Google y tu privacidad

Dada la imagen de Gran Hermano de Google y Apple en nuestro imaginario colectivo, a mucha gente le dará igual la criptografía de esta API y no se fiará de estas dos empresas. Para darte más seguridad, ten en cuenta que:

  • Tú decides si recibes o no las notificaciones de exposición: esta tecnología sólo funciona si decides optar por ella. Si cambias de opinión, puedes apagarla en cualquier momento.
  • El Sistema de Notificaciones de Exposición no rastrea tu ubicación: no recoge ni utiliza la ubicación de su dispositivo mediante GPS u otros medios. Utiliza Bluetooth para detectar si dos dispositivos están cerca uno del otro, sin revelar su ubicación.
  • Ni Google ni Apple ni otros usuarios pueden ver tu identidad: todas las coincidencias del sistema de Notificaciones de Exposición se procesan en tu dispositivo. Las autoridades sanitarias pueden pedirte información adicional, como un número de teléfono para ponerse en contacto contigo y proporcionarte orientación adicional.
  • Sólo las autoridades sanitarias pueden utilizar este sistema: el acceso a la tecnología se concederá únicamente a las aplicaciones de las autoridades sanitarias. Sus aplicaciones deben cumplir con criterios específicos sobre privacidad, seguridad y uso de datos.
  • Apple y Google desactivarán el sistema de notificaciones de exposición en cada región cuando ya no sea necesario.

El éxito está en la masa crítica

Recuerda que estas apps sólo surtirán efecto si al menos el 80% de los usuarios de iOS y Android las instalan y mantienen el Bluetooth encendido cuando salen de sus casas. Si desactivas la conexión Bluetooth de tu dispositivo, también dejarán de recopilarse y compartirse los identificadores Bluetooth aleatorios con otros dispositivos. Esto significa que la app no podrá notificarte si te has expuesto a alguna persona con Covid-19.

Por lo tanto, cada ciudadano equilibrará en su conciencia el bien público con la salvaguarda de la privacidad para tomar la decisión de si utilizar estas apps o no.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *