問題タブ [pairing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 安全な BLE ペアリング - 可能ですか?
実際に安全にペアリングする BLE デバイスを作ろうとしています。私の知る限り、トランスポート暗号化 (AES を使用) は、「長期キー」が交換されると、すべてのバージョンの BLE で安全です。
ブレ4.1
BLE 4.1 以前は対称暗号化を使用し、パスキー (PIN) はわずか 6 桁であるため、ペアリングを受動的に盗聴し、パスキーをブルート フォースし、そこから LTK を導出することは簡単です。低電力の BLE デバイスには非対称暗号化を行うのに十分な力がないと考えられていたため、これは設計上安全ではなかったようです。
ブレ4.2
BLE 4.2 は「セキュア接続」を追加します。これも壊れているようで、しかも2008 年に同じペアリング方法が Bluetooth 2.1 で使用されたときに壊れました!! ペアリングが完全に壊れるわけではなく (パスキーの入力方法のみ)、LTK ではなくパスキーのみを学習します。ただし、ペアリングの試行ごとにパスキーが変更されない場合、攻撃者は MitM 攻撃を実行できます。
帯域外ペアリング
Out-of-Band ペアリング方法は優れた選択肢であり、QR コードなどを使用できます。ただし、Android または iOS で OOB メソッドにアクセスするためのパブリック API はありません。Android は NFC 経由の OOB ペアリングをサポートしていますが、iOS はサポートしていません。
残っている唯一のオプションは、カスタム暗号化スキームを実装することのようですが、それはばかげた作業量です。
私の質問は次のとおりです。
Bluetooth SIG が BLE 4.2 で、6 年前にすでに安全ではないことがわかっていたペアリング方法を指定したのはなぜですか?
BLE を保護する既存の暗号化スキームはありますか? 理想的にはオープンソースで十分にテストされていますが、商用になる可能性があります。GATT は引き続き使用できますか?
ios - iOS でのプログラムによる Bluetooth PIN
帯域外の手段 (QR コードなど) を介して BLE デバイスの PIN を取得した場合、接続時にユーザーにプロンプトを表示しないように、プログラムで iOS に PIN を伝えることは可能ですか?
を使用してAndroid 4.4+で可能だと思いますsetPin()
。iOSに同等のものはありますか?
c# - Bluetooth ペアリング要求の自動受け入れ C#
2台のコンピューター間のBluetooth通信に取り組んでいます。私はオープンソースのライブラリ名32feet.netを使用しています。私はほとんどの仕事をしていません。2 台のコンピューターでチャットするためのアプリケーションを作成しました。しかし、通信を開始するには、クライアントとして機能する最初のコンピューターとサーバーとして機能する2番目のコンピューターから接続要求を送信する必要があり、ペアリング要求を手動で受け入れる必要があります。ペアリングのリクエストを送信しても問題ありません。しかし、私は手動でリクエストを受け入れたくありません。アプリケーションが自動的にリクエストを受け入れて通信を開始するようにしたい。これを行う方法はありますか?はいの場合、私は何をする必要がありますか。セキュリティについて妥協できる 私がしなければならない場合。前もって感謝します
接続受け入れのコード。
qt - BT ペアリングが失敗した後、BLE が切断される
Linux Raspbian Jessie Lite、Bluez 5.40。私はGATTサーバーと、着信「標準」Bluetooth接続(つまりA2DP)用の独自のエージェントを持っています。
GATT サーバーに正常に「接続」できますが、ユーザーが (BT からの) ペアリングの確認を受け入れない場合、次のエラーが表示されます。
qt.bluetooth.bluez: ペアリング "org.freedesktop.DBus.Error.NoReply" の作成に失敗しました
予想どおりですが、数秒後に BLE 接続も切断されます。それが正しい行動なのだろうか。BLE 接続と BT 接続は互いに独立していると思いました。
ios - iOS での Bluetooth ペアリング: カスタム ペアリング ダイアログの作成方法
iOS でパスキー ペアリング方式を使用するデバイスに接続すると、OS は必要に応じてペアリング ダイアログを表示します。代わりにカスタム ダイアログを使用するアプリをいくつか見てきました。デバイスに接続する前にそれを示していると思いますが、デバイスに接続するときに入力したパスキーを何らかの方法で使用して、OS ダイアログをバイパスします。
ペアリングにカスタム ダイアログを使用するにはどうすればよいですか?
または、パスキーを (コードで) 知っている場合、ペアリング ダイアログを完全に表示しないようにするにはどうすればよいですか?