Anzeigegulli:Toolbox |
gulli:lexikon » Secure Shell
gulli:lexikon - Alle Begriffe der Untergrund-SzeneTipp: Benutze die Suche, um weitere Begriffe im gulli:lexikon nachzuschlagen.
Secure Shell oder SSH bezeichnet sowohl ein Netzwerkprotokoll als auch entsprechende Programme, mit deren Hilfe man auf eine sichere Art und Weise eine verschlüsselte Netzwerkverbindung mit einem entfernten Computer herstellen kann. Häufig wird diese Methode verwendet, um sich eine entfernte Kommandozeile quasi auf den lokalen Rechner zu holen, das heißt auf der lokalen Konsole werden die Ausgaben der entfernten Konsole ausgegeben und die lokalen Tastatureingaben werden an den entfernten Rechner gesendet. Hierdurch wird der Effekt erreicht, als säße man quasi direkt vor der entfernten Konsole. Die neuere Protokoll-Version SSH2 bietet weitere Funktionen wie Datenübertragung per SFTP.
GeschichteDie erste Version des Protokolls (jetzt SSH-1 genannt) wurde 1995 von Tatu Ylönen als Reaktion auf die Nachfrage nach Drop-in-Replacements für Berkeley Services unter Unix einschließlich der Befehle rsh (remote shell), rcp (remote copy) und rlogin (remote login) entwickelt. Er veröffentlichte seine Implementation 1995 als Freeware, die daraufhin relativ schnell an Popularität gewann; Ende des Jahres 1995 zählte man bereits 20.000 Benutzer in fünfzig Ländern. Im Dezember gründete Tatu Ylönen die Firma SSH Communications Security, um SSH zu vermarkten und weiterzuentwickeln. Die Originalsoftware enthielt ursprünglich Open-Source-Quellcode, entwickelte sich aber im Laufe der Zeit immer mehr zu proprietärer Software. Nachdem einige Schwachstellen in der Integritätsprüfung von SSH-1 bekannt geworden waren, wurde 1996 mit SSH-2 eine überarbeitete Version des Protokolls entwickelt. Sie ist inkompatibel zu SSH-1. Dabei wurde unter anderem das Protokoll in verschiedene Einzelteile aufgegliedert und somit die Verwendung sicherer Verschlüsselungs- und Authentifikations-Algorithmen ermöglicht. Damit wurde die Schwachstelle beseitigt, und derzeit gilt das Protokoll als sicher. 1999 wurde der Wunsch nach einer freien Implementation von SSH laut, und aus der letzten freien Version der Originalimplementation entwickelte sich das separate OpenSSH-Projekt. Spätestens seit dieser Zeit existiert das SSH-Protokoll in zwei Implementationen: Als Open-Source-Software (OpenSSH) und als proprietäre Software (Produktname: SSHTectia), entwickelt und vertrieben von der Firma SSH Communications Security, also den Original-Entwicklern rund um Ylönen. 2005, also zehn Jahre nach der Original-Entwicklung, ist die Firma SSH Communications Security mit der Generation 3 (SSH G3) an die Öffentlichkeit gegangen. Dieses Protokoll unterstützt die Verwendung des proprietären Snakeoil-Algorithmus „CryptiCore“ (Vorteile angeblich vor allem im Datendurchsatz), der jedoch als unsicher gilt (siehe „Verschlüsselung“). Die anderen, etablierten Verschlüsselungsalgorithmen, werden weiterhin ebenfalls unterstützt. 2006 wurde dieses Protokoll (Version 2) von der IETF als Internetstandard vorgeschlagen. Eine Zertifizierung nach FIPS-Standard 140-2 (FIPS = Federal Information Processing Standard) besteht bereits länger. Wichtiger als der neue Algorithmus ist die erstmalige Unterstützung des SSH-Protokolls auf dem Mainframe (IBM z/OS). Damit existiert nun nach Hersteller-Angaben eine durchgängige Unterstützung der Plattformen Unix-Derivate (BSD, Linux, Solaris, AIX, HP-UX, u. a.), Windows, IBM z/OS. VerwendungBild:X11 ssh tunnelling.png Eine X11-Verbindung wird über SSH weitergeleitet SSH ermöglicht eine sichere, authentifizierte und verschlüsselte Verbindung zwischen zwei Rechnern über ein unsicheres Netzwerk. Dadurch dient es unter anderem als Ersatz für die Vorgänger rlogin, telnet und rsh; diese übertragen jeglichen Netzverkehr, darunter auch die Passwörter, unverschlüsselt und sollten daher nicht mehr verwendet werden. Das ursprüngliche Anwendungsgebiet ist das Anmelden an entfernten Rechnern über ein Netzwerk (meistens das Internet), doch insbesondere SSH-2 ist nicht nur auf Terminalfunktionen beschränkt.
Wahlweise kann die Verbindung auch komprimiert werden, um die Datenübertragung zu beschleunigen und Bandbreite zu sparen. Damit lassen sich nun grundsätzlich drei Anwendungsszenarien darstellen:
SicherheitDie Sicherheit von SSH wird durch eine Reihe von kryptographischen Algorithmen zur Verschlüsselung und Authentifizierung gewährleistet. AuthentifizierungDer Server identifiziert sich dem Client gegenüber mit einem RSA-Zertifikat, wodurch Manipulationen im Netzwerk erkannt werden können (niemand anderes kann sich als ein bekannter Server ausgeben). Der Client kann sich wahlweise mit einem öffentlichen Schlüssel, der auf dem Server hinterlegt ist (sogenannte Public-Key-Authentifizierung), oder einem gewöhnlichen Textpasswort authentifizieren. VerschlüsselungNach erfolgreicher Authentifizierung wird für die Dauer der Sitzung ein geheimer Schlüssel erzeugt, mit dem die gesamte nachfolgende Kommunikation verschlüsselt wird. Je nach Protokollversion kommt dabei ein anderer Verschlüsselungsalgorithmus zum Einsatz: SSH2 benutzt standardmäßig den AES mit einer 128-Bit-Schlüssellänge. Außerdem werden 3DES, Blowfish, Twofish, CAST, IDEA, Arcfour, SEED und AES mit anderen Schlüssellängen unterstützt. Die neue Generation SSH G3 unterstützt auch den proprietären Snakeoil-Algorithmus CryptiCore, der unter Cryptoexperten als Security-through-obscurity-Algorithmus verpönt ist und außer dem angeblichen Geschwindigkeitsgewinn keinerlei weitere Sicherheitsvorteile bietet. <ref>Crypto-Gram</ref> SchwachstellenDie von SSH-1 verwendete Integritätsprüfung weist Schwachstellen auf, die es einem Angreifer ermöglichen, eine SSH-1-Sitzung auszuspähen. Daher sollte nur noch die neue Protokollversion ab SSH-2 aufwärts verwendet werden. Diese zeichnet sich durch einen modularen Aufbau der Transport-, Autorisierungs- und Verbindungsschichten aus und ermöglicht im Gegensatz zu SSH-1 die Verwendung von verschiedenen Verschlüsselungsalgorithmen. ImplementierungenSSH-Implementationen waren ursprünglich nur unter Unix verfügbar, mittlerweile wurden jedoch sowohl SSH-Server als auch Clients für andere Plattformen programmiert (siehe auch: Geschichte). Populär sind beispielsweise die SSH-Clients PuTTY (für Microsoft Windows und Unix) sowie WinSCP. Unter Cygwin gibt es auch einen Sshd für Windows, der auf OpenSSH basiert. Damit kann man sich per SSH auf einer Windows-Maschine einloggen und bekommt dort eine Shell. Für skriptgesteuerte Aufgaben, z. B. Datensicherung, ist dies ein mächtiges Werkzeug. Mit OpenSSH existiert auch eine freie Implementierung von SSH, die mittlerweile einen sehr großen Verbreitungsgrad erreicht hat. Des weiteren gibt es u.a. die freien Implementationen dropbear oder lsh. Weiterhin gibt es für Microsoft Windows die kostenlose SSH Implementierung freeSSHd. Der SSH Server lässt sich unter Windows als Dienst installieren. Die Benutzersteuerung unterstützt NT-Authentifizierung, somit kann man sich gegen eine Domäne anmelden. Die SSH Communications Security bietet mit dem SSH Tectia Client/Server eine kommerzielle SSH-Implementation an, die eine Authentifizierung mittels Smartcards und USB-Tokens (PKCS#11) sowie X.509.v3-Zertifikaten ermöglicht. Aber auch OpenSSH kann Smartcards verwenden. Quellenangaben<references/> RFC-Spezifikationen
Weblinksar:قشرة آمنة bg:SSH bs:Secure Shell ca:Secure Shell cs:Secure Shell da:SSH en:Secure Shell es:Secure Shell eu:Secure Shell fi:SSH fr:Secure shell gl:Secure shell he:Secure Shell hu:Secure Shell it:Secure shell ja:Secure Shell ko:시큐어 셸 lt:SSH mk:Secure Shell nl:Secure Shell no:Secure Shell pl:SSH pt:SSH ru:SSH sk:Secure shell sl:Secure shell sv:SSH th:Secure Shell tr:SSH uk:Secure Shell vi:SSH zh:SSH Dieser Artikel basiert auf dem Artikel Secure Shell aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar. |
Weitere Tipps | ||||||||||||||||||||||||||||||