تصور کنید تمام کلیدهای دیجیتالی که برای ورود به حسابهای حساس خود ساختهاید، در برابر یک بدافزار ساده در ویندوز بیدفاع باشند. حمله Pass-ta-key — که نامی بازیگونه با عبارت «pass the key» (کلید را پاس بده) و اشارهای به بشقاب پاستا است — ثابت میکند که امنیت پسکلیدها در محیط ویندوز، برخلاف تصور بسیاری، به اندازه سیستمهای اپل یا اندروید مستحکم نیست.
به گزارش پژوهشگران امنیتی شرکت Palo Alto Networks، این حمله نشان میدهد بدافزارهای ویندوزی میتوانند تمام پسکلیدها (Passkeys) — که شبیه به یک کلید دیجیتالی غیرقابل کپی هستند و جایگزین رمزهای عبور سنتی شدهاند — را از مدیریت رمز عبور گوگل (Google Password Manager) استخراج کنند. این اتفاق یک شکاف بحرانی در نحوه مدیریت کلیدهای رمزنگاری در سیستمعاملهای مختلف و نحوه ایزولهسازی آنها را آشکار میکند.
پسکلیدها برای حذف رمزهای عبور و ایجاد یک پارادایم امنتر و مقاوم در برابر فیشینگ طراحی شدهاند. اکثر کاربران تصور میکنند این کلیدها در یک ماژول پلتفرم مورد اعتماد (TPM) — که مثل یک گاوصندوق سختافزاری کوچک و نفوذناپذیر درون مادربورد است — یا در محیطهای امن ایزوله (Secure Enclave) ذخیره میشوند. اما واقعیت این است که مستندات استاندارد FIDO 2، که توسط اتحادیه FIDO مدیریت میشود، ذخیرهسازی سختافزاری را اجباری نمیکند و جزئیات پیادهسازی را بر عهده توسعهدهندگان سیستمعامل و اپلیکیشن میگذارد. این محیطهای پشتیبانیشده توسط سختافزار بسته به پلتفرم، نامهای مختلفی دارند؛ از جمله Secure Enclaves، محیطهای اجرای مورد اعتماد (TEE) و StrongBoxes.
در حالی که مایکروسافت به کاربران سازمانی اجازه میدهد کلیدها را در TPM ویندوز ذخیره کنند، اکثر پلتفرمهای مصرفکننده سالها پیش به سمت ذخیرهسازی نرمافزاری محلی تغییر مسیر دادند. مایکروسافت گزینه TPM را عمدتاً به سازمانها توصیه میکند، نه کاربران عادی. این تغییر برای فعال کردن قابلیت همگامسازی (Sync) بین دستگاههای مختلف ضروری بود؛ زیرا کلیدهای قفلشده در TPM نمیتوانند به راحتی از یک تراشه به تراشه دیگر منتقل شوند. اگر ذخیرهسازی در TPM اجباری میشد، همگامسازی غیرممکن میشد و کاربران مجبور بودند هر پسکلید را بهصورت جداگانه روی هر دستگاه جدید دوباره ایجاد کنند.
همانطور که در تحلیلهای پیشین ما درباره امنیت مدلهای بازمتن و زیرساختهای ذخیرهسازی اشاره کردیم، تعادل بین راحتی کاربر و امنیت سختافزاری همواره یک چالش است. در مورد ویندوز، این تعادل به نفع راحتی تغییر کرده است.
شکاف دسترسی در ویندوز
هسته اصلی آسیبپذیری Pass-ta-key نه در تکنولوژی پسکلید، بلکه در معماری ویندوز است. در macOS، iOS و اندروید، اپلیکیشنها بهصورت پیشفرض با دسترسیهای بسیار محدود اجرا میشوند. بدافزارها در این پلتفرمها نمیتوانند به کلیدهای خصوصی یک اپلیکیشن دیگر دسترسی داشته باشند، مگر اینکه از یک اکسپلویت بسیار پیچیده و ناشناخته (Zero-day) برای نفوذ به کل هسته (Kernel) سیستم استفاده کنند. تا به امروز، این فرض درباره ایزولاسیون در عمل درست بوده است.
اما ویندوز متفاوت عمل میکند. اکثر اپلیکیشنهای ویندوزی با تمام دسترسیهای کاربر وارد شده اجرا میشوند. اگرچه مایکروسافت محیطهای ایزولهای (Sandboxing) را فراهم کرده است، اما این حفاظها اغلب یکطرفه هستند؛ یعنی سیستم را از اپلیکیشن محافظت میکنند، اما لزوماً دادههای یک اپلیکیشن ایزوله را از بدافزارهای غیرایزوله که روی همان ماشین اجرا میشوند، حفظ نمیکنند. این طراحی عمدتاً برای حفظ سازگاری با نرمافزارهای قدیمی (Backward Compatibility) ضروری بود.
به دلیل همین ساختار، بدافزارهای ویندوزی در مقایسه با سایر سیستمعاملها، برای دسترسی به دادههای مورد استفاده در یک اپلیکیشن مجزا، با مشکلات بسیار کمتری روبرو هستند. معماران پسکلید به خوبی از این تفاوت آگاه بودهاند و به همین دلیل است که بسیاری از توسعهدهندگان شخص ثالث، طراحی متفاوتی را برای سیستمعامل مایکروسافت انتخاب کردند.
سازوکار حمله Pass-ta-key
به دلیل نبودِ ایزولاسیون در ویندوز، توسعهدهندگانی مثل 1Password، Dashlane و گوگل از ذخیره محلی پسکلیدها در ویندوز اجتناب میکنند. در عوض، آنها از یک رویکرد ابری استفاده میکنند که در آن پسکلیدها در بلوکهای رمزنگاریشده سرتاسری (End-to-End Encrypted Blobs) در فضای ابری ذخیره میشوند:
- دستگاه یک کلید کاربر و/یا کلید دستگاه را از TPM میگیرد تا با احراز هویت پسزمینه (Backend) ارائهدهنده ارتباط برقرار کند.
- سرور ارائهدهنده (مثلاً سرور گوگل) کلید خصوصی واقعی را در یک بلوک رمزنگاریشده نگه میدارد.
- سرور، تأییدیه احراز هویت را امضا کرده و آن را به وبسایتی که کاربر قصد ورود به آن را دارد، میفرستد.
در مقابل، همین اپلیکیشنها در پلتفرمهای دیگر، پسکلیدها را بهصورت محلی روی دستگاه ذخیره میکنند. در آن حالت، هنگام ورود کاربر، خودِ دستگاه محلی — و نه یک سرور ابری — تأییدیه احراز هویت را که توسط کلید خصوصی رمزنگاریشده محلی امضا شده است، ارائه میدهد.
طبق گزارشی که هفته گذشته توسط پژوهشگر آری اولشتاین (Arie Olshtein) منتشر شد، حمله Pass-ta-key با سوءاستفاده از نشست (Session) فعال کاربر، این حفاظها را دور میزند. خطرناکترین نسخه این حمله، مدیریت رمز عبور گوگل را فریب میدهد تا تصور کند دستگاه آلوده ویندوزی در واقع یک آیفون است. این ترفند باعث فعال شدن یک قابلیت همگامسازی میشود که به کاربران اجازه میدهد تمام پسکلیدهای ذخیرهشده را به یک دستگاه جدید منتقل کنند؛ در نتیجه، کلیدها مستقیماً به دستگاه آلوده ویندوزی منتقل میشوند.
واقعیت نفوذ به دستگاه
دن گودین، سردبیر امنیتی Ars Technica، اشاره میکند که اگرچه پژوهشگر این مورد را یک «سطح حمله نوظهور» نامیده است، اما ریسک زیربنایی آن یک حقیقت بنیادی در علوم کامپیوتر است. اگر دستگاهی بهطور کامل به بدافزار آلوده شود و کاربر در حسابهای حساس لاگ-این باشد، مهاجم عملاً مالک آن دادههاست. مخاطرات در صورتی که یک ماشین آلوده به هر اپلیکیشن حساس دیگری متصل باشد نیز یکسان است؛ مهاجم احتمالاً میتواند مکانیسمهایی را فعال کند تا به سایتها وارد شود یا تمام رمزهای عبور را دانلود کند.
این همان ریسکی است که با مدیریتکنندههای رمز عبور سنتی مرتبط است. اگر بدافزار بتواند حافظه یک پردازش را بخواند یا خود را جای کاربر جا بزند، میتواند اپلیکیشن را مجبور به خروجی گرفتن (Export) از اعتبارنامهها کند. بر اساس گزارش منتشر شده، مدیریت رمز عبور گوگل (GPM) ممکن است فاقد برخی حفاظهایی باشد که در مدیریتکنندههایی مانند 1Password یافت میشود؛ مانند فراخوانی APIهای سیستمعامل برای محدود کردن سایر پردازشها از خواندن حافظه آن.
بهطور کلی، این یک پذیرش جهانی است که هرگاه یک دستگاه آلوده به یک حساب حساس متصل باشد، «بازی تمام شده است» (Game Over). Pass-ta-key حقیقتی است که از زمان پیدایش امنیت کامپیوتر وجود داشته است. سطح حمله به هر دادهای گسترش مییابد که برای دسترسی به آن نیاز به احراز هویت باشد.
نکات کلیدی درباره امنیت پسکلیدها
- هدف: پسکلیدها برای حذف اسرار مشترکی (Shared Secrets) طراحی شدهاند که میتوانند از طریق فیشینگ یا نفوذ به سرورها دزدیده شوند.
- محدودیت: آنها برای مقاومت در برابر حملات فیزیکی یا حملات محلی علیه دستگاههایی که آنها را ذخیره میکنند، طراحی نشدهاند.
- ریسک ویندوز: به دلیل اینکه اپلیکیشنهای ویندوزی اغلب امتیازات کاربر را به اشتراک میگذارند، بدافزارها برای دسترسی به دادههای اپلیکیشنهای مجزا با موانع کمتری روبرو هستند.
- نتیجه: هنگامی که یک دستگاه — بهویژه دستگاهی که ویندوز اجرا میکند — در حالی که در یک حساب لاگ-این است مورد نفوذ قرار گیرد، تمام دادههای ذخیرهشده عملاً در دسترس مهاجم قرار میگیرند.
پژوهش Pass-ta-key صرفاً برجسته میکند که پسکلیدها یک سپر جادویی در برابر نفوذ محلی به دستگاه نیستند. برای کاربر عادی، این بدان معناست که امنیت یک پسکلید تنها به اندازه سلامت سیستمعاملی است که روی آن قرار دارد. در ویندوز، ریسک استخراج اعتبارنامهها به دلیل نحوه مدیریت مجوزهای اپلیکیشن توسط سیستمعامل، بهطور قابلتوجهی بالاتر از پلتفرمهای موبایل یا اپل است.
منتظر بهروزرسانیهای FIDO Alliance در مورد تغییرات احتمالی در الزامات ذخیرهسازی باشید، یا استفاده از یک کلید امنیتی سختافزاری اختصاصی (مانند YubiKey) را در نظر بگیرید که کلیدهای خصوصی را کاملاً خارج از سیستمعامل میزبان نگه میدارد.
گام بعدی شما
- برای حسابهای حیاتی، از کلیدهای امنیتی سختافزاری مجزا (مانند YubiKey) استفاده کنید که کلیدهای خصوصی را کاملاً خارج از سیستمعامل نگه میدارند.
- در ویندوز، از مدیریتکنندههای رمز عبور شخص ثالث که استانداردهای سختگیرانهتری برای ایزولاسیون حافظه دارند استفاده کنید.
- بهروزرسانیهای FIDO Alliance را برای تغییر در استانداردهای ذخیرهسازی دنبال کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما درباره تراشههای امنیتی نسل جدید مراجعه کنید.




گفتگو