SSH-Protokoll

Diese Seite befasst sich mit dem SSH-Protokoll. Zum Unternehmen, das dahinter steht, siehe SSH-Kommunikationssicherheit. Zur Verwendung des Linux-Befehls ssh siehe Verwendung des Befehls ssh. SSH-Clients, -Server und technische Informationen finden Sie auf der SSH (Secure Shell)-Homepage.

Das SSH-Protokoll (auch als Secure Shell bezeichnet) ist eine Methode zur sicheren Fernanmeldung von einem Computer bei einem anderen. Es bietet mehrere alternative Optionen für eine starke Authentifizierung und schützt die Sicherheit und Integrität der Kommunikation durch starke Verschlüsselung. Es ist eine sichere Alternative zu den ungeschützten Anmeldeprotokollen (wie telnet, rlogin) und unsicheren Dateiübertragungsmethoden (wie FTP).

Typische Anwendungen des SSH-Protokolls

Das Protokoll wird in Unternehmensnetzwerken für folgende Zwecke eingesetzt:

  • Bereitstellung eines sicheren Zugangs für Benutzer und automatisierte Prozesse

  • Interaktive und automatisierte Dateiübertragungen

  • Ausgabe von Remote-Befehlen

  • Verwaltung der Netzwerkinfrastruktur und anderer unternehmenskritischer Systemkomponenten.

Wie funktioniert das SSH-Protokoll

Das Protokoll arbeitet im Client-Server-Modell, d.h. die Verbindung wird vom SSH-Client aufgebaut, der sich mit dem SSH-Server verbindet. Der SSH-Client steuert den Verbindungsaufbau und verwendet die Kryptographie mit öffentlichen Schlüsseln, um die Identität des SSH-Servers zu überprüfen. Nach der Aufbauphase verwendet das SSH-Protokoll starke symmetrische Verschlüsselungs- und Hash-Algorithmen, um die Vertraulichkeit und Integrität der zwischen Client und Server ausgetauschten Daten zu gewährleisten.

Die folgende Abbildung zeigt einen vereinfachten Aufbau einer sicheren Shell-Verbindung.

Starke Authentifizierung mit SSH-Schlüsseln

Es gibt mehrere Optionen, die für die Benutzerauthentifizierung verwendet werden können. Die gebräuchlichsten sind Passwörter und Public-Key-Authentifizierung.

Die Public-Key-Authentifizierungsmethode wird in erster Linie für die Automatisierung und manchmal von Systemadministratoren für Single Sign-On verwendet. Es hat sich herausgestellt, dass sie viel häufiger verwendet wird, als wir jemals erwartet haben. Die Idee besteht darin, ein kryptographisches Schlüsselpaar – öffentlicher Schlüssel und privater Schlüssel – zu haben und den öffentlichen Schlüssel auf einem Server zu konfigurieren, um den Zugriff zu autorisieren und jedem, der eine Kopie des privaten Schlüssels besitzt, den Zugriff auf den Server zu gewähren. Die für die Authentifizierung verwendeten Schlüssel werden als SSH-Schlüssel bezeichnet. Die Authentifizierung mit öffentlichem Schlüssel wird auch bei Smartcards wie den CAC- und PIV-Karten der US-Regierung verwendet.

Die Hauptanwendung der schlüsselbasierten Authentifizierung besteht darin, eine sichere Automatisierung zu ermöglichen. Automatisierte sichere Shell-Dateiübertragungen werden für die nahtlose Integration von Anwendungen und auch für das automatisierte & Konfigurationsmanagement von Systemen verwendet.

Wir haben festgestellt, dass große Organisationen viel mehr SSH-Schlüssel haben, als sie sich vorstellen können, und die Verwaltung von SSH-Schlüsseln ist sehr wichtig geworden. SSH-Schlüssel gewähren Zugang wie Benutzernamen und Passwörter. In einigen Fällen haben wir mehrere Millionen SSH-Schlüssel gefunden, die den Zugang zu Produktionsservern in Kundenumgebungen autorisieren, wobei 90 % der Schlüssel tatsächlich ungenutzt sind und für einen Zugang stehen, der zwar eingerichtet, aber nie gekündigt wurde. Die Sicherstellung angemessener Richtlinien, Prozesse und Audits auch für die SSH-Nutzung ist entscheidend für ein ordnungsgemäßes Identitäts- und Zugriffsmanagement. Bei herkömmlichen Identitätsmanagement-Projekten wurden bis zu 90 % aller Anmeldedaten übersehen, weil SSH-Schlüssel nicht berücksichtigt wurden. Wir bieten Dienste und Tools für die Implementierung der SSH-Schlüsselverwaltung.

SSH bietet starke Verschlüsselung und Integritätsschutz

Nachdem eine Verbindung zwischen SSH-Client und -Server hergestellt wurde, werden die übertragenen Daten gemäß den bei der Einrichtung ausgehandelten Parametern verschlüsselt. Während der Aushandlung einigen sich Client und Server auf den zu verwendenden symmetrischen Verschlüsselungsalgorithmus und generieren den zu verwendenden Verschlüsselungsschlüssel. Der Datenverkehr zwischen den kommunizierenden Parteien wird mit starken Verschlüsselungsalgorithmen nach Industriestandard (z. B. AES (Advanced Encryption Standard)) geschützt, und das SSH-Protokoll enthält auch einen Mechanismus, der die Integrität der übertragenen Daten durch Verwendung von Standard-Hash-Algorithmen (z. B. SHA-2 (Standard Hashing Algorithm)) gewährleistet.

IETF SSH-Standard und ausführliche technische Dokumentation

Das Kernprotokoll

Als das SSH-Protokoll populär wurde, brachte Tatu Ylonen es bei der IETF zur Standardisierung ein. Heute ist es ein Internet-Standard, der in den folgenden Dokumenten beschrieben wird:

RFC 4251 – The Secure Shell (SSH) Protocol ArchitectureRFC 4253 – The Secure Shell (SSH) Transport Layer ProtocolRFC 4252 – The Secure Shell (SSH) Authentication ProtocolRFC 4254 – The Secure Shell (SSH) Connection Protocol

SFTP file transfer protocol

Das SFTP (SSH File Transfer Protocol) ist heute wahrscheinlich das am weitesten verbreitete Protokoll zur sicheren Dateiübertragung. Es läuft über SSH und ist derzeit in draft-ietf-secsh-filexfer-02 dokumentiert

Public Key File Format

Das Public Key File Format ist kein formaler Standard (es ist ein Informationsdokument), aber viele Implementierungen unterstützen dieses Format.RFC 4716 – The Secure Shell (SSH) Public Key File Format

Wie man SSH zitiert

Um SSH in einer wissenschaftlichen Arbeit zu zitieren, verwenden Sie bitte folgendes:

Tatu Ylonen: SSH - Secure Login Connections over the Internet.Proceedings of the 6th USENIX Security Symposium, pp. 37-42,USENIX, 1996.