19 марта, 2024

Как за секунды скрыть секретные данные внутри файла изображения или аудио

Содержание:

Стеганография представляет собой искусство сокрытия информации прямо на виду. В этой статье мы рассмотрим, как использовать для этой цели инструмент командной строки Steghide. Кроме того, мы рассмотрим концепцию, чтобы лучше понимать, что происходит на заднем плане. Это простой настраиваемый инструмент, благодаря которому всего за несколько секунд можно скрывать информацию в файлах разных типов.

Что такое стеганография?

В отличие от шифрования, где сразу понятно, что пришло сообщение и оно скрыто, со стеганографией никто даже не узнает о существовании сообщения внутри файла вроде изображения.
Стеганография может пригодиться в ситуациях, когда отправка зашифрованных сообщений может вызвать подозрения. Например, в странах без свободы слова. Также стеганография может использоваться для водяных знаков, чтобы знать, когда файлы изображения или аудио украли.

Как работает стеганография?

Есть несколько методов сокрытия данных внутри обычных файлов. Одним из наиболее широко распространённых и простых для понимания является метод под названием LSB.

В нём меняется несколько последних битов в байте, чтобы закодировать сообщение. Особенно это полезно при работе с изображениями, где красный, зелёный и синий цвета каждого пикселя закодированы при помощи 8 бит или 1 байта от 0 до 255 в десятичной системе счисления или в двоичной от 00000000 до 11111111.

Изменение последних двух битов в полностью красном пикселе от 11111111 до 11111101 меняет значение красного от 255 до 253. Для невооруженного взгляда это отличие незаметно, при этом внутри картинки будет закодированное сообщение.


Данная диаграмма показывает четыре пиксельных изображения в цветах и двоичных значениях. Каждый блок двоичной информации представляет значение соответствующего пикселя.

Такая техника хорошо работает для мультимедийных файлов, где небольшое изменение байта на глаз не увидеть. Не так хорошо это работает для текста ASCII, где один неправильный бит полностью меняет символ. Не говоря уже о том, что скрытые при помощи метода LSB данные легко обнаружить, если искать их.

Читать также:  Что делать, если MacBook зависает на логотипе Apple и не загружается

По этой причине есть множество других методов стеганографии, каждый со своими плюсами и минусами. Значительно труднее обнаружить метод под названием коэффициент дискретного косинусоидального преобразования. Здесь слегка меняется вес, то есть коэффициент волн косинуса, который используется для создания изображения в формате JPEG.

Эффективное использование стеганографии

Поскольку одни методы цифровой стеганографии лучше других, лучше избегать применения LSB и использовать что-то более изощрённое. Разработка собственного алгоритма стеганографии не очень сложная, если вы разбираетесь в математике и программировании. Впрочем, для изучения принципов работы стеганографии LSB подойдёт.

Также нужно принимать во внимание шифрование и сжатие. Шифрование данных перед их внедрением добавляет дополнительный слой безопасности, а сжатие позволяет скрыть существование лишних данных, не слишком увеличивая размер этого файла. Шифрование и сжатие могут быть включены в качестве дополнительных параметров в Steghide.

Шаг 1. Внедрение скрытых данных в файл

Пользоваться Steghide очень просто. Для установки приложения через терминал Linux используйте команду apt.

apt-get install steghide

Когда программа установлена, для внедрения данных в файл наберите следующую команду:

steghide embed -ef secretFile -cf coverFile -sf outputFile -z compressionLevel -e scheme

Аргументы могут быть следующие:

  • -ef определяет путь к файлу, который вы хотите скрыть. Можно внедрить файл любого типа в другой файл, включая скрипты Python и файлы оболочек.
  • -cf представляет собой файл, куда внедряются данные. Поддерживаются типы файлов BMP, JPEG, WAV и AU.
  • -sf представляет собой опциональный аргумент, который определяет итоговый файл. Если его не задавать, оригинальный файл, куда осуществляется вставка данных, будет перезаписан новым файлом.
  • -z определяет уровень сжатия между 1 и 9. Если вы не хотите сжимать свой файл, используйте аргумент -Z.
  • -e определяет тип шифрования. Steghide поддерживает множество схем шифрования. Если этот аргумент не указан, применяется 128-битный алгоритм AES. Если вы предпочитаете не пользоваться шифрованием, наберите -e none.
Читать также:  5 советов по наиболее эффективному использованию Bluetooth на Samsung Galaxy

В этом примере секретный текст скрывается внутри изображения кота. Оригинальный файл не перезаписывается и не сжимается, шифрование не используется.

steghide embed -ef secret.txt -cf StegoCat.jpg -e none -Z

Пример работы с Steghide через терминал

Когда вы выполнили команду Steghide, будет предложено задать пароль, который позднее позволит извлечь внедрённые данные. Введите пароль дважды для подтверждения. После этого можно будет прятать данные в файлы изображения и аудио.

                                                              Сравнение оригинального изображения и изображения со встроенным текстом. Разницу на глаз не определить.

Шаг 2. Извлечение скрытых данных из файла

Достать скрытые данные из файла ещё проще, чем вставить их туда. Применяется следующая команда:

$ steghide extract -sf stegoFile -xf outputFile

После введения команды нужно будет ввести вышеуказанный пароль.

                                                                               Данные извлечены из файла изображения и отображаются в окне терминала.

Прятать информацию в изображениях очень просто

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

Добавить комментарий