表示・入力機能(IO Capabilities)が無いCyBLEセントラルとペリフェラルの認証 - KBA220286 - Community Translated (JA)

Version 2

    Community Translated by  kama_1693131 Expert      Version: **

     

    Translation - English: Authenticate CyBLE Central and Peripheral when Devices do not have IO Capabilities – KBA220286

     

    質問:

    どのようにして表示・入力機能(IO Capabilities)が無いCyBLEセントラルとペリフェラルの認証を行いますか?

     

    回答:

    アプリケーションで以下のロジックを検討してください。

     

    要件:

    ・セキュリティの使用:暗号化を用いた認証によるペアリング

    ・固定のパスキーを使用、表示能力設定はするが、表示させない

     

    想定:

    1.ペリフェラルは表示機能(display capability)設定が選択されており、既知のパスキー(123456)を使用

    2.セントラルはキーボードの入力機能設定がされている

     

    実装:

    ペリフェラル側:

    パスキーとして123456を設定するためにCyBle_GapFixAuthPassKey() APIを使用します。

    CyBle_GapAuthReq(connHandle.bdHandle, &cyBle_authInfo);をコールし、認証かペアリングを開始します。

    表示機能(display capability)が選択されている場合CYBLE_EVT_GAP_KEYINFO_EXCHNGE_CMPLT のイベントがトリガーされます。

    パスキーを実際に表示させたくない場合には、このイベントハンドラに対するコードを一切追加しないでください。

    もし認証に失敗した場合、CYBLE_EVT_GAP_AUTH_FAILEDがトリガーされます。

    このイベントに対しては切断のAPI(切断要求の送信)をインクルードさせてください。

     

    セントラル側:

    認証要求の送信をします。キーボードの入力機能設定がされている場合、パスキー入力要求がトリガーされます。

    認証応答に対して既知のパスキーである123456をファームウェアにハードコードします。

    事実上認証は自動的に実施されます。

    もし他のセントラル機器が接続を実施しようとした場合には表示されたパスキーの入力を求める表示が行われますが、

    このセントラルは表示能力がないため表示されたパスキーの入力ができません。

    上記の場合には認証失敗イベントがコールされます。