Czy nigdy nie miałeś ochoty ukrycia jakiegoś pliku przed oczami rodziny, narzeczonej czy innych użytkowników? Zapewne miałeś i to nie raz 😉 W tym poradniku zajmiemy się ukrywaniem danych w plikach graficznych.
Sam proces ukrywania nie jest skomplikowany. Wykorzystamy do tego celu polecenie copy, które wraz z przełącznikiem /B, posłuży do łączenia zawartości plików. A więc zaczynamy!
Czym jest ukrywanie danych w plikach graficznych?
Ukrywanie danych w plikach graficznych, znane także jako steganografia, to proces, w którym informacje są dyskretnie ukrywane w obrazach cyfrowych, tak aby były niewidoczne dla nieświadomego obserwatora. Na pierwszy rzut oka to skomplikowana technika kodowania, która pozwala na przechowywanie poufnych informacji, takich jak wiadomości tekstowe, pliki dźwiękowe, wideo, a nawet programy, bez wzbudzania podejrzeń. W przeciwieństwie do kryptografii, która koncentruje się na zabezpieczaniu informacji poprzez ich szyfrowanie, steganografia dąży do tego, aby ukryte informacje były w ogóle niezauważalne dla przeglądającej obraz osoby.
Technika ta może być wykorzystywana zarówno w legalnych, jak i niestety nielegalnych celach. Na przykład, może być stosowana przez korporacje do ochrony własności intelektualnej lub przez osoby poszukujące skutecznego sposobu przechowywania danych wewnętrznych, takich jak hasła lub numery kont bankowych. Z drugiej strony, przestępcy mogą wykorzystywać steganografię do przechowywania i przesyłania nielegalnych materiałów, takich jak choćby materiały propagandowe, które wzbudzałyby podejrzenia, gdyby nie były ukryte lub do przesyłania i infekowania komputerów złośliwym kodem. W tym poradniku zajmiemy się wyłącznie kwestiami legalnymi, które są powszechnie dostępne nie tylko dla studentów informatyki.
Na czym polega steganografia? W dużym skrócie mówiąc, działanie steganografii polega na manipulacji niewielkimi wartościami pikseli obrazu, zmieniając je tak, aby prezentowały ukryte dane. Istnieje wiele metod umieszczania takich informacji, jedną z nich jest metoda LSB (Least Significant Bit), która polega na zmianie ostatniego (najmniej istotnego) bitu piksela, tak aby wartość ta reprezentowała dane wejściowe.
Jak ukryć dane w obrazach JPG?
Tworzymy na Pulpicie dwa pliki, archiwum ZIP o przykładowej nazwie archiwum1.zip oraz plik graficzny grafika1.jpg, które będzie kontenerem dla poufnych danych. Aby dodatkowo zwiększyć stopień bezpieczeństwa, można zastosować szyfrowanie (założyć hasło).
- Otwieramy wiersz poleceń, Start => Uruchom => cmd
- Zmieniamy katalog, w naszym przykładzie pliki są na Pulpicie więc wpisujemy:
cd /d "%userprofile%/Desktop"
- Łączymy pliki przy użyciu polecenia copy:
copy /B grafika1.jpg + archiwum1.zip grafika2.jpg
grafika1.jpg – plik graficzny, w którym ukrywamy dane.
archiwum1.zip – archiwum ZIP z poufnymi danymi.
grafika2.jpg – plik wynikowy.
Aby dostać się do archiwum wystarczy otworzyć zdjęcie JPG w dowolnym programie do kompresji plików i folderów. Z drugiej strony, otwierając ten sam plik, przy użyciu przeglądarki grafiki pojawi się zdjęcie. Jest to bardzo prosta metoda, aby szybko ukryć jakieś dane. W ten sposób możemy ukrywać inne typy plików jak TXT, RAR, a nawet EXE.
Proces ukrywania danych w plikach JPG można zautomatyzować przy pomocy skryptu batch. Otwieramy notatnik (Start => Uruchom => notepad) i wklejamy poniższy kod:
echo off
cd /d "%userprofile%/Desktop"
copy /B grafika1.jpg + archiwum1.zip grafika2.jpg
Z menu wybieramy Plik => Zapisz jako. Typ ustalamy na wszystkie pliki, a nazwę pliku jako ukryj.bat (należy pamiętać, aby podać rozszerzenie pliku – BAT).
Analogicznie do ręcznej metody, na Pulpicie tworzymy archiwum ZIP, w tej samej lokalizacji umieszczamy zdjęcie. Dopasowujemy nazwy pliku do schematu i uruchamiamy plik ukryj.bat. W tym akurat przypadku zastosowaliśmy skrypt pod konkretne nazwy plików i dla z góry ustalonej lokalizacji.
Jak widać, metoda jest banalna, lecz niezwykle przydatna. Opisałem tę metodę w ramach wstępu do ukrywania danych, albowiem tę tematykę będę chciał szerzej omówić, prezentując ciekawe oprogramowanie do ukrywania informacji w plikach (nie tylko graficznych).