Blog posts

Steganografia? A co to jest? A komu to potrzebne?

Steganografia? A co to jest? A komu to potrzebne?

Daj Się Poznać 2017, security, steganography

Myślę, że część osób lub nawet większość może się zastanawiać czym jest w ogóle ta steganografia. Zacząłem projekt bez porządnego przedstawienia tematu. Nadrabiam więc zaległości.

Co to jest steganografia?

Steganografia jest nauką lub praktyką, z która prawdopodobnie spotykamy się na co dzień, zupełnie o tym nie wiedząc. Polega ona na ukrywaniu wiadomości, zdjęcia lub pliku w nośniku. Nośnikiem może być zdjęcie lub inna wiadomość. Istotny jest fakt, iż samo prowadzanie komunikacji(ukrywanie wiadomości) jest tajne. Głównym celem steganografii jest więc ukrycie w nośniku wiadomości, tak aby trzecia strona, czyli atakujący, nie była w stanie wykryć jej obecności. Samo słowo steganografia pochodzi z języka greckiego i oznacza „ukryte pisanie”.

W porównaniu do kryptografii, steganografia posiada pewną przewagę. Ukryta w dowolnym nośniku wiadomość nie zwraca na siebie uwagi. Natomiast w kryptografii, wiadomości są szyfrowane i mogą zostać wysłane publicznym kanałem. Tak więc, dużą zaletą stosowania steganografii jest to, iż sama wiadomość jest ukrywana w nośniku, oraz dodatkowo ukrywany jest sam fakt wysłania wiadomości. W poniższej tabeli prezentuje podstawowe właściwości steganografii i kryptografii.

Właściwość Steganografia Kryptografia
Ukrycie wiadomości Tak Nie
Użycie klucza Tak Tak
Ukrycie faktu komunikacji Tak Nie
Dodatkowy nośnik Tak Nie
Ilość przesyłanych informacji Większa od ilości wiadomości Porównywalna do wiadomości

W głównej mierze staganografia zajmuję się ukrywaniem informacji w plikach komputerowych. Wtedy możemy mówić o cyfrowej steganografii. Jak wspomniałem na początku, wiadomość może zostać ukryta w warstwie transportowej, czyli między innymi w plikach, zdjęciach, a także protokołach sieciowych. Najczęściej stosowane są pliki multimedialne. Głównym powodem ich wyboru jest duży rozmiar oraz fakt, iż zawierają dużo informacji nadmiarowych, których zmiana może nie być zauważona przez atakującego.

System steganograficzny

System steganograficzny można zdefiniować jako system składający z dwóch części: kodera i dekodera. Zadaniem kodera jest, przy użyciu klucza, umieszczenie w danym nośniku wiadomości. Klucz powinien być znany tylko nadawcy i odbiorcy. Znajomość klucza oznacza możliwość odczytania wiadomości. Schemat kodera systemu steganograficznego znajduje się na poniższym rysunku.

system steganograficzny
Koder systemu steganograficznego

 

Druga część systemu steganograficznego, czyli dekoder, służy do odczytania wiadomości. W zależności od wybranego algorytmu steganograficznego dekoder może składać się z różnych elementów. Jednak ogólny schemat powinien wyglądać jak na poniższym rysunku. Dekoder na podstawie klucza, odczytuje z nośnika wcześniej umieszczoną, sekretną wiadomość.

dekoder
Dekoder systemu steganograficznego

Chwila, chwila. A ukrywanie informacji to nie jest znakowanie wodne?

Możemy mieć wrażenie, że to o czym pisze to znakowanie wodne. Jest jednak spora różnica pomiędzy znakami wodnymi a steganografią.

Znak wodny to charakterystyczny obraz widzialny w świetle przechodzącym, powstający podczas formowania papieru. Jego najczęstszym zastosowaniem są zabezpieczenia banknotów oraz innych wartościowych dokumentów.

Cyfrowy znak wodny, jest to wiadomość zapisana w różnego rodzaju plikach np. obrazach, nagraniach dźwiękowych lub filmach wideo. Może być ona widoczna, tak jak w przypadku tradycyjnych znaków wodnych lub też niewidoczna. Wtedy do odczytania wcześniej zapisanej informacji, należy użyć programu wraz z zaimplementowanymi algorytmami.

Cyfrowy znak wodny, jest integralną częścią pliku, który został poddany oznakowaniu oraz nie potrzebuje żadnej dodatkowej pamięci. Oznacza to, że powstaje on kosztem pogorszenia jakości danych danego pliku. Znaki wodne, podobnie jak steganografia, są formą ukrywania pewnych informacji w nośnikach. Posiadają jednak wiele cech, które w znaczny sposób odróżniają je od wspomnianej steganografii. Cyfrowe znakowanie wodne można określić jako praktykę niedostrzegalnego umieszczania w nośniku pewnej informacji, traktującej o tym właśnie nośniku. Długość informacji jest zazwyczaj relatywnie mała. Natomiast fakt, iż dany nośnik zawiera znak wodny nie musi być ukrywany.

Porównując tą definicję do steganografii, możemy zauważyć podstawowe różnice. W steganografii ważniejsza jest niewykrywalność. W teorii, zmiana pewnych obszarów w nośniku, może być akceptowalna, ponieważ sam nośnik nie ma znaczącej wartości dla komunikujących się stron – ważna jest ukryta wiadomość. Oczywiście, zmiany nie mogą być zauważalne, ponieważ może to zwrócić uwagę atakującego. Druga znacząca różnica to pożądana długość wiadomości do ukrycia. W steganografii będzie ona dużo większa niż w aplikacjach do znakowania wodnego. W znakowaniu wodnym ukrywana jest informacja mająca związek z nośnikiem. Zazwyczaj jest to krótki podpis – od 8 do 128 bitów. Natomiast w steganografii, może to być tekst lub nawet rysunek.

Czyli podsumowując:

Właściwość Steganografia Znaki wodne
Ukrywana wiadomość Nie związana z nośnikiem Związana z nośnikiem
Długość wiadomości Duża Mała
Niewykrywalność Pożądana Nie ma znaczenia

A na co to komu?

Tak jak ze wszystkimi metodami związanymi z bezpieczną komunikacją, tak i steganografia może być wykorzystana w dobrych i złych celach. Jej główną ideą, tak jak to zostało wspomniane, jest umieszczenie wiadomości w wybranym nośniku. W połączeniu z pewnymi metodami kryptograficznymi, steganografia może posłużyć jako narzędzie do ochrony dokumentów, ograniczenia przeglądania danych czy ochrony przed kradzieżą. W tym ostatnim przypadku, w pliku zostaje umieszczony tzw. znak wodny, który może świadczyć o posiadanych do niego praw autorskich. W przypadku kradzieży, autor może przed sądem udowodnić swoje prawa do oznakowanego pliku.

Niestety, steganografia może zostać wykorzystana przez organizacje terrorystyczne lub szpiegów, do ukrywania faktu prowadzenia komunikacji. Po ataku 11 września 2001 roku na World Trade Center, mówiło się, że terroryści wymieniali rozkazy właśnie dzięki steganografii. Innym przykładem jest jej użycie do ukrywania pornografii, najczęściej dziecięcej, w niezwracających uwagi zdjęciach. Następnie takie zdjęcie, może zostać wysłane publicznym kanałem, np. w wiadomości e-mail lub jako post na forum. Steganografia może być również wykorzystywana przez hakerów do ukrycia kodu wykonawczego. Wtedy istnieje możliwość przeniesienia go nie zważając na zabezpieczenia, czy oprogramowanie antywirusowe np. na serwer ofiary. Następnie kod może zostać skopiowany do pamięci operacyjnej i wykonać niepożądane działania.

About the author

Consultant, developer. Pasjonat programowania rozwijający się przy projektach komercyjnych oraz jako kontrybutor open source. W wolnym czasie lubi pobiegać za piłką, a także obejrzeć dobry film lub serial.

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *