Black Hat 2015で発表されたドローンが上空からIoTをハッキング!に関してちょっと調べてみました。
該当のペーパーはこちらZIGBEE EXPLOITです。
これによれば、ZigBeeの特定プロファイルにおける認証方式の仕様バグのようです。
(ZigBeeのプロファイル仕様を正しく把握できていないので、誤読があるかも)
内容
ZigBeeのプロファイルの内、以下の2つに関しての話題です。
-
Home Automation Public Application Profile (HAPAP)
住宅オートメーション用。On/Offスイッチ、サーモスタットなどの各種センサー -
Light Link Profile (ZLL)
住宅向け照明コントロール専用(HAPAPとは独立)
これらは仕様として
「接続ごとの暗号キーを決めるシーケンスにおいて、初回のキーに決め打ちのキーを使うことが選択肢として設けられている」
ようです。
そして、センサーデバイス側の事情として「低コスト、低スペック」があり、ZigBeeネットワークに参加してくる側が、他に選択肢を持たない場合、受ける側(Trust Center)もそれに応じてしまいます。
決打ちのキーで暗号化された通信路でAESのキーを作成し、それ以降は生成したキーを使って通信をします。このため、途中から解読することは難しく、ネットワークに参加する初回のみが危ないようです。
ただ、接続後でも、ピンポイントでJammingし、センサー側をリセット状態にすることで(この辺のシーケンスは不明)、再度初期化シーケンスを行わせることが可能なようです。
さらには、セキュアなやりとりを選択するデバイスだとしても、Jammingをうまく使うことで、順番に選択肢を狭めていき、最終的にデフォルトの決打ちキーを選択させてしまうことも可能だとか。
この決打ちキーは、ZigBeeのタッチリンクにも使われているようで、同様に盗み見ることができてしまうようです。
照明On/Offならまだしも、ドアロックを乗っ取られるとかなりマズいですね。
このペーパーでは、盗み見用のハードもソフトもそろいつつあり、現実的な問題になるのも時間の問題だと警告しています。
対応方法
ペーパーでは、対応方法として以下をあげています。
-
そもそも耐タンパにすべし
(セキュアなキーを持っていても開けたらわかるなら意味ない) -
デフォルトの決打ちキーを使うな
-
キー生成シーケンスは別チャネルでやれ
-
キーは定期的にローテーションしろ
だそうです。
ZigBeeの仕様として、何が Must で、何が Option なのかが把握できていないので、「できるけどやらない」、「option指定だからやらない」、「コスト的にやれない」、「仕様からはずれちゃうからやらない」などの理由の予想がつかず、正直ピンときていません。
その他
他にも、同様に初回のキーやりとりがあぶないと、別シーケンスの提案をしているペーパーもありました。
参考
下記はいずれもZigBee公式サイトから。
所感
ZigBeeのことを、あまりに知らなすぎて調べるのが難しいです。