Wersja OpenSSH 8.4

Po czterech miesiącach rozwoju przedstawione wydanie OpenSSH 8.4, otwartej implementacji klienta i serwera do pracy przy użyciu protokołów SSH 2.0 i SFTP.

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 awans skuteczność ataków kolizyjnych z danym prefiksem (koszt wybrania kolizji szacuje się na około 45 tysięcy dolarów). W jednej z nadchodzących wydań planują domyślnie wyłączyć możliwość korzystania z algorytmu podpisu cyfrowego klucza publicznego „ssh-rsa”, który jest wspomniany w oryginalnym dokumencie RFC dla protokołu SSH i pozostaje szeroko rozpowszechniony w praktyce (w celu przetestowania użycia ssh-rsa w swoich systemach, możesz spróbować połączyć się przez ssh z opcją „-oHostKeyAlgorithms=-ssh-rsa”).

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

Dodaj komentarz