Schlüssel statt Passwort

Das symmetrische Schlüssselverfahren ist sicher und komfortabel.
Das symmetrische Schlüssselverfahren ist sicher und komfortabel.

In diesem Artikel geht es darum, wie man sicher und gleichzeitig komfortabel durch den Einsatz von „Schlüsseln“ statt Passworten

  • Daten auf einen Internet-Server/Web-Server überträgt,
  • solche Server pflegt.

Datenübertragung per FTP oder SCP

Im ersten Fall wird häufig das FTP-Verfahren angewendet. Es eignet sich zum einfachen Kopieren von Dateien und Verzeichnissen. Dabei werden die Anmelde-Informationen, also Passwort und Benutzername unverschlüsselt über das Netz übertragen. Ein weiterer Nachteil ist, dass Firewalls und FTP „Verständigungs-Probleme“ haben, auf die hier nicht näher eingegangen werden soll. Fakt ist: der Sicherheits-Faktor „verbietet“ den Einsatz von FTP.

Eine bessere Alternative für das Übertragen von Daten ist SCP. Die Vorgehensweise für den Anwender ist identisch zum FTP-Verfahren. Auch hier werden Anmelde-Informationen wie Passwort und Benutzername, allerdings verschlüsselt über das Netz übertragen. Probleme mit Firewalls gibt es hierbei nicht. SCP ist also zunächst DAS Mittel der Wahl zum Übertragen von Daten auf oder von einem Internet-Server.

Server-Pflege

Hierbei wurde früher Telnet angewendet, heute wird ausschliesslich SSH benutzt. Auch hierbei werden die Anmelde-Daten verschlüsselt übertragen (im Gegensatz zu Telnet). Das Verfahren ist etabliert und stellt den Standard dar.

Probleme treten auf im Umgang mit Passwörtern. Entweder sind sie unsicher, gehen verloren oder gelten als unkomfortabel. Dabei gibt es eine sehr gute Alternative, die sämtliche Nachteile ausschaltet und zusätzliche Vorteile mit sich bringt: die Anmeldung per Schlüssel.

Wie funktioniert das?

Es wird ein Schlüsselpaar erzeugt, das zusammen gehört bzw. sich gegenseitig ergänzt. Ein anderes „Bild“ nennt einen Schüssel und ein zugehöriges Schloss. Ein Teil davon wird geheim gehalten (der Schlüssel bzw. der private key), der andere Teil kann öffentlich zugänglich sein (das Schloss bzw. der public key). Nur beide zusammen funktionieren.

Der public key wird an einem bestimmten Ort auf dem Server hinterlegt. Will sich nun ein Nutzer (oder ein Anwendungsprogramm) an dem Server anmelden, muss der passende private key vorgezeigt werden. Passt der vorgezeigte Schlüssel nicht, findet auch keine Anmeldung statt. Was nun auf dem ersten Blick kompliziert klingt, ist in der Praxis höchst einfach und komfortabel.

Die Schlüssel sind kleine Text-Dateien im ASCI-Format. Der eine liegt auf Linux-Server im Verzeichnis /root/.ssh, dort in der Datei authorized_keys (der Name ist Programm und sagt, dass mehrere public keys enthalten sein können), der andere wird vom SSH-Programm (sehr beliebt ist Putty) automatisch vorgezeigt, wenn es für den Schlüssel-Verkehr eingerichtet wurde.

Der Anwender muss nicht erst ein Passwort suchen kopieren abtippen oder kopieren, dabei werden häufige Fehler vermieden. Soll ein Benutzer vom Server ausgeschlossen werden, wird ganz einfach sein public key aus der authorized key-Datei entfernt.

Eine sinnvolle Erweiterung ist nun, dass der passwort-geschützte Zugang zum Server unterbunden wird. Dabei laufen dann sämtlich Angriffe per Brute Force-Methode ins Leere. Die Serverlast kann dabei deutlich reduziert, die Betriebssicherheit erhöht werden.

Das hierbei angewendete symmetrische Verfahren kann ebenfalls für die Datenübertragung verwendet werden, da gängige FTP-Programme auch das SCP-Verfahren per Schlüssel beherrschen. Dies verwendet „unter der Motorhaube“ das SSH-Verfahren.

Fragen und Antworten

  • Wie aufwändig ist die Erzeugung der Schlüssel?
    Mit dem passenden Werkzeug geht das sehr schnell (nicht mehr als fünf Minuten).
  • Sind spezielle Werkzeuge notwendig?
    Zum Erzeugen der Schlüssel wird „puttygen“, zum Kommandozeilenzugriff „putty“, zur Datenübertragung z.B. „WinSCP“ empfohlen. Alle sind kostenfrei verfügbar und sollten direkt vom Hersteller heruntergeladen werden.
  • Wenn ein Schlüssel kompromittiert wird?
    Wird ein Server z.B. über eine Softwarelücke „übernommen“, kann natürlich der auf ihm gelagerte public key in die Hände des „bösen Buben“ geraten. Er kann jedoch zunächst nichts damit anfangen, da er nur zusammen mit dem zugehörigen private key nutzbar ist.
    Gerät ein private key in die falschen Hände, verhält es sich so wie beim Passwort. Kann eine Zuordnung zum jeweiligen Server gelingen, ist dieser gefährdet. Daher ist der private key höchst möglich zu schützen.
  • Darf der private key zusammen mit dem public key, vielleicht sogar auf dem abzusichernden Server gespeichert werden?
    Dies ist nun wirklich einmal eine dumme Frage.  Die Antwort lautet: nein.
  • Was ist beim Einsatz des Verfahrens noch zu beachten?
    Je länger die Schlüssel, desto aufwändiger ist das „Entschlüsseln“. Eine Schlüssellänge von 4096 bit ist anzuraten. Die private keys sollten auf einem verschlüsselten, nicht über Netzwerke zugänglichen Datenträger getrennt von Sicherheitskopien der public keys gespeichert werden.

Fazit:

Die immer wieder nachgefragten, höchst unsicheren Verfahren zur Datenübertragung wie FTP und die veralteten Verfahren zur Serverpflege per SSH und Passwort sind nicht nur überflüssig, sondern sie können sogar durch komfortablere Werkzeuge ersetzt werden.

Passend zum Thema gibt´s das Webinar „Schlüssel statt Passwort“