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,
- image.jpg - losowy plik obrazu.
- sk - katalog zawierający wszystkie tajne pliki.
- secret.zip - Archiwum katalogu sk.
- 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 Documentscat image.jpg secret.zip > ostechnix.jpgPołą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.jpgLub,
unzip -t ostechnix.jpgPrzykł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.txtRozpakuj 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 steghideW Debianie, Ubuntu:
sudo apt install steghideTeraz 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.jpgZostaniesz poproszony o wprowadzenie hasła.
Enter passphrase:
Re-Enter passphrase:
embedding "secret.txt" in "ostechnix.jpg"... doneUkryj 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 steghideMetoda 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 outguessPo 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.jpgPrzykł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.jpgZastąp „mój tajny klucz” własnym hasłem.
Aby wyodrębnić plik, po prostu wykonaj:
outguess -r output.jpg secret.txtPrzykładowe dane wyjściowe:
Reading output.jpg....
Extracting usable bits: 158203 bits
Steg retrieve: seed: 174, len: 20Jeśli użyłeś hasła, zamiast tego użyj tego polecenia:
outguess -k "my secret key" -r output.jpg secret.txtWięcej szczegółów znajdziesz na stronach man.
man outguessWidzieliś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 stegosuitePo 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.tgzDla wersji 32-bitowej:
wget https://googledrive.com/host/0B-_yxJMDtRxyRDNGNk1YcXR0UTg/steg-v1.0.0.2-linux32.tgzPo pobraniu rozpakuj go za pomocą polecenia:
tar -xvzf steg-v1.0.0.2-linux64.tgzPrzejdź do katalogu Steg:
cd steg-v1.0.0.2-linux64/I wpisz następujące polecenie, aby je uruchomić.
./steg.shKliknij 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.
















