ارائه دهنده رمز عبور را با AAGUID تعیین کنید

طرفین اعتماد (RP) می‌توانند با بررسی AAGUID مربوط به اعتبارنامه کلید عمومی مرتبط، تعیین کنند که کلید عبور توسط کدام ارائه‌دهنده کلید عبور ایجاد شده است.

چالش‌های مدیریت رمز عبور

یکی از مزایای استفاده از کلیدهای عبور این است که به کاربران اجازه می‌دهند چندین کلید عبور برای یک حساب کاربری ایجاد کنند. با این انعطاف‌پذیری در کنار استحکام کلید عبور، حتی اگر کاربر با از دست دادن یکی از کلیدهای عبور خود از حساب کاربری خود خارج شود، همچنان می‌تواند با استفاده از کلیدهای عبور جایگزین به حساب کاربری طرف مقابل وارد شود.

چالش کاربرانی که چندین کلید عبور را در یک RP مدیریت می‌کنند، شناسایی کلید عبور صحیح هنگام نیاز به ویرایش یا حذف یک کلید عبور خاص در میان سایر کلیدها است. یک مثال خوب زمانی است که کاربر می‌خواهد یک کلید عبور استفاده نشده را حذف کند. به RPها توصیه می‌شود اطلاعاتی در مورد کلید عبور مانند تاریخ ایجاد و آخرین تاریخ استفاده را در لیست کلید عبور پیوست کنند . این به کاربران کمک می‌کند تا یک کلید عبور خاص را پیدا کنند.

RPها همچنین می‌توانند به کاربران اجازه دهند که به محض ایجاد یا بعداً، یک کلید عبور تعیین کنند، اما بسیاری از کاربران این کار را نمی‌کنند. در حالت ایده‌آل، کلیدهای عبور به طور خودکار و با توجه به سیگنال‌های ارسالی از کلاینت یا اطلاعات موجود در اعتبارنامه کلید عمومی نامگذاری می‌شوند.

مرورگرها یک رشته عامل کاربر ارائه می‌دهند که طرفین می‌توانند از آن برای نامگذاری کلیدهای عبور استفاده کنند، اما پلتفرم‌هایی مانند اندروید، iOS یا مرورگرهای دسکتاپ با قابلیت‌های افزونه، امکان ایجاد کلید عبور توسط مدیران رمز عبور شخص ثالث را فراهم می‌کنند و رشته عامل کاربر لزوماً نشان دهنده این نیست که چه کسی ارائه دهنده واقعی کلید عبور است.

با استفاده از شناسه منحصر به فرد جهانی گواهی تأییدکننده (AAGUID)، که در اعتبارنامه کلید عمومی بازگردانده شده در ثبت رمز عبور گنجانده شده است، RPها می‌توانند ارائه‌دهنده رمز عبور را تعیین کرده و به کاربران در یافتن رمز عبور مناسب کمک کنند.

ارائه دهنده کلید عبور را با AAGUID تعیین کنید

AAGUID یک شماره منحصر به فرد است که مدل احراز هویت کننده را مشخص می‌کند (نه نمونه خاص احراز هویت کننده). AAGUID را می‌توان به عنوان بخشی از داده‌های احراز هویت کننده یک اعتبارنامه کلید عمومی یافت.

طرح‌بندی شیء گواهی که داده‌های تأییدکننده‌ی موجود (حاوی داده‌های اعتبارنامه‌ی گواهی‌شده) و عبارت گواهی را نشان می‌دهد.
AAGUID را می‌توان در داده‌های تأییدکننده یافت.

RPها می‌توانند از AAGUID برای شناسایی ارائه‌دهنده‌ی کلید عبور استفاده کنند. برای مثال، اگر کاربری با استفاده از Google Password Manager یک کلید عبور در دستگاه اندروید ایجاد کند، RP یک AAGUID با شناسه‌ی "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4" دریافت خواهد کرد. RP می‌تواند کلید عبور را در لیست کلید عبور حاشیه‌نویسی کند تا نشان دهد که در Google Password Manager ایجاد شده است.

تنظیمات کلید عبور در صفحه تنظیمات امنیتی، اطلاعات دقیقی در مورد هر کلید عبور نشان می‌دهد.
یک نمونه رابط کاربری مدیریت رمز عبور.

برای نگاشت یک AAGUID به یک ارائه‌دهنده کلید عبور، RPها می‌توانند از یک مخزن AAGUIDs که توسط جامعه تهیه شده است استفاده کنند. با جستجوی 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ها به ارائه دهندگان کلید عبور استفاده شود.