TL; DR ответы на вопросы
Как macOS проверяет и защищает соединения между клавиатурами Bluetooth, не запрашивая код?
Это не просто macOS - ваша клавиатура подключена и зашифрована на уровне прошивки - если бы это было не так, вы бы не смогли выполнить сброс NVRAM до загрузки ОС.
Однако вам не нужен код, потому что современные клавиатуры Bluetooth используют алгоритм аутентификации для сопряжения и сгенерированный ключ аутентификации на основе открытых ключей для обеспечения безопасности передачи данных.
Использует ли он только доверие при первом использовании?
Нет. Он проверяет свою личность, используя алгоритм и 128-битные сгенерированные ключи.
Можно ли заставить macOS использовать код сопряжения?
Почему? Это будет возвращаться к методологии сопряжения до 2009 года. Это было бы эквивалентно включению общих ключей WEP в современных сетях WiFi.
Bluetooth-соединение
Процесс, который вы описали для сопряжения устройства Bluetooth (клавиатура в вашем примере), использует старый (Bluetooth 2.1) метод аутентификации, называемый Simple Secure Pairing (SSP).
По сути, SSP имеет 4 модели ассоциации (спаривания):
- Числовое сравнение . Оба устройства имеют вход и дисплей, поэтому пользователь может просто выбрать «Да» или «Нет» для сопряжения устройства
- Устройство Passkey One имеет возможность ввода (например, клавиатуру), а другое - дисплей (как компьютер). Устройство с возможностью отображения показывает номер от 4 до 6 цифр, и устройство с возможностью ввода вводит его.
- Просто работает Это для устройств без возможности отображения или ввода (например, гарнитуры), где вы не можете видеть или вводить пароль.
- Out of Band (OoB) Это для устройств, которые поддерживают дополнительную стандартную беспроводную технологию (NFC), где устройства должны находиться в непосредственной близости друг от друга. Одно устройство должно «коснуться» другого устройства, прежде чем произойдет сопряжение.
Самая важная вещь, которую нужно отметить, это то, что SSP НЕ является ключом шифрования; это просто механизм сопряжения для идентификации друг друга. Шифрование обрабатывается с помощью открытого ключа. Код, который вы вводите, чтобы убедиться, что это устройство, к которому вы хотите подключиться; это не безопасность.
Начиная с Bluetooth 3.0 (апрель 2009 г.), устройства Bluetooth используют ключ AMP для аутентификации, который автоматизирует вышеуказанный процесс.
Получение ключа AMP Ключ
связи AMP получен из ключа связи Bluetooth. Общий ключ связи AMP (GAMP_LK) генерируется менеджером AMP в стеке хоста при создании или изменении ключа связи Bluetooth
Аутентификация
Процедура аутентификации устройства Bluetooth имеет форму схемы «вызов-ответ». Каждое устройство взаимодействует в процедуре аутентификации в качестве заявителя или верификатора. Заявитель - это устройство, пытающееся подтвердить свою личность, а верификатор - это устройство, подтверждающее личность заявителя. Протокол «запрос-ответ» проверяет устройства, проверяя знание секретного ключа - ключа связи Bluetooth.
шифрование
Есть 4 режима шифрования
- Режим 1 - без шифрования
- Режим 2 - трафик с индивидуальной адресацией шифруется на основе ключей, основанных на ключах ссылок.
- Режим 3 - Весь трафик шифруется с использованием ключей на основе мастер-ключа
- Режим 4 - (Bluetooth 2.1 + EDR) обязывает весь трафик шифроваться за исключением обнаружения службы
Клавиатуры Bluetooth, использующие Bluetooth 2.1 (клавиатуры с 2009 года и позже) и выше, шифруют весь их трафик.
ИСТОЧНИК:
SP 800-121 Ред. 2, Руководство по безопасности Bluetooth (май 2017 г.)