احراز هویت FIDO با کلیدهای عبور

مقدمه

استاندارد احراز هویت FIDO (Fast IDentity Online) مکانیزم احراز هویت سریع و ایمن را برای دسترسی کاربران به وب سایت ها و برنامه ها تعریف می کند.

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

رمز عبور یک اعتبار ورود به سیستم FIDO است که به یک منبع (وب سایت یا برنامه) و یک دستگاه فیزیکی گره خورده است. کلیدهای عبور به کاربران این امکان را می دهند که بدون نیاز به وارد کردن نام کاربری، رمز عبور یا ارائه هر عامل احراز هویت اضافی، احراز هویت کنند. هدف این فناوری جایگزینی رمزهای عبور به عنوان مکانیزم احراز هویت اولیه است.

چرا احراز هویت امن مهم است؟

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

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

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

چگونه FIDO امنیت قوی تری ایجاد می کند؟

احراز هویت مبتنی بر FIDO بسیاری از مشکلات ناشی از احراز هویت مبتنی بر رمز عبور، و از احراز هویت که از مراحل دوم سنتی استفاده می‌کند، حذف می‌کند. به خصوص:

  • احراز هویت FIDO از رمزنگاری کلید عمومی استفاده می کند.
  • FIDO کمک می کند تا اطمینان حاصل شود که اعتبارنامه ها با طرف های مخرب یا سایر طرف هایی که مالک اعتبار نیستند به اشتراک گذاشته نمی شود.

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

در FIDO، کاربر مسئولیتی در قبال تأیید اینکه یک وب سایت یا برنامه واقعاً همان کسی است که می گوید نیست. علاوه بر این، کاربر مسئولیتی در قبال اطمینان از عدم استفاده از اعتبارنامه ها در مکان های اشتباه ندارد. FIDO هر اعتبار را به یک منبع خاص متصل می کند، به این معنی که دستگاه (نه انسان) مسئول شناسایی صحیح وب سایت یا برنامه است.

به عنوان مثال، فرض کنید کاربر در حال تلاش برای ورود به example.com است. اگر کاربر اعتبار متعلق به example.com را در phishing-example.com درخواست کند، احراز هویت درخواست را رد می کند و در نتیجه از کاربر محافظت می کند. فرآیند احراز هویت ، دریافت تأییدیه برای سایر منابع را برای وب‌سایت‌ها یا برنامه‌های فیشینگ بسیار دشوار می‌کند.

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

نسخه ی نمایشی

کلیدهای عبور چیست؟

رمز عبور یک اعتبار دیجیتالی است که به استانداردهای FIDO و W3C Web Authentication (WebAuthn) پایبند است. مشابه رمز عبور، وب‌سایت‌ها و برنامه‌ها می‌توانند از کاربر درخواست کنند که یک رمز عبور برای دسترسی به حساب خود ایجاد کند.

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

وقتی کاربر برای ورود به وب‌سایت یا برنامه بازمی‌گردد، ممکن است مراحل زیر را انجام دهد:

  1. به برنامه بروید.
  2. روی Sign in کلیک کنید.
  3. رمز عبور آنها را انتخاب کنید.
  4. قفل دستگاه را باز کنید تا ورود کامل شود.

احراز هویت با استفاده از کلید خصوصی یک امضا تولید می کند. این امضا برای تأیید اعتبار ورود بین مبدا و تأیید کننده، با استفاده از کلید عمومی و بدون فاش کردن کلید خصوصی استفاده می شود.

کاربر می تواند بدون در نظر گرفتن جایی که رمز عبور در کجا ذخیره شده است، با کمک یک رمز عبور وارد سرویس ها در هر دستگاهی شود. به عنوان مثال، یک رمز عبور ذخیره شده در تلفن همراه می تواند برای ورود به یک وب سایت در یک لپ تاپ جداگانه استفاده شود.

کلیدهای عبور چگونه کار می کنند؟

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

در حالی که کلیدهای عبور به سیستم عامل ها متصل هستند، کاربر می تواند هنگام ورود به لپ تاپ از کلیدهای عبور تلفن خود استفاده کند. از آنجایی که کلیدهای عبور با استانداردهای FIDO و W3C ساخته شده‌اند، همه مرورگرها می‌توانند از آن استفاده کنند. به عنوان مثال، یک کاربر از site.example در Chromebook خود بازدید می کند. این کاربر قبلاً در دستگاه iOS خود به site.example وارد شده است. از کاربر خواسته می شود هویت خود را در دستگاه iOS تأیید کند. به طور معمول، site.example یک کلید عبور جدید برای Chromebook کاربر ایجاد می کند تا برای ورود به سیستم در آینده، تلفن دیگر مورد نیاز نباشد.

کلیدهای عبور رمزگذاری شده سرتاسر هستند، به این معنی که حتی اگر گوگل مسئول همگام سازی آن ها با دستگاه های اندرویدی مختلف است، گوگل نمی تواند رمز عبور را بخواند یا آن داده ها را بداند.

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

نمایشی از اینکه پنجره احراز هویت ممکن است شبیه آن باشد.

برای پیاده سازی کلیدهای عبور در یک وب سایت یا برنامه، مهم است که با موارد زیر آشنا شوید:

  • Authenticator ها ابزارهای فیزیکی و متعلق به کاربر هستند که کلیدهای عبور کاربر را نگه می دارند و می توانند کاربر را شناسایی کنند.
  • طرف متکی وب سایت یا برنامه شما است که از یک برنامه کاربردی front-end و سرور back-end تشکیل شده است.
    • برنامه front-end API ها را فراخوانی می کند تا با احراز هویت کننده تعامل داشته باشند و فرآیند احراز هویت را آغاز کنند.
    • سرور back-end اشیاء رمزنگاری تولید شده توسط احراز هویت را بازیابی می کند و آنها را تأیید می کند.

به عنوان مثال، فرض کنید کاربری می خواهد یک جفت کفش از فروشگاهی در shoes.example (طرف متکی) خریداری کند. کاربر قبلاً با استفاده از تلفن Android خود با حسگر بیومتریک برای یک حساب در shoes.example ثبت نام کرده است. کاربر با باز کردن قفل دستگاه خود وارد shoes.example در دستگاه Android خود می شود. سپس shoes.example اعتبارنامه ورود به سیستم امضا شده رمزنگاری شده کاربر را در برابر کلید عمومی شناخته شده برای آن کاربر تأیید می کند تا هویت کاربر دقیق باشد.

احراز هویت

Authenticators دستگاه‌های سازگار با FIDO هستند که برای تأیید هویت کاربر استفاده می‌شوند. این شامل دستگاه‌های با هدف خاص (کلیدهای امنیتی FIDO) و همچنین تلفن‌های همراه و سایر رایانه‌هایی است که شرایط احراز هویت را برآورده می‌کنند. احراز هویت عملیات رمزنگاری شرح داده شده در استانداردهای FIDO و WebAuthn را انجام می دهند.

دستگاه دارای دو نقش برای ثبت و احراز هویت است:

  • هنگامی که کاربر در یک طرف متکی ثبت نام می کند، دستگاه یک جفت کلید عمومی-خصوصی منحصر به فرد تولید می کند. این شامل تلفن ها و رایانه های کاربر می شود.
  • هنگامی که کاربر در آینده وارد شخص متکی می شود، دستگاه با استفاده از کلید خصوصی امضایی تولید می کند.

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

دستگاه های سازگار با FIDO

رایج ترین احراز هویت عبارتند از:

  • احراز هویت پلتفرم : اینها در گوشی های هوشمند و رایانه ها تعبیه شده اند. تصدیق‌کنندگان پلتفرم از یک حسگر بیومتریک (مانند حسگر اثر انگشت یا دوربین با تشخیص چهره)، یک پین یا الگو استفاده می‌کنند. از آنجا که تعامل احراز هویت با باز کردن قفل دستگاه تکمیل می شود، این در یک مرحله ثابت می کند که هم کاربر دستگاه را در اختیار دارد و هم می تواند هویت خود را با بیومتریک منحصر به فرد خود تأیید کند.
  • کلیدهای امنیتی : اینها معمولاً دستگاه‌های USB هستند که دکمه‌ای را برای نشان دادن احراز هویت فشار می‌دهند. هنگامی که با رمز عبور استفاده می شود، کلیدهای امنیتی می توانند یک فاکتور مالکیت برای احراز هویت دو مرحله ای ایجاد کنند. رایج‌ترین نمونه از این، کلید امنیتی Titan یا YubiKey است.

جلویی

برنامه‌ها از APIهای سمت سرویس گیرنده، مانند WebAuthn و FIDO2 برای Android ، برای ایجاد و تأیید اعتبار کاربر با احراز هویت استفاده می‌کنند.

برنامه یک چالش رمزنگاری ایجاد شده توسط سرور back-end را به احراز هویت منتقل می کند. برنامه پاسخ احراز هویت را برای تأیید اعتبار به سرور می فرستد، که بر اساس آن اعتبارسنجی اقدام می کند.

پایان

سرور اطلاعات کاربری و اطلاعات حساب کاربری کلید عمومی را ذخیره می کند.

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

سوالات متداول (سؤالات متداول)

چه کسی از کلیدهای عبور پشتیبانی می کند؟

از آنجایی که کلیدهای عبور مبتنی بر استانداردهای FIDO هستند، روی اندروید و کروم، همراه با بسیاری از پلتفرم ها و مرورگرهای محبوب دیگر مانند Microsoft Windows، Microsoft Edge، MacOS، iOS و Safari کار می کنند.

برای تأیید وضعیت فعلی در دسترس بودن، به اسناد ارائه شده توسط این پلتفرم ها مراجعه کنید.

در اندروید، هدف ما این است که تا پایان سال 2022 پشتیبانی از کلید عبور در دسترس توسعه دهندگان باشد.

اگر کاربر دستگاه خود را گم کند چه اتفاقی می افتد؟

کلیدهای عبور ایجاد شده در Android با دستگاه‌های Android که به همان حساب Google وارد شده‌اند پشتیبان‌گیری و همگام‌سازی می‌شوند، به همان روشی که رمزهای عبور در مدیر رمز عبور پشتیبان‌گیری می‌شوند.

این بدان معناست که کلیدهای عبور کاربران هنگام تعویض دستگاه خود با آنها همراه می شود. برای ورود به برنامه ها در یک گوشی جدید، تنها کاری که کاربران باید انجام دهند این است که قفل گوشی خود را باز کنند.

آیا کاربر می‌تواند از کلید عبور تلفن خود برای ورود به دستگاه دوست خود استفاده کند؟

آره. کاربران می توانند برای ورود به سیستم، یک "پیوند یک بار" بین تلفن خود و دستگاه شخص دیگری ایجاد کنند.

مراحل بعدی

یک کد آزمایشگاهی بگیرید:

بیشتر بدانید در مورد:

دریافت به روز رسانی: