この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "ワンタイムパスワード"
ワンタイムパスワード (英: one-time password、OTP) とは、コンピュータリソースに対するアクセス用に発行される、一度限り有効なパスワードのことである。 ワンタイムパスワードの目的は、コンピューターのアカウントのようにアクセス制限されたリソースに対して未承認アクセスすることをより困難にすることにある。従来の固定パスワードによるアクセス制限では、十分な機会と時間を与えられた承認を受けない侵入者にとっては容易にアクセスしうる。定期的にパスワードを変更することで、それも一度限り有効な(いわば使い捨ての)ワンタイムパスワードを利用することで、こうしたリスクは大幅に低減することができる。 ワンタイムパスワードには、基本的に5つのタイプがある。 一つめのアプローチは、レスリー・ランポートが考案した一方向性関数を用いたものである。一方向性関数 fを用いたワンタイムパスワードシステムは、初期シードsを与えることで機能しはじめ、以下の式のように、一方向性関数 f を繰り返し適用することで必要個数のパスワードを生成する。 f ( s ) , f ( f ( s ) ) , f ( f ( f ( s ) ) ) , . . . , f ( f ( . . . f ( s ) ) . . . ) {\displaystyle f(s),f(f(s)),f(f(f(s))),...,f(f(...f(s))...)} 作成したパスワードは、生成順とは逆に使っていく。 f ( f ( . . . f ( s ) ) . . . ) , . . . , f ( f ( f ( s ) ) ) , f ( f ( s ) ) , f ( s ) {\displaystyle f(f(...f(s))...),...,f(f(f(s))),f(f(s)),f(s)} 無限に連続するパスワードが必要な場合は、シードsに対するパスワードの組を使い切った後で新しいシード値が選ぶ。 もしも、侵入者に生成したパスワードを知られてしまった場合、侵入者はそのパスワードを用いて一定期間の間アクセスやログインをすることができる。しかし、各パスワードについて有効期限を定めておけば、侵入者は有効期限内にしかアクセスやログインを行えない。逆関数 f − 1 {\displaystyle f^{-1}\,} を計算すれば、以前のパスワードから一連のパスワードの中で次に有効なものを入手できるが、関数 f {\displaystyle f\,} に暗号ハッシュ関数を用いれば、逆関数の算出は実用的には不可能である。 時刻同期ワンタイムパスワードはしばしば物理的なハードウェアトークン(ワンタイムパスワードを生成する個人用トークンが各ユーザーに配布される)とともに用いられる。トークン内部は認証サーバーの時計と同期し続ける正確な時計となっている。こうしたワンタイムパスワードシステムにおいては、新しいパスワードは以前のパスワードや秘密鍵よりもむしろ現在の時刻に基づいて生成されるため、時刻はパスワード・アルゴリズムの重要な部分を占める。 時刻同期ワンタイムパスワードを生成するために、しばしば携帯電話やPDAが用いられる。このアプローチは、多くのインターネットユーザーがすでに携帯電話を保有していることから、よりコスト効率の高い選択肢になりうる。さらに、このアプローチでは、ユーザーがアクセスする必要のあるセキュリティ・ドメインごとに異なるハードウェアトークンを携帯しなくてもすむため、より利便性に優れているといえる。 この方式では、ワンタイムパスワードを利用するにあたりユーザーは正規に認証を受けるための時刻同期チャレンジ(問題)に対するレスポンス(回答)をサーバーに提示する必要がある。レスポンスはクライアント側でチャレンジの内容とパスワードの文字列を基に計算される。この作業は、具体的にはトークンに値を入力することで行われる。認証可能なワンタイムパスワードが複製されることを避けるため、通常はカウンターが組み込まれ、もし同じチャレンジが二度獲得されると、異なるワンタイムパスワードを生成する。同期問題が生じる可能性があるため、通常以前のワンタイムパスワードを組み込んで計算することはしない。EMVは欧州でクレジットカードのために「チップ・オーセンティケーション・プログラム」[注 1]と呼ばれるシステムの使用を始めている。 トランザクション認証番号(TAN)は、いくつかのオンライン・バンキング・サービスで、銀行取引を認証するための単独で使用するワンタイムパスワードとして採用されている。 典型的なTANシステムにおいては、まず顧客は銀行に行き、自らを認証する。次に、銀行は50種のユニークかつランダムに生成されたパスワードのリストを紙に印刷し、顧客に手渡す。顧客は自宅からオンライン・バンキングの取引を行う際にはパスワードリストの中の一つを使って署名し、使ったパスワードをリストから消す。銀行は自らが顧客に対して発行したTANの一覧に対して使われたTANを確認する。これが一致すれば、取引は処理される。一致しなければ取引は受け付けられない。ひとたび使用されたTANは消費され、以降の取引では使用することができない。 一般的にワンタイムパスワードを配布するために用いられる技術は、ショートメッセージサービス(SMS)である。SMSはすべてのハンドセットで利用でき、多くの顧客ベースを持つユビキタスなコミュニケーション・チャネルなので、SMSによるメッセージングはすべての顧客に低廉なTCOでリーチする上で最も大きな潜在能力を持っている。トークンやスマートカードなど従来の認証方式は、実装により多くのコストがかかり、保有するにも値が張り、しばしば消費者から抵抗を受ける。そうした方式は、フィッシング攻撃者が顧客をだましてトークンやスマートカードが生成したワンタイムPINを聞き出すことでオンラインセッションをハイジャックする中間者攻撃に対する脆弱性が指摘されている。また、トークンは紛失する可能性があり、ワンタイムパスワードを携帯電話に統合することで、新たな携帯機器を持ち運ぶ必要がなくなり、より安全でシンプルに認証を行える可能性がある。 時刻同期ワンタイムパスワードには、明確なコスト節約効果がある。ユーザーはパスワードを生成しても使わなかったり、ミスタイプをしたりする傾向がある。時刻同期方式でないワンタイムパスワード・システム上で、これをすると、クライアントと認証サーバーが非同期を起こしてしまう。この結果、認証サーバーとクライアントの非同期状態を解消するために新たなクライアントを再発行しなければならず費用が発生してしまう。 時刻同期方式でないワンタイムパスワード・システムの認証サーバーはこの問題に配慮する必要がある。具体的には、間違ったパスワードを無視する、次に見込まれるパスワードの1つだけではなくより多く(例えば10個)の中のいずれでも受け付ける、再同期機構を追加するなどの方法が考えられる。こうした配慮を施すことで、実装に際して余分な労力、例えばサーバーシステムのコストに対する影響が生じるが、同期問題は回避できる。 (原文:サーバーはこの問題に配慮(間違ったパスワードを無視したり、次の1つのパスワードだけではなく、例えば10個のパスワードのいずれでも受け付けるか、再同期機構を追加するかにより)する必要があり、そうすれば、実装時に余分な労力、例えばサーバーシステムの価格に対する影響が生じるが、同期問題は回避できる。)
目的
技術的分類
数学的アルゴリズムに基づき、古いパスワードから新しいパスワードを生成する方式
認証サーバーとクライアントからの間で時刻同期をしてパスワードを供給する方式(時刻同期タイプ)
数学的アルゴリズムに基づき、チャレンジ(認証サーバーあるいはトランザクションの詳細によって選ばれる乱数など)と以前のパスワードの代わりのカウンターに基づき新しいパスワードを生成する方式(チャレンジレスポンスタイプ)
紙に印刷されたパスワードのリストを用いる方式(トランザクション認証番号タイプ)
ワンタイムパスワードを携帯電話などの「out-of-band」(アクセスに用いるネットワークとは別の帯域)を用いる方式
数学的アルゴリズムを用いるワンタイムパスワードの実装詳細は「ハッシュチェイン」を参照
時刻同期型ワンタイムパスワードの実装2016年(平成28年)11月途中まで発行されていたタイプのジャパンネット銀行(現PayPay銀行)のハードウェアトークン
チャレンジ型ワンタイムパスワードの実装
トランザクション認証番号型ワンタイムパスワードの実装詳細は「トランザクション認証番号(英語版
SMSを使ったアウト・オブ・バンド方式ワンタイムパスワードの実装
各技術の比較
時刻同期型の長所とその他の方式の短所
時刻同期型の短所とその他の方式の長所
Size:26 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef