私たちは、BLEを介して通信する小さなハードウェアデバイス(「パック」と呼んでいます)と、Android用アプリケーション& iOSと対話しています。私たちはパックに接続しているアプリ(C#/ Xamarinで書かれています)を持っていて、彼らはデータを接続したり送ったりしています。BLE(Bluetooth Low Energy)ペアリングとボンディング
this web siteによれば、最初にBluetooth接続が行われると、セキュリティ情報を交換するという意味の2つのデバイスがペアになります。
質問1:セキュリティ情報の交換が自動的に行われることを私は理解していますが、コードを実行するためにコード内で行う必要はありません。
質問2:(キーを含むセキュリティ情報の初期交換後の)通信が暗号化されることを保証していますか?
質問3a:Androidデバイスで、2つのBLEデバイスが合意したセキュリティ機能を確認するために接続をクエリするにはどうすればよいですか?
質問3B:
3aと同じですが、iOSデバイス上のパックは話すために何も表示(LEDのカップルやボタンを)持っていないので、ボンディング用のPINを表示することはできません。ユーザーがモバイルアプリケーションでボンディングを開始し、BLE接続で何らかのコマンドを送信することを計画しています。これに応答して、パックは何らかのパターンでそのライトを点滅させ、ユーザがボタンを押すのを待つ。タイムアウト時間内にボタンが押されると、ボンディングが行われます。
質問4:BLE接続をできるだけ安全に保つために、ボンディングのベストプラクティスは何ですか?
[情報セキュリティ](http://security.stackexchange.com)でおそらく最もよく尋ねられます。 – zaph
暗号化を要求しない限り、データは暗号化されません。暗号化された属性にアクセスするiOSでは、ユーザーにPINを尋ねるペアリングダイアログが表示されます。 – Paulw11