Steganografija – tehnička analiza mehanizma rada i praktična programska demonstracija.
Članovi tima: Romano Kovač
Steganografija je znanstvena disciplina koja se bavi prikrivenom razmjenom informacija. Riječ steganografija izvedena je od grčkih riječi steganos (στεγανός) i graphein (γράφειν), što u doslovnom prijevodu znači "skriveno pisanje". [1] Tajna se poruka skriva unutar neke druge bezazlene poruke tako da se postojanje tajne poruke ne može uočiti, a sve ovo omogućuju nam razne steganografske tehnike. Ovakav pristup enkripciji naziva se još i security through obscurity (tj. sigurnost kroz skrivenost). [6]
Sadržaj |
Steganografija
Steganografija podrazumijeva prikrivanje tajne poruke, ali ne i činjenice da dvije strane međusobno komuniciraju. Stoga proces steganografije obično uključuje umetanje tajne poruke unutar nekog prijenosnog medija koji se u tom slučaju naziva nositelj i ima ulogu prikrivanja postojanja tajne poruke. Nositelj mora biti takav skup podataka koji je sastavni dio uobičajene svakodnevne komunikacije te kao takav ne privlači posebnu pozornost na sebe, npr. tekst, slika, audio ili video zapis. Cjelina sačinjena od tajne poruke i nositelja unutar kojeg je ta poruka ugniježđena, naziva se steganografski medij ili stego. U svrhu dodatne zaštite, moguća je i uporaba steganografskog ključa kojim se tajna poruka kriptira prije umetanja u nositelj. Steganografski medij se stoga može prikazati u sljedećem obliku: [1]
steganografski_medij = tajna_poruka + nositelj + steganografski_ključ
Pojašnjenje pojmova s prethodne slike koji čine dio steganografskog sustava: [1]
- fE - steganografska funkcija "ugrađivanje"
- fE-1 - steganografska funkcija "izdvajanje"
- nositelj - medij unutar kojeg se sakriva tajna poruka
- poruka - tajna poruka koja treba biti sakrivena
- ključ - steganografski ključ; parametar funkcije fE
- stego - steganografska datoteka
--Rkovac 00:09, 18. siječnja 2016. (CET)
Povijest steganografije
Pojam steganografije formiran je tek krajem 15. stoljeća, no različite steganografske tehnike u primjeni su već nekoliko tisućljeća. Slijedi pregled najpoznatijih primjena steganografije kroz povijest: [1]
- Voštane ploče - U antičkoj Grčkoj najzastupljenije sredstvo pisanja bili su komadi drvenih ploča preliveni voskom. Tajna poruka se napisala na taj komad drvene ploče prije nego se ploča prelila voskom. Nakon što se ploča prelila voskom, tajna poruka je ostala skrivena.
- Poruke na glasnikovom tijelu - Osim voštane ploče, tajna informacije se skrivala i na tijelima glasnika. Glava glasnika bi se obrijala i na njoj bi se tetovirala tajna poruka. Nakon što bi kosa narasla, tajna poruka bi ostala skrivena, a čitanje poruke bi se vršilo brijanjem glasnikove glave. Ovakve tehnike su korištene u Grčko-Perzijskim ratovima.
- Voštane kuglice - Drevni Kinezi su na tanki komad svile zapisivali poruku, zatim su taj komad stavljali u voštanu kuglicu koju bi glasnik progutao.
- Johannes Trithemius - Redovnik Johannes Trithemius je oko 1500. napisao knjigu Steganographia u kojoj je opisao kako sakriti poruku unutar bezazlenog teksta. Knjiga je izdana 1606.
- Kuhana jaja - Talijanski znanstvenik Giovanni Porta, rođen 1535. godine, je otkrio kako sakriti poruku unutar skuhanog jaja. Kao tintu je koristio mješavinu stipsa i octa. Poruku bi nanio na skuhano jaje, a tinta od stipsa i octa bi prodrla kroz ljusku jaja. Skrivena poruka bi se očitala s bjelanjka nakon što bi se jaje ogulilo.
- Nevidljiva tinta - Tijekom Drugog svjetskog rata se nevidljiva tinta koristila za prijenos tajne poruke. Dobivanje skrivene poruke zasnivalo se na svojstvu da tinta postaje vidljiva prilikom zagrijavanja, odnosno kontakta s određenom kemijskom supstancom.
- Morseova abeceda - Također, poruke su se znale prenositi u predivu korištenjem znakova Morseove abecede ili na poleđini poštanskih maraka.
- Mikrofotografija - Tijekom i nakon Drugog svjetskog rata bila je česta uporaba mikrofotografija (microdots). Mikrofotografije su bile veličine točke pa su se lako mogle smjestiti, tj. nalijepiti, u tekst. Ipak, tako nalijepljene mikrofotografije bi reflektirale svjetlost kada bi se papir okrenuo pod određenim kutom pa su bile primjetne.
- Nulte šifre - Valja spomenuti i korištenje nulte šifre u špijunaži. Tako je Velvalee Dickinson, japanska špijunka i preprodavačica lutaka, slala pisma narudžbe u Južnu Ameriku u kojima su se nalazile skrivene informacije o kretanjima brodova.
--Rkovac 14:44, 17. siječnja 2016. (CET)
Tehnike steganografije
Dva su osnovna tipa steganografije: tehnička steganografija (eng. technical steganography) i lingvistička steganografija (eng. linguistic steganography).
Tehnička steganografija
Tehnička steganografija se ogleda u korištenju posebnih tehničkih sprava, uređaja, instrumenata i metoda u skrivanju poruke. U tehničku steganografiju tako spada:
- Nevidljiva tinta - Tinta koja reagira ukoliko dođe u kontakt s toplinom ili nekom kemijskom supstancom.
- Korištenje skrovitih mjesta - Dobar primjer je tetovaža ispod kose.
- Mikrofotografije (microdots) - Izrazito sičušće fotografije koje su veličine manje od pola milimetra.
- Računalom zasnovane metode - metode nastale upotrebom osobnog računala.
Lingvistička steganografija
Lingvistička steganografija obuhvaća steganografske metode koje skrivaju tajnu poruku u objekt nositelj nastojeći je prikazati kao bezazlen skup informacija. Uobičajeno je objekt nositelj jezičnog sadržaja. Lingvističku steganografiju dijelimo na: [1]
- Semagrami (eng. semagrams)- skrivaju informacije uporabom različitih simbola i znakova.
- Vizualni semagrami (eng. visual semagrams) - baziraju se na principu skrivanja poruke uporabom bezazlenih i svakodnevnih fizičkih objekata, npr. specifičnim razmještajem predmeta na stolu ili objekata na web stranici.
- Tekstualni semagrami (eng. textual semagrams) - skrivaju informacije različitim modifikacijama teksta nositelja, npr. suptilna promjena veličine ili tipa fonta, dodavanje suvišnih razmaka ili korištenje različitih ukrasa u rukopisu.
- Otvoreni kodovi (eng. open codes) - uključuju sve tipove prijenosa tajne poruke u kojima se koristi legitimna poruka nositelj koja igra ulogu javne, tj. neskrivene komunikacije. Otvoreni kodovi dijele se na žargonski kod i skrivene šifre.
- Žargonski kod (eng. jargon code) - podrazumijeva korištenje jezika koji razumije ograničena skupina ljudi, npr. specifična terminologija određene grupe ljudi ili simboli za indiciranje postojanja i tipa bežičnog mrežnog signala. Podskup žargonskog koda je i znakovni kod u kojem određene predefinirane fraze predstavljaju točno određene pojmove.
- Skrivene šifre (eng. covered ciphers) - predstavljaju steganografsku tehniku kod koje je umetnutu tajnu poruku moguće izdvojiti iz steganografskog medija samo ako je poznata točna metoda korištena za njeno umetanje u nositelj. Skrivene šifre uključuju rešetkaste i nulte šifre.
- Rešetkasta šifra (eng. grille ciphers) - temelje se na predlošcima koji se koristi za prikrivanje poruke nositelja. Podaci koji se pojavljuju u otvorima takvih predložaka predstavljaju skrivenu tajnu poruku.
- Nulta šifra (eng. null cipher) - koristi se za skrivanje informacija tako da se definira neki set pravila, npr. „čitaj svaku petu riječ“ ili „čitaj svaki treći znak u svakoj riječi“. Dotična metoda omogućava skrivanje tajnih poruka u svakodnevnim porukama bez uporabe kompliciranih algoritama ili alata. Primjeri umetanja tajnog teksta unutar datoteka su: ispod slike u PowerPoint datoteci, u Properties dijelu Word datoteke, unutar komentara na web stranicama, unutar bilo kojeg dokumenta tako da boja teksta odgovara boji pozadine. Jedan od najjednostavnijih i najpoznatijih primjera primjene nulte šifre je poruka koju je jedan njemački špijun slao za vrijeme 2. svjetskog rata:
"APPARENTLY NEUTRAL'S PROTEST IS THOROUGHLY DISCOUNTED AND IGNORED. ISMAN HARD HIT. BLOCKADE ISSUE AFFECTS PRETEXT FOR EMBARGO ON BYPRODUCTS, EJECTING SUETS AND VEGETABLE OILS.“
Uzimanjem 2. slova iz svake riječi, dobiva se sljedeća tajna poruka:
„PERSHING SAILS FROM N.Y. JUNE 1“
--Rkovac 00:09, 18. siječnja 2016. (CET)
Kategorije steganografskih tehnika
Steganografske tehnike se mogu podijeliti u sljedećih šest kategorija [2]:
- Tehnike supstitucije (eng. subtitution systems) - zamjena suvišnih dijelova nositelja sa tajnom porukom. Najčešće korištena tehnika ove kategorije je LSB supstitucija (eng. Least Significant Bit - LSB) koja bitove najmanje važnosti pretvara u nositelje skrivene poruke.
- Tehnike transformacije domene (eng. transform domain techniques) - ugrađivanje tajnih podataka na transformirani prostor signala.
- Tehnike raspršenog slijeda (eng. spread spectrum techniques - SS) - usvaja ideje iz raspršenog spektra komunikacije
- Statističke metode (eng. statistical methods) - kodiramo podatke promjenom nekoliko statističkih svojstava nositelja i koristimo hipotezu ispitivanja u postupku ekstrakcije.
- Tehnike izobličavanja (eng. distortion techniques) - pohranjujemo informacije izobličenog signala i mjerimo odstupanje od izvornog nositelja u koraku dekodiranja
- Tehnike stvaranja nositelja skrivene informacije (eng. cover generation methods) - ovdje ne ugrađujemo podatak u nositelj, već se na temelju podatka stvara nositelj koji će mu odgovarati.
Tehnike supstitucije
LSB supstitucija
LSB (eng. least significant bit) supstitucija jedna je od najčešćih steganografskih tehnika - najmanje značajni bitovi odabrane prikrivne datoteke zamijene se bitovima tajne poruke. Ova tehnika se lako primjenjuje na slikovne datoteke. Velika količina informacija može se sakriti malim ili potpuno neuočljivim utjecajem na datoteku nositelja skrivene informacije. Na primjer, želimo li sakriti poruku u svaki bajt 24-bitne slike, možemo spremiti 3 bita u svaki piksel (1 bit u kanal svake boje). Slika dimenzija 1024x768 piksela može sakriti 1024 * 768 * 3 = 2359296 bitova informacija. To je 294912 bajta ili 288 kilobajta informacija. To je velika količina, no stegoslika ljudskom oku izgleda identično kao i original. Pretpostavimo da želimo sakriti slovo A. Njegov ASCII ekvivalent iznosi 65(10) , što je binarno 01000001(2). Za skrivanje su nam dovoljna 3 piksela. Neka su ti pikseli: [3]
(00100111, 11101001, 11001000) (00100111, 11001000, 11101001) (11001000, 00100111, 11101001).
Umetanje binarne vrijednosti slova A u tri piksela rezultira s
(00100110, 11101001, 11001000) (00100110, 11001000, 11101000) (11001000, 00100111, 11101001).
Možemo primjetiti da su samo podebljani bitovi promijenili vrijednost. Promatrajući neki prosjek, primjenom ove metode promijeni se samo polovica najmanje značajnih bitova. Piksel koji se najviše promijenio, promijenio se za dvije nijanse boje, pa možemo primjetiti da je u odnosu na 16,7 milijuna nijansi ova promjena zanemarivo za ljudsko oko.
Nadalje, u želji da sakrijemo tajnu poruku unutar neke slikovne datoteke, prvi i osnovni korak jest odabir prikrivne datoteke. Nakon što su prikrivna datoteka i tajna poruka odabrane, bira se podskup najmanje značajnih bitova prikrivne datoteke (skup prikrivnih bitova). Broj bitova u odabranom skupu uvijek odgovara broju bitova tajne poruke. Nakon toga se redoslijednim pristupom svaki prikrivni bit zamjenjuje bitom tajne poruke, tako dugo dok svi bitovi nisu zamijenjeni. U najjednostavnijem slučaju LSB supstitucije tajni se bitovi pohrane u najmanje značajni bit (LSB) svakog piksela po redu.
Ukoliko želi rekonstruirati poruku, primatelj mora znati podskup najmanje značajnih bitova u koje je poruka skrivena. Tehnikom obrnutom od umetanja "izvlači" najmanje značajne bitove, slaže ih pravim slijedom i dobiva poruku. Kada bismo tajnu poruku ovom metodom skrivali u 2, 3 ili 4 najmanje značajna bita elemenata prikrivne datoteke, još uvijek bi ljudsko oko teško moglo primijetiti razliku u odnosu na original. U sljedećem primjeru tajna poruka je umetnuta na način da su 3 bita crvenog i zelenog kanala te 2 bita plavog kanala zamijenjena bitovima tajne poruke. [3]
Tehnike transformacije domene
Tehnika transformacije domene oslanja se na matematičke funkcije koje se koriste u algoritmima kompresije kako bi se uspješno sakrio podatak. Umetanje bitova tajne poruke na mjesto koeficijenata najmanje važnosti predstavlja osnovni princip rada ove tehnike. Uzmimo za primjer JPEG format slike koji koristi diskretnu kosinusnu transformaciju (eng. discrete cosine transform - DCT). Na taj način slika se dijeli u blokove veličine 8x8 za svaku komponentu RGB sustava i nakon toga se pokušavaju pronaći oni blokovi u kojima je promjene vrijednosti piksela dovoljno niska kako bi se čitavi blok mogao zamijeniti jednim diskretnim koeficijentom kosinusne transformacije. U slučaju da je količina promjene previsoka, blok će se podijeliti u manjih 8x8 blokova tako dugo dok količina promjene nije na zadovoljavajućoj razini (dovoljno niska). Svaki diskretni koeficijent kosinusne transformacije aproksimira luminanciju (svjetlinu, tamnoću i kontrast) i krominanciju (boju) specifičnog dijela slike. JPEG format smatramo kompresijom slike s gubicima obzirom da slika koja je dobivena konverzijom nije u potpunosti identična svojoj originalnoj verziji, ali je svejedno vrlo bliska aproksimacija iste. U situacijama kada se JPEG koristi kao steganografski nositelj, umjesto bitova koji se zamjenjuju tijekom LSB supstitucije, ovdje se zapravo vrše promjene relacije spomenutih koeficijenata. Dobra većina tehnika transformacije domene ne ovisi o formatu slike pa samim time umetnuta tajna poruka ostaje sačuvana i nakon konverzije neovisno da li se radilo o formatima s gubicima ili bez gubitaka podataka. [1]
--Rkovac 00:10, 18. siječnja 2016. (CET)
Steganaliza
Steganaliza je proces u kome se detektiraju steganografske datoteke na način da se proučavanju različite varijacije uzoraka bitova i neobično velikih datoteka. Neki od istaknutih ciljeva steganalize su: [1]
- identificiranje sumnjivih skupova podataka (npr. signali ili datoteke) unutar kojih se potencijalno može nalaziti skrivena tajna poruka,
- utvrđivanje da li su umetnuti tajni podaci u steganografsku datoteku prethodno kriptirani,
- utvrđivanje postojanja šuma ili nebitnih podataka unutar sumnjivog signala ili datoteke i
- izdvajanje i dekriptiranje umetnute poruke iz steganografske datoteke.
Kategorizacija tehnika steganalize
Tehnike steganalize se mogu podijeliti u sljedeće kategorije: [1]
Neobični uzorci
Unutar steganografskih datoteka može se naići na neobični uzorke što nam na neki način sugerira na potencijalno skrivenu poruku unutar istih. Te neobične uzorke najlakše ćemo identificirati upotrebom različitih alata i tehnika. Istaknut ćemo za početak nekoliko mogućnosti. Primjerice, raznim alatima za analizu diska moguće je pronaći skrivene informacije u nekorištenim particijama. Nadalje, različiti filtri mogu nam poslužiti za identificiranje TCP/IP paketa koji opet mogu sadržavati skrivene podatke unutar svog zaglavlja. Pregledom teksta unutar nekog tekstualnog procesora također je moguće pronaći sitne nepravilnosti kod primjerice razmještaja riječi i redaka ili suvišne razmake koji opet sugeriraju na postojanje skrivene poruke. Slikovne datoteke mogu sadržavati izobličenja te varijacije u boji i luminanciji koje, nakon što se identificiraju nekim alatom, također upućuju na prisustvo skrivenih informacija.
Vizualna detekcija
Još jedan način na koji je moguće identificirati korišteni steganografski alat ili skrivenu informaciju jest analizom ponavljajućih uzoraka. Ispitivanje tih uzorakaprovodi se na način da se izvorni steganografski nositelj uspoređuje sa steganografskom datotekom koja sadrži skrivenu poruku. Takav napad naziva se napad s poznatim nositeljem. Takvim uspoređivanjem različitih steganografskih datoteka moguće je pronaći uzorke koji predstavljaju svojevrsni 'potpis' specifičnog steganografskog alata tj. vrlo je jednostavno identificirati alat. Ako u danom momentu izvorni steganografski nositelj nije dostupan, izvedeni potpisi dovoljni su za implikaciju postojanja skrivene poruke te identifikaciju steganografskog alata koji je korišten za umetanje tajne poruke. Detekciju takvih potpisa može se automatizirati korištenjem specijalnih alata za detekciju steganografije, a takvi alati obično koriste različite uzorke paleta i potpisa kako bi identificirali piksele koji odstupaju od neke standardne vrijednosti za određeni dio slike. Dodatni alarm postojanja skrivene informacije unutar slike možemo primjetiti kod njenog nadopunjavanja ili rezanja. Naime, kod nekih steganografskih alata događa se da slika ne odgovara nekoj predefiniranoj fiksnoj veličini pa se mora odrezati ili nadopuniti crnim plohama. Nadalje, razlike u veličini između steganografskog nositelja i steganografske datoteke te neobično velik ili malen broj jedinstvenih boja unutra palete slike također upućuju na mogućnost po stojanja umetnute poruke u slici.
--Rkovac 00:10, 18. siječnja 2016. (CET)
Oblici napada
Steganalitički napadi i analiza skrivenih podataka uključuju različite aktivnosti: detekciju, izdvajanje te onemogućavanje ili uništavanje skrivenih informacija. Vrsta napada ovisi isključivo o informacijama dostupnim steganalitičaru: [1]
- Samo steganografska datoteka (eng. Steganography-only attack) - dostupna je samo steganografska datoteka i nad njom će se providiti različite analize.
- Poznati nositelj (eng. Known-carrier attack) - raspoloživi su i steganografska datoteka i steganografski nositelj, tj. izvorna datoteka unutar koje je skrivena tajna poruka.
- Poznata poruka (eng. Known-message attack) - dostupna nam je tajna poruka.
- Odrabrana steganografska tehnika (eng. Chosen-steganography attack) - poznata je i steganografska datoteka i steganografski alat, odnosno algoritam koji je korišten za umetanje tajne poruke.
- Odabrana poruka (eng. Chosen-message attack) - poznati su nam poruka i steganografski alat, odnosno algoritam korišten za kreiranje steganografske datoteke. Svrha ovog napada jest utvrditi odgovarajuće uzorke u steganografskoj datoteci koji nam mogu ukazati na korištenje određenog steganografskog alata i algoritma.
- Poznati nositelj i odabrana steganografska tehnika (eng. Known-steganography attack) - raspoloživa je steganografska datoteka, steganografski nositelj te steganografski alat, odnosno algoritam koji je korišten za umetanje tajne poruke.
Skrivanje podataka u audio
Skrivanje podataka u audio datoteke sasvim su uobičajena stvar u svijetu steganografije. Primjerice, ako želimo nekome poslati tajnu poruku možemo ju sakriti u sliku, audio i video datoteku i poslati putem e-maila sadržaj. S adekvatnim ključem da dešifriranje poruke stvar je sasvim jednostavna dok će treća strana promatrati taj objekt kao običnu sliku ili audio datoteku.
Zanimljiva je činjenica da špijunske i terorističke organizacije koriste ove tehnike godinama, a postoje i zapisi da je Al Qaeda koristila ove tehnike na vlastitih web stranicama kako bi putem slika slala poruke vlastitim sljedbenicima.
Nakon što smo kompletirali instalaciju prikazat će se sučelje aplikacije. S lijeve strane je prikazani struktura direktorija na korisnikovom računalu i putem ovo djela možemo pristupati datotekama i odabrati nosioca tajne poruke.
Pritisak na gumb Settings gore pri vrhu otvara novi prozor s postavkama. Ovdje možemo podesiti jezik aplikacije, izlazni direktorij gdje će se smjestiti steganogram te format u našem slučaju .wav ili .flac. Važna napomena je ta da ne možemo korisiti .mp3 format, a jedini razlog je taj što .mp3 koristi kompresiju za razliku od prethodno spomenutog dvojca. Isto tamo možemo dodjeliti lozinku našem stegogramu pa i u slučaju da se napadač dočepa stegograma, potrebna mu je lozinka kako bi došao do tajne poruke. Isto tako preporuča se označavanje "Encrypt files" kako bi skriveni podaci bili kriptirani 256-bitnom AES enkripcijom.
Nadalje iz lijevog izbornika navigiramo do željenog direktorija i odaberemo audio datoteke u koje želimo sakriti naš tajni podatak. Zatim kliknemo na "Add files" da dodamo naš podatak koji će biti tajni.
Pritiskom na gumb "Encode" dobit ćemo naš steganogram. Ova datoteka će zvučati isto kao i originalni nositelj i treća strana ne može detektirati da je unutra skriveni podatak. Ukoliko treća strana želi podatak unutra, trebat će ju dekriptirati s lozinkom koju samo mi znamo.
Nakon izvjesnog perioda osoba koja je primila od nas ovaj steganogram trebat će taj tajni podatak pa će ga u skladu s time trebati dekodirati. Uz pretpostavku da osoba koristi DeepSound poput nas, jednostavno uz pritisak na gumb "Extract secret files" otvorit će se novi prozor za unus lozinke te nakon što i daj korak odradi, našoj osobi je u potpunosti na raspolaganju podatak.
Literatura
[1] Steganografija, http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2006-04-154.pdf preuzeto 17.1.2016.
[2] Johnson N. F., Katzenmeisser S. C., A survey of steganographic techniquest, http://bilder.buecher.de/zusatz/22/22359/22359536_lese_1.pdf preuzeto 17.1.2016.
[3] Zeljković, S., Steganografija, http://e.math.hr/stegano/index.html preuzeto 17.1.2016.
[4] Radanović, G., Steganografija i steganaliza digitalnih slika, Sveučilište u Zagrebu Fakultet elektronike i računarstva, diplomski rad http://os2.zemris.fer.hr/ostalo/2010_radanovic/stego_naslovna.html preuzeto 17.1.2016.
[5] WonderHowTo., The Hacks of Mr. Robot: How to Hide Data in Audio Files, http://null-byte.wonderhowto.com/how-to/hacks-mr-robot-hide-data-audio-files-0164136/ preuzeto 17.1.2016.
[6] Matešin B., Vukosav I., Vuković J., Steganografija metodom raspršenog spektra direktnog slijeda, https://www.fer.unizg.hr/_download/repository/Steganos.pdf preuzeto 17.1.2016.