Після чотирьох місяців розробки
Основні зміни:
- Зміни, пов'язані з безпекою:
- У ssh-agent при використанні ключів FIDO, створених не для аутентифікації через SSH (ідентифікатор ключа починається не з рядка «ssh:»), тепер перевіряється, що повідомлення буде підписано з використанням методів, що застосовуються в протоколі SSH. Зміна не дозволить перенаправляти ssh-agent на віддалені хости, що мають FIDO-ключі, для блокування можливості використання даних ключів для формування підписів запитів web-аутентифікації (зворотний випадок, коли браузер може підписати запит SSH, спочатку виключено завдяки застосуванню префікса «ssh:» в ідентифікаторі ключа).
- У ssh-keygen при генерації резидентного ключа включена підтримка доповнення credProtect, описаного в специфікації FIDO 2.1, що надає додатковий захист ключів через обов'язковий запит введення PIN-коду перед виконанням будь-якої операції, яка може призвести до вилучення резидентного ключа з токена.
- Зміни, що потенційно порушують сумісність:
- Для підтримки FIDO/U2F рекомендовано використовувати бібліотеку libfido2 як мінімум для версії 1.5.0. Частково реалізована можливість використання старих випусків, але в цьому випадку будуть недоступні такі функції, як резидентні ключі, запит PIN і підключення кількох токенів.
- У ssh-keygen у формат підтверджуючої інформації, що опціонально зберігається при генерації ключа FIDO, додані дані для автентифікатора, необхідні для перевірки підтверджуючих цифрових підписів.
- Змінено API, що застосовується при взаємодії OpenSSH із прошарком для звернення до токенів FIDO.
- При складанні версії OpenSSH, що переноситься, тепер потрібен automake для формування скрипта configure і супутніх складальних файлів (якщо збірка виконується з опублікованого tar-файлу з кодом, перегенерація configure не потрібна).
- У ssh і ssh-keygen додано підтримку FIDO-ключів, що вимагають підтвердження за допомогою PIN-коду. Для генерації ключів з PIN до ssh-keygen додана опція «verify-required». У разі використання подібних ключів перед виконанням створення підпису користувачеві виводиться запит, що вимагає підтвердити свої дії через введення PIN-коду.
- У sshd в налаштуванні authorized_keys реалізовано опцію «verify-required», що вимагає застосування можливостей з верифікації присутності користувача під час операцій із токеном. Стандарт FIDO передбачає кілька варіантів подібної верифікації, але в даний час OpenSSH підтримується тільки перевірка на основі PIN-коду.
- У sshd та ssh-keygen додано підтримку перевірки цифрових підписів, що відповідають стандарту FIDO Webauthn, що дозволяє застосовувати ключі FIDO у web-браузерах.
- У ssh в налаштуваннях CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward та
RemoteForward дозволена підстановка значень із змінних оточення, зазначених у форматі ${ENV}. - У ssh та ssh-agent додана підтримка змінної оточення $SSH_ASKPASS_REQUIRE, яку можна використовувати для увімкнення або вимкнення виклику ssh-askpass.
- У ssh до ssh_config у директиві AddKeysToAgent додана можливість обмеження часу дії ключа. Після закінчення заданого ліміту ключі автоматично видаляються із ssh-agent.
- У scp та sftp за допомогою прапора «-A» тепер можна явно дозволити перенаправлення в scp та sftp за допомогою ssh-agent (за замовчуванням перенаправлення заборонено).
- У налаштуваннях ssh додано підтримку підстановки '%k', що визначає ім'я ключа хоста. Вказану можливість можна використовувати для рознесення ключів за окремими файлами (наприклад, UserKnownHostsFile ~/.ssh/known_hosts.d/%k).
- Дозволено використання операції "ssh-add -d -" для читання зі stdin ключів, які підлягають видаленню.
- У sshd забезпечено відображення у лозі початку та завершення процесу урізання з'єднань, регульованого за допомогою параметра MaxStartups.
Розробники OpenSSH також нагадали про майбутній переклад у розряд застарілих алгоритмів, які використовують хеші SHA-1, у зв'язку з
Для згладжування переходу на нові алгоритми OpenSSH у наступному випуску за замовчуванням буде включено налаштування UpdateHostKeys, яке дозволить автоматично перевести клієнтів на більш надійні алгоритми. Серед рекомендованих для міграції алгоритмів згадані rsa-sha2-256/512 на базі RFC8332 RSA SHA-2 (підтримується з OpenSSH 7.2 та використовується за замовчуванням), ssh-ed25519 (підтримується з OpenSSH 6.5) та ecdsa2/256 з урахуванням RFC384 ECDSA (підтримується з OpenSSH 521).
Джерело: opennet.ru