پروتکل احراز هویت Fido

+ زمان مطالعه: ۷ دقیقه

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

FIDO چیست؟
FIDO مخفف عبارت “Fast Identity Online” است. انجمن FIDO یک گروه غیرانتفاعی است که در سال ۲۰۱۲ با هدف حذف رمزهای عبور از اینترنت با استفاده از پروتکل‌های رمزنگاری تاسیس شد.

پروتکل های FIDO موجب پیشرفت های امنیتی متعددی شده اند، از جمله:

  • استفاده از رمزنگاری کلید عمومی برای احراز هویت کاربر در یک وب سایت، از طریق استفاده از امضاهای دیجیتال
  • استفاده از سخت‌افزارهای احراز هویت کننده برای تولید و ذخیره کلیدهای رمزنگاری
  • ایجاد کلیدهای رمزنگاری منحصر به فرد برای هر وب سایت
  • استفاده از بیومتریک (در صورت موجود بودن) برای تأیید اعتبار کاربر و عدم انتقال الگوی بیومتریک به وبسایت ها، برای تأیید احراز هویت به وب سایت ها
  • فعال کردن احراز هویت برای وب سایت های دارای چندین احراز هویت کننده

مزابای این پروتکل:

  • حذف رازهای مشترک (رمزهای عبور ، OTP و غیره)
  • کاهش حملات فیشینگ برای فاش کردن رازها
  • حفظ حریم خصوصی کاربر درسراسر سایت ها
  • افزایش انعطاف پذیری و امنیت برای احراز هویت

FIDO چگونه کار می کند؟
در FIDO دو فرایند اصلی وجود دارد. اول یک بار ثبت نام به ازای هر سایت که کاربر با یک احراز هویت کننده یک کلید جدید را در یک وب سایت ثبت می کند. دوم احراز هویت که در هر بار تایید اعتبار کاربر برای دسترسی به سایت انجام می شود.

ثبت نام به طور ساده شامل مراحل زیر است:

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

پس از یکبار ثبت نام ، احراز هویت با کلید FIDO شامل مراحل زیر است:

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

پروتکل های FIDO
FIDO شامل سه پروتکل برای احراز هویت قوی برنامه های وب است:

(Universal 2nd Factor(U2F)، Universal Authentication Framework (UAF و WebAuthn یا FIDO2

پروتکل U2F :
پروتکلی ساده است که به عنوان عامل دوم احراز هویت علاوه بر اولین فاکتور (معمولا گذرواژه) استفاده می شود.

پروتکل UAF :
یک پروتکل بدون گذرواژه (password-less) است که تنها برای برنامه های کاربردی دستگاه های موبایل استفاده می شود.

FIDO 2.0 و (W3C Web Authentication (WebAuthn :
دارای یک API جاوا اسکریپتی است که مزایای مشابه U2F و UAF را فراهم می کند ، اما می تواند به طور یکنواخت در تمام مرورگرهای سازگار با W3C پیاده سازی شود. این پروتکل هنوز کاملاً استاندارد نشده است ، اما در حال انجام است.

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

با وجود اختلافات قابل درک، اشتراکات زیادی بین این دو پروتکل وجود دارد. هر دو پروتکل U2F و UAF دارای قابلیت های زیر هستند:

  • استفاده از جفت کلیدهای عمومی و خصوصی مبتنی بر رمزنگاری منحنی بیضوی (ECC) و الگوریتم امضای دیجیتال منحنی بیضی شکل (ECDSA) برای امضای دیجیتال.
  • استفاده از دستگاه‌های سخت‌افزاری سمت کلاینت برای تولید و محافظت از کلیدهای خصوصی.
  • رعایت الزامات دستگاه های سخت‌افزاری برای اطمینان از اینکه یک انسان در طرف کلاینت حضور داشته باشد تا تبادل پیغام های پروتکلی بین کلاینت و سرور را تایید کند.
  • نیاز به یک بار ثبت نام ، ایجاد یک جفت کلید منحصر به فرد برای برنامه وب مبدا و ارسال کلید عمومی به FIDO Server (یکپارچه با برنامه وب)
  • استفاده از گواهینامه های تصدیق (گواهینامه های دیجیتال X.509) برای امضای دیجیتال کلیدهای عمومی کاربران و فراداده های مربوط به منشا آنها در هنگام ثبت نام.
  • استفاده از کلید ثبت شده برای احراز هویت در سایت مورد نظر از طریق امضای دیجیتال نانس های ارائه شده با هدف اثبات مالکیت کلید خصوصی مربوط به اعتبارنامه FIDO.
  • عدم افشای کلید خصوصی احراز هویت کننده به صورت رمز نشده در طول فرایند تبادل پیام با برنامه وب.
  • ایجاد و استفاده از جفت کلید منحصر به فرد به ازای هر دامنه با حفظ حریم خصوصی کاربر که باعث می شود برنامه‌های وب به سایر کلیدهای موجود در احراز هویت کننده دسترسی نداشته باشند.

تفاوت‌های U2F و UAF :
UAF به برنامه وب اجازه می‌دهد تا یک سیاست را در این پروتکل مشخص کند و قبل از ادامه ثبت نام یا تایید هویت، الزامات مشخص‌شده را برآورده کند. در غیر اینصورت فرایند را رد می کند. این سیاست می‌تواند موارد زیر را مشخص کند:

  • تعداد دفعات احراز هویت محلی که باید قبل از تولید یا آزاد شدن کلیدها اجرا شود.
  • موقعیت جغرافیایی کاربر با استفاده از GPS.
  • U2F چنین قابلیت هایی را در پروتکل خود تعریف نکرده است.

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

WebAuthn
اعضای انجمن FIDO ، با درک اینکه منطقاً بازار با پروتکلی که ویژگی های U2F و UAF را داشته باشد ، بهتر سر و سامان می یابد، تصمیم به ایجاد پروتکل جدیدی گرفتند.

علاوه بر تمام قابلیت های پروتکل های U2F و UAF ، قابلیت های WebAuthn شامل موارد زیر است:

  • استفاده از رمزنگاری RSA برای امضای دیجیتال.
  • استفاده از ماژول های مقاوم در برابر دستکاری (TPM) و Secure Element های تعبیه شده در دستگاه ها و تلفن های هوشمند جهت تولید و حفاظت از کلیدهای خصوصی.
  • استفاده از دستگاه های احراز هویت کننده خارجی مانند کارت های هوشمند و توکن های USB با قابلیت انتقال داده بر بستر BLE و HID.
    Web Authentication API که به عنوان WebAuthn شناخته می شود، استانداردی است که توسط کنسرسیوم شبکه جهانی وب (W3C) و اتحاد FIDO و با مشارکت کمپانی هایی نظیر گوگل، موزیلا، مایکروسافت، یوبیکو و … نوشته شده است. این API به سرورها این امکان را می دهد که ثبت نام یا احراز هویت کاربران را به جای گذرواژه از طریق رمزنگاری کلید عمومی انجام دهد.

وقتی صحبت از امنیت می شود بسیاری از افراد تصور می کنند که باید امنیت را فدای تجربه کاربری کرد و یا برعکس. در حالی که، کلید به حداکثر رساندن هر دو متغیر این است که تعداد دفعات درخواست کاربر را برای تأیید اعتبار کاهش دهیم و به کاربر اجازه دهیم با ماژول هایی که اصطکاک کمی ایجاد می کنند ، احراز هویت کند. WebAuthn تضمین می کند که به عنوان فاکتور اصلی احراز هویت باعث افزایش امنیت و تجربه کاربری و کاهش اصطکاک شود.

WebAuthn به کاربران اجازه اعتبارسنجی با استفاده از یکی از دو گزینه زیر را می‌دهد:

احراز هویت کننده رومینگ:
که در واقع دستگاه های قابل جابجایی و کراس پلتفرم مانند Yubikey هستند که می تواند در چندین دستگاه استفاده شود. برای احراز هویت با احراز هویت رومینگ ، شما به سادگی آن را به دستگاه متصل می کنید (از طریق USB ، NFC یا بلوتوث) ، حضور خود را اثبات کرده (مثلاً لمس کردن آن) و یک فاکتور احراز هویت اضافی مانند پین یا تشخیص اثر انگشت را ارائه می دهید.

احراز هویت کننده پلتفرم:
این گزینه شامل تاچ بار مک بوک، Windows Hello، iOS Touch/FaceId و اسکن اثرانگشت و تشخیص چهره اندروید است. این ابزارها فقط در همان دستگاه کار می کنند.
هنگام اجرای احراز هویت چند عاملی ما کاربر را از طریق چیزی که می داند (مانند گذرواژه)، چیزی که دارد (مانند یک کلید امنیتی) و چیزی که هست (مانند اثرانگشت) به چالش می کشیم.
توجه داشته باشید که استفاده از یک پین به همراه یک احراز هویت کننده رومینگ دو فاکتور را در یکجا ترکیب می کند (کلید را دارید و پین را می دانید). همچنین احراز هویت کننده پلتفرم نیز این کار را انجام می دهد (شما دستگاه را دارید و شخصی هستید که دارای اثر انگشت / صورت هستید یا رمز عبور را می دانید).

استفاده از کلیدهای امنیتی در فرایند احراز هویت
استفاده از یک کلید امنیتی به شما این امکان را می دهد تا کاربران را با قوی ترین فاکتور احراز هویت ممکن احراز هویت کنید. این مهم به شما کمک می کند که چندین مشکل را به صورت همزمان حل کنید:

  • محافظت از داده های حساس و حساب های کارمندان
  • دسترسی ایمن از خارج از شبکه شرکت
  • امکان احراز هویت کارمندان در صورت استفاده از رایانه های مشترک
  • فعال کردن احراز هویت چندعاملی در سناریوهایی که کاربران به تلفن همراه خود دسترسی ندارند.

همچنین در مقایسه با سناریوی استفاده از گوشی های هوشمند به تنهایی، چندین مزیت در در فرایند احراز هویت چند عاملی ارائه می دهد:

  • محافظت در برابر حملات شخص میانی (man-in-the-middle) و فیشینگ
  • حفظ حریم خصوصی کاربر به دلیل عدم نیاز به دستگاه شخصی
  • ورود به سیستم در یک مرحله بدون نیاز به استفاده از تلفن همراه برای تکمیل چالش احراز هویت
  • عدم وابستگی به باتری و سیگنال
  • قطعات متحرک ندارند، بنابراین عملا تخریب نشدنی است.
  • به کاربران این امکان را می دهد که چندین کلید را ثبت کنند بنابراین اختلال در کسب و کار و احتمال قفل شدن حساب را به حداقل می رساند.

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

نشانی ایمیل شما منتشر نخواهد شد.