Аналіз результатів сканування та рукостискання TLS
Під час налаштування та аудиту мережевої безпеки розробники, інженери з надійності сайтів (SRE) та фахівці з безпеки часто працюють із текстовими виводами різноманітних сканерів безпеки, утиліти openssl s_client або дампами мережевих пакетів. Інструмент Перевірка набору шифрів TLS призначений для статичного аналізу таких текстових даних. Він дозволяє швидко визначити узгоджені протоколи, набори шифрів, а також виявити застарілі чи небезпечні алгоритми без необхідності виконувати живе підключення до сервера або надсилати запити в мережу.
Обробка наданих даних відбувається локально: вставлені дані TLS залишаються у вашому браузері. Інструмент не завантажує та не зберігає їх, що забезпечує конфіденційність аналізу конфігураційних файлів та звітів сканування.
Вхідні дані та обмеження аналізу
Для проведення аналізу необхідно надати текстовий фрагмент, який містить інформацію про параметри TLS. Інструмент розпізнає загальні імена IANA, псевдоніми OpenSSL, а також декілька поширених шістнадцяткових ідентифікаторів набору шифрів.
Допустимі формати вхідних даних включають:
- Результати роботи поширених сканерів TLS.
- Текстовий вивід команди
openssl s_client. - Підсумки аналізу пакетів (наприклад, текстові вивантаження полів ClientHello або ServerHello).
Технічні обмеження:
- Максимальний розмір вхідного тексту становить 200 000 символів. Якщо обсяг даних перевищує цей ліміт, система відобразить повідомлення про помилку: «Це резюме надзвичайно велике. Нехай він не перевищує 200 000 символів.».
- Необроблений двійковий файл або файл захоплення пакетів (наприклад, у форматі.pcap) не підтримуються.
- Якщо поле вводу порожнє, під час спроби аналізу з'явиться помилка: «Спочатку вставте сканування TLS або підсумок рукостискання.».
- Якщо у наданому тексті відсутні розпізнані параметри, відображається помилка: «Жодна версія TLS або набір шифрів не розпізнано. Вставте читабельні поля сканера або рукостискання.».
Ролі параметрів та оцінка безпеки
Інструмент класифікує знайдені елементи за їхньою роллю у з'єднанні та надає оцінку безпеки для кожного виявленого набору шифрів.
Ролі параметрів у звіті
Виявлені версії протоколів та набори шифрів можуть належати до однієї з трьох категорій взаємодії:
- Договірна (
Договірна): безпосередньо обраний та узгоджений параметр для сесії. - Пропонується (
Пропонується): параметри, які клієнт заявив як підтримувані у повідомленні ClientHello. - Спостерігається (
Спостерігається): параметри, зафіксовані під час моніторингу або сканування.
Оцінка безпеки наборів шифрів
Кожен ідентифікований набір отримує один із чотирьох статусів відповідності сучасним вимогам безпеки:
- Сучасний (
Сучасний): безпечні алгоритми, рекомендовані для використання. - огляд (
огляд): потребує додаткового аналізу залежно від контексту використання. - Застаріле (
Застаріле): алгоритми, які більше не вважаються надійними або офіційно виведені з експлуатації. - Невідомий (
Невідомий): набір шифрів відсутній у локальній базі даних.
Аналіз застарілих та вразливих алгоритмів
Під час аналізу наданого тексту інструмент перевіряє компоненти шифрів на наявність відомих уразливостей та відповідність стандартам безпеки. Нижче наведено правила інтерпретації та висновки, які генеруються для застарілих технологій:
| Компонент / Набір шифрів | Виявлена проблема та статус безпеки |
|---|---|
| RC4 | RC4 є застарілим і не підлягає обговоренню. |
| DES | DES не є безпечним для загального використання TLS. |
| 3DES | 3DES має невеликий розмір блоку і не підтримується для TLS. |
| NULL | Шифрування NULL не забезпечує конфіденційності. |
| EXPORT | Комплекти EXPORT навмисно використовують слабку криптографію, тому вони застарілі. |
| Anonymous | Анонімні пакети не автентифікують однорангового користувача та є вразливими до перехоплення. |
| MD5 | MD5 не є безпечним для загального використання TLS. |
| SHA-1 | Цей пакет використовує SHA-1, який не підтримується для загального використання TLS. |
| CBC | Комплекти CBC є застарілими. Віддавайте перевагу комплекту AEAD, наприклад AES-GCM або ChaCha20-Poly1305. |
| Static RSA | Статичний обмін ключами RSA не забезпечує пряму секретність (Forward Secrecy). |
| CCM-8 | CCM-8 використовує коротший тег автентифікації та потребує перегляду протоколу. |
Якщо у наданому тексті зустрічається невідомий ідентифікатор, система виводить повідомлення: «Цього набору немає у вбудованій карті загального набору. Перевірте поточний реєстр IANA або документацію сканера.».
Особливості протоколу TLS 1.3
Протокол TLS 1.3 кардинально змінює підхід до формування наборів шифрів порівняно з попередніми версіями (TLS 1.2 та старішими).
У версіях TLS до 1.2 включно назва набору шифрів (наприклад, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) чітко визначала:
- Механізм обміну ключами (наприклад, ECDHE).
- Алгоритм автентифікації сертифіката (наприклад, RSA).
- Шифр симетричного шифрування та режим його роботи (наприклад, AES-GCM).
- Алгоритм хешування для функції PRF або MAC (наприклад, SHA-256).
У TLS 1.3 архітектура була спрощена. Набори шифрів для TLS 1.3 описують виключно симетричне шифрування (алгоритм запису) та хеш-функцію для рукостискання. Обмін ключами (наприклад, за допомогою груп ECDH) та автентифікація вузлів узгоджуються окремо через відповідні розширення (extensions) під час рукостискання.
Тому для набору шифрів TLS 1.3 інструмент виводить спеціальне попередження: «TLS 1.3 узгоджує обмін ключами та автентифікацію окремо від набору шифрів.». Визначити параметри обміну ключами лише за назвою такого набору неможливо.
Обмеження статичного аналізу
Інструмент виконує виключно статичний аналіз наданого тексту. Це накладає певні обмеження на отримані результати, які необхідно враховувати під час оцінки безпеки систем:
- Відсутність активної взаємодії: Інструмент не з’єднується з хостом, не виконує живе сканування TLS і не може самостійно перевірити, які саме набори шифрів реально підтримує сервер.
- Обмеженість вхідних даних: Аналізується лише наданий текст. Якщо у звіті сканування відсутні певні поля, вони залишаться невідомими.
- Сертифікати та ключі: Статичний аналізатор не перевіряє чинність сертифікатів, ланцюжки довіри, не вимірює фактичні розміри ключів та не тестує стійкість сервера до атак зниження версії протоколу (downgrade attacks).
Для повної оцінки захищеності веб-ресурсу статичний аналіз звітів має поєднуватися з активним скануванням конфігурації серверів у реальному часі.
Часті запитання
Які вихідні формати TLS можна вставити?
Вставте текст зі звичайних сканерів TLS, openssl s_client, підсумки аналізу пакетів або коротку примітку ClientHello чи ServerHello. Засіб перевірки розпізнає загальні імена IANA, псевдоніми OpenSSL і декілька поширених шістнадцяткових ідентифікаторів набору; він не декодує необроблені байти пакетів.
Чому набір шифрів TLS 1.3 не відображає RSA або ECDHE?
Імена наборів шифрів TLS 1.3 описують шифрування запису та хеш рукостискання. Обмін ключами та автентифікація обговорюються окремо, тому їх не можна визначити лише за назвою набору.
Чи підтверджує цей результат, що сервер безпечний?
Ні. Це пояснює лише текст, який ви вставляєте. Він не з’єднується з хостом, не перевіряє сертифікат, не вимірює розміри ключів, не тестує поведінку при переході до попередньої версії та не показує всі пакети, прийнятні сервером.
Що означає повідомлення про відсутність версії протоколу?
Якщо у наданому тексті не вдалося ідентифікувати жодного маркеру версії протоколу, система виведе повідомлення: «У наданому тексті не знайдено жодної версії протоколу.». Це означає, що вхідний текст не містить стандартних позначень на кшталт TLS 1.2 або TLS 1.3, проте аналіз знайдених наборів шифрів все одно буде виконано, якщо вони присутні.