Steganografia - elektroniczne znaki wodne
- Jarosław Badurek,
- 29.09.1997
Steganosaurusy i mandelstegi
Paleta programów steganograficznych jest bogata, a ich fantazyjne nazwy często zawierają frazę "stego", "steg" czy choćby literkę "s", jak jest w przypadku pakietu Andy Browna S-Tools. Warto przyjrzeć się temu narzędziu, gdyż jest ono reprezentatywne dla oprogramowania steganograficznego. Mamy tu trzy zasadnicze opcje ukrywania danych:
a) na dyskietkach
b) w plikach dźwiękowych (WAV)
c) w plikach graficznych (BMP, GIF).
W pierwszym przypadku program ukrywa informacje, korzystając z wolnych sektorów na nośniku danych, wybieranych nie kolejno, ale w sposób pseudolosowy. W podobny sposób można wypełniać niepotrzebne sektory przypadkowymi danymi w celu zmylenia potencjalnego przeciwnika.
Jak wszystko w informatyce, tak i dźwięki zapamiętane w komputerowych „trzewiach” to nic innego jak zbiory bitów i bajtów. Przyjmijmy, że nasza melodyjka zaczyna się następującym ciągiem nut, czyli bajtów - w postaci dziesiętnej i obok dwójkowej:
164 10100100
143 10001111
168 10101000
157 10011101
227 11100011
224 11100000
151 10010111
189 10111101
Powiedzmy, że nasza tajna informacja, którą chcemy wmontować w muzykę, to bajt o postaci (niezależnie od tego, co ma on oznaczać): 141 10001101. Tych 8 bitów "wsadzamy" teraz na ostatnie pozycje bitowe (LSB) poprzednich 8 bajtów, które przyjmują w związku z tym następujący wygląd binarny i decymalny:
10100101 165
10001110 142
10101000 168
10011100 156
11100011 227
11100001 225
10010110 150
10111101 189
Widać, że niektóre wartości uległy zmianie, co jest oczywiste, a skoro udało nam się w ten sposób ukryć jeden bajt, to można to zrobić z dowolną ich liczbą, tyle że potrzeba na wejściu 8 razy więcej informacji bazowej (redundancja 1B/1b). No dobrze, ale co z naszą muzyczką? Czy zamiast Grzegorza Turnaua usłyszymy jakieś „discopolo”? Moglibyśmy się umówić, że jest to bez znaczenia, grunt to steganograficzny przekaz ukryty w muzycznej wacie. Dowcip polega jednak również na tym, iż taka ofiara wcale nie jest potrzebna. Modyfikacje (maksymalnie o jeden) są na tyle dla naszego ucha niewielkie, że pozostaną nie zauważone.
Podobnie dzieje się z grafiką - komputerowy obrazek, w którym zmodyfikowano wartości LSB kolorów RGB (Red Green Blue) dla poszczególnych pikseli, nie rzuca cienia podejrzenia, że coś w nim jeszcze ukryto. Tu ilości danych są większe, więc schować też można więcej. Wykonajmy teraz proste mnożenie dla grafiki o rozdzielczości 480 x 640 z paletą 256 kolorów, czyli 8 bitów na piksel, a przekonamy się, że mamy 300 KB danych bazowych, co daje 37,5 KB do utajnienia. Sporo? Wystarczyłoby, aby uczynić niewidzialnym np. cały tekst tego artykułu. Jeżeli teraz prowadzimy wideokonferencję z naszym partnerem, to wystarczą sekundy, aby (bez przerywania telerozmowy!) dyskretnie przesłać dane, na których bezpieczeństwie szczególnie nam zależy.