Кілька днів тому було оголошено про вихід нової версії OpenSSH 10.0, що несе з собою ряд значних змін у безпеці, ефективності та підготовці до майбутніх технологічних викликів, таких як постквантова криптографія.
Ця нова версія остаточно видаляє підтримку DSA, посилює ізоляцію процесу автентифікації за допомогою нового модуля sshd-auth і використовує гібридний алгоритм квантово стійкий обмін ключами. Він впроваджує вдосконалення конфігурації з розширеними виразами та більшою гнучкістю, а також модернізує свої алгоритми, вимикаючи застарілу версію Діффі-Хеллмана.
DSA прощається назавжди в OpenSSH 10.0
Однією з найважливіших змін у OpenSSH 10.0 є Повне видалення підтримки цифрових підписів на основі DSA, алгоритм, який давно вважався застарілим через невідповідність поточним стандартам безпеки. Хоча використання ключів DSA було вимкнено за замовчуванням з 2015 року, їх підтримку тепер повністю видалено з кодової бази.
Більша ізоляція процесу аутентифікації
Ще однією новою функцією OpenSSH 10.0 є поступове розділення критичних компонентів сервера sshd. Хоча в OpenSSH 9.8 sshd було розділено, у цій новій версії код автентифікації переміщено до окремого процесу під назвою sshd-auth. Це дозволяє конфіденційним даним, пов’язаним з автентифікацією, залишатися ізольованими в окремому просторі пам’яті, забезпечуючи додатковий рівень захисту від потенційних уразливостей перед автентифікацією. Крім того, завантаження цього коду після завершення автентифікації призводить до незначного зменшення використання пам’яті.
Квантово-стійкий обмін ключами
OpenSSH 10.0 виділяється тим, що за замовчуванням використовує a гібридний алгоритм обміну ключами що поєднує X25519 ECDH з ML-KEM (CRYSTALS-Kyber), називається mlkem768x25519-sha256. Це забезпечує стійкість до квантових атак завдяки використанню криптографії, заснованої на проблемах теорії мереж, які зберігають однакову обчислювальну складність як у класичній, так і в квантовій архітектурах. Обидва алгоритми стандартизовані NIST, що зміцнює впевненість у їх надійності.
Розширені вирази та гнучкість конфігурації
Версія 10.0 додає значні покращення до конфігураційних файлів ssh_config і sshd_config. Заміна маркерів і розширення змінних середовища тепер підтримуються в директивах SetEnv і User, що полегшує більш динамічні конфігурації. Також додано параметр «Відповідність версії», який дозволяє застосовувати умовні правила на основі виявленої версії OpenSSH.
Крім того, розширено підтримку виразів відповідності, включаючи умови на основі типу сеансу (Match sessiontype), певні команди (Match exec-command) і навіть порожні теги або пропущені команди.
Зміни в алгоритмах, шифрах і нових елементах керування в OpenSSH 10.0
Продовжуючи усунення застарілих алгоритмів, OpenSSH 10.0 за замовчуванням вимикає використання Diffie-Hellman на основі кінцевих полів, видаляючи варіанти diffie-hellman-group* і diffie-hellman-group-exchange-* і натомість віддаючи перевагу більш сучасним і ефективним алгоритмам
також посилюється безпека експлуатації: ssh-agent тепер очищає всі завантажені ключі після отримання сигналу SIGUSR1, а також додано можливість увімкнути сокети у стилі systemd за допомогою прапорців LISTEN_PID і LISTEN_FDS.
У галузі апаратна автентифікація, ssh-keygen додає підтримку токенів FIDO які не повертають дані сертифікації, наприклад Windows Hello. Також включено нову експериментальну утиліту ssh-verify-attestation, призначену для перевірки даних, створених пристроями FIDO під час реєстрації ключа.
Покращення клієнта, інструменти та розширена конфігурація
Клієнт SSH містить опцію VersionAddendum, яка дозволяє додавати спеціальний текст до рядка версії, функція, яка раніше була доступна лише на сервері. Утиліти scp і sftp отримують параметр за замовчуванням, який запобігає повторному використанню існуючих з’єднань, покращуючи безпеку та контроль сеансу.
Файлові маски тепер дозволені в директивах AuthorizedKeysFile і AuthorizedPrincipalsFile, що полегшує керування ключами в системах з кількома користувачами або динамічними конфігураціями.
Зміни в портативній версії та покращення безпеки
У портативній версії OpenSSH 10.0 це реалізовано підтримка AWS-LC, криптографічна бібліотека, розроблена Amazon для забезпечення сумісності та продуктивності. Це додає підтримка wtmpdb, Сучасна версія wtmp, стійка до проблеми 2038 року. Крім того, включено нові параметри компілятора для блокування sshd у пам’яті та створення автономної бібліотеки sk-libfido2, орієнтованої на ключі безпеки FIDO.
Нарешті вирішено критичну проблему безпеки: Директива DisableForwarding неправильно вимкнула переадресацію X11 ні дзвінків до ssh-агента. Хоча ці параметри вимкнено за замовчуванням на сервері та клієнті відповідно, виправлення забезпечує послідовну та безпечну поведінку.
Якщо ви є цікаво дізнатися про це більше, Ви можете перевірити деталі в за наступним посиланням.
Як встановити OpenSSH на Linux?
Для тих, хто зацікавлений у можливості встановити цю нову версію OpenSSH на свої системи, наразі вони можуть це зробити завантаження вихідного коду цього і виконуючи компіляцію на своїх комп’ютерах.
Це пов’язано з тим, що нова версія ще не включена до сховищ основних дистрибутивів Linux. Щоб отримати вихідний код, ви можете зробити з за наступним посиланням.
Закінчило завантаження, тепер ми збираємося розпакувати пакет наступною командою:
tar -xvf openssh -10.0.tar.gz
Вводимо створений каталог:
компакт-диск openssh-10.0
Y ми можемо скомпілювати з наступні команди:
./configure --prefix = / opt --sysconfdir = / etc / ssh make make install