Ringkasan kredensial digital

Kredensial digital adalah dokumen yang dapat diverifikasi secara kriptografis yang dapat digunakan untuk mengautentikasi, mengotorisasi, atau memberikan informasi tentang pengguna. Hal-hal tersebut biasanya berupa surat izin mengemudi seluler, paspor digital, boarding pass, dll. Hal-hal tersebut berada di dalam penampung virtual yang disebut dompet digital, dan merupakan bagian dari standar W3C yang menentukan cara mengakses dan mengambilnya. Standar ini diterapkan untuk kasus penggunaan web dengan W3C Credential Management API dan di Android, dengan DigitalCredential API Credential Manager.

Memahami kredensial digital

Di dunia fisik, seseorang dapat menyimpan identitasnya di dompet, dan menunjukkannya kepada pihak yang meminta saat diminta:

Gambar yang menunjukkan alur interaksi dompet normal
Gambar 1. Proses pemenuhan permintaan kredensial dunia fisik. Pemohon meminta kredensial tertentu kepada pengguna. Kemudian, pengguna memilih dan mengambilnya dari dompet fisiknya. Terakhir, pengguna memberikan kredensial kepada pemohon.

Dalam hal ini, pengguna umumnya memiliki satu dompet, dan mengambil kredensial yang diminta dari dompet untuk ditampilkan kepada pemohon. Sebagian besar dompet dapat dipertukarkan, dan umumnya dapat menyimpan hal yang sama.

Kredensial digital memiliki perbedaan berikut dari kredensial di dunia fisik:

  1. Pengguna diharapkan memiliki beberapa dompet - juga dikenal sebagai pemegang - yang dapat berisi berbagai kredensial yang berbeda. Dompet menentukan kredensial mana yang dapat disimpan di dalamnya.
  2. Aplikasi atau layanan yang meminta kredensial untuk memberikan akses atau memverifikasi identitas disebut pemverifikasi.
  3. Entitas yang membuat kredensial dan menegaskan klaim tentang subjek (seperti, universitas, pemerintah, atau perusahaan teknologi) disebut sebagai penerbit.
  4. Presentasi kredensial terjadi di software, yang berarti permukaan API mengambil dan menampilkan kredensial - di Android, ini adalah Credential Manager.

Dengan demikian, Pengelola Kredensial mengambil alih beberapa peran yang sebelumnya ditangani oleh pengguna:

  1. Di Android, dompet harus mendaftarkan metadata kredensialnya ke Credential Manager agar tercantum di UI Credential Manager.
  2. Credential Manager mencocokkan kredensial di seluruh dompet berdasarkan permintaan dan menampilkan daftar yang dapat dipilih pengguna.
  3. Saat pengguna memilih kredensial dalam daftar, Pengelola Kredensial akan memanggil dompet, yang akan menangani sisa transaksi (menampilkan UI, dll.) dan mengembalikan kredensial ke aplikasi.

Alur ini ditunjukkan di sini:

Gambar yang menunjukkan alur interaksi kredensial digital
Gambar 2. Model interaksi untuk verifikasi kredensial digital. Credential Manager menggunakan metadata kredensial yang telah didaftarkan sebelumnya di seluruh dompet pengguna untuk mencocokkan permintaan verifier dan meminta pengguna untuk memilih kredensial. Credential Manager kemudian mengarahkan alur aktivitas ke dompet terkait yang menangani sisa transaksi dan mengembalikan kredensial ke verifier. Catatan: Verifier perlu menangani dan memverifikasi respons kredensial setelah dikembalikan.

Kredensial yang dapat diverifikasi

Kredensial yang dapat diverifikasi adalah subset kredensial digital yang diatur oleh standar ketat (seperti Model Data Kredensial yang Dapat Diverifikasi W3C). Kredensial ini berisi klaim yang diamankan secara kriptografis, sehingga membuatnya jelas-jelas tidak dapat dimodifikasi dan membuktikan secara tepat siapa yang menerbitkannya.

Tidak semua kredensial digital adalah kredensial yang dapat diverifikasi, tetapi semua kredensial yang dapat diverifikasi adalah kredensial digital.

Arti klaim yang diverifikasi

Saat kredensial tiba melalui Android Credential Manager API dan klaim di dalamnya ditandai sebagai "terverifikasi", hal ini menunjukkan bahwa penerbit menegaskan bahwa mereka melakukan pemeriksaan pada data tertentu tersebut. Namun, hal ini tidak berarti data tersebut adalah kebenaran mutlak dan universal. "Terverifikasi" adalah pernyataan proses, bukan jaminan kepercayaan otomatis.

Filosofi inti ekosistem ini adalah bahwa kepercayaan selalu diselesaikan di verifier. Saat verifikator (aplikasi Anda) menerima data yang aman secara kriptografis, dan melihat bahwa penerbit menandainya sebagai "terverifikasi", verifikator harus menentukan apakah verifikator memercayai penerbit telah memverifikasi klaim sesuai standarnya.

Pengalaman pengguna

Seperti yang ditunjukkan dalam alur Android, pengguna hanya perlu berinteraksi satu kali dengan UI Credential Manager untuk memilih kredensial yang sesuai. Berikut adalah contoh tampilan pemilih:

Gambar yang menampilkan UI kredensial digital di Credential Manager
Gambar 3. UI kredensial digital.

Standar

Permintaan kredensial digital dibuat menggunakan standar OpenID4VP. Anda dapat melihat contoh permintaan di situs Demo Kredensial Digital.

Respons kredensial digital biasanya ditampilkan dalam format kredensial standar. Spesifikasi ini dikelola oleh berbagai badan standar, dan mencakup W3C Verifiable Credentials, sd-jwt, dan mdoc.

Protokol kustom juga dapat digunakan, meskipun sebaiknya gunakan salah satu protokol standar di aplikasi Anda.

Cobalah

Anda dapat menguji alur kredensial digital di seluruh platform dengan dompet Android dan verifier berbasis web:

  1. Instal contoh publik CMWallet di ponsel Android Anda. Anda dapat melakukannya dengan menarik dari repositori dan menginstal langsung dari Android Studio atau membuka https://github.com/digitalcredentialsdev/CMWallet/actions dan memilih build terbaru untuk mengakses file app-debug.apk terbaru.
  2. Buka CMWallet untuk mendaftarkan metadata dengan Pengelola Kredensial. Pastikan Bluetooth diaktifkan agar perangkat Anda dapat saling terhubung.
  3. Buka https://digital-credentials.dev/, lalu pilih Request Credentials (OpenID4VP).
  4. Setujui perintah peringatan dan pindai Kode QR dengan ponsel Anda, lalu pilih "Gunakan kunci sandi" dan ketuk konfirmasi untuk menampilkan kredensial yang tersedia.
  5. Pilih kredensial dari CMWallet untuk kembali ke browser. Browser akan menampilkan kredensial yang ditampilkan.

Lihat juga