マイコン工作実験日記

Microcontroller を用いての工作、実験記録

Display + yes/no button

2013-05-06 09:10:15 | WT32/BM20
連休を使ってBlueHANDの動画を撮っているのですが、イザとなるともう少し手を加えてみたくなる箇所が出てきました。それが、SSP(Simple Secure Paring)の使い方です。これまでは、SSPを使ってのペアリングには Just worksというモードを使っていました。このモードだと例えばスマホからBluetoothデバイスを検索して、見つかったBlueHANDを選択するだけでPIN番号の入力やパスキー確認をすることなくペアリングが行えてしまいます。この機能はもともとマウスのような表示、キー入力機能を持たないデバイスを意識して用意されたものです。

BlueHANDはLCD表示器と電話キーパッドをもっていますので、スマホとBlueHANDの両方に同一のパスキーを表示して、両方のデバイス上でそれを確認してキーを押すことで、互いのデバイスを確認した上でペアリングさせることもできます。SSPではデバイスが持つ能力をいくつか想定していますが、これは "Display + yes/no button" という能力に相当します。この能力を使うように設定するには、WT32上では

SET BT SSP 1 1

という設定をしておきます。スマホ側からペアリング/接続操作をおこなうと、WT32には

SSP CONFIRM 0c:71:5d:10:85:1e 089944 ?

というようにパスキーの確認を要求するイベントが出力されますので、

SSP CONFIRM 0c:71:5d:10:85:1e OK

と応答してやることでキー確認を行います。この動作をBlueHAND上に反映させた様子が下の写真です。




両者の画面上に同じ6桁の数字 089944 が表示されました。スマホ側ではOKボタンを押し、BlueHAND側では0キーを押してペアリングを了承してやると、ペアリングが完了して接続されます。赤い*または#キーを押せば、ペアリングを拒否できます。このように接続する側/される側の両方のデバイスを操作する必要があるので手間がかかりますが、こうすることで互いを確認でき、悪意をもつなりすましデバイスと誤ってペアリング/接続してしまうことを防ぐことができます。