Отправка
Встраивание
Формирование последовательности M-блоков
Размер сообщения
Структура M-блока
· m = 64
· n = k = 32
Общая длина M-блока при этом равна 128 битам. Такое значение выбрано с целью имитации работы оригинальной программы ping4, позволяющей заполнить поле дополнительной информации заданным шаблоном, максимальная длина которого равна 16 байтам.
·Поле «фрагмент сообщения» содержит количество М-блоков в сформированной последовательности (включая данный). ·Поле «смещение фрагмента» содержит некоторую случайную последовательность бит. ·Поле «фрагмент ключа» содержит последовательность бит, соответствующую строке “size”.
Необходимо лишь из исходного сообщения создать последовательность M-блоков, поместив в ее начало блок, содержащий информацию о размере сообщения 5 . Других ограничений на порядок элементов данной последовательности нет.
Встраивание осуществляется в поле дополнительной информации ICMP эхо-сообщения. Опишем этот процесс.
1. Создать ICMP эхо-сообщение, которое содержит поле дополнительной информации определенной длины. Длина выбирается из интервала от 24 до 65507 байт 6 . Однако, следует учесть, что фрагментированный ICMP пакет откровенно демаскирует факт передачи тайного сообщения.
2. В старшие 8 байт поля дополнительной информации поместить временной штамп. Оставшиеся байты заполнить данными, соответствующими встраиваемому M-блоку. При этом если длина поля дополнительной информации превышает минимальную, то эти данные заполняют его циклически. Т. о. имитируется работа оригинальной программы ping.
3. Сформировать корректную IP-датаграмму, поместив в поле данных созданное эхо-сообщение.
Чтобы не привлекать внимание потенциального противника, каждый стего-контейнер необходимо отправлять определенное количество раз с заданным временным интервалом, имитируя таким образом работу программы ping. Перед отправкой нового стего-
4 В данной работе рассматривается программа ping, входящая в состав UNIX-подобных операционных систем.5 Вообще говоря, M-блок, содержащий информацию о размере сообщения, может располагаться впроизвольном месте последовательности. В начало он помещается лишь для того, чтобы размер сообщения былизвестен до начала передачи тайной информации.6 Рассчитано как разность максимальной длины IP-датаграммы (65535 байт) и суммы минимальной длинызаголовка IP (20 байт) и заголовка ICMP (8 байт): 65535 – (20 + 8) = 65507.
контейнера, не являющегося дубликатом предыдущего, необходима временная задержка, которая должна быть достаточно велика и непостоянна.