Skrivanje podatkov - steganografija

Objavljeno: 17.11.2008 16:25 | Avtor: Marko Hölbl | Kategorija: Nasveti | Revija: Oktober 2008

Steganografija je veda o skrivanju podatkov. Njen cilj je onemogočanje zaznave podatkov, ki so skriti v navidezno nepomembnih podatkih. V dobi IT lahko uporabimo orodja, ki nam omogočajo skrivanje sporočil ali datotek v nosilnih datotekah, predvsem slikovnih (jpg, png, bmp, gif), pa tudi v zvokovnih datotekah (wav, mp3).

Beseda steganografija (steganography) izvira iz grščine in v dobesednem prevodu pomeni prikrito pisanje. Steganografija je znanost, ki omogoča skrivanje podatkov v navidezno nepomembnem prenosnem mediju. Podatki so skriti tako, da ni mogoče ugotoviti, ali nosilni podatki (npr. slika) vsebujejo skrito sporočilo ali druge podatke. Za razliko od kriptografije oz. šifriranja podatkov, katere cilj je narediti podatke neberljive, steganografija poskuša prikriti obstoj podatkov. Kriptografija in steganografija sta sicer sorodni tehniki. V kontekstu prenosa podatkov v IT svetu bi ob pomoči kriptografije podatke pretvorili v neberljivo obliko, medtem ko bi s steganografijo prikrili obstoj podatkov. V preteklosti so v ta namen uporabljali različne tehnike, kot je nevidno črnilo. V času informacijske tehnologije pa uporabljamo precej drugačne pristope in tehnike.

Steganografija skozi čas

V zgodovini je veliko različnih pristopov in tehnik za skrivanje podatkov. David Kahn v svoji knjigi The Codebreakers obravnava zgodovinski vidik skrivanja podatkov. Tako so med drugo svetovno vojno uporabljali nevidno črnilo in v pismu z nedolžno vsebino med vrsticami napisali skrito sporočilo. Drug način skrivanja sporočil je bil s sistematično izbiro določenih delov besedila. Navedimo naslednji primer:

Fishing freshwater bends and saltwater coasts rewards anyone feeling stressed. Resourceful anglers usually find masterful leapers fun and admit swordfish rank overwhelming anyday.

Če iz besedila vzamemo tretjo črko vsake besede, dobimo naslednje prikrito sporočilo: Send Lawyers, Guns, and Money.

Omenjeni pristop je precej preprost, vendar se je izkazal za učinkovitega. Bolj prefinjena metoda, ki so jo uporabljali Nemci med drugo svetovno vojno, je uporaba mikropik (microdot). Z njo so skrivali podatke v znakih velikosti pik. Tako je bilo samo ob pomoči velike povečave mogoče ugotoviti, da pika v resnici vsebuje skrite podatke.

Delovanje

V IT svetu skrivamo podatke večinoma na ravni programske opreme. Proces steganografije se začne z iskanjem redundantnih bitov v mediju, ki bo uporabljen za vgradnjo skritih podatkov. Redundantni biti so takšni, ki jih je mogoče spremeniti, ne da bi s tem bistveno vplivali na kakovost oz. obliko medija (npr. kakovost slike). Proces vgradnje te bite zamenja s podatki, ki jih želimo skriti. Cilj modernih steganografskih pristopov je zagotoviti nezaznavnost skritih podatkov. Tudi če skritih podatkov ne uspemo razkriti, pogosto zadostuje že, da vemo oz. lahko dokažemo obstoj skritih podatkov. Tehnike analize, ki želijo razkriti obstoj skritih podatkov, temeljijo na različni matematičnih, predvsem pa statističnih analizah. Na splošno tehnike za razkritje in pridobitev skritih sporočil imenujemo steganaliza.

Steganografija se velikokrat uporablja v povezavi s šifriranjem (kriptografijo), saj podatke, preden ji skrijemo v nosilno datoteko, šifriramo. Tako še dodatno poskrbimo za varnost, saj so podatki varni tudi, če jih napadalcu uspe pridobiti iz nosilne datoteke. Kljub temu pa ostaja cilj steganografije v tem, da napadalec ne ve, da so v določeni datoteki skriti podatki.

Shema delovanja steganografije

V praksi skrivanje podatkov izvedemo z namenskimi orodji, ki omogočajo skriti podatke v slikah ali zvokovnih datotekah. Najpogostejši nosilec skritih podatkov so slikovne datoteke. Računalniška slika je namreč v resnici polje števil, ki predstavljajo pike slike. Če imamo opravka s tipično sliko velikosti 640 × 480 pik in 256 barv (8 bitov na piko), je velikost takšne slike okrog 300 kilobitov. S steganografijo poskušamo datoteko (besedilna, šifrirana datoteka, slika ipd.) vgraditi v sliko. Vgradnja poteka v t. i. najmanj pomembne bite (least significant bits - LSB).

Primer: v sliko velikosti 1024 × 768 pik in 24-bitne barvne globine bomo skrili podatke. Velikost takšne datoteke je okrog 2 MB (1024×768 × 24/8 = 2.359.296 bajtov). Vse barve na sliki so pridobljene s tremi osnovnimi barvami: rdečo, zeleno in modro (red, green, blue - RGB). Vsaka barva je predstavljena ob pomoči 1 bajta (8 bitov). Tako 24-bitna slika uporablja 3 bajte na piko (pixel). Če podatke shranimo v LSB vsakega bajta, to pomeni, da lahko v vsako piko slike shranimo 3 bite. Ker je sprememba tako majhna, človeško oko ne opazi razlike v sliki oz. med originalno sliko in spremenjeno sliko. Končni barvni odtenek pike je namreč tako malo spremenjen, da to ni opazno. Velikost shranjenih podatkov je lahko največ okrog 294 KB.

Čim večja je razlika v velikosti med nosilno sliko in podatkom, ki ga želimo vgraditi, tem teže je zaznati spremembo. Takoj nam je jasno, da ni mogoče v nosilno datoteko skriti podatkov, ki so večji od same nosilne datoteke. Tudi če so podatki blizu velikosti nosilne datoteke, naletimo na težave. Sodobna orodja omejujejo velikost podatkov, ki jih je mogoče skriti v določeno datoteko, tako da omenjena težava ni skrb uporabnika.

Steganografska orodja

V spletu sicer najdemo kopico programov in spletnih aplikacij, ki omogočajo skrivanje sporočil ali datotek v nosilnih datotekah, predvsem slikovnih in zvokovnih. Seznam spletnih strani in programov je naveden na koncu članka. Kot prvega omenimo spletno aplikacijo Mozaiq, ki omogoča skrivanje sporočila dolžine do 1024 znakov v poljubno izbrano datoteko PNG ali JPG. Sporočilo dodatno zavarujemo z geslom. Spletna aplikacija generira sliko, ki jo lahko shranimo na svoj disk.

Druga zvrst steganografskih programov so namizni programi, ki jih je treba namestiti v svoj računalnik. Ti pogosto delujejo hitreje in hkrati ponujajo bogatejši nabor možnosti.

Spletna stran za skrivanje sporočil v poljubnih slikovnih datotekah.

Program Concealar omogoča skrivanje sporočil v datoteko PNG ali JPG. Sporočilo zavarujemo z geslom, program pa poskrbi tudi za šifriranje sporočila z algoritmom AES. Če želimo pridobiti sporočilo s slikovne datoteke, moramo vpisati geslo, ki smo ga določili ob vgrajevanju. Za razliko od Mozaiqa je pri Concealarju lahko sporočilo dolgo do 10.000 znakov.

Orodje Concealar

Skriti je mogoče tudi poljubne datoteke v datotekah. Večina programov, ki jih najdemo v spletu, omogoča skrivanje Officovih ali OpenOffice datotek v slikovnih datotekah. Orodje IBN (Integer Binary Number) omogoča skrivanje Officovih ali OpenOfficovih datotek v slikovnih datotekah BMP. Tako kot predhodni programi tudi ta ponuja varovanje skrite datoteke z geslom.

Orodje IBN - omogoča skrivanje Wordovih datotek v slikovnih datotekah.

Steganaliza

Če je steganografija tehnika skrivanja podatkov, poskuša steganalize podatke odkriti in razvozlati. Njena primarna naloga je zaznati, ali določena datoteko vsebuje skrite podatke (sporočilo ali datoteko), in jih morebiti tudi pridobiti iz nosilne datoteke. Načinov, kako se tega lotimo, je več:

  • Vizualno odkrivanje - z gledanjem ali primerjanjem poskušamo ugotoviti, ali slika vsebuje skrite podatke (slike bmp, jpg, png, gif ipd.). Pristop se izkaže kot precej neučinkovit, prav tako nastopi težava pri pridobivanju skritih podatkov iz nosilne datoteke.
  • Avdio odkrivanje - če je nosilec skritih podatkov zvokovna datoteka, poskušamo s poslušanjem ugotoviti, ali se v zvoku skrivajo podatki (v mp3 ali wav). Tehnika ima enake pomanjkljivosti kakor vizualna detekcija.
  • Statistična analiza - poskušamo odkriti spremembe v vzorcih pik ali bitov LSB. Velikokrat lahko v ta namen uporabimo histogram slike. Tehnika je namenjena odkrivanju skritih podatkov, za pridobivanje pa je treba uporabiti druge pristope.
  • Strukturne razlike - skrite podatke iščemo s specifičnimi datotečnimi lastnostmi, kot so velikost, datum izdelave ali izvleček zgoščevalne funkcije (hash function).
  • Moderni steganografski algoritmi onemogočajo ali otežijo uporabo prvih dveh in zadnje tehnike odkrivanja. Uporabna tehnika za odkrivanje podatkov v slikah je z analizo histograma slike.

    Primerjava histogramov originalne in spremenjene slike (opazimo majhne razlike)

    V internetu najdemo številna steganalitska orodja za odkrivanje skritih podatkov. Eno izmed orodij je OutGuess, ki omogoča odkrivanje in pridobivanje sporočil iz datotek. Vendar je jasno, da takrat, ko smo uporabili šifriranje pred skrivanjem, napadalec nima koristi od pridobljenih podatkov, saj so zanj neberljivi.

    Za konec

    Uporabnost steganografije v praksi je velika. Predvsem z napovedanimi zaostritvami zakonodaje bo marsikdo posegel po skrivanju podatkov. Če se spomnimo sporne odločbe sodišča, da je treba šifrirne ključe naših podatkov izročiti preiskovalcem, mi pa tega ne bi želeli, bi skrivanje podatkov rešilo takšno in podobne zagate. Tudi številni programi, kot na primer TrueCrypt, uporabljajo tehnike skrivanja, da skrijejo celotne particije diska. Vendar pa se ni mogoče popolnoma zanesti na steganografijo, saj so tehnike razbijanja precej dobre. Z večanjem priljubljenosti steganografije se bodo izboljševali tudi napadi nanj, podobno kot pri kriptografiji - šifriranju podatkov. Kljub temu steganografija ostaja zanimiva tehnologija, ki lahko navduši tudi domačega uporabnika.

    Koristne povezave:

    Wikipedia: Steganografija, en.wikipedia.org/wiki/Steganography

    Spletna aplikacija Mozaiq, mozaiq.org/encrypt/

    Povezave do člankov na temo steganografije, www.forensics.nl/steganography

    maxant Steganography, stega.maxant.co.uk/help.jsp

    Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
    Prijava

    ph

    Komentirajo lahko le prijavljeni uporabniki