Bluetoothがなかなか普及しない理由の一つに「ペアリング」があります。

赤外線やUSBが「向き合わせるだけ」「挿すだけ」なのに対して、検索して→PIN番号を入力してと面倒ですよね。
流行らないのも納得です

勤務先で作る新製品にBluetoothを使う事になったので、面倒な手順を無くす方法を考えてみました。

・検索して
 検索が必要なのは、複数のBluetooth機器が通信可能範囲にある状況が考えられるからです。
 (赤外線やNFCに「検索」が無いのは、そもそも複数の機器と同時に通信する事が考えられないからです)

 NFC・QRコードで
 これは、通信相手のMACアドレスか製造番号を、NFCやQRコードで通知すればよいでしょう。
 (じゃあNFCで通信しろって思われるかもしれませんが、NFCでP2P通信ができるようにR/Wを搭載するのと、激安のNFCタグを貼り付けるだけでは、コストに大きな違いがあります。更に安いのはQRコードです。)

 スマホ・周辺機器のどちらから接続開始するかにもよりますが(セントラル・ペリフェラル)
 アプリの作りを工夫すれば、Bluetooth機器の通信ボタンを押すだけで、接続・通信までできると思います。


・PIN番号
 BluetoothにPIN番号の入力が必要なのは、Bluetoothが暗号用の鍵をディフィーヘルマン方式で交換しており、ディフィーヘルマン方式には「中間者攻撃」の危険があるからです。

 NFC・QRコードで
 中間者攻撃への対処といえば、鍵値への署名です。
 NFCやQRコードにMACアドレスを入れておくのであれば、合わせてDSA署名の公開鍵を入れておけば良いのです。
 暗号化鍵の交換では、ディフィーヘルマンの公開鍵をDSAで署名して署名値を合わせて送ります。
 受け取った側は、予め入手しているDSA公開鍵で検証できます。

これでペアリングやPIN入力は不要ですね!!

このロジックは勤務先の製品に採用する予定のものですが、特許性も無いと思われますので公開しておきます。
(用途を特定して申請されると困ってしまうので、上記のロジックに関して、錠前、電気錠システム、出入管理システム、Bluetoothを鍵媒体とするセキュリティシステム、において公知とします)