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, W3C Credential Management API ile web kullanım alanlarında ve Android'de Kimlik Bilgisi Yöneticisi'nin DigitalCredential API'si 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. Gerçek dünyada kimlik bilgisi isteğini karşılama süreci. İstekte bulunan kişi, kullanıcıdan belirli bir kimlik bilgisi ister. 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 istenen kimlik bilgilerini cüzdandan alarak talep edene sunar. Cüzdanlar çoğunlukla birbirinin yerine kullanılabilir ve genellikle aynı öğeleri saklayabilir.

Dijital kimlik bilgilerinin fiziksel dünyadaki kimlik bilgilerinden şu farkları vardır:

  1. Kullanıcıların, çeşitli farklı kimlik bilgilerini içerebilen birden fazla cüzdanı (kart sahipleri olarak da bilinir) olması beklenir. Cüzdanlar, hangi kimlik bilgilerinin cüzdanlarda saklanabileceğini belirler.
  2. Erişim izni vermek veya kimliği doğrulamak için kimlik bilgisi isteyen uygulama ya da hizmete doğrulayıcı denir.
  3. Kimlik bilgisini oluşturan ve konuyla ilgili iddialarda bulunan tüzel kişi (ör. üniversite, devlet veya teknoloji şirketi) veren kuruluş olarak adlandırılır.
  4. 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, Kimlik Bilgisi Yöneticisi 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 Credential Manager'a kaydetmesi 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ğrulama 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, işlem akışını işlemin geri kalanını işleyen 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.

Doğrulanabilir kimlik bilgileri

Doğrulanabilir kimlik bilgileri, katı standartlara (ör. W3C Doğrulanabilir Kimlik Bilgileri Veri Modeli) tabi olan dijital kimlik bilgilerinin bir alt kümesidir. Bu kimlik bilgileri, kriptografik olarak güvenli hale getirilmiş talepler içerir. Bu sayede, kimlik bilgilerinin üzerinde değişiklik yapılması kolayca anlaşılır ve kimlik bilgilerini tam olarak kimin verdiği kanıtlanır.

Tüm dijital kimlik bilgileri doğrulanabilir kimlik bilgisi değildir ancak tüm doğrulanabilir kimlik bilgileri dijital kimlik bilgisidir.

Bir iddianın doğrulanması ne anlama gelir?

Android Credential Manager API aracılığıyla bir kimlik bilgisi geldiğinde ve içindeki bir talep "doğrulanmış" olarak işaretlendiğinde, veren tarafın söz konusu veri parçası üzerinde kontrol yaptığı anlamına gelir. Ancak bu, verilerin mutlak ve evrensel bir gerçek olduğu anlamına gelmez. "Doğrulanmış" ifadesi, sürecin onaylandığını belirtir ancak güvenin otomatik olarak garanti edildiği anlamına gelmez.

Bu ekosistemin temel felsefesi, güvenin her zaman doğrulayıcıda çözümlenmesidir. Doğrulayıcı (uygulamanız) kriptografik olarak güvenli verileri aldığında ve yayınlayanın bu verileri "doğrulanmış" olarak işaretlediğini gördüğünde, yayınlayanın talebi kendi standartlarına göre doğruladığına güvenip güvenmeyeceğini belirlemelidir.

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 nasıl göründüğüne dair bir örneği aşağıda bulabilirsiniz:

Kimlik Bilgisi Yöneticisi'ndeki dijital kimlik bilgileri 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 Digital Credentials Demo sitesinde görebilirsiniz.

Dijital kimlik yanıtları genellikle standart bir kimlik 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.