Для начала немножко криптографической теории:
Шифрованные данные равномерно распределены по области определения, то есть каждый символ имеет максимальную энтропию;
<<Сырые>> и несжатые данные как правило избыточны, то есть их энтропия меньше максимально возможной.
Предположим, что у Вас имеется возможность измерить энтропию входящего и исходящего трафика на сетевом интерфейсе. В этом случае Вы сможете легко отличить зашифрованные данные от открытых, причём даже в том случае, когда часть данных в <<режиме шифрования>> передаётся в открытом виде, к примеру внешние заголовки IP, которые используются для маршрутизации.
<<Универсальный Статистический Тест для Генераторов Случайных Чисел>> Уэли Маурера (Ueli Maurer's Universal Statistical Test for Random Bit Generators), сокращённо MUST позволяет быстро измерить энтропию последовательного набора данных. Используемый алгоритм похож на алгоритм сжатия. В приложении приведён исходный код, позволяющий измерять энтропию последовательных кусков данных размером около четверти мегабайта.
Ещё нам нужен способ сохранения информации, проходящей через интерфейс. Программа 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>.