Korzystam z karty NodeMCU z funkcją WiFi, aby zbudować prosty moduł do śledzenia zasobów. Udało mi się znaleźć kilka szkiców Arduino, które umożliwiają łączność z Centrum IoT Azure i wysyłanie wiadomości.
Jednym z kluczy, które muszę „załadować” na płytę, jest ciąg połączenia urządzenia Azure i oczywiście identyfikator SSID i hasło WiFi.
Obawiam się, że ktoś może po prostu wziąć zarząd i „pobrać” pliki, aby uzyskać dostęp do poświadczeń bezpieczeństwa.
Czy mój strach jest nieuzasadniony, czy utrata danych uwierzytelniających jest realnym zagrożeniem, które muszę złagodzić?
Odpowiedzi:
[zrzeczenie się: Jestem specjalistą od bezpieczeństwa / kryptografii i codziennie zajmuję się takimi pytaniami dotyczącymi architektury bezpieczeństwa.]
Natknąłeś się na problem przechowywania poświadczeń w taki sposób, że dostęp do nich może uzyskać nienadzorowany proces, ale osoba atakująca nie może. Jest to dobrze znany i bardzo trudny problem do rozwiązania.
Jeśli twoje urządzenie IoT ma wbudowany w płytę główną sprzętowy magazyn kluczy, taki jak niektóre moduły TPM, lub odpowiednik magazynu kluczy wspieranego przez system Android lub Apple Secure Enclave, możesz go użyć.
Z tradycyjnymi serwerami można korzystać z HSM lub kart inteligentnych, ale jedynym pełnym oprogramowaniem, o którym wiem, jest uzyskanie klucza AES z pewnego rodzaju „sprzętowego odcisku palca” zbudowanego przez połączenie numerów seryjnych wszystkich urządzeń. Następnie użyj tego klucza AES do zaszyfrowania poświadczeń. Proces działający na tym samym serwerze może zrekonstruować klucz AES i odszyfrować poświadczenia, ale po wyodrębnieniu pliku z serwera nie można go odszyfrować.
IoT wrzuca do tego klucz z dwóch powodów:
Założenie, że numery seryjne sprzętu są unikalne, prawdopodobnie nie ma zastosowania, i
W przeciwieństwie do serwerów, osoby atakujące mają fizyczny dostęp do urządzenia, dlatego prawdopodobnie mogą uzyskać powłokę na urządzeniu, aby uruchomić program deszyfrujący.
Zarówno szyfrowanie sprzętowe (TPM), jak i szyfrowanie „sprzętowego odcisku palca” są co najwyżej zaciemniające, ponieważ zasadniczo, jeśli proces lokalny może odszyfrować dane, osoba atakująca, która może uruchomić ten proces lokalny, może go również odszyfrować.
Wygląda więc na to, że standardowa sztuczka tutaj nie działa. Pierwsze pytanie, które musisz sobie zadać, to:
Secure <--> Convenient
skali?Ostatecznie myślę, że musisz albo zdecydować o tym
security > convenience
i poprosić człowieka o wprowadzenie poświadczeń po każdym uruchomieniu (używając czegoś takiego jak odpowiedź @ BenceKaulics ), lub zdecydujesz o tymsecurity < convenience
i po prostu umieścisz poświadczenia na urządzeniu, być może używając jakiegoś zaciemnienia, jeśli czuję, że to robi różnicę.Jest to trudny problem, utrudniony przez naturę urządzeń IoT.
Dla kompletności pełne rozwiązanie przemysłowe tego problemu to:
W ten sposób atakujący, który naruszy urządzenie, może otworzyć sesję, ale nigdy nie ma bezpośredniego dostępu do poświadczeń.
źródło
Zagrożenie jest realne, ale na szczęście to nie ty jesteś pierwszy, czy tylko ten, który ma obawy związane z bezpieczeństwem.
Potrzebny jest tutaj ESP WiFi Manager .
Dzięki tej bibliotece ESP, który nie ma zapisanej sesji, przełączy się w tryb AP i będzie hostował portal internetowy. Jeśli połączysz się z tym AP za pomocą komputera lub smartfona, będziesz mógł skonfigurować dane uwierzytelniające WiFi za pośrednictwem strony internetowej.
Nie musisz kodować krytycznych informacji i możesz korzystać z urządzenia w dowolnej sieci Wi-Fi, którą chcesz, bez konieczności ponownego flashowania.
(Dokumentacja ESP WiFi Manager)
źródło
Tak, mogą uzyskać dostęp do Twojego hasła, jeśli pozostawisz go jako zwykły tekst.
Zaletą jest to, że wiele interfejsów połączeń Wi-Fi akceptuje zaszyfrowane hasła. Chociaż te, których użyłem, zaakceptowały skróty md5, a md5 nie jest super bezpieczne, wciąż jest to bardzo trudne wyzwanie dla przeciętnego Joe. W zależności od pliku konfiguracyjnego albo podajesz nazwę algorytmu haszującego, a następnie piszesz hasło lub używasz domyślnego interfejsu Wi-Fi.
źródło
Prosta odpowiedź - TAK. To może być zrobione. Musisz przynajmniej wykonać jakiś rodzaj zaciemnienia, aby zapewnić minimalną ochronę.
źródło