###############################################################################
#
# Steganography Online Codec WebApi interface usage example.
#
# This example shows how to hide an encrypted secret message in an image file.
#
# Version : v1.00
# Language : Python
# Author : Bartosz Wójcik
# Project : https://www.pelock.com/products/steganography-online-codec
# Homepage : https://www.pelock.com
#
###############################################################################
#
# include Steganography Online Codec module
#
from steganography_online_codec import *
#
# create Steganography Online Codec class instance (we are using our activation key)
#
mySteganographyOnlineCodec = SteganographyOnlineCodec("YOUR-CODE-GOES-HERE")
#
# encode a hidden message (encrypted with your password) within an image file
#
result = mySteganographyOnlineCodec.encode("input_file.jpg", "Secret message", "Pa$$word", "output_file_with_hidden_secret_message.png")
#
# result[] array holds the encoding results as well as other information
#
if result and "error" in result:
if result["error"] == Errors.SUCCESS:
print(f'Secret messaged encoded and saved to the output PNG file.')
else:
print(f'Error code {result["error"]}')
else:
print("Something unexpected happen while trying to encode the message.")
Mój darmowy tool Steganography Online Codec dostał małą aktualizację, pozwalającą na automatyczną konwersję obrazów wykorzystujących ograniczoną paletę barw (np. 256) do formatu RGB, tak żeby można było upchać ukryte bity w składowych kolorów pixeli.
Co to jest steganografia?
Dla nieobeznanych, co to jest? Narzędzie do ukrywania zaszyfrowanych wiadomości w obrazkach i zdjęciach w składowych kolorów RGB pixeli z obrazka (w ich najmniej znaczących bitch tzw. LSB least significant bits), tak, że jest to niewidoczne dla oka w porównaniu z oryginalnym obrazkiem.
Jeśli chcesz przemycić jakieś dane na froncie wojennym, jesteś reporterem i chcesz ukryć dane w niepozornym obrazku z wakacji lub po prostu interesujesz się steganografią – zajrzyj, to nic nie kosztuje.
Licznik użyć wskazuje na dzień dzisiejszy całkowitą ilość kodowań i dekodowań na 66478, całkiem sporo osób mu zaufało.
PS. W trakcie prac jest wersja okienkowa, konsolowa i WebAPI.
Tego jeszcze nie widziałem, steganografia wykorzystująca kodowanie UNICODE, pozwalająca ukryć wiadomość w znakach o zerowej szerokości. Ciężko to opisać, lepiej zobaczyć w akcji:
Ha ha!
Hasło:
secnews.pl
Dla zrozumienia co znajduje się w zakodowanej wiadomości, można wrzucić tekst po zakodowaniu do:
Zobaczymy wtedy, że w środku nie znajduje się „Ha ha!” tylko cały zakodowany fragment:
Naprawdę ciekawe i innowacyjne narzędzie w dodatku z pełnymi kodami źródłowymi, polecam:
Zgłosił się do mnie klient z projektem, którego celem było dojście do tego, czy w danym obrazku nie znajdują się ukryte informacje zakodowane poprzez steganografię.
Poniżej prezentuję skrypt w Pythonie, który wyciąga piksele w trybach horyzontalnych (czyli piksel po pikselu na wysokość obrazka) i wertykalnych z grafiki:
najmniej znaczące bity w składowych R
najmniej znaczące bity w składowych G
najmniej znaczące bity w składowych B
najmniej znaczące bity w składowych ALPHA
kombinowane najmniej znaczące bity w RGB
kombinowane najmniej znaczące bity w BGR
kombinowane najmniej znaczące bity w RGBA
kombinowane najmniej znaczące bity w ABGR
Są to najczęściej stosowane metody używane przez narzędzia do steganografii do ukrywania rozbitych danych w najmniej znaczących bitach składowych kolorów RGB.
Steganografia to sztuka i nauka ukrywania informacji poprzez osadzanie ukrytych informacji w innych, pozornie niewinnych plikach, np. w obrazkach.
Z poniższym kodekiem steganograficznym będziesz w stanie ukryć w obrazku dowolną wiadomość tekstową w bezpiecznych sposób oraz przesłać ją bez wzbudzania jakichkolwiek podejrzeń. Odczytanie wiadomości będzie możliwe jedynie po podaniu hasła deszyfrującego.
W tym przypadku poszczególne bity zaszyfrowanej wiadomości ukryte są jako najmniej znaczące bity w składowych kolorach RGB w pikselach wybranego obrazu. Naniesione zmiany nie są widoczne gołym okiem.
W jaki sposób ukrywane są dane w obrazku?
Wiadomość tekstowa jest kompresowana algorytmem DEFLATE w celu zmniejszenia jej rozmiaru
Generowany jest silny kryptograficzny klucz szyfrujący na podstawie podanego hasła, wykorzystując algorytm PBKDF2 z 20000 iteracjami
Zaszyfrowane bity danych są zapisywane na pozycjach najmniej znaczących bitów składowych kolorów RGB poszczególnych pikseli wybranego obrazu
Jakie są praktyczne zastosowania steganografii?
Kilka przykładów:
Możesz przechowywać ukryte i zaszyfrowane wiadomości i informacje w obrębie obrazów i przesyłać je do dowolnej osoby za pośrednictwem poczty elektronicznej bez wzbudzania żadnych podejrzeń