
آشنایی با FIDO2 و کلیدهای دسترسی و راه اندازی با رزبری پای پیکو
FIDO2 یک استاندارد احراز هویت است که توسط الفاینس ادلیانس (FIDO Alliance) با استفاده از اصل رمزنگاری کلید عمومی توسعه یافته است. هدف از FIDO2 جایگزینی استفاده از رمزهای عبور برای احراز هویت است و خطر سرقت رمز عبور از طریق فیشینگ را محدود میکند. برای دستیابی به این هدف، FIDO2 از Passkeys (کلیدهای دسترسی) استفاده میکند که اعتبارنامههای دیجیتالی هستند و میتوانند روی کلیدهای امنیتی فیزیکی ذخیره شوند.

FIDO2 بر اساس پروتکل ارتباطی از مرورگر به دستگاه احراز هویت (Client To Authenticator Protocol – CTAP) و رابط برنامه کاربردی وب احراز هویت (Web Authentication API – WebAuthN) استوار است که به سرورها اجازه میدهد تا با استفاده از رمزنگاری کلید عمومی، کاربران را به جای رمز عبور ثبتنام و احراز هویت کنند.

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

هر چیزی که با کلید عمومی رمزگذاری شود، تنها با کلید خصوصی متناظر آن قابل رمزگشایی است و بالعکس. این جفت کلید برای تضمین محرمانگی دادهها (رمزگذاری) و اطمینان از اصالت آنها (امضای دیجیتال) استفاده میشود.
استفاده از رمزنگاری کلید عمومی برای رمزگذاری دادهها
هر چیزی که با کلید عمومی رمزگذاری شود، تنها با کلید خصوصی متناظر آن قابل رمزگشایی است و بالعکس. این جفت کلید برای تضمین محرمانگی دادهها (رمزگذاری) و اطمینان از اصالت آنها (امضای دیجیتال) استفاده میشود.
استفاده از رمزنگاری کلید عمومی برای رمزگذاری دادهها
در مثال زیر، باب میخواهد یک سند محرمانه را برای الیس ارسال کند و تضمین کند که هیچ کس غیر از الیس نمیتواند آن را رمزگشایی کند. سپس باب سند را با استفاده از کلید عمومی الیس رمزگذاری میکند (این کلید عمومی است و همه میتوانند از آن اطلاع داشته باشند، به عنوان مثال میتواند در یک فهرست توزیع شود). تنها الیس میتواند با استفاده از کلید خصوصی خود سند را رمزگشایی کند. الیس برای انجام این کار نیازی به دانستن کلید عمومی باب ندارد.

استفاده از رمزنگاری کلید عمومی برای امضای دیجیتال
در مثال زیر، الیس میخواهد مطمئن شود که سند دریافتی توسط باب ارسال شده و در طول انتقال تغییر نکرده است. برای این کار، باب سند خود را امضا میکند و سند را همراه با امضای دیجیتالی خود به الیس ارسال میکند. این امضا معادل رمزگذاری یک هش رمزنگاری از سند با کلید خصوصی باب است.

وقتی الیس پیام را دریافت میکند، امضا را با استفاده از کلید عمومی باب رمزگشایی میکند. بنابراین، هش رمزنگاری سند اصلی را به دست میآورد. او فقط باید بررسی کند که آیا این هش رمزنگاری نتیجهای یکسان با هش سند دریافتی دارد یا خیر. اگر نتایج یکسان باشند، این نشان میدهد که فرستنده واقعاً باب بوده و سند دریافت شده دقیقاً همان سند اصلی است.
امضای دیجیتال، اطمینان از هویت و یکپارچگی دادهها را تضمین میکند.
ثبت کلید FIDO2
اولین مرحله، ثبت (یا فعالسازی) کلید دسترسی (Passkey) با سرویسی است که میخواهید برای احراز هویت از آن استفاده کنید. در طول این فرایند ثبتنام، کلید امنیتی یک جفت کلید عمومی/خصوصی منحصر به فرد برای آن سرویس و حساب کاربری ایجاد میکند. کلید خصوصی روی کلید امنیتی ذخیره میشود و هرگز نباید از آن خارج شود. کلید عمومی به سرویس آنلاین ارسال میشود و با حساب کاربری کاربر مرتبط میشود.

ورود با کلید FIDO2
پس از ثبت کلید امنیتی در سرویس، کاربر میتواند با استفاده از کلید دسترسی (Passkey) به آن وارد شود. سرویس یک چالش را به کلید امنیتی ارسال میکند. کلید امنیتی این چالش را با استفاده از کلید خصوصی خود امضا کرده و این چالش امضا شده را به سرویس بازمیگرداند. سپس سرویس میتواند این امضا را با استفاده از کلید عمومی مرتبط با حساب کاربری کاربر در طول ثبتنام تأیید کند. اگر تأیید موفقیتآمیز باشد، کاربر وارد سرویس میشود.

اصل عملکرد کلیدهای امنیتی USB معمولاً این است که کلید را در پورت USB کامپیوتر قرار داده و برای تأیید اتصال به سرویس، کلید را فشار می دهید. در واقع، استاندارد FIDO نیازمند یک حرکت از طرف کاربر برای تأیید حضور او در طول احراز هویت است.


احراز هویت قوی در مقابل احراز هویت چند عاملی؟
مهم است بین احراز هویت قوی و احراز هویت چند عاملی تمایز قائل شویم. احراز هویت قوی، احراز هویتی است که بر اساس یک پروتکل رمزنگاری استوار است و در برابر حملات مقاوم است. احراز هویت چند عاملی، احراز هویتی است که بر اساس حداقل دو عامل احراز هویت انجام میشود.
FIDO2 بر اساس یک پروتکل رمزنگاری قوی استوار است و امکان استفاده از چندین عامل احراز هویت را فراهم میکند. داشتن کلید امنیتی یک عامل دارایی (possession factor) است و اضافه کردن یک کد PIN یک عامل دانش (knowledge factor) است. FIDO2 یک استاندارد احراز هویت قوی و چند عاملی است.
به عنوان یک عامل احراز هویت اضافی استفاده میشود
برخی از وبسایتها اجازه نمیدهند فقط با کلید FIDO2 وارد شوند، اما به شما امکان میدهند آن را به عنوان یک عامل احراز هویت اضافی به همراه رمز عبور استفاده کنید.
به عنوان مثال، تا به امروز سایت فیسبوک هنوز استفاده از رمز عبور را الزامی میکند و کلید FIDO2 فقط به عنوان یک عامل احراز هویت اضافی عمل میکند.
تست کلید امنیتی خود
اگر کلید امنیتی FIDO2 دارید، میتوانید اکنون آن را با استفاده از وبسایت https://www.token2.com/tools/fido2-demo آزمایش کنید.
کلید امنیتی را در پورت USB قرار دهید.
روی Register (ثبتنام) کلیک کنید.
کد PIN کلید امنیتی را وارد کنید (اگر گزینه را انتخاب کردهاید).
دکمه روی کلید امنیتی رو فشار دهید.

یک کلید امنیتی FIDO 2 روی یک راسپری پای پیکو؟
پروژه FIDO راسپری پای پیکو اثر پول هنارجوس امکان میدهد که شما راسپری پای پیکو خود را به یک کلید دسترسی FIDO تبدیل کنید.

آخرین نسخه فریمور درخور مربوط به سختافزار خود (به عنوان مثال pico_fido_pico-5.12.uf2 برای راسپری پای پیکو) را از بخش Releases دانلود کنید.
برای نصب این فریمور روی پیکو، باید آن را در حالت Bootloader بوت کنید. برای این کار، دکمه BOOTSEL را نگه داشته و پیکو را از طریق کابل USB به کامپیوتر خود وصل کنید. تا زمانی که پیکو به درستی به کامپیوتر شما متصل شود، دکمه را رها نکنید. سپس پیکو به عنوان یک حافظه ذخیرهسازی USB با نام RPI-RP2 ظاهر میشود که شامل فایلهای INDEX.HTML و INFO_U2F.TXT است. کافی است فایل UF2 را روی این حافظه ذخیرهسازی بکشید و رها کنید.

هنگامی که دوباره بوت میشود، LED پیکو شروع به چشمک زدن میکند و اکنون مانند یک کلید FIDO2 عمل میکند. دکمه BOOTSEL صرفاً برای فشردن زمانی که مرورگر از شما میخواهد “کلید را لمس کنید” در طول فرایند ثبتنام یا ورود استفاده میشود.
نکته مهم در مورد امنیت کلید FIDO2 روی راسپری پای پیکو:
هشدار، استفاده از پیکو به عنوان یک کلید امنیتی FIDO2 خطرناک است. در واقع، کلید خصوصی به طور ایمن در حافظه فلش پیکو ذخیره نمیشود زیرا حافظه فلش آن محافظت نشده است. بنابراین، امکان کپی کلید FIDO2 یا استخراج اطلاعات (کد PIN و کلیدهای خصوصی) از حافظه فلش آن وجود دارد.
به همین دلیل، استفاده از یک کلید امنیتی (مانند Winkeo-C FIDO2 به عنوان مثال) که دارای یک جزء امنیتی برای محافظت از اطلاعات ذخیره شده در کلید است، به شدت توصیه میشود.
نتیجهگیری:
استفاده از کلید FIDO2 هم احراز هویت به خدمات آنلاین را ساده میکند و هم سطح امنیت را بهبود میبخشد. در واقع، FIDO 2 یک احراز هویت چند عاملی قوی است و به طور موثری از سرقت رمز عبور جلوگیری میکند.
امیدوارم این مقاله برای شما جالب بوده باشد.






