Omówienie cyfrowych dokumentów tożsamości

Cyfrowe dane uwierzytelniające to dokumenty, które można zweryfikować kryptograficznie i które służą do uwierzytelniania, autoryzowania lub przekazywania informacji o użytkowniku. Są to zwykle takie dokumenty jak mobilne prawo jazdy, paszporty cyfrowe, karty pokładowe itp. Są one przechowywane w wirtualnych kontenerach zwanych cyfrowymi portfelami i stanowią część standardu W3C, który określa sposób uzyskiwania do nich dostępu i pobierania ich. Ten standard jest wdrażany w przypadku zastosowań internetowych za pomocą interfejsu W3C Credential Management API, a na Androidzie za pomocą interfejsu DigitalCredential API Credential Managera.

Informacje o cyfrowych dokumentach tożsamości

W świecie fizycznym osoba może przechowywać dokument tożsamości w portfelu i okazywać go na żądanie:

Obraz przedstawiający przebieg normalnej interakcji z portfelem
Rysunek 1. Proces realizacji żądania dokumentu w świecie fizycznym. Osoba wysyłająca prośbę prosi użytkownika o określone dane logowania. Następnie użytkownik wybiera kartę i wyjmuje ją z portfela. Na koniec użytkownik przekazuje dane logowania osobie wysyłającej żądanie.

W takim przypadku użytkownik ma zwykle jeden portfel i pobiera z niego żądane dane logowania, aby przedstawić je osobie wysyłającej żądanie. Portfele są w większości wymienne i mogą przechowywać te same rzeczy.

Certyfikaty cyfrowe różnią się od tradycyjnych w kilku kwestiach:

  1. Użytkownicy powinni mieć wiele portfeli – zwanych też posiadaczami – które mogą zawierać różne dane logowania. Portfele określają, które dane logowania mogą być w nich przechowywane.
  2. Wnioskodawcą jest teraz aplikacja, a nie prawdziwa osoba. Nazywamy ją weryfikatorem.
  3. Prezentacja danych logowania odbywa się w oprogramowaniu, co oznacza, że interfejs API pobiera i prezentuje dane logowania. Na Androidzie jest to Menedżer danych logowania.

Menedżer danych logowania pełni kilka ról, które wcześniej były obsługiwane przez użytkownika:

  1. W przypadku Androida portfele muszą zarejestrować metadane danych logowania w Menedżerze danych logowania, aby były widoczne w interfejsie Menedżera danych logowania.
  2. Menedżer danych logowania dopasowuje dane logowania w różnych portfelach na podstawie żądania i wyświetla listę, z której użytkownik może wybrać odpowiednie dane.
  3. Gdy użytkownik wybierze dane logowania z listy, Menedżer danych logowania wywoła portfel, który obsłuży pozostałą część transakcji (wyświetli interfejsy itp.) i zwróci dane logowania do aplikacji.

Ten proces pokazano tutaj:

Obraz przedstawiający przebieg interakcji z cyfrowymi dokumentami tożsamości
Rysunek 2. Model interakcji na potrzeby weryfikacji cyfrowych dokumentów tożsamości. Menedżer danych logowania używa metadanych wstępnie zarejestrowanych danych logowania w portfelach użytkowników, aby dopasować je do żądania weryfikatora, i prosi użytkownika o wybranie danych logowania. Credential Manager przekierowuje następnie przepływ aktywności do odpowiedniego portfela, który obsługuje pozostałą część transakcji i zwraca dane logowania weryfikatorowi. Uwaga: po otrzymaniu odpowiedzi dotyczącej danych logowania weryfikator musi ją obsłużyć i zweryfikować.

Interfejs użytkownika

Jak pokazano w przypadku Androida, użytkownik musi tylko raz wejść w interakcję z interfejsem Menedżera danych logowania, aby wybrać odpowiednie dane logowania. Oto przykład selektora:

Ilustracja przedstawiająca interfejs cyfrowych dokumentów tożsamości w Menedżerze dokumentów tożsamości
Rysunek 3. Interfejs cyfrowych dokumentów tożsamości.

Standardy

Żądania danych logowania w formie cyfrowej są tworzone zgodnie ze standardem OpenID4VP. Przykładowe żądania znajdziesz na stronie demonstracyjnej cyfrowych dokumentów tożsamości.

Odpowiedzi dotyczące cyfrowych dokumentów tożsamości są zwykle zwracane w standardowym formacie dokumentu. Są one utrzymywane przez różne organizacje normalizacyjne i obejmują W3C Verifiable Credentials, sd-jwtmdoc.

Możesz też używać protokołów niestandardowych, ale zalecamy stosowanie w aplikacji jednego z protokołów standardowych.

Wypróbuj

Możesz przetestować przepływ cyfrowych dokumentów tożsamości na różnych platformach za pomocą portfela na Androida i weryfikatora internetowego:

  1. Zainstaluj publiczną wersję demonstracyjną aplikacji CMWallet na telefonie z Androidem. Możesz to zrobić, pobierając pliki z repozytorium i instalując je bezpośrednio z Android Studio lub przechodząc na stronę https://github.com/digitalcredentialsdev/CMWallet/actions i wybierając najnowszą kompilację, aby uzyskać dostęp do najnowszego pliku app-debug.apk.
  2. Otwórz CMWallet, aby zarejestrować metadane w Menedżerze danych logowania. Sprawdź, czy Bluetooth jest włączony, aby urządzenia mogły się ze sobą połączyć.
  3. Otwórz stronę https://digital-credentials.dev/ i kliknij Request Credentials (OpenID4VP).
  4. Zaakceptuj ostrzeżenia i zeskanuj kod QR telefonem, a następnie wybierz „Użyj klucza dostępu” i kliknij potwierdzenie, aby wyświetlić dostępne dane logowania.
  5. Wybierz dane logowania z CMWallet, aby wrócić do przeglądarki. Przeglądarka powinna wyświetlić zwrócone dane logowania.

Zobacz również