Endlich neue Schlüssel für SSH-Server

Die nächsten Versionen der OpenSSH-Software sollen den Wechsel der Server-Schlüssel deutlich vereinfachen. Das bereitet den Weg für eigentlich längst fällige Upgrades.

In Pocket speichern vorlesen Druckansicht 80 Kommentare lesen
Neue Schlüssel für SSH-Server
Lesezeit: 3 Min.

Ab Version 6.8 soll OpenSSH ein neues Verfahren unterstützen, um neue Schlüssel auszurollen. Bisher war ein Schlüsselwechsel mit sehr unangenehmen Konsequenzen verbunden, weshalb er häufig unterblieb. So kommt es, dass viele Server immer noch mit alten, manchmal unsicheren Schlüsseln betrieben werden und sich neue Krypto-Verfahren wie das kürzlich eingeführte Ed25519 nur sehr langsam verbreiten.

Natürlich kann ein Admin jederzeit neue Schlüssel erstellen und in der Config-Datei seines Servers eintragen. Allerdings führt diese Umstellung dazu, dass alle Nutzer beim nächsten Versuch sich mit dem Server zu verbinden, eine Warnung über einen möglichen Angriff bekommen, weil der Schlüssel nicht mehr mit dem übereinstimmt, was sie einstmals abgesegnet haben. Dann müssen sie von Hand den zugehörigen Eintrag aus ihrer Liste der bekannten Schlüssel (~/.ssh/known_hosts) entfernen. Erst dann können sie sich erneut verbinden, den neuen Schlüssel (hoffentlich) kontrollieren und bestätigen. Diese Prozedur muss jeder Nutzer des SSH-Servers zum Teil sogar mehrfach durchlaufen; denn sie wiederholt sich auf jedem System, von dem aus er sich verbindet.

Mit der nächsten Version 6.8, die OpenSSH-Entwickler Damien Miller in seinem Blog berits vorab vorstellt, soll das deutlich komfortabler gehen. Konkret läuft das dann so, dass der Server-Admin die neuen Keys zunächst zusätzlich zu den alten in die Konfiguration einträgt. Nach einer erfolgreichen Anmeldung, die noch über den alten Schlüssel abläuft, informiert der Server den Client über all seine Schlüssel – also auch die neu hinzugekommenen. Die neue Client-Software vermerkt die zusätzlichen Keys dann bereits in seiner Liste. Wenn der Admin überzeugt ist, dass alle Nutzer sich einmal angemeldet haben, kann er die alten Schlüssel aus der Konfiguration entfernen. Die Clients akzeptieren dann auch ohne zu murren die neuen Schlüssel und entfernen die alten aus ihrer Liste.

Diese Änderung wird höchste Zeit. Denn viele SSH-Server weisen sich immer noch mit mittlerweile zu kurzen 1024-Bit-Schlüsseln aus, oft sogar mittels DSA. Dieses Verfahren ist das einzige, das laut Spezifikation alle Server unterstützen müssen; RSA war wegen der zum Zeitpunkt der Spezifizierung noch akuten Patentprobleme nur optional. Um wirklich sicher zu sein, benötigt DSA aber sehr viel und sehr gute Zufallszahlen, was etwa auf Embedded Geräten nicht immer gewährleistet ist. Darüber hinaus wird DSA meist nur mit 1024-Bit-Schlüsseln eingesetzt.

Besser ist es, RSA-Schlüssel mit mindestens 2048 Bit zu verwenden. Das neue Verfahren zur Schlüssel-Rotation ist auch eine Chance für die mit OpenSSH 6.5 eingeführte Authentifizierung mittels Ed25519, die auf Bernsteins elliptischer Kurve Curve25519 beruht und mit deutlich kürzeren Schlüsseln auskommt. Die Länge Ihrer aktuell genutzten SSH-Schlüssel verrät Ihnen übrigens der Befehl:

sudo openssl dsa -in /etc/ssh/ssh_host_dsa_key -noout -text

Für RSA müssen Sie das dsa durch rsa ersetzen. Sehr häufig erscheint da:

Private-Key: (1024 bit)

Das sollten Sie dann zumindest mittelfristig ändern. Alle gängigen Clients – also auch das unter Windows verbreitete Putty – unterstützen mittlerweile mindestens 2048-Bit-Schlüssel. (ju)