مروری بر مدارک دیجیتال

اعتبارنامه‌های دیجیتال، اسنادی هستند که به صورت رمزنگاری‌شده قابل تأیید می‌باشند و می‌توانند برای احراز هویت، تأیید اعتبار یا ارائه اطلاعات در مورد کاربر استفاده شوند. این موارد معمولاً مواردی مانند گواهینامه رانندگی موبایل، گذرنامه‌های دیجیتال، کارت‌های پرواز و غیره هستند. آن‌ها در محفظه‌های مجازی به نام کیف پول دیجیتال قرار دارند و بخشی از استاندارد W3C هستند که نحوه دسترسی و بازیابی آن‌ها را مشخص می‌کند. این استاندارد برای موارد استفاده وب با API مدیریت اعتبارنامه W3C و در اندروید با API اعتبارنامه دیجیتال مدیر اعتبارنامه پیاده‌سازی شده است.

آشنایی با اعتبارنامه‌های دیجیتال

در دنیای فیزیکی، یک فرد ممکن است هویت خود را در کیف پولش نگه دارد و در صورت درخواست، آن را به طرف درخواست‌کننده ارائه دهد:

تصویری که جریان یک تعامل عادی با کیف پول را نشان می‌دهد
شکل ۱. فرآیند انجام یک درخواست اعتبارنامه در دنیای فیزیکی. درخواست‌کننده از کاربر یک اعتبارنامه خاص را درخواست می‌کند. سپس، کاربر آن را انتخاب کرده و از کیف پول فیزیکی خود بازیابی می‌کند. در نهایت، کاربر اعتبارنامه را به درخواست‌کننده ارائه می‌دهد.

در این حالت، کاربر معمولاً یک کیف پول واحد دارد و اعتبارنامه (های) درخواستی را از کیف پول بازیابی می‌کند تا به درخواست‌کننده ارائه دهد. کیف پول‌ها عمدتاً قابل تعویض هستند و عموماً می‌توانند موارد یکسانی را ذخیره کنند.

اعتبارنامه‌های دیجیتال چند تفاوت اصلی دارند:

  1. انتظار می‌رود کاربران چندین کیف پول - که به عنوان نگهدارنده نیز شناخته می‌شوند - داشته باشند که می‌توانند شامل اعتبارنامه‌های مختلف باشند. کیف پول‌ها تعیین می‌کنند که کدام اعتبارنامه‌ها می‌توانند در داخل آنها ذخیره شوند.
  2. درخواست‌کننده اکنون یک درخواست است و نه یک شخص حقیقی، و به عنوان تأییدکننده شناخته می‌شود.
  3. ارائه اعتبارنامه در نرم‌افزار اتفاق می‌افتد، به این معنی که یک سطح API اعتبارنامه‌ها را بازیابی و ارائه می‌کند - در اندروید، این همان Credential Manager است.

به این ترتیب، Credential Manager چندین نقش را که قبلاً توسط کاربر انجام می‌شد، بر عهده می‌گیرد:

  1. در اندروید، کیف پول‌ها باید ابرداده‌های اعتبارنامه‌های خود را در Credential Manager ثبت کنند تا در رابط کاربری Credential Manager فهرست شوند.
  2. مدیر اعتبارنامه، اعتبارنامه‌ها را بر اساس درخواست در کیف پول‌های مختلف تطبیق می‌دهد و فهرستی را برای انتخاب به کاربر ارائه می‌دهد.
  3. وقتی کاربر یک اعتبارنامه را در لیست انتخاب می‌کند، Credential Manager کیف پول را فراخوانی می‌کند که بقیه تراکنش (نمایش رابط‌های کاربری و غیره) را انجام می‌دهد و اعتبارنامه را به برنامه برمی‌گرداند.

این جریان در اینجا نشان داده شده است:

تصویری که جریان تعامل اعتبارنامه دیجیتال را نشان می‌دهد
شکل ۲. مدل تعاملی برای تأیید اعتبار دیجیتال. مدیر اعتبار از فراداده‌های اعتبار از پیش ثبت‌شده در کیف پول(های) کاربر برای مطابقت با درخواست تأییدکننده استفاده می‌کند و از کاربر می‌خواهد که یک اعتبار را انتخاب کند. سپس مدیر اعتبار، جریان فعالیت را به کیف پول مربوطه هدایت می‌کند که بقیه تراکنش را مدیریت می‌کند و اعتبار را به تأییدکننده بازمی‌گرداند. توجه: تأییدکننده باید پس از بازگشت، پاسخ اعتبار را مدیریت و تأیید کند.

تجربه کاربری

همانطور که در جریان اندروید نشان داده شده است، کاربر فقط باید یک بار با رابط کاربری مدیریت اعتبارنامه (Credential Manager UI) تعامل داشته باشد تا اعتبارنامه مناسب را انتخاب کند. در اینجا مثالی از نحوه نمایش انتخابگر (selector) آورده شده است:

تصویری که رابط کاربری اعتبارنامه‌های دیجیتال را در Credential Manager نشان می‌دهد
شکل ۳. رابط کاربری اعتبارنامه‌های دیجیتال.

استانداردها

درخواست‌های اعتبارنامه‌های دیجیتال با استفاده از استاندارد OpenID4VP ایجاد می‌شوند. می‌توانید نمونه درخواست‌ها را در سایت Digital Credentials Demo مشاهده کنید.

پاسخ‌های مربوط به اعتبارنامه‌های دیجیتال معمولاً در قالب یک اعتبارنامه استاندارد برگردانده می‌شوند. این قالب‌ها توسط نهادهای استاندارد مختلفی نگهداری می‌شوند و شامل W3C Verifiable Credentials ، sd-jwt و mdoc می‌شوند.

پروتکل‌های سفارشی نیز امکان‌پذیر هستند، اگرچه توصیه می‌کنیم از یکی از پروتکل‌های استاندارد در برنامه خود استفاده کنید.

امتحانش کن.

شما می‌توانید جریان اعتبارنامه‌های دیجیتال را در پلتفرم‌های مختلف با یک کیف پول اندروید و تأییدکننده مبتنی بر وب آزمایش کنید:

  1. نمونه عمومی CMWallet را روی گوشی اندروید خود نصب کنید. می‌توانید این کار را با استخراج از مخزن و نصب مستقیم از اندروید استودیو یا رفتن به آدرس https://github.com/digitalcredentialsdev/CMWallet/actions و انتخاب آخرین نسخه برای دسترسی به آخرین فایل app-debug.apk انجام دهید.
  2. برای ثبت فراداده‌ها در Credential Manager، CMWallet را باز کنید. مطمئن شوید که بلوتوث فعال است تا دستگاه‌های شما بتوانند به یکدیگر متصل شوند.
  3. به آدرس https://digital-credentials.dev/ بروید و Request Credentials (OpenID4VP) را انتخاب کنید.
  4. پیام‌های هشدار را بپذیرید و کد QR را با تلفن خود اسکن کنید، سپس «استفاده از رمز عبور» را انتخاب کنید و برای نمایش اعتبارنامه‌های موجود، روی تأیید ضربه بزنید.
  5. برای بازگشت به مرورگر، اعتبارنامه‌ی CMWallet را انتخاب کنید. مرورگر باید اعتبارنامه‌ی بازگردانده شده را نمایش دهد.

همچنین ببینید

  • برای کسب اطلاعات بیشتر در مورد استفاده از Credential Manager برای درخواست اعتبارنامه‌های دیجیتال در برنامه خود، صفحه Credential Manager - Verifier API را مطالعه کنید.
  • برای کسب اطلاعات بیشتر در مورد ساخت کیف پول دیجیتال با استفاده از Credential Manager، صفحه Credential Manager - Holder API را مطالعه کنید.