Nueva versión del protocolo de seguimiento de contactos de Apple y Google

Apple y Google

El 24 de abril de 2020, Apple y Google anunciaron una actualización del Protocolo de seguimiento y contacto desarrollado conjuntamente (Protocolo de seguimiento de contactos de Apple y Google), que ahora llaman Tecnología de notificación de exposición, ya que el nombre describe mejor el protocolo.


El 29 de abril, se lanzó iOS 13.5 beta con la primera implementación de este protocolo. Beta tiene como objetivo probar a los desarrolladores una nueva API y obtener comentarios. Está previsto que el acceso a la API se publique solo para las aplicaciones oficialmente asociadas con las instituciones médicas estatales.


Este artículo hablará sobre qué causó los cambios en el protocolo, si las vulnerabilidades permanecieron después de la actualización y si Apple y Google pudieron responder a las críticas (a menudo irrazonables).


Cambio de nombre


Como señalan las empresas, el seguimiento de contactos es, aunque necesario, pero solo parte del protocolo.

El objetivo de la solución que se está desarrollando es notificar a las personas con anticipación que podrían estar infectadas con COVID-19 para reducir la propagación de la enfermedad.




, , , COVID-19 ( 14 ), , , , .

, , .

. , Apple Google .


, .



El esquema de trabajo del antiguo protocolo Apple / Google

iOS Android , Apple & Google Contact Tracing API .


:


  1. Tracing Key.
  2. Daily Tracing Key HKDF Tracing Key .
  3. 10 Rolling Proximity ID HMAC Daily Tracing Key .
  4. Bluetooth Low Energy. , , .
  5. - , 14 , 14 , Rolling Proximity ID’s 14 .
  6. , .

.



El esquema de trabajo del nuevo protocolo Apple / Google

  1. 16- Exposure Key.
    Rolling Proximity Key (RPIKey) Associated Encrypted Metadata Key (AEMKey):


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

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

    :


    • HKDF – - HKDF(Key, Salt, Info, OutputLength) RFC 5869, SHA-256
    • NULL – ,
      UTF8("EN-RPIK") – , EN-RPIK UTF8

    Bluetooth LE MAC 15-20 , .

    MAC Rolling Proximity ID (RPID)


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

    :


    • AES128(Key, Data) – - AES 128- . 128-
    • RPIKey – Rolling Proximity Key
    • || – , :
      • UTF8("EN-RPI") – 6 , EN-RPI UTF8
      • 0x000000000000 – 6 ( 128- )
      • Ti – 4- 10- , unix_timestamp div (60 * 10), div –

    4 Associated Encrypted Metadata (AEM). , . , .

    .


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

    :
    AES128−CTR(Key, IV, Data) – - AES-CTR, 128- AEMKey. , .

    IV Rolling Proximity Key.


    Rolling Proximity ID Associated Encrypted Metadata , BLE Payload:





    Bluetooth Low Energy. , , .

  2. - , 14 . , 14 , Rolling Proximity ID’s 14 .



“ ” Apple Google.

Apple Google . , , , . (, ) .



Tracing Key, Daily Tracing Key’s, .

Exposure Key ( Daily Tracing Key) , .. .

DP-3T, . .


Apple / Google , 2- :


  • , Tracing Key. , .
  • Daily Tracing Key Tracing Key, , BLE ( Tracing Key).

AES HMAC-SHA-256


AES HMAC-SHA-256 .

10 , .

, - 10K .

140K 140K*144 ~ 20 ( 144 24*60/10), .

, , , , . , 10 , .. 140 2 , 140*10K=1,4M , .

AES , .


MAC RPI


.

, Rolling Proximity Identifier 10 , MAC Bluetooth LE 15-20 .

, RPI MAC , RPI MAC MAC RPI.

, , Bluetooth .

MAC RPI .

:

The key schedule is fixed and defined by operating system components, preventing applications from including static or predictable information that could be used for tracking.

, , , MAC RPI .

DP-3T OpenCovidTrace Bluetooth LE .


Associated Metadata


– . , , .


:

  • -, 15-20 , 4 .

    : 1) , 2) , 3) (, .. 4 ), 4) , 5) , 6) , ID, , .
  • -, ( ) , .

    , , . , , , .. ( , ). , , .
  • , , , .

    , .

, :

  • Bluetooth , .
  • /, , , .
  • , , ID, , . , , ID .

    ID .


, .

, , . , .


– IT – .


OpenCovidTrace , open-source, .



open-source OpenCovidTrace, DP-3T Apple/Google , iOS.


Github!

, .


OpenCovidTrace, .


, .




All Articles