ワンタイムパスワードとは、認証時に使用するパスワードの種類の1つで、1回のみ使用可能な、値が変動するパスワードのことです。使い捨てのパスワードとも言い換えられます。
一度、使用されたワンタイムパスワードは、即、無効化されるため、不正利用を防ぐために有効な安全性の高いパスワードです。
この記事では、ワンタイムパスワードのメリットや仕組み、活用事例などをご紹介いたします。
ワンタイムパスワードとは
ワンタイムパスワードとは、認証時に使用するパスワードの種類の1つで、1回のみ使用可能な、値が変動するパスワードのことです。使い捨てのパスワードとも言い換えられます。
一度、使用されたワンタイムパスワードは、即、無効化されるため、不正利用を防ぐために有効な安全性の高いパスワードです。パスワードの窃取や漏えいによる不正利用が増加する中、ワンタイムパスワードによる不正利用防止は効果的な手段の一つとして、オンラインバンキングやオンラインショッピング、メールアカウントなど、高い情報セキュリティが求められるシーンでの認証に活用されています。
認証とは
認証とは利用するサービスに対して自身が利用者本人であることを証明するための手続きです。サービス側へIDとパスワードを提供することで利用者が本人であることをサービス側は認識します。

パスワードの危険性

同じパスワードを使いまわしたり、覚えやすい簡易的なパスワードを利用したりすると、パスワード攻撃による不正ログインの被害にあう可能性が高まります。 事実、パスワードへの攻撃の多くは、使用するユーザIDとパスワードが固定されていることが前提で行われます。言い換えると、パスワードが毎回異なるワンタイムパスワードであれば、こういった攻撃を防ぐことが可能です。
近年では、サイバー攻撃の本来の対象となる企業は直接攻撃せずに、その取引先や関係する個人が狙われる事件が多発しています。「自分のパソコンには大した情報が入っていないから関係ない」と油断していると、取引先や関係者に大損害を与えるような取り返しのつかない事態に発展することが起き始めているのです。
パスワードへの攻撃方法
パスワードへの攻撃方法は次のようなものが挙げられます。
類推攻撃

ユーザーの環境や情報から類推したパスワードを試していく方法です。 例えば、ユーザー自身や家族の誕生日、飼っているペットの名前、自身や会社の電話番号、住所、車のナンバープレートなどの情報からパスワードを類推して入力していきます。 近年はSNSに掲載された情報が用いられる場合もあります。
リスト型攻撃

サービス事業者から漏洩してしまったID・パスワード情報は、ネットワーク上に出回っています。 このパスワードリストを使用し、サービスへのログインを試みる方法です。ユーザーは、複数のサービスで同じID・パスワードを使い回す傾向にあるため、他の攻撃よりも成功率が高いという現実があります。従業員が、プライベートで利用しているパスワードを会社のシステムでも利用していると、この攻撃の被害に遭うことが懸念されます。
辞書攻撃

パスワードには、辞書に掲載されている単語が使われている傾向があります。 また、キーボード配列を利用した文字列(「qwerty」や「qazwsx」)、使われやすい単語の文字の一部を似た文字に置き換えた文字列(「pa55w0rd」など)など、パスワードに使われやすい文字列があります。 このようなパスワードに使われやすい単語や文字列のリストを使用する方法です。
総当たり攻撃(ブルートフォース攻撃)

すべての文字を組み合わせて、すべてのパターンのパスワードをひとつずつ総当たりで入力し、強引に正解のパスワードを割り出す方法です。 非常に多くの組み合わせがあるため、効率の悪い方法ですが、認証失敗回数制限によりIDを凍結(アカウントロック)しないと、いくらでも試せるため、いつかは不正ログインされてしまう可能性があります。
リバースブルートフォース攻撃

総当たり攻撃が、IDを固定しパスワードを総当たりで入力していくのに対し、パスワードを固定し、IDを総当たりで入力していく方法です。アカウントロックから逃れられるため、いつかはログイン可能なIDが割り出されてしまう可能性があります。固定するパスワードには「password」など使われやすいパスワードが用いられます。
パスワードスプレー攻撃

総当たり攻撃の一種ですが、「アカウントロックがかからない範囲で実行」や「機械的に連続試行しない」など、監視から怪しまれないように時間をかけて総当たり攻撃をする方法です。時間はかかるものの、監視の目を掻い潜り、継続的に攻撃し続けることが可能です。特定のサービスにこだわらず、複数のサービスを同時に攻撃対象とすることで成功率を上げています。
ワンタイムパスワードのメリット
上述の通り、多くのパスワードへの攻撃はパスワードが固定されている前提で行われます。すなわち、パスワードが毎回異なるワンタイムパスワードには、こういった攻撃を防ぐことに有効です。 また、ワンタイムパスワードは管理者やユーザーの負担を減らすことも可能です。通常のパスワードの場合、ユーザー数が増えれば管理が必要となるID・パスワードも増えますが、ワンタイムパスワードであればそのような手間を軽減することができます。 ユーザーも毎回異なるパスワードを使用するため定期的に行っていたパスワード変更の必要がなくなります。
ワンタイムパスワードの発行方法
ワンタイムパスワードを発行する方法は大きく分けて「トークン」「デバイスレス」「SMS」「電話」などがあります。
トークンとは
トークンとはワンタイムパスワードを表示するツールです。 キーホルダータイプやカードタイプの専用機器にパスワードを表示するハードウェアトークン、スマートフォンに専用アプリをダウンロードしてパスワードを表示するソフトウェアトークンが一般的です。 逆にトークンを使わずブラウザだけでパスワードを表示することをデバイスレスといいます。 これらの方式には、メリットとデメリットがあります。
ハードウェアトークン

ワンタイムパスワードを生成する専用の機器(ハードウェア)のことで、カードタイプやキーホルダータイプなどがあります。 ハードウェアトークンの液晶画面に、ワンタイムパスワードを表示します。液晶画面は常時表示されている製品と、使用時にスイッチをいれて表示させるタイプの製品があります。 表示されるワンタイムパスワードは30秒ごと(または60秒ごと)に再生成されます。メリットはユーザー操作の分かりやすさです。デメリットは、持っていないとログインができないため、どこに行くにもユーザーが持ち歩かなければならないことと、盗難紛失時の不正利用リスクがあることです。また、トークンの購入や配布、電池期限や故障対応などの管理コストがユーザー数に比例して増えてしまうことです。
ソフトウェアトークン

ワンタイムパスワードを表示するためのソフトウェアタイプのトークンです。iPhoneやAndroid上に専用アプリをインストールし、アプリ上でワンタイムパスワードを表示します。ハードウェアトークンと同様に30秒ごと(または60秒ごと)にワンタイムパスワードが再生成されます。メリットは手持ちのスマートフォンをそのまま利用できるため、追加コストを掛けずに利用できることです。一方で、手持ちのスマートフォンが無い場合は、スマートフォンの新規調達が必要というデメリットがあります。
デバイスレス

ブラウザだけでワンタイムパスワードを実現する方法です。ブラウザ上にユーザーだけが解読できる暗号表を提示し、ワンタイムパスワードを読み取ります。メリットはトークンの調達や配布、初期セットアップや管理がいらず、導入のしやすいことと、数百名、数千名を超える規模のユーザーにも即日で提供開始ができる点です。一方デメリットは、暗号表タイプのものを初めて利用する場合は、利用者に対して暗号表の使い方を伝えておく必要があることです。
SMS

ユーザー宛にSMSやメールでワンタイムパスワードを通知する方法です。メリットは標準アプリだけで利用できることです。一方、SMSについては認証のたびに通信コストが発生します。また、SMS認証が傍受される大規模な事件が起こるなど、安全性に関して懸念されます。(米国立標準技術研究所(NIST)は、SMSでシークレットコードを送ることを禁止しています)
音声

ユーザー宛に直接音声電話によってワンタイムパスワードを通知する方法です。 メリットは電話が使えれば始められるという導入のしやすさです。デメリットは通話コストの他、受電しながらワンタイムパスワードを入力しにくい点です。
ワンタイムパスワードの仕組みについて
ワンタイムパスワード認証の仕組みは次の3種類があります。
チャレンジレスポンス方式
「チャレンジ」と呼ばれるランダムな文字列を基に、ワンタイムパスワード(「レスポンス」)を生成する方式です。 チャレンジレスポンス方式では、ユーザーがサーバーに対しアクセスを要求すると、サーバーはチャレンジを生成しユーザーに返します。ユーザーは指定された計算式を使いレスポンスを生成してサーバーへ送り返します。サーバーはユーザーから送られたレスポンスと、サーバー自身が計算したパスワードを照合し、一致していれば認証が成功となるわけです。

時刻同期方式
認証時の時刻を基に、トークンでワンタイムパスワードを生成する方式です。 最近では、ハードウェアではなくスマートフォンのアプリなどでトークンの代わりにするケースも増えています。時刻同期方式は、タイムスタンプ方式、タイムシンクロナス方式、TOTP(Time-basedOne-Time Password)方式などと呼ばれることがあります。

ユーザーが手元のトークンのボタンを押すと、その時刻において有効なワンタイムパスワードが表示されます。 ユーザーがワンタイムパスワードを入力すると、サーバーが照合を行い、正しければ認証されます。
カウンタ同期方式
発行回数を基に、トークンでワンタイムパスワードを生成する方式です。

手元のトークンボタンを押すと、その発行回数において有効なワンタイムパスワードが表示されます。ユーザーがワンタイムパスワードを入力すると、サーバーが照合を行い、正しければ認証されます。 時刻同期方式(タイムスタンプ方式)との違いは、時刻を利用するのではなく発行回数を利用する点です。
ワンタイムパスワードの活用シーン
ワンタイムパスワードは、厳格な情報セキュリティが求められるシーンで活用されています。
以下で、その具体的な例をご紹介いたします。
オンラインバンキング
オンライン上で、残高確認や送金、個人情報の変更などが行えるオンラインバンキングは、銀行の営業時間外であっても自宅などから各種手続きが行える便利なサービスです。
ただ、金銭のやり取りが発生するため、高セキュリティが求められます。
そこで、ワンタイムパスワードが活用されています。ログイン時や、重要な取引を承認する際には、ワンタイムパスワードの入力を求めることで、不正アクセスや詐欺行為を防止しています。
オンラインショッピング
コロナ禍でさらに普及が進んだオンラインショッピングでも、クレジットカード情報や個人情報といった機微な情報を扱うことから、高いセキュリティ対策が必要です。
クレジットカード情報の入力時や、支払いを確定する際などにワンタイムパスワードを活用した認証をかけることで、不正利用やクレジットカード情報の窃取を防止しています。
Webメール
Webメールにも個人情報が登録されており、機密情報などがやり取りされる可能性があります。また、ほかのWebサービスなどの認証コードが送信されるツールであることから、高セキュリティが求められます。
Webメールへの不正アクセスを防止するため、ログイン時やパスワードのリセット時にワンタイムパスワードが活用されています。
クラウドサービス
SaaSを始めとするクラウドサービスは、業務での利用も浸透しており、クラウドサービスのデータベース上には機密情報や顧客の個人情報などの機微な情報が含まれます。
ログイン時や、ファイルの共有、ダウンロード時などにワンタイムパスワードを使用することで、データの保護を強化しています。
VPN
テレワークが普及しつつある現在、企業などのネットワークへ安全にアクセスするために利用されているVPN(Virtual private network/仮想プライベートネットワーク)。
VPNへの不正アクセスを許してしまえば、機密情報や顧客情報、従業員の個人情報、さまざまなシステムへアクセスするためのアカウント情報といった、社内ネットワーク上のさまざまな情報へアクセスされてしまう恐れがあります。
このため、従業員がリモートから安全にネットワークに接続するために、ワンタイムパスワードを要求し、不正アクセスを防止します。
SNS
スマートフォンの広がりとともに浸透したSNS。いまや個人の情報収集・情報交換の場としてだけでなく、ビジネスチャンスをも生み出すバーチャル空間となっています。
詳細な個人情報を含むSNSでもワンタイムパスワードが活用されています。アカウントの乗っ取りや不正利用を防止するため、ログイン時やアカウント情報の変更、機種変更時の引き継ぎ手続きなどの際にワンタイムパスワードの入力が求められます。
ワンタイムパスワードの活用事例
・デバイスレス・ワンタイムパスワードの導入事例
・ソフトウェアトークンの導入事例
