漏洩しても安全なワンタイム・パスワード

 同じパスワードをずっと使い続けていた場合,パスワードが漏洩すると大きな問題になる。パスワードを手に入れた犯罪者は,そのパスワードが変更されるまでの間,何度でもアクセスできる。

 逆に利用するたびにパスワードが変われば,他人に知られても構わない。パスワードを盗まれても,それでは認証されないからだ。このようにパスワードを“使い捨て”にするのが,ワンタイム・パスワードだ。パスワード漏洩/盗聴に最も強いシステムと言える。

図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年の場合)。

写真4●RSAセキュリティが販売するパスワード発生装置
 
写真5●iアプリ版
「SecurID」

 SecurIDはパスワードの発生に時間を使う。具体的には,ユーザー登録の際にパスワードの種となるデータをユーザー側端末と認証サーバーで共有し,時間を同期させる(時間同期方式)。パスワードの種と,登録から何分が経過したかというデータを基にパスワードを算出する。

 認証サーバーと端末装置の時間がずれる可能性があるが,これを補正する機能も持つ。具体的には,ユーザーから送られてきたパスワードから認証サーバーは自分とユーザー側の時間のずれを計算する。ずれていれば,再度ユーザー側にパスワードを要求する。先ほどのパスワードと同じ時間ずれていれば,認証が成功する。そして,認証サーバーは時間データのずれを補正し,ユーザー側のものにセットし直す。

 セキュアコンピューティングジャパンのSafeWordはハードウェア型のパスワード発生装置としてキーホルダーとカード型の2タイプ,ソフトウェアとしてWindows,Palm OSの2種類を用意している。100人の従業員に導入する場合,1ユーザー当たりハードウェア型で1万数千円(有効期限は3年),ソフトウェア型で5000円である(有効期限は5年)。認証サーバー側でパスワードを発生させ,電子メールを使って送信するタイプの製品(ユーザーがパスワード発生装置を持つ必要のないタイプ)もある。

 SafeWordはパスワードの発生にパスワードの使われた回数を使う。具体的には,サーバー側とパスワード発生装置にパスワードの種となるデータとパスワードの使用可能回数を与えておく。認証の際は,パスワードの使用可能回数からこれまでパスワードを使用した回数を引き,この値の回数だけパスワードの種データをある関数に通してパスワードを導く。

 この場合,認証サーバー側とユーザー端末側で使用回数がずれる可能性がある。ユーザーが,パスワードを発生させるために使うボタンを誤って二度押してしまった場合などだ。この問題は,認証サーバーが先のパスワードを許可することで回避する。

 具体的にはn回目の認証の際に認証サーバーはn回目以降の認証で使うパスワードのすべてを許容し,n回目より前のパスワードを拒絶するようになっている。使用回数の差異が生じた場合,認証サーバーはパスワードの使用回数を端末のものにセットし直す。

グラフィカルで操作が容易な
ワンタイム・パスワード・システム

写真●SecureMatrixの認証画面
 ワンタイム・パスワードと言えば,本文で説明した製品ようにパスワードを発生する装置を持つのが一般的だ。ただ,なかにはサーバー側でパスワードを発生させ端末に通知する製品もある。例えば,シー・エス・イーが販売する「SecureMatrix」である。導入コストは100ユーザーの場合,約155万円である。クライアントに特別なハードウェアを配る必要がなく,導入コストは低い。装置の盗難や紛失の心配もない。

 この製品では,ログインする際に特定のWebページに接続すると写真のような乱数表が表示される。パソコンのほか,PDAや携帯電話などWebブラウザ搭載の製品であればアクセスできる。携帯電話に乱数表を表示させ,これを見ながらパソコンでパスワードを入力し,認証することもできる。

 乱数表の中から,あらかじめ登録した決まりに沿って数字を選ぶ。決まりとは数字を抜き出す場所とその順番である。例えば,左上からV字型に選ぶ(一番左の乱数表の左上から斜め下方向に順番に進んだ後,二番目の乱数表の左下から斜め上方向に進む)という決まりだったとすると,写真では「03654131」がパスワードになる。表から選んだ数字の入力は,場所を目で追いながら,数字を打ち込んでいく方法とマウスで表をポイントしていく方法がある。この乱数表はログインの度に変わり,パスワードも毎回変化する。

 とはいうものの,不正アクセスの危険性はパスワード生成装置をユーザー側で持つものと比べ弱いように感じる。乱数表からパスワードを選ぶ決まりは推測できそうだし,ショルダ・ハッキングにも弱そうだからである。SecureMatrixを販売するシー・エス・イーは「位置の推測に関しては我々も心配していたが,展示会で来場者にパスワード選択のルールを選んでもらった際,同じような選び方をする人はほとんどいなかった。このため,推測は難しいと考えている。また,選択した数字に加えて本人しか知らない固定のパスワードを合わせて入力するので,選択のルールとこのパスワードの両方が漏洩しない限り不正アクセスされない。他のワンタイムパスワードと比べて認証が弱いとは思わない」(営業推進本部プロダクツ販売部玉井成知部長)と言う。

 セキュアコンピューティングジャパンのSafeWordでもパスワードをサーバー側で発生させ電子メールで送るシステムを用意しており,特別な装置をユーザーに配ることなく運用できる。