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

Cyfrowe dane uwierzytelniające to dokumenty, które można zweryfikować kryptograficznie i które mogą służyć 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 Menedżera danych logowania.

Informacje o dokumentach cyfrowych

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ślony certyfikat. Następnie użytkownik wybiera kartę i wyjmuje ją z fizycznego portfela. Na koniec użytkownik przekazuje dane logowania podmiotowi wysyłającemu żądanie.

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

Cyfrowe dokumenty tożsamości różnią się od dokumentów w świecie fizycznym tymi cechami:

  1. Użytkownicy powinni mieć kilka 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. Aplikacja lub usługa, która prosi o dane logowania, aby przyznać dostęp lub potwierdzić tożsamość, jest nazywana weryfikatorem.
  3. Podmiot, który tworzy poświadczenie i potwierdza deklaracje dotyczące podmiotu (np. uniwersytet, instytucja państwowa lub firma technologiczna), jest nazywany wydawcą.
  4. Prezentacja danych logowania odbywa się w oprogramowaniu, co oznacza, że interfejs API pobiera i prezentuje dane logowania – w 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. Na Androidzie portfele muszą zarejestrować metadane danych logowania w usłudze Credential Manager, aby były widoczne w interfejsie tej usługi.
  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, Credential Manager 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ć żądanie weryfikatora i poprosić użytkownika o wybranie danych logowania. Credential Manager kieruje następnie przepływ aktywności do odpowiedniego portfela, który obsługuje pozostałą część transakcji i zwraca dane logowania do weryfikatora. Uwaga: po otrzymaniu odpowiedzi z danymi uwierzytelniającymi weryfikator musi ją obsłużyć i zweryfikować.

Weryfikowalne dane logowania

Weryfikowalne dane logowania to podzbiór cyfrowych danych logowania, które podlegają ścisłym standardom (np. modelowi danych W3C Verifiable Credentials). Te dane logowania zawierają oświadczenia zabezpieczone kryptograficznie, dzięki czemu są odporne na manipulacje i dokładnie wskazują, kto je wydał.

Nie wszystkie dokumenty cyfrowe są dokumentami weryfikowalnymi, ale wszystkie dokumenty weryfikowalne są dokumentami cyfrowymi.

Co oznacza weryfikacja roszczenia

Gdy dane logowania dotrą przez interfejs Android Credential Manager API, a zawarte w nich roszczenie zostanie oznaczone jako „zweryfikowane”, oznacza to, że wystawca potwierdza, że przeprowadził weryfikację tych konkretnych danych. Nie oznacza to jednak, że dane są absolutną, uniwersalną prawdą. „Zweryfikowany” to potwierdzenie procesu, a nie automatyczna gwarancja zaufania.

Podstawową zasadą tego ekosystemu jest to, że zaufanie jest zawsze rozstrzygane przez weryfikatora. Gdy weryfikator (Twoja aplikacja) otrzyma zabezpieczone kryptograficznie dane i zobaczy, że wystawca oznaczył je jako „zweryfikowane”, musi określić, czy ufa wystawcy w zakresie weryfikacji roszczenia zgodnie ze swoimi standardami.

Interfejs użytkownika

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

Obraz pokazujący interfejs cyfrowych dokumentów tożsamości w Credential Manager
Rysunek 3. Interfejs cyfrowych dokumentów tożsamości.

Standardy

Żądania cyfrowych danych logowania 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 danych cyfrowych 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ż