Привет. Сегодня шифруем пиксели!

Если кратко, берем png картинку и шифруем ее с помощью парольной фразы.

Но самое главное, картинка останется в png формате и не превратится в какой-то бесполезный бинарник. А дальше её можно будет открыть и визуально посмотреть через любой просмотрщик файлов.

А поможет нам в этом старый и добрый ImageMagick

Для начала мне понадобится изображение, в котором я буду шифровать пиксели. Давай его сгенерим:

convert wizard: bashdays.png

Эта команда создаст изображение bashdays.png с волшебником, который хуячит живопись. Выглядит это так: bashdays.png

Хорошо. Теперь нужно зашифровать это изображение. Выполняем команду:

echo 'пароль' | convert bashdays.png -encipher - -depth 8 png24:hidden.png

Получаем файл hidden.png с пикселями. Файл прекрасно открывается, но волшебника мы уже не видим. Лишь какой-то цветной шум. Выглядит это так.

Шифрование делаем через опцию encipher, в качестве аргумента эта опция принимает имя файла с парольной фразой. Дефис после encipher означает - стандартный ввод, который в данном случае указывает на канал «|».

Ну и дешифровка:

echo 'пароль' | convert hidden.png -decipher - restored.png

Если проебал пароль или ввел неправильно, получишь тот же набор цветных пикселей. Пароль восстановить увы не получится. Так что запиши на бумажку и повесь на монитор, как в лучших практиках ИБ.

Еще есть прикол, что изображение можно зашифровать с помощью ключа, например другого изображения.

convert bashdays.png -encipher key.gif result.png

В этом примере, key.gif это ключ для шифрования. Без этого файла расшифровать изображение уже не получится. Заебись? Заебись!

А какие нюансы?

Да, они есть. Некоторые форматы изображений, не поддерживают зашифрованные пиксели, например jpeg или gif. Поэтому прежде чем что-то шифровать, проверь что это получится расшифровать.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
ImageMagick зашифровывает только пиксели, метаданные изображения остаются нетронутыми и читабельными для любых пользователей. Поэтому если что-то скрываешь, подчищай метаданные.

Шифрование идет через AES в режиме счетчика. Первая половина парольной фразы это одноразовый номер, вторая половина это ключ шифрования.

Где можно применить?

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

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

По мне так, данный способ уматно использовать в каких-нибудь онлайн квестах, где нужно найти парольную фразу, а потом расшифровать изображение. Больше на ум (из легального) ничего и не приходит.

Изучай!