On April 24, 2020, Apple and Google announced an update to the jointly developed Contact & Tracing Protocol (Apple & Google Contact Tracing Protocol), which they now call the Exposure Notification Technology, as the name describes the protocol better.
On April 29, iOS 13.5 beta was released with the first implementation of this protocol. Beta aims to test developers a new API and get feedback. Access to the API is planned to be issued only to applications officially associated with state medical institutions.
This article will talk about what caused the changes in the protocol, whether the vulnerabilities remained after the update, and whether Apple and Google were able to respond to criticism (often unreasonable).
Name change
As companies note, contact tracing is, although necessary, but just part of the protocol.
The objective of the solution being developed is to notify people in advance that could potentially be infected with COVID-19 in order to reduce the spread of the disease.

, , , 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, .
, .