ssh, gehashte known_hosts: Klartext extrahieren und Platzhalter verwenden

ssh, gehashte known_hosts: Klartext extrahieren und Platzhalter verwenden

In sshClients .ssh/knwon_hostskann die Datei einfachen Text verwenden (dies geschieht beispielsweise in FreeBSD 12.0):

<ip_address> ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIlD8R6Kxj9CdToar+3ay4B0yE65dP0EYoRJjEEgLjmvCTIv59DBp+0j2z0+NM0hxxJew79i1bYuN02lEvT2/E=

oder es kann gehasht werden (wie in Ubuntu 18.04):

|1|3Et6QShrP2OrD4tWdOGP3jy3YC4=|f2FrJ5tOjjmFSrGWyen1DokJyLc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIyZLGNvIADWL5SSkohBmDCVpLUzAHNejqQAXP3SSY300YIdNKCn3jqGmFAJiKB1CY0HnVirgFjdAKpyw3+6yzo=

Frage 1

Ist es möglich, die Klartextzeilen aus einem Hashwert zu erhalten known_hosts?


Ubuntusshd-Manpagebesagt, dass:

In einer einzelnen Zeile darf nur ein gehashter Hostname erscheinen und keiner der oben genannten Negations- oder Platzhalteroperatoren darf angewendet werden.

Ich bin nicht sicher, was hier gemeint ist.

Frage 2

Bedeutet das, dass Adressen wie 192.168.*.*niemals in der gehashten Form von akzeptiert werden können known_hosts, selbst wenn sie als einfacher Text erstellt und dann manuell gehasht werden?


Wie in einemvorherige Frage, ich verwende diese Clients: OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018und OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017.

Antwort1

Nein und ja, in dieser Reihenfolge. Der Zweck des Hashens der Zeile besteht darin, die Hosts zu verschleiern, mit denen Sie zuvor verbunden waren. Der eigentliche Zweck der Hash-Funktion besteht also darin, es (aus praktischen Gründen) unmöglich zu machen, festzustellen, welcher Hostname dazu gehört.

Im weiteren Sinne können Sie Platzhalter nicht wirklich mit gehashten Hostnamen verwenden: Wenn ich eine Verbindung zu herstellen möchte webhost47und die Zeilen gehasht sind, wie finde ich dann überhaupt heraus, dass es eine Zeile gibt, die mit übereinstimmt webhost*? Ein Hash ist eine Falltür, ich kann diese Zeile nur durch Hashen webhost*und Prüfen finden. Aber ich müsste auch nach ?ebhost47, w?bhost47, ??bhost47, usw. usw. suchen, also ist das nicht wirklich sinnvoll.

(Ich denke, der Kommentar bedeutet auch, dass man nicht

hashblurb1,hashblurb2 ssh-rsa …

mit gehashten Hostnamen, obwohl Sie haben können

hostname1,hostname2 ssh-rsa …

und ich sehe im Moment keinen technischen Grund, warum das nicht möglich sein könnte.)

verwandte Informationen