OpenSSH 8.4-Version

Nach vier Monaten Entwicklungszeit eingereicht Veröffentlichung von OpenSSH 8.4, einer offenen Client- und Serverimplementierung für die Arbeit mit den Protokollen SSH 2.0 und SFTP.

Wichtigste Änderungen:

  • Sicherheitsänderungen:
    • Bei der Verwendung von FIDO-Schlüsseln, die nicht für die SSH-Authentifizierung erstellt wurden (die Schlüssel-ID beginnt nicht mit der Zeichenfolge „ssh:“), prüft der ssh-agent nun, ob die Nachricht mit den im SSH-Protokoll verwendeten Methoden signiert wird. Die Änderung erlaubt nicht, dass der SSH-Agent auf Remote-Hosts umgeleitet wird, die über FIDO-Schlüssel verfügen, um die Möglichkeit zu blockieren, diese Schlüssel zum Generieren von Signaturen für Webauthentifizierungsanfragen zu verwenden (der umgekehrte Fall, wenn ein Browser eine SSH-Anfrage signieren kann, ist zunächst ausgeschlossen aufgrund der Verwendung des Präfixes „ssh:“ in der Schlüsselkennung).
    • Die residente Schlüsselgenerierung von ssh-keygen umfasst Unterstützung für das in der FIDO 2.1-Spezifikation beschriebene Add-on credProtect, das zusätzlichen Schutz für Schlüssel bietet, indem eine PIN erforderlich ist, bevor eine Operation ausgeführt wird, die zum Extrahieren des residenten Schlüssels aus dem Token führen könnte.
  • Potenziell störende Kompatibilitätsänderungen:
    • Zur Unterstützung von FIDO/U2F wird empfohlen, die libfido2-Bibliothek mindestens Version 1.5.0 zu verwenden. Die Möglichkeit, ältere Editionen zu nutzen, wurde teilweise implementiert, allerdings stehen in diesem Fall Funktionen wie residente Schlüssel, PIN-Abfrage und die Verbindung mehrerer Token nicht zur Verfügung.
    • In ssh-keygen wurden die zur Überprüfung bestätigender digitaler Signaturen erforderlichen Authentifikatordaten zum Format der Bestätigungsinformationen hinzugefügt, die optional bei der Generierung eines FIDO-Schlüssels gespeichert werden.
    • Die API, die verwendet wird, wenn OpenSSH mit der Ebene für den Zugriff auf FIDO-Tokens interagiert, wurde geändert.
    • Beim Erstellen einer portablen Version von OpenSSH ist jetzt Automake erforderlich, um das Konfigurationsskript und die zugehörigen Build-Dateien zu generieren (wenn aus einer veröffentlichten Code-TAR-Datei erstellt wird, ist die Neugenerierung von configure nicht erforderlich).
  • Unterstützung für FIDO-Schlüssel hinzugefügt, die eine PIN-Verifizierung in ssh und ssh-keygen erfordern. Um Schlüssel mit PIN zu generieren, wurde ssh-keygen um die Option „verify-required“ erweitert. Wenn solche Schlüssel verwendet werden, wird der Benutzer vor der Durchführung der Signaturerstellung aufgefordert, seine Aktionen durch Eingabe eines PIN-Codes zu bestätigen.
  • In sshd ist die Option „verify-required“ in der Einstellung „authorized_keys“ implementiert, die den Einsatz von Funktionen erfordert, um die Anwesenheit des Benutzers während Operationen mit dem Token zu überprüfen. Der FIDO-Standard bietet mehrere Möglichkeiten für eine solche Verifizierung, OpenSSH unterstützt derzeit jedoch nur die PIN-basierte Verifizierung.
  • sshd und ssh-keygen haben Unterstützung für die Überprüfung digitaler Signaturen hinzugefügt, die dem FIDO-Webauthn-Standard entsprechen, der die Verwendung von FIDO-Schlüsseln in Webbrowsern ermöglicht.
  • In ssh in den CertificateFile-Einstellungen,
    ControlPath, IdentityAgent, IdentityFile, LocalForward und
    RemoteForward ermöglicht die Ersetzung von Werten aus Umgebungsvariablen, die im Format „${ENV}“ angegeben sind.

  • ssh und ssh-agent haben Unterstützung für die Umgebungsvariable $SSH_ASKPASS_REQUIRE hinzugefügt, die zum Aktivieren oder Deaktivieren des ssh-askpass-Aufrufs verwendet werden kann.
  • In ssh wurde in ssh_config in der AddKeysToAgent-Direktive die Möglichkeit hinzugefügt, die Gültigkeitsdauer eines Schlüssels zu begrenzen. Nach Ablauf des angegebenen Limits werden die Schlüssel automatisch vom SSH-Agent gelöscht.
  • In scp und sftp können Sie jetzt mithilfe des Flags „-A“ die Umleitung zu scp und sftp mithilfe von ssh-agent explizit zulassen (die Umleitung ist standardmäßig deaktiviert).
  • Unterstützung für die „%k“-Ersetzung in den SSH-Einstellungen hinzugefügt, die den Host-Schlüsselnamen angibt. Mit dieser Funktion können Schlüssel in separate Dateien verteilt werden (z. B. „UserKnownHostsFile ~/.ssh/known_hosts.d/%k“).
  • Erlauben Sie die Verwendung der Operation „ssh-add -d -“, um Schlüssel aus stdin zu lesen, die gelöscht werden sollen.
  • In sshd wird der Beginn und das Ende des Verbindungsbereinigungsprozesses im Protokoll widergespiegelt, reguliert über den Parameter MaxStartups.

Die OpenSSH-Entwickler erinnerten auch an die bevorstehende Stilllegung von Algorithmen, die SHA-1-Hashes verwenden Förderung die Wirksamkeit von Kollisionsangriffen mit einem bestimmten Präfix (die Kosten für die Auswahl einer Kollision werden auf etwa 45 Dollar geschätzt). In einer der kommenden Versionen ist geplant, die Möglichkeit zur Verwendung des digitalen Signaturalgorithmus „ssh-rsa“ mit öffentlichem Schlüssel, der im ursprünglichen RFC für das SSH-Protokoll erwähnt wird und in der Praxis weiterhin weit verbreitet ist, standardmäßig zu deaktivieren (um die Verwendung zu testen). von ssh-rsa in Ihren Systemen können Sie versuchen, eine Verbindung über ssh mit der Option „-oHostKeyAlgorithms=-ssh-rsa“ herzustellen.

Um den Übergang zu neuen Algorithmen in OpenSSH zu erleichtern, wird die nächste Version standardmäßig die UpdateHostKeys-Einstellung aktivieren, die Clients automatisch auf zuverlässigere Algorithmen migriert. 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).

Source: opennet.ru

Kommentar hinzufügen