Hlavní navigace

Jak ukrýt tajná data do obrázku aneb steganografie v praxi

Petr Krčmář 30. 4. 2010

Jistě už víte, jak je možné data šifrovat, aby je nenašel nikdo cizí. Co ale s daty, u kterých nesmí cizí osoba ani zjistit, že existují? Co v zemích, kde po vás budou chtít k zašifrovaným datům heslo? Řešením je steganografie, která umí data uchovat v obrázcích tak, že je není možné objevit. Jak na to?

Pravděpodobně jste někdy slyšeli o šifrování a o tom, jak přibližně funguje. V Linuxu (a nejen v něm) k němu můžete v praxi využívat třeba velmi silný nástroj TrueCrypt nebo třeba klasické GnuPG. Existují ale situace, ve kterých není možné vůbec existenci dat prozradit. Ta totiž sama o sobě může vyvolat podezření a stále existují na světě oblasti, kde se z vás mohou pokusit heslo doslova vymlátit.

Řešením je steganografie. Obecný princip vysvětlí nejlépe encyklopedie:

Steganografie je věda zabývající se utajením komunikace prostřednictvím ukrytí zprávy. Zpráva je ukryta tak, aby si pozorovatel neuvědomil, že komunikace vůbec probíhá. Zachycení zprávy se rovná prolomení steganografie.
(Zdroj: Wikipedie)

V případě počítačové steganografie se tedy jedná o ukrytí dat uvnitř jiných dat. Ta musí být dostatečně proměnlivá, aby byla stále platná i ve chvíli, kdy se do nich zamíchají naše ukrývané informace. Pro tyto účely jsou nejvhodnější multimediální informace jako je obrázek, video či zvuková nahrávka. Mírná obměna dat u nich nehraje žádnou roli a nedochází ke znehodnocení dat. Nejčastěji se používají obrázky jpeg. Ty jsou dnes naprosto běžné a můžete je v klidu nosit třeba v digitálním fotoaparátu. Ten vše zobrazí a nikdo nepojme podezření.

Našim cílem je ukázat si, jaké nástroje je možné pro steganografii využít v Linuxu. Nástrojů je k dispozici celá řada, my si řekneme o těch nejznámějších. Jako zdrojový obrázek použijeme obrázek serveru, který má téměř jeden megabajt. Do něj ukryjeme soubor Tajne.jpg, který má 40 KB. Obecně se může jednat o libovolná data, nemusí jít o obrázek v obrázku. Stejně tak to může být třeba soubor Moje_hesla.odt.

originál
Originální obrázek
tajný
Obrázek obsahující tajná data

Jak vidíte, na pohled se obrázky nijak neliší, přesto jsou v tom druhém utajené informace. Pokud s nimi budete pracovat (samozřejmě se pokuste získat ukrytá data – stojí to za to), pracujte s originální verzí – klikněte si.

Pár rad na začátek: Ukrývaný soubor musí být menší než ten, ve kterém ukrýváme. Čím větší je rozdíl, tím složitější je v souboru objevit nižší entropii a získat podezření na utajená data. Pokud si chcete být jisti, že se k datům nikdo nedostane, určitě je ještě (před procesem nebo během něho) nechejte zašifrovat.

Steghide

Steghide je řádková utilita, která sice není pro běžného uživatele nejpříjemnější, ale hodí se při dávkovém zpracování souborů. Pokud potřebujete ukrýt větší množství souborů, je poměrně jednoduché napsat skript, který vše provede dávkově.

Základní práce s programem vypadá takto:

$ steghide embed -cf Server.jpg -ef Tajne.jpg

Do souboru Server.jpg ukrýváme obsah souboru Tajne.jpg. Program se ještě zeptá na passhphrase, která bude použita pro rozprostření tajných dat a jejich zamíchání do krycího souboru. Bez tohoto hesla není možné informace ze souboru získat.

Enter passphrase:
Re-Enter passphrase:
embedding "Tajne.jpg" in "Server.jpg"... done

Výsledkem je pozměněný soubor Server.jpg. Ten je přibližně stejně velký jako originál, ale už obsahuje naše tajná data. Tímto způsobem také vznikl pravý obrázek nahoře.

O obrázku si můžeme nechat zjistit nějaké informace:

$ steghide info Server.jpg
"Server.jpg":
  format: jpeg
  capacity: 56,7 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
  embedded file "Tajne.jpg":
    size: 39,0 KB
    encrypted: rijndael-128, cbc
    compressed: yes

Vidíte, že program oznámil, kolik informací je možné do souboru uložit (56,7 KB) a zeptal se nás na tajné heslo. Podle něj zjistil, že uvnitř jsou skutečně data a vypsal o nich další údaje. My se nyní můžeme pokusit data získat zpět:

$ steghide extract -sf Server.jpg
Enter passphrase:
wrote extracted data to "Tajne.jpg".

Opět jsme byli dotázáni na heslo a data se opět vykopírovala do souboru s původním názvem.

(Mimochodem heslo k příkladovému obrázku zní „stojitozato“. Můžete si zkusit původní soubor získat a prohlédnout.)

Další možnosti

Pokud máte rádi grafická klikátka, můžete zkusit program SteGUI, který umí kromě obrázků steganografii také nad audio soubory (WAV a AU). Bohužel obvykle není součástí distribucí, takže si jej budete muset nainstalovat ručně. Jeho rozhraní je sice trochu strohé, ale zřejmě poslouží dobře.

Velmi zajímavě vypadá také steganografický souborový systém StegFS. Ten funguje pod FUSE a je schopen vám nabídnout kompletní diskovou strukturu ukrytou pomocí steganografie. Práce s diskem by podle informací z webu měla být stejná jako práce s běžným souborovým systémem.

Dalšími nástroji, které můžete vyzkoušet jsou řádkové utility z balíku Stegtools nebo program OutGuess. Jeho výhodou je multiplatformnost a můžete jej používat v systémech Linux, *BSD, Solaris, AIX, HP-UX, Mac OS X a MS Windows.

Čím to detekovat a lámat

Možná vás také při čtení tohoto článku napadlo, jak je možné informace ze souboru vylámat násilím. I k tomu existuje několik nástrojů. Pro detekci můžete využít nástroje Stegdetect, který umí v obrázcích detekovat několik různých steganografických metod. Na odkazovaném webu je stručně popsán i princip funkce.

Pro útok hrubou silou pak můžete nasadit stegbreak. Ten využívá klasický slovníkový útok a pokud se mu podaří odhalit heslo, získá data z originálního obrázku.

(Obrázek serveru vyfotil Rodzilla a je k dispozici pod licencí CC-BY-2.5.)

Našli jste v článku chybu?

30. 4. 2010 10:56

Karel (neregistrovaný)

Každá metoda to dělá jinak. Jedna starší a oblíbená:

Máte obrázek v .PNG nebo něčem jiném, co umí bezeztrátově barvy ve 24 pixelech.
Vyberete si heslo – číslo.
Poskytnete datový soubor, který chcete ukrýt. To je sled bitů.

Nyní pomocí hesla vygenerujete fraktál (třebas Mandelbrotovu množinu) stejné velikosti jako je původní obrázek. Tento fraktál si připravíte na black and white obrázek (budeme mu říkat šablona). A začnete kódovat. Vytváříte nový, opět black and white obrázek (budeme mu říkat …



30. 4. 2010 13:38

XXX (neregistrovaný)

Steganografický program, který je po zadání správného hesla schopen poznat, že byl nad obrázkem použit, raději zahoďte, a třikrát si odplivněte.

Kvalitní systém získá nějaká data vždy, při zadání jakéhokoliv hesla, a nad jakýmkoliv obrázkem nebo videem. Absolutně nekontroluje jejich konzistenci. Žádné hlavičky, nic, podle čeho by šel odhalit.

Pokud mají uložená data dostatečnou entropii, pak není žádná šance zjistit, jestli je v daném obrázku něco skryto, nebo jestli je heslo správné.

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Recenze Prostřeno: cirkus postižených

Recenze Prostřeno: cirkus postižených

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Vitalia.cz: Na pečení je nejlepší medovicový med

Na pečení je nejlepší medovicový med

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Vitalia.cz: Často čůrá a má žízeň? Příznaky dětské cukrovky

Často čůrá a má žízeň? Příznaky dětské cukrovky

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte