Help us understand the problem. What is going on with this article?

iOSのFIDO対応についての考察

はじめに

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を使うことになる
capture.JPG

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で一般公開できるかについては不明。

noby111
ARKitを使って個人アプリ開発をしています。 最近はFIDOを勉強しています。
https://portfolio-e3de3.firebaseapp.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away