Wyszukiwanie w witrynie

Steganografia - ukryj pliki w obrazach w systemie Linux


Ten przewodnik zawiera krótkie wprowadzenie do steganografii i ukrywania plików w obrazach przy użyciu różnych metod i narzędzi w systemie Linux.

Co to jest steganografia?

Steganografia to proces ukrywania pliku, obrazu, filmu lub tekstu w innym pliku. Jak wspomniano w Wikipedii, steganografia to połączenie dwóch greckich słów, steganos oznaczających „zakryty, ukryty lub chroniony” oraz grafeina co oznacza „pisanie”.

Źródła podają, że tę metodę po raz pierwszy zastosował Histiaeus, starożytny grecki król, już w 440 roku p.n.e. Ogolił głowę swego najbardziej zaufanego sługi i nałożył na nią tajną wiadomość.

Gdy włosy odrosły, wysłał tego sługę do jednego ze swoich wasali, aby przekazał wiadomość zawierającą informacje na temat nadchodzącego ataku na Grecję.

Teraz, w czasach nowożytnych, steganografia została rozwinięta, znacznie udoskonalona i szeroko stosowana do wysyłania i odbierania tajnych wiadomości cyfrowych poprzez ukrywanie ich w innych plikach.

Aby uzyskać więcej informacji na temat steganografii, kliknij ten link. Zobaczmy teraz, jak ukryć pliki wewnątrz obrazów w systemie Linux.

Zastrzeżenie:

Steganografia to obszerny temat. W tym samouczku opisano tylko sposób ukrywania plików w obrazach, co jest podstawową koncepcją steganografii. Proszę nie zakładać, że żaden ekspert ds. bezpieczeństwa nie może tego złamać. Opisana tutaj metoda jest bardzo prosta, więc nawet średnio zaawansowany specjalista ds. bezpieczeństwa może ją z łatwością złamać w ciągu kilku godzin. Opisane poniżej kroki służą wyłącznie celom edukacyjnym. Nie ponosimy odpowiedzialności za jakiekolwiek niewłaściwe użycie.

Ukryj pliki w obrazach w systemie Linux

Możemy ukrywać pliki wewnątrz obrazów na różne sposoby. Tutaj podałem 5 metod.

Metoda 1

Metoda ta nie wymaga dodatkowego oprogramowania. Wystarczy podstawowa znajomość wiersza poleceń systemu Linux.

Mam jeden plik obrazu o nazwie image.jpg i katalog o nazwie sk. Wewnątrz tego katalogu znajduje się plik o nazwie secret.txt , który zawiera poufną wiadomość. To jest plik, który będziemy osadzać w pliku image.jpg. W tym katalogu możesz umieścić dowolną liczbę plików, które chcesz ukryć.

Następnie skompresuję katalog sk i zapiszę go jako secret.zip, aby był jednym plikiem. Na koniec połączę plik zip (secret.zip) i plik obrazu (image.jpg) za pomocą polecenia cat i zapiszę go jako ostechnix.jpg.

Żeby było jaśniej,

  1. image.jpg - losowy plik obrazu.
  2. sk - katalog zawierający wszystkie tajne pliki.
  3. secret.zip - Archiwum katalogu sk.
  4. ostechnix.jpg — wyjściowy plik obrazu zawierający zarówno plik secret.zip, jak i image.jpg.

Krok 1: Umieść plik obrazu i katalog w folderze. Umieściłem je oba w folderze Dokumenty.

Krok 2: Przenieś wszystkie pliki, które chcesz ukryć, do folderu „sk”. Następnie skompresuj ten folder i zapisz go jako „secret.zip”. Aby skompresować folder, kliknij go prawym przyciskiem myszy i wybierz kompresuj.

Krok 3: Następnie otwórz Terminal. Przejdź do lokalizacji, w której zapisałeś pliki zip i obrazy (w naszym przypadku są to Dokumenty). Na koniec połącz pliki secret.zip i test.jpg i zapisz je jako ostechnix.jpg za pomocą polecenia cat.

cd Documents
cat image.jpg secret.zip > ostechnix.jpg

Połącz pliki

Otóż to. Teraz ukryliśmy poufne pliki w pliku ostychnix.jpg. To ważny plik. Po prostu usuń wszystkie inne pliki z wyjątkiem ostechnix.jpg.

Plik ostechnix.jpg będzie wyglądał jak zwykły plik obrazu i każdy będzie mógł go wyświetlić za pomocą dowolnej przeglądarki obrazów. Mogą jednak nie wiedzieć, że w tym pliku znajdują się jakieś poufne pliki.

Aby wyświetlić ukryte pliki w pliku obrazu ostychnix.jpg, po prostu rozpakuj go za pomocą następującego polecenia:

unzip ostechnix.jpg

Lub,

unzip -t ostechnix.jpg

Przykładowe dane wyjściowe:

Archive:  ostechnix.jpg
warning [ostechnix.jpg]:  712139 extra bytes at beginning or within zipfile
  (attempting to process anyway)
   creating: sk/
  inflating: sk/secret.txt

Rozpakuj plik obrazu

Jak widać na powyższych wynikach, wyodrębniono katalog sk, w którym znajdują się tajne pliki. Teraz wróć do folderu i sprawdź zawartość. Zobaczysz tam wszystkie pliki.

Wadą tej metody jest to, że nie możemy dodać żadnego hasła do pliku obrazu. Bez obaw! W poniższych metodach możemy dodać hasło do plików wyjściowych.

Metoda 2 - użycie Steghide

Steghide to narzędzie wiersza poleceń, które pomaga nam ukryć poufne dane w obrazie lub pliku audio. Obsługuje pliki JPEG, BMP, WAV i AU.

Steghide jest dostępny w domyślnych repozytoriach wielu dystrybucji Linuksa.

W Arch Linux i jego wariantach możesz go zainstalować za pomocą polecenia:

sudo pacman -S steghide

W Debianie, Ubuntu:

sudo apt install steghide

Teraz możesz ukryć swój poufny plik wewnątrz obrazu lub dźwięku, jak poniżej. Zakładam, że umieściłeś poufny plik, który chcesz zaszyfrować, oraz obraz lub plik audio w tym samym folderze. Jeśli umieścisz je w innym folderze, w poniższym poleceniu musisz podać pełną ścieżkę.

steghide embed -ef secret.txt -cf ostechnix.jpg

Zostaniesz poproszony o wprowadzenie hasła.

Enter passphrase: 
Re-Enter passphrase: 
embedding "secret.txt" in "ostechnix.jpg"... done

Ukryj pliki w obrazie za pomocą Steghide

W powyższym przykładzie osadziłem plik tekstowy o nazwie secret.txt w pliku obrazu o nazwie ostechnix.jpg. Możesz teraz usunąć oryginalny plik secret.txt. Ponieważ właśnie osadziliśmy w pliku obrazu. Jeśli chcesz osadzić wiele plików, umieść je w jednym folderze i spakuj, a następnie ukryj, jak opisano powyżej.

Aby wyodrębnić tajny plik z obrazu, po prostu uruchom:

steghide extract -sf ostechnix.jpg

Wprowadź hasło, aby je wyodrębnić:

Enter passphrase: 
wrote extracted data to "secret.txt".

Wyodrębnij pliki z obrazu za pomocą steghide

Więcej szczegółów można znaleźć na stronach podręcznika,

man steghide

Metoda 3 - użycie Outguess

Outguess to kolejne narzędzie stegnograficzne wiersza poleceń umożliwiające ukrywanie poufnych plików w obrazie. Obecnie obsługuje formaty obrazów PPM, PNM i JPEG.

Aby zainstalować go na Debianie, Ubuntu i innych systemach opartych na DEB, uruchom:

sudo apt install outguess

Po zainstalowaniu przejdź do lokalizacji, w której przechowywałeś tajny plik i obraz, i osadź tajny plik w obrazie, używając następującego polecenia:

outguess -d secret.txt ostechnix.jpg output.jpg

Przykładowe dane wyjściowe:

Reading ostechnix.jpg....
JPEG compression quality set to 75
Extracting usable bits: 158203 bits
Correctable message size: 77641 bits, 49.08%
Encoded 'secret.txt': 160 bits, 20 bytes
Finding best embedding...
0: 88(45.8%)[55.0%], bias -17(-0.19), saved: -1, total: 0.06%
1: 90(46.9%)[56.2%], bias -27(-0.30), saved: -1, total: 0.06%
12: 85(44.3%)[53.1%], bias -36(-0.42), saved: 0, total: 0.05%
26: 91(47.4%)[56.9%], bias -45(-0.49), saved: -1, total: 0.06%
174: 87(45.8%)[54.4%], bias -48(-0.55), saved: 0, total: 0.05%
174, 39: Embedding data: 160 in 158203
Bits embedded: 190, changed: 87(45.8%)[54.4%], bias: -48, tot: 158844, skip: 158654
Foiling statistics: corrections: 77, failed: 6, offset: 864.696970 +- 310.577032
Total bits changed: 39 (change 87 + bias -48)
Storing bitmap into data...
Writing output.jpg....

Tutaj plik output.jpg to ten, który zawiera nasz plik poufnych danych. zachowaj go w bezpiecznym miejscu i usuń wszystko inne.

Możesz także dodać hasło do pliku wyjściowego, jak poniżej.

outguess -k "my secret key" -d secret.txt ostechnix.jpg output.jpg

Zastąp „mój tajny klucz” własnym hasłem.

Aby wyodrębnić plik, po prostu wykonaj:

outguess -r output.jpg secret.txt

Przykładowe dane wyjściowe:

Reading output.jpg....
Extracting usable bits: 158203 bits
Steg retrieve: seed: 174, len: 20

Jeśli użyłeś hasła, zamiast tego użyj tego polecenia:

outguess -k "my secret key" -r output.jpg secret.txt

Więcej szczegółów znajdziesz na stronach man.

man outguess

Widzieliśmy trzy narzędzia wiersza poleceń do ukrywania plików w obrazach lub dźwięku. Jeśli nie podoba Ci się sposób wiersza poleceń, oto dwa graficzne narzędzia steganograficzne.

Metoda 4 - użycie Stegosuite

Stegosuite to graficzne narzędzie steganograficzne umożliwiające ukrywanie plików wewnątrz obrazów. Jest to bezpłatne narzędzie steganograficzne o otwartym kodzie źródłowym, napisane w Java. Do osadzania danych wykorzystuje metodę szyfrowania AES. Obsługuje formaty obrazów BMP, GIF i JPG.

Aby zainstalować go na Debianie, Ubuntu i innych systemach opartych na DEB, uruchom:

sudo apt install stegosuite

Po zainstalowaniu uruchom Stegosuite z poziomu Dash lub Menu.

Interfejs Stegosuite

Kliknij Plik -> Otwórz na pasku menu i wybierz obraz, którego chcesz użyć do ukrycia plików. Następnie wpisz wiadomość w pierwszej kolumnie. Kliknij prawym przyciskiem myszy drugą kolumnę i wybierz „Dodaj plik…”. Na koniec wprowadź hasło w trzeciej kolumnie.

Dodaj pliki w stegosuite

Na koniec kliknij przycisk Osadź u dołu interfejsu Stegosuite.

Osadzaj pliki za pomocą stegosuite

Teraz zostanie utworzony nowy plik obrazu o nazwie „filename_embed” w tym samym folderze, z którego wybrałeś obraz. Na przykład, jeśli wybrałeś obraz o nazwie „image.jpg” z folderu Dokumenty, w samym folderze Dokumenty zostanie utworzony nowy plik obrazu o nazwie „image_embed.jpg”.

Aby wyodrębnić tajne pliki z obrazu, po prostu otwórz go ponownie w interfejsie Stegosuite, wprowadź hasło i kliknij przycisk Wyodrębnij.

Wyodrębnij pliki za pomocą stegosuite

Wszystkie pliki zostaną wyodrębnione w tym samym folderze.

Więcej szczegółów znajdziesz w witrynie Stegosuite.

Metoda 5 - użycie Steg

Steg to proste, wieloplatformowe i graficzne narzędzie steganograficzne, napisane przy użyciu języka programowania C++. Jest to oprogramowanie przenośne, więc wystarczy je pobrać, zabrać ze sobą w dowolne miejsce i błyskawicznie zacząć z niego korzystać, niezależnie od używanego systemu operacyjnego.

Steg obsługuje formaty obrazów JPEG, JPG, TIFF, PNG i BMP. Wykorzystuje techniki steganografii i kryptografii do ukrywania danych w skompresowanych lub nieskompresowanych obrazach.

Ukryj pliki w obrazach za pomocą Steg

Kliknij ten link, aby pobrać aplikację Steg. Jest dostępny zarówno dla architektur 32-, jak i 64-bitowych.

Lub po prostu użyj następującego polecenia, aby pobrać je w zależności od używanej architektury.

Dla wersji 64-bitowej:

wget https://googledrive.com/host/0B-_yxJMDtRxyUExLZzZ3S2VDbjQ/steg-v1.0.0.2-linux64.tgz

Dla wersji 32-bitowej:

wget https://googledrive.com/host/0B-_yxJMDtRxyRDNGNk1YcXR0UTg/steg-v1.0.0.2-linux32.tgz

Po pobraniu rozpakuj go za pomocą polecenia:

tar -xvzf steg-v1.0.0.2-linux64.tgz

Przejdź do katalogu Steg:

cd steg-v1.0.0.2-linux64/

I wpisz następujące polecenie, aby je uruchomić.

./steg.sh

Kliknij Tak, aby zaakceptować umowę licencyjną.

Zaakceptuj Eulę

Kliknij OK, aby kontynuować.

Powiadomienie Stega

Tak wygląda domyślny interfejs aplikacji Steg.

Interfejs Stega

Teraz ukryjmy niektóre dane wewnątrz obrazu.

Aby to zrobić, przejdź do Plik -> Otwórz obraz ogólny lub Otwórz obraz JPEG. Upewnij się, że wybrałeś obraz o dużym rozmiarze, aby przechowywać w nim więcej danych. Im większy obraz wybierzesz, tym więcej możesz zapisać w obrazie.

Po otwarciu obrazu obraz oryginalny i obraz zmodyfikowany (obraz wyjściowy) zostaną wyświetlone odpowiednio w lewym i prawym panelu. Wyświetla również dostępny rozmiar do przechowywania danych wewnątrz obrazu w prawym dolnym rogu.

Ukryj pliki wewnątrz obrazów w systemie Linux za pomocą Steg

Teraz przejdź do Ukryj -> Ukryj dane z górnego paska menu. Wybierz plik, który chcesz ukryć. Upewnij się, że wybrany plik jest mniejszy niż ilość dostępnego miejsca na zmodyfikowanym obrazie. Po dodaniu danych pojawi się okno dialogowe potwierdzenia z informacją: Dane zostały pomyślnie ukryte.

Dane są ukryte

Oto najważniejsza część. Możesz wybrać różne tryby szyfrowania.

  • Auto: dane zostaną zaszyfrowane, ale nie ma hasła, a do wyodrębnienia danych potrzebne będą klucze.
  • Symetryczny: do zaszyfrowania danych musisz podać hasło, a odbiorca będzie potrzebował tego samego hasła, aby je wyodrębnić.
  • Asymetryczny bez znaku: jeśli chcesz ukryć dane (jesteś nadawcą), wymagany jest tylko klucz publiczny odbiorcy. Jeśli chcesz wydobyć dane (jesteś odbiorcą) potrzebny jest jedynie Twój klucz prywatny.
  • Z podpisem asymetrycznym: jeśli chcesz ukryć dane (jesteś nadawcą), wymagany jest klucz publiczny odbiorcy i Twój klucz prywatny. Jeśli chcesz wyodrębnić dane (jesteś odbiorcą), potrzebny jest tylko Twój klucz prywatny, ale wymagany jest klucz publiczny nadawcy. Jeśli nie podasz klucza publicznego nadawcy, na końcu procesu wyodrębniania zostaniesz ostrzeżony, że tożsamość nadawcy nie została zweryfikowana. Jeśli podasz klucz publiczny nadawcy, zostaniesz poinformowany, czy weryfikacja podpisu przebiegła pomyślnie.

Możesz wybrać dowolne metody kryptograficzne.

Aby wybrać konkretną metodę kryptografii, przejdź do Edycja -> Konfiguracja z paska menu. Domyślną metodą kryptografii jest auto. Jeśli chcesz, możesz także osadzić w pliku niektóre wiadomości.

Opcje Stega

Gdy wszystko będzie w porządku, kliknij przycisk Zapisz na pasku narzędzi i zapisz go w dowolnej lokalizacji.

Zapisz multimedia

Zrobione! Dane obrazu są szyfrowane wewnątrz obrazu. Ten obraz będzie wyglądał jak zwykły obraz. Można go wyświetlić za pomocą dowolnej aplikacji do przeglądania obrazów.

Aby wyodrębnić ukryte dane, wystarczy otworzyć zaszyfrowany obraz w aplikacji Steg. Aby to zrobić, przejdź do Wyodrębnij -> Wyodrębnij dane z paska menu.

Wybierz lokalizację, w której chcesz zapisać swoje dane. Zrobione!

Ekstrakcja danych

To wszystko. Będziesz teraz mógł przeglądać dane.

Jak widać, jest to niezwykle łatwe do wykonania i nie wymaga żadnych specjalnych umiejętności. Po prostu otwórz obraz, ukryj poufne dane i przekaż je dalej.

Więcej informacji na temat Steg znajdziesz na oficjalnej stronie internetowej.

Powiązane artykuły