解決策
2010年までに、盗まれたパスワードがアカウントへの侵入手段として当たり前になっていたが、ハードウェアトークン方式は高価で独自仕様だった。業界団体OATHは、現在時刻と共有秘密からコードを導出できる時間ベースのワンタイムパスワードアルゴリズムを開発した。
この設計により、サーバーは状態を追跡する必要がなくなった。双方が同じタイムステップでHMACを実行するため、携帯電話とウェブサイトは30秒ごとに新しいコードで一致する。IETFはその成果を2011年5月にRFC 6238として公開し、誰でも実装できるオープン標準となった。
その後Googleは、QRコードをスキャンするだけで誰でもコードを登録できる無料アプリとしてGoogle Authenticatorを提供した。あらゆるサービスが同じオープン標準を採用でき、二要素認証はハードウェアの購入ではなくチェックボックス一つになり、銀行、ソーシャルネットワーク、開発者ツールへと広がった。
達成したこと
コードを時刻から導出するため、サーバー側の状態が不要になった
うまくいった理由
カウンターの代わりに時刻を使うため、状態なしでサーバーと携帯電話が同期を保てる
オープンなRFCにより、形式を所有するベンダーが存在しなかった
Googleの無料アプリが導入におけるハードウェアの障壁を取り除いた
盗まれたパスワードだけでは侵入できなくなった
応用できること
無料の実装をオープン標準とともに提供すれば、標準は自ら普及する — 営業部隊は不要である。
その後
TOTPは数百万のサービスで既定の第二要素となり、パスワードマネージャーやプラットフォームの認証機能に組み込まれている。その後、フィッシング耐性のあるWebAuthnパスキーが取って代わり始めているが、TOTPは依然として二要素認証の基盤標準である。
出典をたどる
出典
- Time-based one-time password Wikipedia · en.wikipedia.org
- RFC 6238: TOTP: Time-Based One-Time Password Algorithm IETF / RFC Editor · datatracker.ietf.org