- Добавлена конфигурационная переменная max_input_vars, позволяющая бороться с атаками, основанными на совпадении хэшей (hash collision attacks)
- Исправлен segfault в работе traits
- Исправлен баг с некорректным чтением и записью при использовании traits
- Исправлен segfault после 2 POST запросов с типом multipart/form-data (коды 200 + 404)
- Исправлена ошибка с неотображением ошибок PHP в некоторых браузерах, использующих SAPI
- Исправлен segfault при использовании старых версий OpenSSL
- Исправлены неработающие функции bindValue и bindParam в драйвере PDO для Firebird
Что видит DPI, и что мы попробовали у него отобрать
Последние пару лет я работаю в команде, которая занимается устойчивой к DPI (Deep Packet Inspection) туннельной инфраструктурой — по сути, альтернативой классическому VPN.
Когда начинаешь заниматься этим всерьёз, довольно быстро обнаруживается неприятная вещь: шифрование само по себе давно уже не означает, что трафик нельзя распознать. Содержимое пакетов действительно можно скрыть, но пакет от этого не исчезает. У него остаются размер, направление, время появления; соединение начинается с определённой последовательности сообщений, TLS-клиент определённым образом представляется серверу, поток ускоряется, замедляется, замирает и снова начинает передавать данные.
Для человека всё это выглядит как куча зашифрованных байтов. Для классификатора — как вполне пригодный набор признаков.
Поэтому значительная часть нашей работы в итоге свелась не к тому, чтобы «зашифровать ещё сильнее», а к более практическому вопросу: что именно видит наблюдатель снаружи и по каким признакам он может решить, что перед ним не браузерный трафик, а туннель.
Об этом и расскажу.

