
プラグイン「Two-Factor」の認証許容時間は 15分
職場で導入している WordPress のホームページに、セキュリティ対策としてプラグイン「Two-Factor」を導入して、メールによる二要素認証が必須となる運用をお願いしました。
どんなプラグイン?
このプラグインは、以下のような方式による二要素認証を実現できます。
Email codes(メール)
Time Based One-Time Passwords (TOTP)
FIDO Universal 2nd Factor (U2F:秘密鍵)
Backup Codes(バックアップ検証コード)
これでセキュリティ対策も万全、と思っていたのですが… 「メールによる認証コードの有効時間は? 何分以内に入力しなきゃいけないの?」と質問が寄せられた。
実際のプログラム
いろいろと検索したものの、前述の WordPress 公式ディレクトリのページにも、そこまでの機能の詳細は記載されていませんでした。
PHP のプログラムについては、自作できるほど理解はしていませんが、プログラムを眺めていれば「何かわかるだろう」と考えて、配布されているプラグインの .zip ファイルをダウンロードして、PHP のプログラムを確認してみた。
まず、ルートフォルダにある class-two-factor-core.php を見ていると、以下のように別の .php を参照しているようです。

更に providers/class-two-factor-email.php を確認すると、以下の部分で認証コードの有効時間をチェックしているようです。

この比較対象となっている有効時間は、以下のように 15分が設定されているような感じ。

実際に、認証コードを送信して、15分が経過した後にログインしようとすると認証に失敗し、10分以上が経過して 15分までであれば認証が成功したので、この解析ははずれていないと思います。
まとめ
WordPress の公式ディレクトリでも配布されているプラグイン「Two-Factor」で、メールによる二要素認証を行う場合、発行された認証コードの有効時間は 15分と比較的余裕のある時間が設定されていることがわかりました。多くの場合、あわてなくても大丈夫でしょう。

WordPress を利用して、ホームページを運用しているケースは多々あると思いますが、今回のプラグイン「Two-Factor」の他に、プラグイン「SiteGuard WP Plugin」を有効化するなどして、セキュリティ対策を行っておかないと、ホームページが乗っ取られるなどの被害にあうかもしれないので注意しましょう!
こんなプログラムの解析っぽいことを行うことはあまりないのかもしれませんが、ちょっといけないことをしているようで、ワクワクする調査でした。😊