ワンタイムパスワード
一度鍵を開けると自ら溶けて消えてしまい、他人が絶対に拾って使えない「氷の鍵」のようなものです。
定義 ワンタイムパスワード(OTP)とは、ログインや送金をするときに毎回新しく生成され、たった一度だけ使える使い捨ての暗証番号です。決められた短い時間が過ぎるか、一度入力すると無効になるため、誰かに盗み見られても悪用される心配がありません。
なぜ固定のパスワードより安全なのでしょうか?
私たちが普段使っているパスワードは、玄関の鍵に似ています。鍵の形が変わらないため、誰かに合鍵を作られたりパスワードを盗み見られたりすると、いつでも侵入されてしまいます。いくら長くて複雑なパスワードを設定しても、一度漏れてしまえば終わりです。
しかし、ワンタイムパスワードはドアを開けるたびに鍵穴の形も鍵も一緒に変化する「魔法の錠前」のような仕組みです。直前に使ったパスワードをハッカーが画面越しに盗み見たとしても、一度使って破棄された番号はまったく役に立ちません。
さらに、通常30秒〜1分ほどの非常に短い有効期限が切れると自動で消滅します。万が一、途中で番号が見られてしまったとしても、ハッカーがそれを使って不正アクセスを試みる前に無効化されるため安心です。
ネットが繋がっていなくても、なぜサーバーと同じ番号がわかるの?
専用のOTPトークン(小型端末)や認証アプリを使うとき、インターネットに繋がっていなくても番号がぴったり一致することに不思議さを感じたことはありませんか? 銀行のサーバーと手元の端末がリアルタイムで通信していなくても同じ番号を生み出せる秘密は、正確な時計と秘密の計算式にあります。
最初に設定を行う際、サーバーとスマホは誰も知らない共通の「秘密の鍵(シークレットキー)」を共有します。そして両方の機器が、同じ計算式(アルゴリズム)に「現在時刻」と「秘密の鍵」を当てはめて、それぞれ独自に計算を行います。
世界標準時を基準に、同じ時刻に同じ計算式で計算するため、通信をしなくても30秒ごとにまったく同じ6桁の数字が両方の画面に浮かび上がるのです。これを「タイムベースのワンタイムパスワード(TOTP)」と呼びます。
より正確に言うと――万能の盾ではないことに注意!
ワンタイムパスワードは情報流出を防ぐ強力な技術ですが、あらゆるサイバー攻撃を完全に防げる「万能の盾」ではありません。ワンタイムパスワード自体の解読は不可能でも、人間の油断やミスを突く手口には弱点があるからです。
代表的な例が、偽の銀行サイトを作ってユーザー自身にOTP番号を入力させるフィッシング詐欺です。ユーザーが偽サイトに番号を入力した瞬間、ハッカーがそれをリアルタイムで盗み取り、有効期限の30秒以内に本物のサイトへ素早く入力してしまう手口があります。
そのため、OTPを利用する際もアクセス先のURLが本物かどうか必ず確認する必要があります。また、SMSで送られてくる認証コードはスマートフォンのマルウェアや傍受のリスクがあるため、専用の認証アプリやハードウェアセキュリティキーを組み合わせた2要素認証の活用が推奨されています。
🤔 よくある誤解
OTP端末はインターネットや通信回線を通じて、銀行サーバーと常に番号をやり取りしている。
カード型トークンや認証アプリは、通信機能がなくても動作します。サーバーと端末が事前に共有した「秘密鍵」と「現在時刻」をもとに、それぞれが独立して計算し同じ番号を導き出しているのです。
🧺 日常で出会う場面
ワンタイムパスワードは、秘密の計算式と現在時刻を組み合わせて毎回新しく生成され、一度使ったら破棄される強固なセキュリティ鍵です。