Pull to refresh

Открытый код. Сокрытие данных

Reading time4 min
Views4.3K

Введение

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

QR-FILE-SHARE

Что это?

Скрипт для того чтобы делиться небольшими файлами из офлайн-источника используя лишь QR-код. Так устроен этот скрипт, что файл живёт внутри самого кода и благодаря этому можно передавать небольшие файлы(к примеру текстовые) прям по самому коду.

Для чего может пригодиться?

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

Установка и использование

Ну здесь всё по-старинке, берём клонируем репозиторий, устанавливаем модули и запускаем.

git clone https://github.com/dupontgu/qr-file-share

cd qr-file-share

pip install -r requirements.txt

Далее запускаем наш скрипт с единственным аргументом который заключается в названии самого файла. Для этого я создал тестовый файл в той же директории под названием text.txt.

Сам файл так же можно скачать из ссылки которую нам показывают в выводе. А QR-код сохранился под названиефайла_qr.png. Можем его открыть и отсканить. 

Hyperbacked


Что это?

Это программа на чистом Rust, способная надёжно хранить твои секреты. Она использует доступные для печати PDF-файлы, содержащие зашифрованные QR-коды. Если QR-код сканировать с обычного устройства, то оно ничего толком прочитать не сможет, поскольку послание зашифровано будет. Для того чтобы прочитать послание, необходимо будет в программе ввести пароль и отсканировать код, и только тогда вы получите скрытое послание.


Для чего может пригодиться?

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

Установка и использование

Для начала клонируем репозиторий, после чего устанавливаем Rust.

git clone https://github.com/Twometer/hyperbacked

cd hyperbacked

apt install rustup

Устанавливаем стабильную версию компилятора Rust:

rustup default stable

Теперь запускаем нашу программу:

cargo run

Ну здесь интерфейс хоть и на английском, но интуитивно понятен и прост, сейчас объясню вам пошагово, как и где всё делается и настраивается.

Первым делом для того чтобы зашифровать нам нашу фразу заходим в Create backup.

Ну вот здесь детально, то что обведено красным, это условно хеш, токен, пароль или что-то ещё секретное что мы собственно и хотим передать. То что обведено зелёным, это пароль которым мы будем шифровать наш QR-код, ну а то что обведено фиолетовым просто название QR-кода. Ну и собственно после всего что мы заполнили, можем нажимать Encrypt.

Ну теперь выбираем пункт Save и собственно выбираем где сохраним наш PDF. Далее конечный файл будет выглядеть следующим образом:

Мы можем отсканировать QR-код и убедиться что послание мы действительно просто так не получим, для этого заходим снова в меню нашей проги, и в этот раз выбираем пункт Restore Backup.

Вводим наш пароль и нажимаем Scan code для того чтобы с вебки отсканить наш код, ну и далее получаем наше скрытое послание.

SecretPixel

Что это?

Инструмент стеганографии, для сокрытия конфиденциальной информации внутри изображений. Поддерживает шифрование при помощи AES-256 и RSA, написан на Python и поддерживает форматы изображений такие как: PNG, BMP, TGA и TIFF.

Для чего нужен?

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

Установка и использование

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

Здесь всё по стандарту, клонируем репозиторий, устанавливаем необходимые модули.

git clone https://github.com/x011/SecretPixel

cd SecretPixel

pip install -r requirements.txt

Ну а далее генерим открытый и закрытый ключи при помощи скрипта generate_keys.py:

python generate_keys.py

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

Давайте сокроем в изображении host.png текстовой файл secret.txt со следующим содержимым:

Это мы сделаем при помощи скрипта secret_pixel.py следующим образом:

python secret_pixel.py hide host.png secret.txt mypublickey.pem 1.png

Используем для этого наш публичный ключ и выходное изображение будет называться 1.png. И давайте тем же скриптом расшифруем при помощи приватного ключа:

Как видим всё успешно и файл наш в целости и сохранности.

Итоги

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


Подпишись на наш канал в телеграме, там много полезного!

Tags:
Hubs:
Total votes 5: ↑2 and ↓3-1
Comments3

Articles