今年2020年5月にBluetoothの標準使用上の脆弱性、BIAS : Bluetooth Impersonation AttackS が発表されました。これは、昨年発表されたKNOB Attackの発展版の様な脆弱性です。KNOB Attackを発表したのと同じ研究チームが発表しています。
KNOB Attackについては過去の記事にまとめています。
BIASについての詳細は、脆弱性を発表した公式サイトをご確認下さい。
複数のメディアでも取り上げられていますが、おそらくこれを読んだだけでは、理解不能ですね。ということでもう少し掘り下げてみます。
BIASは初回接続時に交換・生成されるLnik Keyと呼ばれる、Key情報を知らなくても、なりすまして接続できる点が問題になっています。
2回目以降の再接続時には、お互いのデバイスが正しいデバイスかどうかを、このLink Keyを用いた相互認証を行っています。
以下の乱数を含むLMP_au_randメッセージを送り、それに対してLnink KeyをベースにしたLMP_sresメッセージを生成して送ります。チャレンジ&レスポンス形式です。
これを相互に行うことで、お互いLink Keyを所持していることを確認して認証します。
これを片方向にして攻撃者の認証を回避する方法として、MasterとSlaveの役割を入れ替える、LMP_switch_reqメッセージを間に挟みます。
そうすることで、攻撃者の認証メッセージを回避することが可能となり、認証をバイパスすることができるということの様です。
(引用)BIAS: Bluetooth Impersonation AttackS
ただし、この脆弱性を突いただけでは、Link Keyを知らない状態で行うため、認証を突破できますが、その後の通信までなりすますことはできません。
そこで、セッションキーを脆弱な状態にして導出できるKNOB Attackとの組み合わせます。KNOB Attackの問題も残存していた場合、暗号化の鍵長を1byteにすることで、セッションキーをブルーとフォースで導出することで、完全になりすますことができる、という問題の様です。
なので、この問題だけでは大きな影響を与えることは難しいですが、KNOB Attackの脆弱性と組み合わせることができた場合は、本当の意味でBluetooth機器になりすまして接続が可能になるため、対処が必要です。