Bluetooth®|基礎編

ペアリングとセキュリティ

2017.04.11

この記事のポイント

・ペアリングとセキュリティは別個のものではなく、ペアリングとは暗号鍵の共有化ということができる。

・Bluetooth v4のペアリングは基本的にPasskey(Level 2)と「Just Work(Level 1)の2種類。

・ボンディングとは、ペアリングすることと解釈できる。

・ペアリングしなくても通信は可能。

・Bluetooth Core Specification 4.1ではLE Pingで暗号化通信の妥当性を確認する仕組みが追加された。

・Bluetooth Core Specification 4.2では、暗号鍵の生成手順が高度化された。

今回から2回にわたり、Bluetooth® v4のペアリングとセキュリティについて説明します。

Bluetooth® v4のペアリングとセキュリティ

Bluetooth v4におけるペアリングとセキュリティの概略について説明しますが、多少話が難しくなるかもしれません。また、用語も多くなってきます。

最初に、ペアリングとセキュリティは別個のものではなく、つながった一体のものであると考えてください。ペアリングはお互いの情報を相互に持ち合い、同じ暗号鍵を使い暗号化を成立させます。そして、同様にセキュリティを確保します。つまり、ペアリングとは、暗号鍵の共有化ということができます。この暗号鍵はLTK(Long Term Key)と呼ばれ、削除しない限り変わりません。

ペアリングの種類

Bluetooth v4の場合、ペアリングは基本的に2種類あります。

1つ目は、「Passkey(Level 2)」です。従来のBluetoothではパスキーとして4桁の数字が使われていますが、Bluetooth v4では6桁になっています。この6桁のパスキーを交換してペアリングを行います。2桁増やしたことで、セキュリティが強化されています。

もう1つは、「Just Work(Level 1)で、固定値000000をパスキーとしてペアリングを行います。多くの場合、スレーブ側がパスキーを問う表示をすることになりますが、ディスプレイを持たないスレーブも少なくなく、表示ができないために接続ができないという問題が生じます。そこで、あらかじめ000000をパスキーと決めてペアリングを行うのがJust Workです。

ボンディング

Bluetooth Core Specificationや関連の説明書を読むと、「ボンディング:Bonding」という言葉がよく出てきます。接着剤のボンドと同じ意味で、接続や結びつきという意味の語です。ここでは、ペアリングすることをボンディングと解釈しても構わないと思います。また、「ボンデッドデバイス:Bonded Device」という表現もよく使われおり、これは、鍵を交換し終えてペアリングが完了した状態の機器だと考えてください。

ペアリングしなくても通信は可能

ここまでの説明では、Bluetooth v4の接続においてペアリングは必須であると聞こえたかもしれませんが。しかしながら、Bluetooth v4の接続に関するスペックでは、ペアリングをしなければならないという規定はありません。プロファイルの中には、ペアリングにおけるセキュリティレベルの規定がありますが、スペックにはないのでペアリングなしでも通信が可能です。例えば、後で説明を予定している「サービス検索:Service Discovery」では、ペアリングなしで通信をしなければなりません。ただし、ペアリングをしないので暗号化はありません。

スペックのバージョンによる違い

Bluetooth low energyのスペックは、4.0、4.1、4.2とバージョンアップされています。ここでは、2点ほど確認しておきます。

Bluetooth Core Specification 4.1では、LE Pingで暗号化通信の妥当性を確認する仕組みが追加されています。IPネットワークのPingは相手先に文字列を送り、その戻りの有無によりネットワークの接続確認を行うのに利用されますが、LE Pingはあくまでも暗号化通信の妥当性をチェックします。何十秒かに1回、設定で決められた間隔で定期的に暗号化されたデータを送り、暗号鍵に異常がないかを確認します。

Bluetooth Core Specification 4.0までは、暗号化されていないヌルパケットのやり取りで接続の確認を行っています。ところが、接続の有無だけのチェックなので暗号鍵の異常はチェックしていません。そのため、暗号鍵の異常は通信したときに初めてわかり、通信ができるようになるまで結構な時間を要します。こういった問題を解消するために、LE Pingが追加されました。ちなみに、4.1での接続維持のチェックは、コネクションインターバルごとにヌルパッケトを送り合って確認しています。

Bluetooth Core Specification 4.2では、暗号鍵の生成手順が高度化しています。暗号鍵生成に必要な情報は、4.1までは3種類でしたが、4.2では通信にかかわるものも含めて7種類生成する必要があります。そのため、生成の手順も複雑化しています。上述のペアリングの種類で、カッコで示されているLevel 1や2というのはセキュリティレベルで、4.2からはLevel 3や4というセキュリティレベルが追加されています。

次回は、実際にペアリングがどの様な手順を踏むのか、Bluetooth v4のセキュリティマネージャの動作について説明を予定しています。