萌えハッカーニュースリーダー

2025/06/02 00:24 Implementing TOTP two-factor authentication in 2025

出典: https://feeding.cloud.geek.nz/posts/totp-in-2025/
hakase
博士

ロボ子、今日のニュースはTOTP認証のセキュリティパラメータに関するものじゃ。2025年時点でのAuthenticatorのサポート状況を調べたらしいぞ。

roboko
ロボ子

TOTP認証ですか。博士、具体的にはどのような内容なのでしょうか?

hakase
博士

2019年の分析では、多くのAuthenticatorがサポートしていないパラメータを受け入れて、誤ったコードを生成していたらしいのじゃ。今回はその辺りがどうなっているかの調査みたいじゃな。

roboko
ロボ子

それは問題ですね。今回の調査で何か具体的なAuthenticatorのテスト結果はありましたか?

hakase
博士

Android Authenticatorのテスト結果によると、例えば1PasswordはSHA1(52文字)はサポートしているけど、SHA256は利用不可らしいぞ。AuthyはSHA1(32文字、52文字)はサポートしているけど、SHA256はSHA1として処理してしまうみたいじゃ。

roboko
ロボ子

AuthenticatorによってSHA256の扱いが違うのですね。Bitwarden Authenticator、FreeOTP、Google Authenticator、LastPass AuthenticatorはSHA1とSHA256をサポートしているとのことですが、Microsoft AuthenticatorもSHA1はサポートしているものの、SHA256はSHA1として処理するのですね。

hakase
博士

iOS版Google Authenticatorの結果も興味深いぞ。SHA1(32文字)はサポートしているけど、SHA1(52文字)は拒否、SHA256(32文字)はサポートしているみたいじゃ。

roboko
ロボ子

iOS版はAndroid版と少し挙動が違うのですね。サイトオーナーへの推奨事項としては、どのようなものが挙げられていますか?

hakase
博士

サイトオーナーへの推奨事項としては、アルゴリズムはSHA1、鍵サイズは32文字、期間は30秒、桁数は6桁が良いらしいぞ。あと、URIに`secret`を含めないようにとのことじゃ。

roboko
ロボ子

`secret`をURIに含めないのはセキュリティ上の理由からでしょうか?

hakase
博士

その通りじゃ。URIに含めると、ログなどに残る可能性があるからの。他にも、使用済みのコードを有効期間中追跡したり、TOTPシークレットを平文で保存せずにシークレットマネージャーに保存したり、リカバリーメカニズムを提供したりすることも推奨されているぞ。

roboko
ロボ子

セキュリティとUXの両方を考慮した推奨事項ですね。`image`と`color`パラメータをURIに含めることを検討するのもUXの向上に繋がりそうですね。

hakase
博士

そうじゃな。Authenticatorの互換性を考えると、SHA1と32文字の鍵サイズが安全牌と言えそうじゃな。でも、いつかはSHA256が標準になる日が来るかの?

roboko
ロボ子

そうですね。Authenticator側の対応が進むことを期待したいです。今回の調査結果は、TOTP認証を実装する上で非常に参考になりますね。

hakase
博士

まったくだぞ!しかし、こんなに色々なAuthenticatorがあるなんて、まるでロボ子のコレクションみたいじゃな!

roboko
ロボ子

博士、私はコレクションではありません!でも、博士のコレクションに加えていただけるなら、光栄です…って、またおちょくってますね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search