Google アカウントに FIDO2 対応のセキュリティキーを設定してみる

Google アカウントにセキュリティ キーを登録してみます。FIDO2 に準拠するためフィッシングなどの攻撃にたいして耐久性があります。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。

最近セキュリティに目覚めまして(本当は目覚めてない)セキュリティキーを入手したので Google アカウントへの設定をまとめてみます。

セキュリティ キー

ハードウェアによる多要素認証では、OTP(ワンタイムパスワード)を使用することが多々あります。しかし、OTP では フィッシングサイトなどによる MITM(中間者攻撃)を防げないなどの問題が有りました。そこでよりセキュアなオンライン認証技術の標準化を目指してFIDO Allianceが発足し、FIDO2プロトコルなどを定めています。FIDO2 などのセキュリティプロトコルに対応した物理デバイスがセキュリティ キーです。

最初は Google アカウントに設定するので Google 純正品であるTitan Security Keyを入手しようと思ったのですが、2022年2月14日現在日本では在庫なしとなっています。そのためセキュリティ キーの大手である Yubico 社の YubiKey を入手しました。

今回手に入れたのはYubiKey 5C NFCです。

YubiKey 5C NFC では、以下のように様々なプロトコルに対応しています。

  • WebAuthn
  • FIDO2
  • FIDO U2F
  • smart card (PIV)
  • Yubico OTP
  • OpenPGP
  • OATH-TOTP
  • OATH-HOTP
  • Challenge-Response

やってみる

以下のドキュメントを参考に Google アカウントに YubiKey を登録していきます。

各ブラウザ操作は FIDO2 に対応したブラウザを前提とします。現時点では主要なモダンブラウザで対応しているため問題ないかと思います。ここでは MacBook Pro (13-inch, M1, 2020) の macOS Monterey 上の Google Chrome で操作を行います。

  • Google Chrome
  • Microsoft Edge
  • Mozilla Firefox
  • Apple Safari

セキュリティ キーの入手

2 段階認証プロセスにセキュリティ キーを使用する

最初に手順 1: キーを取得するとありますが、前述のように YubiKey を購入しました。著者は Yubico 社の国内正規代理店である株式会社ソフト技研様からAmazon.co.jp 経由で購入しました。セキュリティ キーは認証の要なので、信頼できる販売店から購入してください。間違っても中古品は絶対に購入しないでください。

アカウントにキーを登録

本人確認の方法を設定していない場合には、キーを紛失した場合に備えて設定を行います。

Google アカウントにアクセスできなくなるのを防ぐ

Google アカウントのセキュリティのページを開き、Google による本人確認の方法を確認します。再設定用の電話番号再設定用のメールアドレスを設定します。

再設定用の電話番号を設定する場合

SMS が利用できる電話番号を登録します。

携帯電話番号を追加してくださいをクリックするとパスワード入力画面が表示されるため、パスワードを入力して次へをクリックします。

再設定用の電話番号の追加をクリックします。

電話番号を入力して次へをクリックします。

ここでコードを入手をクリックします。すると登録した番号にテキストメッセージが届きます。

このように登録した電話番号宛にテキストメッセージが届きます。コードの先頭にG-が付いていますが、後続の数字だけメモすれば大丈夫です。

届いたテキストメッセージに記載されていたコードの6桁の数字を入力して確認をクリックします。

このように電話番号が登録されます。

再設定用のメールアドレスを設定する場合

メールアドレスを登録します。

メールアドレスを追加してくださいをクリックするとパスワード入力画面が表示されるため、パスワードを入力して次へをクリックします。

対象としている Google アカウントとは異なるメールアドレスを登録します。

登録したメールアドレスにコード確認のメールが届きます。6桁の確認コードをメモします。

確認コードを入力して、確認をクリックします。

セキュリティ キーの登録

実際にセキュリティ キーを登録します。

セキュリティの登録ページを開くには、Google アカウントのセキュリティページ内のGoogle へのログインの項で2 段階認証プロセスをクリック、「アカウントを 2 段階認証プロセスで保護する」のページで使ってみるをクリック、パスワード入力、「電話番号の設定」ページでその他のオプションを表示をクリックして出てくる選択肢の中からセキュリティ キーをクリックする、という凄く長い操作が必要なので、以下のリンクから直接飛んでください

セキュリティ キーをお持ちですか?

パスワード入力を求められるので、入力すると以下のページが表示されます。次へをクリックします。

セキュリティ キーを挿入する旨のメッセージが出てくるので、マシンにセキュリティ キーを接続します。

正常に認識されると YubiKey 5C NFC ではyの字の部分が明滅します。

yの字の部分に触れます。

ブラウザでアクセスの許可を確認する旨のメッセージが表示されるので、許可をクリックします。

セキュリティ キー名を入力して完了をクリックします。

セキュリティ キーが登録されました。

セキュリティ キーを使ったログイン

セキュリティ キーを登録したアカウントで実際にログインしてみます。

シークレット ウィンドウを開いて Google アカウントにログインしてみます。

メールアドレスを入力して次へをクリックします。

パスワードを入力して次へをクリックします。

セキュリティ キーをタップする旨のメッセージが出てきます。

セキュリティ キーを接続してy字の箇所に触れます。

セキュリティ キーで認証できました。

このように正常に Google にログインできています。

これ以降は、必要に応じてセキュリティ キーだけ求められたりパスワードの入力が必要になったりします。

さいごに

多要素認証(MFA)によりパスワードリスト攻撃やブルートフォース攻撃などは防ぐことが出来るようになりましたが、フィッシングサイトなどの場合はMFAであってもトークンを入力してしまうとそのまま攻撃者が正規のサイトでトークンを使ってログインできてしまうという問題がありました。FIDO認証により堅牢な認証が実現できるので皆様も利用してみるのは如何でしょうか?