Nach viermonatiger Entwicklung Die Veröffentlichung von OpenSSH 8.4, einer offenen Implementierung von Client und Server zur Nutzung der Protokolle SSH 2.0 und SFTP.
HauptÀnderungen:
- Ănderungen, die die Sicherheit betreffen:
- Im ssh-agent wird bei der Verwendung von FIDO-SchlĂŒsseln, die nicht zur Authentifizierung ĂŒber SSH erstellt wurden (der SchlĂŒsselidentifikator beginnt nicht mit der Zeichenfolge âssh:â), jetzt ĂŒberprĂŒft, dass die Nachricht mit Methoden signiert wird, die im SSH-Protokoll verwendet werden. Diese Ănderung verhindert die Weiterleitung des ssh-agent an entfernte Hosts mit FIDO-SchlĂŒsseln, um zu blockieren, dass diese SchlĂŒssel zur Erstellung von Signaturen fĂŒr Web-Authentifizierungsanfragen verwendet werden können (der umgekehrte Fall, bei dem der Browser eine SSH-Anfrage signieren kann, wurde durch die Verwendung des PrĂ€fixes âssh:â im SchlĂŒsselidentifikator ursprĂŒnglich ausgeschlossen).
- Im ssh-keygen wird beim Erstellen eines residenten SchlĂŒssels die UnterstĂŒtzung der Erweiterung credProtect aktiviert, die in der FIDO 2.1-Spezifikation beschrieben ist und zusĂ€tzlichen Schutz fĂŒr SchlĂŒssel bietet, indem vor jeder Operation, die zur Extraktion des residenten SchlĂŒssels aus dem Token fĂŒhren kann, eine PIN-Code-Eingabe verlangt wird.
- Ănderungen, die möglicherweise die KompatibilitĂ€t beeintrĂ€chtigen:
- Zur UnterstĂŒtzung von FIDO/U2F wird empfohlen, die Bibliothek libfido2 mindestens in der Version 1.5.0 zu verwenden. Es ist teilweise auch die Verwendung Ă€lterer Versionen möglich, aber in diesem Fall sind Funktionen wie residente SchlĂŒssel, PIN-Anfragen und die Verbindung mehrerer Token nicht verfĂŒgbar.
- Im ssh-keygen wurden die Daten fĂŒr den Authentifikator, die zur ĂberprĂŒfung der BestĂ€tigung digitaler Signaturen erforderlich sind, in das Format der BestĂ€tigungsinformationen eingefĂŒgt, die optional beim Generieren eines FIDO-SchlĂŒssels gespeichert werden.
- Die API, die bei der Interaktion von OpenSSH mit der Schicht zur Ansprache von FIDO-Token verwendet wird, wurde geÀndert.
- Beim Erstellen einer portablen Version von OpenSSH ist nun automake erforderlich, um das Konfigurierungsskript und die zugehörigen Build-Dateien zu erstellen (wenn der Build aus einer veröffentlichten tar-Datei mit Quellcode durchgefĂŒhrt wird, ist eine Neuregeneration von configure nicht erforderlich).
- In ssh und ssh-keygen wurde die UnterstĂŒtzung fĂŒr FIDO-SchlĂŒssel hinzugefĂŒgt, die zur BestĂ€tigung die Eingabe eines PIN-Codes erfordern. Zum Generieren von SchlĂŒsseln mit PIN wurde in ssh-keygen die Option âverify-requiredâ hinzugefĂŒgt. Bei Verwendung solcher SchlĂŒssel wird dem Benutzer vor der DurchfĂŒhrung der Signaturerstellung eine Aufforderung angezeigt, die die BestĂ€tigung seiner Aktionen durch die Eingabe des PIN-Codes erfordert.
- In sshd wurde in der Konfiguration authorized_keys die Option âverify-requiredâ implementiert, die die Nutzung von Funktionen zur Verifizierung der Anwesenheit des Benutzers wĂ€hrend der Token-Operationen erfordert. Der FIDO-Standard sieht mehrere Varianten solcher Verifizierung vor, jedoch wird derzeit in OpenSSH nur die PIN-basierte ĂberprĂŒfung unterstĂŒtzt.
- In sshd und ssh-keygen wurde die UnterstĂŒtzung fĂŒr die ĂberprĂŒfung digitaler Signaturen hinzugefĂŒgt, die dem FIDO Webauthn-Standard entsprechen und die Verwendung von FIDO-SchlĂŒsseln in Webbrowsern ermöglichen.
- In ssh in den Einstellungen CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward und
RemoteForward ist die Verwendung von Umgebungsvariablen im Format â${ENV}â zur Platzhaltersetzung erlaubt. - In ssh und ssh-agent wurde die UnterstĂŒtzung der Umgebungsvariablen $SSH_ASKPASS_REQUIRE hinzugefĂŒgt, die verwendet werden kann, um das Aufrufen von ssh-askpass zu aktivieren oder zu deaktivieren.
- In ssh wurde in ssh_config unter der Direktive AddKeysToAgent die Möglichkeit zur Begrenzung der GĂŒltigkeitsdauer des SchlĂŒssels hinzugefĂŒgt. Nach Ablauf des festgelegten Limits werden die SchlĂŒssel automatisch aus dem ssh-agent entfernt.
- In scp und sftp kann nun mithilfe des Flags â-Aâ die Weiterleitung mit ssh-agent ausdrĂŒcklich erlaubt werden (standardmĂ€Ăig ist die Weiterleitung deaktiviert).
- In den ssh-Einstellungen wurde die UnterstĂŒtzung fĂŒr den Platzhalter â%kâ hinzugefĂŒgt, der den Namen des HostschlĂŒssels definiert. Diese Funktion kann verwendet werden, um SchlĂŒssel in separaten Dateien zu verteilen (zum Beispiel âUserKnownHostsFile ~/.ssh/known_hosts.d/%kâ).
- Die Verwendung des Befehls âssh-add -d -â zum Lesen von SchlĂŒsseln, die gelöscht werden sollen, aus stdin ist erlaubt.
- In sshd wird der Beginn und das Ende des Vorgangs zur Verbindungskappung, der durch die Konfiguration des Parameters MaxStartups geregelt wird, im Protokoll aufgezeichnet.
Die Entwickler von OpenSSH erinnerten auch an die bevorstehende Einstufung von Algorithmen, die Hashes SHA-1 verwenden, als obsolet, in Verbindung mit Die EffektivitĂ€t von Kollisionangriffen mit einem bestimmten PrĂ€fix (die Kosten zur Auffindung einer Kollision werden auf etwa 45.000 Dollar geschĂ€tzt). In einer der nĂ€chsten Ausgaben ist geplant, die Verwendung des digitalen Signaturalgorithms mit öffentlichem SchlĂŒssel âssh-rsaâ standardmĂ€Ăig zu deaktivieren, der im ursprĂŒnglichen RFC fĂŒr das SSH-Protokoll erwĂ€hnt wird und in der Praxis nach wie vor weit verbreitet ist (um zu ĂŒberprĂŒfen, ob ssh-rsa in Ihren Systemen verwendet wird, können Sie versuchen, sich per SSH mit der Option â-oHostKeyAlgorithms=-ssh-rsaâ zu verbinden).
Um den Ăbergang zu neuen Algorithmen in OpenSSH zu erleichtern, wird in der nĂ€chsten Version standardmĂ€Ăig die Einstellung UpdateHostKeys aktiviert, die es ermöglicht, Clients automatisch auf zuverlĂ€ssigere Algorithmen umzustellen. Zu den empfohlenen Algorithmen fĂŒr die Migration gehören rsa-sha2-256/512 basierend auf RFC8332 RSA SHA-2 (unterstĂŒtzt seit OpenSSH 7.2 und standardmĂ€Ăig verwendet), ssh-ed25519 (unterstĂŒtzt seit OpenSSH 6.5) und ecdsa-sha2-nistp256/384/521 basierend auf RFC5656 ECDSA (unterstĂŒtzt seit OpenSSH 5.7).
Quelle: opennet.ru
