WebAuthnでBLEデバイスを使う方法
iOSデバイスを外部認証機器と使うためにはCTAPのBLEの実装が必要ですが、どこのWebAuthnのデモサイトにアクセスしてもBluetooth機器の認証を目にすることができませんでした。
調べてみたところ、Bluetoothの認証が出るか否かはWebAuthnのサーバ側の設定ではなく、アクセス元のブラウザがWeb Bluetooth APIに対応しているか否かで決まるそうです。
Web Bluetooth APIとは
- WebブラウザがBluetoothを制御するためのAPI
- ChromeやOperaでは利用できるが、FirefoxやIEでは対応は微妙らしい
ChromeでWeb Bluetooth APIを有効にする方法
Web Bluetooth APIは隠し機能のため、通常の設定メニューには出てきません。
アドレスバーに chrome://flags/
を入力し、「Web Authentication API BLE support」をenableにします。
設定を行った上で、Webauthn.ioにアクセスすると、次のようにBluetoothセキュリティキーが選択肢に現れます。
注意点
iOSのBluetoothアプリを作成し、chromeのWebauthnと通信が行われるかを確認しましたが、OSのバージョン やBluetoothのバージョン によっては通信ができませんでした。
クライアント側
OS
- Windows10 → NG(ChromeでWeb BluetoothをONにしても選択詞が出てこない)
- macOS 10.14.3 → OK
- macOS 10.15 beta4 → NG(BlueTooth Explorerでペアリングができない)
BlueTooth IF
- 4.0 → OK
- 4.2 → OK
※後述するBLEのペアリングをすればBlue Toothのバージョンに関わらず通信可能
認証機器側
OS
- iOS 12.4 → OK
- iOS 13 beta 4 → NG(Central側からの通信が受信されない)
今のところ、アプリの実装が試せそうなのは BlueTooth4.2を搭載の macOS 10.14とiOS12端末の組み合わせのみのようです。
BLEのペアリング方法
おそらくGoogle謹製のTitanを使えばBluetoothセキュリティーキーの選択詞を選んだ後にペアリングができるのでしょうが、自作のアプリではChrome経由でペアリングができません。
BlueTooth Explorerを使えばペアリングすることができました。
BlueTooth Explorerのインストール方法
- Xcodeを起動
- メニュー > OpenDeveloper Tool > More Developer Toolsを選択
- Safariが起動し、ダウンロードページが開くので Additional Tools for Xcode をダウンロードする(バージョンはXcodeに合わせる)
- dmgファイルを開いたイメージのHardwareディレクトリ配下にあるので/Applicationsにコピーする
BlueTooth Explorerを使ったBLEペアリング方法
- BlueTooth Explorerを起動
- メニュー > Devices > Low Energy Devices を開く
- 下記のようなウィンドウが開くので、左のペインの自作アプリを選択
- CTAPで規定されたServiceを開き、4つあるいずれかのCharacteristicを開く
- この時点でiOSとmacOS側にペアリングを尋ねるダイアログが表示されるのでOKを選択する
Author And Source
この問題について(WebAuthnでBLEデバイスを使う方法), 我々は、より多くの情報をここで見つけました https://qiita.com/noby111/items/2f9bef719e2b6be2d3d2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .