Nouvelle version d'Apple et de Google Contact Tracing Protocol

Apple et Google

Le 24 avril 2020, Apple et Google ont annoncé une mise à jour du Contact & Tracing Protocol développé conjointement (Apple et Google Contact Tracing Protocol), qu'ils appellent maintenant la technologie de notification d'exposition, car le nom décrit mieux le protocole.


Le 29 avril, iOS 13.5 beta est sorti avec la première implémentation de ce protocole. La bêta vise à tester les développeurs d'une nouvelle API et à obtenir des commentaires. L'accès à l'API ne devrait être délivré qu'aux applications officiellement associées aux institutions médicales publiques.


Cet article expliquera ce qui a causé les changements dans le protocole, si les vulnérabilités sont restées après la mise à jour et si Apple et Google ont pu répondre aux critiques (souvent déraisonnables).


Changement de nom


Comme le notent les entreprises, le suivi des contacts est, bien que nécessaire, mais seulement une partie du protocole.

L'objectif de la solution développée est d'avertir à l'avance les personnes susceptibles d'être infectées par COVID-19 afin de réduire la propagation de la maladie.




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

, , .

. , Apple Google .


, .



Le schéma de fonctionnement de l'ancien protocole 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. , .

.



Le schéma de fonctionnement du nouveau protocole 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