Wersja OpenSSH 8.0

Po pięciu miesiącach rozwoju przedstawione wydanie OpenSSH 8.0, otwarta implementacja klienta i serwera do pracy poprzez protokoły SSH 2.0 i SFTP.

Główne zmiany:

  • Do protokołów ssh i sshd dodano eksperymentalną obsługę metody wymiany kluczy odpornej na ataki typu brute-force na komputer kwantowy. Komputery kwantowe radykalnie szybciej rozwiązują problem rozkładu liczby naturalnej na czynniki pierwsze, który leży u podstaw współczesnych algorytmów szyfrowania asymetrycznego i którego nie można skutecznie rozwiązać na klasycznych procesorach. Proponowana metoda opiera się na algorytmie NTRU Prime (funkcja ntrup4591761), opracowana dla kryptosystemów postkwantowych oraz metoda wymiany kluczy na krzywej eliptycznej X25519;
  • W sshd dyrektywy ListenAddress i PermitOpen nie obsługują już starszej składni „host/port”, która została zaimplementowana w 2001 roku jako alternatywa dla „host:port” w celu uproszczenia pracy z IPv6. We współczesnych warunkach dla protokołu IPv6 ustalono składnię „[::1]:22”, a „host/port” jest często mylony ze wskazaniem podsieci (CIDR);
  • ssh, ssh-agent i ssh-add obsługują teraz klucze ECDSA w tokenach PKCS#11;
  • W ssh-keygen domyślny rozmiar klucza RSA został zwiększony do 3072 bitów, zgodnie z nowymi zaleceniami NIST;
  • ssh umożliwia użycie ustawienia „PKCS11Provider=none” w celu zastąpienia dyrektywy PKCS11Provider określonej w ssh_config;
  • sshd zapewnia wyświetlanie dziennika sytuacji, w których połączenie zostaje zakończone podczas próby wykonania poleceń blokowanych przez ograniczenie „ForceCommand=internal-sftp” w sshd_config;
  • W ssh przy wyświetleniu prośby o potwierdzenie przyjęcia nowego klucza hosta zamiast odpowiedzi „tak” akceptowany jest teraz poprawny odcisk palca klucza (w odpowiedzi na zaproszenie do potwierdzenia połączenia użytkownik może skopiować oddzielnie otrzymany skrót referencyjny ze schowka, aby nie porównywać go ręcznie);
  • ssh-keygen zapewnia automatyczne zwiększanie numeru kolejnego certyfikatu podczas tworzenia podpisów cyfrowych dla wielu certyfikatów w wierszu poleceń;
  • Do scp i sftp dodano nową opcję „-J”, odpowiadającą ustawieniu ProxyJump;
  • W ssh-agent, ssh-pkcs11-helper i ssh-add dodano przetwarzanie opcji wiersza poleceń „-v” w celu zwiększenia zawartości informacyjnej wyjścia (jeśli jest określona, ​​opcja ta jest przekazywana procesom potomnym, np. przykład, gdy ssh-pkcs11-helper jest wywoływany z ssh-agent );
  • Do ssh-add dodano opcję „-T”, aby przetestować przydatność kluczy w ssh-agencie do wykonywania operacji tworzenia i weryfikacji podpisu cyfrowego;
  • sftp-server implementuje obsługę rozszerzenia protokołu „lsetstat at openssh.com”, które dodaje obsługę operacji SSH2_FXP_SETSTAT dla SFTP, ale bez następujących dowiązań symbolicznych;
  • Dodano opcję „-h” do sftp, aby uruchamiać polecenia chown/chgrp/chmod z żądaniami, które nie używają dowiązań symbolicznych;
  • sshd zapewnia ustawienie zmiennej środowiskowej $SSH_CONNECTION dla PAM;
  • W przypadku sshd do ssh_config dodano tryb dopasowywania „Match final”, który jest podobny do „Match canonical”, ale nie wymaga włączenia normalizacji nazwy hosta;
  • Dodano obsługę przedrostka „@” do sftp, aby wyłączyć tłumaczenie wyników poleceń wykonywanych w trybie wsadowym;
  • Podczas wyświetlania zawartości certyfikatu za pomocą polecenia
    „ssh-keygen -Lf /path/certificate” wyświetla teraz algorytm używany przez urząd certyfikacji do sprawdzania certyfikatu;

  • Ulepszona obsługa środowiska Cygwin, na przykład zapewniająca porównywanie nazw grup i użytkowników bez rozróżniania wielkości liter. Proces sshd w porcie Cygwin został zmieniony na cygsshd, aby uniknąć zakłóceń z portem OpenSSH dostarczonym przez Microsoft;
  • Dodano możliwość budowania z eksperymentalną gałęzią OpenSSL 3.x;
  • Wyłączony słaby punkt (CVE-2019-6111) w implementacji narzędzia scp, które umożliwia nadpisanie dowolnych plików w katalogu docelowym po stronie klienta podczas uzyskiwania dostępu do serwera kontrolowanego przez osobę atakującą. Problem polega na tym, że przy użyciu scp serwer decyduje, które pliki i katalogi wysłać do klienta, a klient sprawdza jedynie poprawność zwróconych nazw obiektów. Kontrola po stronie klienta ogranicza się jedynie do blokowania podróży poza bieżący katalog („../”), ale nie uwzględnia przesyłania plików o nazwach innych niż pierwotnie żądane. W przypadku kopiowania rekurencyjnego (-r) oprócz nazw plików w podobny sposób można manipulować także nazwami podkatalogów. Na przykład, jeśli użytkownik skopiuje pliki do katalogu domowego, serwer kontrolowany przez atakującego może zamiast żądanych plików wygenerować pliki o nazwach .bash_aliases lub .ssh/authorized_keys i zostaną one zapisane przez narzędzie scp w katalogu użytkownika katalog domowy.

    W nowej wersji narzędzie scp zostało zaktualizowane w celu sprawdzania zgodności między żądanymi nazwami plików i nazwami wysyłanymi przez serwer, co jest wykonywane po stronie klienta. Może to powodować problemy z przetwarzaniem maski, ponieważ znaki rozszerzenia maski mogą być przetwarzane inaczej po stronie serwera i klienta. W przypadku, gdy takie różnice powodują, że klient przestaje akceptować pliki w scp, dodano opcję „-T”, aby wyłączyć sprawdzanie po stronie klienta. Aby w pełni rozwiązać problem, wymagana jest koncepcyjna przeróbka protokołu scp, który sam w sobie jest już przestarzały, dlatego zaleca się zamiast tego stosowanie nowocześniejszych protokołów, takich jak sftp i rsync.

Źródło: opennet.ru

Dodaj komentarz