先日、当サイト、及び私が関与しているWordPressで稼働しているサイトは、全て「Google Authenticator」というプラグインを使って、Google二段階認証サービスを連携させてしまいました。
クライアントのサイトはもちろんクライアントのスマートフォンにアプリをインストールして頂いて、Google認証システムのコード生成を導入していただいたのですが、自分で運用している複数サイトにそれぞれGoogle認証システムのコード生成をもたせていると、ジェネレーターの管理がめんどくさくなって来ました。どのサイト用だったっけな?と迷うんですよね。
いっその事、自分専用なんだから一つで良いんじゃね?って思ったので、Google Authenticatorの設定にある、「Secret」という項目に着目しました。Create New SecretというボタンをクリックするとSecretコードが生成されます。これを鍵にしてGoogle認証システムを利用しているものだと推測しました。まだこのレベルのソースコードは読めないので実際に検証してみるしかないですね。
まず、WordPressの画面からはグレーアウトされていてテキストボックスを更新する事は出来ません。仕方がないので試しにMySQLのデータベースを確認してみたところ、下記テーブルの値がSecretキーと共通していました。
wp_usermeta–>meta_key–>googleauthenticator_secret
つまりMySQLのこの値を同じ値にしてしまえば、Google認証システムのコード生成を一つで済ませてしまえそうです。念の為にWordPressログインした状態でMySQLを直接操作して書き換えてみました。そしてWordPress側をリロードするとMySQLに書き込んだSecretキーにWordPress画面のSecretキーが更新されました。DBの連携部分は推測したとおりです。
次にAndroidデバイスにインストールしてあるGoogle認証システムを起動してQRコードを読み取ってみます。既存の他のサイトのコードと比較してみれば自ずと結果は分かりますね。やってみると全く同じ数字が表示されることを確認しました。Secretキーの書き換えだけでキーの一元化が出来ることがわかりました。
MySQLを直接操作して書き換えるので少し難易度は上がりますが、MySQLをいじり慣れている人なら容易ですね。phpMyAdmin等を使っているならさほどリスクは無いのではないかと思います。一応ログインしている状態で作業して、別のブラウザでログイン検証した方が良いでしょう。お約束ですが責任は持てませんので自己責任でどうぞ。
いやぁ、これでGoogle認証システムのアプリ画面がスッキリした。7つ並んでいたのが3つになったのでスッキリです。Nexus7の場合は画面に表示しても余裕があるのでさほど問題でもないんですが、スマートフォンはいちいちスクロールしないと見られないので不便だったのですよね。
WordPressサイトを複数運用している人はきっと必要になる小技ですね。余談ながらWordPressのデフォルトユーザー「admin」が相変わらず狙われている様ですので、未対応の方は早急に対処した方が良いですね。
WordPress の“admin”アカウントを狙った大規模な不正ログイン攻撃、パスワードへの警戒を- 最新ニュース|MSN トピックス
コメント
[…] ← 前へ […]