CodeB Wallet · NFC · ICAO Doc 9303

Chips von Reisepass und Ausweis, vom Server geprüft

Die CodeB Wallet liest den Chip eines Reisepasses oder Personalausweises per NFC. Der CodeB-Server führt jede Chip-Prüfung selbst aus; das Telefon reicht nur die verschlüsselten Nachrichten des Chips durch. Das Ergebnis hängt also nicht vom Vertrauen in das Telefon ab: Eine veränderte App kann eine Lesung abbrechen, aber das Ergebnis nicht ändern.

NFC · ICAO Doc 9303 · PACE · Chip Authentication · Active Authentication · Passive Authentication · CSCA-Masterliste · Sperrlisten

Funktioniert mit der geschlossenen Testphase der CodeB Wallet. Nicht zertifiziert.

Kurz gesagt

Was
Lesen und Prüfen des Chips eines Reisepasses oder Personalausweises mit der Android-App CodeB Wallet, mit allen Prüfungen auf dem CodeB-Server.
Dokumente
Reisepässe und Ausweise mit Chip nach ICAO Doc 9303 (eMRTD), geöffnet mit der Zugangsnummer (CAN) oder den Daten der maschinenlesbaren Zone (MRZ).
Prüfungen
Gesicherter Zugang (PACE, bei älteren Pässen BAC), Chip Authentication oder Active Authentication, Passive Authentication gegen die Signaturzertifikate und Sperrlisten des ausstellenden Staates.
Ergebnis
Echt, nicht bestätigt oder nicht echt, jeweils mit den Gründen.
Nachweis
Ein hash-verketteter Eintrag pro Lesung, ohne Namen, Geburtsdaten, CAN oder MRZ.
Ausrichtung
ETSI TS 119 461 v2.1.1 (erweitertes Niveau der Identitätsprüfung) und ARF 3.0. Nicht zertifiziert.

So läuft eine Lesung ab

Der Server ist das Lesegerät. Das Telefon ist nur die NFC-Antenne.

Link öffnen

Eine Lesung beginnt mit einem einmaligen Link oder QR-Code, der die CodeB Wallet öffnet. Der Link gilt 10 Minuten und funktioniert einmal.

Zugangsdaten eingeben

Die sechsstellige CAN eines Ausweises oder Dokumentnummer, Geburtsdatum und Ablaufdatum eines Reisepasses. Sie öffnen nur den Chip.

Dokument an das Telefon halten

Das Telefon gibt die Chip-Befehle des Servers und die Antworten des Chips weiter. Sobald der sichere Kanal steht, sind alle zwischen Chip und Server verschlüsselt.

Der Server prüft

Gesicherter Zugang, Echtheit des Chips, die Signatur über die Daten und der Sperrstatus, alles gegen die eigenen Vertrauenslisten des Servers.

Ergebnis

Das Telefon erhält nur das Ergebnis und die Gründe, nie die personenbezogenen Daten.

Was die Prüfungen erkennen

Veränderte Daten

Passive Authentication: Jede Datengruppe muss zum Hashwert passen, den der Document Signer des Ausstellerstaates signiert hat. Dieser muss zu einem vertrauenswürdigen Landeszertifikat (CSCA) desselben Staates führen und darf nicht gesperrt sein.

Geklonte Chips

Chip Authentication (oder Active Authentication) beweist, dass der Chip seinen privaten Schlüssel besitzt. Eine Kopie der Daten auf einem anderen Chip fällt durch.

Ein manipuliertes Telefon

Während einer Server-Lesung sieht das Telefon die Daten nie im Klartext und kann die Antworten des Chips nicht fälschen: Sie sind mit Schlüsseln geschützt, die nur Chip und Server kennen.

Gefälschte Apps

Jede Lesung ist an einen Schlüssel in der sicheren Hardware des Telefons gebunden. Der Server prüft die Android-Hardware-Schlüsselbestätigung (echte App, gesperrtes und verifiziertes Gerät) und die Signatur jeder Anfrage.

Zurückgehaltene Daten und Downgrades

Ein Chip, der Daten in seinem Sicherheitsobjekt aufführt, aber nicht herausgibt, wird abgelehnt – ebenso ein Reisepass, der mit dem älteren BAC gelesen wurde, obwohl er das neuere PACE anbietet.

Raten und Wiederholen

Drei falsche Zugangscodes beenden eine Lesesitzung, Sitzungen funktionieren einmal, und jede Challenge ist neu.

Datenschutz durch Technik

  • CAN und MRZ-Daten dienen nur zum Öffnen des Chips und werden nie gespeichert oder protokolliert.
  • Die Rohdaten des Chips werden direkt nach den Prüfungen verworfen; die gelesenen Daten bleiben nur für die Dauer der Lesesitzung im Arbeitsspeicher des Servers.
  • Das Telefon erhält das Ergebnis, nicht die personenbezogenen Daten.
  • Gelesen werden nur die Datengruppen, die die Prüfung braucht; Fingerabdrücke und Iris-Bilder werden nie angefordert.

Nachweis ohne personenbezogene Daten

  • Ein Eintrag pro Lesung: Verfahren, Algorithmen, Ergebnisse, Zertifikats- und Daten-Hashwerte, Zeiten.
  • Die Einträge sind hash-verkettet, sodass ein veränderter oder entfernter Eintrag auffällt.
  • Die Dokumentnummer erscheint nur als verschlüsselter Hashwert.

Öffentliche CSCA-Vertrauenslisten

Dasselbe Vertrauensmaterial, gegen das der Server prüft, wird unverändert für Wallets und vertrauende Dienste veröffentlicht, die selbst Passive Authentication ausführen. Ohne Anmeldung, ohne Weiterleitung, mit ETag-Caching.

Masterliste
https://phone.codeb.io/wallet/trust/csca-masterlist.ml — die deutsche CSCA-Masterliste, Byte für Byte (CMS SignedData), wöchentlich aktualisiert und erst ersetzt, nachdem Signatur, Unterzeichner und ausstellendes CSCA geprüft sind.
Sperrlisten
https://phone.codeb.io/wallet/trust/csca-crls.zip — die CRLs der CSCAs dieser Liste, täglich aktualisiert; jede wird nur behalten, wenn ihre CSCA-Signatur stimmt, und nie durch eine ältere ersetzt.
Status
https://phone.codeb.io/wallet-trust.ashx?status — Daten, Hashwerte und die Staaten mit gespeicherter CRL, als JSON.

Standards

  • ICAO Doc 9303 Teile 10, 11 und 12 (eMRTD-Daten, Sicherheitsmechanismen, PKI)
  • PACE mit Generic Mapping und PACE-CAM, BAC, Secure Messaging (AES und 3DES)
  • ISO/IEC-7816-4-Befehle, ISO/IEC 14443 (NFC)
  • CMS (RFC 5652) sowie X.509-Zertifikate und -Sperrlisten (RFC 5280)
  • ETSI TS 119 461 v2.1.1, erweitertes Niveau der Identitätsprüfung (Ausrichtung, nicht zertifiziert)
  • EU Architecture and Reference Framework (ARF) 3.0
  • eIDAS 2.0, Verordnung (EU) 2024/1183
  • Android-Hardware-Schlüsselbestätigung (Key Attestation)

Häufige Fragen

Was macht die Chip-Prüfung für Reisepass und Ausweis?

Die CodeB Wallet liest den Chip eines Reisepasses oder Personalausweises per NFC. Der CodeB-Server führt die Prüfungen nach ICAO Doc 9303 selbst aus: gesicherter Zugang mit der CAN oder den MRZ-Daten, Chip Authentication oder Active Authentication gegen geklonte Chips und Passive Authentication der Daten gegen die Signaturzertifikate des ausstellenden Staates. Das Ergebnis lautet echt, nicht bestätigt oder nicht echt.

Warum prüft der Server den Chip und nicht das Telefon?

Das Telefon reicht die Nachrichten des Chips nur durch. Sobald der sichere Kanal zum Chip steht, sind diese Nachrichten zwischen Chip und Server verschlüsselt und authentisiert. Eine veränderte App kann eine Lesung abbrechen, aber das Ergebnis nicht ändern und keine Daten erfinden.

Welche Dokumente funktionieren?

Reisepässe und Ausweise mit Chip nach ICAO Doc 9303 (eMRTD), zum Beispiel der deutsche Personalausweis mit seiner sechsstelligen CAN oder ein Reisepass mit den Daten aus der maschinenlesbaren Zone. Das Signaturzertifikat des ausstellenden Staates muss in der CSCA-Masterliste des Servers enthalten sein.

Was muss ich eingeben?

Bei Ausweisen die sechsstellige Zugangsnummer (CAN), die auf der Karte steht; bei Reisepässen Dokumentnummer, Geburtsdatum und Ablaufdatum aus der maschinenlesbaren Zone. Der Server nutzt sie nur zum Öffnen des Chips und speichert sie nie.

Was bedeuten die Ergebnisse?

Echt: Die Daten sind von einem vertrauenswürdigen Ausstellerstaat signiert, unverändert, nicht gesperrt, und der Chip hat bewiesen, dass er das Original ist. Nicht bestätigt: Die Daten wurden gelesen, aber der Aussteller ließ sich nicht vollständig bestätigen, zum Beispiel weil keine aktuelle Sperrliste dieses Staates vorliegt. Nicht echt: Eine Signatur- oder Chip-Prüfung ist fehlgeschlagen, oder der Chip hält Daten zurück, die er selbst aufführt.

Welche personenbezogenen Daten werden aufbewahrt?

Die Prüfungen brauchen die Daten nur kurz. Der Nachweis jeder Lesung enthält Hashwerte, Algorithmen, Ergebnisse und Zeiten, aber keinen Namen, kein Geburtsdatum, keine CAN und keine MRZ; die Dokumentnummer nur als verschlüsselter Hashwert.

Können andere die CSCA-Vertrauenslisten nutzen?

Ja. Der Server veröffentlicht die CSCA-Masterliste und die Sperrlisten der Staaten unverändert unter /wallet/trust/csca-masterlist.ml und /wallet/trust/csca-crls.zip, wöchentlich bzw. täglich aktualisiert, nachdem ihre Signaturen geprüft wurden.

Ist das zertifiziert?

Nein. Es ist darauf ausgelegt, ETSI TS 119 461 v2.1.1 (erweitertes Niveau der Identitätsprüfung) und dem EU Architecture and Reference Framework (ARF) 3.0 zu folgen, ist aber nicht zertifiziert, und es wird kein Vertrauensniveau beansprucht.

Wie kann ich es ausprobieren?

Die CodeB Wallet ist in einer geschlossenen Testphase. Wenn Sie testen möchten, schreiben Sie an info@aloaha.com.

Ausweisdokumente im Onboarding prüfen?

Schreiben Sie uns zur Chip-Prüfung, zum Nachweis oder zu den öffentlichen Vertrauenslisten. Testerinnen und Tester für die CodeB Wallet sind ebenfalls willkommen.