Digital Credentials Provisioning API توسط سه مدل منبع اصلی سازماندهی شده است:
| منبع | توضیحات |
|---|---|
| دستگاه | یک نمونه منحصر به فرد از یک دستگاه فیزیکی و کلید هویت. |
| اثبات | فرآیند اثبات هویت کاربر قبل از صدور اعتبار. |
| اعتبارنامه | خود دی سی. |
به عنوان یک صادرکننده، شما مسئول ایجاد و مدیریت این منابع در طول چرخه حیات یک DC هستید.
مفروضات
فرض اولیه این API استفاده از Android Identity Credential API توسط دستگاه برای ذخیره سازی DCهای تعریف شده توسط ISO/IEC 18013-5 است.
مدل های منابع
دستگاه
در مدل Digital Credentials Provisioning API، یک دستگاه به سادگی یک دستگاه مجهز به Android را نشان نمی دهد که در آن کاربر DC خود را با استفاده از برنامه Google Wallet مدیریت می کند. در عوض، به صورت ترکیبی از موارد زیر نشان داده می شود:
- دستگاه فیزیکی و مجهز به اندروید.
- یک جفت کلید عمومی/خصوصی (که به آن "کلید هویت" گفته می شود).
- کلید عمومی توسط صادرکننده برای تأیید هویت دستگاه استفاده می شود.
- کلید خصوصی در حافظه امن دستگاه ذخیره می شود.
هنگام برقراری تماسهای API، ترکیب دستگاه و اعتبار با شناسه مرجع دستگاه (ویژگی deviceReferenceId ) شناسایی میشود.
اولین باری که یک دستگاه با یک صادرکننده ارتباط برقرار می کند، یک nonce منحصر به فرد به آن داده می شود (برای جلوگیری از حملات مجدد و اطمینان از تازگی). nonce توسط کلید هویت دستگاه امضا شده و در گواهی حاوی کلید هویت جاسازی شده است. در ادامه، گواهی میتواند برای تأیید دستگاه با صادرکننده استفاده شود.
برای اطلاعات بیشتر در مورد گواهی، به مستندات Android IdentityCredential مراجعه کنید.
اگر این منبع را به عنوان جدول پایگاه داده مدل کنید، شبیه شکل زیر خواهد بود. توجه داشته باشید که ویژگی identityKey مقدار کلید عمومی خواهد بود.

اثبات
یک اثبات ترکیبی از موارد زیر را نشان می دهد:
- شواهد ارائه شده توسط کاربر برای اثبات هویت آنها
- تصمیم صادرکننده با توجه به شواهد ارائه شده
اثبات به نوع اعتباری است که کاربر درخواست می کند. هنگام تهیه یک DC، کاربر عکسهایی از سند هویت فیزیکی خود و یک ویدیو از نمایه خود ارائه میکند. گوگل از این ویدیو برای محاسبه احتمال واقعی بودن ویدیو استفاده می کند. نتیجه ارائه شده توسط Google به صادرکنندگان به عنوان "امتیاز زنده بودن" نامیده می شود. با پشتیبانی از انواع اعتبارنامه های جدید، روش های تصحیح اضافی اضافه خواهند شد.
وضعیت های احتمالی برای اثبات در جدول زیر فهرست شده است.
| وضعیت | توضیحات | حالت نهایی |
|---|---|---|
| در انتظار | صادرکننده هنوز تصمیمی نگرفته است. | خیر |
| پذیرفته شد | صادرکننده تصمیم گرفته است که شواهد رضایت بخش است. | خیر |
| رد شد | صادرکننده تصمیم گرفته است که شواهد رضایت بخش نبوده است. | بله* |
| به چالش کشیده شد | صادرکننده برای تصمیم گیری به اطلاعات بیشتری نیاز دارد. | خیر |
| لغو شد | کاربر تصحیح را لغو کرده است. | بله |
| لغو شد | صادرکننده تصحیح را باطل کرده است. | بله* |
| منقضی شده است | کاربر چالش را به موقع کامل نکرد. | بله |
وضعیتهایی که با ستاره ( * ) علامتگذاری شدهاند ممکن است در مواردی که بازبین انسانی اشتباه میکند و وضعیت را بهصورت دستی بهروزرسانی میکند، غیر نهایی باشد.
نمودار وضعیت زیر جریان های وضعیت ممکن را شرح می دهد:

در برخی موارد، صادرکنندگان ممکن است نتوانند با توجه به شواهد اولیه تصمیم بگیرند. برای کمک به تصمیم گیری، کاربران می توانند برای ارائه اطلاعات یا شواهد اضافی به صادرکننده به چالش کشیده شوند. نمونههایی از چالشها عبارتند از پاسخ به نامههای پستی، بازدید از وبسایت صادرکننده، یا ارائه شواهد اضافی.
اگر این منبع را به عنوان جدول پایگاه داده مدل کنید، شبیه شکل زیر خواهد بود.

اعتبارنامه
یک اعتبارنامه نشان دهنده نسخه مجازی اعتبار فیزیکی برای یک دستگاه خاص است. هر بار که یک اعتبار مجازی به یک دستگاه فیزیکی ارائه می شود، یک شناسه اعتبار به آن اختصاص می یابد. اگر یک اعتبار فیزیکی یکسان برای دستگاه های مختلف ارائه شود، هر بار یک شناسه اعتبار متفاوت خواهد داشت. به همین ترتیب، اگر اعتباری برای دستگاهی ارائه شود، حذف شود و دوباره در همان دستگاه ارائه شود، شناسه اعتبار متفاوتی خواهد داشت.
هنگامی که جزئیات اعتبار یک کاربر تغییر می کند (مانند تغییر آدرس برای یک سند هویت)، این جزئیات باید برای هر گونه اعتبار مجازی مرتبط به روز شود. یک اعتبار منفرد می تواند نسخه های مختلفی مطابق با چنین تغییراتی داشته باشد. نسخه فعلی با استفاده از شناسه نسخه اعتبار ردیابی می شود.
برای ارائه اعتبار به طرف متکی، دستگاه ابتدا باید اشیاء امنیتی سیار (MSO) را از صادرکننده بازیابی کند. MSO حاوی خلاصههایی از اعتبارنامه است که توسط صادرکننده امضا شده است. یک MSO از یک کلید auth ایجاد می شود، یک کلید عمومی که توسط کلید هویت دستگاه تولید و امضا شده است. کلید auth به طور موثر MSO را به دستگاه متصل می کند. ترکیب MSO و اعتبار به طرفهای متکی ثابت میکند که اعتبارنامه از صادرکننده سرچشمه گرفته است.
هنگامی که یک اعتبار بر روی یک دستگاه ارائه می شود، دستگاه باید یک شی ProofOfProvisioning را به صادر کننده بازگرداند. این به صادرکننده اطلاع میدهد که اعتبارنامه با موفقیت در اختیار دستگاه قرار گرفته و در حافظه امن دستگاه ذخیره شده است.
یک اعتبارنامه می تواند وضعیت های زیر را داشته باشد:
| وضعیت | توضیحات |
| ارائه در انتظار | اعتبارنامه در Google Wallet منتشر شده است، اما مدرک ارائه به صادرکننده بازگردانده نشده است. هر زمان که شناسه نسخه اعتبارنامه تغییر کند، اعتبارنامه ها به این وضعیت منتقل می شوند. هیچ MSO برای این اعتبار منتشر نخواهد شد. |
| فعال | اعتبارنامه در Google Wallet منتشر شد و مدرک ارائه به صادرکننده بازگردانده شد. MSOها در اختیار اعتبار هستند. |
| لغو شد | صادرکننده اعتبار را برای همیشه لغو کرده است. هیچ MSO برای این اعتبار منتشر نخواهد شد. Google Wallet در این حالت اعتبارنامه ارائه نمی کند. |
| حذف شد | کاربر یا Google Wallet اعتبارنامه را برای همیشه از دستگاه حذف کرده است. هیچ MSO برای این اعتبار منتشر نخواهد شد. Google Wallet در این حالت اعتبارنامه ارائه نمی کند. |
نمودار وضعیت زیر جریان های وضعیت ممکن را شرح می دهد:

اگر این منبع را به عنوان جدول پایگاه داده مدل کنید، شبیه شکل زیر خواهد بود.
