[OpenSSH]

Projektziele


Unser Ziel ist einfach: Weil telnet und rlogin unsicher sind, sollten alle Betriebssysteme mit SSH-Unterstützung ausgeliefert werden (siehe Bild unten).

Das SSH-Protokoll gibt es in zwei inkompatiblen Varianten: SSH 1 und SSH 2.

Das ältere SSH-1-Protokoll teilt sich wieder in zwei Hauptvarianten auf: Protokoll 1.3 und Protokoll 1.5. Beide werden von OpenSSH unterstützt, verwenden für die Schlüsselübertragung den asymmetrischen Kryptographiealgorithmus RSA (dessen USA-Patent abgelaufen ist und somit für jedermann frei zur Verfügung steht) und greifen dann auf ein paar symmetrische Algorithmen zurück, um die Daten zu verstecken: 3DES und Blowfish (es gab ein paar andere Algorithmen, wie z. B. RC4, doch hätte ihre Implementation zu Sicherheitsproblemen geführt). Einige SSH-1-Protokollimplementationen unterstützen außerdem den symmetrischen IDEA-Algorithmus. OpenSSH hat aber keine Unterstützung für IDEA, weil dieser Algorithmus in einigen Nationen patentiert ist und die anderen beiden völlig ausreichend sind.

Das SSH-1-Protokoll benutzt ein einfaches CRC, um die Datenintegrität sicherzustellen, was sich aber als fehlerhaft herausstellte - ein Insertionangriff ist bekanntermaßen möglich. Angriffe sind aber wegen den vielen Heftpflastern, die über die Jahre auf SSH aufgeklebt wurden, überaus schwierig durchzuführen. Wird der 3DES-Cipher benutzt, ist der Insertionangriff bedeutend schwieriger auszuführen (wir lösen das Problem wahrscheinlich bald).

Die zweite Hauptvariante von SSH ist das SSH-2-Protokoll. SSH 2 wurde eingeführt, um die patentrechtlichen Schwierigkeiten bezüglich des RSA-Protokolls zu umgehen (was inzwischen nicht mehr nötig ist, da das Patent abgelaufen ist), das CRC-Datenintegritätsproblem von SSH 1 zu lösen und aus einer Reihe weiterer technischer Gründe. Durch die Benutzung der asymmetrischen Algorithmen DSA und DH vermeidet Protokoll 2 alle Patente. Das CRC-Problem wird durch die Benutzung eines richtigen HMAC-Algorithmus gelöst. Neben vielen neuen symmetrischen Ciphern unterstützt das SSH-2-Protokoll auch viele neue Funktionen.

Seit dem 1. Dezember 1999 beinhaltet der OpenSSH-Quelltext volle Unterstützung für die Protokolle 1.3 und 1.5.

Für viele Kryptographiefunktionen greift OpenSSH auf die nicht unter der GPL stehende OpenSSL-Bibliothek zurück.

Fast sofort nachdem wir unsere Implementation des SSH-1-Protokolls veröffentlicht hatten, zeigten verschiedene Gruppen außerhalb von OpenBSD sehr, sehr großes Interesse daran. Damien Miller, Philip Hands und eine handvoll Anderer fingen an, OpenSSH auf Linux und verschiedene andere Unix-Betriebssysteme zu portieren. Von Anfang an unserer Bemühungen hatten wir das Gefühl, dass sogar der originale SSH-Code zu kompliziert war - er hatte einfach zu viele Betriebssystemabhängigkeiten in sich. Unser Anspruch, komplett sicheren und absolut stabilen Code zu schreiben, verhindert es natürlich, sich mit solchen übermäßigen Unterschieden herumzuschlagen. Um daher den gesamten Entwicklungsprozess für uns alle einfacher zu machen, haben wir die Kernentwicklung von der Portabilität getrennt. Das hat für uns sehr gut funktioniert (vergleiche doch mal die Anzahl der Zeilen zwischen der Basisversion und den portablen Versionen).

Diesen Trend fortführend haben Mitglieder des Projektteams von OpenBSD, die an OpenSSH gearbeitet haben, sich stark bemüht, das SSH-2-Protokoll ebenfalls zu unterstützen. Diese Arbeit wurde primär von Markus Friedl gemacht. Um den 4. Mai 2000 herum wurde das SSH-2-Protokoll so weit unterstützt, dass es von da an nutzbar war.


Benutzt du immer noch »Klartext«-Logins?

sherrif
OpenSSH www@openbsd.org
$OpenBSD: goals.html,v 1.32 2008/03/09 13:37:14 tobias Exp $