Exposure Notification

Das Exposure Notification Framework (ENF; deutsch Expositionsbenachrichtigungs-Rahmenwerk; auch Google/Apple Exposure Notification, GAEN[1]) ist ein von Apple und Google entwickeltes System, dessen Ziel die Reduzierung der Verbreitung von COVID-19 durch Contact-Tracing ist.[2][3] Es stellt eine Programmierschnittstelle (API) bereit, über das offizielle Regierungsstellen wie Gesundheitsbehörden beziehungsweise von diesen beauftragte Dritte auf bereitgestellte Funktionen zugreifen können.[3][4] Das ENF ist auf Betriebssystemebene in iOS und die Google-Play-Dienste eingebunden und ermöglicht den Austausch von Zufallsschlüsseln über Bluetooth Low Energy (BLE).[5]

Funktionsweise

Die hier beschriebene Funktionsweise des ENF basiert auf den Spezifikationen zur Kryptografie in der Version 1.2.[6]

Zu Beginn des Key Schedules wird ein Temporary Exposure Key ( t e k i {\displaystyle tek_{i}} ) – ein 16-Byte-Schlüssel – mit einem Cryptographic Random Number Generator (CRNG) generiert. Generierte t e k i {\displaystyle tek_{i}} wechseln täglich und umfassen jeweils T E K R o l l i n g P e r i o d := 144 {\displaystyle TEKRollingPeriod:=144} ca. zehn-minütige Zeitintervalle der Form E N I n t e r v a l N u m b e r ( z ) = Z e i t s t e m p e l 60 × 10 {\displaystyle ENIntervalNumber(z)={\frac {Zeitstempel}{60\times 10}}} mit Zeitangabe in Unixzeit. Die t e k i {\displaystyle tek_{i}} werden jeweils mit dem Startintervall i = E N I n t e r v a l N u m b e r ( S t a r t z e i t p u n k t ) T E K R o l l i n g P e r i o d × T E K R o l l i n g P e r i o d {\displaystyle i=\llcorner {\frac {ENIntervalNumber(Startzeitpunkt)}{TEKRollingPeriod}}\lrcorner \times TEKRollingPeriod} assoziiert. Das ENF speichert die letzten 14 t e k i {\displaystyle tek_{i}} auf dem Endgerät ab.[6]

Durch R P I K i = H K D F i ( t e k i , N U L L , U T F 8 ( E N R P I K ) , 16 ) {\displaystyle RPIK_{i}=HKDF_{i}(tek_{i},NULL,UTF8('EN-RPIK'),16)} und A E M K i = H K D F i ( t e k i , N U L L , U T F 8 ( E N A E M K ) , 16 ) {\displaystyle AEMK_{i}=HKDF_{i}(tek_{i},NULL,UTF8('EN-AEMK'),16)} ergeben sich die mit HKDF abgeleiteten Schlüssel Rolling Proximity Identifier Key ( R P I K i {\displaystyle RPIK_{i}} ) und Associated Encrypted Metadata Key ( A E M K i {\displaystyle AEMK_{i}} ). Für jedes der 144 zehn-minütigen Zeitintervalle können unter Verwendung des Advanced Encryption Standard (AES) durch R P I i , j = A E S 128 ( R P I K i , P a d d e d D a t a j ) {\displaystyle RPI_{i,j}=AES_{128}(RPIK_{i},PaddedData_{j})} Rolling Proximity Identifier ( R P I i , j {\displaystyle RPI_{i,j}} ) gebildet werden. P a d d e d D a t a j {\displaystyle PaddedData_{j}} besteht dabei aus U T F 8 ( E N R P I ) {\displaystyle UTF8('EN-RPI')} , 0 x 000000000000 {\displaystyle 0x000000000000} sowie E N I n t e r v a l N u m b e r ( j ) {\displaystyle ENIntervalNumber(j)} mit j {\displaystyle j} als Zeitpunkt der R P I i , j {\displaystyle RPI_{i,j}} -Erzeugung. Der R P I i , j {\displaystyle RPI_{i,j}} fließt dann als Initialisierungsvektor in die Verschlüsselung von Bluetooth-Daten wie der Protokollversion und Signalstärke mit AES im Counter Mode. Durch A E M i , j = A E S 128 C T R ( A E M K i , R P I i . j , M e t a d a t e n ) {\displaystyle AEM_{i,j}=AES_{128}-CTR(AEMK_{i},RPI_{i.j},Metadaten)} entsteht die Associated Encrypted Metadata ( A E M i , j {\displaystyle AEM_{i,j}} ). R P I i , j {\displaystyle RPI_{i,j}} und A E M i , j {\displaystyle AEM_{i,j}} wechseln parallel zur zufälligen BLE MAC-Adresse.[6][7]

Die entstandenen R P I i , j {\displaystyle RPI_{i,j}} und A E M i , j {\displaystyle AEM_{i,j}} werden in einem Broadcast via Bluetooth an Geräte in der Umgebung verschickt. Zudem empfängt das Endgerät selbst die R P I i , j {\displaystyle RPI_{i,j}} und A E M i , j {\displaystyle AEM_{i,j}} anderer Geräte, die das ENF nutzen, und speichert diese ab.[6]

Liegt ein bestätigtes positives Ergebnis eines COVID-19-Tests vor, können die t e k i {\displaystyle tek_{i}} der letzten 14 Tage mit den zugehörigen i {\displaystyle i} als Diagnosis Keys zu einem designierten Server hochgeladen werden, welcher die Schlüssel verwaltet und den Clients zur Verfügung stellt.[6]

Die Clients können die Diagnosis Keys herunterladen und über die aufgeführten Schritte die R P I i , j {\displaystyle RPI_{i,j}} infizierter Personen generieren. Durch einen Vergleich der so generierten R P I i , j {\displaystyle RPI_{i,j}} mit den über Bluetooth gesammelten R P I i , j {\displaystyle RPI_{i,j}} lässt sich ermitteln, ob eine Übereinstimmung vorliegt. Ist dies der Fall, liegt ein Risikokontakt vor und die zugehörige A E M i , j {\displaystyle AEM_{i,j}} wird entschlüsselt, um eine Risikoeinschätzung zu ermöglichen.[6]

Einzelnachweise

  1. Jaap-Henk Hoepman: A Critique of the Google Apple Exposure Notification (GAEN) Framework. 12. Januar 2021, abgerufen am 26. März 2021 (englisch). 
  2. Privacy-Preserving Contact Tracing. Abgerufen am 25. März 2021 (englisch). 
  3. a b Apple Developer Documentation - Exposure Notification. Abgerufen am 25. März 2021 (englisch). 
  4. Exposure Notification APIs Addendum. 5. April 2020, S. 1, abgerufen am 25. März 2021 (englisch). 
  5. Bericht zur Datenschutzfolgeabschätzung für die Corona Warn App der Bundesrepublik Deutschland. Robert Koch-Institut, 2. März 2021, S. 15, abgerufen am 25. März 2021. 
  6. a b c d e f Apple Inc., Google LLC: Exposure Notification Cryptography Specification. 2021, abgerufen am 26. März 2021 (englisch). 
  7. Apple Inc., Google LLC: Exposure Notification Bluetooth Specification. 2021, abgerufen am 26. März 2021 (englisch).