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:
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:
- 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.
- Aplikacja lub usługa, która prosi o dane logowania, aby przyznać dostęp lub potwierdzić tożsamość, jest nazywana weryfikatorem.
- Podmiot, który tworzy poświadczenie i potwierdza deklaracje dotyczące podmiotu (np. uniwersytet, instytucja państwowa lub firma technologiczna), jest nazywany wydawcą.
- 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:
- Na Androidzie portfele muszą zarejestrować metadane danych logowania w usłudze Credential Manager, aby były widoczne w interfejsie tej usługi.
- 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.
- 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:
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:
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-jwt i mdoc.
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:
- 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. - 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ć.
- Otwórz stronę https://digital-credentials.dev/ i kliknij
Request Credentials (OpenID4VP). - 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.
- Wybierz dane logowania z CMWallet, aby wrócić do przeglądarki. Przeglądarka powinna wyświetlić zwrócone dane logowania.
Zobacz również
- Więcej informacji o używaniu Credential Manager do wysyłania w aplikacji żądań dotyczących cyfrowych dokumentów tożsamości znajdziesz na stronie Credential Manager – interfejs API weryfikatora.
- Więcej informacji o tworzeniu cyfrowego portfela za pomocą Credential Manager znajdziesz na stronie Credential Manager – interfejs API posiadacza.