احراز هویت مبتنی بر توکن

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

روش‌های سنتی احراز هویت

بررسی هویت واقعی طرف مقابل، عملی دشوار است که چند فاکتور اساسی دارد: چیزی که فرد می‌داند (رمز عبور)، چیزی که فرد دارد (کارت هوشمند)، چیزی که فرد می‌باشد (اثرانگشت،  عنبیه چشم). به‌عبارت بهتر احراز هویت، برای پاسخگویی کاربر به اعمالی است که بر روی سیستم انجام می‌دهد. روش‌های سنتی برای اطمینان از دسترسی (افراد مناسب به چیزهای مناسب در زمان مناسب) همیشه مؤثر نبودند. برای مثال گذرواژه‌ها شامل مشکلات زیر بودند:

    • کاربر: هر فرد ترکیبی از حروف ، اعداد و نمادها را ارائه می‌دهد.
    • حافظه: فرد باید آن ترکیب منحصربه‌فرد را در ذهن خود حفظ کند.
    • تکرار: هر زمان که کاربر نیاز به دسترسی به چیزی دارد، رمز عبور باید وارد شود.

کاربران نمی‌توانند همه رمزهای عبور خود را به خاطر بسپارند، بنابراین از ترفندهای نوشتن رمزها، تکرار و اعمال تغییرات جزئی استفاده می‌کنند برای همین رمزهای عبور بسیار آسیب‌پذیر می‌شوند. برای پوشش چالش‌های سنتی احراز هویت روش‌های نوینی نظیر احراز هویت مبتنی بر توکن (Token-Based Authentication) مطرح می‌شود که به کاربران اجازه می‌دهد هویت خود را تائید کرده و در عوض یک رمز دسترسی منحصربه‌فرد دریافت کنند.

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

بیشتر بخوانید: تفاوت احراز هویت و مجوزدهی

احراز هویت

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

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

احراز هویت چندعاملی

احراز هویت چندعاملی

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

احراز هویت مبتنی بر توکن

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

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

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

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

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

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

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

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

برای حل این چالش، بسیاری از توسعه‌دهندگان هنگام کار بر روی توکن برای برنامه‌های خود به JSON Web Tokens (JWT) روی می‌آورند. توکن JSON (JWT) یک استاندارد باز است. محصول نهایی امکان برقراری ارتباط امن و مطمئن بین دو طرف را فراهم می‌آورد. داده‌ها با امضای دیجیتالی تائید و ارسال می‌شوند و رمزگذاری داده‌ها را ایمن نگه می‌دارد.

احراز هویت چندعاملی

مراحل شماتیک احراز هویت مبتنی بر توکن

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

سخن پایانی

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

در سیستم‌های کامپیوتری، توکن یک شی یا ساختار است که برای انتقال داده‌ها بین برنامه‌ها استفاده می‌شود. توکن‌های احراز هویت نوعی توکن هستند که برای انتقال داده‌های مربوط به احراز هویت بین مشتری و سرور یا بین برنامه‌ها استفاده می‌شوند. به‌عنوان‌مثال، راه‌حل‌های هویت متحد مانند SAML و OpenID Connect برای ردوبدل کردن اطلاعات مربوط به احراز هویت بین طرفین به توکن‌های احراز هویت متکی هستند. JSON Web Tokens (JWT) نوع دیگری از توکن است که برای تبادل داده‌های احراز هویت در پروتکل‌های احراز هویت اختصاصی استفاده می‌شود. به‌طورکلی توکن‌های احراز هویت دارای سه قسمت (یک سرصفحه، یک بدنه و یک امضاء) هستند.

نویسنده: محمدصالح میثمی

token-based-authentication

منابع

[1] Okta Group, “https://www.okta.com,” OKTA, 10 August 2012. [درون خطي]. Available: https://www.okta.com/identity-101/what-is-token-based-authentication/. [دستيابی در 10 august 2012].

[2] Obinna Ethelbert, “A JSON Token-Based Authentication and Access Management Schema for Cloud SaaS Applications,” Institute of Informatics, جلد 1, شماره User Authentication, pp. 1-6, 2019.

[3] Wojciech Niewolski, “Token-Based Authentication Framework for 5G MEC Mobile Networks,” MDPI, جلد 1, شماره security architecture, pp. 1-20, 2020.

[4] Yu-Sheng Yang, “TTAS: Trusted Token Authentication Service of Securing SCADA Network in Energy Management System for Industrial Internet of Things,” MDPI, جلد 1, شماره authentication, pp. 1-22, 2020.

[5] Sandeep Jayashankar, “Demystifying Tokens for Securing Enterprise APIs,” ISSA, جلد 1, شماره Security, pp. 1-7, 2020.