פרטי כניסה דיגיטליים הם מסמכים שאפשר לאמת אותם באופן קריפטוגרפי, ואפשר להשתמש בהם כדי לאמת משתמש, לתת לו הרשאה או לספק מידע עליו בדרך אחרת. בדרך כלל מדובר בפריטים כמו רישיונות נהיגה לנייד, דרכונים דיגיטליים, כרטיסי עלייה למטוס וכו'. הם נמצאים במאגרים וירטואליים שנקראים ארנקים דיגיטליים, והם חלק מתקן W3C שמפרט איך לגשת אליהם ולאחזר אותם. התקן הזה מיושם בתרחישי שימוש באינטרנט באמצעות W3C Credential Management API, וב-Android באמצעות DigitalCredential API של Credential Manager.
הסבר על אישורים דיגיטליים
בעולם הפיזי, אדם יכול לשמור את הזהות שלו בארנק ולהציג אותה לצד שמבקש לראות אותה:
במקרה כזה, למשתמש יש בדרך כלל ארנק אחד, והוא מאחזר את פרטי הכניסה המבוקשים מהארנק כדי להציג אותם למי ששלח את הבקשה. ברוב המקרים, הארנקים דומים ויכולים לאחסן את אותם הדברים.
יש כמה הבדלים בין אישורים דיגיטליים לבין אישורים בעולם הפיזי:
- למשתמשים צפויים להיות כמה ארנקים – שנקראים גם בעלים – שיכולים להכיל סוגים שונים של פרטי כניסה. הארנקים קובעים אילו פרטי כניסה אפשר לאחסן בהם.
- האפליקציה או השירות שמבקשים את פרטי הכניסה כדי להעניק גישה או לאמת זהות נקראים מאמתים.
- הישות שיוצרת את פרטי הכניסה ומצהירה על טענות לגבי הבעלים (לדוגמה, אוניברסיטה, ממשלה או חברת טכנולוגיה) נקראת הנפקן.
- הצגת פרטי הכניסה מתבצעת בתוכנה, כלומר ממשק API מאחזר ומציג את פרטי הכניסה – ב-Android, זהו Credential Manager.
לכן, Credential Manager ממלא כמה תפקידים שבעבר בוצעו על ידי המשתמש:
- ב-Android, כדי שארנקים יופיעו בממשק המשתמש של Credential Manager, הם צריכים לרשום את המטא-נתונים של פרטי הכניסה שלהם ב-Credential Manager.
- Credential Manager מתאים פרטי כניסה בין ארנקים על סמך הבקשה ומציג רשימה לבחירה של המשתמש.
- כשהמשתמש בוחר פרטי כניסה ברשימה, Credential Manager מפעיל את הארנק, שמטפל בשאר הטרנזקציה (הצגת ממשקי משתמש וכו') ומחזיר את פרטי הכניסה לאפליקציה.
התהליך הזה מוצג כאן:
פרטי כניסה ניתנים לאימות
פרטי כניסה ניתנים לאימות והם קבוצת משנה של פרטי כניסה דיגיטליים שמוגדרים על ידי תקנים מחמירים (כמו מודל הנתונים של פרטי כניסה ניתנים לאימות של W3C). האישורים האלה מכילים טענות שמוגנות בצורה מוצפנת, ולכן קל לזהות אם נעשה בהם שינוי לא מורשה, ומוכח בדיוק מי הנפיק אותם.
לא כל פרטי הכניסה הדיגיטליים הם פרטי כניסה שניתנים לאימות, אבל כל פרטי הכניסה שניתנים לאימות הם פרטי כניסה דיגיטליים.
מה המשמעות של אימות תביעה
כשפרטי כניסה מגיעים דרך Android Credential Manager API וטענה בתוכם מסומנת כ'מאומתת', המשמעות היא שהגורם שהנפיק את פרטי הכניסה טוען שהוא ביצע בדיקה של הנתון הספציפי הזה. עם זאת, זה לא אומר שהנתונים הם אמת מוחלטת ואוניברסלית. הסימן 'מאומת' מציין שהתהליך בוצע, ולא מהווה ערובה אוטומטית לאמינות.
הפילוסופיה המרכזית של המערכת האקולוגית הזו היא שהאמון תמיד נפתר במאמת. כשהמאמת (האפליקציה שלכם) מקבל את הנתונים המאובטחים מבחינה קריפטוגרפית, ורואה שהגורם המנפיק סימן אותם כ'מאומתים', הוא צריך לקבוע אם הוא סומך על הגורם המנפיק שאימת את הטענה בהתאם לתקנים שלו.
חוויית משתמש
כפי שמוצג בתהליך של Android, המשתמש צריך לבצע אינטראקציה אחת בלבד עם ממשק המשתמש של Credential Manager כדי לבחור את פרטי הכניסה המתאימים. דוגמה למראה של הבורר:
תקנים
בקשות לפרטי כניסה דיגיטליים נוצרות באמצעות התקן OpenID4VP. דוגמאות לבקשות אפשר לראות באתר ההדגמה של אישורים דיגיטליים.
בדרך כלל, התשובות לגבי אישורים דיגיטליים מוחזרות בפורמט אישורים סטנדרטי. הם מתוחזקים על ידי גופי תקנים שונים, וכוללים את W3C Verifiable Credentials, sd-jwt ו-mdoc.
אפשר גם להשתמש בפרוטוקולים מותאמים אישית, אבל מומלץ להשתמש באחד מהפרוטוקולים הרגילים באפליקציה.
אני רוצה לנסות
אפשר לבדוק את תהליך האימות של פרטי הכניסה הדיגיטליים בפלטפורמות שונות באמצעות ארנק דיגיטלי ל-Android וכלי אימות מבוסס-אינטרנט:
- מתקינים את הדוגמה הציבורית של CMWallet בטלפון Android.
כדי לעשות את זה, צריך לשלוף מהמאגר ולהתקין ישירות מ-Android Studio או לעבור אל https://github.com/digitalcredentialsdev/CMWallet/actions ולבחור את הגרסה העדכנית ביותר כדי לגשת לקובץ
app-debug.apkהעדכני ביותר. - פותחים את CMWallet כדי לרשום את המטא-נתונים ב-Credential Manager. חשוב לוודא ש-Bluetooth מופעל כדי שהמכשירים יוכלו להתחבר זה לזה.
- עוברים אל https://digital-credentials.dev/ ובוחרים באפשרות
Request Credentials (OpenID4VP). - מאשרים את ההנחיות לאזהרה וסורקים את קוד ה-QR באמצעות הטלפון, ואז בוחרים באפשרות 'שימוש במפתח גישה' ומקישים על האישור כדי להציג את פרטי הכניסה הזמינים.
- בוחרים את פרטי הכניסה מ-CMWallet כדי לחזור לדפדפן. בדפדפן אמורות להופיע פרטי הכניסה שהוחזרו.
למידע נוסף
- מידע נוסף על שימוש ב-Credential Manager כדי לבקש פרטי כניסה דיגיטליים באפליקציה זמין בדף Credential Manager - Verifier API.
- כדי לקבל מידע נוסף על בניית ארנק דיגיטלי באמצעות Credential Manager, אפשר לקרוא את הדף Credential Manager - Holder API.