Fin dai tempi più antichi l’uomo ha cercato mezzi idonei per mascherare messaggi che veicolavano contenuti riservati. La steganografia, parola che deriva dal greco <stéganos> “nascosto” e <gràfein> “scrittura”, è la capacità di nascondere un messaggio segreto all’interno di uno pubblico che veicola un significato completamente diverso e che funge da contenitore. A differenza della crittografia che ha lo scopo di rendere difficile il riconoscimento di un’informazione segreta e impedirne la decodifica, la steganografia si pone l’obiettivo di celare l’esistenza stessa del messaggio e quindi di prevenire il sospetto della sua stessa esistenza. Approfondiamo la storia di questa disciplina, data l’importanza attuale della sua applicazione in ambito cyber security.
Indice degli argomenti
La steganografia nell’antichità
Per capire le origini della steganografia, un esempio é riconducibile ai tatuaggi provvisori che venivano spesso usati in Grecia già ai tempi di Erodoto. Lo storico racconta come spesso gli schiavi venissero rasati per poter tracciare sulla loro pelle un messaggio in codice che si sarebbe celato con la ricrescita della capigliatura. Recandosi presso il ricevente, il messaggio nascosto poteva essere recapitato in modo sicuro e letto dopo una nuova rasatura. Con i Romani viene concepita l’idea di collocare il messaggio riservato tra le righe di un testo scritto usando un tipo di inchiostro simpatico per celarne l’esistenza come cita Plinio il Vecchio.
Dovranno trascorrere diversi anni però prima che il mezzo steganografico trovi un ‘applicazione più flessibile e modulata sulle necessità reali di chi ne facesse uso. Con l’invenzione della carta da corteccia in Cina nell’anno 100 d.c circa e dopo la sua introduzione in Europa nel Medioevo, la tecnica steganografica fiorisce e si diffonde, sviluppandosi in diverse tipologie di applicazione dovute alle diverse necessità poste dal testo scritto. Ed é così che nel Rinascimento vengono create nuove applicazioni per rendere più duttile e fruibile la codifica di messaggi cifrati come, per esempio, l’utilizzo delle lettere maiuscole di ogni parola componente una generica missiva per ricomporre un messaggio riservato di senso compiuto. Due esponenti illustri di questa metodologia sono G. Trithemius e G. Cardano.
Il metodo di Trithemius
Johannes Trithemius, il cui nome di nascita é Johann Heidenberg, può essere considerato il primo autore di un vero trattato sulla steganografia. Nacque a Tritenheim in Germania (da cui prenderà il nomignolo di “Trithemius”) nel 1462 da una famiglia di nobili origini. Nonostante la prematura morte del padre e le seconde nozze della madre con una persona che ostacolò i suoi studi, il giovane Heidenberg riuscì in breve tempo ad imparare il Greco, il Latino e l’Ebraico. A 17 anni fuggì da casa e vagabondò in varie regioni europee, prima di giungere nella città faro della cultura tedesca, Heidelberg dove si iscrisse agli studi universitari. Un giorno nel tornare alla sua citta’ natale fu sorpreso lungo la strada da una forte improvvisa tormenta di neve che lo costrinse a cercare rifugio in un convento benedettino nel villaggio di Sponheim. Accolto dai frati decise di rimanere per sempre lì, dove ne divenne prima novizio poi alla morte dell’abate in carica, fu nominato successore nel 1483 a soli 21 anni. Fin da subito si diede da fare per trasformare l’abbazia in luogo di cultura, curandone in particolare la biblioteca e scrivendo lui stesso molti libri storici. La sua fama si estese rapidamente fuori dalle mura sia come santo che come mago e proprio le accuse crescenti di magia porteranno il convento alla ribellione contro di lui nel 1506. Si allontanò allora per assumere la direzione di un’altra abbazia a Wurzburg dove rimase fino alla sua morte. Nella cappella di questa abbazia venne seppellito nel 1516.
Il suo più famoso trattato, intitolato per l’appunto Steganographia riporta un significativo sottotitolo che richiama alla volontà dello scrittore di raccogliere e condividere con il lettore le strategie di occultamento di messaggi cifrati personalmente codificate nel corso dei suoi lunghi studi: “Hoc est: ars per occvltam scriptvram animi svi absentibvs aperiendi certa”, cioè “l’arte di aprire la propria volontà a persone lontane per mezzo di scrittura occulta”. Scritto nel 1499 ma pubblicato postumo solo nel 1606, fu messo nell’Indice dei Libri Proibiti e riabilitato solo nel 1900. Considerato un trattato di magia, fu scritto in ben tre volumi. Nei primi due libri descrisse varie tecniche di steganografia ma nel terzo libro si abbandono’ solo a descrizioni simboliche di spiriti e segni astronomici e tabelle di dati planetari, un libro quindi che si pote’ definire giustamente “occulto”. Il terzo libro riporta inoltre una serie di tecniche di trasmissione di messaggi senza l’uso di simboli particolari e senza necessità di portatori di messaggi, ovvero facendo uso di spiriti per trasmettere a distanza tali messaggi. Trithemius usò nomi demoniaci da recitare prima di trasmettere questi messaggi, così le accuse di essere compagno di demoni aumentarono. Altri studiosi ritengono possibile la presenza di crittogrammi nel terzo libro, ma ancora misterioso è il motivo per cui Trithemius scrisse il testo in termini magici ben sapendo come sarebbe stato mal interpretato dai suoi contemporanei. Trithemius rimase sempre diviso tra magia, scienza e storia, alimentando i dubbi e sospetti sul suo operato cosi per lungo tempo. I suoi scritti circolarono tra personalità come John Dee e Giordano Bruno. Lui stesso fu in contatto diretto con altre personalità occultiste come Enrico Cornelio Agrippa (mago, scrittore, occultista, teologo, astrologo e alchimista tedesco) che era stato all’inizio un suo studente.
L’opera di Cardano
Girolamo Cardano nacque a Pavia nel 1501 e come molti illustri esponenti del Rinascimento, fu matematico, medico, astrologo e filosofo. Fu il padre che lo avviò allo studio della matematica di cui scriverà un famoso trattato noto come Ars Magna, il primo testo in Latino sull’Algebra. Ebbe una vita avventurosa e molto travagliata, di cui rimane testimonianza la sua autobiografia (De vita propria), pubblicata postuma nel 1643. Fu professore di Medicina a Pavia all’apice del successo. Cardano scrisse nel 1570 un oroscopo di Gesù e un libro in difesa di Nerone. Per questo venne accusato di eresia, condannato e tenuto in carcere, dovette abbandonare la cattedra all’univesità di Bologna, per cui si trasferi a Roma dove morira’ due anni dopo nel 1576.
Inventerà il famoso giunto cardanico , la sospensione cardanica e la serratura a combinazione e si occupera’ anche di crittografia. Nel campo della steganografia invento’ nel 1550 un particolare metodo ingegnoso, detto “delle griglie” per poter nascondere un messaggio all’interno di una lettera. Si deve innazitutto realizzare un quadrato (numero 1) con alcune finestrelle aperte ed altre chiuse. Le lettere vengono scritte nelle finestrelle aperte, quindi la griglia rimossa, e gli spazi tra le lettere devono essere riempiti con altre lettere per comporre parole di senso compiuto, creando cosi’ un falso messaggio. La griglia applicata al messaggio cifrato rivelava subito il messaggio originale. Si potevano usare anche griglie rotanti per complicare ulteriormente il messaggio celato.
Steganografia durante le Guerre Mondiali
Durante la Prima Guerra Mondiale si fa ancora uso di queste tecniche di steganografia, ovvero l’utilizzo di lettere particolari dentro un messaggio apparentemente senza significato, mentre nella Seconda Guerra Mondiale, si inventano nuovi sistemi di scrittura nascosta come piccolissimi puntini sopra le lettere di un messaggio ad indicare, se visti in controluce le reali lettere del messaggio nascosto, oppure si passerà all’utilizzo di inchiostri cosiddetti simpatici, ovvero che solo con il riscaldamento del foglio possono rivelare le lettere altrimenti invisibili, oppure ancora si metteranno in atto altri trucchi come scegliere le terze parole di ogni frase per poter decodificare un messaggio segreto.
La situazione oggi
Nei tempi odierni, la steganografia ancora esiste, ma viene applicata al mondo digitale. Possiamo dare un esempio prendendo una generica foto. Una foto puo’ essere rappresentata da numeri, perché consiste di tanti puntini (pixel). Ogni pixel, è definito da un numero che indica la sua brillantezza. Un messaggio puo’ essere facilmente nascosto dentro una foto. Ad esempio, prendiamo il messaggio “OK” che ha codice ASCII ( 100001 1001011). Nascondiamo questo messaggio nel seguente modo: si cambiano I primi 14 numeri (pixels) con 1 e 0 opportunamente disposti in modo che abbiano corrispondenza dispari=1 e pari=0, Questi 14 pixels ora diventano automaticamente il messaggio “OK”. La fotografia rimane inalterata all’occhio umano perché non si riescono a captare queste piccole modifiche. Il ricevente del messaggio sapra’ invece cosa cercare e dove poter ricuperare il messaggio “OK”.
In generale, prendendo una foto a colori (3 canali, RGB) di 2048×3072 pixel a 24 bit (3 byte per pixel), usando I bit “meno significativi” (1 ogni 8) si hanno 2,3MB disponibili per nascondere il nostro messaggio segreto come risulta dal calcolo: (2048 * 3072 * 3) / 8.
I tool per la steganografia
Oggi esistono molti programmi disponibili liberamente come software open-source che realizzano in automatico la steganografia, cioè permettono di nascondere un messaggio di testo all’interno di una foto, oppure di un file mp3 o un file video. Ad esempio OpenStego, un programma Open source che permette di nascondere un file .txt in una normale immagine (.jpg) , usando una password segreta che dovrà essere nota al destinatario per recuperare dall’immagine ricevuta il messaggio segreto incorporato tramite il file .txt. Le ultime tendenze nel campo della steganografia sono tecniche per nascondere dati nelle reti di telecomunicazione. Si dividono essenzialmente in due filoni di ricerca:
Intra-protocollo: metodi cioè che usano un protocollo di comunicazione per nascondere informazioni e inter-protocollo, vale a dire metodi che usano piu’ di un protocollo per fare questo. In pratica si tratta di tecniche che usano I campi non utilizzati o poco noti dei protocolli di comunicazione (intestazioni dei pacchetti del livello Applicativo del modello OSI ad esempio, o piu’ in generale i bit non utilizzati nei pacchetti TCP/IP).