Ocena bezpieczeństwa starszej implementacji SSL / TLS na urządzeniu IoT
Przeprowadzam ocenę bezpieczeństwa dotyczącą bezpieczeństwa komunikacji starszego urządzenia IoT. Celem jest ocena i znalezienie luk bezpieczeństwa w obecnym projekcie / wdrożeniu.
Tryb oceny jest ręczny, głównie w odniesieniu do istniejącego projektu i kodu. To jest tylko po stronie klienta na urządzeniu; podczas gdy serwer jest serwerem w chmurze. Urządzenie korzysta z modułu GSM (SIMCom SIM900) i realizuje komunikację HTTPS z serwerem przez Internet za pomocą poleceń GSM AT.
Opierając się na moim zrozumieniu SSL / TLS, rozważam poniższe parametry lub kryteria tej oceny:
za. Wersja protokołu TLS
b. Używane zestawy szyfrów
do. zarządzanie certyfikatami i kluczami
re. Root CAs zainstalowane na urządzeniu
mi. Wbudowany aspekt PKI do zarządzania tożsamością urządzenia
fa. Sprzętowy aspekt kryptograficzny (SHE / TPM)
Czy robię to we właściwy sposób? Chociaż myślę, że powyższa lista parametrów nie jest specyficzna dla platformy HW / SW urządzenia; raczej ogólne. ale myślę, że tak powinno być! Mam na myśli, że lista parametrów będzie prawie taka sama; jednak faktyczna ocena tych elementów będzie zależeć od wymagań bezpieczeństwa i innych aspektów, takich jak ślad urządzenia i jego platforma itp.
Czy lista parametrów oceny, którą rozważam, jest dobra i odpowiednia?
Odpowiedzi
To dobry początek, ale dokładna ocena musiałaby sięgnąć znacznie głębiej. Na przykład:
W jaki sposób klient generuje liczby losowe? Czy używa CSPRNG ? Czy też używa słabego generatora liczb losowych, takiego jak ten używany we wczesnych wersjach Netscape Navigator , w którym pasywny atakujący był w stanie odgadnąć losowe liczby wygenerowane dla kluczy sesji, a tym samym odszyfrować szyfrogram przechodzący przez sieć.
Czy klient wycieka informacje, gdy napotka błąd wypełnienia? Jeśli tak, to może być podatny na atak wyściełającej wyroczni , tak jak miało to miejsce w przypadku klienta gier Steam .
W jaki sposób klient wdraża ECDSA ? Czy klient generuje nowe losowe k dla każdego tworzonego przez siebie podpisu? Jeśli nie, może być możliwe, że pasywny atakujący obliczy prywatny klucz podpisu po obejrzeniu kilku podpisów, tak jak miało to miejsce w przypadku Sony Playstation 3 .
To tylko kilka przykładów. Ale, jak widać, subtelne błędy we wdrażaniu kryptografii mogą mieć katastrofalne konsekwencje. Właśnie dlatego kryptografia jest tak trudna do uzyskania.