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

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

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

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

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

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

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

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

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

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

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

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

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

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

רוב ספריות WebAuthn מספקות תכונה לאחזור ה-AAGUID. בדוגמה הבאה מוצג קוד רישום בצד השרת באמצעות 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 הוא מחרוזת ייחודית שמזהה את ספק מפתח הגישה שיצר את מפתח הגישה. ספקי שירות יכולים להשתמש ב-AAGUID כדי להקל על המשתמשים לנהל את מפתחות הגישה שלהם. אפשר להשתמש במאגר מידע שמבוסס על קהילה של AAGUID כדי למפות AAGUID לספקי מפתחות גישה.