
Schnelles, sicheres Shell-Protokoll, das auf HTTP/3, QUIC und TLS 1.3 aufbaut. Unterstützt OAuth2, OpenID Connect und klassische SSH-Authentifizierung mit UDP-Portweiterleitung und versteckten Serverfunktionen.
[!NOTE] SSH3 wird wahrscheinlich seinen Namen ändern. Es ist immer noch das SSH-Verbindungsprotokoll (RFC4254), das auf HTTP/3 Extended Connect läuft, aber die erforderlichen Änderungen sind umfangreich und zu weit entfernt von der Philosophie gängiger SSH-Implementierungen, um für eine Integration in Betracht gezogen zu werden. Der Spezifikationsentwurf wurde bereits umbenannt ("Remote Terminals over HTTP/3"), aber wir brauchen etwas Zeit, um einen schönen, dauerhaften Namen zu finden.
SSH3 ist eine vollständige Überarbeitung des SSH-Protokolls, die dessen Semantik auf die HTTP-Mechanismen abbildet. Es entstammt unserer Forschungsarbeit und wir (Forscher) haben es kürzlich als Internet-Draft (draft-michel-remote-terminal-http3-00) vorgeschlagen.
Kurz gesagt, SSH3 verwendet QUIC+TLS1.3 für den Aufbau des sicheren Kanals und die HTTP-Autorisierungsmechanismen für die Benutzerauthentifizierung. SSH3 ermöglicht unter anderem folgende Verbesserungen:
[!TIP] Möchten Sie schnell loslegen? Erfahren Sie, wie Sie SSH3 installieren. Sie lernen, einen SSH3-Server einzurichten und den SSH3-Client zu verwenden.
Schneller beim Sitzungsaufbau, nicht beim Durchsatz! SSH3 bietet einen deutlich schnelleren Sitzungsaufbau als SSHv2. Der Aufbau einer neuen Sitzung mit SSHv2 kann 5 bis 7 Netzwerk-Roundtrips dauern, was der Benutzer leicht bemerken kann. SSH3 benötigt nur 3 Roundtrips. Die Tasteneingabelatenz in einer laufenden Sitzung bleibt unverändert.
SSH3 (oben) VS SSHv2 (unten) Sitzungsaufbau mit einem Ping von 100ms zum Server.
Während SSHv2 eigene Protokolle für Benutzerauthentifizierung und sicheren Kanalaufbau definiert, verlässt sich SSH3 auf die robusten und erprobten Mechanismen von TLS 1.3, QUIC und HTTP. Diese Protokolle werden bereits umfassend zur Sicherung sicherheitskritischer Internetanwendungen wie E-Commerce und Online-Banking eingesetzt.
SSH3 implementiert bereits die gebräuchlichen passwortbasierten und Public-Key-Authentifizierungsmethoden (RSA und EdDSA/ed25519). Es unterstützt auch neue Authentifizierungsmethoden wie OAuth 2.0 und ermöglicht die Anmeldung auf Ihren Servern mit Ihren Google-/Microsoft-/Github-Konten.
Obwohl SSH3 vielversprechend für einen schnelleren Sitzungsaufbau ist, befindet es sich noch in einem frühen Proof-of-Concept-Stadium. Wie bei jedem neuen komplexen Protokoll ist eine fachkundige kryptografische Überprüfung über einen längeren Zeitraum erforderlich, bevor vernünftige Sicherheitsschlussfolgerungen gezogen werden können.
Wir entwickeln SSH3 als Open-Source-Projekt, um Community-Feedback und -Analysen zu erleichtern. Wir können jedoch noch nicht seine Eignung für Produktionssysteme befürworten, ohne weitere Peer-Review. Bitte arbeiten Sie mit uns zusammen, wenn Sie über relevante Fachkenntnisse verfügen!
Angesichts des aktuellen Prototyp-Status raten wir, SSH3 in abgesicherten Umgebungen oder privaten Netzwerken zu testen. Beachten Sie, dass das direkte Bereitstellen experimenteller Server im Internet Risiken mit sich bringen kann, bevor eine gründliche Sicherheitsprüfung erfolgt ist.
Während das Verstecken von Servern hinter geheimen Pfaden potenzielle Vorteile bietet, ersetzt es nicht die Notwendigkeit einer rigorosen Schwachstellenanalyse vor dem Einsatz in der Produktion. Wir sind begeistert von den zukünftigen Möglichkeiten von SSH3, ermutigen jedoch zu zusätzlicher Prüfung.
Mit SSH3 können Sie den üblichen Stress von Scanning- und Wörterbuchangriffen auf Ihren SSH-Server vermeiden. Ähnlich wie bei Ihren geheimen Google-Drive-Dokumenten kann Ihr SSH3-Server hinter einem geheimen Link versteckt werden und nur auf Authentifizierungsversuche antworten, die eine HTTP-Anfrage an diesen spezifischen Link gestellt haben, wie folgt:
ssh3-server -bind 192.0.2.0:443 -url-path <my-long-secret>
Indem Sie <my-long-secret> durch, sagen wir, den zufälligen Wert M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU ersetzen, antwortet Ihr SSH3-Server nur auf SSH3-Verbindungsversuche, die an die URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU gerichtet sind, und antwortet auf andere Anfragen mit 404 Not Found. Angreifer und Crawler im Internet können daher die Anwesenheit Ihres SSH3-Servers nicht erkennen. Sie sehen nur einen einfachen Webserver, der auf jede Anfrage mit einem 404-Statuscode antwortet.
BEACHTEN SIE: Das Platzieren Ihres SSH3-Servers hinter einer geheimen URL kann die Auswirkungen von Scanning-Angriffen verringern, wird aber die klassischen Authentifizierungsmechanismen niemals ersetzen dürfen und muss nie. Der geheime Link sollte nur verwendet werden, um zu verhindern, dass Ihr Host entdeckt wird. Die Kenntnis der geheimen URL sollte niemandem Zugriff auf Ihren Server gewähren. Verwenden Sie die oben beschriebenen klassischen Authentifizierungsmechanismen, um Ihren Server zu schützen.
SSH3 bietet neue Funktionen, die das SSHv2-Protokoll nicht bieten konnte.