漏洩しても安全なワンタイム・パスワード |
同じパスワードをずっと使い続けていた場合,パスワードが漏洩すると大きな問題になる。パスワードを手に入れた犯罪者は,そのパスワードが変更されるまでの間,何度でもアクセスできる。
逆に利用するたびにパスワードが変われば,他人に知られても構わない。パスワードを盗まれても,それでは認証されないからだ。このようにパスワードを“使い捨て”にするのが,ワンタイム・パスワードだ。パスワード漏洩/盗聴に最も強いシステムと言える。
![]() |
図4●一般的なワンタイム・パスワード・システム |
ワンタイム・パスワードでは,クライアント側で認証サーバーと同期を取る(同じパスワードを発生させる)必要がある。このため,一般にパスワードを発生する機器をユーザーに配布し,かつ認証サーバーの購入が必須となる。導入・運用コストはさまざまな認証システムの中で高い部類に属する。
100人規模の企業の場合,クライアント用装置として1ユーザー当たり1万円以上,認証サーバーとして200万円以上が必要になる。また,認証サーバーの保守費用が年間数十万円必要だ。
ワンタイム・パスワード・システムの場合,パスワードを表示する装置/端末を盗まれると危険である。そこで一般には,表示されているパスワードに,本人しか知らない固定のパスワード(PINコード)を付け加えて使用するようになっている(図4[拡大表示])。PINコードを書いたメモを貼り付けているパスワード発生装置を盗まれると危険だが,パスワード発生装置とPINコードを別々に管理すれば危険性は低減できる。
時間同期とカウンタ同期で分かれる
代表的なワンタイム・パスワード・システムとしてはRSAセキュリティの「SecurID」やセキュアコンピューティングジャパンの「SafeWord」などがある。
RSAセキュリティのSecurIDは,ハードウェア型のパスワード発生装置としてキーホルダー型とカード型(液晶パネルにパスワードを表示するタイプと読み取り装置でスキャンするタイプがある)の二つに分かれる(写真4)。これに加えて,Windows,Palm OS,Java搭載携帯電話で動作するソフトウェアも用意している(写真5)。100人の従業員に導入する場合,1ユーザー当たりハードウェア型で1万数千円,ソフトウェア型で6000円である(どちらも有効期限が4年の場合)。
|
|
SecurIDはパスワードの発生に時間を使う。具体的には,ユーザー登録の際にパスワードの種となるデータをユーザー側端末と認証サーバーで共有し,時間を同期させる(時間同期方式)。パスワードの種と,登録から何分が経過したかというデータを基にパスワードを算出する。
認証サーバーと端末装置の時間がずれる可能性があるが,これを補正する機能も持つ。具体的には,ユーザーから送られてきたパスワードから認証サーバーは自分とユーザー側の時間のずれを計算する。ずれていれば,再度ユーザー側にパスワードを要求する。先ほどのパスワードと同じ時間ずれていれば,認証が成功する。そして,認証サーバーは時間データのずれを補正し,ユーザー側のものにセットし直す。
セキュアコンピューティングジャパンのSafeWordはハードウェア型のパスワード発生装置としてキーホルダーとカード型の2タイプ,ソフトウェアとしてWindows,Palm OSの2種類を用意している。100人の従業員に導入する場合,1ユーザー当たりハードウェア型で1万数千円(有効期限は3年),ソフトウェア型で5000円である(有効期限は5年)。認証サーバー側でパスワードを発生させ,電子メールを使って送信するタイプの製品(ユーザーがパスワード発生装置を持つ必要のないタイプ)もある。
SafeWordはパスワードの発生にパスワードの使われた回数を使う。具体的には,サーバー側とパスワード発生装置にパスワードの種となるデータとパスワードの使用可能回数を与えておく。認証の際は,パスワードの使用可能回数からこれまでパスワードを使用した回数を引き,この値の回数だけパスワードの種データをある関数に通してパスワードを導く。
この場合,認証サーバー側とユーザー端末側で使用回数がずれる可能性がある。ユーザーが,パスワードを発生させるために使うボタンを誤って二度押してしまった場合などだ。この問題は,認証サーバーが先のパスワードを許可することで回避する。
具体的にはn回目の認証の際に認証サーバーはn回目以降の認証で使うパスワードのすべてを許容し,n回目より前のパスワードを拒絶するようになっている。使用回数の差異が生じた場合,認証サーバーはパスワードの使用回数を端末のものにセットし直す。