2012-05-02 12 views
1

iOSとCore Bluetoothの新機能です。私が知りたいのは、デバイスへの安全な接続を作成する方法です。私が理解CBCentralManagerからBLEペリフェラルへのセキュリティで保護された接続を作成するにはどうすればよいですか?

は次のとおりです。

[manager connectPeripheral:peripheral options:nil] 

は、BLEデバイスに接続するために提供されるAPIです。これで、どのように安全な接続を確立できますか?

答えて

1

どのように "保護された接続"を定義できますか? Bluetooth Low Energyの仕様によれば、2つの異なるBLEデバイス間で1つのBLE接続が確立されると、接続が保護され、この接続のためにリンク層パケットのAccessAddressフィールドが生成される。 AccessAddressの値は、他の接続の値とは異なります。詳細について知りたい場合は、138ページの36ページ、Bluetoothコア仕様4.0 [vol。 6]。

このBLE接続を介して送信されたデータを誰かが盗聴することが懸念される場合は、簡単ではないことがわかります。 BLEセンサーと同じMasterに接続しているBLEスレーブは1つのみで、BLEパケットをスニッフィングできます。この機能はController側で実装されています。コントローラファームウェアコードにアクセスできる企業はほんのわずかです。

さらに、センサーのデータがまだ心配されている場合、Bluetooth Low EnergyはBLEパケットの暗号化も提供します。

+1

「2つの異なるBLEデバイス間で1つのBLE接続が確立されている場合、その接続はセキュリティで保護されています」を確認することができます。これは単に間違っています。 iOSでは、すべての接続を安全にする必要があります。通常、特性が暗号化されているとマークされている場合、iOSはその特性を読み取っている間に不十分なパーミッションエラーが発生した後にのみペアリングを開始します。 – foresightyj

3

すべてのBT4.0接続はデバイス/センサーとiOSによって保護され、管理されていますが、これを制御することはできません。

BT4.0デバイスには、バインドされた接続と無制限の接続もあります。

バインドされた接続は、iOSデバイスと「ペア設定」されています。一度バインドされると、他のデバイスと通信しません。これにより、デバイスは常に境界の定められたiOSデバイスとの安全な接続を確保します。境界線は、オペレーティングシステム(iOS)によって制御されます。有界接続が必要なデバイスがiOSデバイスと通信する場合、iOSデバイスは、デバイスに接続するかどうかを尋ねるアラートビューを表示します。

無制限のデバイスは、サービスを継続的にブロードキャストし、すべてのiOSデバイスがそのデバイスに接続できるようにします。オペレーティングシステムはデバイス情報を記憶しません。通常、アプリケーションはUUIDを保存して、次回同じデバイスへの接続を確立します。これは、ほとんどのBT4.0センサーの通常の/推奨の方法です。

注:無制限のデバイスはiOSデバイスと「ペア設定」されていませんが、一度に1つのiOSデバイスとのみ通信します。

関連する問題