本ページはアフィリエイト広告プログラムによる収益が発生しています。
「ワンタイムパスワードの仕組みを知りたい」
「手元のトークンとWebサイトは、どういう仕組みで通信しているの?」
という方へ結論からお伝えすると、トークンが通信しているわけではありません。
簡単にいえば、トークンがその時刻に生成するパスワードのアルゴリズムを認証サーバーで共有していて、パスワードが一致すれば認証が成立する仕組みになっているのです。
…と言葉で聞いてもわかりづらいかもしれません。
本記事では、ワンタイムパスワードの基礎知識やその仕組みを、図解を交えながら解説します。
専門知識・コスト不要の効率的なサイバーセキュリティ対策ガイド
本記事のポイント
・ワンタイムパスワードとは何か基本がわかる
・どんな仕組みで認証されているのか解説
・業務でセキュリティ強化が必要な方にも役立つ情報を提供
「ワンタイムパスワードのメカニズムを知りたい」
「仕組みを知って、セキュリティ強化に役立てたい」
…という方におすすめの内容となっています。
普段、何気なく使っているワンタイムパスワード。本記事をお読みいただくと、裏側ではどんな処理が行われているのか、理解できるようになります。
セキュリティの仕組みを知って、より安全で有意義な運用につなげていきましょう。
まずワンタイムパスワードとは何か、基本の知識から解説します。
ワンタイムパスワードとは?基本の知識
1-1. 1度限りの使い捨てパスワードで認証する仕組み
ワンタイムパスワードとは、1回限りの使い捨てパスワードを使って認証する仕組みのことです。
ワンタイムパスワードで生成されるパスワードは、生成されてから数十秒〜数分以内の短い期間に、1回限りしか使用できません。
1-2. 目的はパスワード認証のセキュリティ強化
インターネットで行われる基本的な認証は「IDとパスワード」を利用する方法です。
1人の利用者に対して1つのユニークな(他の人と重複しない)IDが割り振られ、そのIDとパスワードの組み合わせが正しいとき、認証が成立します。IDとパスワードの認証でも、一定のセキュリティを保つことができます。しかし、IDとパスワードが盗まれれば、なりすましによる不正アクセスの危険があります。
そこで、IDとパスワードの認証をさらに強化したいときに、ワンタイムパスワードが使われるのです。
仮にIDとパスワードが漏えいしたとしても、もうひとつの関門として「数分以内の短時間しか使えないワンタイムパスワード」があれば、セキュリティを保てます。
ワンタイムパスワードがよく使われるサービス
前述のとおり、ワンタイムパスワードは、通常のIDとパスワードの認証のセキュリティを補完する役割があります。実際、より強固なセキュリティが必要な以下のサービスで、ワンタイムパスワードはよく使われています。
・銀行(ネットバンキング)
・暗号資産(仮想通貨)取引所
・証券会社
ログイン時の認証のほか、重要な取引や手続きでワンタイムパスワードが必要になります。
たとえば、銀行振込や暗証レベルの変更、住所・電話番号の変更などです。
ワンタイムパスワードの発行方法
ワンタイムパスワードの発行方法は、おもに4つあります。
・ハードウェアトークン
・スマホアプリ
・メール
・電話
ハードウェアトークン
「ハードウェアトークン」は液晶画面にワンタイムパスワードを表示させる、ミニサイズの電子機器です。
※「トークン」とは、ワンタイムパスワードを表示する機器(ワンタイムパスワード生成機)を指す言葉です。
▼ ハードウェアトークンの例
上記画像の「キーホルダー型」のほか、「カード型」もよく見られます。
ハードウェアトークンは、電池で動いているので、電池がなくなると使えなくなります。電池の寿命は機器の種類によっても異なります。
銀行で利用されているハードウェアトークンでよく見られる案内は、「トークンの電池寿命は、製造からおよそ5年」です。
トークンアプリ
「トークンアプリ」は、スマートフォンにダウンロードして利用する、トークンを表示させる専用のアプリです。
ハードウェアトークンに対して「ソフトウェアトークン」とも呼ばれます。
▼ トークンアプリの例
ハードウェアトークンと違って、スマホ内で管理できるので、持ち運びの便利さや管理のしやすさがメリットです。
メール・SMS
「メール・SMS」は、あらかじめ登録しておいたメールアドレスやSMS宛にワンタイムパスワードを送信する方法です。
▼ メールの例
電話
「電話」は、あらかじめ登録しておいた電話番号あてに、自動音声でワンタイムパスワードが通知される方法です。
携帯電話(スマートフォン)のほか、固定電話でも通知を受けることができます。スマホの操作に慣れていない人にも利用しやすい方法です。テキストでパスワードの記録が残らず、パソコン経由での盗難もできないため、漏えいリスクは少ないといえます。
※ワンタイムパスワードの盗難やデメリットについて詳しくは「ワンタイムパスワード デメリット」で解説しています。あわせてご覧ください。
ワンタイムパスワードで認証する仕組み
次に、ユーザーの手元にあるワンタイムパスワードが、利用するサイト上でどのように正否を見極めているのか、見ていきましょう。
2-1. 一般的に使われている方式は「タイムスタンプ認証」
認証方式はいくつか種類があるのですが、一般的に使われているのは「タイムスタンプ認証」という方式です。「タイムシンクロナス方式」ともいいます。
タイムスタンプ認証とは、ある時刻にトークンに表示されるワンタイムパスワードが、時刻を計算式に含んだアルゴリズムで決まっていて、認証時には「その時刻のワンタイムパスワードと一致するか」を確認する方式です。
認証サーバ側では、
「ユーザーごとに、どの時刻に、どんな数字のワンタイムパスワードが生成されるか」
の情報を持っているので、トークンとネット通信する必要なく、正否が判定できます。
“情報を持っている”といっても、データベース化したパスワードリストを持っているのではありません。
持っているのは「アルゴリズム(ワンタイムパスワードを生成するための計算方法)」です。
その計算式のなかには「時刻と、ユーザーごとに異なる乱数」が含まれているので、
「認証サーバでは、時刻ごとに、ユーザーのトークンに表示されているのと同じワンタイムパスワードを生成できる」
という仕組みになっています。
発行方法がメール・SMS・電話でも仕組みは同じ
ワンタイムパスワードの発行方法が、トークンではなくメール・SMS・電話の場合も、タイムスタンプ認証の仕組みは同じです。
ユーザーが認証サーバへワンタイムパスワードをリクエストすると、認証サーバは、その時刻のワンタイムパスワードを生成して、ユーザーへメール・SMSなどで送信します。
ユーザーが受け取ったワンタイムパスワードを使って認証を試みると、認証サーバは再びその時刻の数字を生成して、正否を判定するという仕組みです。
時刻ではなく発行回数をもとに生成する「カウンタ同期認証」もある
仕組み自体はタイムスタンプ認証と同じですが、パスワードの計算法が異なる方式として「カウンタ同期認証」があります。
カウンタ同期認証では、時刻ではなく「ワンタイムパスワードの発行回数」をもとにワンタイムパスワードを生成します。
カウンタ同期認証は、「ユーザーがハードウェアトークンのボタンを押す」などして、新しいワンタイムパスワードを生成する仕組みになっています。
ただし、カウンタ同期認証ではカウントがずれることがあり(例:ユーザーが認証に使わずに複数回ボタンを押した、など)、再同期の仕組みも準備しなければなりません。
そのため、一般ユーザー向けサービスでは、前述のタイムスタンプ認証のほうが多く採用されています。
2-3. 一部で使われる「チャレンジレスポンス認証」
もうひとつ、一部で使われている方式に「チャレンジレスポンス認証」があります。
こちらはタイムスタンプ認証とは仕組み自体が違い、認証サーバと通信して、その都度ワンタイムパスワードを生成する方式となります。
チャレンジレスポンス認証では、ユーザーが認証サーバへリクエストを送信すると、認証サーバから「チャレンジ」と呼ばれるデータが返ってきます。
ユーザーは、サーバから送られてきたチャレンジと自身のパスワードなどから演算して、「レスポンス」と呼ばれるハッシュ値を生成し、認証サーバに送信します。
チャレンジレスポンス認証は、ユーザー側でレスポンスを生成するためのIT知識(またはそれを代替するための物理的なデバイス)が必要です。
そのため、一般ユーザー向けサービスではほとんど使われていませんが、参考知識として覚えていただければと思います。
3. ワンタイムパスワードの仕組みでよくある質問
ここで、ワンタイムパスワードに関してよくある質問にお答えしましょう。
3-1. 【Q1】トークンはどうやって通信しているの?
ハードウェアトークンのユーザーの方から多いのが「通信の謎」です。
「どうやって電波を飛ばしているの?」
「勝手にネットにつながっているの?」
という素朴な疑問を持つ方が多いようです。
先にもお伝えしたとおり、トークン自体は通信していません。
「トークンにどんな数字が表示されるか」の仕組みを認証サーバー側で把握しているので、通信なしで認証ができるのです。
トークン自体が通信していないからこそ、「第三者がトークンに不正アクセスしてパスワードを盗むことはできない」というメリットがあります。
3-2. 【Q2】トークンの電池はどういう仕組み?
次に「電池」に関する疑問です。
一般的なハードウェアトークンには「リチウム電池」が内蔵されていて、リチウム電池の電源によって動いています。
▼ リチウム電池の例
電池が切れると、ワンタイムパスワードが表示できなくなります。多くのハードウェアトークンは、製造から5年程度で電池切れとなります。
電池残量が少なくなってきたら、早めに再発行の手続きを行い、新しいトークンを入手することが大切です。
たとえば、ゆうちょ銀行のトークンの場合、電池残量が少なくなると以下のサインが表示されます。
電池残量が少なくなると、ワンタイムパスワードを表示する前に「Lo-bAtt」等が表示されます。
電池切れまでの期間の目安は以下のとおりです。
「Lo-bAtt 2」 ⇒ 3ヵ月から1ヵ月半
「Lo-bAtt 1」 ⇒ 1ヵ月半から電池切れ直前
「Lo-bAtt」 ⇒ 電池切れ直前
4. ワンタイムパスワード以外の安全な認証方式
最後に、ワンタイムパスワード以外におすすめできる認証方式を2つ、ご紹介します。
自社のサービスで認証システムを選択する立場にある方は、参考にしていただければと思います。
4-1. パズルキャプチャ
パズルキャプチャは、「人間」によるアクセスか、「Bot(ロボット・機械)」によるアクセスかを判別するツールです。
画面上で、パズルのピースを動かしてパズルを完成させるだけなので、ユーザビリティ(使いやすさ)に優れています。
パズルキャプチャは、以下のケースでおすすめです。
・セキュリティは強化したいけれど、ユーザーの手間を増やしたくない
・最高レベルのセキュリティが必要なサービスではない
認証が複雑なほどセキュリティは上がりますが、ユーザーの手間が増えれば離脱率が高くなり、売上減となることは、多くの企業に共通する悩みです。
そこでユーザーにとっての使いやすさを確保したまま、セキュリティを強化できるのがパズルキャプチャの強みです。
ログイン画面などにパズルキャプチャを組み込むことで、Botによる“なりすましログイン”や、機械的なアカウント取得などの攻撃からWebサイトを守ります。
詳しくは以下のリンクからご覧ください。
4-2. 生体認証
生体認証とは、指紋や顔などの個人だけが持つ情報を利用した認証システムのことです。
事前に個人が特定できる身体的な特徴を登録し、認証時に照合して本人確認を行います。
生体認証は以下のケースでおすすめです。
・ワンタイムパスワードを使わずにパスワードリスト攻撃やフィッシング対策をしたい
・金融サービスなど最高レベルのセキュリティが必要なサービスを運用している
・ユーザーの手間はできるだけ増やしたくない
詳しくは「ワンタイムパスワード デメリット」の記事でも触れているのですが、ワンタイムパスワードが突破されて詐欺被害に遭う事例が近年増えています。
ワンタイムパスワードの代替認証として注目されるのが「生体認証」です。
詳しくは以下のリンクからご覧ください。
まとめ
本記事では「ワンタイムパスワードの仕組み」をテーマに解説しました。簡単におさらいです。
ワンタイムパスワードとは、「1度限りの使い捨てパスワードで認証する仕組み」で、発行方法には以下があります。
- ハードウェアトークン
- トークンアプリ
- メール・SMS
- 電話
ワンタイムパスワードで認証する仕組みとして次の方式をご紹介しました。
- タイムスタンプ認証
- カウンタ同期認証
- チャレンジレスポンス認証
ワンタイムパスワード以外の安全な認証方式として以下が挙げられます。
- パズルキャプチャ
- 生体認証
ワンタイムパスワードの仕組みを知り、セキュリティへの意識を高めるきっかけとしていただければ幸いです。