はじめに
FIDOは2019年に入り、AndroidやWindowsで対応が進む一方iOSやmacOSはそのような話は出てきていなかった。しかし、WWDC2019にてSafariのFIDO対応が発表された。今後のiOSやmacOSでのFIDOの対応について考察をしてみる。
FIDOとは
- Fast IDentity Online(素早いオンライン認証)の略語
- 従来のパスワード認証に変わる、生態認証ベースの認証技術
- 簡単に説明すると、鍵の作成とサービスへの鍵の登録というフェーズで構成される
- 「鍵」は厳密にはPKIの秘密鍵であり、登録は公開鍵を登録する
FIDOの何が嬉しいのか?
メリット
- パスワードを介在しないので、パスワード管理から開放される
- パスワードを介在しないので、総当たり攻撃のリスクが無い
- 接続先が正しいか信頼チェーンによる認証が入るためフィッシングに強い
デメリット
- 秘密鍵を作成したデバイスを紛失したらログインできなくなる
- 1ユーザが複数デバイスを使ってログインしたい場合、その分だけ公開鍵の登録が必要になる
FIDOの全体像
FIDO
- UAF :パスワードの代わりに生体認証を使う方式(モバイルアプリ向け)
- U2F :PINと生体認証を組み合わせる方式
FIDO2
- WebAuthn :JavaScriptによりWebブラウザから生体認証を呼びだす仕組み
- CTAP :生体認証が無いデバイスが、生体認証を持つデバイスを利用するためのデバイス間プロトコル
それぞれの方式の評価
方式 | PIN入力 | 外部デバイスによる生体認証 | サービスへのアクセス方法 |
---|---|---|---|
UAF | 不要 | NG | 専用アプリ |
U2F | 必要 | OK | Webブラウザ |
WebAuthn | 不要 | NG | Webブラウザ |
WebAuthn + CTAP | 不要 | OK | Webブラウザ |
ブラウザの対応状況
IBMの調査によると各種ブラウザの2019/5/22時点の対応状況は以下の通り
ブラウザ | U2F | WebAuthn | CTAP |
---|---|---|---|
Chrome Desktop | 対応済 | 対応済 | 対応済 |
Chrome Android | 対応済 | 対応済 | 対応済 |
Firefox | 開発中 | 対応済 | 対応済 |
Edge | 未対応 | 対応済 | 対応済 |
Safari macOS | 未対応 | 開発中 | 開発中 |
Safari iOS | 未対応 | 未対応 | 未対応 |
WWDC2019での対応公表
WWDC2019のセッションWhats new in AuthenticationにてmacOS10.15のSafariでFIDOに対応することを公表した。
yubicoのiOSサポート開始発表
2019年7月に入りセキュリティキー大手のyubicoがiOSのサポートを開始したと発表
2019年9月12日にiOS13よりNFCタグへの情報書き込みができるようになったため、YubikeyのNFC機能がiOSでも使えるようになるとYubicoが発表した。
YubikeyがiOSで使えるようになったとしてもWebAuthnで使えないとあまり旨みがないのではというところではあるが、確認したところiOS13でもSafariとChromeではWebAuthnには対応していない様子。 iOS13.3のリリースノートによると、iOS13.3よりSafariがFIDO2に対応するようになるとのこと。
唯一BraveブラウザというものだけWebauthnに対応しており、iOSデバイスでもWebAuthnが動作することを確認した。
※ただし現状ではライトニング形式に対応したYubikeyを使うことになる
iOSとmacOSの今後についての考察
macOS10.15でFIDOの対応が発表され、yubicoもiOSをサポートすることを発表したため、近い将来iOSでもU2FとWebAuthnが利用できるようになる可能性が高い。前述の通り、既にiOSでもブラウザは限定されるがWebAuthnの利用は可能。しかし、AndroidのようにOS標準としてiOSでCTAPが使えるようになるのかは不明。
12/5に行われたFIDOアライアンス東京セミナーでのKDDIの発表にて、FIDO活用事例としてiPhoneをBLEのCTAPで認証器化してPC側の認証を行うという社内向けアプリを紹介していた。そのため、いま現在技術的にはiPhoneを認証器化することは可能な様子。
また、Googleの取組みとして caBLE というBLEでAndroidでもiOSでも生体認証機器がついているデバイスをFIDOの認証器化する仕組みを現在構築しているということも紹介されていた。
iOSをCTAPを使って認証器化する方法
CTAPのプロトコル仕様に沿って実装を行えば現時点でiPhoneを認証器化することは可能。
作成したアプリが正しく動くか確認するためのドライバが必要になるが、公式に用意されているConformance Toolが利用できる。
※利用するためには申請が必要
作成したアプリをAppStoreで一般公開できるかについては不明。