Maak kennis met de proefversie van de Digital Credentials API

Gepubliceerd: 4 september 2024

Een origin-proefversie voor de Digital Credentials API start vanaf Chrome 128. Digital Credentials API is een nieuwe webplatform-API waarmee websites selectief verifieerbare informatie over de gebruiker kunnen opvragen via digitale inloggegevens zoals een rijbewijs of een nationale identiteitskaart die is opgeslagen in een digitale portemonnee.

Achtergrond

Digitale identiteit in de echte wereld wordt werkelijkheid nu veel publieke en private entiteiten apparaatgebonden digitale inloggegevens beginnen uit te geven. Mobiele rijbewijzen en identiteitsbewijzen in bepaalde Amerikaanse staten (zoals Arizona, Californië, Colorado, Georgia en Maryland) kunnen nu bijvoorbeeld worden geleverd aan digitale portemonnee-apps zoals Google Wallet op mobiele apparaten. Ook regelgeving met betrekking tot de acceptatie van digitale legitimatiebewijzen voor bepaalde online verificaties is in opkomst en eIDAS 2.0 is daar een voorbeeld van.

Mobiel rijbewijs in Google Wallet
Mobiel rijbewijs in Google Wallet.

De kenmerken van een digitaal legitimatiebewijs zijn afhankelijk van het formaat ervan, maar omvatten doorgaans:

  • Verbeterde beveiliging en privacy : het gebruik van geavanceerde codering en sterke authenticatiemethoden helpt gevoelige gegevens te beschermen en zorgt voor veilige toegang. Het presenteren van een inloggegevens wordt bijvoorbeeld meestal beschermd achter een gebruikersauthenticatie via de portemonnee-app.
  • Selectieve openbaarmaking : Relying Parties (RP) kunnen geselecteerde informatie uit de inloggegevens opvragen, waardoor gebruikers de gedeelde gegevens kunnen beperken tot wat nodig is voor de use case. Zo kan bijvoorbeeld worden gedeeld of een gebruiker ouder is dan 18 jaar, zonder dat de geboortedatum van de gebruiker bekend wordt gemaakt.
  • Interoperabiliteit : de kwalificatie moet voldoen aan internationale normen, waardoor compatibiliteit tussen verschillende systemen en landen mogelijk wordt en grensoverschrijdende acceptatie wordt vergemakkelijkt.
  • Verifieerbaarheid : De gedeelde legitimatiegegevens worden digitaal ondertekend door de uitgever; RP kan deze handtekening verifiëren om de authenticiteit van de gegevens te verifiëren.

Vanwege het verifieerbare karakter van digitale inloggegevens kunnen ze gebruiksscenario's mogelijk maken zoals:

  • Leeftijdsverificatie: Vraag de leeftijd aan om de leeftijd van een persoon te verifiëren voordat u inhoud met een leeftijdsbeperking aanbiedt of items met een leeftijdsbeperking koopt.
  • Identiteitsverificatie: Naam en adres opvragen om de identiteit van een persoon te verifiëren voor wettelijke naleving of fraudepreventie.
  • Controle van rijbevoegdheden: Controleer of iemand in aanmerking komt om te rijden (bijvoorbeeld bij het huren van een auto).

Nu websites rechtstreeks zijn gaan communiceren met mobiele portemonnee-applicaties (zoals door het gebruik van aangepaste URL-schema's) om digitale inloggegevens op te vragen voor verschillende gebruiksscenario's, zien browsers een kans om deze interactie veiliger, beter bestand tegen misbruik en gebruiksvriendelijker te maken via een speciaal gebouwde API.

Introductie van de Digital Credentials API

De Digital Credentials API is een nieuwe webplatform-API waarmee RP-websites de presentatie van digitale inloggegevens van portemonnee-apps kunnen aanvragen. De API is beschikbaar in Chrome als origin-proefversie vanaf Chrome 128.

De API is protocol-agnostisch, waardoor de RP een protocol kan specificeren op basis van zijn vereisten. Wanneer een RP een verzoek indient, stuurt de browser het verzoek naar het mobiele besturingssysteem, dat zoekt naar een overeenkomende referentie in geïnstalleerde portemonnee-applicaties. Als er een wordt gevonden, vraagt ​​het mobiele besturingssysteem de gebruiker om er een te selecteren en stuurt het verzoek naar de door de gebruiker geselecteerde portemonnee. Na een lokale authenticatie retourneert de portemonnee een antwoord met de gevraagde inloggegevens.

Diagram van de communicatie tussen de browser, portemonnee en vertrouwende partij.

Chrome ondersteunt eerst de API in Chrome op Android voor het opvragen van inloggegevens van portemonnee-apps op hetzelfde apparaat. In de toekomst zijn we van plan de Chrome-desktop te ondersteunen om op verschillende apparaten inloggegevens op te vragen vanaf een ander mobiel apparaat.

Bij de lancering zal Google Wallet integreren met de Digital Credentials API, waardoor geselecteerde bedrijven en organisaties een verzoek aan gebruikers kunnen initiëren om hun ID online te presenteren, via Chrome op Android, en de authenticiteit van de verzonden gegevens kunnen verifiëren door de cryptografische handtekening te onderzoeken. Als u wilt deelnemen, vult u dit formulier in en geeft u aan dat u geïnteresseerd bent in het accepteren van digitale ID's van Google Wallet.

De API zal binnenkort ook door Google-accounts worden gebruikt om de geboortedatum van bepaalde gebruikers te verifiëren. Gebruikers die in een ondersteunde Amerikaanse staat wonen, kunnen hun staats-ID of rijbewijs gebruiken dat is opgegeven in beschikbare portemonnee-apps (waaronder Google Wallet) om naadloos alleen hun geboortedatum met Google te delen zonder andere details van hun identiteit te delen. Hierdoor kunnen gebruikers op een privacybeschermende manier aan Google aantonen dat ze voldoen aan de accountgerelateerde leeftijdsvereisten .

Probeer het eens

Vereisten:

  • Google Play-services 23.40 of hoger
  • Chroom 128 of hoger
  • Schakel de vlag in op chrome://flags#web-identity-digital-credentials

Volg de instructies om de Digital Credentials API te proberen:

  1. Installeer de demo-portemonnee-applicatie volgens de instructies.
  2. Start de IC Wallet -app en stel een demo-mobiel rijbewijs (mDL) in.
    • Tik op de menuknop en selecteer Zelfondertekend document toevoegen.
  3. Navigeer naar https://digital-credentials.dev met Chrome 128 of hoger.
  4. Druk op Aanvraaggegevens (OpenID4VP).

Bekijk de demo die https://digital-credentials.dev gebruikt, een testwebsite voor ontwikkelaars om referentieverzoeken voor verschillende attributen te genereren:

Zo werkt de demo stap voor stap:

1. De gebruiker komt terecht op de website van de vertrouwende partij en wordt verzocht zijn geverifieerde achternaam, voornaam en een leeftijdsgarantie van meer dan 21 jaar te overleggen.
2. De browser bevestigt of de gebruiker van plan is digitale gegevens met deze website te delen.
3. Het besturingssysteem geeft de gevraagde informatie weer, samen met de in aanmerking komende referenties die aan het verzoek kunnen voldoen, zodat de gebruiker het verzoek kan selecteren en voltooien.
4. De portemonnee authenticeert de gebruiker lokaal met schermontgrendeling.

5. De gevraagde digitale identificatie wordt nu doorgegeven aan de website van de vertrouwende partij.

Hoe de API werkt

Digital Credentials API is gebouwd op de basis van de Credential Management API , maar vanuit een onafhankelijk API-oppervlak: navigator.identity . Door navigator.identity.get() aan te roepen, kan de website een digitale referentie aanvragen die is opgeslagen in een mobiele portemonnee-app. .

// 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: {...}
      }
    }],
  }
});

Het basis-API-oppervlak is vergelijkbaar met navigator.credentials.get() , behalve dat het alleen het type "digital" inloggegevens accepteert. Voeg binnen het digitale referentietype een array providers toe die IdentityRequestProvider bevat met de volgende basisparameters:

  • protocol : Geef een uitwisselingsprotocol op met een tekenreeks. Op het moment dat de proef werd opgestart, was het primaire protocol dat werd ontwikkeld "openid4vp" .
  • request : Vul de parameters in die digitale portemonnee-apps accepteren voor het opgegeven protocol. Voor "openid4vp" worden parameters gedefinieerd in OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie.

Voorbeeldpayload naar het digitale inloggegevenstype met behulp van 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
            }
          ]
        }
      }],
    }
  }
}

Met dit verzoek zullen portemonnees met mDL's op het apparaat een verifieerbare set inloggegevens verstrekken die het volgende bevatten:

  • Familienaam van de gebruiker.
  • Voornaam van de gebruiker.
  • Een Booleaanse waarde die aangeeft of de gebruiker ouder is dan 21 jaar of niet.

Hier is een voorbeeld van een responslading:

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

In dit voorbeeld is de referentie opgevraagd met het "openid4vp" protocol en bevat het antwoord "vp_token" in de data eigenschap. Zie OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie om te leren hoe u het antwoord kunt parseren en de referentie kunt verifiëren.

Digital Credentials API wordt ondersteund in Chrome op Android als origin-proefversie . Chrome op desktop en iOS ondersteunt dit momenteel niet. Voor andere browser-engines worden actieve gesprekken mogelijk gemaakt via de W3C Web Incubator Community Group .

Doe mee aan de herkomstproef

Voor ontwikkeling kunt u de Digital Credentials API lokaal inschakelen door de Chrome-vlag chrome://flags#web-identity-digital-credentials in Chrome 128 of hoger in te schakelen.

Deze functie is ook beschikbaar als origin-proefversie. Met Origin-proefversies kunt u nieuwe functies uitproberen en feedback geven over de bruikbaarheid, bruikbaarheid en effectiviteit ervan aan de gemeenschap van webstandaarden. Zie Aan de slag met origin-proefversies voor meer informatie. Om u aan te melden voor deze of een andere origin-proef, gaat u naar de registratiepagina .

  1. Vraag een token aan voor uw herkomst.
  2. Voeg het token toe aan uw pagina's. Er zijn twee manieren om dat te doen:
    • Voeg een origin-trial <meta> -tag toe aan de kop van elke pagina. Dit kan er bijvoorbeeld ongeveer zo uitzien: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Als u uw server kunt configureren, kunt u het token ook toevoegen met behulp van een Origin-Trial HTTP-header. De resulterende antwoordheader zou er ongeveer zo uit moeten zien: Origin-Trial: TOKEN_GOES_HERE.

Deel feedback

Als u feedback heeft over de Digital Credentials API, kunt u deze indienen bij de speciale Chromium issue tracker .

,

Gepubliceerd: 4 september 2024

Een origin-proefversie voor de Digital Credentials API start vanaf Chrome 128. Digital Credentials API is een nieuwe webplatform-API waarmee websites selectief verifieerbare informatie over de gebruiker kunnen opvragen via digitale inloggegevens zoals een rijbewijs of een nationale identiteitskaart die is opgeslagen in een digitale portemonnee.

Achtergrond

Digitale identiteit in de echte wereld wordt werkelijkheid nu veel publieke en private entiteiten apparaatgebonden digitale inloggegevens beginnen uit te geven. Mobiele rijbewijzen en identiteitsbewijzen in bepaalde Amerikaanse staten (zoals Arizona, Californië, Colorado, Georgia en Maryland) kunnen nu bijvoorbeeld worden geleverd aan digitale portemonnee-apps zoals Google Wallet op mobiele apparaten. Ook regelgeving met betrekking tot de acceptatie van digitale legitimatiebewijzen voor bepaalde online verificaties is in opkomst en eIDAS 2.0 is daar een voorbeeld van.

Mobiel rijbewijs in Google Wallet
Mobiel rijbewijs in Google Wallet.

De kenmerken van een digitaal legitimatiebewijs zijn afhankelijk van het formaat ervan, maar omvatten doorgaans:

  • Verbeterde beveiliging en privacy : het gebruik van geavanceerde codering en sterke authenticatiemethoden helpt gevoelige gegevens te beschermen en zorgt voor veilige toegang. Het presenteren van een inloggegevens wordt bijvoorbeeld meestal beschermd achter een gebruikersauthenticatie via de portemonnee-app.
  • Selectieve openbaarmaking : Relying Parties (RP) kunnen geselecteerde informatie uit de inloggegevens opvragen, waardoor gebruikers de gedeelde gegevens kunnen beperken tot wat nodig is voor de use case. Zo kan bijvoorbeeld worden gedeeld of een gebruiker ouder is dan 18 jaar, zonder dat de geboortedatum van de gebruiker bekend wordt gemaakt.
  • Interoperabiliteit : de kwalificatie moet voldoen aan internationale normen, waardoor compatibiliteit tussen verschillende systemen en landen mogelijk wordt en grensoverschrijdende acceptatie wordt vergemakkelijkt.
  • Verifieerbaarheid : De gedeelde legitimatiegegevens worden digitaal ondertekend door de uitgever; RP kan deze handtekening verifiëren om de authenticiteit van de gegevens te verifiëren.

Vanwege het verifieerbare karakter van digitale inloggegevens kunnen ze gebruiksscenario's mogelijk maken zoals:

  • Leeftijdsverificatie: Vraag de leeftijd aan om de leeftijd van een persoon te verifiëren voordat u inhoud met een leeftijdsbeperking aanbiedt of items met een leeftijdsbeperking koopt.
  • Identiteitsverificatie: Naam en adres opvragen om de identiteit van een persoon te verifiëren voor wettelijke naleving of fraudepreventie.
  • Controle van rijbevoegdheden: Controleer of iemand in aanmerking komt om te rijden (bijvoorbeeld bij het huren van een auto).

Nu websites rechtstreeks zijn gaan communiceren met mobiele portemonnee-applicaties (zoals door het gebruik van aangepaste URL-schema's) om digitale inloggegevens op te vragen voor verschillende gebruiksscenario's, zien browsers een kans om deze interactie veiliger, beter bestand tegen misbruik en gebruiksvriendelijker te maken via een speciaal gebouwde API.

Introductie van de Digital Credentials API

De Digital Credentials API is een nieuwe webplatform-API waarmee RP-websites de presentatie van digitale inloggegevens van portemonnee-apps kunnen opvragen. De API is beschikbaar in Chrome als origin-proefversie vanaf Chrome 128.

De API is protocol-agnostisch, waardoor de RP een protocol kan specificeren op basis van zijn vereisten. Wanneer een RP een verzoek indient, stuurt de browser het verzoek naar het mobiele besturingssysteem, dat zoekt naar een overeenkomende referentie in geïnstalleerde portemonnee-applicaties. Als er een wordt gevonden, vraagt ​​het mobiele besturingssysteem de gebruiker om er een te selecteren en stuurt het verzoek naar de door de gebruiker geselecteerde portemonnee. Na een lokale authenticatie retourneert de portemonnee een antwoord met de gevraagde inloggegevens.

Diagram van de communicatie tussen de browser, portemonnee en vertrouwende partij.

Chrome ondersteunt eerst de API in Chrome op Android voor het opvragen van inloggegevens van portemonnee-apps op hetzelfde apparaat. In de toekomst zijn we van plan de Chrome-desktop te ondersteunen om op verschillende apparaten inloggegevens op te vragen vanaf een ander mobiel apparaat.

Bij de lancering zal Google Wallet integreren met de Digital Credentials API, waardoor geselecteerde bedrijven en organisaties een verzoek aan gebruikers kunnen initiëren om hun ID online te presenteren, via Chrome op Android, en de authenticiteit van de verzonden gegevens kunnen verifiëren door de cryptografische handtekening te onderzoeken. Als u wilt deelnemen, vult u dit formulier in en geeft u aan dat u geïnteresseerd bent in het accepteren van digitale ID's van Google Wallet.

De API zal binnenkort ook door Google-accounts worden gebruikt om de geboortedatum van bepaalde gebruikers te verifiëren. Gebruikers die in een ondersteunde Amerikaanse staat wonen, kunnen hun staats-ID of rijbewijs gebruiken dat is opgegeven in beschikbare portemonnee-apps (waaronder Google Wallet) om naadloos alleen hun geboortedatum met Google te delen zonder andere details van hun identiteit te delen. Hierdoor kunnen gebruikers op een privacybeschermende manier aan Google aantonen dat ze voldoen aan accountgerelateerde leeftijdsvereisten .

Probeer het eens

Vereisten:

  • Google Play-services 23.40 of hoger
  • Chroom 128 of hoger
  • Schakel de vlag in op chrome://flags#web-identity-digital-credentials

Volg de instructies om de Digital Credentials API te proberen:

  1. Installeer de demo-portemonnee-applicatie volgens de instructies.
  2. Start de IC Wallet -app en stel een demo-mobiel rijbewijs (mDL) in.
    • Tik op de menuknop en selecteer Zelfondertekend document toevoegen.
  3. Navigeer naar https://digital-credentials.dev met Chrome 128 of hoger.
  4. Druk op Aanvraaggegevens (OpenID4VP).

Bekijk de demo die https://digital-credentials.dev gebruikt, een testwebsite voor ontwikkelaars om referentieverzoeken voor verschillende attributen te genereren:

Zo werkt de demo stap voor stap:

1. De gebruiker komt terecht op de website van de vertrouwende partij en wordt verzocht zijn geverifieerde achternaam, voornaam en een leeftijdsgarantie van meer dan 21 jaar te overleggen.
2. De browser bevestigt of de gebruiker van plan is digitale gegevens met deze website te delen.
3. Het besturingssysteem geeft de gevraagde informatie weer, samen met de in aanmerking komende referenties die aan het verzoek kunnen voldoen, zodat de gebruiker het verzoek kan selecteren en voltooien.
4. De portemonnee authenticeert de gebruiker lokaal met schermontgrendeling.

5. De gevraagde digitale identificatie wordt nu doorgegeven aan de website van de vertrouwende partij.

Hoe de API werkt

Digital Credentials API is gebouwd op de basis van de Credential Management API , maar vanuit een onafhankelijk API-oppervlak: navigator.identity . Door navigator.identity.get() aan te roepen, kan de website een digitale referentie aanvragen die is opgeslagen in een mobiele portemonnee-app. .

// 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: {...}
      }
    }],
  }
});

Het basis-API-oppervlak is vergelijkbaar met navigator.credentials.get() , behalve dat het alleen het "digital" inloggegevenstype accepteert. Voeg binnen het digitale referentietype een array providers toe die IdentityRequestProvider bevat met de volgende basisparameters:

  • protocol : Geef een uitwisselingsprotocol op met een tekenreeks. Op het moment dat de proef werd opgestart, was het primaire protocol dat werd ontwikkeld "openid4vp" .
  • request : Vul de parameters in die digitale portemonnee-apps accepteren voor het opgegeven protocol. Voor "openid4vp" worden parameters gedefinieerd in OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie.

Voorbeeldpayload naar het digitale inloggegevenstype met behulp van 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
            }
          ]
        }
      }],
    }
  }
}

Met dit verzoek zullen portemonnees met mDL's op het apparaat een verifieerbare set inloggegevens verstrekken die het volgende bevatten:

  • Familienaam van de gebruiker.
  • Voornaam van de gebruiker.
  • Een Booleaanse waarde die aangeeft of de gebruiker ouder is dan 21 jaar of niet.

Hier is een voorbeeld van een responslading:

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

In dit voorbeeld is de referentie opgevraagd met het "openid4vp" protocol en bevat het antwoord "vp_token" in de data eigenschap. Zie OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie om te leren hoe u het antwoord kunt parseren en de referentie kunt verifiëren.

Digital Credentials API wordt ondersteund in Chrome op Android als origin-proefversie . Chrome op desktop en iOS ondersteunt dit momenteel niet. Voor andere browser-engines worden actieve gesprekken mogelijk gemaakt via de W3C Web Incubator Community Group .

Doe mee aan de herkomstproef

Voor ontwikkeling kunt u de Digital Credentials API lokaal inschakelen door de Chrome-vlag chrome://flags#web-identity-digital-credentials in Chrome 128 of hoger in te schakelen.

Deze functie is ook beschikbaar als origin-proefversie. Met Origin-proefversies kunt u nieuwe functies uitproberen en feedback geven over de bruikbaarheid, bruikbaarheid en effectiviteit ervan aan de gemeenschap van webstandaarden. Zie Aan de slag met origin-proefversies voor meer informatie. Om u aan te melden voor deze of een andere origin-proef, gaat u naar de registratiepagina .

  1. Vraag een token aan voor uw herkomst.
  2. Voeg het token toe aan uw pagina's. Er zijn twee manieren om dat te doen:
    • Voeg een origin-trial <meta> -tag toe aan de kop van elke pagina. Dit kan er bijvoorbeeld ongeveer zo uitzien: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Als u uw server kunt configureren, kunt u het token ook toevoegen met behulp van een Origin-Trial HTTP-header. De resulterende antwoordheader zou er ongeveer zo uit moeten zien: Origin-Trial: TOKEN_GOES_HERE.

Deel feedback

Als u feedback heeft over de Digital Credentials API, kunt u deze indienen bij de speciale Chromium issue tracker .

,

Gepubliceerd: 4 september 2024

Een origin-proefversie voor de Digital Credentials API start vanaf Chrome 128. Digital Credentials API is een nieuwe webplatform-API waarmee websites selectief verifieerbare informatie over de gebruiker kunnen opvragen via digitale inloggegevens zoals een rijbewijs of een nationale identiteitskaart die is opgeslagen in een digitale portemonnee.

Achtergrond

Digitale identiteit in de echte wereld wordt werkelijkheid nu veel publieke en private entiteiten apparaatgebonden digitale inloggegevens beginnen uit te geven. Mobiele rijbewijzen en identiteitsbewijzen in bepaalde Amerikaanse staten (zoals Arizona, Californië, Colorado, Georgia en Maryland) kunnen nu bijvoorbeeld worden geleverd aan digitale portemonnee-apps zoals Google Wallet op mobiele apparaten. Ook regelgeving met betrekking tot de acceptatie van digitale legitimatiegegevens voor bepaalde online verificaties is in opkomst en eIDAS 2.0 is daar een voorbeeld van.

Mobiel rijbewijs in Google Wallet
Mobiel rijbewijs in Google Wallet.

De kenmerken van een digitaal legitimatiebewijs zijn afhankelijk van het formaat ervan, maar omvatten doorgaans:

  • Verbeterde beveiliging en privacy : het gebruik van geavanceerde codering en sterke authenticatiemethoden helpt gevoelige gegevens te beschermen en zorgt voor veilige toegang. Het presenteren van een inloggegevens wordt bijvoorbeeld meestal beschermd achter een gebruikersauthenticatie via de portemonnee-app.
  • Selectieve openbaarmaking : Relying Parties (RP) kunnen geselecteerde informatie uit de inloggegevens opvragen, waardoor gebruikers de gedeelde gegevens kunnen beperken tot wat nodig is voor de use case. Zo kan bijvoorbeeld worden gedeeld of een gebruiker ouder is dan 18 jaar, zonder dat de geboortedatum van de gebruiker bekend wordt gemaakt.
  • Interoperabiliteit : de kwalificatie moet voldoen aan internationale normen, waardoor compatibiliteit tussen verschillende systemen en landen mogelijk wordt en grensoverschrijdende acceptatie wordt vergemakkelijkt.
  • Verifieerbaarheid : De gedeelde legitimatiegegevens worden digitaal ondertekend door de uitgever; RP kan deze handtekening verifiëren om de authenticiteit van de gegevens te verifiëren.

Vanwege het verifieerbare karakter van digitale inloggegevens kunnen ze gebruiksscenario's mogelijk maken zoals:

  • Leeftijdsverificatie: Vraag de leeftijd aan om de leeftijd van een persoon te verifiëren voordat u inhoud met een leeftijdsbeperking aanbiedt of items met een leeftijdsbeperking koopt.
  • Identiteitsverificatie: Naam en adres opvragen om de identiteit van een persoon te verifiëren voor wettelijke naleving of fraudepreventie.
  • Controle van rijbevoegdheden: Controleer of iemand in aanmerking komt om te rijden (bijvoorbeeld bij het huren van een auto).

Nu websites rechtstreeks zijn gaan communiceren met mobiele portemonnee-applicaties (zoals door het gebruik van aangepaste URL-schema's) om digitale inloggegevens op te vragen voor verschillende gebruiksscenario's, zien browsers een kans om deze interactie veiliger, beter bestand tegen misbruik en gebruiksvriendelijker te maken via een speciaal gebouwde API.

Introductie van de Digital Credentials API

De Digital Credentials API is een nieuwe webplatform-API waarmee RP-websites de presentatie van digitale inloggegevens van portemonnee-apps kunnen aanvragen. De API is beschikbaar in Chrome als origin-proefversie vanaf Chrome 128.

De API is protocol-agnostisch, waardoor de RP een protocol kan specificeren op basis van zijn vereisten. Wanneer een RP een verzoek indient, stuurt de browser het verzoek naar het mobiele besturingssysteem, dat zoekt naar een overeenkomende referentie in geïnstalleerde portemonnee-applicaties. Als er een wordt gevonden, vraagt ​​het mobiele besturingssysteem de gebruiker om er een te selecteren en stuurt het verzoek naar de door de gebruiker geselecteerde portemonnee. Na een lokale authenticatie retourneert de portemonnee een antwoord met de gevraagde inloggegevens.

Diagram van de communicatie tussen de browser, portemonnee en vertrouwende partij.

Chrome ondersteunt eerst de API in Chrome op Android voor het opvragen van inloggegevens van portemonnee-apps op hetzelfde apparaat. In de toekomst zijn we van plan de Chrome-desktop te ondersteunen om op verschillende apparaten inloggegevens op te vragen vanaf een ander mobiel apparaat.

Bij de lancering zal Google Wallet integreren met de Digital Credentials API, waardoor geselecteerde bedrijven en organisaties een verzoek aan gebruikers kunnen initiëren om hun ID online te presenteren, via Chrome op Android, en de authenticiteit van de verzonden gegevens kunnen verifiëren door de cryptografische handtekening te onderzoeken. Als u wilt deelnemen, vult u dit formulier in en geeft u aan dat u geïnteresseerd bent in het accepteren van digitale ID's van Google Wallet.

De API zal binnenkort ook door Google-accounts worden gebruikt om de geboortedatum van bepaalde gebruikers te verifiëren. Gebruikers die in een ondersteunde Amerikaanse staat wonen, kunnen hun staats-ID of rijbewijs gebruiken dat is opgegeven in beschikbare portemonnee-apps (waaronder Google Wallet) om naadloos alleen hun geboortedatum met Google te delen zonder andere details van hun identiteit te delen. Hierdoor kunnen gebruikers op een privacybeschermende manier aan Google aantonen dat ze voldoen aan accountgerelateerde leeftijdsvereisten .

Probeer het eens

Vereisten:

  • Google Play-services 23.40 of hoger
  • Chroom 128 of hoger
  • Schakel de vlag in op chrome://flags#web-identity-digital-credentials

Volg de instructies om de Digital Credentials API te proberen:

  1. Installeer de demo-portemonnee-applicatie volgens de instructies.
  2. Start de IC Wallet -app en stel een demo-mobiel rijbewijs (mDL) in.
    • Tik op de menuknop en selecteer Zelfondertekend document toevoegen.
  3. Navigeer naar https://digital-credentials.dev met Chrome 128 of hoger.
  4. Druk op Aanvraaggegevens (OpenID4VP).

Bekijk de demo die https://digital-credentials.dev gebruikt, een testwebsite voor ontwikkelaars om referentieverzoeken voor verschillende attributen te genereren:

Zo werkt de demo stap voor stap:

1. De gebruiker komt terecht op de website van de vertrouwende partij en wordt verzocht zijn geverifieerde achternaam, voornaam en een leeftijdsgarantie van meer dan 21 jaar te overleggen.
2. De browser bevestigt of de gebruiker van plan is digitale gegevens met deze website te delen.
3. Het besturingssysteem geeft de gevraagde informatie weer, samen met de in aanmerking komende referenties die aan het verzoek kunnen voldoen, zodat de gebruiker het verzoek kan selecteren en voltooien.
4. De portemonnee authenticeert de gebruiker lokaal met schermontgrendeling.

5. De gevraagde digitale identificatie wordt nu doorgegeven aan de website van de vertrouwende partij.

Hoe de API werkt

Digital Credentials API is gebouwd op de basis van de Credential Management API , maar vanuit een onafhankelijk API-oppervlak: navigator.identity . Door navigator.identity.get() aan te roepen, kan de website een digitale referentie aanvragen die is opgeslagen in een mobiele portemonnee-app. .

// 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: {...}
      }
    }],
  }
});

Het basis-API-oppervlak is vergelijkbaar met navigator.credentials.get() , behalve dat het alleen het type "digital" inloggegevens accepteert. Voeg binnen het digitale referentietype een array providers toe die IdentityRequestProvider bevat met de volgende basisparameters:

  • protocol : Geef een uitwisselingsprotocol op met een tekenreeks. Op het moment dat de proef werd opgestart, was het primaire protocol dat werd ontwikkeld "openid4vp" .
  • request : Vul de parameters in die digitale portemonnee-apps accepteren voor het opgegeven protocol. Voor "openid4vp" worden parameters gedefinieerd in OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie.

Voorbeeldpayload naar het digitale inloggegevenstype met behulp van 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
            }
          ]
        }
      }],
    }
  }
}

Met dit verzoek zullen portemonnees met mDL's op het apparaat een verifieerbare set inloggegevens verstrekken die het volgende bevatten:

  • Familienaam van de gebruiker.
  • Voornaam van de gebruiker.
  • Een Booleaanse waarde die aangeeft of de gebruiker ouder is dan 21 jaar of niet.

Hier is een voorbeeld van een responslading:

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

In dit voorbeeld is de referentie opgevraagd met het "openid4vp" protocol en bevat het antwoord "vp_token" in de data eigenschap. Zie OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie om te leren hoe u het antwoord kunt parseren en de referentie kunt verifiëren.

Digital Credentials API wordt ondersteund in Chrome op Android als origin-proefversie . Chrome op desktop en iOS ondersteunt dit momenteel niet. Voor andere browser-engines worden actieve gesprekken mogelijk gemaakt via de W3C Web Incubator Community Group .

Doe mee aan de herkomstproef

Voor ontwikkeling kunt u de Digital Credentials API lokaal inschakelen door de Chrome-vlag chrome://flags#web-identity-digital-credentials in Chrome 128 of hoger in te schakelen.

Deze functie is ook beschikbaar als origin-proefversie. Met Origin-proefversies kunt u nieuwe functies uitproberen en feedback geven over de bruikbaarheid, bruikbaarheid en effectiviteit ervan aan de gemeenschap van webstandaarden. Zie Aan de slag met origin-proefversies voor meer informatie. Om u aan te melden voor deze of een andere origin-proef, gaat u naar de registratiepagina .

  1. Vraag een token aan voor uw herkomst.
  2. Voeg het token toe aan uw pagina's. Er zijn twee manieren om dat te doen:
    • Voeg een origin-trial <meta> -tag toe aan de kop van elke pagina. Dit kan er bijvoorbeeld ongeveer zo uitzien: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Als u uw server kunt configureren, kunt u het token ook toevoegen met behulp van een Origin-Trial HTTP-header. De resulterende antwoordheader zou er ongeveer zo uit moeten zien: Origin-Trial: TOKEN_GOES_HERE.

Deel feedback

Als u feedback heeft over de Digital Credentials API, kunt u deze indienen bij de speciale Chromium issue tracker .

,

Gepubliceerd: 4 september 2024

Een origin-proefversie voor de Digital Credentials API start vanaf Chrome 128. Digital Credentials API is een nieuwe webplatform-API waarmee websites selectief verifieerbare informatie over de gebruiker kunnen opvragen via digitale inloggegevens zoals een rijbewijs of een nationale identiteitskaart die is opgeslagen in een digitale portemonnee.

Achtergrond

Digitale identiteit in de echte wereld wordt werkelijkheid nu veel publieke en private entiteiten apparaatgebonden digitale inloggegevens beginnen uit te geven. Mobiele rijbewijzen en identiteitsbewijzen in bepaalde Amerikaanse staten (zoals Arizona, Californië, Colorado, Georgia en Maryland) kunnen nu bijvoorbeeld worden geleverd aan digitale portemonnee-apps zoals Google Wallet op mobiele apparaten. Ook regelgeving met betrekking tot de acceptatie van digitale legitimatiegegevens voor bepaalde online verificaties is in opkomst en eIDAS 2.0 is daar een voorbeeld van.

Mobiel rijbewijs in Google Wallet
Mobiel rijbewijs in Google Wallet.

De kenmerken van een digitaal legitimatiebewijs zijn afhankelijk van het formaat ervan, maar omvatten doorgaans:

  • Verbeterde beveiliging en privacy : het gebruik van geavanceerde codering en sterke authenticatiemethoden helpt gevoelige gegevens te beschermen en zorgt voor veilige toegang. Het presenteren van een inloggegevens wordt bijvoorbeeld meestal beschermd achter een gebruikersauthenticatie via de portemonnee-app.
  • Selectieve openbaarmaking : Relying Parties (RP) kunnen geselecteerde informatie uit de inloggegevens opvragen, waardoor gebruikers de gedeelde gegevens kunnen beperken tot wat nodig is voor de use case. Zo kan bijvoorbeeld worden gedeeld of een gebruiker ouder is dan 18 jaar, zonder dat de geboortedatum van de gebruiker bekend wordt gemaakt.
  • Interoperabiliteit : de kwalificatie moet voldoen aan internationale normen, waardoor compatibiliteit tussen verschillende systemen en landen mogelijk wordt en grensoverschrijdende acceptatie wordt vergemakkelijkt.
  • Verifieerbaarheid : De gedeelde legitimatiegegevens worden digitaal ondertekend door de uitgever; RP kan deze handtekening verifiëren om de authenticiteit van de gegevens te verifiëren.

Vanwege het verifieerbare karakter van digitale inloggegevens kunnen ze gebruiksscenario's mogelijk maken zoals:

  • Leeftijdsverificatie: Vraag de leeftijd aan om de leeftijd van een persoon te verifiëren voordat u inhoud met een leeftijdsbeperking aanbiedt of items met een leeftijdsbeperking koopt.
  • Identiteitsverificatie: Naam en adres opvragen om de identiteit van een persoon te verifiëren voor wettelijke naleving of fraudepreventie.
  • Controle van rijbevoegdheden: Controleer of iemand in aanmerking komt om te rijden (bijvoorbeeld bij het huren van een auto).

Nu websites rechtstreeks zijn gaan communiceren met mobiele portemonnee-applicaties (zoals door aangepaste URL-schema's te gebruiken) om digitale inloggegevens op te vragen voor verschillende gebruiksscenario's, zien browsers een kans om deze interactie veiliger, beter bestand tegen misbruik en gemakkelijker te gebruiken te maken via een speciaal gebouwde API.

Introductie van de Digital Credentials API

De Digital Referentions API is een nieuwe Web Platform API waarmee RP -websites de presentatie van digitale referenties van Wallet -apps kunnen aanvragen. De API is verkrijgbaar in Chrome als een oorsprongstudie vanaf Chrome 128.

De API is protocol agnostisch, waardoor de RP een protocol kan specificeren op basis van hun vereisten. Wanneer een RP een verzoek indient, verzendt de browser het verzoek naar het mobiele besturingssysteem dat op zoek is naar een bijpassende referentie in geïnstalleerde portemonnee -applicaties. Als er een wordt gevonden, vraagt ​​het mobiele besturingssysteem de gebruiker om er een te selecteren en verzendt het verzoek naar de door de gebruiker geselecteerde portemonnee. Na een lokale authenticatie retourneert de portemonnee een antwoord met de gevraagde gegevensgegevens.

Communicatie -diagram tussen de browser, portemonnee en vertrouwenspartij.

Chrome ondersteunt eerst de API in Chrome op Android voor het aanvragen van referenties van Wallet -apps op hetzelfde apparaat. In de toekomst zijn we van plan Chrome Desktop te ondersteunen om inloggegevens te vragen om cross-apparaat van een ander mobiel apparaat te vragen.

Bij de lancering zal Google Wallet integreren met de Digital Credentions API, waardoor geselecteerde bedrijven en organisaties een verzoek voor gebruikers kunnen starten om hun ID online te presenteren, via Chrome op Android, en de authenticiteit van de verzonden gegevens verifiëren door de cryptografische handtekening te onderzoeken. Om deel te nemen, vul dit formulier in om interesse te tonen in het accepteren van digitale ID's van Google Wallet.

De API wordt ook binnenkort door Google -accounts gebruikt om de geboortedatum van bepaalde gebruikers te verifiëren. Gebruikers die in een ondersteunde Amerikaanse staat wonen, kunnen hun staats -ID of rijbewijs in beschikbare portemonnee -apps (inclusief Google Wallet) gebruiken om alleen hun geboortedatum met Google naadloos te delen zonder andere details van hun identiteit te delen. Dit stelt gebruikers in staat om op een privacy-bewerende manier aan Google aan te tonen dat ze aan de accountgerelateerde leeftijdsvereisten voldoen.

Probeer het uit

Vereisten:

  • Google Play Services 23.40 of later
  • Chrome 128 of later
  • Schakel de vlag in op chrome://flags#web-identity-digital-credentials

Volg de instructies om de digitale referenties te proberen:

  1. Installeer de Demo Wallet -toepassing volgens de instructies.
  2. Start de IC Wallet -app en de voorziening A Demo Mobile Riach's License (MDL).
    • Tik op de menu -knop en selecteer zelftekendocument toevoegen.
  3. Navigeer naar https://digital-credentials.dev met Chrome 128 of later.
  4. Druk op Verzoek inloggegevens (OpenID4VP).

Bekijk de demo die https://digital-credentials.dev gebruikt, een testwebsite voor ontwikkelaars om inlogverzoeken voor verschillende attributen te genereren:

Dit is hoe de demo stap voor stap werkt:

1. De gebruiker landt op de website van de Relying Partij en wordt gevraagd om zijn geverifieerde familienaam, een voornaam en een leeftijdsborging van meer dan 21 jaar oud te presenteren.
2. De browser bevestigt of de gebruiker van plan is om een ​​digitale referentie met deze website te delen.
3. Het besturingssysteem geeft de gevraagde informatie weer en in aanmerking komende inloggegevens die kunnen overeenkomen met het verzoek voor de gebruiker om het verzoek te selecteren en te voltooien.
4. De portemonnee authenticeert de gebruiker lokaal met schermontgrendeling.

5. De gevraagde digitale referentie wordt nu doorgegeven aan de website van de Relying Party.

Hoe de API werkt

Digitale referenties API is gebouwd op de basis van de Credential Management API , maar van een onafhankelijk API -oppervlak: navigator.identity . Door navigator.identity.get() te bellen, kan de website een digitale referentie aanvragen die is opgeslagen op een mobiele portemonnee -app. .

// 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: {...}
      }
    }],
  }
});

Het basis -API -oppervlak is vergelijkbaar met navigator.credentials.get() , behalve dat het alleen het "digital" referentietype accepteert. Binnen het type digitale referenties, voeg providers array toe IdentityRequestProvider bevat met de volgende basisparameters:

Voorbeeld payload naar het digitale referentietype met behulp van 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
            }
          ]
        }
      }],
    }
  }
}

Met dit verzoek bieden portefeuilles die MDL's op het apparaat hebben, verifieerbare set referenties die bevatten:

  • De familienaam van de gebruiker.
  • De voornaam van de gebruiker.
  • Een Booleaanse waarde die aangeeft of de gebruiker ouder is dan 21 jaar of niet.

Hier is een voorbeeld van de responspayload:

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

In dit voorbeeld werd de inloggegevens gevraagd met het protocol "openid4vp" en het antwoord bevat "vp_token" in de eigenschap data . Zie OpenID voor Verifieerbare presentatie (OID4VP) voor de W3C Digital Referentions API -specificatie om te leren hoe het antwoord te parseren en de referentie te verifiëren.

Digitale referenties API wordt ondersteund op Chrome op Android als een oorsprongstroef . Chrome op Desktop en iOS ondersteunt het op dit moment niet. Voor andere browsermotoren worden actieve gesprekken gefaciliteerd via de W3C Web Incubator Community Group .

Deelnemen aan de oorsprongstroef

Voor ontwikkeling kunt u de API van de digitale referenties lokaal inschakelen door de Chrome Flag chrome://flags#web-identity-digital-credentials in Chrome 128 of later.

Deze functie is ook beschikbaar als een proefrit. Oorsprongsproeven stellen u in staat om nieuwe functies te proberen en feedback te geven over hun bruikbaarheid, bruikbaarheid en effectiviteit aan de community van de webstandaarden. Zie het begin met oorsprongstroeven voor meer informatie. Ga naar de registratiepagina om zich aan te melden voor deze of een andere oorsprongstroef.

  1. Vraag een token aan voor uw herkomst.
  2. Voeg het token toe aan uw pagina's. Er zijn twee manieren om dat te doen:
    • Voeg een origin-trial <meta> -tag toe aan de kop van elke pagina. Dit kan bijvoorbeeld zoiets lijken als: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Als u uw server kunt configureren, kunt u ook het token toevoegen met behulp van een HTTP-header Origin-Trial . De resulterende responskop moet er zoiets uitzien als: Origin-Trial: TOKEN_GOES_HERE.

Deel feedback

Als u feedback hebt over API van digitale referenties, dient u dit in bij de speciale Chromium Problee Tracker .