Ich arbeite an einem eingebetteten Gerät, auf dem FreeBSD und SSH ausgeführt werden.
Wie Sie wissen, generiert sshd beim ersten Systemstart gerne zufällig eine Reihe von Serverschlüsseln. Das Problem ist, dass wir das Produkt mit einem schreibgeschützten SD-Kartendateisystem (nicht verhandelbar) versenden.
Meine beiden Optionen, wie ich sie sehe, sind:
- Versenden Sie auf allen Geräten die gleichen sshd-Serverschlüssel
- Hängen Sie ein Speicherdateisystem ein und generieren Sie die Serverschlüssel bei jedem Start (langsam ...)
Ist es ein großes Sicherheitsproblem, auf allen Geräten dieselben Serverschlüssel zu versenden? Diese Artikel werden nicht direkt im Internet verfügbar sein. Gelegentlich befinden sich mehrere Geräte im Besitz derselben Person und im selben Netzwerk.
In den meisten Fällen ist das Gerät nicht mit dem Internet verbunden.
Das Anmelden mit SSH gehört nicht zum normalen Betrieb. Dies dient hauptsächlich dem Komfort der Programmierer und Techniker. Kunden werden sich nicht mit SSH am Gerät anmelden.
Welche Konsequenzen hat die Verwendung derselben Serverschlüssel auf mehreren Hardwaregeräten?
PS Könnte jemand bitte ein Internet-of-Things-Tag erstellen?
EDIT : Ich spreche von der Installation der gleichen privaten Host-Schlüssel auf allen Servern (Geräten). Für öffentliche / private Benutzer-Schlüssel ist derzeit keine Verwendung der schlüsselbasierten Anmeldung geplant - es handelt sich um eine Kennwortanmeldung. Wieder dasselbe Passwort auf allen Servern (Geräten).
Ich weiß, dass dies wahrscheinlich eine schlechte Idee ist. Ich würde gerne wissen, warum genau das eine schlechte Idee ist, damit ich die Kompromisse verstehen kann.
Antworten:
Anstatt hostspezifische Daten wie SSH-Hostschlüssel auf der SD-Karte oder einem anderen schreibgeschützten Medium zu speichern, können Sie diese im NVRAM speichern, wofür sie auf einem eingebetteten System vorgesehen sind. Sie müssen einige benutzerdefinierte Skripts ausführen, um die Schlüssel beim Booten zu speichern und abzurufen, aber die Skripts sind für jedes Gerät genau gleich.
quelle
Die Auswirkung des Versands desselben Schlüsselpaars mit all Ihren Geräten hängt direkt mit der Sicherheit der Clients zusammen, die eine Verbindung zu ihnen herstellen, da es (von einem SSH-Client aus) nicht möglich ist, das Gerät, mit dem die Verbindung hergestellt werden soll, eindeutig zu identifizieren. Sollte Ihr Schlüsselpaar durchgesickert sein, könnte es für MITM-Angriffe verwendet werden.
Wenn Sie jedoch die Schlüssel bei jedem Start neu generieren, wird auf den Clients eine Warnung ausgelöst.
Als Referenz von
man ssh(1)
:quelle
Es hört sich so an, als ob in der ersten Option die SSH-Schlüssel auf der SD-Karte verfügbar wären. So kann jeder Benutzer die Karte nehmen und vorlesen. Grundsätzlich sind Ihre privaten Schlüssel (meistens) öffentlich geworden.
Dies ermöglicht Man-in-the-Middle-Angriffe wie die folgenden:
Sie sollten jedoch nicht zuerst Root-Passwörter verwenden, sondern stattdessen SSH-Schlüssel zur Authentifizierung verwenden. Dann ist die Auswirkung von gemeinsam genutzten Serverschlüsseln ziemlich gering, wenn Sie sich nur über ein LAN anmelden.
SSH bietet auch Vorwärtsgeheimnis, daher muss ein Angreifer in der Lage sein, einen falschen Server einzurichten, um von den Schlüsseln zu profitieren. Wenn Sie den Datenverkehr passiv abhören, können Sie ihn nicht entschlüsseln.
quelle
Das habe ich entsetzt gelesen! Ich würde es niemals wagen, dies zu tun, wenn ich mehrere Maschinen in demselben Cluster mit demselben SSH-Hostschlüssel ausgeführt habe. Erlauben Sie auf keinen Fall Computern mit unterschiedlichen Administratoren, SSH-Hostschlüssel gemeinsam zu nutzen. Auf diese Weise entsteht Wahnsinn und schreiendes Entsetzen, wenn Sie aus Sicherheitsgründen abgesetzt werden.
Siehe, ich sage dir die Wahrheit, wer ein Gerät kompromittiert, kompromittiert sie alle. Erwarten Sie, dass böse Menschen nach Belieben von einem zum anderen springen, und die Sicherheitskontrolle rollt zurück, als wäre es dünnes Papier.
quelle
Da Sie erwähnen, dass der SSH-Zugriff nicht vom Endbenutzer / Kunden verwendet wird, möchten Sie möglicherweise den SSH-Zugriff standardmäßig deaktivieren und ihn nur vorübergehend aktivieren, wenn das Gerät in den "Debug" -Modus versetzt wird.
Sie können dann entweder alle Geräte mit demselben Schlüssel ausliefern, vorausgesetzt, Sie haben den "Debug" -Modus geschützt, sodass er nicht von jemandem remote ausgelöst werden kann, der versucht, das Gerät zu hacken.
Oder Sie haben einen neuen Schlüssel generiert, wenn das Gerät in den "Debug" -Modus wechselt. So müssen Sie nicht bei jedem Einschalten des Geräts die Startzeit für die Generierung der Schlüssel verschwenden.
quelle
Hier ist ein Beispiel für ein Angriffsszenario, das auf den Einschränkungen basiert, die Sie haben:
Wenn Ihre Geräte sind, sagen Sie zum Beispiel ein Himbeer-Pi. Wenn ich nach oben gehe und die SD-Karte von einer ziehe, kann ich die SD-Karte in meinen eigenen Computer stecken, den SSHD-Schlüssel finden und an jeden beliebigen Ort kopieren. Vielleicht greife ich zu meinem eigenen Himbeer-Pi und einer USB-Ethernet-Karte. Jetzt kann ich das zwischen ein Zielgerät und irgendwo hin stecken und nach ssh-Verbindungen suchen. Wenn ich sehe, dass das Zielgerät versucht, eine SSH-Verbindung herzustellen, gehe ich folgendermaßen vor:
Oh, was ist das? Ihr Passwort lautet "Ich mag Katzen"? Junge, das ist eine interessante E-Mail, die du deiner Frau geschickt hast. Ich wette, es wäre noch interessanter, wenn sie diese E-Mail lesen würde, die Sie an die Frau Ihres Nachbarn geschickt haben.
Die Möglichkeiten sind endlos . Und das Ziel würde es nie erfahren, da der sshd-Schlüssel mit dem auf dem realen Server identisch ist. Abhängig von der physischen Sicherheit der Einrichtungen, die Ihr Gerät empfangen, kann dies unglaublich trivial sein. Mach das nicht.
Tun Sie stattdessen das, was Sie bereits vorgeschlagen haben, und beheben Sie es . Bevor Sie Ihr Bild schreiben, führen Sie Folgendes aus:
Und jetzt hat jeder Server einen neuen Schlüssel. Weil Sie wirklich, wirklich keine Kopien eines Schlüssels verteilen wollen. Ich meine, ehrlich gesagt ist es mindestens so schlimm, als würden Sie ein Bild Ihrer Hausschlüssel machen und diese mit Ihrer Privatadresse ins Internet hochladen.
quelle