צדדים נסמכים (RP) יכולים לקבוע באיזה ספק מפתחות גישה נוצר מפתח הגישה על ידי בדיקת ה-AAGUID של פרטי הכניסה של המפתח הציבורי המשויך.
אתגרים בניהול מפתחות גישה
אחד מהיתרונות של שימוש במפתחות גישה הוא שהם מאפשרים למשתמשים ליצור כמה מפתחות גישה לחשבון אחד. הגמישות הזו, בשילוב עם העמידות של מפתח הגישה, מאפשרת למשתמש להיכנס לחשבון של הצד הנסמך גם אם הוא איבד את אחד ממפתחות הגישה שלו.
המשתמשים שמנהלים כמה מפתחות גישה ב-RP צריכים לזהות את מפתח הגישה הנכון כשהם צריכים לערוך או למחוק מפתח ספציפי מבין כמה מפתחות. דוגמה טובה היא כשמשתמש רוצה להסיר מפתח גישה שלא נעשה בו שימוש. מומלץ ל-RPs לצרף מידע על מפתח הגישה, כמו תאריך היצירה ותאריך השימוש האחרון לרשימת מפתחות הגישה. כך המשתמשים יכולים למצוא מפתח גישה ספציפי.
ספקי ה-RP יכולים גם לאפשר למשתמשים לתת שם למפתח הגישה ברגע שהוא נוצר או מאוחר יותר, אבל משתמשים רבים לא עושים זאת. באופן אידיאלי, השמות של מפתחות הגישה צריכים לשקף באופן אוטומטי את האותות שנשלחים מהלקוח או את המידע שמופיע בפרטי הכניסה של המפתח הציבורי.
הדפדפנים מספקים מחרוזת של סוכן משתמש שצדדים נסמכים יכולים להשתמש בה כדי לתת שמות למפתחות גישה, אבל פלטפורמות כמו Android, iOS או דפדפנים למחשב עם יכולות תוסף מאפשרות לכלי ניהול סיסמאות של צד שלישי ליצור מפתח גישה, ומחרוזת סוכן המשתמש לא מייצגת בהכרח את ספק מפתח הגישה בפועל.
באמצעות המזהה הייחודי הגלובלי לאימות של מאמת (AAGUID), שנכלל בפרטי הכניסה של המפתח הציבורי שמוחזרים במהלך רישום מפתח גישה, ספקי RP יכולים לקבוע את ספק מפתח הגישה ולהשתמש בו כדי לעזור למשתמשים למצוא בקלות את מפתח הגישה הנכון.
איך בודקים מי הספק של מפתח הגישה באמצעות 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 לספקי מפתחות גישה.