Time-based One-time Password
Time-based One-time Password(タイムベースドワンタイムパスワード、英: TOTP)は、多要素認証(MFA)における所有物認証の一種であり、現在時刻と共有シークレットに基づいて生成されるワンタイムパスワード(一度限りのパスワード)である。
アルゴリズム
[編集]コードの生成方法として、専門企業が独自に開発したアルゴリズムを利用する場合と、HMAC-based One-time Passwordをベースとした「OATH-TOTP」(RFC 6238)を利用する場合がある。
前者はあくまでプロプライエタリソフトウェアの一部であって、導入するために(金銭が伴う)何かしらの契約をしなければならないのに対し、後者は誰でも利用できるよう国際標準化された規格であり、共有シークレットを適切にユーザーへ配信できさえすれば良い。そのため、ほとんどのWebサービスで後者の方式を採用している。
単語通り「時刻ベースのワンタイムパスワード」と訳せば両方を包括し得るものの、RFC 6238 のタイトルにもなっていることから、一般に"TOTP"と言うときは後者を意図することが多い。文脈的に紛らわしければ、前者を指すときは製品名で、後者を指すときは規格名で呼べば確実に伝わる。
企業独自のアルゴリズムを搭載した製品
[編集]基本的にはRFC 6238が制定される前から販売されている製品が該当する。
初期設定時は、共有シークレットをトークン内にダウンロードするためのID類を入力したり、シリアル番号を入力することで工場出荷時にトークン内に書き込まれた共有シークレットとユーザーアカウントをサーバー側で紐付けたりする。このため、一般的なOATH-TOTPの登録手順のようにユーザーが共有シークレットの生データに触れることはない。
互換性の向上のため、下に例示したシリーズ内にも、OATH-TOTPにも対応した製品や企業独自のアルゴリズムを搭載していない製品が存在する。
製品例
[編集]- BizXaaS Authentication (NTTデータグループ) [1]
- SecurID (RSAセキュリティ) [2]
- Digipass (OneSpan) [3]
OATH-TOTPに準拠した製品
[編集]サーバーから提供されたBASE32形式の[4]共有シークレットを、OATH-TOTPに準拠する汎用型の管理ソフト・デバイスにユーザー自ら登録する。正しくワンタイムパスワードを生成できればどんなソフト・デバイスを選んでも問題ないので、各自のニーズにあわせて好みのものを選んで利用できる。
しかしながら、インターネットバンキングなどの高いセキュリティが求められる場面では、上記の一般的な登録手順のように共有シークレットの生データが露出する機会があること自体がリスクとなり得ることがある。この場合は、企業独自のアルゴリズムを搭載した製品のように専用型の管理ソフト・デバイスを利用する。
汎用型の管理ソフト・デバイスの例
[編集]- Aegis Authenticator - フリー&オープンソース
- andOTP[5]
- ente Auth - フリー&オープンソース
- FreeOTP
- Google Authenticator
- KeepassXC
- パスワードマネージャーであるが、OATH-TOTP管理機能も存在。
- YubiKey (Yubico) [6]
- FIDOセキュリティキーであるが、OATH-TOTP管理機能も搭載。
専用型の管理ソフト・デバイスの例
[編集]セキュリティ
[編集]関連項目
[編集]脚注
[編集]- ^ BizXaaS Authentication - NTTデータグループ
- ^ RSA SecurID - RSAセキュリティ
- ^ Secure Transaction Signing - OneSpan
- ^ 登録に必要な情報を取り扱いやすくするため、それらの情報を格納したURIやQRコードも併せて表示するのが一般的である。
- ^ andOTP/andOTP, andOTP, (2020-08-11) 2020年8月11日閲覧。
- ^ OATH - TOTP (Time) - Yubico
- ^ Symantec VIP - シマンテック