Анализ на TLS протоколи и шифрови пакети
При администрирането на мрежова инфраструктура и извършването на одити за сигурност, детайлното разбиране на параметрите на криптографския протокол Transport Layer Security (TLS) е критично важна стъпка. Всеки опит за установяване на защитена връзка преминава през фаза на договаряне, при която клиентът и сървърът определят обща версия на протокола и конкретен пакет за шифроване (cipher suite).
Инструментът TLS Проверка на Cipher Suite позволява бърз анализ на текстови данни, извлечени от TLS сканирания или обобщения на ръкостискания (handshake summaries). Той помага да се идентифицират договорените протоколи, пакетите за шифроване и наличието на остарели или уязвими алгоритми, без да е необходимо да се извършва сканиране на живо или да се осъществява реална връзка с отдалечен хост.
Входни данни и поддържани формати
За да извършите анализ, е необходимо да предоставите текстови данни в полето TLS сканиране или резюме на ръкостискане. Инструментът поддържа широк спектър от текстови формати, генерирани от специализиран софтуер за сигурност и мрежов анализ:
- Изходни данни от TLS скенери: Текстови логове и доклади от популярни инструменти за оценка на сигурността.
- Резултати от OpenSSL: Командни изходи, получени чрез инструмента
openssl s_client. - Резюмета от пакетен анализ: Текстови извадки от анализи на мрежовия трафик.
- Полета от съобщения за ръкостискане: Части от съобщенията ClientHello или ServerHello.
Ограничения при обработката
Инструментът разпознава стандартните имена на IANA (Internet Assigned Numbers Authority), псевдонимите на OpenSSL (OpenSSL aliases), както и най-често срещаните шестнадесетични идентификатори (hexadecimal suite IDs) на пакетите.
Въведените данни трябва да отговарят на следните технически изисквания:
- Максималният обем на текста трябва да бъде под 200 000 знака. При превишаване на този лимит се извежда съобщението: "Това резюме е необичайно голямо. Дръжте го под 200 000 знака.".
- Не се поддържа обработка на необработени пакетни байтове (raw binary) или директно зареждане на файлове за улавяне на пакети (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 не осигурява предна секретност." |
| CCM-8 | "CCM-8 използва по-кратък таг за удостоверяване и се нуждае от преглед, специфичен за протокола." |
| Неизвестен пакет | "Този пакет не е във вградената обща карта на апартамента. Проверете текущия регистър на IANA или документацията на скенера." |
Специфика на TLS 1.3 и предна секретност
При анализа на съвременни мрежови конфигурации е важно да се отчете фундаменталната разлика в структурата на пакетите при различните версии на протокола.
В по-старите версии на TLS (до TLS 1.2 включително), името на шифровия пакет съдържа информация за всички ключови компоненти на връзката: алгоритъма за обмен на ключове (например ECDHE или RSA), алгоритъма за удостоверяване, симетричния шифър за криптиране на данни и алгоритъма за контрол на целостта (хеш функция). Използването на статичен обмен на ключове чрез RSA в тези версии е силно непрепоръчително, тъй като то не осигурява предна секретност (forward secrecy) — ако частният ключ на сървъра бъде компрометиран в бъдеще, целият записан минал трафик може да бъде декриптиран.
При TLS 1.3 архитектурата е променена с цел повишаване на сигурността и опростяване на конфигурацията. В тази версия договарянето на обмена на ключове и удостоверяването се извършва напълно отделно от избора на шифров пакет. Поради тази причина имената на пакетите в TLS 1.3 описват единствено симетричното криптиране на записа и съответния хеш. При засичане на такъв пакет, инструментът извежда следното обяснение: "TLS 1.3 договаря обмена на ключове и удостоверяването отделно от пакета за шифроване.".
Поверителност при обработката на данни
Всички операции по обработка и анализ на въведените от вас текстови данни се извършват локално, директно във вашия уеб браузър. Вашите поставени данни за TLS остават във вашия браузър. BroBroGo не ги качва или записва на външни сървъри, което гарантира, че анализираната конфигурация не се споделя с трети страни.
Често задавани въпроси
Кои изходни формати TLS мога да поставя?
Поставете текст от често срещани скенери TLS, openssl s_client, обобщения за анализ на пакети или кратка бележка ClientHello или ServerHello. Проверката разпознава общи IANA имена, OpenSSL псевдоними и няколко често срещани шестнадесетични идентификатора на пакета; той не декодира необработени пакетни байтове.
Защо набор от шифри TLS 1.3 не показва RSA или ECDHE?
TLS 1.3 имена на комплекти за шифроване описват криптирането на записа и хеша на ръкостискането. Обменът на ключове и удостоверяването се договарят отделно, така че не могат да бъдат изведени само от име на пакет.
Този резултат доказва ли, че сървърът е защитен?
Не. Обяснява само текста, който поставяте. Той не се свързва с хоста, не проверява сертификата, не измерва размерите на ключовете, не тества поведението при понижаване или показва всеки пакет, който сървърът приема.