Ringkasan

Digital Credentials Provisioning API disusun berdasarkan tiga model resource utama:

Resource Deskripsi
Perangkat Instance unik dari perangkat fisik dan kunci identitas.
Pembuktian Proses pembuktian identitas pengguna sebelum menerbitkan Kredensial.
Kredensial DC itu sendiri.

Sebagai Penerbit, Anda bertanggung jawab untuk membuat dan mengelola resource ini selama siklus proses DC.

Asumsi

Asumsi utama yang dibuat API ini adalah penggunaan Android Identity Credential API oleh perangkat untuk menyimpan DC yang ditentukan oleh ISO/IEC 18013-5.

Model resource

Perangkat

Dalam model Digital Credentials Provisioning API, perangkat tidak hanya merepresentasikan perangkat berteknologi Android tempat pengguna mengelola DC mereka menggunakan aplikasi Google Wallet. Namun, perangkat direpresentasikan sebagai kombinasi dari berikut ini:

  • Perangkat fisik berteknologi Android.
  • Pasangan kunci publik/pribadi (disebut sebagai “kunci identitas”).
    • Kunci publik digunakan oleh Penerbit untuk memverifikasi identitas perangkat.
    • Kunci pribadi disimpan di penyimpanan aman perangkat.

Saat melakukan panggilan API, kombinasi perangkat dan kredensial diidentifikasi oleh ID referensi perangkat (properti deviceReferenceId).

Saat pertama kali perangkat berkomunikasi dengan Penerbit, perangkat tersebut akan diberi nonce unik (untuk mencegah serangan replay dan memastikan keaktualan). Nonce ditandatangani oleh kunci identitas perangkat dan disematkan dalam sertifikat yang berisi kunci identitas. Selanjutnya, sertifikat dapat digunakan untuk memverifikasi perangkat dengan Penerbit.

Untuk mengetahui informasi selengkapnya tentang sertifikat, lihat dokumentasi IdentityCredential Android.

Jika Anda memodelkan resource ini sebagai tabel database, resource ini akan terlihat mirip dengan contoh berikut. Perhatikan bahwa properti identityKey akan menjadi nilai kunci publik.

Contoh tabel database untuk resource perangkat.

Pembuktian

Pembuktian mewakili kombinasi berikut:

  • Bukti yang diberikan oleh pengguna untuk membuktikan identitasnya
  • Keputusan yang dibuat oleh Penerbit berdasarkan bukti yang diberikan

Pembuktian khusus untuk jenis kredensial yang diminta pengguna. Saat menyediakan DC, pengguna memberikan foto dokumen identitas fisiknya dan video profilnya. Video tersebut digunakan oleh Google untuk menghitung kemungkinan bahwa video tersebut adalah orang sungguhan. Hasil yang diberikan oleh Google kepada Penerbit disebut sebagai “skor keaktifan”. Metode pembuktian tambahan akan ditambahkan saat jenis kredensial baru didukung.

Kemungkinan status untuk pembuktian tercantum dalam tabel berikut.

Status Deskripsi Status final
Tertunda Penerbit belum membuat keputusan. Tidak
Diterima Penerbit telah memutuskan bahwa bukti tersebut memuaskan. Tidak
Ditolak Penerbit telah memutuskan bahwa bukti tersebut tidak memuaskan. Ya*
Menghadapi tantangan Penerbit memerlukan informasi lebih lanjut untuk membuat keputusan. Tidak
Dibatalkan Pengguna telah membatalkan pemeriksaan. Ya
Dicabut Penerbit telah mencabut verifikasi. Ya*
Telah Berakhir Pengguna tidak menyelesaikan tantangan tepat waktu. Ya

Status yang ditandai dengan tanda bintang (*) mungkin belum final jika peninjau manusia melakukan kesalahan dan memperbarui status secara manual.

Diagram status berikut menjelaskan kemungkinan alur status:

Dalam beberapa kasus, Penerbit mungkin tidak dapat membuat keputusan berdasarkan bukti awal. Untuk membantu membuat keputusan, pengguna dapat diminta untuk memberikan informasi atau bukti tambahan kepada Penerbit. Contoh tantangan mencakup merespons surat, mengunjungi situs Penerbit, atau mengirimkan bukti tambahan.

Jika Anda memodelkan resource ini sebagai tabel database, resource ini akan terlihat mirip dengan contoh berikut.

Contoh tabel database untuk resource pemeriksaan.

Kredensial

Kredensial mewakili versi virtual kredensial fisik untuk perangkat tertentu. Setiap kali kredensial virtual disediakan ke perangkat fisik, kredensial tersebut akan diberi ID kredensial. Jika kredensial fisik yang sama disediakan ke perangkat yang berbeda, kredensial tersebut akan memiliki ID kredensial yang berbeda setiap kali. Demikian pula, jika kredensial disediakan ke perangkat, dihapus, dan disediakan lagi ke perangkat yang sama, kredensial tersebut akan memiliki ID kredensial yang berbeda.

Jika detail kredensial pengguna berubah (seperti perubahan alamat untuk dokumen identitas), detail ini harus diperbarui untuk kredensial virtual terkait. Satu kredensial dapat memiliki versi yang berbeda yang sesuai dengan perubahan tersebut. Versi saat ini dilacak menggunakan ID versi kredensial.

Untuk menampilkan kredensial kepada pihak tepercaya, perangkat harus terlebih dahulu mengambil objek keamanan seluler (MSO) dari penerbit. MSO berisi ringkasan kredensial yang telah ditandatangani oleh Penerbit. MSO dibuat dari kunci autentikasi, kunci publik yang dibuat dan ditandatangani oleh kunci identitas perangkat. Kunci auth secara efektif mengikat MSO ke perangkat. Kombinasi MSO dan kredensial membuktikan kepada pihak tepercaya bahwa kredensial berasal dari Penerbit.

Setelah kredensial disediakan ke perangkat, perangkat harus mengirim objek ProofOfProvisioning kembali ke Penerbit. Hal ini memberi tahu Penerbit bahwa kredensial telah berhasil disediakan ke perangkat dan disimpan di penyimpanan aman perangkat.

Kredensial dapat memiliki status berikut:

Status Deskripsi
ProvisionPending

Kredensial telah dirilis ke Google Wallet, tetapi bukti penyediaan belum dikembalikan ke Penerbit. Kredensial dipindahkan ke status ini setiap kali ID versi kredensial berubah.

Tidak ada MSO yang akan dirilis untuk kredensial ini.

Aktif

Kredensial telah dirilis ke Google Wallet dan bukti penyediaan telah dikembalikan ke Penerbit.

MSO tersedia untuk kredensial.

Dicabut

Penerbit telah mencabut kredensial secara permanen.

Tidak ada MSO yang akan dirilis untuk kredensial ini.

Google Wallet tidak akan menampilkan kredensial dalam status ini.

Dihapus

Pengguna atau Google Wallet telah menghapus kredensial secara permanen dari perangkat.

Tidak ada MSO yang akan dirilis untuk kredensial ini.

Google Wallet tidak akan menampilkan kredensial dalam status ini.

Diagram status berikut menjelaskan kemungkinan alur status:

Jika Anda memodelkan resource ini sebagai tabel database, resource ini akan terlihat mirip dengan contoh berikut.

Contoh tabel database untuk resource kredensial.