Digitale Anmeldedaten sind kryptografisch überprüfbare Dokumente, die zur Authentifizierung, Autorisierung oder anderweitigen Bereitstellung von Informationen über einen Nutzer verwendet werden können. Dazu gehören in der Regel Dinge wie mobile Führerscheine, digitale Reisepässe und Bordkarten. Sie befinden sich in virtuellen Containern, die als digitale Wallets bezeichnet werden, und sind Teil eines W3C-Standards, der festlegt, wie auf sie zugegriffen und wie sie abgerufen werden können. Dieser Standard wird für Web-Anwendungsfälle mit der W3C Credential Management API und auf Android mit der DigitalCredential API von Credential Manager implementiert.
Digitale Anmeldedaten
In der physischen Welt bewahrt eine Person ihren Ausweis in ihrem Portemonnaie auf und zeigt ihn auf Anfrage vor:
In diesem Fall hat ein Nutzer in der Regel nur eine Wallet und ruft die angeforderten Anmeldedaten aus der Wallet ab, um sie dem Anfragenden zu präsentieren. Wallets sind größtenteils austauschbar und können in der Regel dieselben Dinge speichern.
Digitale Anmeldedaten unterscheiden sich in folgenden Punkten von Anmeldedaten in der physischen Welt:
- Nutzer haben in der Regel mehrere Wallets, auch Inhaber genannt, die verschiedene Anmeldedaten enthalten können. Wallets legen fest, welche Anmeldedaten darin gespeichert werden dürfen.
- Die App oder der Dienst, der die Anmeldedaten anfordert, um Zugriff zu gewähren oder eine Identität zu bestätigen, wird als Bestätiger bezeichnet.
- Die Entität, die die Anmeldedaten erstellt und Behauptungen über das Subjekt aufstellt (z. B. eine Universität, eine staatliche Stelle oder ein Technologieunternehmen), wird als Aussteller bezeichnet.
- Die Präsentation der Anmeldedaten erfolgt in der Software. Das bedeutet, dass eine API-Oberfläche die Anmeldedaten abruft und präsentiert. In Android ist das der Credential Manager.
Daher übernimmt der Credential Manager mehrere Rollen, die früher vom Nutzer übernommen wurden:
- Unter Android müssen Wallets ihre Metadaten für Anmeldedaten bei Credential Manager registrieren, um in der Credential Manager-Benutzeroberfläche aufgeführt zu werden.
- Der Credential Manager gleicht Anmeldedaten in verschiedenen Wallets anhand der Anfrage ab und präsentiert dem Nutzer eine Liste zur Auswahl.
- Wenn der Nutzer einen Berechtigungsnachweis in der Liste auswählt, ruft Credential Manager die Wallet auf, die den Rest der Transaktion abwickelt (Anzeigen von Benutzeroberflächen usw.) und den Berechtigungsnachweis an die Anwendung zurückgibt.
Dieser Ablauf wird hier dargestellt:
Nachweisbare Anmeldedaten
Nachweisbare Anmeldedaten sind eine Teilmenge digitaler Anmeldedaten, die strengen Standards unterliegen (z. B. dem W3C Verifiable Credentials Data Model). Diese Anmeldedaten enthalten Behauptungen, die kryptografisch gesichert sind. Dadurch sind sie manipulationssicher und es lässt sich genau nachweisen, wer sie ausgestellt hat.
Nicht alle digitalen Anmeldedaten sind überprüfbare Anmeldedaten, aber alle überprüfbaren Anmeldedaten sind digitale Anmeldedaten.
Was bedeutet es, wenn ein Anspruch bestätigt wird?
Wenn Anmeldedaten über die Android Credential Manager API eingehen und ein Anspruch darin als „bestätigt“ gekennzeichnet ist, bedeutet das, dass der Aussteller bestätigt, dass er eine Prüfung dieser spezifischen Daten durchgeführt hat. Das bedeutet jedoch nicht, dass die Daten eine absolute, universelle Wahrheit sind. „Bestätigt“ ist eine Aussage zum Prozess, keine automatische Garantie für Vertrauen.
Die Kernphilosophie dieses Ökosystems ist, dass Vertrauen immer beim Prüfer entsteht. Wenn der Verifizierer (Ihre App) die kryptografisch sicheren Daten empfängt und feststellt, dass der Aussteller sie als „bestätigt“ gekennzeichnet hat, muss er entscheiden, ob er dem Aussteller vertraut, dass er den Anspruch gemäß seinen Standards bestätigt hat.
Nutzerfreundlichkeit
Wie im Android-Ablauf gezeigt, muss der Nutzer nur einmal mit der Credential Manager-Benutzeroberfläche interagieren, um die entsprechenden Anmeldedaten auszuwählen. Hier ist ein Beispiel für den Selektor:
Standards
Anträge für digitale Anmeldedaten werden gemäß dem OpenID4VP-Standard erstellt. Beispielanfragen finden Sie auf der Demowebsite für digitale Anmeldedaten.
Antworten für digitale Berechtigungsnachweise werden in der Regel in einem standardisierten Berechtigungsnachweisformat zurückgegeben. Sie werden von verschiedenen Normierungsgremien verwaltet und umfassen W3C Verifiable Credentials, sd-jwt und mdoc.
Benutzerdefinierte Protokolle sind ebenfalls möglich. Wir empfehlen jedoch, eines der Standardprotokolle in Ihrer Anwendung zu verwenden.
Ausprobieren
Sie können den Ablauf für digitale Anmeldedaten plattformübergreifend mit einem Android-Wallet und einem webbasierten Prüfer testen:
- Installieren Sie das öffentliche CMWallet-Beispiel auf Ihrem Android-Smartphone.
Dazu können Sie das Repository abrufen und die App direkt über Android Studio installieren oder zu https://github.com/digitalcredentialsdev/CMWallet/actions gehen und den neuesten Build auswählen, um auf die aktuelle
app-debug.apk-Datei zuzugreifen. - Öffnen Sie CMWallet, um die Metadaten bei Credential Manager zu registrieren. Achten Sie darauf, dass Bluetooth aktiviert ist, damit sich Ihre Geräte miteinander verbinden können.
- Rufen Sie https://digital-credentials.dev/ auf und wählen Sie
Request Credentials (OpenID4VP)aus. - Bestätigen Sie die Warnmeldungen, scannen Sie den QR‑Code mit Ihrem Smartphone, wählen Sie „Passkey verwenden“ aus und tippen Sie auf die Bestätigung, um die verfügbaren Anmeldedaten aufzurufen.
- Wählen Sie die Anmeldedaten aus CMWallet aus, um zum Browser zurückzukehren. Der Browser sollte die zurückgegebenen Anmeldedaten anzeigen.
Siehe auch
- Weitere Informationen zur Verwendung von Credential Manager zum Anfordern digitaler Anmeldedaten in Ihrer App finden Sie auf der Seite Credential Manager – Verifier API.
- Weitere Informationen zum Erstellen eines digitalen Wallets mit dem Credential Manager finden Sie auf der Seite Credential Manager – Holder API.