کالبدشکافی کلیدهای امنیتی سختافزاری: چرا این فلشهای کوچک هیچ رمزی را در خود ذخیره نمیکنند؟
برخلاف تصور عمومی، کلیدهای امنیتی مانند یوبیکی گاوصندوقی برای نگهداری رمزهای عبور نیستند؛ آنها کامپیوترهای مینیاتوری هستند که با استفاده از رمزنگاری نامتقارن، فیشینگ را از نظر ریاضی غیرممکن میکنند.
به قلم آیدا امینی
این خبر را به اشتراک بگذارید
- مهندسان امنیت سایبری
- تمرکز بر اثباتهای ریاضی رمزنگاری نامتقارن و حذف کامل عامل انسانی در تشخیص حملات فیشینگ.
- مدافعان حریم خصوصی
- ارزشگذاری بر عدم ردیابی متمرکز، زیرا کلیدهای سختافزاری هیچ اطلاعات هویتی مشترکی بین سایتهای مختلف به اشتراک نمیگذارند.
- منتقدان تجربه کاربری
- تاکید بر دشواری بازیابی حسابها در صورت گم شدن کلید فیزیکی و پیچیدگیهای راهاندازی اولیه برای کاربران عادی.
پرسشهای متداول
آیا اگر کلید امنیتی خود را گم کنم، هکرها میتوانند وارد حساب من شوند؟
خیر. کلید امنیتی به تنهایی رمز عبور شما را نمیداند. هکر برای ورود به حساب شما هم به کلید فیزیکی و هم به رمز عبور (یا پینکد کلید) نیاز دارد.
اگر کلید سختافزاری گم شود، چگونه وارد حساب خود شوم؟
به همین دلیل همیشه توصیه میشود دو کلید ثبت کنید (یکی به عنوان پشتیبان). در غیر این صورت، باید از کدهای بازیابی یکبارمصرفی که سایتها هنگام ثبتنام ارائه میدهند استفاده کنید.
آیا کلیدهای امنیتی به اینترنت متصل میشوند؟
خیر. این کلیدها هیچگونه اتصال بیسیم مستقلی به اینترنت ندارند و تنها زمانی کار میکنند که به پورت USB متصل شوند یا از طریق NFC به گوشی شما نزدیک شوند.
تفاوت این کلیدها با اپلیکیشنهایی مثل Google Authenticator چیست؟
کدهای اپلیکیشنها میتوانند توسط کاربر در سایتهای جعلی فیشینگ وارد شوند، اما کلید سختافزاری به صورت خودکار آدرس سایت را بررسی کرده و در سایتهای جعلی کار نمیکند.
نکات کلیدی
- کلیدهای سختافزاری هیچ رمز عبوری را در خود ذخیره نمیکنند.
- این دستگاهها با تولید جفتکلیدهای ریاضی منحصربهفرد برای هر سایت کار میکنند.
- مقاومت آنها در برابر فیشینگ به دلیل بررسی خودکار آدرس سایت (Origin Binding) توسط مرورگر است.
- کلید خصوصی هرگز از تراشه امن داخل دستگاه خارج نمیشود.
- برای جلوگیری از قفل شدن دائمی حساب، داشتن حداقل یک کلید پشتیبان ضروری است.
بزرگترین اشتباهی که اکثر افراد درباره کلیدهای امنیتی سختافزاری (مانند YubiKey یا Google Titan) مرتکب میشوند، این است که فکر میکنند این دستگاهها شبیه یک فلش مموری کوچک هستند که رمزهای عبور را در خود ذخیره میکنند. وقتی بازاریابها از عبارت «کلید فیزیکی» استفاده میکنند، ذهن ما ناخودآگاه به سمت یک گاوصندوق دیجیتال میرود که با وصل شدن به پورت USB، رمزها را به صورت خودکار تایپ میکند. اما واقعیت بسیار جذابتر و البته پیچیدهتر است. این دستگاهها در واقع هیچ رمزی را ذخیره نمیکنند و اصلاً نمیدانند رمز عبور شما چیست.[1][5]
برای درک قابلیت واقعی این سختافزارها، باید از هیاهوی تبلیغاتی «امنیت غیرقابل نفوذ» عبور کنیم و به هسته اصلی فناوری نگاهی بیندازیم. یک کلید امنیتی، در واقع یک کامپیوتر مینیاتوری فوقامنیتی است که پردازنده، حافظه و سیستمعامل اختصاصی خود را دارد. وظیفه این کامپیوتر کوچک تنها یک چیز است: انجام محاسبات پیچیده ریاضی برای اثبات هویت شما، بدون اینکه هرگز راز اصلی را فاش کند. این معماری باعث میشود که حتی در صورت آلوده بودن کامپیوتر شما به ویروس، کلید امنیتی همچنان وظیفه خود را به درستی انجام دهد.
اساس کار این سیستم بر پایه استانداردی به نام FIDO2 و پروتکل WebAuthn بنا شده است. به جای استفاده از یک «راز مشترک» (مانند رمز عبور که هم شما و هم سرور آن را میدانید)، این استاندارد از «رمزنگاری نامتقارن» (Public Key Cryptography) استفاده میکند. در این روش، برای هر حساب کاربری، یک جفت کلید تولید میشود: یک کلید عمومی (Public Key) و یک کلید خصوصی (Private Key). این دو کلید از نظر ریاضی به هم مرتبط هستند، اما نمیتوان یکی را از روی دیگری حدس زد.[1][3]
وقتی برای اولین بار کلید سختافزاری خود را در یک سایت (مثلاً جیمیل) ثبت میکنید، پردازنده داخل کلید یک جفت کلید ریاضی منحصربهفرد فقط برای همان سایت میسازد. کلید عمومی مانند یک قفل باز است که به سرور گوگل فرستاده میشود تا در پایگاه داده آنها ذخیره شود. اما کلید خصوصی، در یک تراشه امن (Secure Element) داخل خود سختافزار باقی میماند. این تراشه به گونهای طراحی شده که استخراج اطلاعات از آن حتی با تجهیزات پیشرفته آزمایشگاهی و باز کردن فیزیکی قطعات نیز تقریباً غیرممکن است.[3]
حالا وقتی میخواهید وارد حساب خود شوید، چه اتفاقی میافتد؟ سرور گوگل یک چالش ریاضی (یک رشته اعداد و حروف تصادفی) را به مرورگر شما میفرستد و میگوید: «اگر تو واقعاً صاحب این حساب هستی، این چالش را با کلید خصوصیات امضا کن.» کلید سختافزاری این چالش را دریافت میکند، با استفاده از کلید خصوصی آن را رمزنگاری (امضا) کرده و نتیجه را برمیگرداند. سرور با استفاده از کلید عمومی که از قبل دارد، امضا را بررسی میکند و در صورت صحت، اجازه ورود میدهد. در تمام این فرآیند، کلید خصوصی هرگز از دستگاه خارج نمیشود.[2][3]
سرور با استفاده از کلید عمومی که از قبل دارد، امضا را بررسی میکند و در صورت صحت، اجازه ورود میدهد.
نکته حیاتی که بازاریابی شرکتها کمتر به آن میپردازد، ویژگی «اتصال به مبدأ» (Origin Binding) است. دلیل اصلی اینکه این کلیدها فیشینگ را شکست میدهند، پیچیدگی رمزنگاری آنها نیست، بلکه نحوه تعامل آنها با مرورگر است. وقتی یک هکر شما را فریب میدهد تا وارد سایت جعلی g00gle.com شوید، مرورگر آدرس دقیق این سایت جعلی را به کلید سختافزاری میفرستد. این ارتباط مستقیم بین مرورگر و سختافزار، عامل انسانی را از فرآیند تشخیص سایت جعلی حذف میکند.[2][5]
کلید سختافزاری آدرس دریافتی را بررسی میکند و میبیند که کلید خصوصی مربوط به google.com را دارد، نه g00gle.com. بنابراین، به سادگی از امضا کردن چالش خودداری میکند. هکر حتی اگر تمام ترافیک اینترنت شما را شنود کند، چیزی جز یک امضای دیجیتال بیمصرف برای یک چالش باطلشده به دست نمیآورد. این دقیقاً همان جایی است که کدهای پیامکی (SMS) و اپلیکیشنهای احراز هویت (مانند Google Authenticator) شکست میخورند، زیرا کاربر میتواند فریب بخورد و کد معتبر را با دستان خودش در سایت جعلی وارد کند.[1][4]
بسیاری از این کلیدها دارای یک دکمه طلایی رنگ یا حسگر لمسی هستند. برخلاف تصور، این حسگر در اکثر مدلهای پایه اثر انگشت شما را نمیخواند، بلکه تنها یک حسگر خازنی ساده برای اثبات «حضور فیزیکی کاربر» است. این ویژگی تضمین میکند که حتی اگر یک بدافزار کنترل کامل کامپیوتر شما را در دست بگیرد، نمیتواند بدون اینکه شما به صورت فیزیکی کلید را لمس کنید، چالشی را امضا کرده و وارد حسابهایتان شود.
با این حال، باید با دیدی انتقادی به ادعای «امنیت مطلق» نگاه کرد. کلیدهای سختافزاری از شما در برابر سرقت کوکیهای نشست (Session Hijacking) محافظت نمیکنند. اگر بدافزاری روی کامپیوتر شما نصب شده باشد که کوکی ورود شما را پس از احراز هویت موفقیتآمیز بدزدد، هکر میتواند بدون نیاز به کلید فیزیکی شما، وارد حسابتان شود. کلید سختافزاری فقط در مرحله عبور از در ورودی از شما محافظت میکند، نه زمانی که از قبل داخل خانه هستید و در را باز گذاشتهاید.[4][5]
علاوه بر این، گم کردن این کلیدها یکی از نگرانیهای اصلی کاربران است. از آنجا که هیچ کپی پشتیبانی از کلیدهای خصوصی در فضای ابری وجود ندارد (برخلاف Passkeyهای نرمافزاری اپل و گوگل)، اگر کلید خود را گم کنید و روش جایگزینی تنظیم نکرده باشید، برای همیشه پشت درهای بسته حساب خود خواهید ماند. به همین دلیل است که متخصصان امنیت سایبری همیشه توصیه میکنند حداقل دو کلید سختافزاری تهیه کنید: یکی برای استفاده روزمره در دسته کلید، و دیگری برای نگهداری در مکانی امن به عنوان پشتیبان.[1][4]
تفاوت اصلی بین کلیدهای سختافزاری و Passkeyهای نرمافزاری که اخیراً در گوشیهای هوشمند رایج شدهاند، در قابلیت انتقال آنهاست. کلیدهای خصوصی در Passkeyهای نرمافزاری از طریق سرویسهای ابری (مانند iCloud Keychain) بین دستگاههای شما همگامسازی میشوند که راحتی بینظیری به همراه دارد. اما کلیدهای سختافزاری بر پایه اصل «غیرقابل استخراج بودن» (Non-exportability) بنا شدهاند؛ کلید خصوصی در همان تراشهای که متولد شده، میمیرد و هرگز به هیچ فضای ابری منتقل نمیشود.[2][3]
در نهایت، حرکت صنعت تکنولوژی به سمت حذف کامل رمزهای عبور (Passwordless) با استفاده از همین معماری در حال انجام است. استانداردهای جدید به این کلیدها اجازه میدهند که نه تنها به عنوان لایه دوم امنیتی (2FA)، بلکه به عنوان تنها عامل ورود عمل کنند. با ترکیب یک پینکد یا حسگر اثر انگشت روی خود کلید سختافزاری، نیاز به حفظ کردن هرگونه رمزی از بین میرود و امنیت به ترکیبی قدرتمند از «چیزی که دارید» (کلید فیزیکی) و «چیزی که میدانید یا هستید» (پین یا اثر انگشت) تبدیل میشود.[1]
چرا مهم است
با افزایش حملات فیشینگ و دور زدن تایید هویت پیامکی توسط هکرها، درک نحوه کار این کلیدها به شما کمک میکند تا امنیت حسابهای حیاتی خود را از وابستگی به رمزهای عبور ضعیف و کدهای یکبارمصرف رها کنید.
اصطلاحات کلیدی
- رمزنگاری نامتقارن (Public Key Cryptography)
- سیستمی ریاضی که از دو کلید مجزا استفاده میکند: یک کلید عمومی برای قفل کردن دادهها و یک کلید خصوصی برای باز کردن آنها.
- اتصال به مبدأ (Origin Binding)
- مکانیسمی امنیتی که در آن مرورگر آدرس دقیق وبسایت (URL) را به کلید سختافزاری میفرستد تا از امضای چالشها در سایتهای جعلی جلوگیری شود.
- پروتکل WebAuthn
- استاندارد جهانی وب که به مرورگرها اجازه میدهد به جای رمز عبور، با استفاده از کلیدهای رمزنگاری شده با سرورها ارتباط برقرار کنند.
- تراشه امن (Secure Element)
- یک ریزپردازنده ویژه در داخل کلید که در برابر حملات فیزیکی و نرمافزاری مقاوم است و کلیدهای خصوصی را در خود نگه میدارد.
منابع
[1]FIDO Allianceمهندسان امنیت سایبریHow FIDO Works: Standardizing Passwordless Authentication
مطالعه در FIDO Alliance →
[2]WebAuthn.guideمدافعان حریم خصوصیGuide to Web Authentication
مطالعه در WebAuthn.guide →
[3]W3Cمهندسان امنیت سایبریWeb Authentication: An API for accessing Public Key Credentials
مطالعه در W3C →
[4]NISTمهندسان امنیت سایبریDigital Identity Guidelines: Authentication and Lifecycle Management
مطالعه در NIST →
[5]تیم سردبیری کوهستانمنتقدان تجربه کاربریتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
هر زاویه. هر روز.
دریافت فناوری اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.



