Dijital kimlik bilgilerine genel bakış

Dijital kimlik bilgileri, kullanıcı hakkında bilgi sağlamak, kimliğini doğrulamak veya yetkilendirmek için kullanılabilen, kriptografik olarak doğrulanabilir belgelerdir. Bunlar genellikle mobil sürücü belgeleri, dijital pasaportlar, biniş kartları vb. gibi öğelerdir. Dijital cüzdan adı verilen sanal kapsayıcılarda bulunur ve bunlara nasıl erişileceğini ve bunların nasıl alınacağını belirten bir W3C standardının parçasıdır. Bu standart, web'de W3C Credential Management API ile, Android'de ise Credential Manager'ın DigitalCredential API ile uygulanır.

Dijital kimlik bilgilerini anlama

Fiziksel dünyada bir kişi kimliğini cüzdanında saklayabilir ve istendiğinde talep eden tarafa gösterebilir:

Normal bir cüzdan etkileşiminin akışını gösteren resim
Şekil 1. Fiziksel dünyada kimlik bilgisi isteğini karşılama süreci. İstekte bulunan kişi, kullanıcıdan belirli bir kimlik bilgisi istiyor. Ardından, kullanıcı fiziksel cüzdanından seçip alır. Son olarak, kullanıcı kimlik bilgisini talep edene sağlar.

Bu durumda, kullanıcının genellikle tek bir cüzdanı vardır ve talep edilen kimlik bilgilerini cüzdandan alarak talep edene sunar. Cüzdanlar çoğunlukla birbirinin yerine kullanılabilir ve genellikle aynı öğeleri saklayabilir.

Dijital kimlik bilgilerinin birkaç temel farkı vardır:

  1. Kullanıcıların, çeşitli kimlik bilgilerini içerebilen birden fazla cüzdanı (sahip olarak da bilinir) olması beklenir. Cüzdanlar, hangi kimlik bilgilerinin cüzdanlarda saklanabileceğini belirler.
  2. İstekte bulunan artık gerçek bir kişi değil, bir uygulamadır ve doğrulayıcı olarak adlandırılır.
  3. Kimlik bilgisi sunma işlemi yazılımda gerçekleşir. Bu nedenle, bir API yüzeyi kimlik bilgilerini alır ve sunar. Android'de bu, Credential Manager'dır.

Bu nedenle, Credential Manager daha önce kullanıcı tarafından yönetilen çeşitli rolleri üstlenir:

  1. Android'de, Cüzdanların kimlik bilgisi yöneticisi kullanıcı arayüzünde listelenmesi için kimlik bilgisi meta verilerini CredentialManager'a kaydettirmesi gerekir.
  2. Kimlik bilgisi yöneticisi, isteğe göre cüzdanlardaki kimlik bilgilerini eşleştirir ve kullanıcının seçebileceği bir liste sunar.
  3. Kullanıcı listeden bir kimlik bilgisi seçtiğinde Kimlik Bilgisi Yöneticisi, işlemin geri kalanını (kullanıcı arayüzlerini gösterme vb.) işleyecek ve kimlik bilgisini uygulamaya döndürecek olan cüzdanı çağırır.

Bu akış burada gösterilmektedir:

Dijital kimlik bilgisi etkileşiminin akışını gösteren resim
Şekil 2. Dijital kimlik bilgisi doğrulaması için etkileşim modeli. Kimlik Bilgisi Yöneticisi, doğrulayıcının isteğini karşılamak için kullanıcı cüzdanlarındaki önceden kaydedilmiş kimlik bilgisi meta verilerini kullanır ve kullanıcıdan bir kimlik bilgisi seçmesini ister. Kimlik bilgisi yöneticisi, etkinlik akışını işlemin geri kalanını gerçekleştiren ve kimlik bilgisini doğrulayana döndüren ilgili cüzdana yönlendirir. Not: Doğrulayıcının, kimlik bilgisi yanıtı döndürüldükten sonra bu yanıtı işlemesi ve doğrulaması gerekir.

Kullanıcı deneyimi

Android akışında gösterildiği gibi, kullanıcının uygun kimlik bilgisini seçmek için Kimlik Bilgisi Yöneticisi kullanıcı arayüzüyle yalnızca bir kez etkileşimde bulunması gerekir. Seçicinin görünümüne dair bir örneği aşağıda bulabilirsiniz:

Kimlik Yöneticisi'ndeki dijital kimlik kullanıcı arayüzünü gösteren resim
Şekil 3. Dijital kimlik bilgileri kullanıcı arayüzü.

Standartlar

Dijital kimlik bilgisi istekleri, OpenID4VP standardı kullanılarak oluşturulur. Örnek istekleri Dijital Kimlik Bilgileri Demo Sitesi'nde görebilirsiniz.

Dijital kimlik bilgisi yanıtları genellikle standart bir kimlik bilgisi biçiminde döndürülür. Bunlar farklı standart kuruluşları tarafından yönetilir ve W3C Verifiable Credentials, sd-jwt ve mdoc'u içerir.

Uygulamanızda standart protokollerden birini kullanmanızı önersek de özel protokoller de kullanılabilir.

Deneyin

Android cüzdan ve web tabanlı doğrulayıcı ile platformlar arası dijital kimlik bilgisi akışını test edebilirsiniz:

  1. Android telefonunuza CMWallet genel örneğini yükleyin. Bunu, depodan çekip doğrudan Android Studio'dan yükleyerek veya https://github.com/digitalcredentialsdev/CMWallet/actions adresine gidip en son app-debug.apk dosyasına erişmek için en son derlemeyi seçerek yapabilirsiniz.
  2. Meta verileri kimlik bilgisi yöneticisine kaydetmek için CMWallet'ı açın. Cihazlarınızın birbirine bağlanabilmesi için Bluetooth'un etkinleştirildiğinden emin olun.
  3. https://digital-credentials.dev/ adresine gidin ve Request Credentials (OpenID4VP) simgesini seçin.
  4. Uyarı istemlerini kabul edin ve QR kodunu telefonunuzla tarayın. Ardından "Geçiş anahtarı kullan"ı seçip onaylamaya dokunarak kullanılabilir kimlik bilgilerini gösterin.
  5. Tarayıcıya dönmek için CMWallet'tan kimlik bilgisini seçin. Tarayıcı, döndürülen kimlik bilgisini göstermelidir.

Ayrıca bkz.