קביעת הספק של מפתחות הגישה באמצעות AAGUID

צדדים נסמכים (RP) יכולים לקבוע באיזה ספק מפתחות גישה נוצר מפתח הגישה על ידי בדיקת AAGUID של פרטי הכניסה של המפתח הציבורי המשויך.

אחד היתרונות של השימוש במפתחות גישה הוא שהם יכולים לאפשר למשתמשים ליצור כמה מפתחות גישה לחשבון אחד. הגמישות הזו, בשילוב עם העמידות של מפתח הגישה, מאפשרת למשתמש להיכנס לחשבון של הצד הנסמך גם אם הוא איבד את אחד ממפתחות הגישה שלו.

משתמשים שמנהלים כמה מפתחות גישה בגורם מוגבל היא לזהות את מפתח הגישה הנכון כשהם צריכים לערוך או למחוק מפתח גישה ספציפי ועוד. דוגמה טובה: כשמשתמש רוצה להסיר מפתח גישה שלא נמצא בשימוש. מומלץ ל-RPs לצרף מידע על מפתח הגישה, כמו תאריך היצירה ותאריך השימוש האחרון לרשימת מפתחות הגישה. כך המשתמשים יכולים למצוא מפתח גישה ספציפי.

הגורמים המוגבלים יכולים גם לאפשר למשתמשים לתת שם למפתח גישה ברגע שיוצרים אותם או מאוחר יותר, אבל הרבה משתמשים לא עושים זאת. באופן אידיאלי, השמות של מפתחות הגישה צריכים לשקף באופן אוטומטי את האותות שנשלחים מהלקוח או את המידע שמופיע בפרטי הכניסה של המפתח הציבורי.

הדפדפנים מספקים מחרוזת של סוכן משתמש שצדדים נסמכים יכולים להשתמש בה כדי לתת שמות למפתחות גישה, אבל פלטפורמות כמו Android,‏ iOS או דפדפנים למחשב עם יכולות תוסף מאפשרות לכלי ניהול סיסמאות של צד שלישי ליצור מפתח גישה, ומחרוזת סוכן המשתמש לא מייצגת בהכרח את ספק מפתח הגישה בפועל.

באמצעות המזהה הייחודי הגלובלי לאימות של מאמת (AAGUID), שנכלל בפרטי הכניסה של המפתח הציבורי שמוחזרים במהלך רישום של מפתח גישה, ספקי RP יכולים לקבוע את ספק מפתח הגישה ולהשתמש בו כדי לעזור למשתמשים למצוא בקלות את מפתח הגישה הנכון.

איך מוצאים את ספק מפתח הגישה באמצעות AAGUID

AAGUID הוא מספר ייחודי שמזהה את המודל של המאמת (ולא את המופע הספציפי של המאמת). ניתן למצוא AAGUID כחלק מנתוני המאמת של פרטי הכניסה של המפתח הציבורי.

פריסת אובייקט אימות שממחישה את נתוני מאמת החשבונות (שמכילים נתוני פרטי כניסה מאומתים) ואת הצהרת האימות.
ניתן למצוא AAGUID בנתונים של מאמת החשבונות.

ספקי RP יכולים להשתמש ב-AAGUID כדי לזהות את ספק מפתח הגישה. לדוגמה, אם משתמש יוצר מפתח גישה במכשיר Android באמצעות מנהל הסיסמאות של Google, ה-RP יקבל AAGUID של "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". ה-RP יכול להוסיף הערה למפתח הגישה ברשימת מפתחות הגישה כדי לציין שהוא נוצר במנהל הסיסמאות של Google.

בהגדרות של מפתחות הגישה בדף הגדרות האבטחה מוצג מידע מפורט על כל מפתח גישה.
דוגמה לממשק משתמש לניהול מפתחות גישה.

כדי למפות מזהה AAGUID לספק מפתח גישה, ספקי RP יכולים להשתמש במאגר של מזהי AAGUID שמקורו בקהילה. חיפוש ה-AAGUID ברשימה מאפשר למצוא את שם ספק מפתח הגישה ואת טקסט נתוני ה-SVG של הסמל שלו.

אחזור ה-AAGUID הוא תכונה שרוב ספריות WebAuthn מספקות. בדוגמה הבאה מוצג קוד רישום בצד השרת באמצעות SimpleWebAuthn:

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

סיכום

AAGUID היא מחרוזת ייחודית שמזהה את ספק מפתח הגישה שיצר את מפתח הגישה. ספקי RP יכולים להשתמש ב-AAGUID כדי להקל על המשתמשים לנהל את מפתחות הגישה שלהם. אפשר להשתמש במאגר של מפתחות AAGUID על ידי הקהילה כדי למפות מפתחות AAGUID לספקים של מפתחות גישה.