単純なパスワード・IDによる本人認証の仕組みは、広くオンラインサービスで用いられていますが、現代にあっては、複数の複雑なパスワードを使い分け、作成・管理しなければならないエンドユーザーにかかる負荷が過大となっていることなどから、想定以上に脆弱性が発生しやすいこと、ユーザーの利便性向上を妨げる原因になっていることが大きな問題になっています。身近なパスワード認証は、私たちが思うより、もはや安全なものではなく、多くの問題を抱えた限界が感じられる仕組みとなりつつあるのです。
一方で、オンラインバンキングやEC決済、資産運用・経営管理、秘匿性の高い個人情報や企業の機密情報をやりとりするものなど、インターネット上のサービスが取り扱う重要データの比率は年々高まるばかりで、便利な社会を支える不可欠なインフラとして、あらゆる現実のシーンに浸透してきていることも事実です。
そのため従来のパスワードに代わる、よりセキュアでユーザー利便性を妨げない新たな認証の仕組みが多方面から強く求められるようになりました。そうした流れの中、ワンタイムパスワード(One Time Password・OTP)を活用する動きが、銀行など金融機関を中心に広がっています。
現在の主要サービスでは、カードを用いたタイプが多くみられていますが、ワンタイムパスワードの認証とはそもそもどういう仕組みのものなのでしょうか。どんな利点があり、どう使うのかなども含め、今回はその基礎を学んでいくこととしましょう。
ワンタイムパスワードとは、何らかのトークンを用いて自動生成される、1回限りの使い捨てパスワードのことで、これにより認証を実行し、コンピュータリソースやサービスへのログインを許可、セキュリティの強化を図るものです。
従来のユーザーが設定した固定的なパスワードに比べ、複雑でランダムなパスワードを常時使い捨てで用いることができ、そのパスワードも一定時間を経過すると無効になることから、漏洩や盗み見による被害を最小化、ユーザーの負担を増やすことなく、より強固な安全性を確保できる方法として考え出されました。
ワンタイムパスワードによる認証では、この使い捨てパスワードを自動生成するツールとしてトークンが必要になります。このトークンとしては、さまざまなタイプがあり、大別するとハードウェア型とソフトウェア型があります。
ハードウェア型の代表がワンタイムパスワードカードです。財布などに入れて持ち歩きやすく、銀行などはこれをユーザーに提供しています。他にUSBタイプやキーホルダータイプなどもあり、ニーズによって企業などが採用しています。
ソフトウェア型はPCやスマートフォンなど、端末にソフトやアプリをインストールして用いるもので、対応機種を保有していれば、別途専用端末を必要としませんから、手軽な面があります。
また、ツールとしてのトークンを用いず、電子メールやSMSでユーザーにワンタイムパスワードを送信、これを確認して利用してもらうというケースもあります。この場合は表示内容を外部から閲覧されないよう、フリーメールの利用は避けてキャリアメールにするといった対策が推奨されるでしょう。
続いてワンタイムパスワードの認証では、どんな仕組みが働いているのか、少し詳しくみていきます。詳細な仕組みは製品・サービスで異なるものの、代表的な方式としては2種類が知られていますから、こちらをそれぞれご紹介しましょう。
1つは「時刻同期(タイムスタンプ・タイムシンクロナス)方式」と呼ばれるもので、こちらではトークンによるパスワードの自動生成の際、その種になる要素情報として、現在時刻を用います。認証サーバーとトークンはあらかじめ、時刻情報に紐づいたパスワード算出のための共通計算式など、生成ルールを保存しておきます。
発行が求められた際に、ワンタイムパスワードカードなどトークンと認証サーバーは、それぞれ現在時刻情報を取り込んだ計算式で、ユーザーごと、かつ1回限りの乱数を作成、互いの時刻を同期した上で、該当数列をワンタイムパスワードとして決定します。
ユーザーはトークンに表示されたワンタイムパスワードを確認して入力・送信、認証サーバーはこれを受け付け、有効で正しいと確認したら認証を実行するのです。生成した数列のパスワードには、表示後30秒間など有効な制限時間が設けられており、これを経過すると無効になります。
もう1つは「チャレンジ&レスポンス方式」と呼ばれるタイプで、こちらの場合、まずユーザーがサーバーに認証してほしいというリクエスト情報を送ります。認証サーバーはこれに対し、ランダムな文字列を「チャレンジ」として返送します。ユーザー側は、これを受け取ってあらかじめ決定されている計算式や変換ルールにより、その時用いるパスワードを計算して「レスポンス」入力します。
認証サーバー側でも計算式を保有しており、そちらでチャレンジから算出したレスポンスが、ユーザーによって送られてきたものと一致した場合、認証成功とするのです。サーバーの出す
「チャレンジ」は毎回変化するため、「レスポンス」もその都度変わり、その時限りの合い言葉確認のように働いて、ワンタイムパスワードとしての機能を果たすことになります。
ワンタイムパスワードカードなどのトークンを活用したこのOTP認証では、固定パスワードで懸念されるフィッシング詐欺などの被害リスクを大幅に低減させられます。なりすましメールや不正Webサイトなどでユーザーのパスワードを盗み取り、サービス内へログインする詐欺行為への対策として、とくに有効となるでしょう。
安全性を高めるために必要とされる、複雑なパスワードの作成や管理に困る、その煩雑さに悩むといったユーザーの負担をカットすることもでき、セキュリティ性とユーザー利便性の両方を向上させられると考えられます。
ただしこの方法も完璧ではありません。パスワード自体は使い捨てで安全ですが、ユーザーと認証サーバーの間に攻撃者が入り込み、中継地点から互いの通信情報を盗み見たり、通信内容を改竄したりされてしまうと、不正利用が可能になってしまいます。こうした中間者攻撃と呼ばれるタイプの不正アクセスに対しては、さらなる対策が必要なのです。
もちろん、ワンタイムパスワードカード本体の管理も徹底されなければなりません。安全に利用するための登録と保管をきちんと行いましょう。万が一、紛失した場合はすぐにサポートへ連絡するなど、対応を確認しておくことも大切です。
このように単独ではなおリスクが残るものの、ワンタイムパスワード認証の場合、通常の固定パスワード・ID認証に比べ、はるかにセキュアで利便性の高い認証がスムーズに行えるようになります。どんな認証技術、セキュリティ技術も絶対に安全というものはありません。注意すべきポイントや仕組みを理解しながら、積極的に活用していきましょう。
(画像は写真素材 足成より)