Nach vier Monaten Entwicklungszeit
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
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