Table of Contents
SSH2 Einführung
Im Jahr 2006 wurde das SSH-2-Protokoll als ein vorgeschlagener Industriestandard eingeführt,
indem es als RFC (Request For Comment) beim Internet Engineering Task Force (IETF) eingereicht wurde.
Diese Version ist nicht mit SSH-1 kompatibel, bietet jedoch im Vergleich zu SSH-1 verbesserte Sicherheit und neue
Funktionen. Es führt beispielsweise eine verbesserte und geschichtete Protokollstruktur ein
mit drei aufeinander aufbauenden Schichten, einen verhandelbaren Hash-Mechanismus
(während SSH v1 immer CRC-32 verwendet), neue verhandelbare Schlüsselaustausch- und Verschlüsselungsmethoden,
flexiblere Namenskonventionen, die die Implementierung von Erweiterungen ermöglichen, ohne
dass diese mit Namen kollidieren, die beim IANA registriert werden müssen.
Weitere Verbesserungen sind die Möglichkeit, den Sitzungsschlüssel periodisch zu ersetzen ("Rekeying")
und ein Mechanismus zur Bereitstellung von Zertifizierungen für öffentliche Schlüssel.
Ein weiterer neuer Aspekt ist die Implementierung eines neuen Dateiübertragungsprotokolls namens
SFTP (Secure File Transfer Protocol) zusätzlich zum vorhandenen SCP (Secure Copy Protocol).
Vergleich von SSH v2 vs SSH v1
Architektur
Während SSH1 eine monolithische Struktur hat, trennt sich SSH2 in drei Schichten auf:
SSH Transport Layer Protocol (SSH-TRANS), SSH Authentication Protocol (SSH-AUTH) und
SSH Connection Protocol (SSH-CONN)
Integritätsprüfung docstore.mik.ua/orelly/networking_2ndEd/ssh/ch03_05.htm
SSH v1 verwendet CRC-32 zur Überprüfung der Integrität von Datenpaketen. In SSH v2 können die beiden Parteien
(Client und Server) einen Hash-Mechanismus ihrer Wahl verhandeln, z.B. gibt es mehrere Varianten von HMAC oder SHA.
Algorithmuswahl
Während SSH1 den Client und den Server den Verschlüsselungsalgorithmus verhandeln lässt, der verwendet wird
um die Sitzungsdaten zu verschlüsseln, waren andere Aspekte der Verschlüsselung fest codiert.
SSH2 ermöglicht auch die Verhandlung von Algorithmen für den Schlüsselaustausch, Hashing und Kompression.
Algorithmus-Namespace
SSH1 war auf Namen für den Algorithmus angewiesen, die beim IANA registriert waren. SSH2 hat ein Benennungsschema,
das die Algorithmen in zwei Klassen unterteilt: Eine, bei der neue Mechanismen hinzugefügt werden können,
die garantiert nicht mit IANA-Namen kollidieren, und eine, die vom IANA registriert werden muss.
Authentifizierung
SSH1 hat eine festgelegte Sequenz von Authentifizierungsmethoden. In SSH2 ist der Server flexibler und kann die
Authentifizierungsmethoden ändern, je nachdem, was bei vorherigen Authentifizierungsversuchen passiert ist.
Kryptografische Algorithmen
SSH1 unterstützte eine Reihe von kryptografischen Algorithmen wie 3-DES, Arcfour, Blowfish, DSA, RSA oder AES,
von denen die meisten jetzt veraltet sind, da sie selbst von Nicht-Staatsakteuren mit moderaten finanziellen oder
rechnerischen Mitteln gebrochen werden können. SSH2 hat einige davon als veraltet erklärt und eine Reihe neuer Algorithmen
eingeführt, wie aes-ctr, aes-cbc, aes-gc, chacha-poly, usw.
Gleiches gilt für kryptografische Schlüssel, bei denen SSH2 Algorithmen wie Diffie-Hellman, ECDSA
und Curve 25519 anbietet.
Sitzungsumschlüsselung
SSH2 hat eine Methode, bei der der Verschlüsselungsschlüssel während einer Sitzung periodisch geändert werden kann,
während SSH1 denselben Schlüssel während der gesamten Sitzungsdauer verwendet hat.
Hostbasierte Authentifizierung
SSH1 hat begrenzte Möglichkeiten, den Client basierend auf seinem Host zu authentifizieren (nur über IP-Adresse),
während SSH2 auch den Hostnamen über DNS-Auflösung verwenden kann.
Zertifizierung
Ähnlich wie das SSL-Protokoll führt SSH2 einen Mechanismus ein, bei dem ein Server einen Schlüssel (öffentlich/privat)
zertifizieren kann, der für die Authentifizierung verwendet wird, wodurch nachgewiesen wird, dass der
Schlüssel von einer vertrauenswürdigen Stelle ausgestellt wurde und anschließend solche Schlüssel
für die Authentifizierung verwendet werden können, ohne sie zur authorized_keys
-Datei hinzufügen zu müssen.
Dateiübertragung
Während SSH1 die SCP-Dateiübertragungsmethode unterstützt, fügt SSH2 SFTP hinzu, welches Funktionen implementiert,
die FTP ähnlich sind, z.B. das Abrufen der Liste der Dateinamen vom Remote-Server, damit Anwendungen erstellt werden
können, die es ermöglichen, das entfernte Dateisystem zu durchsuchen, ohne die Shell zu verwenden.
SSH2 vs SSH1 Funktionen-Vergleichstabelle
Die folgende Tabelle zeigt die Hauptunterschiede zwischen SSH v1 und SSH v2.
|
SSH1 |
SSH2 |
Architektur |
monolithisch |
3-lagig mit TRANS, AUTH, CONN |
Hashing |
Nur CRC32 |
Verhandelte Algorithmen wie hmac-sha1, hmac-sha2 oder umac |
Namensraum |
Nur IANA-Namen |
IANA-Namen und Erweiterungen unter Verwendung eines @-Zeichens |
Krypto-Algorithmen |
3-DES, Blowfish, Arcfour,... |
aes-ctr, aes-cbc, aes-gc, chacha-poly,... |
Sitzungsumschlüsselung |
n/a |
Neue Schlüssel während der Sitzungen |
Hostbasierte Authentifizierung |
Nur IP |
Namen oder IP-basiert |
Zertifizierung |
n/a |
SSL-ähnliche Zertifizierung von Schlüsseln |
Dateiübertragung |
Nur SCP |
SCP und SFTP |
SSH2-Unterstützung im ZOC-Terminal
SSH-Client ZOC Terminal unterstützt
die volle Palette von SSH2-Funktionen.