TOTP
Time-based One Time Password (RFC6238)
https://tools.ietf.org/html/rfc6238
ワンタイムトークンの規格で、共通鍵方式であり時間を掛け合わせた 6〜10桁程度のトークンを生成する。
そのため、プロバイダとクライアント間で時刻設定が許容可能な範囲で同じである必要がある。
Google アカウントなどの二要素認証などで活用される。
二要素目にスマートフォンの所有確認が利用されるため QRコード を介したセットアップがよく行われる。
Google Authenticator や Authy で利用可能なワンタイムトークンはこれ。
npm や gem などで実装に利用可能なパッケージが提供されており実装は比較的簡単。
ちなみに機能を有効にすれば Vault をプロバイダとしてもクライアントとしても活用できる。
時間内であれば再利用可能なのでトークンを再利用するような攻撃には脆弱。
再利用ができない仕組みとして HOTP がある。