Neu: Ursprungstest der Digital Credentials API

Veröffentlicht: 4. September 2024, zuletzt aktualisiert: 16. Oktober 2024

Ein Ursprungstest für die Digital Credentials API beginnt ab Chrome 128. Die Digital Credentials API ist eine neue Webplattform-API, mit der Websites selektiv über digitale Anmeldedaten wie einen Führerschein oder eine in einem digitalen Wallet gespeicherte Personalausweisnummer überprüfbare Informationen über den Nutzer anfordern können.

Hintergrund

Die digitale Identität in der realen Welt wird Wirklichkeit, da viele öffentliche und private Rechtssubjekte damit beginnen, gerätegebundene digitale Anmeldedaten auszustellen. So können beispielsweise mobile Führerscheine und Ausweise in ausgewählten US-Bundesstaaten wie Arizona, Kalifornien, Colorado, Georgia und Maryland jetzt in digitalen Wallet-Apps wie Google Wallet auf Mobilgeräten bereitgestellt werden. Es gibt auch Vorschriften zur Akzeptanz digitaler Anmeldedaten für bestimmte Onlineüberprüfungen. eIDAS 2.0 ist ein Beispiel dafür.

Digitaler Führerschein in Google Wallet
Digitaler Führerschein in Google Wallet.

Die Funktionen digitaler Anmeldedaten hängen vom Format ab, umfassen aber in der Regel Folgendes:

  • Erhöhte Sicherheit und Datenschutz: Durch die Verwendung erweiterter Verschlüsselungs- und sicherer Authentifizierungsmethoden werden vertrauliche Daten geschützt und ein sicherer Zugriff gewährleistet. Beispielsweise wird das Präsentieren eines Berechtigungsnachweises in der Regel hinter einer Nutzerauthentifizierung über die Wallet-App geschützt.
  • Selektive Offenlegung: Treuhänder (RP) können ausgewählte Informationen aus den Anmeldedaten anfordern. So können Nutzer die weitergegebenen Daten auf das beschränken, was für den Anwendungsfall erforderlich ist. So kann beispielsweise geteilt werden, ob ein Nutzer älter als 18 Jahre ist, ohne dass sein Geburtsdatum offengelegt wird.
  • Interoperabilität: Die Anmeldedaten müssen internationalen Standards entsprechen, um die Kompatibilität mit verschiedenen Systemen und Ländern zu ermöglichen und die grenzüberschreitende Akzeptanz zu erleichtern.
  • Überprüfbarkeit: Die freigegebenen Anmeldedaten werden vom Aussteller digital signiert. Der RP kann diese Signatur prüfen, um die Authentizität der Daten zu überprüfen.

Aufgrund der überprüfbaren Natur digitaler Anmeldedaten können sie Anwendungsfälle wie die folgenden ermöglichen:

  • Altersüberprüfung: Fordere die Altersüberprüfung einer Person an, bevor ihr altersbeschränkte Inhalte angezeigt oder altersbeschränkte Artikel verkauft werden.
  • Identitätsbestätigung: Fordere den Namen und die Adresse an, um die Identität einer Person in Bezug auf die Einhaltung gesetzlicher Vorschriften oder zur Betrugsprävention zu bestätigen.
  • Prüfung der Fahrberechtigung: Überprüfe, ob eine Person ein Auto fahren darf (z. B. bei Verleih eines Autos).

Da Websites direkt mit mobilen Wallet-Anwendungen kommunizieren (z. B. über benutzerdefinierte URL-Schemata), um digitale Anmeldedaten für verschiedene Anwendungsfälle anzufordern, sehen Browser die Möglichkeit, diese Interaktion über eine speziell entwickelte API sicherer, missbrauchssicherer und einfacher zu gestalten.

Die Digital Credentials API

Die Digital Credentials API ist eine neue Webplattform-API, mit der RP-Websites die Vorlage digitaler Anmeldedaten von Wallet-Apps anfordern können. Die API ist in Chrome ab Version 128 als Ursprungstest verfügbar.

Die API ist protokollunabhängig, sodass der RP ein Protokoll entsprechend seinen Anforderungen angeben kann. Wenn ein RP eine Anfrage stellt, sendet der Browser die Anfrage an das mobile Betriebssystem, das in installierten Wallet-Anwendungen nach entsprechenden Anmeldedaten sucht. Werden welche gefunden, fordert das mobile Betriebssystem den Nutzer auf, eines auszuwählen, und sendet die Anfrage an das vom Nutzer ausgewählte Wallet. Nach einer lokalen Authentifizierung gibt das Wallet eine Antwort mit den angeforderten Anmeldedaten zurück.

Diagramm der Kommunikation zwischen dem Browser, dem Wallet und der vertrauenden Seite.

Chrome unterstützt die API zuerst in Chrome für Android, um Anmeldedaten von Wallet-Apps auf demselben Gerät anzufordern. Zukünftig planen wir, die Chrome-Desktop-App zu unterstützen, um Anmeldedaten geräteübergreifend von einem anderen Mobilgerät anzufordern.

Bei der Einführung wird Google Wallet in die Digital Credentials API eingebunden. So können ausgewählte Unternehmen und Organisationen Nutzer bitten, ihren Ausweis online über Chrome auf Android-Geräten vorzulegen, und die Authentizität der übertragenen Daten anhand der kryptografischen Signatur überprüfen. Wenn Sie an der Betaversion teilnehmen möchten, füllen Sie dieses Formular aus.

Die API wird bald auch von Google-Konten verwendet, um das Geburtsdatum bestimmter Nutzer zu bestätigen. Nutzer, die in einem unterstützten US-Bundesstaat ansässig sind, können ihre State ID oder ihren Führerschein, die in verfügbaren Wallet-Apps (einschließlich Google Wallet) hinterlegt sind, verwenden, um nur ihr Geburtsdatum mit Google zu teilen, ohne andere Details ihrer Identität preiszugeben. So können Nutzer Google auf datenschutzfreundliche Weise nachweisen, dass sie die Mindestaltersanforderungen für ein Konto erfüllen.

Jetzt ausprobieren

Anforderungen:

  • Google Play-Dienste 23.40 oder höher
  • Chrome 128 oder höher
  • Aktivieren Sie das Flag bei chrome://flags#web-identity-digital-credentials.

So testen Sie die Digital Credentials API:

  1. Installieren Sie die Demo-Wallet-Anwendung gemäß der Anleitung.
  2. Starte die IC Wallet-App und stelle einen mobilen Demo-Führerschein (Mobile Driver's License, mDL) bereit.
    • Tippen Sie auf die Menüschaltfläche und wählen Sie Eigenhändig unterzeichnetes Dokument hinzufügen aus.
  3. Rufen Sie https://digital-credentials.dev mit Chrome 128 oder höher auf.
  4. Drücken Sie Anmeldedaten anfordern (OpenID4VP).

Sehen Sie sich die Demo an, in der https://digital-credentials.dev verwendet wird. Diese Testwebsite bietet Entwicklern die Möglichkeit, Anmeldedatenanfragen für verschiedene Attribute zu generieren:

So funktioniert die Demo Schritt für Schritt:

1. Der Nutzer wird auf die Website der vertrauenden Partei weitergeleitet und aufgefordert, seinen bestätigten Nachnamen, seinen Vornamen und eine Altersbestätigung über 21 Jahre vorzulegen.
2. Der Browser bestätigt, ob der Nutzer digitale Anmeldedaten für diese Website freigeben möchte.
3. Das Betriebssystem zeigt die angeforderten Informationen und geeignete Anmeldedaten an, die der Nutzer auswählen und die Anfrage abschließen kann.
4. Die Brieftasche authentifiziert den Nutzer lokal über die Displaysperre.

5. Der angeforderte digitale Berechtigungsnachweis wird jetzt an die Website der vertrauenden Partei weitergeleitet.

Funktionsweise der API

Die Digital Credentials API basiert auf der Credential Management API, basiert aber auf einer unabhängigen API-Oberfläche: navigator.identity. Durch Aufrufen von navigator.identity.get() kann die Website digitale Anmeldedaten anfordern, die in einer mobilen Wallet-App gespeichert sind.

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

Die grundlegende API-Oberfläche ähnelt navigator.credentials.get(), mit der Ausnahme, dass nur der Anmeldedatentyp "digital" akzeptiert wird. Fügen Sie dem Typ der digitalen Anmeldedaten ein providers-Array mit IdentityRequestProvider mit den folgenden grundlegenden Parametern hinzu:

Beispielnutzlast für den digitalen Berechtigungstyp mit OID4VP:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

Bei dieser Anfrage stellen Wallets mit mDLs auf dem Gerät überprüfbare Anmeldedaten bereit, die Folgendes enthalten:

  • Der Nachname des Nutzers.
  • Vorname des Nutzers.
  • Ein boolescher Wert, der angibt, ob der Nutzer älter als 21 Jahre ist.

Hier ist ein Beispiel für eine Antwortnutzlast:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

In diesem Beispiel wurde der Anmeldedatensatz mit dem "openid4vp"-Protokoll angefordert und die Antwort enthält "vp_token" im Attribut data. Weitere Informationen zum Parsen der Antwort und zum Verifizieren der Anmeldedaten finden Sie in der Spezifikation OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API.

Die Digital Credentials API wird in Chrome für Android als Ursprungstest unterstützt. In Chrome auf dem Computer und in iOS wird die Funktion derzeit nicht unterstützt. Bei anderen Browser-Engines werden aktive Unterhaltungen über die W3C Web Incubator Community Group gefördert.

Am Ursprungstest teilnehmen

Für die Entwicklung können Sie die Digital Credentials API lokal aktivieren, indem Sie das Chrome-Flag chrome://flags#web-identity-digital-credentials in Chrome 128 oder höher aktivieren.

Diese Funktion ist auch als Ursprungstest verfügbar. Mit Ursprungstests können Sie neue Funktionen ausprobieren und der Webstandards-Community Feedback zu ihrer Nutzerfreundlichkeit, Praktikabilität und Effektivität geben. Weitere Informationen finden Sie unter Erste Schritte mit Ursprungstests. Wenn du dich für diesen oder einen anderen Test registrieren möchtest, rufe die Registrierungsseite auf.

  1. Fordere ein Token für deinen Ursprung an.
  2. Fügen Sie das Token Ihren Seiten hinzu. Dafür gibt es zwei Möglichkeiten:
    • Fügen Sie im Header jeder Seite ein origin-trial-<meta>-Tag ein. Das könnte beispielsweise so aussehen: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Wenn Sie Ihren Server konfigurieren können, können Sie das Token auch über einen Origin-Trial-HTTP-Header hinzufügen. Der resultierende Antwortheader sollte in etwa so aussehen:Origin-Trial: TOKEN_GOES_HERE.

Feedback geben

Wenn Sie Feedback zur Digital Credentials API haben, reichen Sie es im Chromium-Problem-Tracker ein.