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

از آنجایی که توکن‌های نرم‌افزاری ماهیت فیزیکی ندارند، در معرض تهدیدات منحصربه‌فردی مبتنی بر کپی شدن محتوای رمزنگاری پایه‌ای قرار می‌گیرند (برای مثال، ویروس‌های رایانه‌ای و حملات نرم‌افزاری .) توکن‌های سخت‌افزاری و نرم‌افزاری هر دو در برابر حملات Man-in-the-Middle مبتنی بر ربات، یا حملات فیشینگ ساده که در آن رمز عبور پویا ارائه‌شده توسط توکن درخواست می‌شود، آسیب‌پذیر هستند که در این حالت رمزعبور استخراج شده و سپس در زمان معین به وب‌سایت اصلی ارائه می‌شوند.. توکن‌های نرم‌افزاری مزایایی نسبت به توکن‌های سخت افزاری دارند که عبارت است از: هیچ توکن فیزیکی برای حمل وجود ندارد، آنها حاوی باتری‌هایی نیستند که تمام می‌شوند و ارزان‌تر از توکن‌های سخت‌افزاری هستند.

معماری امنیتی
-------------

دو معماری اصلی برای توکن‌های نرم‌افزاری وجود دارد: رمزنگاری مخفی مشترک و رمزنگاری کلید عمومی.

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

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

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

جستارهای وابسته
---------------

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

منابع
-----

1. ↑  Chung, Joaquin; Jung, Eun-Sung; Kettimuthu, Rajkumar; Rao, Nageswara S.V.; Foster, Ian T.; Clark, Russ; Owen, Henry (2018-02-01). "Advance reservation access control using software-defined networking and tokens". *Future Generation Computer Systems* (به انگلیسی). **79**: 225–234. doi:10.1016/j.future.2017.03.010. OSTI 1394409.
2. ↑  SecurityPro News Strong Authentication Retrieved on April 3, 2007.

پیوند به بیرون
--------------

* مایکروسافت پسوردها را کنار می‌گذارد
* بانک‌ها تا پایان سال ۲۰۰۶ از احراز هویت دو مرحله ای استفاده می‌کنند