Проблема
Wireshark не расшифровывает и/или не отображает payload TLS 1.3. Пакеты видны как зашифрованный текст (Application Data), но содержимое прикладного протокола (HTTP/2, HTTP/3, gRPC и т.д.) не восстанавливается.

Причины

1. Отсутствие ключей сессии (Key Log File)
Для TLS 1.3 требуется запись сессионных ключей через переменную `SSLKEYLOGFILE`. Без неё дешифровка невозможна из-за Perfect Forward Secrecy (PFS).
2. Несовместимая версия Wireshark
Полноценная поддержка TLS 1.3 появилась в Wireshark 2.6.0 (рекомендуется 3.x+). Старые версии неправильно парсят Handshake.
3. Приложение не экспортирует ключи
Браузеры (Chrome, Firefox) и curl поддерживают `SSLKEYLOGFILE`. Кастомные приложения на C/Go/Java/Python без явного включения логирования ключей не предоставляют их.
4. Использование Encrypted Client Hello (ECH)
Маскирует даже SNI и сертификат, что может скрывать начальные пакеты.
5. Аппаратное ускорение (TLS offload)
Шифрование выполняется на сетевой карте или оборудовании — ключи недоступны.

Решение

1. Обновите Wireshark до версии ≥ 3.4
Проверка: `Help → About Wireshark`.
2. Настройте захват ключей для приложения
- Для браузера:
bash
export SSLKEYLOGFILE=/tmp/keys.log
запуск_браузера

В Wireshark: `Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename` → указать `/tmp/keys.log`.
- Для curl:
bash
SSLKEYLOGFILE=/tmp/keys.log curl -k https://example.com

3. Для кастомного приложения
- Используйте MITM-прокси (mitmproxy, Burp Suite) с легальным сертификатом (в рамках тестирования своей инфраструктуры).
- Или модифицируйте код приложения для экспорта ключей (например, через OpenSSL `SSL_CTX_set_keylog_callback`).
4. Проверьте фильтр
Убедитесь, что не включён фильтр, отсекающий TLS 1.3. Фильтр для отображения только TLS 1.3: `tls.handshake.type == 1 && tls.handshake.version == 0x0304`.
5. Отключите ECH (если доступно)
В браузере: `chrome://flags/#enable-encrypted-client-hello` → Disabled (только для теста).

Если ключи получены, но дешифровка не работает
- Проверьте, что лог-файл не пуст: `wc -l /tmp/keys.log`.
- Убедитесь, что Wireshark использует тот же файл ключей во время сессии захвата (не после).
- Включите `TLS Debug` в Wireshark: `View → Internals → Debug → TLS`. Ищите ошибки `no key found for cipher suite ...`.