Abo
  • IT-Karriere:

OpenSSH: Key-Rotation für die Secure Shell

Bei der nächsten Version von OpenSSH wird es möglich sein, Server-Keys mit einem automatisierten Verfahren zu rotieren. Bislang ließen sich Schlüssel bei SSH nur mit viel manuellem Aufwand austauschen.

Artikel veröffentlicht am , Hanno Böck
OpenSSH wird bald Schlüssel reibungslos tauschen können.
OpenSSH wird bald Schlüssel reibungslos tauschen können. (Bild: OpenSSH)

Serveradministratoren, die SSH schon länger nutzen, kennen oft das Problem: Wer einmal einen Schlüssel für den SSH-Daemon erstellt hat, kann diesen nur umständlich wieder ändern. Anders als beispielsweise TLS-Zertifikate haben SSH-Keys kein Ablaufdatum und werden von keiner Zertifizierungsstelle signiert. Vielmehr basiert SSH auf einem Trust-on-first-use-System - genau das macht aber beim Schlüsselwechsel Probleme. Die nächste Version 6.8 von OpenSSH soll dies lösen mit einem System zur Schlüsselrotation.

Trust on First Use

Stellenmarkt
  1. BWI GmbH, Bonn, München, Schwielowsee
  2. dreisechzig ITC GmbH, Dreieich

Jeder SSH-Server benötigt dauerhaft ein oder mehrere Schlüsselpaare für ein Public-Key-Verfahren. Dieser Schlüssel dient dazu, den Verbindungsaufbau abzusichern und einen Sitzungsschlüssel auszuhandeln. Üblicherweise speichert der SSH-Client beim ersten Verbindungsaufbau einen Fingerabdruck des verwendeten öffentlichen Schlüssels. Bei künftigen Verbindungsversuchen wird der Serverschlüssel dann anhand dieses Fingerabdrucks geprüft.

Das funktioniert prima, solange der Server denselben Schlüssel behält. Doch ein reibungsloser Wechsel des Schlüssels ist in diesem Konzept nicht vorgesehen. Wenn der Serverbetreiber ein neues Schlüsselpaar erstellt, erhält der Nutzer eine Warnung. Im SSH-Client von OpenSSH gibt es auch keine Möglichkeit, diese Warnung einfach zu ignorieren. Vielmehr muss der alte Schlüssel zunächst aus der lokalen Konfiguration entfernt werden, damit ein neuer Schlüssel akzeptiert werden kann.

DSA-Schlüssel mit 1024 Bit

Dabei stecken viele Serverbetreiber in einem Dilemma. Aus Sicherheitsgründen wäre es eigentlich sinnvoll, den Schlüssel gelegentlich zu wechseln. Außerdem sind viele ältere Schlüssel aus heutiger Sicht nicht gerade optimal. Die ursprüngliche SSH-Spezifikation sah etwa vor, dass jeder Server das DSA-Verfahren unterstützen muss. Der Grund: Damals war RSA noch patentiert und galt somit als problematisch. Ursprünglich war DSA aber nur für 1024 Bit spezifiziert, DSA mit längeren Schlüsseln hat sich nie allgemein durchgesetzt. Und ganz generell gibt es Vorbehalte gegen das DSA-Verfahren: Bei schlechten Zufallsgeneratoren kann es katastrophal scheitern.

Auch ältere RSA-Schlüssel wurden oft in den Standardeinstellungen der Linux-Distributionen automatisch mit 1024 Bit generiert. Neben RSA und DSA unterstützen neuere OpenSSH-Versionen verschiedene Verfahren auf Basis elliptischer Kurven, als ideal gilt zurzeit der Ed25519-Algorithmus. Gegen ECDSA gibt es ähnliche Vorbehalte wie bei DSA.

Neben Problemen mit alten Krypto-Algorithmen kann es auch Notfälle geben, in denen ein Schlüssel ausgetauscht werden muss, etwa wenn der Server gehackt wurde. Doch die bisherige Funktionsweise von SSH macht den Schlüsselwechsel enorm umständlich. Ein Serverbetreiber muss alle Nutzer informieren, diese müssen manuell den alten Schlüssel entfernen.

Reibungsloser Schlüsselwechsel

All diese Probleme beschreibt OpenSSH-Entwickler Damien Miller in einem Blogeintrag - und bietet eine Lösung an. Künftig können OpenSSH-Server beim Verbindungsaufbau die Fingerprints mehrerer öffentliche Schlüssel an den Client senden. Das können Schlüssel mit neuen Algorithmen sein, aber auch Ersatzschlüssel für den Notfall, falls einmal der Server-Key kompromittiert wird.

Ein Client, der diese Funktion ebenfalls unterstützt, speichert dann alle Key-Fingerprints, die ein Server ausliefert, automatisch in seiner Konfiguration. Keys, die nicht vom Server geliefert werden, werden automatisch aus der Konfiguration entfernt.

Damit wird ein Schlüsselaustausch deutlich reibungsloser. Ein Serverbetreiber kann bereits für die Zukunft einen Ersatzschlüssel ausliefern. Dazu muss auf dem Server nur der öffentliche Schlüssel vorliegen - der privaten Schlüssel kann offline an einem sicheren Ort gespeichert werden. Probleme treten dann nur noch auf, wenn ein Nutzer sich im Zeitraum eines Schlüsselwechsels nie einloggt.

Voraussetzung für den reibungslosen Schlüsselwechsel ist natürlich, dass alle Nutzer eines Servers einen SSH-Client einsetzen, der diese Funktion auch unterstützt. Bislang ist das Feature nur in OpenSSH implementiert, und auch dort wird es erst ab der bislang nicht veröffentlichten Version 6.8 verfügbar sein. Insbesondere in der Windows-Welt wird häufig das Programm PuTTY eingesetzt, auf Embedded-Devices kommt vielfach Dropbear zum Einsatz.

Key-Management wird komplexer

Für Serveradministratoren ist die neue Funktion zum Schlüsselwechsel eine Erleichterung, sie erfordert aber auch ein ausgefeilteres Key-Management. Ersatzschlüssel müssen erzeugt und vorgehalten werden. Auch bei TLS wird das Schlüsselmanagement in Zukunft komplexer: Für HTTP Public Key Pinning ist das Bereithalten von Ersatzschlüsseln ebenfalls sinnvoll.



Anzeige
Spiele-Angebote
  1. 2,99€
  2. 1,24€
  3. (-72%) 16,99€
  4. 2,99€

Lala Satalin... 03. Feb 2015

Nein. Eher auf einem USB-Stick, der hinter 250 Meter dickem, massiven Panzerstahl liegt.

widdermann 03. Feb 2015

Genau deswegen ist OpenSSH nervig. Ich hab noch nie den Fingerprint verglichen. Das geht...

xnor 02. Feb 2015

Jein. Du kannst dann einen Ersatzschlüssel für den Fall eines Einbruchs auf dem Server...


Folgen Sie uns
       


AMD stellt Navi-Grafikkarten vor

Die neuen GPUs sollen deutlich effizienter und leistungsstärker sein und ab Juli 2019 verfügbar sein.

AMD stellt Navi-Grafikkarten vor Video aufrufen
Watch Dogs Legion angespielt: Eine Seniorin als Ein-Frau-Armee
Watch Dogs Legion angespielt
Eine Seniorin als Ein-Frau-Armee

E3 2019 Elitesoldaten brauchen wir nicht - in Watch Dogs Legion hacken und schießen wir auch als Pensionistin für den Widerstand. Beim Anspielen haben wir sehr über die ebenso klapprige wie kampflustige Oma Gwendoline gelacht.


    Wolfenstein Youngblood angespielt: Warum wurden diese dämlichen Mädchen nicht aufgehalten!?
    Wolfenstein Youngblood angespielt
    "Warum wurden diese dämlichen Mädchen nicht aufgehalten!?"

    E3 2019 Der erste Kill ist der schwerste: In Wolfenstein Youngblood kämpfen die beiden Töchter von B.J. Blazkowicz gegen Nazis. Golem.de hat sich mit Jess und Soph durch einen Zeppelin über dem belagerten Paris gekämpft.
    Von Peter Steinlechner


      Final Fantasy 7 Remake angespielt: Cloud Strife und die (fast) unendliche Geschichte
      Final Fantasy 7 Remake angespielt
      Cloud Strife und die (fast) unendliche Geschichte

      E3 2019 Das Remake von Final Fantasy 7 wird ein Riesenprojekt, allein die erste Episode erscheint auf zwei Blu-ray-Discs. Kurios: In wie viele Folgen das bereits enorm umfangreiche Original von 1997 aufgeteilt wird, kann bislang nicht mal der Producer sagen.

      1. Final Fantasy 14 Online Report Zwischen Cosplay, Kirmes und Kampfsystem
      2. Square Enix Final Fantasy 14 erhält Solo-Inhalte und besonderen Magier
      3. Rollenspiel Square Enix streicht Erweiterungen für Final Fantasy 15

        •  /