BLUFFS – уязвимости в Bluetooth, позволяющие провести MITM-атаку

Даниэле Антониоли (Daniele Antonioli), исследователь безопасности Bluetooth, ранее разработавший техники атак BIAS, BLUR и KNOB, выявил две новые уязвимости (CVE-2023-24023) в механизме согласования сеансов Bluetooth, затрагивающие все реализации Bluetooth, поддерживающие режимы защищённого сопряжения “Secure Connections” и “Secure Simple Pairing”, соответствующие спецификациям Bluetooth Core 4.2-5.4.
В качестве демонстрации практического применения выявленных уязвимостей разработано 6 вариантов атак, позволяющих вклиниться в соединение между ранее сопряжёнными Bluetooth-устройствами. Код с реализацией методов атаки и утилиты для проверки наличия уязвимостей опубликованы на GitHub.

Уязвимости были выявлены в ходе анализа описанных в стандарте механизмов достижения прямой секретности (Forward and Future Secrecy), противодействующих компрометации сеансовых ключей в случае определения постоянного ключа (компрометация одного из постоянных ключей не должна привести к расшифровке ранее перехваченных или будущих сеансов) и повторному использованию сеансовых ключей (ключ от одного сеанса не должен быть применим к другому сеансу). Найденные уязвимости позволяют обойти указанную защиту и повторно использовать ненадёжный сеансовый ключ в разных сеансах. Уязвимости вызваны недоработками в базовом стандарте, не специфичны для отдельных Bluetooth-стеков, и проявляются в чипах различных производителей.


Предложенные методы атак реализуют разные варианты организации спуффинга классических (LSC, Legacy Secure Connections на базе устаревших криптографических примитивов) и защищённых (SC, Secure Connections на базе ECDH и AES-CCM) Bluetooth-соединений между системой и периферийным устройством, а также организации MITM-атак для соединений в режимах LSC и SC. Предполагается, что все реализации Bluetooth, соответствующие стандарту, подвержены тем или иным вариантам атаки BLUFFS. Работа метода продемонстрирована на 18 устройствах от таких компаний, как Intel, Broadcom, Apple, Google,
Microsoft, CSR, Logitech, Infineon, Bose, Dell и Xiaomi.


Суть уязвимостей сводится к возможности без нарушения стандарта принудительно откатить соединение на использование старого режима LSC и ненадёжного короткого сессионного ключа (SK), через указание в процессе согласования соединения минимально возможной энтропии и игнорируя содержимое ответа с параметрами аутентификации (CR), что приводит к генерации сессионного ключа на основе постоянных входных параметров (сессионный ключ SK вычисляется как KDF от постоянного ключа (PK) и согласованных во время сеанса параметров). Например, атакующий в ходе MITM-атаки может заменить в процессе согласования сеанса параметры 𝐴𝐶 и 𝑆𝐷 на нулевые значения, а энтропию 𝑆𝐸 выставить в значение 1, что приведёт к формированию сессионного ключа 𝑆𝐾 с фактической энтропией в 1 байт (штатный минимальный размер энтропии составляет 56 байт, что по уровню надёжности сопоставимо с подбором ключей DES).

Если атакующему в процессе согласования соединения удалось добиться использования более короткого ключа, далее он может при помощи подбора
(brute force) определить постоянный ключ (PK), используемый для шифрования и добиться расшифровки трафика между устройствами. Так как в ходе MITM-атаки можно инициировать использование одного и того же ключа шифрования, если данный ключ будет подобран, то его можно задействовать и для расшифровки всех прошлых и будущих сеансов, перехваченных атакующим.


Для блокирования уязвимостей исследователем предложено внести в стандарт изменения, расширяющие протокол LMP и меняющие логику использования KDF (Key Derivation Function) при формировании ключей в режиме LSC. Изменение не нарушает обратную совместимость, но приводит к включению расширенной LMP-команды и необходимости отправки дополнительных 48 байтов. Организация Bluetooth SIG, отвечающая за разработку стандартов Bluetooth, в качестве меры защиты предложила отклонять соединения по шифрованному каналу связи с ключами, размером до 7 байт. Реализациям, всегда применяющим уровень Security Mode 4 Level 4, рекомендуется отклонять соединения с ключами, размером до 16 байт.

Release. Ссылка here.