Secure Shell (SSH) ist ein kryptografisches Protokoll, das Daten sicher über ein unsicheres Netzwerk überträgt. Der SSH Dienst wird typischerweise auf TCP-Port 22 bereitgestellt.
Im Jahr 1995 entwickelte Tatu Ylonen die erste Version des SSH-Protokolls und veröffentlichte den Quellcode öffentlich.
Im Jahr 2006 wurde eine überarbeitete Version des Protokolls, SSH-2 genannt, als neuer Standard angenommen. Im Vergleich zu SSH1 bietet es verbesserte Sicherheit und neue Funktionen wie neue Schlüsselaustauschmechanismen und hat eine verbesserte Protokollstruktur, bei der das Protokoll in separate Schichten unterteilt ist, einen verhandelbaren Hash-Mechanismus, neue Verschlüsselungsmethoden usw.
ZOC Terminal ist ein professioneller Terminal-Emulator und SSH-Client mit vielen Funktionen für Windows und macOS. Weitere Informationen...
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).
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)
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.
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.
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.
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.
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.
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.
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.
Ä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.
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.
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 |
SSH-Client ZOC Terminal unterstützt die volle Palette von SSH2-Funktionen.
Lesen Sie mehr über unseren ZOC Terminal Emulator,
informieren Sie sich über die Features oder
Screenshots oder probieren Sie das Programm 30 Tage kostenlos
und
downloaden Sie
ZOC Terminal V8.09.0
jetzt.