El Protocolo de Números de Contacto Temporal , o Protocolo TCN , es un protocolo de alerta de exposición anónimo , descentralizado y de código abierto desarrollado por Covid Watch [1] en respuesta a la pandemia de COVID-19 . [5] [6] [7] [8] El equipo de Covid Watch, que comenzó como una colaboración de investigación independiente entre la Universidad de Stanford y la Universidad de Waterloo, fue el primero en el mundo en publicar un libro blanco , [9] desarrollar [3] y abrir [10] la tecnología de alerta de exposición Bluetooth totalmente anónima en colaboración con CoEpi [2] después de escribir una publicación de blog [11] sobre el tema a principios de marzo.
El Protocolo TCN de Covid Watch recibió una importante cobertura de prensa [12] y fue seguido por protocolos descentralizados similares a principios de abril de 2020 como DP-3T , PACT, [13] y el marco de notificación de exposición de Google/Apple . Covid Watch luego ayudó a otros grupos como la Coalición TCN y MIT SafePaths [14] a implementar el Protocolo TCN dentro de sus proyectos de código abierto para promover el desarrollo de tecnología descentralizada y fomentar la interoperabilidad global de las aplicaciones de rastreo de contactos y alerta de exposición, un aspecto clave para lograr una adopción generalizada. [15] Los voluntarios de Covid Watch y el personal sin fines de lucro también crearon una aplicación móvil de código abierto para enviar alertas de exposición anónimas primero utilizando el Protocolo TCN [16] y luego utilizando el muy similar Marco de Notificación de Exposición de Google/Apple (ENF). [17] [18]
El protocolo, al igual que BlueTrace y el proyecto de rastreo de contactos de Google/Apple , utiliza Bluetooth Low Energy para rastrear y registrar encuentros con otros usuarios. [19] [20] [21] La principal distinción entre TCN y protocolos como BlueTrace es el hecho de que el servidor de informes central nunca tiene acceso a los registros de contactos ni es responsable de procesar e informar a los clientes sobre el contacto. [22] [23] Debido a que los registros de contactos nunca se transmiten a terceros, tiene importantes beneficios de privacidad sobre enfoques como el utilizado en BlueTrace. [24] [25] [26] Sin embargo, este enfoque, por su propia naturaleza, no permite la presentación de informes con intervención humana, lo que puede dar lugar a falsos positivos si los informes no son verificados por agencias de salud pública. [19] : p. 6
El protocolo TCN recibió notoriedad como uno de los primeros protocolos de rastreo de contactos digitales ampliamente difundidos [15] [27] [28] junto con BlueTrace, [29] el marco de notificación de exposición y el proyecto PEPP-PT ( Pan-European Privacy-Preserving Proximity Tracing ). [30] [31] También se destacó por su incorporación de tecnología blockchain , [32] y su influencia sobre el proyecto Google/Apple. [33] [20] [34] [35] [36]
El protocolo TCN funciona a partir de números de contacto temporales (TCN), identificadores semialeatorios derivados de una semilla. [37] Cuando dos clientes se encuentran, se genera un TCN único, se intercambia y luego se almacena localmente en un registro de contactos. [38] Luego, una vez que un usuario da positivo en la prueba de infección, se envía un informe a un servidor central. Cada cliente de la red recopila los informes del servidor y verifica de forma independiente sus registros de contactos locales en busca de un TCN contenido en el informe. Si se encuentra un TCN coincidente, entonces el usuario ha estado en contacto cercano con un paciente infectado y el cliente lo advierte. Dado que cada dispositivo verifica localmente los registros de contactos y, por lo tanto, los registros de contactos nunca se transmiten a terceros, el servidor de informes central no puede determinar por sí mismo la identidad o el registro de contactos de ningún cliente en la red. Esto contrasta con protocolos de la competencia como BlueTrace, donde el servidor de informes central recibe y procesa los registros de contactos del cliente. [39]
Todo el protocolo se basa en el principio de los números de contacto temporales (TCN), un identificador único y anónimo de 128 bits generado de forma determinista a partir de un valor inicial en un dispositivo cliente. Los TCN se utilizan para identificar a las personas con las que un usuario ha entrado en contacto, y la semilla se utiliza para informar de forma compacta sobre la infección a un servidor de informes central. Los informes de TCN se autentifican como genuinos mediante un secreto que solo conserva el cliente.
Para generar un TCN, primero se crean una clave de autorización de informe (RAK) y una clave de verificación de informe (RVK) como claves de firma y verificación de un esquema de firma (par RAK-RVK). En la implementación de referencia, este par se crea utilizando el esquema de firma Ed25519 . [40] : línea. 13 Luego, utilizando la RAK, se genera una clave de contacto temporal inicial (TCK) utilizando el algoritmo , donde es la función hash SHA-256 como . Esta TCK no se utiliza para generar ningún TCN, pero se utiliza en el siguiente TCK; donde todos los TCK futuros se calculan utilizando el algoritmo . Luego, se genera un TCN de 128 bits a partir de un TCK dado utilizando el algoritmo , donde formatea un número suministrado como un entero little endian sin signo de 2 bytes, [41] y es la función hash SHA-256 como . El siguiente diagrama demuestra el proceso de derivación de clave:
Los TCN son únicos para cada encuentro con el dispositivo, y los pares RAK-RVK se reciclan a intervalos regulares para permitir que un cliente informe solo períodos específicos de contacto.
Cuando un cliente desea enviar un informe de los índices TCN a , estructura el informe como . Luego se calcula una firma utilizando el RAK y se transmite al servidor como .
Debido a que cualquier TCK dado solo se puede utilizar para derivar TCN de índice igual o superior, al enviar no se pueden calcular encuentros anteriores a . Sin embargo, no hay un límite superior para los encuentros calculados utilizando el mismo par RAK-RVK, por lo que se realizan ciclos con frecuencia. Para evitar que los clientes calculen TCN no utilizados, indica el último índice TCN generado con el RVK dado. [42] : líneas. 49–61 Además, dado que el RVK se utiliza para calcular un TCK y se proporciona, no se pueden derivar TCN válidos en el período del informe a partir de un informe ilegítimo. El único TCN correcto calculable a partir de un RVK no coincidente y es , el TCN antes del inicio del período del informe.
Una vez que se recibe un informe, los clientes recalculan individualmente los TCK y TCN para un período determinado utilizando los algoritmos originales: los dispositivos cliente utilizan esto para verificar sus registros de contactos locales en busca de posibles encuentros con el paciente infectado, pero tiene el doble beneficio de verificar los informes, ya que los informes falsos nunca producirán TCN coincidentes.
En la estructura del informe, el memo es un espacio para mensajes de formato libre que difieren entre las implementaciones de TCN. La sección tiene entre 2 y 257 bytes y está compuesta por una etiqueta que identifica la implementación específica, así como un par de datos y longitud de datos. Tiene el formato . Los datos están estandarizados para diferentes etiquetas y pueden ser los siguientes:
El protocolo se puede dividir en dos responsabilidades: un encuentro entre dos dispositivos que ejecutan aplicaciones TCN y la notificación de una posible infección a los usuarios que entraron en contacto con un paciente. A los efectos de esta especificación, estas áreas se denominan protocolo de enlace de encuentro y notificación de infecciones . El protocolo de enlace de encuentro se ejecuta en Bluetooth LE y define cómo dos dispositivos reconocen la presencia del otro. La notificación de infecciones se basa en HTTPS y define cómo se distribuyen las notificaciones de infecciones entre los clientes.
Cuando dos dispositivos se encuentran dentro del alcance uno del otro, intercambian un protocolo de enlace que contiene los TCN. Para lograr esto, el protocolo de enlace de encuentro funciona en dos modos (ambos con dos submodos), orientado a la difusión y orientado a la conexión. El orientado a la difusión funciona utilizando los modos emisor y observador, mientras que el orientado a la conexión funciona utilizando periférico y central. Los dos modos se utilizan para eludir ciertas limitaciones del dispositivo, en particular en relación con las restricciones de iOS vigentes antes de la versión 13.4. [43] En ambos modos, el protocolo se identifica con el UUID 0xC019
de 16 bits .
En el modo de transmisión, un transmisor anuncia un TCN de 16 bytes utilizando el campo de datos de servicio de los datos de anuncio. El observador lee el TCN de este campo. En el modo orientado a la conexión, el periférico anuncia utilizando el UUID. El servicio expone un paquete de lectura y escritura para compartir TCN. Después de compartir un TCN, la central se desconecta del periférico.
Cuando un usuario da positivo en la prueba de infección, carga un informe firmado en un servidor central, que permite calcular los encuentros de los últimos 14 días. De forma regular, los dispositivos cliente descargan informes del servidor y comprueban sus registros de contactos locales mediante el algoritmo de verificación. Si hay un registro coincidente, la aplicación notifica al usuario sobre una posible infección.
El 5 de abril de 2020, Covid Watch y otros grupos que se habían unido en torno a un enfoque básicamente idéntico y protocolos en gran medida superpuestos fundaron la Coalición TCN global, con el objetivo de reducir la fragmentación y permitir la interoperabilidad global de las aplicaciones de rastreo y alerta, un aspecto clave para lograr una adopción generalizada. [44] La Coalición TCN también ayudó a establecer el marco de Derechos de Datos para el Rastreo y Alerta de Contactos Digitales, que funciona como una declaración de derechos para los usuarios de dichas aplicaciones. [45]
Actualmente, el protocolo lo utilizan los miembros de la Coalición TCN CoEpi [46] [47] y Covid Watch [ 48] [22] y probablemente fue una fuente de inspiración para el proyecto similar de rastreo de contactos de Google/Apple . [35] [34]
{{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link)