Time-based One-time Password

Time-based One-time Password（タイムベーストワンタイムパスワード、）や時間ベースのワンタイムパスワードは、多要素認証（MFA）における所有物認証の一種であり、現在時刻と共有シークレットに基づいて生成されるワンタイムパスワード（一度限りのパスワード）である。

使用する際は、時間ベースのワンタイムパスワードは、パスキーとは異なり、フィッシング攻撃耐性が無いことに注意が必要である。

 アルゴリズム 
コードの生成方法として、専門企業が独自に開発したアルゴリズムを利用する場合と、HMACベースのワンタイムパスワード（HOTP）をベースとした「OATH-TOTP」()を利用する場合がある。

前者はあくまでプロプライエタリソフトウェアの一部であって、導入するために(金銭が伴う)何かしらの契約をしなければならないのに対し、後者は誰でも利用できるよう国際標準化された規格であり、共有シークレットを適切にユーザーへ配信できさえすれば良い。そのため、ほとんどのWebサービスで後者の方式を採用している。

単語通り「時刻ベースのワンタイムパスワード」と訳せば両方を包括し得るものの、 のタイトルにもなっていることから、一般に"TOTP"と言うときは後者を意図することが多い。文脈的に紛らわしければ、前者を指すときは製品名で、後者を指すときは規格名で呼べば確実に伝わる。

 計算式 
HOTP（HMACベースのワンタイムパスワード）は RFC 4226 にて以下のように定義されている。Kは共有秘密鍵。Truncate は RFC 4226 で、HMAC-SHA-1は RFC 2104 で定義されている。

 HOTP(K, C) = Truncate(HMAC-SHA-1(K, C))

TOTP（時間ベースのワンタイムパスワード）は RFC 6238 にて以下のように定義されている。上記の HOTP の計算式の C に下記式を使用する。デフォルトは T0 = 0, X0 = 30秒。T0 = 0 は1970年1月1日午前0時0分0秒からの経過秒数を使用することを意味する。

 C = (現在のUNIX時間 - T0) / X0

 パスキーとの併用 
パスキーはフィッシング攻撃耐性があり、また、数字を入力する手間がある時間ベースのワンタイムパスワードよりも素早く認証が出来るので、普段使いの認証としてはパスキーを使用し、万が一パスキーを紛失するなどの回復手段として、時間ベースのワンタイムパスワードを併用すると便利である。

 企業独自のアルゴリズムを搭載した製品 
基本的にはが制定される前から販売されている製品が該当する。

初期設定時は、共有シークレットをトークン内にダウンロードするためのID類を入力したり、シリアル番号を入力することで工場出荷時にトークン内に書き込まれた共有シークレットとユーザーアカウントをサーバー側で紐付けたりする。このため、一般的なOATH-TOTPの登録手順のようにユーザーが共有シークレットの生データに触れることはない。

互換性の向上のため、下に例示したシリーズ内にも、OATH-TOTPにも対応した製品や企業独自のアルゴリズムを搭載していない製品が存在する。
 製品例 
 BizXaaS Authentication (NTTデータグループ) 
 SecurID (RSAセキュリティ) 
 Digipass () 

 OATH-TOTPに準拠した製品 
サーバーから提供されたBASE32形式の登録に必要な情報を取り扱いやすくするため、それらの情報を格納したURIやQRコードも併せて表示するのが一般的である。共有シークレットを、OATH-TOTPに準拠する汎用型の管理ソフト・デバイスにユーザー自ら登録する。正しくワンタイムパスワードを生成できればどんなソフト・デバイスを選んでも問題ないので、各自のニーズにあわせて好みのものを選んで利用できる。

しかしながら、インターネットバンキングなどの高いセキュリティが求められる場面では、上記の一般的な登録手順のように共有シークレットの生データが露出する機会があること自体がリスクとなり得ることがある。この場合は、企業独自のアルゴリズムを搭載した製品のように専用型の管理ソフト・デバイスを利用する。
 汎用型の管理ソフト・デバイスの例 
Windows, iOS, macOS, Android, ChromeOS を使用するには Microsoft アカウント、Apple Account、Google アカウントが必要であるが、これらのアカウントと紐付く、OSメーカーが提供しているものとして下記がある。
 Google Authenticator
 iOS 15以降やmacOS Monterey以降の標準機能の設定 > パスワード
 Microsoft Authenticator

OSメーカー以外が提供しているものとして下記がある。
 Aegis Authenticator - フリー＆オープンソース
 andOTP
 ente Auth - フリー＆オープンソース
 FreeOTP
 KeePassXC - パスワードマネージャーであるが、OATH-TOTP管理機能も存在。
 YubiKey (Yubico)  - FIDOセキュリティキーであるが、OATH-TOTP管理機能も搭載。

 専用型の管理ソフト・デバイスの例 

 Symantec VIP (シマンテック)  - 汎用型のOATH-TOTP管理ソフトとしても使える設計である。

 セキュリティ 

 関連項目 

 ワンタイムパスワード
 多要素認証

 脚注 
 注釈 

 出典 

Category:認証技術
6238