2. Решение

Для начала немножко криптографической теории:

  1. Шифрованные данные равномерно распределены по области определения, то есть каждый символ имеет максимальную энтропию;

  2. <<Сырые>> и несжатые данные как правило избыточны, то есть их энтропия меньше максимально возможной.

Предположим, что у Вас имеется возможность измерить энтропию входящего и исходящего трафика на сетевом интерфейсе. В этом случае Вы сможете легко отличить зашифрованные данные от открытых, причём даже в том случае, когда часть данных в <<режиме шифрования>> передаётся в открытом виде, к примеру внешние заголовки IP, которые используются для маршрутизации.

2.1. MUST

<<Универсальный Статистический Тест для Генераторов Случайных Чисел>> Уэли Маурера (Ueli Maurer's Universal Statistical Test for Random Bit Generators), сокращённо MUST позволяет быстро измерить энтропию последовательного набора данных. Используемый алгоритм похож на алгоритм сжатия. В приложении приведён исходный код, позволяющий измерять энтропию последовательных кусков данных размером около четверти мегабайта.

2.2. Tcpdump

Ещё нам нужен способ сохранения информации, проходящей через интерфейс. Программа tcpdump(1) позволяет сделать это в случае, если Вы сконфигурировали своё ядро с поддержкой Пакетного Фильтра Беркли (Berkeley Packet Filter).

Команда

tcpdump -c 4000 -s 10000 -w dumpfile.bin

сохранит 4000 пакетов в файл dumpfile.bin. В данном примере объём записываемой информации в каждом пакете не может превышать 10,000 байтов.

Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.