| Ukrywanie tekstu w obrazie - kolejny sposób na poufność |
Pisząc artykuł Podstawy kryptografii wymyśliłem jeszcze jeden sposób ukrywania danych. Wymaga on osobnego artykułu, bo choć pomysł jest prosty, to z jego wykonaniem mogą być problemy dlatego piszę pierwszy swój tutorial do Gimpa :) Steganografia(ukrywanie informacji) w GimpieNie będzie to kurs tworzenia abstrakcyjnych zdjęć czy retuszu prześwietlonych fotek z automatu, tylko sposób na ukrycie, przesłanie i następnie zdekodowanie danych ukrytych w... obrazku :) Nie będę zamęczał w tym miejscu czytelnika teoretycznymi rozważaniami, tylko od razu przejdę do tworzenia przykładu. Maskowanie tekstu w GimpieUruchamiamy Gimpa; w głównym oknie wybieramy Plik, Nowy
Rozmiary zostawiamy domyślne i klikamy OK Klikamy na kubełek z farbą i kolorujemy tło na czarno. Podkład już mamy :) Teraz część właściwa całego eksperymentu. Wypieramy narzędzie tekst, czcionki nie zmieniamy, ale kolor czcionki musimy zmienić na optycznie dość podobny, ale dla komputera różny. Klikamy w pasek Kolor, w nowym oknie wpisujemy 100000 jako kolor HTML. Następnie klikamy OK.
Teraz pora na wpisanie tekstu w odpowiednim miejscu. Mając nadal wybrane narzędzie tekst klikamy na dolny lewy róg i wpisujemy swoją wiadomość, którą mamy zaszyfrować. Na początek niech będzie to krótkie zdanie, potem gdy dojdziemy do wprawy możemy rozwijać swoje wiadomości. Klikając w tym małym okienku na Zamknij stworzymy nową warstwę z tekstem.
Teraz czas na wprowadzenie zamieszania. Musimy namalować coś na obrazku, by nie został on czarny, bo będzie podejrzany. W tym celu możemy malować finezyjne bohomazy pędzlem, czy wstawiać jakieś inne obiekty na warstwę tło. Można zrobić coś takiego:
Teraz pozostaje nam spłaszczyć obrazek i zapisać go jako PNG. Koniecznie musimy wybrać najlepszą jakość, aby nie stracić kolorów! Aby połączyć warstwy klikamy w oknie warstw na każdą prawym przyciskiem myszy i wybieramy połącz w dół. Zapisujemy obraz jako planeta.png i mamy już nie budzący podejrzeń nośnik poufnych informacji. Odczytanie zamaskowanego tekstu w GimpieOk, zapisałem. Ale jak ktoś to ma otworzyć, żeby zobaczyć ukryty tekst? Metod jest kilka. Można to otworzyć w gimpie i wybrać narzędzie zaznaczanie według koloru. Musimy je ustawić tak, aby nie zaznaczało kolorów podobnych (czyli próg ustawiamy na 0)
Następnie klikamy w takie miejsce na obrazku, które jest idealnie czarne (całe tło ;) ) Pojawi się nam maska, która już ukazuje ukryty tekst. Naciskamy przycisk delete, aby pozbyć się czarnego tła lub oblewamy zaznaczenie białą farbą z kubeczka. Mamy trochę poszatkowany obrazek, ale możemy już odczytać ukrytą wiadomość. Teraz w oknie z obrazem wybieramy z menu zaznaczanie i nic. Wtedy możemy już bez przeszkód odczytać tekst...
Prawda, że niezłe? Może trochę kłopotliwe, ale za to jakie podstępne :) Niech ktoś dalej próbuje łamać bruteforcem klucze szyfrujące... Wobec tego rozwiązania jest bezradny :) Kilka technicznych uwag dotyczących Steganografii w GIMPIENa koniec kilka uwag. Ważne jest aby kolor tekstu ukrywanego różnił się od tła trochę więcej niż jeden skok. Podczas kompresji do PNG kolory, które będą zbyt podobne zostaną potraktowane jak jeden, a tym samym my stracimy tekst. Druga sprawa to właściwy obrazek odwracający uwagę. Powinien wyglądać on dość naturalnie. Np. kiedy narysujemy piękne czerwone serduszko na czarnym tle to mamy bardzo dużo miejsca po bokach, bo serce zwęża się ku dołowi, a mu dostajemy wtedy 2 czarne trójkątne obszary, które możemy odpowiednio zagospodarować ;) Trzecia sprawa to dostatecznie duża czcionka. Gdybyśmy próbowali zrobić to 8pt, to po swojego rodzaju deszyfrowaniu dostaniemy czarny postrzępiony pasek zamiast tekstu. Kolejny problem to zapis do plików. Musimy odrzucić JPG, ponieważ scali nam on szyfr z tłem, GIF ma zbyt małą paletę do takiego zastosowania, ale można na nim polegać, jeśli obraz wprowadzający zamieszanie będzie namalowany kilkoma barwami. PNG to jedyny godny polecenia format dla takich sztuczek, który nie powinien nas zawieść. Mój artykuł pokazuje, że sprytne rozwiązania bywają bardziej wydajne niż te mocne. A im coś bardziej niewyobrażalnego tym mniejsze prawdopodobieństwo, że ktoś na to wpadnie :) Procek
|
Prowadzącym ten blog jest od 6 lat Krzysztof "Procek" Ścira - Obecnie student AGH. Blog traktujący o szeroko pojętej IT - można tu poczytać o zagadnieniach związanych z m. in. programowaniem, grafiką, hardware i systemami operacyjnymi. Warto dodać kanał RSS tego bloga do swojego czytnika.[Więcej]