„Cine se pricepe sa încuie, nu are nici broasca, nici lacat, dar poarta nu o poate nimeni deschide"
Dao De Jing

Steganografia

De Razvan Peteanu

În odaia de taina a regelui intra, în cele din urma, solul misterios, cu buzele si urechile pecetluite din nastere, pe care aliatul politic îl trimisese cu o veste extrem de importanta. Inamicul care îi despartea prinsese de veste de existenta soliei si nu o data, pe parcursul calatoriei, tâlhari îl oprise ra si îi scotocisera prea minutios cuferele si îl perchezitionasera prea sistematic pentru a mai crede într-un ghinion repetat. Totusi, ni mic banuitor nu fusese gasit asupra lui si îl lasasera în viata. Iata ca tehnica învatata de la sfatuitorul de taina se dovedise eficace. Nimeni nu ar fi banuit ca el adusese într-adevar un mesaj ascuns pentru rege...

Derivat din limba greaca, cuvântul steganografie înseamna „scriere ascunsa", o colectie de tehnici, vom vedea, care mai de care mai originale, dedicate camuflarii unui mesaj astfel încât, chiar daca mediul de comunicatie este interceptat, existenta vreunui alt transport de informatie decât cel implicit al mediului sa fie ne detec tabila.

Mic manual de istorie a spionajului

Steganografia este chiar mai veche decât criptografia si nu este greu sa întelegem de ce: subiectiv, siretenia este mai raspândita decât inteligenta, iar obiectiv, acum 2000 de ani se punea problema trimiterii unei solii de taina, dar mai putin a criptarii textului de pe papirus.

Herodot este printre primii istorici care mentioneaza o tehnica steganografica: Demeratus dorea sa îi avertizeze pe spartani ca Xer xes planuia invadarea Greciei. Pentru a nu avea surprize la granita, tableta de lemn acoperita cu ceara – folosita curent de curieri – a fost razuita de stratul moale de ceara, mesajul a fost incizat în lemn, iar tableta a fost reacoperita cu ceara, parând nefolosita. Solul a scapat, altfel nu se auzea de el... Ulterior, tableta a fost înlocuita cu... capul solului: acesta era ras, pe piele se inscriptiona mesajul apoi parul era lasat sa creasca, acoperind complet literele. Solul probabil mergea regulat pentru un „tuns zero" în regatul vecin!

Inventarea cernelurilor simpatice, vizibile doar în ultraviolet sau dupa o developare, a deschis un capitol nou în spionaj, si scrisorile inocente purtând între rânduri date secrete au proliferat. Tot în domeniul textului scris, ascunderea unui mesaj prin crearea unui text ale carui cuvinte începeau fiecare cu câte o litera a mesajului original a fost o tehnica steganografica larg raspândita, mai ales prin intermediul anunturilor de mica publicitate prin care spionii aflati dincolo de linia frontului putea comunica anunturi scurte. Germanii au mers mai departe, prin dezvoltarea tehnicii micropunctului prin care o întreaga pagina A4 era redusa la dimensiunea unui punct, aplicat ulterior pe un pliant oarecare sau pe coltul lentilei de la ochelari.

O metoda înrudita cu steganografia este utilizata de câteva decenii în transmisiile radio militare si mai recent si civile: frecventa de comunicatie este schimbata, printr-un algoritm pseudo-aleator, de sute sau mii de ori pe secunda. Daca inamicul asculta doar anumite frecvente, indiferent care ar fi acestea, nu va putea detecta prezenta vreunei comunicatii, caci transmisiile cu spectru împrastiat (spread spectrum) produc semnale mult mai slabe decât zgomotul inerent prezent pe un canal radio.

Ce ochiul nu vede si urechea nu aude

Motivul pentru care acest articol apare într-o revista de informati ca este usor de intuit: prelucrarea digitala a adus un impuls extra or dinar steganografiei. Mediul preferat de transport a devenit imagi nea - si, mai recent, sunetul – din mai multe considerente:

  1. alterarea usoara a unui astfel de fisier nu este deranjanta, uneori nici macar perceptibila
  2. inserarea/extragerea mesajului ascuns este o sarcina banala din punct de vedere algoritmic si
  3. schimbul de imagini este o activitate extrem de raspândita si, ca atare, un mediu ideal pentru steganografie.

Steganografia algoritmica foloseste cel mai adesea drept suport fisiere imagine sau audio, speculând imperfectiunile organelor umane de simt. O imagine obisnuita în tonuri de gri (grayscale) utilizeaza un octet / pixel pentru pastrarea nivelului de gri. Conside rând mesajul secret ca un sir de biti (nu de octeti), am putea stoca fiecare dintre acesti biti în cel mai putin semnificativ bit (LSB) al fiecarui pixel. Astfel, nivelul de gri este modificat cu cel mult o trea pta (din maximum 256 posibile), modificare prea mica pentru a fi sesizabila, mai ales în lipsa originalului. În imaginea înteleptului Yoda din Star Wars a fost ascuns programul PKLITE.EXE (din simplul motiv ca s-a nimerit sa fie primul fisier de marime potrivita pe care l-am gasit pe disc). Camuflarea este atât de reusita încât primul impuls a fost sa verific daca nu cumva operatia a esuat si am obtinut tot imaginea originala.

Fisierele grayscale sau cele indexate cu 256 de culori pot ascunde un numar de biti egal cu numarul pixelilor. O imagine RGB, având 3 octeti/pixel, are o capacitate de stocare tripla. Atentie însa la forma tul ales pentru transportul imaginilor, mai ales prin Internet unde se doreste reducerea la minim a marimii fisierului: un format po pu lar pentru imagini RGB/grayscale este JPEG pentru ca ratele de compresie sunt foarte mari. Formatul JPEG este total contraindicat steganografiei bazata pe codarea în cel mai putin semnificativ bit din pixel, deoarece compresia utilizata de algoritmul JPEG este una care foloseste aproximatii, imaginea decomprimata fiind diferita de cea originala.

De-a v-ati ascunselea...

Steganografia fiind destinata ascunderii existentei unui mesaj, camuflarea trebuie înteleasa la nivelul întregului proces si nu doar la nivelul rularii unui program. Un mesaj de e-mail continând o imagine GIF de 1000x1000 de pixeli, destinat sa ascunda aproape un 1M este suspect prin lungimea neobisnuita. Pentru a defini o minima terminologie, vom numi „container" mesajul aparent care este transmis si „mesaj" chiar mesajul real, ascuns.

Câtiva pasi elementari sunt necesari pentru un James Bond asezat în fata unui PC:

Alegerea unui container (grafic, audio, etc.) suficient de mare încât sa poata înmagazina mesajul;

Containerul sa nu fie distorsionat sensibil de mesajul secret. De exemplu imagi nile de sinteza care contin zone mai mari uniform colorate nu sunt adecvate, deoarece „zgomotul" introdus de mesaj va fi vizibil si poate atrage atentia unui ochi versat;

Nu întotdeauna o variatie de un bit produce o modificare greu sesizabila! De exemplu, paleta de culori a unei ima gini indexate (vezi Byte România, februarie 1997) nu contine neaparat culori adiacente în spectru. Apusul de soare este vi zi bil afectat de ascunderea fisierului WIN.INI prin introducerea unor pixeli albastri si verzi pe un fundal galben. Solutii sunt mai multe: încercarea altor imagini, utilizarea unui format grayscale sau true-color sau adaptarea paletei. Despre aceasta din urma solutie, vedeti textul despre DeBabelizer Pro aparut în numarul precedent din Byte România;

Nu va bazati exclusiv pe steganografie pentru a secretiza un mesaj! În cripto grafie exista principiul lui Kerckhoff care se aplica perfect si în cazul de fata: în tenta tiva de trimitere a unui mesaj confidential se pleaca de la premisa ca inami cul cunoaste atât procedeul, cât si detalii le de implementare, singura sursa de protectie a mesajului fiind cheia de criptare, cunoscuta doar de utilizatorii autorizati. Fara aceasta cheie, inamicul nu trebuie sa poata decripta mesajul, în cazul steganografiei aceasta însemnând ca în lipsa cheii existenta unui mesaj ascuns sa nu poata fi banuita. Pentru ca suportul sa reziste la analiza statistica, includerea mesajului nu trebuie sa produca modificari fata de cele induse de zgomotul canalului/mediului din care provine suportul. De exemplu, ascunderea unor fisiere în piesele de pe un CD audio trebuie sa produca distorsiuni cu aceleasi caracteristici statistice ca si cele datorate convertorului analog-digital folosit la înregistrarea audio originala. Similar, transmisia prin radio în care datele sunt aparent paraziti trebuie sa se conformeze modelului perturbatiilor radio reale. De aici, o întreaga teorie a dispersiei bitilor mesajului în cadrul containerului si de analiza a containerelor pentru a avea „la îndemâna" suporturi pentru mesaje cu diferite caracteristici;

Implicit în cadrul spionajului, un alt strat de protectie este criptarea mesajului. Dealtfel, unul din scopurile principale ale acestei operatii este transformarea unui mesaj într-o secventa aleatoare de date si de aceea criptarea este strâns legata de pasul precedent. Subiectul cripto grafiei depaseste articolul de fata, dar, ca regula generala, folositi programe consacrate (de pilda Pretty Good Privacy, disponibil pe Internet) si nu algoritmii „originali, rapizi si imposibil de spart" inclusi eventual în programul de steganografie sau în produsele shareware. O masura suplimentara de protectie este eliminarea din mesaj a antetului fisierului, care permite identificarea aplicatiei cu care acesta a fost generat, marind astfel spatiul de cautare al celor care au interceptat comunicatia. În practi ca va exista întotdeauna un compromis între costul criptarii si nivelul de secretizare dorit;

Înainte de a trimite fisierul, verificati daca extragerea mesajului secret are loc fara probleme. Doar e vorba de mesaje importante, nu?

Dincolo de multimedia

Pâna acum am discutat cu predilectie despre suporturile grafice si audio, dar aceasta nu înseamna nici pe departe ca acestea sunt unicele disponibile steganografiei compu terizate. Fiind vorba de ascunderea unor informatii, este vorba si de imaginatie în dezvoltarea unor tehnici noi. De exemplu, datele pot fi pastrate în zonele neutilizate în mod normal al unui disc floppy.

Un text poate fi si el folosit drept container. Am mentionat deja cazul în care initialele (sau tot a N-a litera, sau ultima etc.) cuvintelor dintr-un text formeaza mesajul secret. O dezvoltare a sistemului este metoda prin care fiecarui simbol din alfabetul mesajului i se asociaza un set de cuvinte, cât mai larg posibil, containerul fiind un text scris cu cuvintele din aceste seturi. Dezavantajele sunt datorate atât cerintei unui dictionar de conversie, cât si caracterului cel mai adesea artificial al textelor obtinute astfel. Aparentele mai pot fi salvate daca textul-container este prezentat drept poezie moderna sau literatura experimentala, dar impresia depinde si de gradul de familiaritate al ascultatorului neautorizat. Este foarte posibil ca un critic literar sa nu fie de acord cu cele afirmate mai sus.

O idee ingenioasa a fost folosita la începutul anilor '80, când din interiorul guvernului Thatcher se scurgeau informatii confidentiale. Pentru a se afla sursa, fiecare editor de text din Downing Street 10 a fost configurat cu un mod de aliniere (justification) diferit. Dupa ce documente interne au mai fost reproduse în facsimil în presa, anali za spatierii dintre cuvinte si dintre linii a dus la identificarea angajatului vinovat.

Exemplul anterior dezvaluie si o utilizare mai „pasnica„ a steganografiei: marcarea documentelor. Aplicatia este direct legata de subiectul drepturilor de autor în lumea moderna, în care o opera de arta audio-vizuala poate fi creata si poate exista doar digital. Publicarea unei imagini pe Web permite oricui sa o copieze si sa o utilizeze în scopuri comerciale la antipozi, fara ca autorul sa poata avea un control. Solutia este varianta moderna a filigranului (watermark): prin procedee steganografice în opera de arta este inclusa informatia de copyright. Problema este chiar mai comple xa decât simpla ascundere, caci aceasta informatie trebuie sa se pastreze invarianta fata de prelucrarile uzuale la care poate fi supusa lucrarea. Din acest motiv, semnatura digitala are caracteristici statistice defini te, pe Internet existând deja servere publice dedicate la care artistii se pot înregistra si pot primi o semnatura. Pus în fata unui produs audio-video de origine suspecta, un editor al unei reviste poate extrage informatia de copyright din imagine si verifica daca are într-adevar de a face cu o opera originala. Ultima versiune a editorului Adobe Photoshop, 4.0 include un plug-in produs de Digimarc destinat exact acestei marcari a imagi ni lor.

Marcarea documentelor nu se limiteaza doar la arta: chiar si executabilele pot fi mar ca te, prin tehnici similare celor folosite de virusii polimorfici, pentru a depista persoa na dintr-o organizatie care duce în exterior software de uz intern sau pentru a urmari traseele prin care softul este copiat si difuzat de pirati.

Do it yourself

Dupa atâta teorie, veti dori probabil sa încercati practic unele dintre metodele de mai sus. Poate mai putin cea cu rasul în cap... Pe Internet veti gasi mai multe programe de steganografie, în general axate pe ascunderea mesajelor în imagini, eventual fisiere audio. Am testat doua dintre ele, ambele freeware. Pe cei interesati în evaluarea unui set mai mare de programe, îi rog sa se uite pe Web. Astfel de evaluari exista, dar sunt sub semnul copyright-ului si nu le pot reproduce aici.

Primul program vazut se numeste Hide & Seek 4.1 (De-a v-ati ascunselea, pe limba noastra) scris de Colin Maroney în 1994. Meritul lui cel mai mare consta în faptul ca este însotit de sursele complete si poate constitui un punct de start pentru cei care vor sa-si dezvolte propria aplicatie. Altfel, Hide & Seek permite drept containere doar GIF-uri de format 320x480, o limitare extrem de serioasa: pe lânga faptul ca mesajele nu pot avea mai mult de 320*480/8=19200 octeti, trebuie sa folositi imagini de dimensiuni fixe. Totusi, uneori face o treaba buna, cum e cazul imaginii cu Yoda. Imaginea originala era 640x380 si a trebuit sa o decupez. Hide & Seek protejeaza antetul cuprinzând informatii despre mesajul secret prin algoritmul IDEA (veti gasi sursele si pentru partea de criptare). Cheia are însa o lungime maxima de 8 caractere astfel ca, data fiind si restrictia tipului si marimii containerului, programul este mai mult educativ.

Mult mai bun este S-Tools 4.0 (pentru Windows 95, dar exista variante precedente si sub 3.x) scris de Andrew Brown în 1996. Containerele pot fi imagini GIF sau BMP ori fisiere audio în format WAV. Interfata este extrem de facila: cu un drag&drop în fereastra S-Tools se defineste containerul, iar un al doilea drag&drop peste imagine cu fisierul-mesaj porneste procesul de ascundere. Mesajele pot fi comprimate în preala bil. Ele vor fi criptate oricum, printr-unul din algoritmii IDEA, DES, Triple DES sau MDC. Într-un container pot fi ascunse mai multe mesaje, chiar simultan. S-Tools încearca si sa reduca dimensiunea paletei de culori folosita de imaginea originala pentru a lasa astfel loc culorilor nou aparute prin alterarea produsa de mesaj. Dupa cum se observa în imaginea alaturata, ascunderea aceluiasi WIN.INI însotita de reducerea paletei la 32 de culori a dus la un rezultat mai putin batator la ochi, la propriu si la figu rat, decât cel obtinut cu Hide & Seek.

www.paranoia.com, www.infowar.com etc.

Ca si în cazul criptografiei, jocul dintre soarece si pisica se regaseste si pe tarâmul steganografiei. Cu deosebirea ca aici el este mai subtil, mai alunecos decât confruntarea directa, matematica, a algoritmilor criptografici. Situri ca cele mentionate mai sus exista pentru a ne pune în garda dar si pentru a ne aminti ca psihoza nu e neaparat departe. Chiar asa, puteti fi absolut siguri ca acest articol nu e doar un container pentru un mesaj ascuns?

Razvan Peteanu poate fi contactat prin e-mail la adresa rpeteanu@mb.sorostm.ro

(C) Copyright Computer Press Agora