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

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

האתגרים בניהול מפתחות הגישה

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

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

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

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

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

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

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

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

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

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

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

אחזור ה-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 לספקים של מפתחות גישה.