Постквантовий SSH: готуємо сервер до квантової ери та прибираємо ворнінги в OpenSSH
🇬🇧 Read this article in English
Якщо ви останнім часом оновлювали клієнтські утиліти або робили git push до сучасних репозиторіїв, ви могли помітити в терміналі незвичне попередження:
1
2
3
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
Багато хто дивується: «Зачекайте, хіба квантові комп’ютери вже існують у вільному продажу? Навіщо OpenSSH б’є на сполох прямо зараз, якщо мій класичний ключ Ed25519 чи RSA чудово працює?»
Відповідь ховається у концепції кібершпигунства SNDL (Store Now, Decrypt Later) та у глобальному переході на стандарти квантово-стійкої криптографії (NIST FIPS 203 / ML-KEM).
Сьогодні розберемося, чому старе шифрування застаріває швидше, ніж здається, як влаштований гібридний постквантовий обмін ключами в OpenSSH та як налаштувати свій VPS і робочий комп’ютер, щоб раз і назавжди прибрати ворнінги та захистити трафік на десятиліття вперед.
Мал. 1. Порівняння класичного SSH (вразливого до атаки «Збережи зараз — розшифруй потім») та гібридного постквантового шифрування ML-KEM-768 + X25519
Загроза «Store Now, Decrypt Later»: чому панікують уже зараз?
Усі сучасні асиметричні алгоритми шифрування (RSA, традиційний Diffie-Hellman, а також еліптичні криві ECDH та X25519) тримаються на двох математичних проблемах:
- Складність факторизації великих чисел на прості множники (основа RSA).
- Складність дискретного логарифмування в групах еліптичних кривих (основа ECDH / Ed25519).
Класичний суперкомп’ютер витратить мільярди років на підбір такого ключа. Проте ще в 1994 році математик Пітер Шор описав квантовий алгоритм (Shor’s Algorithm), який на повноцінному квантовому комп’ютері (Cryptographically Relevant Quantum Computer, CRQC) клацає ці задачі за лічені хвилини.
У чому підступ сьогодні?
Спецслужби, державні хакери та системи масового стеження перехоплюють і накопичують терабайти зашифрованого інтернет-трафіку (SSH, TLS, VPN) у дата-центрах просто зараз. Вони не можуть прочитати його сьогодні. Але вони терпляче чекають: коли через 5–10 років з’явиться стабільний квантовий процесор, увесь архів ваших SSH-сесій, корпоративних паролів, сертифікатів та приватних розмов буде розшифровано заднім числом.
Якщо безпека вашої інфраструктури має зберігати таємницю довше, ніж на кілька років — її потрібно захищати постквантовими алгоритмами вже сьогодні.
Рішення: стандартизація NIST та алгоритм ML-KEM (Kyber)
У серпні 2024 року Національний інститут стандартів і технологій США (NIST) офіційно затвердив перші три постквантові криптографічні стандарти. Головний серед них:
- FIPS 203 (ML-KEM): Module-Lattice-Based Key-Encapsulation Mechanism (раніше відомий як CRYSTALS-Kyber).
Замість множення простих чисел ML-KEM побудований на геометрії багатовимірних евклідових решіток (Lattice-based cryptography). Зокрема, на задачі «навчання з помилками» на модулях (Module-LWE). Квантові комп’ютери не мають відомого ефективного алгоритму для злому таких решіток.
Чому OpenSSH обрав саме гібридний підхід?
Команда OpenSSH вчинила неймовірно мудро: вони не стали сліпо відмовлятися від перевіреної часом еліптичної кривої X25519. Замість цього вони впровадили гібридний обмін ключами (Hybrid Key Exchange):
sntrup761x25519-sha512@openssh.com(комбінація Streamlined NTRU Prime + X25519).mlkem768x25519-sha256(комбінація стандарту NIST FIPS 203 ML-KEM-768 + X25519).
Як працює гібридний щит:
Під час підключення клієнт і сервер генерують одночасно два спільних секрети:
- Один через класичний X25519.
- Другий через постквантовий ML-KEM.
Фінальний сесійний ключ формується шляхом гешування обох секретів разом.
- Якщо завтра квантовий комп’ютер зламає X25519 — сесію надійно втримає ML-KEM.
- Якщо післязавтра математики знайдуть приховану вразливість у новій теорії решіток ML-KEM — сесію втримає старий перевірений X25519.
Зламати такий зв’язок можна лише за умови, якщо атакувальник зможе одночасно зламати обидва математичні світи!
Крок 1. Перевіряємо версію OpenSSH та підтримку алгоритмів
Постквантові алгоритми з’явилися в OpenSSH поступово:
- Починаючи з OpenSSH 9.0, гібридний алгоритм
sntrup761x25519-sha512увімкнено за замовчуванням. - Починаючи з OpenSSH 9.8 та 9.9, додано офіційний стандарт NIST
mlkem768x25519-sha256і ввімкнено попередження для застарілих з’єднань.
1. Перевірте версію клієнта:
1
ssh -V
2. Подивіться підтримувані KEX-алгоритми:
1
ssh -Q kex | grep -E "sntrup|mlkem"
Якщо у виводі є:
1
2
3
sntrup761x25519-sha512
sntrup761x25519-sha512@openssh.com
mlkem768x25519-sha256
Вітаємо! Ваш стек підтримує постквантову криптографію.
Крок 2. Як перевірити активне шифрування поточної сесії
Щоб дізнатися, який алгоритм насправді узгоджується під час вашого підключення, запустіть SSH із прапорцем деталізації (-v):
1
ssh -v -p ВАШ_ПОРТ adminuser@IP_ВАШОГО_СЕРВЕРА
У лозі підключення знайдіть блок узгодження KEX:
1
2
3
debug1: kex: algorithm: sntrup761x25519-sha512@openssh.com
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com
Якщо ви бачите у рядку kex: algorithm алгоритм зі словом sntrup або mlkem — ваше з’єднання вже надійно захищене від квантових перехоплювачів!
Якщо ж там вказано curve25519-sha256 чи ecdh-sha2-nistp256 — клієнт або сервер досі використовують класичний нестійкий обмін.
Крок 3. Налаштування сервера: примусовий Post-Quantum KEX
Щоб ваш сервер віддавав абсолютний пріоритет постквантовим алгоритмам, додамо конфігурацію в каталог перевизначень:
1
sudo nano /etc/ssh/sshd_config.d/post-quantum.conf
Додайте директиву з правильним порядком пріоритетів:
1
2
# Пріоритет постквантових гібридних алгоритмів обміну ключами
KexAlgorithms sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256,curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
Обов’язково протестуйте синтаксис конфігурації:
1
sudo sshd -t
Якщо консоль мовчить (помилок немає), безпечно перезапустіть службу:
- Ubuntu / Debian:
sudo systemctl restart ssh - AlmaLinux / Rocky Linux:
sudo systemctl restart sshd
Крок 4. Налаштування клієнта: прибираємо ворнінги назавжди
Якщо ви підключаєтеся з ноутбука (macOS, Linux чи Windows PowerShell) і хочете, щоб ваш клієнт завжди наполягав на квантовому захисті, налаштуйте локальний конфіг:
Відкрийте (або створіть) ~/.ssh/config:
1
nano ~/.ssh/config
Додайте глобальне або точкове правило:
1
2
Host *
KexAlgorithms sntrup761x25519-sha512@openssh.com,mlkem768x25519-sha256,curve25519-sha256
Тепер ваш клієнт першими пропонуватиме саме гібридні алгоритми sntrup761 та mlkem768. Якщо віддалений сервер їх підтримує — жодних попереджень більше ніколи не з’явиться!
А що з ключами автентифікації? Чи потрібно міняти Ed25519?
Тут важливо розуміти фундаментальну різницю:
| Етап з’єднання | Що захищає? | Чи вразливий до атаки «Збережи зараз»? | Постквантовий статус |
|---|---|---|---|
| Key Exchange (KEX) | Створює сесійний ключ для шифрування трафіку | ТАК! Записаний трафік розшифрують у майбутньому | Терміново оновлюємо на ML-KEM / sntrup761 |
| Автентифікація (Ключ Ed25519) | Підтверджує, що ви — це ви прямо зараз | НІ. Розшифровка ключа через 10 років не дасть увійти в минуле | Ed25519 залишається чудовим і надійним |
Саме тому OpenSSH у першу чергу перевів на постквантові рейки саме узгодження сесійних ключів (KEX), а ваш звичний ключ id_ed25519 можна продовжувати використовувати без змін.
Підсумок
Постквантова криптографія — це вже не теоретична наукова фантастика, а щоденний стандарт системного адміністрування.
Витративши 3 хвилини на перевірку версій та додавання одного рядка KexAlgorithms:
- Ви повністю ліквідуєте загрозу «Store Now, Decrypt Later».
- Назавжди позбудетеся тривожних ворнінгів у консолі під час роботи з Git та SSH.
- Ваша інфраструктура відповідатиме найсучаснішим криптографічним стандартам NIST FIPS 203.
Перевірте свій сервер прямо зараз командою ssh -Q kex — майбутнє вже настав!
