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

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

اعتبار دیجیتال را درک کنید

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

تصویری که جریان یک تعامل عادی کیف پول را نشان می دهد
شکل 1. فرآیند انجام یک درخواست اعتبار جهانی فیزیکی. درخواست کننده از کاربر یک اعتبار خاص می خواهد. سپس کاربر آن را از کیف پول فیزیکی خود انتخاب و بازیابی می کند. در نهایت کاربر اعتبار را در اختیار درخواست کننده قرار می دهد.

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

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

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

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

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

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

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

تجربه کاربری

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

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

استانداردها

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

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

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

آن را امتحان کنید

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

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

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

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