TL; DR odpowiedzi na pytania
W jaki sposób macOS sprawdza i zabezpiecza połączenia między klawiaturami Bluetooth bez pytania o kod?
To nie tylko macOS - klawiatura jest podłączona i zaszyfrowana na poziomie oprogramowania układowego - jeśli nie, nie można wykonać resetu pamięci NVRAM przed załadowaniem systemu operacyjnego.
Jednak nie potrzebujesz kodu, ponieważ nowoczesne klawiatury Bluetooth używają algorytmu uwierzytelniania do parowania i wygenerowanego klucza uwierzytelniania na podstawie kluczy publicznych w celu zabezpieczenia transmisji danych.
Czy to po prostu korzysta z pierwszego zaufania?
Nie. Weryfikuje swoją tożsamość za pomocą algorytmu i wygenerowanych 128-bitowych kluczy.
Czy można zmusić system macOS do użycia kodu parowania?
Dlaczego? Wróciłoby to do metodologii parowania sprzed 2009 roku. Byłoby to równoważne z włączeniem współdzielonych kluczy WEP w nowoczesnych sieciach WiFi.
Parowanie Bluetooth
Opisany przez Ciebie proces parowania urządzenia Bluetooth (w twoim przykładzie klawiatura) wykorzystuje starą (Bluetooth 2.1) metodę uwierzytelniania o nazwie Simple Secure Pairing (SSP).
Zasadniczo SSP ma 4 modele asocjacji (parowania):
- Porównanie numeryczne . Oba urządzenia mają wejście i wyświetlacz, więc użytkownik może po prostu wybrać „Tak” lub „Nie”, aby sparować urządzenie
- Klucz dostępu Jedno urządzenie ma możliwość wprowadzania danych (jak klawiatura), a drugie ma możliwość wyświetlania (jak komputer). Urządzenie z funkcją wyświetlania pokazuje od 4 do 6 cyfr, a urządzenie z funkcją wprowadzania danych wprowadza go.
- Po prostu działa To jest dla urządzeń bez możliwości wyświetlania lub wprowadzania danych (takich jak zestawy słuchawkowe), w których nie można zobaczyć ani wprowadzić hasła.
- Poza pasmem (OoB) Dotyczy to urządzeń obsługujących dodatkową wspólną technologię bezprzewodową (NFC), w której urządzenia muszą znajdować się bardzo blisko siebie. Jedno urządzenie musi „dotknąć” drugiego urządzenia, zanim nastąpi parowanie.
Najważniejszą rzeczą do odnotowania jest to, że SSP NIE jest kluczem szyfrującym; to tylko mechanizm parowania służący do wzajemnej identyfikacji . Szyfrowanie odbywa się za pomocą klucza publicznego. Wpisany kod ma zapewnić, że jest to urządzenie, z którym chcesz się połączyć; to nie bezpieczeństwo.
Od Bluetooth 3.0 (kwiecień 2009) urządzenia Bluetooth używają klucza AMP do uwierzytelniania, który automatyzuje powyższy proces.
Pochodzenie klucza AMP Klucz
połączenia AMP pochodzi z klucza połączenia Bluetooth. Generyczny klucz łącza AMP (GAMP_LK) jest generowany przez menedżera AMP na stosie hosta za każdym razem, gdy klucz łącza Bluetooth jest tworzony lub zmieniany
Poświadczenie
Procedura uwierzytelniania urządzenia Bluetooth ma postać schematu wyzwanie-odpowiedź. Każde urządzenie uczestniczące w procedurze uwierzytelnienia jako osoba występująca z roszczeniem lub weryfikator. Powód to urządzenie próbujące udowodnić swoją tożsamość, a weryfikator to urządzenie sprawdzające tożsamość powoda. Protokół wyzwanie-odpowiedź zatwierdza urządzenia, weryfikując znajomość tajnego klucza - klucza łącza Bluetooth.
Szyfrowanie
Istnieją 4 tryby szyfrowania
- Tryb 1 - Bez szyfrowania
- Tryb 2 - indywidualnie adresowany ruch jest szyfrowany na podstawie kluczy opartych na kluczach łącza
- Tryb 3 - Cały ruch jest szyfrowany za pomocą kluczy opartych na kluczu głównym
- Tryb 4 - (Bluetooth 2.1 + EDR) nakazuje szyfrowanie całego ruchu z wyjątkiem wykrywania usług
Klawiatury Bluetooth korzystające z Bluetooth 2.1 (klawiatury z 2009 r. I później) szyfrują cały ich ruch.
ŹRÓDŁO:
SP 800-121 Rev. 2, Przewodnik po zabezpieczeniach Bluetooth (maj 2017)