هفته گذشته، یک پژوهشگر امنیت آنچه را که «سطح حمله جدید» در پاسکیها (Passkeys) نامید، تشریح کرد؛ الگوی جدید احراز هویت که جایگزینی بسیار امنتر برای روشهای قدیمی مبتنی بر رمز عبور محسوب میشود. در واقع، حملات نمایش داده شده در این گزارش نه جدید هستند و نه منحصراً به فناوری پاسکی مربوط میشوند. این تمایز اهمیت بالایی دارد زیرا این پژوهش باعث سردرگمی بین کاربران نهایی و متخصصان امنیت سایبری در ارزیابی ایمنی واقعی این مکانیزم جدید شده است.
به گزارش واضح به نقل از آرس تکنیکا، این حمله Pass-ta-key نامیده میشود — ترکیبی از کلمه Passkey با عبارت «Pass the key» و اشارهای طنزآمیز به ظرف پاستا. آری اولشتاین (Arie Olshtein)، پژوهشگر شرکت امنیتی پالو آلتو نتورکس (Palo Alto Networks)، در پستی توضیح داد که چگونه حمله Pass-ta-key میتواند تمام پاسکیهای ذخیرهشده در برنامه مدیریت رمز عبور گوگل (Google Password Manager یا GPM) برای ویندوز را در صورت آلوده بودن سیستم به بدافزار استخراج کند.
این موضوع برای بسیاری از افراد شگفتانگیز بود زیرا آنها معتقد بودند پاسکیها به طور انحصاری در چیپ TPM (ماژول بستر معتمد) ذخیره میشوند؛ محیطی کاملاً ایزوله در یک تراشه سیلیکونی سختافزاری که برای نگهداری کلیدهای رمزنگاری و سایر اطلاعات بسیار حساس در سیستمهای ویندوزی اختصاص یافته است. آنها میخواستند بدانند اگر پاسکیها در ماژول TPM ذخیره میشوند، پس حمله Pass-ta-key چگونه توانسته تمام مجموعه پاسکیهای ذخیرهشده توسط این نرمافزار را استخراج کند؟
ذخیرهسازی محلی پاسکیها؛ روشی امن با یک استثنا به نام ویندوز
پاسخ این است که برخلاف باور عموم، مشخصات استاندارد FIDO2 — که توسط گروه صنعتی FIDO Alliance مدیریت میشود — الزامی نمیکند که پاسکیها حتماً در TPM یا هر نوع سختافزار اختصاصی دیگری نگهداری شوند (این سختافزارها بسته به سیستمعامل نامهای متفاوتی مانند Secure Enclave، محیط اجرای امن یا StrongBox دارند). در واقع، اکثر پلتفرمها و نرمافزارهای جانبی مدیریت پاسکی، آنها را در چنین سختافزار اختصاصی ذخیره نمیکنند. تقریباً تنها استثنا مایکروسافت است که به کاربران امکان میدهد پاسکیها را در TPM ویندوز ذخیره کنند؛ آن هم گزینهای که این شرکت عمدتاً به سازمانها پیشنهاد میکند، نه کاربران معمولی.
تمامی پلتفرمهای غیر ویندوزی، پاسکیها را به صورت محلی (Locally) روی خود دستگاه ذخیره میکنند. تغییر جهت به سمت ذخیرهسازی محلی چند سال پیش رخ داد؛ زمانی که توسعهدهندگان سیستمعاملها و برنامههای جانبی متوجه شدند که اگر پاسکیها نتوانند به راحتی با تمام دستگاههای کاربر همگامسازی (Sync) شوند، شانس زیادی برای استفاده گسترده نخواهند داشت. الزام به ذخیرهسازی در ماژول TPM همگامسازی را غیرممکن میساخت، چرا که تنها راه بارگذاری آنها در TPM یک دستگاه جدید، بازآفرینی مجدد و تکبهتک هر پاسکی بود.
در نهایت، معماران استانداردهای FIDO تصمیم گرفتند که ذخیره پاسکیها روی خود دستگاهها بهطور کلی امن است. منطق آنها این بود که سطوح دسترسی اپلیکیشنها بسیار جزئی و تفکیکشده است و بدافزارها در دستگاه امکان دسترسی به کلیدهای خصوصی (Private Keys) که رکن اصلی امنیت پاسکی هستند را ندارند. برای مثال، بدافزار نصبشده روی دستگاههای مجهز به macOS، iOS و اندروید نمیتواند این ایزولهسازی را شکست دهد، مگر اینکه خود سیستمعامل از طریق یک آسیبپذیری صفر-روز (Zero-Day) پیچیده آسیب ببیند. تاکنون این فرضیات در دنیای واقعی درست از آب درآمدهاند.
تنها استثنا در این میان سیستمعامل ویندوز است. برخلاف سایر پلتفرمها، برنامههای ویندوز عموماً با تمام مجوزهای سطح کاربر اجرا میشوند، در حالی که سایر پلتفرمها به صورت پیشفرض محدودسازی دسترسی هر برنامه را تشویق میکنند. اگرچه ویندوز برخی مکانیزمهای سندباکس (Sandboxing) را برای ایزوله کردن برنامهها ارائه میدهد، اما مانع از دسترسی برنامههای خارج از سندباکس (مانند بدافزارها) به دادههای یک برنامه سندباکسشده نمیشود. به عبارت دیگر، سندباکس ویندوز فقط در یک جهت محافظت میکند؛ در حالی که فناوریهای سندباکس در سایر پلتفرمها بسیار محافظهکارانهتر و ایمنتر هستند.
این بدان معناست که بدافزارهای ویندوزی برای دسترسی به دادههای مورد استفاده توسط سایر برنامهها با چالشهای کمتری مواجه هستند. طراحان پاسکی کاملاً از این تفاوت مطلع بودند، تفاوتی که عمدتاً به دلیل حفظ سازگاری با نسخههای قبلی (Backward-Compatibility) در ویندوز وجود دارد. بدون وجود اطمینان از اینکه پاسکیهای ذخیرهشده در ویندوز در صورت آلودگی به بدافزار به سرقت نخواهند رفت، بسیاری از توسعهدهندگان برنامههای جانبی طرح جدیدی را انتخاب کردند: ذخیره پاسکیها در فایلهای رمزنگاریشده سرتاسری (End-to-End Encrypted) در فضای ابری (Cloud). اکنون ذخیره پاسکی در سرور، معمار اصلی نه تنها در Google Password Manager ویندوز، بلکه در 1Password، Dashlane و سایر برنامههای جانبی مدیریت رمز عبور برای سیستمعامل مایکروسافت است.
به زبان ساده، نحوه کار به این صورت است: وقتی کاربر GPM در ویندوز میخواهد با استفاده از پاسکی وارد سایتی شود، دستگاه یک کلید کاربر و/یا کلید دستگاه را از TPM بازخوانی کرده و آن را به احراز هویتکننده بکاند گوگل ارائه میدهد. ارائه این کلید، همراه با ورود قبلی دستگاه به حساب گوگل کاربر، باعث میشود سرور گوگل یک تأییدیه احراز هویت به سایتی که کاربر قصد ورود به آن را دارد ارسال کند. این تأییدیه با کلید خصوصی امضا میشود که به صورت رمزنگاریشده روی سرور گوگل ذخیره شده است. به این ترتیب، کاربر وارد سایت میشود. سایر برنامههای جانبی ویندوز نیز عملکرد مشابهی دارند.
در مقابل، همین برنامهها در سایر پلتفرمها پاسکیها را به صورت محلی روی دستگاه ذخیره میکنند. وقتی کاربر بخواهد با پاسکی وارد شود، خود دستگاه محلی — و نه فضای ابری — تأییدیه احراز هویت را ارائه میدهد که با کلید خصوصی ذخیرهشده روی همان دستگاه امضا شده است.
وقتی دستگاه آلوده میشود؛ پایان امنیت تمام برنامهها
بدافزار در حملات Pass-ta-key از دسترسی خود به حساب گوگل — و در برخی موارد، کلید کاربر یا دستگاه ذخیرهشده در TPM — برای به دست آوردن پاسکیهای محرمانه استفاده میکند. مخربترین نوع از این سه واریانت حمله، باعث میشود سیستم ویندوزی آلوده، خود را به عنوان یک آیفون جا بزند! این کار قابلیت همگامسازی را در GPM فعال میکند که به کاربران اجازه میدهد تمام پاسکیهای ذخیرهشده را به یک دستگاه جدید منتقل کنند؛ در نتیجه کلیدها به دستگاه ویندوزی آلوده منتقل میشوند.
اولشتاین حمله Pass-ta-key را یک حمله «جدید» نامید که سطح حمله در اکوسیستم پاسکی را هدف قرار میدهد. اما واقعیت پیچیدهتر است. پیامدهای این حمله دقیقاً مشابه زمانی است که یک سیستم ویندوزی آلوده، به صورت کامل در سایر برنامههای حساس احراز هویت شده باشد. مهاجمی که در آن سوی کیبورد قرار دارد، احتمالاً میتواند مکانیزمهای برنامه مدیریت برنامههای اعتبارسنجی (Credentials) را برای ورود به یک سایت یا دانلود تمام رمزهای عبور فعال کند.
این ریسک همواره وجود داشته و دلیلی است که برخی افراد مدیران رمز عبور (Password Managers) را ناامن میدانند. بر اساس گزارش اولشتاین، ممکن است GPM فاقد برخی لایههای محافظتی موجود در برنامههایی مثل 1Password باشد (مانند فراخوانی APIهای سیستمعامل برای جلوگیری از خواندن حافظه توسط سایر پردازشها). با این حال، به طور کلی یک اصل پذیرفتهشده در دنیای امنیت وجود دارد: هرگاه یک دستگاه آلوده به بدافزار وارد یک حساب کاربری حساس شود، بازی تمام شده است. به عبارت دیگر، حمله Pass-ta-key واقعیت همیشگی دنیای امنیت کامپیوتر است و چیز جدیدی در آن وجود ندارد؛ چرا که سطح حمله به هر دادهای که نیازمند احراز هویت است گسترش مییابد.
هدف اصلی پاسکیها حذف رازهای مشترک (Shared Secrets) است که میتوانند فیشینگ شوند یا در رخنه به سرورها به سرقت بروند. پاسکیها برای مقاومت در برابر حملات فیزیکی یا آلودگی مستقیم دستگاههای ذخیرهکننده طراحی نشدهاند. بنابراین سرقت کلیدها در صورت آلودگی ویندوز نگرانکننده اما غیرمنتظره نیست. این پژوهش شاید جدید نباشد، اما به کاربران کمک میکند درک کنند وقتی یک دستگاه (بهویژه ویندوز) در حالت لاگین به حساب آلوده شود، تمامی دادههای ذخیرهشده در آن در دسترس هکرها قرار خواهد گرفت.


آگهی فردا