نمودار فرآیند احراز هویت SSH با کلید امنیتی FIDO2 – چالش-پاسخ و تأیید حضور فیزیکی کاربر

احراز هویت SSH با FIDO | ایمن‌سازی دسترسی سرور با کلیدهای امنیتی

سرورهای لینوکسی ستون فقرات زیرساخت فناوری اطلاعات اکثر سازمان‌ها هستند و پروتکل SSH نخستین دروازه دسترسی مدیران سیستم به این سرورها محسوب می‌شود. با وجود این اهمیت حیاتی، بسیاری از سازمان‌ها هنوز برای احراز هویت SSH از رمز عبور یا کلیدهای رمزنگاری سنتی استفاده می‌کنند؛ روش‌هایی که مهاجمان سایبری به‌خوبی بلدند چگونه دور بزنند. پاسخ این مشکل در استاندارد FIDO نهفته است: فناوری‌ای که احراز هویت SSH را از یک فرآیند مبتنی بر «دانستن چیزی» به «داشتن چیزی و اثبات حضور فیزیکی» تغییر می‌دهد. از نسخه ۸.۲ OpenSSH به بعد، پشتیبانی رسمی از کلیدهای امنیتی FIDO2 اضافه شده و مسیر پیاده‌سازی احراز هویت بدون رمز عبور SSH برای سازمان‌ها هموار شده است. این راهنمای جامع، تمام آنچه برای ایمن‌سازی دسترسی SSH با FIDO نیاز دارید را پوشش می‌دهد: از مبانی فنی و معماری تا پیکربندی عملیاتی و مدیریت سازمانی.

حتما بخوانید

برای درک عمیق‌تر مفاهیم پایه احراز هویت و جایگاه FIDO در اکوسیستم مدیریت هویت، مطالعه راهنمای جامع مفاهیم احراز هویت و مدیریت هویت و دسترسی (IAM) را پیشنهاد می‌کنیم.

حتماً بخوانید: راهنمای جامع مفاهیم احراز هویت و مدیریت هویت و دسترسی (IAM)

 
فهرست

چرا احراز هویت سنتی SSH دیگر کافی نیست؟

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

آسیب‌پذیری‌های رمز عبور و کلید SSH سنتی

احراز هویت مبتنی بر رمز عبور در SSH، آسیب‌پذیرترین روش محسوب می‌شود. مهاجمان می‌توانند با حملات Brute Force، Dictionary Attack یا Credential Stuffing، رمزهای ضعیف را حدس بزنند. حتی رمزهای قوی نیز در برابر فیشینگ، کی‌لاگرها و نشت پایگاه‌های داده آسیب‌پذیرند. بسیاری از مدیران سیستم نیز از رمزهای مشابه برای چندین سرور استفاده می‌کنند و نفوذ به یک سرور، باقی سرورها را نیز در معرض خطر قرار می‌دهد.

کلیدهای SSH سنتی (مانند RSA و Ed25519) نسبت به رمز عبور بسیار امن‌ترند، اما آن‌ها نیز محدودیت‌های مهمی دارند. کلید خصوصی به‌صورت یک فایل روی دیسک ذخیره می‌شود و اگر مهاجم به سیستم کاربر نفوذ کند، می‌تواند این فایل را سرقت کند. حتی اگر کلید با رمز عبور (Passphrase) محافظت شده باشد، بدافزارها و کی‌لاگرها قادر به ضبط آن هستند. مهم‌تر از همه، کلید SSH سنتی هیچ تضمینی درباره حضور فیزیکی کاربر ارائه نمی‌دهد؛ هر نرم‌افزاری که به فایل کلید دسترسی داشته باشد، می‌تواند از آن استفاده کند.

بردارهای حمله رایج علیه SSH

حملات علیه SSH از ساده‌ترین تا پیچیده‌ترین شکل ممکن وجود دارند. حملات Brute Force و Dictionary Attack هنوز هم رایج‌ترین بردار حمله هستند و روزانه میلیون‌ها تلاش ناموفق ورود به سرورهای SSH در سراسر جهان ثبت می‌شود. حملات Man-in-the-Middle (MITM) در شرایط خاص امکان شنود و دستکاری ارتباط SSH را فراهم می‌کنند. سرقت کلید خصوصی از طریق بدافزار یا دسترسی فیزیکی به سیستم کاربر، یکی دیگر از بردارهای خطرناک است. حملات SSH Tunneling Abuse نیز از نشست‌های SSH معتبر برای ایجاد تونل‌های مخرب و دور زدن فایروال سوءاستفاده می‌کنند.

آمار گزارش‌شده نشان می‌دهد حملات مبتنی بر سرقت اعتبارنامه SSH در سال‌های اخیر رشد قابل‌توجهی داشته‌اند. بخش عمده‌ای از حوادث نفوذ به سرورها، ریشه در ضعف احراز هویت SSH دارد و این واقعیت ضرورت مهاجرت به روش‌های مقاوم‌تر مانند احراز هویت SSH با FIDO را بیش‌ازپیش آشکار می‌سازد.

FIDO چیست و چه ارتباطی با SSH دارد؟

اتحاد FIDO (Fast Identity Online Alliance) مجموعه‌ای از استانداردهای باز برای احراز هویت قوی و مقاوم در برابر فیشینگ توسعه داده است. این استانداردها ابتدا برای احراز هویت وب طراحی شدند، اما به‌تدریج در حوزه‌های دیگری از جمله دسترسی SSH نیز کاربرد یافتند.

مروری بر استاندارد FIDO2 و WebAuthn

FIDO2 ترکیبی از دو مشخصه فنی است: WebAuthn (توسعه‌یافته توسط W3C) و CTAP2 (Client to Authenticator Protocol). این استاندارد بر پایه رمزنگاری نامتقارن (Public-Key Cryptography) عمل می‌کند. در فرآیند ثبت‌نام، دستگاه احرازکننده هویت (Authenticator) یک جفت‌کلید رمزنگاری ایجاد می‌کند: کلید خصوصی درون سخت‌افزار امن دستگاه باقی می‌ماند و هرگز از آن خارج نمی‌شود، و کلید عمومی به سرور ارسال می‌شود. در فرآیند احراز هویت، سرور یک چالش (Challenge) ارسال می‌کند و دستگاه آن را با کلید خصوصی امضا می‌کند. کاربر برای تأیید عملیات باید حضور فیزیکی خود را اثبات کند (مثلاً لمس دکمه کلید امنیتی یا اسکن اثر انگشت).

ویژگی حیاتی FIDO2 مقاومت ذاتی آن در برابر فیشینگ است. کلید خصوصی به دامنه (Origin) خاصی متصل است و حتی اگر کاربر فریب یک سایت جعلی را بخورد، کلید برای آن دامنه کار نخواهد کرد. در بافت SSH، این مفهوم به‌گونه دیگری عمل می‌کند: کلید خصوصی هرگز از سخت‌افزار خارج نمی‌شود و بدون لمس فیزیکی دستگاه قابل استفاده نیست.

پشتیبانی OpenSSH از کلیدهای FIDO

OpenSSH از نسخه ۸.۲ (منتشرشده در فوریه ۲۰۲۰) پشتیبانی رسمی از کلیدهای امنیتی FIDO را اضافه کرد. این پشتیبانی دو نوع کلید جدید را معرفی کرد که هر کدام ویژگی‌های خاصی دارند.

نوع کلید ed25519-sk

این نوع کلید بر پایه الگوریتم Ed25519 عمل می‌کند و پسوند «sk» مخفف Security Key است. Ed25519-sk از منحنی بیضوی Curve25519 استفاده می‌کند که امنیت بالا و عملکرد سریعی دارد. این نوع کلید گزینه پیشنهادی برای اکثر سناریوها محسوب می‌شود، زیرا هم امنیت رمزنگاری قوی‌تری ارائه می‌دهد و هم اندازه کلید و امضای کوچک‌تری دارد.

نوع کلید ecdsa-sk

این نوع کلید از الگوریتم ECDSA بر پایه منحنی NIST P-256 استفاده می‌کند. سازگاری وسیع‌تری با کلیدهای امنیتی قدیمی‌تر دارد، اما از نظر امنیتی محض، Ed25519-sk ترجیح داده می‌شود. برای سازمان‌هایی که از کلیدهای امنیتی نسل‌های قبلی FIDO استفاده می‌کنند، ecdsa-sk ممکن است تنها گزینه عملی باشد.

تفاوت کلیدهای discoverable و non-discoverable

یکی از مفاهیم مهم در کلیدهای FIDO SSH، تفاوت بین کلیدهای Resident (Discoverable) و Non-Resident (Non-Discoverable) است. کلیدهای Non-Resident (پیش‌فرض) به این صورت عمل می‌کنند که یک فایل کلید (Handle) روی سیستم کاربر ذخیره می‌شود و کلید امنیتی بدون این فایل قادر به تولید امضا نیست. کلیدهای Resident اما کاملاً درون حافظه کلید امنیتی ذخیره می‌شوند و کاربر می‌تواند بدون نیاز به فایل خارجی، از هر سیستمی به سرور متصل شود. کلیدهای Resident برای مدیرانی که از سیستم‌های مختلف به سرورها متصل می‌شوند بسیار کاربردی هستند، اما ظرفیت ذخیره‌سازی کلیدهای امنیتی محدود است و باید این محدودیت در نظر گرفته شود.

معماری احراز هویت SSH با FIDO چگونه کار می‌کند؟

درک معماری فنی احراز هویت SSH با FIDO برای پیاده‌سازی صحیح و عیب‌یابی ضروری است. این معماری شامل سه مرحله اصلی است: ثبت کلید، احراز هویت و تأیید حضور فیزیکی.

[تصویر ۲ در اینجا قرار می‌گیرد]

فرآیند ثبت کلید (Registration)

فرآیند ثبت کلید FIDO برای SSH با اجرای دستور ssh-keygen آغاز می‌شود. وقتی مدیر سیستم دستور تولید کلید را اجرا می‌کند، نرم‌افزار OpenSSH از طریق کتابخانه libfido2 با کلید امنیتی ارتباط برقرار می‌کند. کلید امنیتی یک جفت‌کلید رمزنگاری جدید تولید می‌کند: کلید خصوصی در عنصر امن (Secure Element) دستگاه ذخیره می‌شود و کلید عمومی به سیستم کاربر برگردانده می‌شود. در مورد کلیدهای Non-Resident، یک Key Handle رمزگذاری‌شده نیز ایجاد می‌شود که برای مراجعات بعدی به کلید خصوصی استفاده می‌شود. کاربر سپس کلید عمومی تولیدشده را در فایل authorized_keys سرور مقصد قرار می‌دهد.

فرآیند احراز هویت (Authentication)

هنگام اتصال SSH، یک فرآیند چالش-پاسخ (Challenge-Response) اجرا می‌شود. کلاینت SSH درخواست اتصال را به سرور ارسال می‌کند و سرور یک چالش رمزنگاری تصادفی تولید و ارسال می‌کند. کلاینت SSH این چالش را به کلید امنیتی FIDO ارسال می‌کند. کلید امنیتی از کاربر می‌خواهد حضور فیزیکی خود را تأیید کند (لمس دکمه یا اسکن بیومتریک). پس از تأیید، کلید امنیتی چالش را با کلید خصوصی امضا می‌کند و پاسخ امضاشده به سرور ارسال می‌شود. سرور با استفاده از کلید عمومی ذخیره‌شده، صحت امضا را تأیید می‌کند. اگر تأیید موفق باشد، دسترسی اعطا می‌شود.

تمام این مراحل در کسری از ثانیه انجام می‌شود و تجربه کاربری بسیار روانی ایجاد می‌کند. تنها تفاوت محسوس با کلیدهای SSH سنتی، لحظه‌ای است که کاربر باید دکمه کلید امنیتی را لمس کند.

نقش تأیید حضور فیزیکی کاربر (User Presence)

تأیید حضور فیزیکی (User Presence Verification) مهم‌ترین مزیت امنیتی FIDO SSH نسبت به کلیدهای سنتی است. حتی اگر مهاجم کنترل کامل سیستم کاربر را در دست داشته باشد، بدون دسترسی فیزیکی به کلید امنیتی و لمس آن، قادر به احراز هویت نخواهد بود. این ویژگی حملات Remote را به‌شدت محدود می‌کند.

OpenSSH دو سطح تأیید حضور را پشتیبانی می‌کند. سطح اول User Presence (UP) است که فقط نیاز به لمس فیزیکی دکمه کلید دارد. سطح دوم User Verification (UV) است که علاوه بر لمس، نیاز به تأیید بیومتریک (مانند اثر انگشت) یا ورود PIN دارد. سطح دوم امنیت بیشتری ارائه می‌دهد و برای محیط‌های با حساسیت بالا توصیه می‌شود. با فعال‌سازی verify-required، حتی اگر کسی کلید امنیتی فیزیکی را سرقت کند، بدون اثر انگشت صاحب آن یا PIN، قادر به استفاده از آن نخواهد بود.

پیش‌نیازهای ایمن‌سازی SSH با کلیدهای FIDO

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

نسخه OpenSSH و سیستم‌عامل

پشتیبانی از FIDO SSH نیازمند OpenSSH نسخه ۸.۲ یا بالاتر است. اکثر توزیع‌های مدرن لینوکس (Ubuntu 20.04 به بعد، Fedora 32 به بعد، Debian 11 به بعد) این نسخه را به‌صورت پیش‌فرض ارائه می‌دهند. برای بررسی نسخه OpenSSH نصب‌شده روی سیستم، کاربر می‌تواند دستور مربوطه را در ترمینال اجرا کند. در سمت سرور نیز باید OpenSSH Server نسخه ۸.۲ یا بالاتر نصب باشد. ویندوز ۱۰ (نسخه ۱۹۰۳ به بعد) و macOS (نسخه‌های اخیر) نیز از FIDO SSH پشتیبانی می‌کنند، هرچند ممکن است نیاز به نصب ابزارهای تکمیلی باشد.

انتخاب کلید امنیتی FIDO مناسب

انتخاب کلید امنیتی مناسب تأثیر مستقیمی بر امنیت و تجربه کاربری دارد. کلید امنیتی باید از پروتکل FIDO2/CTAP2 پشتیبانی کند (کلیدهایی که فقط U2F دارند، قابلیت‌های محدودتری خواهند داشت). پشتیبانی از الگوریتم Ed25519 ترجیح داده می‌شود. داشتن قابلیت Resident Key برای سناریوهای پیشرفته ضروری است. تأیید بیومتریک (اثر انگشت) روی خود کلید، لایه امنیتی اضافی فراهم می‌کند. اتصال USB-A، USB-C، NFC یا ترکیبی بر اساس نیاز سازمان انتخاب می‌شود.

کلیدهای امنیتی FIDO2 که نشانه ارائه می‌دهد، تمام این الزامات را پوشش می‌دهند و برای استفاده در محیط‌های سازمانی ایرانی بهینه‌سازی شده‌اند.

پیکربندی کتابخانه libfido2

کتابخانه libfido2 رابط ارتباطی بین OpenSSH و کلید امنیتی FIDO است. در اکثر توزیع‌های لینوکسی، این کتابخانه از مخازن رسمی قابل نصب است. پس از نصب، کاربر باید مطمئن شود که دسترسی مناسب به دستگاه USB برقرار است. در سیستم‌های لینوکسی معمولاً نیاز به اضافه کردن قوانین udev برای دسترسی غیر root به کلید امنیتی وجود دارد. بدون این پیکربندی، فقط کاربر root قادر به ارتباط با کلید امنیتی خواهد بود.

راهنمای گام‌به‌گام پیکربندی SSH با FIDO

این بخش فرآیند عملیاتی پیکربندی احراز هویت SSH با FIDO را به‌صورت مرحله‌به‌مرحله شرح می‌دهد. هر مرحله با توضیحات کافی ارائه شده تا حتی مدیران سیستمی که برای اولین بار با FIDO کار می‌کنند، بتوانند آن را پیاده‌سازی کنند.

تولید جفت‌کلید FIDO برای SSH

نخستین گام، تولید جفت‌کلید FIDO SSH است. کاربر باید کلید امنیتی FIDO2 را به سیستم متصل کند و سپس دستور تولید کلید را اجرا نماید. برای تولید کلید از نوع ed25519-sk، از پارامتر مربوطه در ssh-keygen استفاده می‌شود. سیستم از کاربر می‌خواهد کلید امنیتی را لمس کند تا حضور فیزیکی تأیید شود. پس از لمس، دو فایل ایجاد می‌شود: فایل کلید خصوصی (که در واقع حاوی Key Handle است، نه خود کلید خصوصی) و فایل کلید عمومی.

برای تولید کلید Resident (Discoverable) پارامتر اضافی مربوطه به دستور افزوده می‌شود. با فعال‌سازی گزینه verify-required، سیستم در هر بار استفاده علاوه بر لمس، اثر انگشت یا PIN نیز درخواست می‌کند. انتخاب بین این حالت‌ها بستگی به سطح امنیت مورد نیاز و راحتی کاربر دارد.

انتقال کلید عمومی به سرور

پس از تولید جفت‌کلید، کلید عمومی باید به فایل authorized_keys سرور مقصد اضافه شود. این کار با استفاده از ابزار ssh-copy-id یا کپی دستی محتوای فایل کلید عمومی انجام می‌شود. فرمت کلید عمومی FIDO SSH مشابه کلیدهای سنتی است، فقط نوع کلید متفاوت خواهد بود (مثلاً sk-ssh-ed25519 به‌جای ssh-ed25519). سرور بدون نیاز به تغییر خاصی قادر به شناسایی و پذیرش این نوع کلیدها خواهد بود، مشروط بر اینکه نسخه OpenSSH Server از ۸.۲ بالاتر باشد.

تنظیمات sshd_config برای پذیرش کلیدهای FIDO

در سمت سرور، فایل پیکربندی sshd_config باید به‌گونه‌ای تنظیم شود که از کلیدهای FIDO پشتیبانی کند و ترجیحاً روش‌های ناامن‌تر غیرفعال شوند. مهم‌ترین تنظیمات شامل غیرفعال‌سازی احراز هویت مبتنی بر رمز عبور، فعال‌سازی احراز هویت مبتنی بر کلید عمومی و تعیین مسیر فایل authorized_keys است. برای امنیت بیشتر، محدود کردن الگوریتم‌های مجاز به انواع sk (Security Key) نیز توصیه می‌شود. پس از اعمال تغییرات، سرویس SSH باید مجدداً راه‌اندازی شود.

نکته مهم: قبل از غیرفعال کردن احراز هویت رمز عبور، حتماً باید اطمینان حاصل کنید که اتصال با کلید FIDO به‌درستی کار می‌کند. در غیر این صورت ممکن است دسترسی به سرور را کاملاً از دست بدهید. نگه‌داشتن یک نشست SSH فعال به‌عنوان نشست پشتیبان در حین انجام تغییرات، رویکرد محتاطانه‌ای است.

تست اتصال و عیب‌یابی

پس از انجام تنظیمات، اتصال باید آزمایش شود. هنگام اتصال، سیستم از کاربر می‌خواهد کلید امنیتی را لمس کند. اگر اتصال موفق بود، پیکربندی به‌درستی انجام شده است. در صورت بروز خطا، چند نکته عیب‌یابی مفید وجود دارد: اجرای ssh با پارامتر verbose اطلاعات تشخیصی مفصلی ارائه می‌دهد. بررسی لاگ‌های سرور در مسیر مربوطه نیز کمک‌کننده است. اطمینان از نصب صحیح libfido2 و دسترسی مناسب به دستگاه USB از طریق ابزارهای تشخیصی fido2-token ضروری است. همچنین باید مطمئن شد که فایروال سمت سرور پورت SSH را مسدود نکرده باشد.

سناریوهای پیشرفته استفاده از FIDO در SSH

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

استفاده از چندین کلید امنیتی (Backup Key)

اتکا به یک کلید امنیتی واحد ریسک بزرگی ایجاد می‌کند: اگر کلید گم یا خراب شود، دسترسی به سرورها قطع خواهد شد. بهترین رویکرد، ثبت حداقل دو کلید امنیتی برای هر سرور است. کلید دوم به‌عنوان پشتیبان (Backup) در مکان امنی نگهداری می‌شود. فرآیند ثبت کلید دوم مشابه کلید اول است: جفت‌کلید جدیدی تولید و کلید عمومی آن نیز به فایل authorized_keys سرور اضافه می‌شود. برخی سازمان‌ها حتی یک کلید سوم را در صندوق امانات نگهداری می‌کنند تا در سناریوهای فاجعه‌آمیز (Disaster Recovery) قابل استفاده باشد.

ترکیب FIDO با Certificate Authority داخلی

برای سازمان‌های بزرگ، مدیریت فایل‌های authorized_keys روی صدها سرور کابوسی اداری است. ترکیب FIDO SSH با یک SSH Certificate Authority (CA) داخلی این مشکل را حل می‌کند. در این مدل، به‌جای توزیع کلیدهای عمومی روی تک‌تک سرورها، CA گواهی‌نامه‌ای برای کلید عمومی FIDO کاربر صادر می‌کند و سرورها فقط به CA اعتماد می‌کنند. این رویکرد مدیریت متمرکز، ابطال سریع دسترسی و اعمال سیاست‌های دسترسی مبتنی بر نقش را ممکن می‌سازد.

احراز هویت SSH بدون رمز عبور در محیط‌های ابری

استفاده از FIDO SSH در محیط‌های ابری الگوهای خاص خود را دارد. اتصال به سرورهای ابری معمولاً از طریق اینترنت صورت می‌گیرد و سطح تهدید بالاتری دارد، بنابراین FIDO SSH اهمیت مضاعفی پیدا می‌کند.

پیکربندی در AWS EC2

برای استفاده از FIDO SSH با اینستنس‌های EC2، باید AMI مورد استفاده OpenSSH 8.2+ داشته باشد. کاربر کلید عمومی FIDO را از طریق user-data یا بعد از اولین ورود به authorized_keys اضافه می‌کند. Security Group مربوطه باید پورت ۲۲ را فقط از IPهای مجاز اجازه دهد. ترکیب FIDO SSH با AWS Systems Manager Session Manager لایه امنیتی اضافی ایجاد می‌کند.

پیکربندی در سرورهای لینوکسی ایران

مدیران سیستم در ایران با چالش‌های خاصی مواجه هستند. تأخیر شبکه و فیلترینگ ممکن است بر فرآیند دریافت بسته‌های به‌روزرسانی OpenSSH تأثیر بگذارد. استفاده از مخازن داخلی (Mirror) برای به‌روزرسانی نرم‌افزار توصیه می‌شود. خوشبختانه خود فرآیند احراز هویت FIDO SSH به ارتباط اینترنتی نیاز ندارد و تماماً بین کلاینت و سرور صورت می‌گیرد. بنابراین حتی در شبکه‌های داخلی ایزوله نیز قابل استفاده است.

مدیریت متمرکز کلیدهای FIDO SSH در سازمان

وقتی تعداد کاربران و سرورها افزایش می‌یابد، مدیریت دستی کلیدهای FIDO SSH عملی نخواهد بود. سازمان‌ها به یک رویکرد متمرکز و خودکار نیاز دارند.

چالش‌های مقیاس‌پذیری

سازمانی با ۵۰ مدیر سیستم و ۲۰۰ سرور، در حالت ساده باید ۱۰,۰۰۰ ورودی authorized_keys مدیریت کند. هر بار که کارمندی اضافه یا حذف می‌شود، یا کلید امنیتی جایگزین می‌شود، تمام سرورهای مرتبط باید به‌روزرسانی شوند. بدون ابزار مدیریت متمرکز، این فرآیند مستعد خطا، وقت‌گیر و از نظر امنیتی ریسک‌دار است. کلیدهای قدیمی و منقضی‌شده که هنوز روی سرورها باقی مانده‌اند، یکی از رایج‌ترین آسیب‌پذیری‌ها در سازمان‌ها محسوب می‌شوند.

نقش سامانه IAM در مدیریت کلیدهای SSH

یک سامانه مدیریت هویت و دسترسی (IAM) مشکلات مقیاس‌پذیری را از ریشه حل می‌کند. سامانه IAM به‌عنوان منبع واحد حقیقت (Single Source of Truth) برای هویت کاربران و مجوزهای دسترسی عمل می‌کند. وقتی کاربر جدیدی اضافه می‌شود، سامانه IAM به‌صورت خودکار کلید عمومی FIDO او را به سرورهای مجاز توزیع می‌کند. هنگام خروج کارمند، غیرفعال کردن حساب در IAM فوراً دسترسی SSH او را در تمام سرورها قطع می‌کند. امکان تعریف سیاست‌های دسترسی مبتنی بر نقش (RBAC)، محدودیت زمانی و ثبت کامل رویدادها نیز از قابلیت‌های کلیدی IAM است.

راهکار نشانه (Neshane) برای احراز هویت FIDO SSH سازمانی

نشانه، محصول شرکت رهسا و ارائه‌شده از طریق neshane.co، یک پلتفرم جامع مدیریت هویت و دسترسی است که احراز هویت بدون رمز عبور مبتنی بر FIDO را در هسته خود جای داده است. این راهکار با ارائه ابزارهای متنوع احراز هویت و قابلیت‌های مدیریت متمرکز، پیاده‌سازی FIDO SSH در مقیاس سازمانی را عملی و قابل مدیریت می‌سازد.

قابلیت‌های نشانه در ایمن‌سازی دسترسی سرور

نشانه امکاناتی را فراهم می‌کند که فراتر از پیکربندی ساده FIDO SSH است. مدیریت متمرکز چرخه عمر کلیدهای FIDO (ثبت، توزیع، چرخش و ابطال) از طریق یک داشبورد واحد انجام می‌شود. یکپارچه‌سازی با SSO (Single Sign-On) سازمانی به مدیران امکان می‌دهد تا با یک فرآیند احراز هویت واحد به تمام سرویس‌ها دسترسی داشته باشند. پشتیبانی از توکن‌های FIDO، اپلیکیشن نشانه موبایل و کارت‌های RFID/NFC انعطاف‌پذیری لازم برای سناریوهای مختلف سازمانی را تأمین می‌کند. سامانه نشانه همچنین از احراز هویت چندعاملی بدون گذرواژه پشتیبانی می‌کند که امن‌ترین شیوه احراز هویت شناخته‌شده است.

یکپارچه‌سازی نشانه با زیرساخت SSH موجود

یکی از مزایای کلیدی نشانه، قابلیت یکپارچه‌سازی با زیرساخت SSH موجود سازمان بدون نیاز به تغییر بنیادین است. نشانه می‌تواند به‌عنوان SSH Certificate Authority عمل کند و گواهی‌نامه‌های SSH مبتنی بر FIDO صادر نماید. امکان تعریف سیاست‌های دسترسی گرانولار (مثلاً کدام کاربران به کدام سرورها با چه سطح دسترسی‌ای مجازند) در نشانه فراهم است. تمام ورودها و خروج‌ها ثبت و قابل ممیزی هستند و با سامانه‌های SIEM سازمان یکپارچه می‌شوند. این یکپارچه‌سازی به سازمان‌ها اجازه می‌دهد بدون اختلال در عملیات جاری، به‌تدریج به احراز هویت SSH با FIDO مهاجرت کنند.

بهترین شیوه‌های امنیتی برای SSH با FIDO

پیکربندی فنی تنها بخشی از معادله است. رعایت بهترین شیوه‌های امنیتی تضمین می‌کند که سرمایه‌گذاری سازمان در FIDO SSH به حداکثر بازدهی برسد.

سیاست‌های ذخیره‌سازی کلید (Key Storage)

ذخیره‌سازی امن کلیدها حیاتی‌ترین جنبه FIDO SSH است. کلید خصوصی واقعی همیشه باید درون عنصر امن کلید سخت‌افزاری FIDO باقی بماند و هرگز استخراج نشود. فایل‌های Key Handle (برای کلیدهای Non-Resident) باید با مجوزهای محدود روی سیستم کاربر ذخیره شوند. رمزگذاری دیسک (Full Disk Encryption) روی سیستم کاربر از دسترسی غیرمجاز به فایل‌های Handle جلوگیری می‌کند. کلیدهای امنیتی پشتیبان باید در مکان فیزیکی امن و جداگانه‌ای نگهداری شوند. ثبت شماره سریال و اطلاعات هر کلید امنیتی در یک سیستم مدیریت دارایی (Asset Management) نیز توصیه می‌شود.

سیاست‌های چرخش و ابطال کلید

کلیدهای FIDO SSH باید مشمول سیاست‌های چرخش (Rotation) منظم باشند. هرچند کلیدهای FIDO به دلیل ماهیت سخت‌افزاری، نسبت به کلیدهای نرم‌افزاری کمتر در معرض نشت هستند، چرخش دوره‌ای هر ۱۲ تا ۲۴ ماه توصیه می‌شود. ابطال فوری کلید در صورت گم شدن، سرقت یا خروج کارمند باید در کمتر از یک ساعت قابل اجرا باشد. یک سامانه IAM مانند نشانه، ابطال کلید را به فرآیندی ساده و خودکار تبدیل می‌کند.

نظارت و ثبت رویدادهای دسترسی

هر تلاش موفق و ناموفق اتصال SSH باید ثبت و نظارت شود. لاگ‌های SSH Server حاوی اطلاعات ارزشمندی هستند: نوع کلید استفاده‌شده، آدرس IP مبدا، زمان اتصال و نتیجه تلاش. ارسال این لاگ‌ها به یک سامانه SIEM (Security Information and Event Management) و تعریف قوانین هشدار برای رفتارهای مشکوک (مانند تلاش‌های ناموفق مکرر، اتصال از IPهای غیرمعمول یا اتصال در ساعات غیرکاری) از اقدامات ضروری است. ترکیب این نظارت با قابلیت‌های تحلیل رفتار کاربر (UBA)، سطح تشخیص تهدیدات را به‌شدت ارتقا می‌دهد.

مقایسه روش‌های مختلف احراز هویت SSH

برای درک بهتر جایگاه FIDO SSH در میان سایر روش‌های احراز هویت، مقایسه‌ای جامع ارائه می‌شود. احراز هویت مبتنی بر رمز عبور ساده‌ترین روش است اما پایین‌ترین سطح امنیت را ارائه می‌دهد؛ در برابر فیشینگ، Brute Force و سرقت اعتبارنامه آسیب‌پذیر است و برای محیط‌های تولیدی توصیه نمی‌شود.

کلید SSH سنتی (RSA/Ed25519) سطح امنیتی بالاتری دارد و در برابر Brute Force مقاوم است، اما کلید خصوصی به‌صورت فایل روی دیسک ذخیره می‌شود و در صورت نفوذ به سیستم کاربر قابل سرقت است. این روش تأیید حضور فیزیکی ندارد.

احراز هویت مبتنی بر گواهی‌نامه (SSH Certificate) مدیریت متمرکز بهتری فراهم می‌کند و امکان تعیین تاریخ انقضا و محدودیت‌های دسترسی را ارائه می‌دهد، اما همچنان کلید خصوصی نرم‌افزاری است.

احراز هویت SSH با FIDO بالاترین سطح امنیت را ارائه می‌دهد. کلید خصوصی هرگز از سخت‌افزار خارج نمی‌شود، تأیید حضور فیزیکی الزامی است و مقاومت ذاتی در برابر فیشینگ وجود دارد. ترکیب FIDO با SSH Certificate Authority بهترین حالت ممکن از هر دو جهت (امنیت سخت‌افزاری و مدیریت متمرکز) را فراهم می‌سازد.

احراز هویت مبتنی بر Kerberos/GSSAPI برای محیط‌های Enterprise با Active Directory مناسب است اما پیچیدگی بالایی دارد. در نهایت، هر سازمان باید بر اساس سطح حساسیت، تعداد کاربران و زیرساخت موجود، روش مناسب را انتخاب کند. FIDO SSH به‌تنهایی یا در ترکیب با Certificate Authority، امن‌ترین و مدرن‌ترین رویکرد موجود است.

کسب اطلاعات بیشتر

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

📞 ۰۲۱-۹۱۰۹۶۵۵۱

🌐 neshane.co

پرسش‌های متداول

آیا برای استفاده از FIDO SSH حتماً به کلید امنیتی سخت‌افزاری نیاز دارم؟

بله، ماهیت FIDO SSH بر تأیید حضور فیزیکی کاربر از طریق یک دستگاه سخت‌افزاری استوار است. البته این دستگاه لزوماً یک کلید USB نیست؛ برخی پلتفرم‌ها از حسگر اثر انگشت لپ‌تاپ یا TPM سیستم نیز پشتیبانی می‌کنند. اما برای حداکثر امنیت و قابلیت حمل، استفاده از کلید امنیتی اختصاصی FIDO2 (مانند کلیدهای ارائه‌شده توسط نشانه) توصیه می‌شود.

اگر فقط یک کلید ثبت شده باشد، دسترسی SSH قطع خواهد شد و باید از روش‌های جایگزین (مانند کنسول فیزیکی سرور یا کنسول مدیریت ابری) برای بازیابی دسترسی استفاده شود. به همین دلیل ثبت حداقل دو کلید امنیتی (یک کلید اصلی و یک کلید پشتیبان) اکیداً توصیه می‌شود. در محیط‌های سازمانی، سامانه IAM می‌تواند فرآیند بازیابی را مدیریت کند.

پشتیبانی سمت سرور فقط نیاز به OpenSSH نسخه ۸.۲ یا بالاتر دارد. اکثر توزیع‌های مدرن لینوکسی (Ubuntu 20.04+, CentOS 8+, Debian 11+, Fedora 32+) این نسخه را پشتیبانی می‌کنند. برای توزیع‌های قدیمی‌تر، ممکن است نیاز به کامپایل دستی OpenSSH از سورس باشد. مهم آن است که سرور نیازی به نصب libfido2 ندارد؛ این کتابخانه فقط سمت کلاینت لازم است.

بله، از OpenSSH 8.2 به بعد، ssh-agent از کلیدهای FIDO پشتیبانی می‌کند. البته توجه داشته باشید که حتی با SSH Agent، هر بار استفاده از کلید نیاز به لمس فیزیکی کلید امنیتی دارد. SSH Agent فقط نیاز به ارائه مجدد PIN یا رمز عبور کلید را حذف می‌کند، نه نیاز به تأیید حضور فیزیکی.

فرآیند رمزنگاری در FIDO بسیار سریع انجام می‌شود و معمولاً کمتر از چند ده میلی‌ثانیه طول می‌کشد. تنها بخش قابل‌مشاهده برای کاربر، لحظه‌ای است که باید کلید امنیتی را لمس کند یا تأیید بیومتریک انجام دهد. در عمل، کل فرآیند اتصال SSH با FIDO معمولاً کمتر از چند ثانیه طول می‌کشد و تفاوت محسوسی با اتصال SSH سنتی ندارد.

یک کلید اصلی برای استفاده روزمره و یک کلید پشتیبان که در مکان امن نگهداری شود. این کار از قفل شدن دسترسی در صورت گم شدن یا خرابی کلید جلوگیری می‌کند.

بله. بسیاری از سازمان‌ها احراز هویت FIDO را در کنار سیاست‌های امنیتی دیگر استفاده می‌کنند. برای مثال ممکن است دسترسی SSH تنها پس از احراز هویت اولیه در سامانه IAM یا VPN سازمانی امکان‌پذیر باشد. در چنین معماری‌هایی، FIDO به عنوان عامل احراز هویت سخت‌افزاری عمل می‌کند و امنیت کلی زیرساخت را افزایش می‌دهد.

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

جمع‌بندی

با افزایش حملات سایبری و پیچیده‌تر شدن روش‌های نفوذ به زیرساخت‌ها، روش‌های سنتی احراز هویت دیگر پاسخگوی نیازهای امنیتی سازمان‌ها نیستند. استفاده از احراز هویت SSH با FIDO یک تحول مهم در ایمن‌سازی دسترسی به سرورها محسوب می‌شود. این فناوری با استفاده از رمزنگاری کلید عمومی، ذخیره امن کلید خصوصی در سخت‌افزار و الزام حضور فیزیکی کاربر، بسیاری از تهدیدات رایج مانند سرقت کلید، فیشینگ و حملات Brute Force را خنثی می‌کند.

در کنار پیاده‌سازی فنی، سازمان‌ها نیازمند یک رویکرد مدیریتی برای کنترل دسترسی‌ها، مدیریت چرخه عمر کلیدها و نظارت بر رویدادهای امنیتی هستند. اینجاست که یک پلتفرم مدیریت هویت و دسترسی (IAM) نقش کلیدی پیدا می‌کند.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا