Verschlüsselung
Die nachfolgende Dokumentation beschreibt alle relevanten Details der eingesetzten Verschlüsselung und richtet sich an technisch versierte Kryptologen. Für allgemeinverständliche Hintergründe wird auf das → Datenschutzkonzept verwiesen. Rechtliche Angaben zur Verarbeitung von personenbezogenen Daten können in der → Datenschutzerklärung eingesehen werden.
Verschlüsselungskonzept
Im Zuge der Ersteinrichtung wird ein Einrichtungszertifikat für die Verschlüsselung von Nutzerdaten in QRONITON erzeugt, oder optional ein direkter Systemzugang für die vor Ort zuständige Gesundheitsbehörde eingerichtet. Jegliche Übertragung von Daten an die QRONITON-Infrastruktur wird stets auch mit einem Zertifikat des Betreibers gegen Datendiebstahl und Manipulation gesichert. Alle Zertifikate werden bei Aufruf der Web-Anwendung an die jeweiligen Akteure ausgeliefert.
QR-Code-Erzeugung Vom Betreiber wird eine eindeutige Web-URL zur Einbettung in den QR-Code abgerufen. Im Browser werden vom Verantwortlichen Ortsdaten zur Beschreibung der Veranstaltung bzw. des Raumes eingegeben, ein zufälliger Ortsschlüssel generiert und als URL-Fragment (#) angehängt. Die Ortsdaten werden mit den Zertifikaten asymmetrisch verschlüsselt und an den Betreiber übertragen.
Nutzerregistrierung Aus manuell eingegebenen (oder auch von der Einrichtung abgerufenen) Nutzerdaten wird im Browser des Nutzers ein Nutzerschlüssel generiert und lokal im Browser Storage abgelegt. Die Nutzerdaten werden mit den Zertifikaten asymmetrisch verschlüsselt und an den Betreiber übertragen.
Kontakt-Scan Durch Scannen eines QR-Codes wird die Web-Anwendung aufgerufen. Aus dem URL-Fragment wird der Ortsschlüssel auf dem Gerät extrahiert, aber nicht an die Web-Anwendung übertragen. Zudem werden für jedes 30-Minuten-Intervall der gewählten Aufenthaltsdauer Zeitschlüssel für den QR-Code vom Betreiber abgerufen. Durch Kombination beider Schlüssel entstehen Zeit/Ort-abhängige Kompositschlüssel, die für alle zeitgleichen Kontakt-Scans eines spezifischen QR-Codes identisch sind. Mit diesen Kompositschlüsseln werden Referenzen auf die registrierten Nutzer- und Ortsdaten symmetrisch verschlüsselt, auch die Kompositschlüssel selbst werden mit dem Nutzerschlüssel symmetrisch verschlüsselt. Alle verschlüsselten Datenpunkte werden zusammen mit den Nutzerangaben zum Scan-Vorgang (Zeitpunkt, Dauer, Intensität) an den Betreiber übertragen.
Nachverfolgung Für das Auslösen der Kontaktnachverfolgung wird aus der Telefonnummer des Nutzers ein konkreter Nutzerschlüssel abgeleitet. Durch die Einrichtung oder Gesundheitsbehörden lassen sich damit alle Zeit/Ort-abhängigen Kompositschlüssel identifizieren und entschlüsseln, die vom betroffenen Nutzer durch dessen Kontakt-Scans verwendet wurden. Hierüber wiederum können auch alle weiteren mit diesem Schlüssel geschützten Kontakt-Datensätze anderer Nutzer entschlüsselt werden. Die dadurch zugänglichen Nutzer- und Ortsdaten aller Kontaktpersonen werden (noch asymmetrisch verschlüsselt) an die Einrichtung oder Behörde übermittelt, die diese mit dem privaten Schlüssel ihres Zertifikats im Browser entschlüsseln.
Verschlüsselungstechnik
Im Rahmen jeder Datenerhebung und Datenverarbeitung im QRONITON-Dienst kommen die nachfolgend beschriebenen Krypto-Primitive und Verschlüsselungstechniken zum Einsatz.
Symmetrische Verschlüsselung Es wird ein zufallsgenerierter Schlüssel der Länge 128 Bit und AES-GCM, d.h. Authenticated Encryption with Associated Data (AEAD), mit einer Nonce der Länge 96 Bit und einem Message Authentication Code (Tag) der Länge 128 Bit eingesetzt. Die Parameter der Verschlüsselung sowie dessen Ergebnisse werden Byte-kodiert im Format Nonce|Ciphertext|Tag an die Infrastruktur des Betreibers übertragen.
Asymmetrische Verschlüsselung Öffentliche Schlüssel liegen als X.509-Zertifikate mit 2048 Bit Schlüssellänge vor. Alle damit zu verschlüsselnden Daten werden zunächst mit einem pseudo-zufällig erzeugten Schlüssel symmetrisch verschlüsselt, hierbei wird AES-GCM, d.h. Authenticated Encryption with Associated Data (AEAD), eingesetzt. Die Schlüssellänge beträgt 128 Bit, zudem wird eine Nonce der Länge 96 Bit und ein Message Authentication Code (TAG) der Länge 128 Bit verwendet. Die asymmetrische RSA-Verschlüsselung des symmetrischen Schlüssels erfolgt mittels RSAES-OAEP, d.h. mittels Optimal Asymmetric Encryption Scheme gemäß RFC8017. Dabei kommt als Hash-Algorithmus SHA-256 (SHA-2) zum Einsatz, zur Maskenerzeugung wird MGF1 ebenfalls mit SHA-256 (SHA-2) verwendet. Entsprechend verschlüsselte Daten werden nach CMS/PKCS#7 erzeugt, d.h. konform zur Cryptographic Message Syntax gemäß RFC5083 und RFC5084 und schließlich im ASN.1-Format DER-kodiert an die Infrastruktur des Betreibers übertragen. Im Rahmen der Verschlüsselung werden alle Empfehlungen des aktuellen Stands der Technik gemäß RFC6160 umgesetzt.
Schlüsselerzeugung Für die Erzeugung von symmetrischen Schlüsseln der Länge 128 Bit aus (eingegebenen oder über ein Identity-Management-System abgerufenen) Nutzerdaten kommt die Key Derivation Function PBKDF2 mit 100.000 Iterationen zum Einsatz. Ein Salt wird mangels rekonstruierbarer Quelle nicht verwendet.
Transportverschlüsselung Jede Form der Datenübertragung wird generell über eine TLS-Transportverschlüsselung abgesichert, ältere SSL-Versionen sind in der Kommunikation nicht zugelassen. Das verwendete X.509-Zertifikat wird in kurzen Zeitabständen neu generiert. Für den Schlüsselaustausch bei Verbindungsaufbau wird Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) mit den Kurven X25519, P-256, P-384 und P-521 bevorzugt angeboten. Für alle Nutzer der Web-Anwendung kommt HTTP Strict Transport Security (HSTS) mit einer Mindestdauer von zwei Jahren zum Einsatz.