کلیدهای عبور جایگزین گذرواژهها در اپل، گوگل و مایکروسافت میشوند — این چیزی است که واقعاً برای شما تغییر میکند

در ماه مه ۲۰۲۲، اپل، گوگل و مایکروسافت به طور مشترک از پشتیبانی گستردهتر برای یک استاندارد احراز هویت بدون گذرواژه مبتنی بر WebAuthn و FIDO2 خبر دادند. تا سال ۲۰۲۴، اپل حسابهای iCloud را به طور پیشفرض به کلیدهای عبور منتقل کرد، گوگل بیش از ۸۰۰ میلیون حساب گوگل را به این قابلیت مجهز کرد و مایکروسافت شروع به حذف کامل گذرواژهها از حسابهای جدید مصرفکننده کرد. با وجود این مقیاس، بسیاری از کاربران هنوز فکر میکنند کلیدهای عبور فقط شکل دیگری از احراز هویت دو عاملی هستند — اما اینطور نیست. کلیدهای عبور یک مدل احراز هویت اساساً متفاوت هستند و درک مکانیزم آن توضیح میدهد که چرا آنها دستههای کاملی از حملات را که گذرواژهها نمیتوانند حذف میکنند.
تز اصلی: کلیدهای عبور مدل اشتراک راز گذرواژهها را با رمزنگاری نامتقارن جایگزین میکنند. وقتی یک کلید عبور ایجاد میکنید، دستگاه شما یک جفت کلید تولید میکند — یک کلید خصوصی که در یک محفظه امن سختافزاری روی دستگاه شما ذخیره میشود و یک کلید عمومی که در سرویس ثبت میشود. در زمان ورود، سرویس یک چالش رمزنگاری ارسال میکند؛ دستگاه شما آن را با کلید خصوصی امضا میکند و امضا را برمیگرداند. سرور امضا را با کلید عمومی شما تأیید میکند. در هیچ مرحلهای یک راز منتقل نمیشود و کلید خصوصی هرگز سختافزار شما را ترک نمیکند. این را با احراز هویت گذرواژهای مقایسه کنید که در آن راز شما — یا مشتقی از آن — باید در هر بار ورود به سرور منتقل شود.
WebAuthn در زیر کاپوت
WebAuthn (رابط برنامهنویسی احراز هویت وب) استاندارد W3C است که مرورگرها برای نمایش قابلیت کلید عبور به وبسایتها پیادهسازی میکنند. این API در مارس ۲۰۱۹ (سطح ۱) به عنوان توصیه W3C نهایی شد و در آوریل ۲۰۲۱ (سطح ۲) بهروزرسانی شد. وقتی یک سایت navigator.credentials.create() را فراخوانی میکند، مرورگر به یک احرازکننده واگذار میکند — یا یک احرازکننده پلتفرم (محفظه امن دستگاه شما، مانند Apple Secure Enclave، Android StrongBox یا تراشه TPM Windows Hello) یا یک احرازکننده roaming (یک کلید سختافزاری مانند YubiKey).
احرازکننده یک جفت کلید ES256 (ECDSA با منحنی P-256) یا RS256 برای آن طرف وابسته خاص — که با دامنه ثبتشده آن (RP ID) شناسایی میشود — تولید میکند. کلید خصوصی در داخل عنصر امن مهر و موم میشود، جایی که تنها پس از تأیید کاربر محلی (بیومتریک یا PIN) قابل استفاده است. کلید عمومی و یک شناسه اعتبارنامه به سرور ارسال شده و در پایگاه داده آن ذخیره میشوند. هیچ هش گذرواژه، هیچ دور PBKDF2، هیچ فاکتور هزینه bcrypt — فقط یک کلید عمومی که بدون کلید خصوصی متناظر از نظر ریاضی برای مهاجم بیفایده است.
مرحله تصدیق
در طول ثبتنام، احرازکنندهها میتوانند به صورت اختیاری یک بیانیه تصدیق — یک اعلامیه امضا شده رمزنگاری از سازنده، مدل و سطح امنیت دستگاه، که توسط زنجیره گواهی ریشه در سرویس متاداده اتحادیه FIDO امضا شده است — تولید کنند. این به سرویسهای با امنیت بالا (بانکها، دولتها) اجازه میدهد تا تأیید کنند که اعتبارنامهها را از یک عنصر امن سختافزاری واقعی دریافت میکنند، نه یک شبیهسازی نرمافزاری. سرویسهای مصرفکننده معمولاً از تصدیق چشمپوشی میکنند و هر احرازکننده سازگاری را میپذیرند.
مقاومت در برابر فیشینگ ساختاری است، نه رفتاری
فیشینگ گذرواژه کار میکند زیرا کاربران نمیتوانند با اطمینان accounts.google.com را از accounts.g00gle.com تحت فشار زمانی تشخیص دهند. حتی کلیدهای ۲FA سختافزاری که TOTP (رمزهای یکبار مصرف مبتنی بر زمان) را پیادهسازی میکنند نیز قابل فیشینگ هستند — مهاجم OTP را در زمان واقعی به سایت واقعی رله میکند. کلیدهای عبور این سطح حمله را در سطح پروتکل میبندند.
کلید خصوصی به RP ID — دامنه ثبتشده — مقید است. وقتی مراسم تأیید WebAuthn آغاز میشود، مرورگر RP ID را در دادههای امضا شده شامل میکند. اگر شما در یک سایت فیشینگ در دامنه متفاوت باشید، RP ID در تأیید با بایند اعتبارنامه مطابقت نخواهد داشت و احراز هویت شکست میخورد. مهاجم نمیتواند تأیید را به سایت واقعی هدایت کند زیرا امضا غیرقابل انتقال است — با مبدأ سایت فیشینگ محاسبه شده است. این یک مشکل آموزش کاربر با سیستم کلید عبور نیست؛ با ساختار غیرممکن است.
گزارش ۲۰۲۳ FIDO Alliance Passkey Central مستند کرد که اعتبارنامههای سازگار با CTAP2.1 (پروتکل احرازکننده به مشتری نسخه ۲.۱) در برابر فیشینگ زمان واقعی، حملات دشمن در وسط (AiTM) و انباشت اعتبارنامه مقاوم هستند. حملات پروکسی AiTM — که با موفقیت SMS OTP و TOTP را دور میزنند — بردار حمله معادلی در برابر امضاهای تأیید WebAuthn ندارند.
کلیدهای عبور همگامسازی: راحتی در مقابل امنیت مقید به دستگاه
مدل اصلی FIDO2 مقید به دستگاه بود: یک احرازکننده سختافزاری یک نسخه از کلید خصوصی را نگه میداشت. از دست دادن دستگاه به معنای از دست دادن اعتبارنامه بود. این امن بود اما مشکلات قابلیت استفاده ایجاد کرد — برای پذیرش گسترده غیرممکن بود. افزونه ۲۰۲۲ FIDO Alliance اعتبارنامههای چنددستگاهی را معرفی کرد که به طور عامیانه کلیدهای عبور همگامسازی نامیده میشوند.
با کلیدهای عبور همگامسازی، مواد کلید خصوصی رمزگذاری شده و از طریق ابر فروشنده پلتفرم در دستگاههای شما همگامسازی میشود. اپل از طریق iCloud Keychain با استفاده از رمزگذاری سرتاسری با کلیدهای برگرفته از رمز عبور دستگاه شما همگامسازی میکند. گوگل از طریق Google Password Manager، همچنین رمزگذاری سرتاسری، همگامسازی میکند. مایکروسافت از طریق Windows Hello و از سال ۲۰۲۴، همگامسازی بیندستگاهی را از طریق برنامه Microsoft Authenticator پشتیبانی میکند.
این یک مبادله ایجاد میکند که تیمهای امنیتی به طور فعال درباره آن بحث میکنند. کلیدهای عبور همگامسازی به طور چشمگیری ایمنتر از گذرواژهها هستند — آنها هنوز نمیتوانند فیشینگ شوند و هیچ نفوذ سرور آنها را افشا نمیکند — اما مدل تهدید از به خطر افتادن دستگاه به به خطر افتادن حساب ابری به علاوه PIN/بیومتریک دستگاه تغییر میکند. برای بیشتر کاربران، این یک مبادله قابل قبول است؛ حساب Google یا Apple آنها در حال حاضر دادههای حساستری را محافظت میکند. برای اهداف با ارزش بالا (روزنامهنگاران، مدیران، فعالان)، کلیدهای عبور مقید به دستگاه روی یک کلید سختافزاری FIDO2 اختصاصی (سری YubiKey 5، با قیمت شروع ۵۰ دلار آمریکا، یا کلید Google Titan با قیمت ۳۰ دلار) قویترین گزینه باقی میمانند.
احراز هویت بیندستگاهی
وقتی سعی میکنید در یک مرورگر دسکتاپ به سایتی وارد شوید اما کلید عبور شما روی تلفن شما ذخیره شده است، WebAuthn یک جریان احراز هویت بیندستگاهی با استفاده از حمل و نقل ترکیبی CTAP2 پشتیبانی میکند. مرورگر دسکتاپ یک کد QR نمایش میدهد؛ تلفن شما آن را اسکن میکند و یک کانال BLE (بلوتوث کم انرژی) رمزگذاری شده برقرار میکند. تلفن تأیید را به صورت محلی (پس از تأیید بیومتریک) امضا میکند و امضا را از طریق کانال رمزگذاری شده منتقل میکند. کلید خصوصی شما هرگز از پیوند BLE عبور نمیکند — فقط پاسخ چالش امضا شده عبور میکند. این نیاز به فعال بودن بلوتوث در هر دو دستگاه دارد که یک نقطه اصطکاک جزئی است.
چه اتفاقی برای نفوذهای سرور میافتد
نشت ۲۰۲۴ RockYou2024 بیش از ۹.۹ میلیارد گذرواژه متن ساده از نشتهای قبلی را جمعآوری کرد. پایگاههای داده گذرواژه دقیقاً به این دلیل برای مهاجمان ارزشمند هستند که گذرواژهها دوباره استفاده میشوند — ۶۵٪ از کاربران طبق گزارش گذرواژه ۲۰۲۳ گوگل، از یک گذرواژه در چندین سایت استفاده میکنند. با کلیدهای عبور، هیچ گذرواژهای در پایگاه داده برای سرقت وجود ندارد. سرور فقط کلید عمومی شما را ذخیره میکند. حتی اگر مهاجم کل پایگاه داده کلید عبور را خارج کند، آنها مجموعهای از کلیدهای عمومی دارند — از نظر ریاضی معادل فهرستی از قفلهای بدون کلید. آنها نمیتوانند به عنوان شما احراز هویت کنند، نمیتوانند کلیدها را به صورت آفلاین بشکنند و نمیتوانند از آنها برای حمله به سرویسهای دیگر استفاده کنند.
سرویسهایی که هنوز روی گذرواژهها گیر کردهاند
از اواسط ۲۰۲۵، پشتیبانی از کلید عبور گسترده اما نابرابر است. گیتهاب در جولای ۲۰۲۳ پشتیبانی از کلید عبور را اضافه کرد. شاپیفای در اوایل ۲۰۲۴ آن را فعال کرد. مخالفان قابل توجه شامل بسیاری از پورتالهای بانکی (به ویژه اتحادیههای اعتباری و بانکهای منطقهای)، سرویسهای دولتی، VPNهای شرکتی و هر سرویسی که پشته احراز هویت خود را از سال ۲۰۲۰ بهروزرسانی نکرده است. برنامههای قدیمی Java EE و PHP اغلب از کتابخانههای احراز هویتی استفاده میکنند که اجزای سمت سرور FIDO2 (مانند java-webauthn-server توسط Yubico یا php-webauthn توسط lbuchs) را یکپارچه نکردهاند.
برای سرویسهایی که هنوز به گذرواژه نیاز دارند، رویکرد عملی یک مدیر گذرواژه با اعتبارنامههای تصادفی قوی است — Bitwarden (منبع باز، رایگان)، ۱Password (۲.۹۹ دلار در ماه) یا زنجیره کلید پلتفرم. این معادل امنیت کلید عبور نیست — مخزن مدیر گذرواژه شما با یک گذرواژه اصلی رمزگذاری شده است که میتواند فیشینگ شود — اما استفاده مجدد از اعتبارنامه را که رایجترین بردار حمله است، حذف میکند.
اقدامات عملی
- پشتیبانی از کلید عبور را هم اکنون بررسی کنید: به passkeys.directory (یک ثبتکننده تحت نگهداری جامعه) مراجعه کنید تا ببینید کدام سرویسهایی که استفاده میکنید از کلیدهای عبور پشتیبانی میکنند. آنها را روی Google، Apple ID، مایکروسافت، گیتهاب و هر سرویس دیگری که فهرست شده است فعال کنید.
- مدل همگامسازی خود را درک کنید: اگر از دستگاههای اپل استفاده میکنید، کلیدهای عبور شما به طور پیشفرض از طریق iCloud Keychain همگامسازی میشوند. اگر از اندروید استفاده میکنید، آنها از طریق Google Password Manager همگامسازی میشوند. همچنین میتوانید کلیدهای عبور را در ۱Password یا Bitwarden ذخیره کنید اگر ذخیرهسازی خنثی از فروشنده را ترجیح میدهید — هر دو در سال ۲۰۲۳ پشتیبانی از کلید عبور را اضافه کردند.
- حسابهای با امنیت بالا کلیدهای سختافزاری دریافت میکنند: برای ایمیل اصلی، ثبتکننده دامنه و حسابهای مالی خود، راهاندازی کلید عبور را با یک کلید سختافزاری FIDO2 پشتیبان جفت کنید. دو کلید ثبت کنید تا یک یدکی داشته باشید. YubiKey 5C NFC (۵۵ دلار) USB-C و NFC را پوشش میدهد و تقریباً هر دستگاهی را مدیریت میکند.
- هنوز TOTP قدیمی خود را حذف نکنید: وقتی یک کلید عبور اضافه میکنید، احرازکننده TOTP موجود یا پشتیبان SMS را برای بازیابی سرویس نگه دارید. پس از تأیید اینکه کلید عبور در همه دستگاههای شما کار میکند، گذرواژه را (در جایی که سرویس اجازه میدهد) حذف کنید.
- سرویسهای قدیمی گذرواژههای منحصر به فرد دریافت میکنند: برای هر سرویسی که از کلید عبور پشتیبانی نمیکند، یک گذرواژه تصادفی منحصر به فرد در مدیر گذرواژه خود تولید کنید. برای بهبود وضعیت امنیتی خود امروز منتظر نمانید تا سرویس به روز شود.
کلیدهای عبور یک فناوری آینده نیستند — آنها اکنون در مقیاس گسترده مستقر شدهاند. شکاف بین سرویسهایی که از آنها پشتیبانی میکنند و کاربرانی که آنها را پذیرفتهاند یک مشکل آگاهی کاربر است، نه فنی. هر کلید عبوری که ایجاد میکنید یک اعتبارنامه را حذف میکند که میتواند فیشینگ، نفوذ یا حدس زده شود. با حسابهایی که بیشترین اهمیت را دارند شروع کنید.