
ワンタイムパスワード(OTP)は、ワンタイムPIN、ワンタイムパスコード、ワンタイム認証コード(OTAC)、またはダイナミックパスワードとも呼ばれ、コンピュータシステムやその他のデジタルデバイス上で、1回のログインセッションまたはトランザクションでのみ有効なパスワードです。OTPは、従来の(静的な)パスワードベースの認証に伴ういくつかの欠点を回避します。また、多くの実装では、ワンタイムパスワードが、本人が持っているもの(OTP計算機が組み込まれた小型のキーホルダー、スマートカード、特定の携帯電話など)と、本人が知っているもの(PINなど)の両方へのアクセスを必要とするようにすることで、2要素認証を組み込んでいます。
OTP生成アルゴリズムは通常、擬似乱数またはランダム性を用いて共有キーまたはシードを生成し、暗号学的ハッシュ関数を使用します。ハッシュ関数は値を導出するために使用できますが、逆算が困難なため、攻撃者がハッシュに使用されたデータを取得することは困難です。これは、そうでなければ過去のOTPを観察することで将来のOTPを容易に予測できてしまうためです。
OTPは、従来のパスワードの代替手段として、またパスワードを強化する手段として議論されてきました。しかし、OTPは傍受されたり、経路変更されたりする可能性があり、ハードトークンは紛失、破損、盗難される可能性があります。OTPを使用するシステムの多くは、OTPを安全に実装しておらず、攻撃者はフィッシング攻撃によってパスワードを入手し、正規ユーザーになりすますことができます。[ 1 ]
OTP の最も重要な利点は、静的パスワードとは異なり、リプレイ攻撃に対して脆弱ではないことです。つまり、サービスへのログインやトランザクションの実行にすでに使用された OTP を記録することに成功した潜在的な侵入者は、その OTP がもはや有効ではないため、使用することはできません。[ 1 ] 2 つ目の大きな利点は、複数のシステムで同じ (または類似の) パスワードを使用しているユーザーが、攻撃者がこれらのシステムのいずれかでパスワードを入手した場合でも、すべてのシステムで脆弱にならないことです。多くの OTP システムでは、前のセッション中に作成された予測不可能なデータを知らなければ、セッションが簡単に傍受されたり、なりすまされたりしないようにすることも目的としており、攻撃対象領域をさらに縮小しています。
ユーザーに次に使用するワンタイムパスワード(OTP)を知らせる方法もいくつかあります。一部のシステムでは、ユーザーが携帯する特殊な電子セキュリティトークンを使用し、そのトークンがOTPを生成して小型ディスプレイに表示します。また、ユーザーの携帯電話上で動作するソフトウェアを使用するシステムもあります。さらに、サーバー側でOTPを生成し、SMSメッセージなどの帯域外チャネルを使用してユーザーに送信するシステムもあります。最後に、一部のシステムでは、OTPが紙に印刷され、ユーザーが携帯する必要があります。
ワンタイムパスワードは、一部の暗号化方式において、ユーザーが静的な暗号化キーをサーバーに安全に送信するために必要な唯一の通信手段です。これにより、ユーザーが直接送信することなくサーバーが静的キーを特定または解読できるため、傍受される可能性が低くなります。この方法の一例として、暗号化ワンタイムパッド(EOTP)システムがあり、ワンタイムパスワードが保護されていないチャネルを介して安全なキー転送を可能にする方法を示しています。[ 2 ]
具体的なOTPアルゴリズムは、その詳細において大きく異なります。OTP生成のためのさまざまなアプローチには、以下のようなものがあります。
時間同期型ワンタイムパスワード(OTP)は通常、セキュリティトークンと呼ばれるハードウェアに関連付けられています(たとえば、各ユーザーにはワンタイムパスワードを生成する個人トークンが配布されます)。トークンは、時折変化する数字を表示するLCDを備えた小型電卓やキーホルダーのような形をしている場合があります。トークン内部には、認証サーバーの時計と同期された高精度の時計が内蔵されています。これらのOTPシステムでは、新しいパスワードの生成は、以前のパスワードや秘密鍵に加えて、またはそれらではなく、現在の時刻に基づいて行われるため、時刻はパスワードアルゴリズムの重要な要素となります。このトークンは、独自のデバイス、または独自のソフトウェア、フリーウェア、オープンソースソフトウェアを実行する携帯電話や同様のモバイルデバイスである場合があります。時間同期型OTP規格の一例として、時間ベースワンタイムパスワード(TOTP)があります。Google Authenticatorやパスワードマネージャーなど、時間同期型OTPを保持するために使用できるアプリケーションもあります。
新しいOTPは、過去に使用されたOTPから生成される場合があります。この種のアルゴリズムの例として、レスリー・ランポート氏による一方向関数(これを「OTP」と呼ぶ)が挙げられます。このワンタイムパスワードシステムは、次のように機能します。
前のパスワードから次のパスワードを取得するには、逆関数を計算する方法を見つける必要がある。。 以来一方通行に選択された場合、これは非常に困難です。は暗号学的ハッシュ関数であり、一般的には計算上扱いが困難なタスクであると想定されています。ワンタイムパスワードを偶然目にした侵入者は、一定期間またはログイン時にアクセスできる可能性がありますが、その期間が終了すると無効になります。S /KEYワンタイムパスワードシステムとその派生であるOTPは、Lamportの方式に基づいています。
チャレンジ・レスポンス方式のワンタイムパスワードを使用するには、ユーザーはチャレンジに対して応答する必要があります。例えば、トークンが生成した値をトークン自体に入力することで応答できます。重複を避けるため、通常は追加のカウンターが使用されるため、同じチャレンジを2回受け取った場合でも、異なるワンタイムパスワードが生成されます。ただし、計算には通常、以前のワンタイムパスワードは使用されません。つまり、通常は両方のアルゴリズムを使用するのではなく、このアルゴリズムまたは別のアルゴリズムのいずれかが使用されます。
OTP の配信によく使われる技術はテキスト メッセージングです。テキスト メッセージングは、ほぼすべての携帯電話で直接利用でき、テキスト読み上げ変換によってあらゆる携帯電話や固定電話にも送信できる、遍在する通信チャネルであるため、実装の総コストを低く抑えながら、すべての消費者にリーチできる大きな可能性を秘めています。テキスト メッセージングによる OTP はA5/x標準を使用して暗号化される可能性があり、複数のハッキング グループが数分または数秒で正常に復号できると報告しています。[ 4 ] [ 5 ] [ 6 ] [ 7 ]さらに、SS7ルーティング プロトコルのセキュリティ上の欠陥は、関連するテキスト メッセージを攻撃者にリダイレクトするために利用される可能性があり、実際に利用されています。2017 年に、ドイツの複数のO2顧客がこの方法で侵害され、モバイル バンキングアカウントにアクセスされました。 2016 年 7 月、米国NIST は認証慣行に関するガイダンスを含む特別刊行物の草案を発行し、SMS は大規模に傍受される可能性があるため、帯域外の 2 要素認証を実装する方法として SMS を使用することを推奨しないと述べた。[ 8 ] [ 9 ] [ 10 ]また、テキスト メッセージはSIM スワップ詐欺にも脆弱である。これは、攻撃者が被害者の電話番号を不正に自分のSIM カードに転送し、それを使用してその SIM カードに送信されるメッセージにアクセスできるようにするものである。[ 11 ] [ 12 ]

RSA SecurityのSecurIDは、 HID Globalのソリューションと並んで、時刻同期型のトークンの一例です。他のトークンと同様に、これらのトークンも紛失、破損、盗難の可能性があります。さらに、特に充電機能のないトークンや交換不可能なバッテリーを搭載したトークンでは、バッテリー切れによる不便さも伴います。RSAは2006年に独自のトークンの派生版を提案し、「ユビキタス認証」と称しました。これは、RSAがメーカーと提携して、携帯電話などのデバイスに物理的なSecurIDチップを追加するというものです。
近年、通常のキーフォブ型ワンタイムパスワード(OTP)トークンに使用されている電子部品をクレジットカードサイズの筐体に組み込むことが可能になった。しかし、カードの厚さが0.79mm~0.84mmと薄いため、標準的な部品や電池は使用できない。そのため、コイン型(ボタン型)電池よりも電池寿命がはるかに短い特殊なポリマー系電池を使用する必要がある。半導体部品は、非常に薄型であるだけでなく、待機時および動作時の消費電力を最小限に抑える必要がある。
Yubicoは、キーを押すとOTPを生成し、キーボードをシミュレートして長いパスワードを簡単に入力できるようにする組み込みチップを備えた小型USBトークンを提供しています。[ 13 ] USBデバイスであるため、バッテリー交換の不便さを回避できます。
この技術の新しいバージョンが開発され、標準サイズと厚さの決済カードにキーパッドが組み込まれるようになった。このカードには、キーパッド、ディスプレイ、マイクロプロセッサ、近接チップが内蔵されている。

スマートフォンでは、ワンタイムパスワードは、 AuthyやGoogle Authenticatorなどの専用認証アプリを含むモバイルアプリを介して直接配信することも、 Steamの場合のようにサービスの既存のアプリ内で配信することもできます。これらのシステムはSMSと同じセキュリティ上の脆弱性を共有しておらず、使用するために必ずしもモバイルネットワークへの接続を必要としません。[ 14 ] [ 10 ] [ 15 ]

一部の国のオンラインバンキングでは、銀行が紙に印刷された番号付きのワンタイムパスワード(OTP)リストをユーザーに送付します。また、別の銀行では、実際のOTPが隠されたプラスチックカードを送付し、ユーザーはその層を削って番号付きのOTPを表示させる必要があります。オンライン取引を行うたびに、ユーザーはそのリストから特定のOTPを入力する必要があります。システムによっては、番号付きのOTPを順番に入力するように求めるものもあれば、擬似乱数的にOTPを選択して入力させるものもあります。
適切に実装されたワンタイムパスワード(OTP)は、初回使用後短期間で攻撃者にとって利用できなくなります。これは、何年も経っても攻撃者にとって有用なままとなる可能性のあるパスワードとは異なります。
パスワードと同様に、ワンタイムパスワード(OTP)もソーシャルエンジニアリング攻撃に対して脆弱です。フィッシング詐欺師は、顧客を騙してOTPを盗み出します。また、パスワードと同様に、OTPは中間者攻撃に対しても脆弱であるため、トランスポート層セキュリティ(TLS)などの安全なチャネルを介して通信することが重要です。
パスワードとワンタイムパスワード(OTP)の両方が同様の種類の攻撃に対して脆弱であるという事実は、フィッシング攻撃に対する耐性を高めるように設計されたUniversal 2nd Factorの開発における重要な動機となった。
時間同期やチャレンジ・レスポンスの要素を含まないワンタイムパスワードは、使用前に侵害された場合、必然的に脆弱性の期間が長くなります。2005年後半、スウェーデンの銀行の顧客が、事前に提供されたワンタイムパスワードをだまし取られました。[ 16 ] 2006年には、この種の攻撃が米国の銀行の顧客に対して使用されました。[ 17 ]
OTP技術の多くは特許で保護されています。そのため、各企業が自社の技術を推し進めようとするため、この分野の標準化はより困難になっています。しかし、RFC 1760(S/KEY)、RFC 2289(OTP)、RFC 4226(HOTP)、RFC 6238(TOTP)などの標準規格は存在します。
携帯電話自体が携帯型認証トークンになり得る。[ 18 ]携帯電話を介してOTACを受信する方法の1つに、モバイルテキストメッセージングがある。この方法では、サービスプロバイダが認証のためにデジタル証明書で暗号化されたOTACを含むテキストメッセージをユーザーに送信する。理論分析によると、モバイルテキストメッセージングは双方向認証と否認防止を提供するために公開鍵基盤(PKI)を使用する場合に高いセキュリティを提供する。 [ 19 ]
SMSはOTACを受信する方法として、銀行取引、クレジットカード/デビットカード、セキュリティなどの目的で私たちの日常生活で広く使用されています。[ 20 ] [ 21 ] [ 22 ]
電話を使ってユーザー認証を確認する方法は2つあります。
最初の方法では、サービスプロバイダがコンピュータまたはスマートフォンの画面にOTACを表示し、その後、既に認証済みの番号に自動的に電話をかけます。次に、ユーザーは画面に表示されるOTACを電話のキーパッドに入力します。[ 23 ]
2番目の方法は、Microsoft Windowsの認証とアクティベーションに使用され、ユーザーはサービスプロバイダから提供された番号に電話をかけ、電話システムから提供されるOTACを入力します。[ 24 ]
コンピュータ技術の分野では、電子メールによるワンタイム認証コード(OTAC)の使用は広義に、Webアプリケーションによるワンタイム認証コード(OTAC)の使用は専門的に知られている。
OTACは郵便または書留郵便でユーザーに送付することが可能です。ユーザーがOTACを要求すると、サービスプロバイダーはそれを郵便または書留郵便で送付し、ユーザーはそれを認証に使用できます。たとえば、英国では、一部の銀行がインターネットバンキングの認証のためにOTACを郵便または書留郵便で送付しています。[ 27 ]
不確定性原理に基づく量子暗号は、 OTACを生成するための理想的な方法の1つである。[ 28 ]
さらに、認証には暗号化されたコードを使用するだけでなく、匿名認証による分散型アクセス制御技術を提供するQRコードなどのグラフィカルなワンタイムPIN認証[ 29 ]も議論され、使用されています。[ 30 ] [ 31 ]