パスワードのいらない世界 -あなたのスマホをセキュリティキーに-
2022年10月24日 月曜日
CONTENTS
はじめに
みなさんは普段FIDO2を使ったログインを利用していますか?
FIDO2は、公開鍵暗号方式を利用したセキュアな認証を実現するための標準規格です。ユーザはセキュリティキーと呼ばれるデバイスを利用することで、パスワード等の秘密の情報を覚える負担を軽減してくれます。また、リスト型攻撃やフィッシングの耐性を持っているため、安全で便利な次世代の認証方法として注目されています。
FIDO2の規格は2019年にW3Cで勧告されWeb標準となり、FIDO2を利用できるブラウザやデバイス、またログインできるサービスが増えてきています。私が携わっているクラウド型ID管理サービスであるIIJ IDサービスでも、2020年にFIDO2認証をサポートし、幅広いお客様にご利用頂いてもらっています。
以前も本ブログにて、FIDO2に追加される機能に関するお話( https://eng-blog.iij.ad.jp/archives/13703 )をご紹介しました。
今回はこの中で出てきた「Using your phone as a roaming authenticator」を実際に試してみたのでご紹介します。
「Using your phone as a roaming authenticator」とは、ユーザのスマートフォンがセキュリティキーになり、PCとBluetooth接続を行い、PCでFIDO2を使ってログインする、FIDO2仕様の新機能です。
これまでは、WindowsとMacというような異なる環境でFIDO2を利用する場合、
- (1) Windows HelloやTouch IDのようなプラットフォームにbuilt-inされているタイプのデバイスを、それぞれの環境でセキュリティキーとして登録するか
- (2) YubikeyのようなUSB接続するタイプのセキュリティキーを利用するか
の2択でした。(1) は環境が増えるごとにセキュリティキーを再度登録する必要があるため、(2) のYubikeyのような接続するタイプのセキュリティキーを利用するケースが理想的です。ただし、その場合、各々のユーザにセキュリティキーを購入してもらう必要があります。
「Using your phone as a roaming authenticator」では、ユーザがすでに所持しているスマートフォンが利用できます。Windowsとスマートフォン間、Macとスマートフォン間で事前ペアリングなしでBluethoothによる通信を行い、1つのスマートフォンをセキュリティキーとして利用し、様々な環境でオンラインサービスへログインできます。
検証環境
- MacBook Pro Monterey (12.6)
- WebブラウザとしてChrome (105)を使って、オンラインサービスを利用する。
- Windows 11 Pro (21H2)
- WebブラウザとしてChrome (105)を使って、オンラインサービスを利用する。
- Pixel 6 Pro (Android 13)
- セキュリティキーとして利用する。Bluetooth (v5.2)を利用する。
- IIJ IDサービス
- FIDO2認証に対応しているオンラインサービスとして利用する。
検証概要
- MacBookで登録: MacBookのChromeを使って、AndroidスマートフォンをIIJ IDサービスのセキュリティキーとして登録します。
- MacBookでログイン: MacBookで上記のAndroidスマートフォンを使い、IIJ IDサービスにFIDO2でログインします。
- Windowsでログイン: Windowsで上記のAndroidスマートフォンを使い、IIJ IDサービスにFIDO2でログインします。
本検証のポイントは「2台目のPCでセキュリティキーの登録が不要であること」と「事前のBluetooth接続が不要であること」の2点です。
検証結果
(1) MacBookで登録
1.MacBookでIIJ IDサービスにログインし、FIDO2で使用するセキュリティキーの一覧画面を表示する。
2.新しいセキュリティキーを登録する」ボタンをクリックする。
FIDO2で使用するセキュリティキーの登録画面を表示する。
3.「セキュリティキーを登録する」ボタンをクリックする。
Chromeがセキュリティキーの種類に関するオプション選択画面を表示する。
4.「新しい Android スマートフォンを追加」ボタンをクリックする。
ChromeがAndroidスマートフォン用の二次元コードを表示する。
5.二次元コードをAndroidで読み取る。
パソコンと接続するかどうか確認画面が表示される。
6.Androidで「許可する」ボタンをタップする。
Androidで本人確認画面が表示される。
7.Androidで指紋認証センサーをタッチする。
MacBookとAndroid間でBluetooth接続後、セキュリティキー登録が完了し、IIJ IDサービスのセキュリティキー一覧に登録されたセキュリティキーが表示されます。
(2)MacBookでログイン
1.MacBookでIIJ IDサービスのログイン画面を表示する。
2.IDを入力し、「次へ」ボタンをクリックすると、ChromeのFIDO2認証が始まる。
FIDO2で利用するセキュリティキー選択画面が表示される。
3.「Pixel 6 Pro」をクリックする。
Androidスマートフォン側の処理待ち画面が表示される。
4.Androidスマートフォンを確認する。
Chromeから「本人確認」が通知される。
5.「本人確認」の通知をタップする。
Androidで本人確認画面が表示される。
6.Androidで指紋認証センサーをタッチする。
MacBookとAndroid間でBluetooth接続後、FIDO2認証が完了し、IIJ IDサービスにログインできる。
(3)Windowsでログイン
1.WindowsでIIJ IDサービスのログイン画面を表示する。
2.IDを入力し、「次へ」ボタンをクリックすると、ChromeのFIDO2認証が始まる。
WindowsのChromeでは初めてスマートフォンを利用するので、ChromeにFIDO2で利用するセキュリティキーを登録する必要がある。
3.「新しい Android スマートフォンを追加」をクリックする。
ChromeがAndroidスマートフォン用の二次元コードを表示する。
4.二次元コードをAndroidで読み取る。
Androidで本人確認画面が表示される。
5.Androidで指紋認証センサーをタッチする。
WindowsとAndroid間でBluetooth接続後、FIDO2認証が完了し、IIJ IDサービスにログインできる。
まとめ
検証では、WindowsとMacという異なる環境での認証に、Androidのスマートフォンをセキュリティキーとして利用しました。今後このように様々なデバイスの組み合わせで、FIDO2を使ったログインが利用できるようになり、ユーザの利便性はますます向上していくでしょう。また、普段使っているスマートフォンをセキュリティ強化に利用できるというのもユーザとして嬉しいことだと感じました。
今回は今年3月に発表された機能である「Using your phone as a roaming authenticator」について紹介しました。
FIDO2では、もう1つ大きな機能 「Multi-device FIDO credentials」が追加されます。
これはFIDO2での認証の証明書情報をサーバに保存してデバイス間で共有する機能で、最近、Apple がパスキーとして大々的に発表しています。
便利で安全な機能が徐々に使えるようになってきていますので、興味のある方は是非ウォッチしてみてください。