SSH PublicKey Sicherheit
SSH PublicKey Sicherheit
Hallo,
ich habe eine Frage zur Sicherheit des SSH2 Protokolls bei dessen Benutzung mit PublicKey-Auth. Also gegeben sei folgene Situation:
Ich habe 2 Server, auf beiden Servern richte ich einen Account ein auf den ich per PublicKey zugreifen darf. Der Key is für beide Server der gleiche. Natürlich liegt der PrivateKey auf keinem der Server sondern "ordnungsgemäß" nur der PublicKey.
Einer der Server wird jetzt kompromittiert. Ist es dem Angreifer möglich irgendwie mithilfe des kompromitierten Servers zugang zu dem zweiten Server zu bekommen. Dabei seie gegeben dass während der Server kompromitiert ist auf den Account eingeloggt wird der den private key benötigt.
Meine Vermutung zu dem Fall wäre nein, da ich denke (oder zumindest) hoffe dass SSH2 entsprechend abgesichert ist, z.B. indem der challenge Teil des Protokolls den Serverkey mit einbindet oder ähnliches, so dass eine Attacke indem z.b. die Authentifizierungsdaten weitergeleitet werden für eine heimliche Anmeldung auf dem anderen Server (also Man in the middle) verhindert wird. Hat hierzu jemand konkrete Infos?
ich habe eine Frage zur Sicherheit des SSH2 Protokolls bei dessen Benutzung mit PublicKey-Auth. Also gegeben sei folgene Situation:
Ich habe 2 Server, auf beiden Servern richte ich einen Account ein auf den ich per PublicKey zugreifen darf. Der Key is für beide Server der gleiche. Natürlich liegt der PrivateKey auf keinem der Server sondern "ordnungsgemäß" nur der PublicKey.
Einer der Server wird jetzt kompromittiert. Ist es dem Angreifer möglich irgendwie mithilfe des kompromitierten Servers zugang zu dem zweiten Server zu bekommen. Dabei seie gegeben dass während der Server kompromitiert ist auf den Account eingeloggt wird der den private key benötigt.
Meine Vermutung zu dem Fall wäre nein, da ich denke (oder zumindest) hoffe dass SSH2 entsprechend abgesichert ist, z.B. indem der challenge Teil des Protokolls den Serverkey mit einbindet oder ähnliches, so dass eine Attacke indem z.b. die Authentifizierungsdaten weitergeleitet werden für eine heimliche Anmeldung auf dem anderen Server (also Man in the middle) verhindert wird. Hat hierzu jemand konkrete Infos?
Re: SSH PublicKey Sicherheit
Sofern ich dich richtig verstehe, hast du den PrivateKey nur bei dir lokal, nicht auf einem der beiden Server. Dann ist über dieses Verfahren kein ungehinderter Zugang möglich, sofern zwischen den beiden Servern keine weiteren Vertrauensstellungen existieren.
-
- Posts: 470
- Joined: 2002-05-14 13:02
- Location: Karlsruhe City
Re: SSH PublicKey Sicherheit
Es könnte Probleme geben, wenn der ssh-agent geforwardet wird,
ein Man in The Middle dürfte auch möglich sein, evtl ein gepatchter
sshd...
Das ganze würde wohl etwas kompliziert werden, ist aber
sicherlich machbar.
Wenn sich dann jemand von Server 1 nach Server 2 einloggt ist
sowieso vorbei, das sollte dir ja klar sein.
Gruss,
Out
ein Man in The Middle dürfte auch möglich sein, evtl ein gepatchter
sshd...
Das ganze würde wohl etwas kompliziert werden, ist aber
sicherlich machbar.
Wenn sich dann jemand von Server 1 nach Server 2 einloggt ist
sowieso vorbei, das sollte dir ja klar sein.
Gruss,
Out
Re: SSH PublicKey Sicherheit
Genau das ist ja die Frage. Allerdings ließe sich das eigentlich verhindern in dem beim Auth-Verfahren der Serverkey benutzt wird, dann eine solche Attacke nicht funktionieren, bzw. mein Client würde mich warnen dass der Serverkey sich geändert hat.Es könnte Probleme geben, wenn der ssh-agent geforwardet wird,
ein Man in The Middle dürfte auch möglich sein, evtl ein gepatchter
sshd...
Ich vermute ich werde nicht drum rum kommen mir bei Zeit das Protokoll anzugucken :/
Wie im ersten Beitrag geschrieben wird davon ausgegangen dass kein PrivatKey auf den servern liegt.Wenn sich dann jemand von Server 1 nach Server 2 einloggt ist
sowieso vorbei, das sollte dir ja klar sein.
Als anschließende Frage für mich stellt sich wie das ganz aussieht wenn ich PWs als Auth verwende. Auch hier sollte es ja möglich sein Man in the Middle zu vermeiden z.B. in dem mein Client den Hash(Hash(Passwort) + Serverkey) sendet. Aber ich bezweifel dass dies so implementiert ist, aber auch hier hilft wohl nur ein Blick ins Protokoll
Edit: "Hash(Hash(Passwort) + Serverkey)" ist natürlich Blödsinn, ich glaube aber dass sichere Möglichkeiten existieren, bin mir hier aber nicht ganz sicher.
Re: SSH PublicKey Sicherheit
Hmm. ja danke. Nach dieser Darstellung ist also ein Man in the Middle Attack möglich und ein kompromitierter Server kann genutzt werden um in andere Server mit dem selben Key einzubrechen. Hätte ich ehrlich gesagt nicht erwartet dass dieses Verfahren in der Hinsicht so unsicher ist (vorrausgesetzt die Infos auf der Seiten waren richtig und vollständig).
Re: SSH PublicKey Sicherheit
Ich persönlich sehe da keine einfache Möglichkeit für eine Man in the middle-Attacke. Was habe ich übersehen?
cu
cu
Re: SSH PublicKey Sicherheit
Der Server könnte zusätzlich zur Zufallszahl seinen Public Key Key (SSH2 Hostkey) verschlüßeln und als Challenge senden. Der Client würde nun beim entschlüßelen sehen, dass es sich hierbei garnicht um die Challenge des verbundenen Servers sondern um eine weitergeleitete handelt.
Der kompromitierte Server hätte keine Möglichkeit dies zu verhindern, er kann ja selber die Challenge nicht neu erstellen (da er die Zufallszahl nicht kennt). Das einzige was er versuchen könnte, wäre gleich beim Handshake sich mit dem falschen Hostkey zu melden, aber das würde allen gängigen SSH2 Clienten auffallen und sie würden den User warnen.
Ich kann keinen Grund erkennen wieso das nicht so gemacht werden sollte (vieleicht übersehe ich etwas) und daher verwundert es mich das tatsächlich eine so unsichere Variante genutzt wird (vorrausgesetzt dies stimmt auch, ich hatte bisher noch keine Lust mir das Protokoll wirklich in den Spezifikationen oder Quellcode anzugucken, sollte ich vieleicht mal tun)
Der kompromitierte Server hätte keine Möglichkeit dies zu verhindern, er kann ja selber die Challenge nicht neu erstellen (da er die Zufallszahl nicht kennt). Das einzige was er versuchen könnte, wäre gleich beim Handshake sich mit dem falschen Hostkey zu melden, aber das würde allen gängigen SSH2 Clienten auffallen und sie würden den User warnen.
Ich kann keinen Grund erkennen wieso das nicht so gemacht werden sollte (vieleicht übersehe ich etwas) und daher verwundert es mich das tatsächlich eine so unsichere Variante genutzt wird (vorrausgesetzt dies stimmt auch, ich hatte bisher noch keine Lust mir das Protokoll wirklich in den Spezifikationen oder Quellcode anzugucken, sollte ich vieleicht mal tun)
Re: SSH PublicKey Sicherheit
Sicherheit ist ein dehnbarer Begriff, ich weiss nichts was dagegen spricht über einen Key sich mit dem Server zu verbinden.
Knackbar ist so gut wie alles.
Knackbar ist so gut wie alles.