OpenSSH

OpenSSH- oder OpenBSD Secure Shell
"Keeping your communiqués secret"
"Halten Sie Ihre Kommuniqués geheim"
Entwickler (en) Das OpenBSD Projekt
Erstveröffentlichung 1. Dezember 1999; Vor 22 Jahren
Stabile Version
9.0[1] Edit this on Wikidata/ 8. April 2022
Repository Github.com/OpenSSH/openSsh-portable
Geschrieben in C
Betriebssystem Plattformübergreifend[2]
Standard(s) RFC 4250, RFC 4251, RFC 4252, RFC 4253, RFC 4254, RFC 4255, RFC 4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4462, RFC 5656, RFC 6594, RFC 6668, RFC 7479[3]
Typ Fernzugriff
Lizenz BSD, Isc, öffentlich zugänglich
Webseite www.openssh.com

OpenSSH (auch bekannt als OpenBSD sichere Schale[a]) ist eine Suite von sicher Networking Dienstprogramme basierend auf dem Sichere Schale (SSH) Protokoll, das a liefert Sicherungskanal über einem ungesicherten Netzwerk in a Kundenserver die Architektur.[4][5]

OpenSsh begann als Gabel des frei SSH -Programm, das von Tatu Ylönen entwickelt wurde; Spätere Versionen von Ylönens SSH waren proprietäre Software angeboten von SSH -Kommunikationssicherheit.[6] OpenSSH wurde erstmals 1999 veröffentlicht und wird derzeit im Rahmen der entwickelt OpenBSD Betriebssystem.

OpenSSH ist kein einzelnes Computerprogramm, sondern eine Reihe von Programmen, die als Alternativen zu unverschlüsselten Protokollen dienen Telnet und Ftp. OpenSSH ist in mehrere Betriebssysteme integriert, nämlich Microsoft Windows, Mac OS Und die meisten Linux Betriebssysteme,[7][8] während tragbar Die Version ist als Paket in anderen Systemen erhältlich.[9][10][11]

Geschichte

OpenBSD Secure Shell wurde von erstellt von OpenBSD Entwickler als Alternative zur ursprünglichen SSH -Software von Tatu Ylönen, die jetzt ist proprietäre Software.[12] Obwohl Quellcode Für das ursprüngliche SSH sind verschiedene Einschränkungen für die Verwendung und Verteilung auferlegt. OpenSSH wurde als erstellt Gabel von Björn Grönvall's Ossh Das selbst war eine Gabel von Tatu Ylönens ursprünglicher freier SSH 1.2.12 -Veröffentlichung, die die letzte war, die eine für die Gabel geeignete Lizenz hatte.[13] Die OpenSSH -Entwickler behaupten, dass ihre Bewerbung sicherer ist als das Original, da sie die Richtlinie zur Herstellung von Reinigungsmittel und geprüft Code und weil es unter dem veröffentlicht wird BSD -Lizenz, das Open-Source-Lizenz Zu dem das Wort offen im Namen bezieht sich.

OpenSSH erschien zuerst in OpenBSD 2.6. Die erste tragbare Veröffentlichung wurde im Oktober 1999 erstellt.[14] Die Entwicklungen haben seitdem die Zugabe von Chiffren einbezogen (z. B.,, Chacha20-Poly1305 In 6.5 Uhr von Januar 2014[15]), Schneiden der Abhängigkeit von OpenSSL (6.7, Oktober 2014[16]) und eine Erweiterung zu erleichtern Öffentlicher Schlüssel Entdeckung und Rotation für vertrauenswürdige Gastgeber (für den Übergang von DSA zu Ed25519 Öffentliche Hostschlüssel, Version 6.8 von März 2015[17]).

Am 19. Oktober 2015, Microsoft kündigte an, dass OpenSSH nativ unterstützt wird Microsoft Windows und zugänglich durch Power ShellVeröffentlichung einer frühzeitigen Implementierung und öffentlich verfügbarer Code.[18] OpenSSH-basierte Client- und Serverprogramme wurden in enthalten Windows 10 Seit Version 1803. Der SSH-Client und der Schlüsselagenten sind standardmäßig aktiviert und verfügbar, und der SSH-Server ist ein optionales Feature-on-Demand.[19]

Im Oktober 2019 Schutz für private Schlüssel im RAM in RAM gegen Spekulationen und Speicher Seitenkanalangriffe wurden in OpenSSH 8.1 hinzugefügt.[20]

Entwicklung

OpenSSH steuert einen Server über Unix Shell remote

OpenSSH wird als Teil der OpenBSD entwickelt Betriebssystem. Anstatt Änderungen für andere Betriebssysteme direkt in OpenSSH einzubeziehen, ist eine separate Portabilität Die Infrastruktur wird vom OpenSSH -Portabilitätsteam gepflegt und "tragbare Veröffentlichungen" werden regelmäßig durchgeführt. Diese Infrastruktur ist erheblich, teilweise, weil OpenSSH durchführen muss Authentifizierung, eine Fähigkeit, die viele unterschiedliche Implementierungen hat. Dieses Modell wird auch für andere OpenBSD -Projekte verwendet, wie z. OpenNTPD.

Die OpenSSH -Suite enthält die folgenden Befehlszeilen-Dienstprogramme und Daemons:

  • SCPein Ersatz für RCP.
  • sftpein Ersatz für ftp Dateien zwischen Computern kopieren.
  • sshein Ersatz für Rlogin, rsh und Telnet erlauben Hülse Zugang zu einer Remotemaschine.
  • ssh-add und SSH-Agent, Dienstprogramme zur Erleichterung der Authentifizierung, indem sie Schlüssel bereit halten und die Notwendigkeit vermeiden, jedes Mal, wenn sie verwendet werden, Passphrasen betreten.
  • ssh-keygen, ein Werkzeug zum Inspektieren und Generieren der RSA, DSA und Elliptikkurve Schlüssel, die für Benutzer und Host verwendet werden Authentifizierung.
  • ssh-keyscan, die eine Liste von Gastgebern scannt und ihre öffentlichen Schlüssel sammelt.
  • sshd, der SSH -Server -Daemon.

Der OpenSSH -Server kann Benutzer mithilfe der von der unterstützten Standardmethoden authentifizieren ssh Protokoll: mit einem Passwort; Öffentlicher Schlüssel Authentifizierung unter Verwendung von Tasten von Perbenutzer; Hostbasierte Authentifizierung, eine sichere Version von Rlogin's Host Trust -Beziehungen mit öffentlichen Schlüssel; Tastaturinteraktiv, ein Generikum Challenge -Reaktion Mechanismus, der häufig für die einfache Kennwortauthentifizierung verwendet wird, aber auch stärkere Authentikatoren wie nutzen kann Token; und Kerberos/GSSAPI. Der Server nutzt Authentifizierungsmethoden, die im Host -Betriebssystem nativ sind. Dies kann die Verwendung der verwenden BSD -Authentifizierung System oder Steckbare Authentifizierungsmodule (PAM), um eine zusätzliche Authentifizierung durch Methoden wie z. einmalige Passwörter. Dies hat jedoch gelegentlich Nebenwirkungen: Bei der Verwendung von PAM mit OpenSSH muss es als ausgeführt werden Wurzel, wie Wurzelprivilegien in der Regel zum Betrieb von PAM erforderlich sind. OpenSSH-Versionen nach 3.7 (16. September 2003) ermöglichen es PAM, zur Laufzeit deaktiviert zu werden, sodass reguläre Benutzer SSHD-Instanzen ausführen können.

OpenBSD verwendet OpenSSH eine engagierte sshd Der Benutzer standardmäßig, um die Berechtigungen abzugeben und eine Privilegie -Trennung gemäß dem durchzuführen Prinzip der geringsten Privilegienim gesamten Betriebssystem einschließlich der Xenocara X Server.

Merkmale

OpenSSH beinhaltet die Möglichkeit, einen gesicherten Kanal einzurichten, über den Daten an lokale Client-Seite gesendet werden UNIX -Domain -Sockets oder lokaler Kunden-Seite TCP Ports können sein "weitergeleitet"(über den gesicherten Kanal gesendet) für das Routing auf der Serverseite; Wenn diese Weiterleitung eingerichtet ist, wird der Server angewiesen, diese weitergeleiteten Daten an einen Socket oder einen TCP -Host/-port zu senden (der Host könnte der Server selbst sein", localhost "oder, der Host kann ein anderer Computer sein, so dass er dem anderen Computer erscheint, dass der Server der Urheber der Daten ist). Die Weiterleitung von Daten ist bidirektional, was bedeutet, dass jede Rückgabekommunikation selbst an den Client weitergeleitet wird -Side auf die gleiche Weise; dies wird als "bezeichnet" bekannt "SSH -Tunnel",",[21] und es kann verwendet werden, um zusätzliche TCP -Verbindungen über eine einzelne SSH -Verbindung seit 2004 zu multiplexen.[22] Um Verbindungen zu verbergen, Protokolle zu verschlüsseln, die ansonsten ungesichert sind, und Firewalls zu umgehen, indem alle Arten von Daten über einen Port gesendet/empfangen werden, der von der Firewall zulässig ist. Zum Beispiel eine X Fenstersystem Tunnel kann automatisch erstellt werden, wenn OpenSSH zur Verbindung zu einem Remote -Host und anderen Protokollen wie z. Http und VNC, kann leicht weitergeleitet werden.[23]

Tunnieren eines TCP-Einkapselung Nutzlast (wie z. Ppp) über eine TCP-basierte Verbindung (z. B. SSHs Port-Weiterleitung) ist als "TCP-Over-TCP" bekannt und kann dies zu einem dramatischen Verlust bei der Übertragungsleistung (ein Problem als "TCP-Kernschmelze" bezeichnen).[24][25] weshalb virtuelles privates Netzwerk Die Software kann stattdessen für die Tunnelverbindung ein Protokoll verwendet werden, das einfacher ist als TCP. Dies ist jedoch häufig kein Problem bei der Verwendung von OpenSSHs Portweiterleitung, da viele Anwendungsfälle kein TCP-OVER-TCP-Tunnel beinhalten. Der Zusammenbruch wird vermieden, da der OpenSSH-Client die lokale, clientseitige TCP-Verbindung verarbeitet, um die tatsächliche Nutzlast zu erreichen, die gesendet wird Der Server "wird die Nutzlast in ähnlicher Weise" ausgepackt ", um sie erneut zu" einwickeln ", um an das endgültige Ziel zu gelangen.[26]

Darüber hinaus beinhaltet einige Software von Drittanbietern die Unterstützung für das Tunneln über SSH. Diese beinhalten DistcC, Lebenslauf, rsync, und Die Post holen. Auf einigen Betriebssystemen Remote Dateisysteme kann über SSH mit Tools wie z. B. montiert werden sshfs (Verwendung SICHERUNG).

Ein ad hoc Socken Proxy -Server kann mit OpenSSH erstellt werden. Dies ermöglicht ein flexibleres Proxying als bei der gewöhnlichen Portweiterleitung möglich.

OpenSSH beginnend mit Version 4.3 implementiert eine Osi Schicht 2/3 Tun-basierend VPN. Dies ist die flexibelste Tunnelfunktionen von OpenSSH, sodass Anwendungen transparent auf Remote -Netzwerkressourcen zugreifen können, ohne dass Socken verwendet werden.[27]

Unterstützte öffentliche Schlüsselarten

OpenSSH unterstützt die folgenden öffentlichen Schlüsselarten:[28][29]

  • ssh-DSS (Beim Laufzeit seit OpenSSH 7.0 im Jahr 2015 deaktiviert)[30]
  • ssh-RSA (Deaktiviert seit OpenSSH 8.8, die im Jahr 2021 veröffentlicht wurden, zur Laufzeit)[31]
  • ECDSA-SHA2-nistp256 (seit OpenSSH 5.7 veröffentlicht im Jahr 2011)[32]
  • ECDSA-SHA2-nistp384 (seit OpenSSH 5.7)
  • ECDSA-SHA2-nistp521 (seit OpenSSH 5.7)
  • ssh-ed25519 (Seit OpenSSH 6.5 im Jahr 2014 veröffentlicht)[33]
  • RSA-SHA2-256 (seit OpenSSH 7.2 im Jahr 2016 veröffentlicht)[34]
  • RSA-SHA2-512 (seit OpenSSH 7.2)
  • ECDSA-sk (seit OpenSSH 8.2 im Jahr 2020 veröffentlicht)[35]
  • ed25519-sk (seit OpenSSH 8.2)
  • Ntru Prime-x25519 (Seit OpenSSH 9.0)[36]

Schwachstellen

Vor Version 5.2 von OpenSSH konnte ein Angreifer bis zu 14 Bit Klartext mit einer Erfolgswahrscheinlichkeit von 2 wiederherstellen–14.[37] Die Sicherheitsanfälligkeit war mit dem CBC -Verschlüsselungsmodus zusammenhängen. Der AES CTR -Modus und die Arcfour -Chiffren sind nicht für diesen Angriff anfällig.

Es gab eine lokale Privilegie -Eskalation -Sicherheitsanfälligkeit in Openenssh 6.8 bis 6.9 (CVE-2015-6565) aufgrund weltweit heiterer (622) Tty Geräte, von denen angenommen wurde, dass sie a sind Denial of Service Verletzlichkeit.[38] Mit der Verwendung des Tiocsti ioctlEs war authentifizierter Benutzer möglich, Charaktere in andere Benutzer -Terminals zu injizieren und beliebige Befehle unter Linux auszuführen.[39]

Bösartige oder kompromittierte OpenSSH-Server können vertrauliche Informationen über den Client wie private Anmeldeschlüssel für andere Systeme lesen, wobei eine Sicherheitsanfälligkeit verwendet wird, die auf der nicht verknüpften Verbindungsfunktion des OpenSSH-Clients beruht, die als Roaming bezeichnet wird und standardmäßig auf dem Client aktiviert ist. aber nicht auf dem OpenSSH -Server unterstützt. Dies gilt für Versionen 5.4 (veröffentlicht am 8. März 2010[40]) bis 7.1 des OpenSSH -Clients und wurde in OpenSSHSSH 7.1P2 festgelegt, am 14. Januar 2016 veröffentlicht. CVE -Zahlen mit dieser Verwundbarkeit verbunden sind CVE-2016-0777 (Informationsleck) und CVE-2016-0778 (Pufferüberlauf).[41][42]

Warenzeichen

Im Februar 2001 informierte Tatu Ylönen, Vorsitzender und CTO von SSH Communications Security, die OpenSSH -Entwicklungsliste, dass das Unternehmen beabsichtigt hatte, sein Eigentum an der "SSH" und "Secure Shell" geltend zu machen, und "Secure Shell" geltend zu machen. Warenzeichen,[43] und versuchte, Verweise auf das Protokoll in "secsh" oder "secsh" zu ändern, um die Kontrolle über den Namen "SSH" zu erhalten. Er schlug vor, dass OpenSSH seinen Namen ändert, um eine Klage zu vermeiden, einen Vorschlag, dem Entwickler widerstanden. OpenSSH -Entwickler Damien Miller antwortete und forderte Ylönen auf, sich zu überdenken, und argumentierte, dass "SSH" längst ein Generisches Markenzeichen.[44]

Zu dieser Zeit waren "SSH", "Secure Shell" und "SSH" in Dokumenten erschienen, in denen das Protokoll als offener Standard vorgeschlagen wurde. Ohne diese innerhalb des Vorschlags als eingetragene Marken zu markieren, leitete Ylönen das Risiko ein, alle ausschließlichen Rechte an den Namen als Mittel zur Beschreibung des Protokolls aufzugeben. Unsachgemäße Verwendung einer Marke oder Ermöglichung von anderen, eine Marke falsch zu verwenden, führt dazu, dass die Marke zu einer generischen Begriff wird wie Kleenex oder Aspirin, was die Marke öffnet, die von anderen verwendet werden kann.[45] Nach dem Studium der USPTO Die Markendatenbank, viele Online -Experten waren der Meinung, dass der Begriff "SSH" nicht als Markenzeichen, lediglich das Logo mit den unteren Fallbuchstaben "SSH", nicht als Markenzeichen. Darüber hinaus bestand die sechs Jahre zwischen der Schaffung des Unternehmens und der Zeit, in der es begann, seine Marke zu verteidigen, und dass nur OpenSSH drohende drohende Auswirkungen auf die Gültigkeit des Markenzeichens gewässerte.[46]

Beide Entwickler von Openenssh und Ylönen selbst waren Mitglieder der IETF -Arbeitsgruppe, die den neuen Standard entwickelten. Nach mehreren Sitzungen bestritt diese Gruppe Ylönens Bitte, das Protokoll umzubenennen, und verwies auf Bedenken, dass es einen schlechten Präzedenzfall für andere Markenansprüche gegen die IETF darstellen würde. Die Teilnehmer argumentierten, dass sowohl "sichere Shell" als auch "SSH" generische Begriffe seien und keine Marken sein könnten.[6]

Siehe auch

Anmerkungen

  1. ^ "OpenBSD Secure Shell" -Name wird hauptsächlich in verschiedenen verwendet sshd Startkripte.

Verweise

  1. ^ "OpenSSH 9.0, die mit Härten gegen zukünftige Quantencomputer veröffentlicht wurden"; Hausveröffentlichung: Phoronix; Abgerufen: 8. April 2022; Veröffentlichungsdatum: 8. April 2022.
  2. ^ "OpenSSH tragbare Release". OpenBSD. Abgerufen 15. Oktober 2015.
  3. ^ "Spezifikationen von OpenSSH" implementiert ". Das OpenBSD -Projekt.Das OpenBSD -Projekt. Abgerufen 14. Oktober 2015.
  4. ^ Venkatachalam, Girish (April 2007). "Das OpenSsh -Protokoll unter der Motorhaube". Linux Journal (156): 74–777 über die Discovery -Datenbank an der LSU{{}}: Cs1 montieren: postScript (link)
  5. ^ Netzwerkarbeitsgruppe der IETF, Januar 2006, RFC 4252, SSH -Authentifizierungsprotokoll (SSH).
  6. ^ a b Duffy Marsan, Carolyn (22. März 2001). "Secure Shell Inventor verweigert die Markenanfrage". Itworld.com. Abgerufen 14. Dezember 2021.
  7. ^ "Dragonfly.git/Blob - Crypto/OpenSSH/Readme". gitweb.dragonflybsd.org. Abgerufen 19. Mai 2016. Dies ist der Hafen von OpenBSDs hervorragendem OpenSSH to Linux und anderen Eingeräten.
  8. ^ "src/crypto/extern/bsd/openenssh/dist/readme - Ansicht - 1.4". NetBSD CVS -Repositories. Abgerufen 19. Mai 2016.
  9. ^ "OpenSSH". OpenSuse. Abgerufen 17. Mai 2016.
  10. ^ "Debian-Details des Pakets OpenSSH-Client in Jessie". Debian. Abgerufen 17. Mai 2016.
  11. ^ "Arch Linux - OpenSSH 7.2P2-1 (x86_64)". Arch Linux. Abgerufen 17. Mai 2016.
  12. ^ "Projektgeschichte und Credits". OpenBSD. Abgerufen 8. April 2008.
  13. ^ "OpenSSH: Projektgeschichte und Credits". OpenSSH.com. 22. Dezember 2004. Abgerufen 27. Februar 2014.
  14. ^ "Tragbare OpenSSH - Freecode". Erstsemester.net. Abgerufen 11. Februar 2014.
  15. ^ Murenin, Konstantine A. (11. Dezember 2013). Unbekannter Lamer (Hrsg.). "OpenSSH hat eine neue Chiffre-Chacha20-Poly1305-von D. J. Bernstein". Slashdot. Abgerufen 26. Dezember 2014.
  16. ^ Murenin, Konstantine A. (30. April 2014). Soulskill (Hrsg.). "OpenSSH muss sich nicht mehr von OpenSSL verlassen". Slashdot. Abgerufen 26. Dezember 2014.
  17. ^ Murenin, Konstantin A. (1. Februar 2015). Soulskill (Hrsg.). "OpenSSH bietet eine wichtige Erkennung und Rotation, um das Umschalten auf ED25519 zu vereinfachen.". Slashdot. Abgerufen 1. Februar 2015.
  18. ^ "OpenSSH für Windows Update". 19. Oktober 2015. Abgerufen 23. Oktober 2015.
  19. ^ Durr, Yosef (7. März 2018). "Was ist neu für die Befehlszeile in Windows 10 Version 1803". Windows -Befehlszeilen -Tools für Entwickler.
  20. ^ "Schutz für private Schlüssel in Ruhe im Ram".
  21. ^ "OpenBSD -Handbuchseiten: SSH". openbsd.org. 3. Juli 2014. Abgerufen 14. Juli 2014.
  22. ^ "OpenSSH -Versionsnotizen".
  23. ^ "Merkmale". OpenSSH. Abgerufen 26. Juni 2016.
  24. ^ Titz, Olaf (23. April 2001). "Warum TCP über TCP eine schlechte Idee ist". Abgerufen 17. Oktober 2015.
  25. ^ Honda, Osamu; Ohsaki, Hiroyuki; IMase, Makoto; Ishizuka, Mika; Murayama, Junichi (Oktober 2005). "TCP über TCP verstehen: Auswirkungen des TCP-Tunnelns auf den End-to-End-Durchsatz und die Latenz". In Atiquzzaman Mohammed; Balandin, Sergey I (Hrsg.). Leistung, Servicequalität und Kontrolle der Kommunikations- und Sensornetzwerke der nächsten Generation III. Vol. 6011. Bibcode:2005spie.6011..138h. Citeseerx 10.1.1.78.5815. doi:10.1117/12.630496. S2CID 8945952.
  26. ^ Kaminsky, Dan (13. Juni 2003). "Re: Erweiterungen für lange fette Netzwerke?". [email protected] (Mailingliste). Der TCP -Weiterleitungscode ist ebenfalls ziemlich schnell. Nur um eine Frage vorzubeugen, dekapsuliert SSH TCP, sodass Sie keine klassischen TCP-Over-TCP-Probleme haben.
  27. ^ "OpenSSH 4.3 Versionsnotizen". OpenSSH.com. 1. Februar 2006. Abgerufen 14. Juli 2014.
  28. ^ "SSHD (8) - Linux Manual Page".
  29. ^ "SSHD_CONfig (5) - OpenBSD -Handbuchseiten".
  30. ^ https://www.openssh.com/txt/release-7.0[Bare URL -Klartextdatei]
  31. ^ https://www.openssh.com/txt/release-8.8[Bare URL -Klartextdatei]
  32. ^ https://www.openssh.com/txt/release-5.7[Bare URL -Klartextdatei]
  33. ^ https://www.openssh.com/txt/release-6.5[Bare URL -Klartextdatei]
  34. ^ https://www.openssh.com/txt/release-7.2[Bare URL -Klartextdatei]
  35. ^ https://www.openssh.com/txt/release-8.2[Bare URL -Klartextdatei]
  36. ^ "Änderungen seit OpenSSH 8.9 (OpenSSH 9.0 Versionshinweise)". OpenSsh -Entwickler. 8. April 2022.
  37. ^ OpenSsh Security Advisory CBC -Angriff
  38. ^ CVE- 2015-6565
  39. ^ OpenSsh Pty Schwachstellen
  40. ^ OpenSSH 5.4 veröffentlicht
  41. ^ Thomson, Iain (14. Januar 2016). "Evil OpenSSH -Server können Ihre privaten Anmeldetasten in anderen Systemen stehlen - Patch jetzt".. Das Register.
  42. ^ OpenSSH 7.1P2 wurde gerade veröffentlicht.
  43. ^ Ylonen, Tatu (14. Februar 2001). "SSH -Marken und der OpenSSH -Produktname". OpenSSH-unix-dev (Mailingliste). Marc. Abgerufen 11. Februar 2014.
  44. ^ Miller, Damien (14. Februar 2001). "Re: SSH -Marken und der OpenSSH -Produktname". OpenSSH-unix-dev (Mailingliste). Marc. Abgerufen 11. Februar 2014.
  45. ^ Lemos, Robert (2. Januar 2002). "SSH! Verwenden Sie diese Marke nicht". CNET. Abgerufen 19. Mai 2016.
  46. ^ Ylonen, Tatu (1. März 2002). "Ylönen: Wir besitzen SSH -Marke, aber hier ist ein Vorschlag". Newsforge. Archiviert von das Original am 1. März 2002. Abgerufen 20. Mai 2016.

Externe Links