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 .
, .
iOS Android , Apple & Google Contact Tracing API .
:
- Tracing Key.
- Daily Tracing Key HKDF Tracing Key .
- 10 Rolling Proximity ID HMAC Daily Tracing Key .
- Bluetooth Low Energy. , , .
- - , 14 , 14 , Rolling Proximity ID’s 14 .
- , .
.
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-256NULL
– ,
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 UTF80x000000000000
– 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. , , .
- - , 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, .
, .