Ich verwende eine NodeMCU-Karte mit WiFi-Funktionen, um einen einfachen Asset-Tracker zu erstellen. Es ist mir gelungen, einige Arduino-Skizzen zu finden, die die Konnektivität mit Azure IoT Hub ermöglichen und Nachrichten veröffentlichen.
Einer der Schlüssel, den ich auf das Board "laden" muss, ist die Azure Device Connection-Zeichenfolge und natürlich eine WLAN-SSID und ein Kennwort.
Meine Angst ist, dass jemand einfach das Board nimmt und die Dateien "herunterlädt", um Zugriff auf die Sicherheitsdaten zu erhalten.
Ist meine Angst unbegründet oder ist der Verlust von Anmeldeinformationen eine echte Bedrohung, die ich mindern muss?
Antworten:
[Haftungsausschluss: Ich bin ein Security / Crypto-Experte und beschäftige mich täglich mit Fragen zur Sicherheitsarchitektur.]
Sie sind auf das Problem gestoßen, Anmeldeinformationen so zu speichern, dass ein unbeaufsichtigter Prozess darauf zugreifen kann, ein Angreifer jedoch nicht. Dies ist ein bekanntes und sehr schwer zu lösendes Problem.
Wenn Ihr IoT-Gerät über einen auf dem Motherboard integrierten Hardware-Keystore verfügt, wie z. B. einige TPMs, oder einen entsprechenden, durch Android-Hardware gesicherten Keystore oder Apple Secure Enclave, können Sie diesen verwenden.
Bei herkömmlichen Servern können Sie HSMs oder Smartcards verwenden, aber die einzige vollständige Softwarelösung, die mir bekannt ist, besteht darin, einen AES-Schlüssel aus einer Art "Hardware-Fingerabdruck" abzuleiten, der durch Kombination der Seriennummern aller Hardwaregeräte erstellt wird. Verwenden Sie dann diesen AES-Schlüssel, um die Anmeldeinformationen zu verschlüsseln. Ein Prozess, der auf demselben Server ausgeführt wird, kann den AES-Schlüssel rekonstruieren und die Anmeldeinformationen entschlüsseln. Sobald Sie die Datei vom Server extrahieren, kann sie im Wesentlichen nicht mehr entschlüsselt werden.
Das IoT wirft aus zwei Gründen einen Schraubenschlüssel hinein:
Die Annahme, dass Hardware-Seriennummern eindeutig sind, trifft wahrscheinlich nicht zu, und
Im Gegensatz zu Servern haben Angreifer physischen Zugriff auf das Gerät. Daher kann das Gerät möglicherweise eine Shell zum Ausführen des Entschlüsselungsprogramms erhalten.
Sowohl die Hardware-Verschlüsselung (TPMs) als auch die "Hardware-Fingerabdruck" -Verschlüsselung stellen bestenfalls eine Verschleierung dar, da ein Angreifer, der diesen lokalen Prozess ausführen kann, die Daten grundsätzlich auch entschlüsseln kann.
Der Standardtrick sieht also so aus, als würde er hier nicht funktionieren. Die erste Frage, die Sie sich stellen müssen, ist:
Secure <--> Convenient
Skala?Letztendlich denke ich, dass Sie dies entweder entscheiden müssen
security > convenience
und einen Menschen nach jedem Start die Anmeldeinformationen eingeben lassen müssen (etwa mit der Antwort von @ BenceKaulics ), oder Sie entscheiden diessecurity < convenience
und legen die Anmeldeinformationen einfach auf dem Gerät ab, möglicherweise unter Verwendung einer Verschleierung, falls Sie dies wünschen Das macht den Unterschied.Dies ist ein schweres Problem, das durch die Art der IoT-Geräte erschwert wird.
Der Vollständigkeit halber lautet die vollständige industrielle Lösung für dieses Problem:
Auf diese Weise kann ein Angreifer, der ein Gerät kompromittiert, eine Sitzung eröffnen, hat jedoch nie direkten Zugriff auf die Anmeldeinformationen.
quelle
Die Bedrohung ist real, aber zum Glück sind Sie nicht der erste oder einzige mit solchen Sicherheitsbedenken.
Was Sie brauchen, ist der ESP WiFi Manager, den Sie hier brauchen.
Mit dieser Bibliothek wechselt der ESP, der keine gespeicherte Sitzung hat, in den AP-Modus und hostet ein Webportal. Wenn Sie mit einem PC oder Smartphone eine Verbindung zu diesem AP herstellen, können Sie die WiFi-Anmeldeinformationen über eine Webseite konfigurieren.
Sie müssen die kritischen Informationen nicht fest codieren, und Sie können Ihr Gerät in jedem gewünschten WiFi-Netzwerk verwenden, ohne es erneut blinken zu müssen.
(Dokumentation zu ESP WiFi Manager)
quelle
Ja, sie können auf Ihr Passwort zugreifen, wenn Sie es als einfachen Text belassen.
Der gute Punkt ist, dass viele WiFi-Verbindungsschnittstellen Hash-Passwörter akzeptieren. Während die, die ich verwendet habe, MD5-Hashes akzeptiert haben und MD5 nicht besonders sicher ist, ist es für Durchschnittsjoe immer noch eine sehr schwere Herausforderung. Abhängig von Ihrer Konfigurationsdatei geben Sie entweder den Namen Ihres Hashing-Algorithmus an und schreiben dann Ihr Passwort oder Sie verwenden die Standardeinstellung, die Ihre WLAN-Schnittstelle verwendet.
quelle
Einfache Antwort - JA. Es kann getan werden. Sie müssen zumindest eine Art Verschleierung vornehmen , um einen minimalen Schutz zu gewährleisten.
quelle