steghide(1)

NAME
steghide - стеганографическая программа

SYNOPSIS
steghide команда [ аргументы ]

ОПИСАНИЕ
Steghide - это стеганографическая программа, способная скрывать данные внутри изображений и звуковых файлов различных типов. Цветовые частоты дискретизации не меняются, что делает скрытое вложение устойчивым к статистическим тестам первого порядка. Поддерживается сжатие данных, их шифрование и контрольные суммы проверки целостности. Файлы форматов JPEG, BMP, WAV и AU могут использоваться в качестве контейнеров. На формат скрываемых данных никаких ограничений нет. Steghide использует методы теории графов (раздел математики) для стеганографии. Для практического использования вам не требуется что-либо знать из этой теории, и вы можете спокойно пропустить этот параграф, если вам не интересны технические детали. Алгоритм сокрытия работает примерно так (если очень грубо): Сперва секретные данные сжимаются и шифруются. Затем создается последовательность позиций пикселов из файла-контейнера, основываясь на генераторе псевдослучайных чисел, который инициализируется паролем (именно в эти пиксели по выбранным позициям будут спрятаны секретные данные). Из этих позиций отбираем те, которые менять не пришлось (их значения случайно совпали с нашим вычисленным значением в силу вероятности). Затем алгоритм сопоставления из теории графов находит такие пары позиций, чтобы обмен их значениями имел эффект встраивания соответствующих частей секретных данных. Если алгоритм больше не может найти таких пар, фаза обменов завершается. Пиксели на оставшихся позициях (которые не вошли в пары) также модифицируются, чтобы содержать скрываемые данные (но это делается перезаписью, а не обменом с другими). Суть в том, что большая часть встраивания осуществляется путем обмена значениями существующих пикселей, это позволяет не нарушить статистику распределения цветов в файле-контейнере. Для звуковых файлов алгоритм похожий, только используются звуковые сэмплы вместо пикселей. Алгоритм шифрования по умолчанию - Rijndael с ключом длиной 128 бит (как в AES), режим работы шифра - CBC (режим сцепления блоков шифртекста). Если вы по каким-либо причинам не доверяете этой связке, почувствуйте свободу выбора комбинации шифра и режима его работы. ( информация о поддерживаемых шифрах и режимах доступна по команде encinfo ). Контрольные суммы вычисляются с помощью CRC32.

КОМАНДЫ
В этой секции перечислены команды утилиты steghide. Первый аргумент всегда должен быть одной из этих команд. Вы можете добавить дополнительные аргументы для команд embed, extract и info. Другие команды не принимают дополнительных аргументов.

embed, --embed
    Скрывает секретные данные в файле-контейнере, создавая файл со стего.

extract, --extract
    Извлекает секретные данные из файла стего (контейнер с данными).

info, --info
    Показывет информацию о файле контейнере или файле стего.

encinfo, --encinfo
    Показывает список алгоритмов шифрования и их режимов работы. Без доп. аргументов.

version, --version
    Краткая информация о версии. Без доп. аргументов.

license, --license
    Показывает сведения о лицензии на steghide. Без доп. аргументов.

help, --help
    Показывает мини-справку. Без доп. аргументов.

СОКРЫТИЕ
Если вы хотите скрыть секретные данные в файле-контейнере, используйте команду embed. Следующие аргументы могут использоваться с командойembed :

-ef, --embedfile секретный_файл
    Указывает файл, который будет скрыт (файл с секретными данными). Заметьте, что steghide сохраняет имя оригинального файла. При извлечении данных (см. ниже) поведение по-умолчанию - сохранять скрытый файл в текущем каталоге под его оригинальным именем. Если этот аргумент пропущен или filename это -, steghide будет читать секретные данные из стандартного ввода.

-cf, --coverfile файл_контейнер
    Указывает файл-контейнер, который будет скрывать спрятанное сообщение своим тeлом. Файл-контейнер может быть следующих форматов: BMP, JPEG или AU, WAV. Формат будет определён автоматически по заголовкам (расширение без разницы). Если этот аргумент пропущен или filename это -, steghide будет читать данные для покрывающего контейнера из стандартного ввода.

-sf, --stegofile файл_стего
    Указывает имя файла стего, который будет создан. Если этот аргумент будет пропущен при вызове команды embed, скрываемые данные будут записаны прямо внутрь файла-контейнера (!), новый файл при этом создан не будет.

-e, --encryption algo [ mode ] | mode [ algo ]
    Задаёт параметры шифрования. Эта опция должна использоваться с одним или двумя дополнительными параметрами, которые задают используемый шифр и режим его работы. Вы можете получить список поддерживаемых шифров и режимов командой encinfo. По умолчанию используется rijndael-128 (AES) в режиме cbc. Если вы вообще не хотите применять шифрование, укажите опцию -e none.

-z, --compress уровень
    Задаёт уровень сжатия. Уровень задаётся числом от 1 до 9, где 1 - самое быстрое, а 9 - самое наилучшее сжатие.

-Z, --dontcompress
    Не сжимать секретные данные перед сокрытием.

-K, --nochecksum
    Не добавлять контрольную сумму CRC32. Вы можете использовать эту опцию, если секретные данные уже содержат какой-либо тип контрольной суммы, или если вы не считаете нужным занимать лишние 32 бита для неё.

-N, --dontembedname
    Не добавлять исходное имя скрываемого файла. Если указать эту опцию, при извлечении данных потребуется указать имя файла, в которое steghide запишет извлечённые данные.

ИЗВЛЕЧЕНИЕ
Если вы получили файл, содержащий внедрённые с помощью steghide данные, используйте команду extract для их извлечения. Следующие аргументы могут использоваться с этой командой.

-sf, --stegofile файл_стего
    Указывает имя файла стего, содержащего скрытые данные. Если этот аргумент будет пропущен или имя файла будет -, steghide будет читать файл стего из стандартного ввода.

-xf, --extractfile секретный_файл
    Создаёт файл с именем секретный_файл и пишет в него те данные, что были сокрыты ранее внутри стего (файла-контейнера + наши данные). Указание этой опции игнорирует сохранённое внутри контейнера имя оригинального файла. Если этот аргумент пропущен, извлечённые данные будут сохранены в текущий каталог под оригинальным именем.

ПОЛУЧЕНИЕ ИНФОРМАЦИИ О КОНТЕЙНЕРЕ/СТЕГО ФАЙЛЕ
Вы можете использовать команду info для получения сведений о контейнере или файле стего (например о его ёмкости). Вам может потребоваться эта команда, если вы получили файл и не уверены, есть ли в нём сообщение, или если вы хотите узнать, какой объём секретных данных может быть спрятан в данном контейнере. Команда вида steghide info <имя_файла> выведет сведения о <имя_файла> и спросит, хотите ли вы получить сведения о скрытых внутри данных. Если вы ответите положительно (yes/да), потребуется ввести пароль, использованный при сокрытии данных внутри этого файла. Вы также можете использовать опцию -p, --passphrase (см. ниже) с командой info, чтобы steghide сразу показал сведения о внедрённых данных, используя переданный через эту опцию пароль.

ОБЩИЕ ПАРАМЕТРЫ
Следующие параметры могут быть использованы со всеми командами, где это имеет смысл.

-p, --passphrase
    Использовать строку после параметра как пароль. Если ваш пароль содержит пробелы, заключите его в кавычки, как в этом примере: -p "мой очень длинный пароль".

-v, --verbose
    Показывать детальный лог выполняемых действий.

-q, --quiet
    Подавлять информационные сообщения.

-f, --force
    Всегда перезаписывать существующие файлы.

ОПЦИИ ИМЁН ФАЙЛОВ
Все аргументы имён файлов (-cf, -ef, -sf, -xf) также принимают - как имя файла для использования стандартного ввода или стандартного вывода (если есть смысл). Пропуск соответствующего аргумента с именем файла будет иметь тот же эффект, что и использование - с двумя исключениями: Если -sf пропущен для команды embed, действия будут применены для исходного файла-контейнера (cover). Если -xf пропущен для команды extract, извлечённые данные будут сохранены под тем именем, с которым они были внедрены исходно. Если вы хотите явно использовать стандартный ввод/вывод, используйте - как имя файла.

ПРИМЕРЫ
Базовое использование:
  $ steghide embed -cf picture.jpg -ef secret.txt
  Пароль:
  Повтор пароля:
  сокрытие "secret.txt" в "picture.jpg"... готово Эта команда спрячет файл secret.txt внутри picture.jpg. После того, как вы спрячете секретный файл командой выше, вы можете отправить файл picture.jpg получателю скрытого/секретного сообщения. Получатель извлекает данные таким способом:
  $ steghide extract -sf picture.jpg
  Пароль:
  пишем извлеченные данные в "secret.txt". Если введённый пароль правильный, содержимое оригинального файла secret.txt будет извлечено из стего-файла picture.jpg и сохранено в текущем каталоге. Если вы получили файл, содержащий внедрённые данные и хотите посмотреть сведения о них перед извлечением, используйте такую команду:
  $ steghide info received_file.wav
  "received_file.wav":
    формат: wave audio, PCM кодирование
    ёмкость: 3.5 KB
  Попробовать получить информацию о скрытых данных ? (д/н) д
  Пароль:
    скрытый файл "secret.txt":
      размер: 1.6 KB
      зашифрованный: rijndael-128, cbc
      сжатый: да После печати общих сведений о файле стего (формат, ёмкость) steghide спросит вас, надо ли попытаться получить сведения о скрытых данных. Если ответить утвердительно, будет запрошен пароль. Steghide попробует извлечь данные с помощью этого пароля, и если это удастся - данные будут отображены.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Steghide возвращает 0 при успехе и 1, если произошла ошибка, прервавшая операцию. Некритичные предупреждения не влияют на возвращаемое значение.

АВТОР
Stefan Hetzl <shetzl@chello.at>