Po czterech miesiącach rozwoju
Główne zmiany:
- Zmiany bezpieczeństwa:
- W ssh-agencie, w przypadku korzystania z kluczy FIDO, które nie zostały utworzone do uwierzytelnienia SSH (identyfikator klucza nie zaczyna się od ciągu „ssh:”), sprawdza teraz, czy wiadomość zostanie podpisana przy użyciu metod stosowanych w protokole SSH. Zmiana nie pozwoli na przekierowywanie ssh-agent do zdalnych hostów posiadających klucze FIDO w celu zablokowania możliwości wykorzystania tych kluczy do generowania podpisów dla żądań uwierzytelnienia sieciowego (początkowo wykluczony jest przypadek odwrotny, gdy przeglądarka może podpisać żądanie SSH ze względu na użycie przedrostka „ssh:” w identyfikatorze klucza).
- Generowanie kluczy rezydentnych w ssh-keygen obejmuje obsługę dodatku credProtect opisanego w specyfikacji FIDO 2.1, który zapewnia dodatkową ochronę kluczy poprzez wymaganie podania kodu PIN przed wykonaniem jakiejkolwiek operacji, która może skutkować wyodrębnieniem klucza rezydentnego z tokena.
- Potencjalnie zakłócające zmiany kompatybilności:
- Aby obsługiwać FIDO/U2F, zaleca się korzystanie z biblioteki libfido2 w wersji co najmniej 1.5.0. Częściowo zaimplementowano możliwość korzystania ze starszych edycji, jednak w tym przypadku funkcje takie jak klucze rezydentne, żądanie PIN-u i łączenie wielu tokenów nie będą dostępne.
- W ssh-keygen dane uwierzytelniające niezbędne do weryfikacji potwierdzania podpisów cyfrowych zostały dodane do formatu informacji potwierdzającej, opcjonalnie zapisywanej podczas generowania klucza FIDO.
- Zmieniono interfejs API używany podczas interakcji OpenSSH z warstwą w celu uzyskania dostępu do tokenów FIDO.
- Podczas budowania przenośnej wersji OpenSSH wymagana jest teraz funkcja automake do wygenerowania skryptu konfiguracyjnego i towarzyszących mu plików kompilacji (w przypadku budowania z opublikowanego pliku tar z kodem ponowne generowanie konfiguracji nie jest wymagane).
- Dodano obsługę kluczy FIDO wymagających weryfikacji PIN w ssh i ssh-keygen. Aby wygenerować klucze z PIN-em, do ssh-keygen dodano opcję „wymagana weryfikacja”. W przypadku użycia takich kluczy, przed wykonaniem operacji złożenia podpisu użytkownik zostanie poproszony o potwierdzenie swoich działań poprzez wprowadzenie kodu PIN.
- W sshd w ustawieniuauthorized_keys zaimplementowana jest opcja „verify-required”, która wymaga użycia możliwości weryfikacji obecności użytkownika podczas operacji z tokenem. Standard FIDO zapewnia kilka opcji takiej weryfikacji, ale obecnie OpenSSH obsługuje tylko weryfikację opartą na PIN-ie.
- sshd i ssh-keygen dodały obsługę weryfikacji podpisów cyfrowych zgodnych ze standardem FIDO Webauthn, który umożliwia używanie kluczy FIDO w przeglądarkach internetowych.
- W ssh w ustawieniach pliku certyfikatu,
ControlPath, IdentityAgent, IdentityFile, LocalForward i
RemoteForward umożliwia podstawienie wartości ze zmiennych środowiskowych określonych w formacie „${ENV}”. - ssh i ssh-agent dodały obsługę zmiennej środowiskowej $SSH_ASKPASS_REQUIRE, której można użyć do włączenia lub wyłączenia wywołania ssh-askpass.
- W ssh w ssh_config w dyrektywie AddKeysToAgent dodana została możliwość ograniczenia okresu ważności klucza. Po wygaśnięciu określonego limitu klucze są automatycznie usuwane z ssh-agent.
- W scp i sftp, używając flagi "-A", możesz teraz jawnie zezwolić na przekierowanie do scp i sftp przy użyciu ssh-agent (przekierowanie jest domyślnie wyłączone).
- Dodano obsługę podstawienia „%k” w ustawieniach ssh, które określa nazwę klucza hosta. Tej funkcji można użyć do dystrybucji kluczy w oddzielnych plikach (na przykład „UserKnownHostsFile ~/.ssh/known_hosts.d/%k”).
- Zezwól na użycie operacji „ssh-add -d -” do odczytania kluczy ze standardowego wejścia, które mają zostać usunięte.
- W sshd początek i koniec procesu czyszczenia połączenia jest odzwierciedlany w dzienniku, regulowanym za pomocą parametru MaxStartups.
Twórcy OpenSSH przypomnieli także o zbliżającym się wycofaniu algorytmów korzystających z skrótów SHA-1 z powodu
Aby ułatwić przejście na nowe algorytmy w OpenSSH, następna wersja domyślnie włączy ustawienie UpdateHostKeys, które automatycznie przeniesie klientów do bardziej niezawodnych algorytmów. Zalecane algorytmy migracji obejmują rsa-sha2-256/512 w oparciu o RFC8332 RSA SHA-2 (obsługiwane od OpenSSH 7.2 i używane domyślnie), ssh-ed25519 (obsługiwane od OpenSSH 6.5) i ecdsa-sha2-nistp256/384/521 na RFC5656 ECDSA (obsługiwane od OpenSSH 5.7).
Źródło: opennet.ru