
ソフトウェアトークン(ソフトトークンとも呼ばれる)は、コンピュータサービスの利用を認証するために使用できる二要素認証セキュリティデバイスの一部です。 [ 1 ]ソフトウェアトークンは、デスクトップコンピュータ、ノートパソコン、PDA、携帯電話などの汎用電子機器に保存され、複製可能です。(ハードウェアトークンとは対照的です。ハードウェアトークンでは、認証情報は専用のハードウェアデバイスに保存されるため、デバイスへの物理的な侵入がない限り複製できません。)
ソフトウェアトークンは物理的に所有するものではないため、基盤となる暗号化素材の複製に基づく特有の脅威にさらされます。例えば、コンピュータウイルスやソフトウェア攻撃などです。ハードウェアトークンとソフトウェアトークンの両方が、ボットベースの中間者攻撃や、トークンによって提供されるワンタイムパスワードを要求し、それを適切なタイミングで正規のウェブサイトに送信する単純なフィッシング攻撃に対して脆弱です。ソフトウェアトークンには利点もあります。物理的なトークンを持ち歩く必要がなく、電池切れの心配もなく、ハードウェアトークンよりも安価です。 [ 2 ]
ソフトウェアトークンには、主に2つのアーキテクチャがあります。それは、共有秘密鍵と公開鍵暗号方式です。
共有シークレットの場合、管理者は通常、エンドユーザーごとに設定ファイルを作成します。このファイルには、ユーザー名、個人識別番号、およびシークレットが含まれます。この設定ファイルはユーザーに提供されます。
共有シークレットアーキテクチャは、いくつかの点で潜在的に脆弱です。設定ファイルが盗まれ、トークンがコピーされると、設定ファイルが侵害される可能性があります。時間ベースのソフトウェアトークンでは、個人のPDAやラップトップを借りて時計を進め、将来有効なコードを生成することが可能です。共有シークレットを使用し、PINを共有シークレットとともにソフトウェアクライアントに保存するソフトウェアトークンは、盗まれてオフライン攻撃の対象となる可能性があります。共有シークレットトークンは、各トークンが基本的に異なるソフトウェアであるため、配布が困難です。各ユーザーはシークレットのコピーを受け取る必要があり、時間的な制約が生じる可能性があります。
最新のソフトウェアトークンの中には、公開鍵暗号方式、つまり非対称暗号方式を採用しているものがあります。この方式は、ソフトウェアトークンの従来の弱点のいくつかを解消しますが、その主な弱点(複製される可能性)には影響を与えません。PINはトークンクライアントではなく、リモート認証サーバーに保存できるため、PINが知られていない限り、盗まれたソフトウェアトークンは無効になります。しかし、ウイルス感染の場合、暗号化データが複製され、ユーザーが次に認証する際に(キーロギングなどによって)PINが傍受される可能性があります。PINを推測しようとする試みがあった場合、認証サーバーで検出され、ログに記録されるため、トークンを無効化できます。非対称暗号方式を使用すると、トークンクライアントが独自の鍵ペアを生成し、サーバーと公開鍵を交換できるため、実装も簡素化されます。