توکن امنیتی و لزوم استفاده از آن (Security Token)
توکن امنیتی واژه ای است که در سالهای اخیر به فرهنگ لغات کامپیوتری اضافه شده است. اگر واژه Token را در دیکشنری های قدیمی جستجو کنیم به معانی : نشانه، علامت، علامت مشخصه و … بر می خوریم. در صورتیکه امروزه به معنی سخت افزاری است که از آن برای احراز هویت در محیط های مجازی استفاده می شود. در این متن سعی بر آن است که یک بررسی کلی بر شناخت آن و همچنین بر لزوم استفاده از آن صورت گیرد. قبل از ورود به بحث توکن لازم است مختصری در مورد سیستم احراز هویت و راهکارهای امنیتی آن ذکر شود. یکی از سیستم های احراز هویت کنونی برای ورود به محیط پست الکترونیکی (e-mail) که شامل نام کاربری و کلمه عبور است را در نظر بگیرید تنها نقطه ای که امنیتِ ورود بر آن استوار است کلمه عبور می باشد؛ رمز عبور ایده ای بسیار ساده و پر کاربرد برای ورود به محیط های شخصی است؛ اما با اندک تأملی بر روی آن می توان به این نتیجه رسید که رمز عبور نمی تواند امنیت را در سطح بالا حفظ کند. مهمترین معایب رمز عبور را می توان در موارد زیر خلاصه کرد:
- یکی از مشکلات رمز عبور این است که کنترل روی آن به راحتی از بین می رود. هنگامی که رمز عبور به یک کاربر داده شد، بررسی اعتبار آن کار راحتی نیست؛ چرا که کاربران رمز عبور خود را خواسته یا ناخواسته در اختیار دیگران قرار می دهند. مثلاً برای جلوگیری از فراموشی آن در جایی یادداشت می کنند، یا آن را در جای نامناسبی نگهداری می کنند.
- بسیاری از رمز های عبور بسیار ساده و قابل حدس زدن هستند.
- رمزهای عبور معمولاً از طریق کانالهای ارتباطی ناامن به سرویس دهنده های راه دور انتقال داده می شود و در این بین به راحتی استراق سمع می شوند. به عنوان مثال هنگامی که کاربری می خواهد به یک سایت Login کند، معمولاً نام کاربری و کلمه عبور بدون دست کاری و رمز نگاری به سمت سرویس دهنده آن وب سایت ارسال می شوند. کانالهای ارتباطی بسیاری بین کاربر و سرویس دهنده قرار دارد و افشای رمز از طریق استراق سمع در هر کدام از آنها کاملاً جدی است.
- معمولاً تشخیص اینکه یک رمز عبور به سرقت رفته یا نه، کاری دشوار بوده و برای کاربر شاید غیر ممکن باشد. همچنین طرف سرویس دهنده هم نمی تواند به راحتی تشخیص دهد فردی که وارد می شود آیا خود فرد معتبر است یا فرد غیر مجاز؟
- در صورت سرقت رفتن رمز عبور دیگر نمی توان به آن اعتماد کرد و باید از ابتدا روند شناسایی فرد واقعی، تغییر رمز و بازیابی اطلاعات کاربر به زمان قبل از سرقت رفتنِ رمز انجام گرفته و سپس رمز جدید را به کاربر اختصاص داد.
تمام مشکلات گفته شده از آنجا ناشی می شود که برای عمل احراز هویت فقط به یک موجودیت رمز عبور اعتماد می شود که این رمز عبور به دلیل ماهیتی که دارد، قابل اعتماد نیست؛ راه حلی که برای جلوگیری از بوجود آمدن این ضعف امنیتی پیشنهاد می شود، استفاده از چند عامل امنیتی به جای یک عامل است. احراز هویت دوعاملی یا چندعاملی را می توان با استفاده از توکن امنیتی به خوبی پیاده سازی کرد.
احراز هویت یا شناسایی دوعاملی (Two Factor Authentication)
احراز هویت دوعاملی همان طور که از نام آن پیداست، برای بررسی مجاز بودن کاربر، از دو عامل استفاده می کند و ایده ی بوجودآمدن آن از آنجا ناشی می شود که هر چه تعداد عوامل شناسایی مجزا بیشتر باشد، عملیات قابل اعتمادتر و در نتیجه دارای خطر کمتر خواهد بود. فهم این مدل شناسایی بسیار ساده است؛ در اینجا سیستم به یک عامل (مثلاً رمز عبور) اکتفا نکرده و از عامل یا فاکتور دوم برای شناسایی فرد نیز استفاده می کند. به عنوان مثال کارت مخصوص خودپردازهای بانکی را در نظر بگیرید: یک مشتری بانک برای انجام عملیات بانکی به یک کارت و یک رمز عبور (PIN ) نیاز دارد. دستگاه خودپرداز به کاربری که فقط یکی از این عوامل را داشته باشد پاسخ نخواهد داد و کار با دستگاه ATM مستلزم داشتن هر دو عامل از طرف کاربر است. حال ممکن است این سوال پیش بیاید که این دو عامل چه موجودیتهایی می توانند باشند؟ برای درک بهتر این عوامل امنیتی می توان آنها را بر اساس نوع آنها دسته بندی کرد:
- موارد یا چیزهایی که کاربر می داند. مثلاً یک راز، رمز عبور، شماره شناسایی شخصی محرمانه و …
- موارد یا چیزهایی که یک کاربر یا شخص به صورت شخصی دارد. مثل پاسپورت، ID-Card ، توکن امنیتی و …
- موارد یا چیزهایی که موجودیت یا شخصیت خصوصی کاربر را تشکیل می دهند. مانند اطلاعات بیومتریک، اثر انگشت و …
با اندکی تفکر بر روی موارد بالا می توان دریافت که هر ترکیب دوتایی از موارد فوق می تواند یک ترکیب کاملاً مناسب برای احراز هویت دوعاملی کاربر در نظر گرفته شود. به عنوان مثال ترکیب یک شماره شناسایی شخصی به همراه یک توکن امنیتی می تواند یک شناسایی دوعاملی نسبتاً مناسب را پیاده سازی کند. شخص با داشتن این دوعامل می تواند وارد محیط شخصی خود شود، اطلاعاتی را بروزرسانی کرده، دستوری را صادر و یا درخواستی را ردکند، بدون اینکه نگران امنیت محیط شخصی خود باشد.
نکته قابل توجه و مهم دیگر این است که معمولاً در محیط های مجازی، ترکیبی از انسان و کامپیوتر اعمال را انجام می دهند. در این گونه موارد به کامپیوتر و نرم افزاری که از طرف یک فرد مأمور به انجام کار مشخصی شده است، Agent گفته می شود. برای شناسایی و احراز هویت Agent ها نیاز به دانستن طرز رفتار آنها نیز می باشد. به این ترتیب که علاوه بر موارد گفته شده می توان برای بررسی درستکار بودن یک Agent ، رفتار آن را نیز بررسی کرد که توضیح در مورد طرز رفتار Agent ها و چگونگی ارزیابی این رفتارها از حوصله این بحث خارج است.استفاده بیش از یک عامل برای شناسایی و احرازهویت گاهی به اشتباه شناسایی قوی (Strong Authentication) نامیده می شود؛ در صورتی که شناسایی قوی به نوع شناسایی ای گفته می شود که در آن یکی از عوامل شناسایی هویت فرد مبتنی بر به چالش کشیدن فرد در قبال پاسخ هایی که می دهد می باشد. این عمل به چالش کشیدن فرد در قبال پاسخهای او که معمولاً چندین مرتبه صورت می گیرد، باعث می شود که این نوع شناسایی، شناسایی قوی نام گیرد.
از مختصر بحثی که در مورد شناسایی دوعاملی گفته شد، نتیجه می شود که این نوع شناسایی راهکاری را ارائه می دهد که طی آن میزان سرقت هویت آن لاین (On Line) افراد و موجودیتها را تا حد بسیار زیادی کاهش می دهد و همچنین خطر حفره های امنیتی سیستم های آن لاین را به شدت کاهش می دهد. در اینجا ذکر این مطلب ضروری است که علی رغم مطالب گفته شده، سیستمهایی که صرفاً مبتنی بر شناسایی دو یا چندعاملی طراحی می شوند هنوز از خطر حمله ی فرد میانی (Man-In-The-Middle)، رنج می برند. برای جلوگیری از بروز چنین خطراتی استفاده از راهکارهای امن کردن کانال ارتباطی امری ضروری به نظر می رسد.
توکن امنیتی (Security Token)
توکن امنیتی که از آن با نامهای توکن سخت افزاری، توکن شناسایی، توکن احرازهویت، توکن USB و توکن رمزنگاری نیز یاد می شود، یک وسیله ی الکترونیکی است که عمل اثبات هویت فرد را به صورت الکترونیکی و از طریق راهکار شناسایی دوعاملی یا چندعاملی انجام می دهد؛ بدون اینکه کاربر وارد چگونکی و پیچیدگی عمل احراز هویت شود. در حقیقت توکن امنیتی یک کلید الکترونیکی قدرتمند برای ورود به محیط های الکترونیکی و مجازی است. استفاده ازتوکن امنیتی به دلیل کوچک بودن و قابل حمل بودن آن برای کاربران بسیار ساده بوده و قابلیت نگهداری عملیات رمزنگاری و تشخیص هویت، همچنین نگهداری کلیدهای رمزنگاری و اطلاعات بیومتریک (مانند اثر انگشت) را دارا می باشد. توکن های امنیتی الکترونیکی، با دارا بودن حافظه ی داخلی و بهره گیری از پردازنده ی قدرتمند می توانند به کامپیوتر متصل شده و از طریق نرم افزار مخصوص، عملیات رمزنگاری و تشخیص هویت افراد را اجرا کنند. توکن های پرکاربرد امروزی معمولاً مجهز به پورت USB بوده و می توانند عمل تبادل اطلاعات را با سرعت بالا و به نحوی که برای کاربر بسیار ساده باشد انجام دهند.