...

crittografia

by user

on
Category: Documents
48

views

Report

Comments

Transcript

crittografia
Sicurezza dei Sistemi Informatici
Crittografia - Steganografia
Docente:
Prof. Giuseppe Mastronardi
Sommario
Introduzione
La Crittografia
La Steganografia
Algoritmi per l’implementazione del
software
Descrizione e visualizzazione delle
simulazioni
Conclusioni e sviluppi futuri
Obiettivo
Introduzione ed realizzazione di tecniche di stegano-crittografia:
Simulazione dei processi crittografici sincronizzati alla steganografia delle
immagini
Valutazione dei risultati sperimentali
Introduzione
Privacy e sicurezza sono termini sempre più ricorrenti nel nostro vocabolario di uso comune
considerando anche che grandi aziende multinazionali vi investono miliardi di dollari.
I militari hanno sicuramente giocato il ruolo più importante in quanto la crittografia (dal greco
kryptos, nascosto, e graphein, scrivere) applicata a scopi bellici ha rappresentato per molti
secoli un'arma determinante nelle mani di coloro che sapevano come usarla.
Introduzione
Da recenti indagini è emerso che si chiama "steganografia" la scienza più amata dai
Bin Laden di tutto il mondo e, come già indica l'etimologia (dal greco "stèganos",
nascosto, e "grafèin", scrivere), nella sua versione tecnologica consente di
nascondere all'interno di file digitali, immagini o suoni che siano, ogni tipo di
messaggio segreto. Invisibili a occhio (od orecchio) nudo ma decodificabili senza
troppi problemi a chi sa dove andarli a cercare su reti globali come Internet.
Introduzione
Come ben sappiamo dalle ultime notizie l’importanza della sicurezza ha coinvolto anche
la F1 punta dell’iceberg.” Dalla pista, ormai, il verdetto è arrivato: le Frecce d'argento
hanno battuto il Cavallino rampante, a meno di improbabili ribaltoni tecnici da qui alla
fine della stagione. A Maranello hanno incassato con stile la sconfitta in gara ma fanno
sapere che di pace preventiva non se ne parla ed è stato lo stesso Jean Todt,
amministratore delegato del Cavallino, a confermare come la Ferrari sarà in grado di
produrre nuove prove a carico della scuderia rivale da portare in dote al Consiglio
mondiale della Fia, la Federazione Internazionale dell'Automobilismo”.
Le prove sono sottoforma di e-mail, messaggi via Sms, appunti, disegni e quant'altro
dove non è da escludere l’impiego di tecniche stegano-crittografiche.
Introduzione
Il libro Codice da Vinci ha incassato assieme al film cifre record facendo ritornare più che
mai di moda il tema dei segreti dell’antichità e di personaggi illustri come Leonardo da
Vinci. Le analogie con la steganografia emergono quando si racconta che all’interno della
Gioconda ci sarebbero delle indicazioni misteriose dello stesso autore.
La Crittografia: cenni storici
La Crittologia ingloba in se termini più specifici:
Crittografia: protezione dei messaggi.
Crittanalisi: violazione della protezione o “crittazione”.
La cifratura è la trasformazione del messaggio in un crittogramma mentre l’antitrasformazione
è detta decifratura
La crittografia è una scienza antichissima utilizzata per nascondere messaggi tra regnanti,
imperatori, nobili.
● Nell'epoca dell'impero romano e di Giulio CESARE, quando ancora pochi sapevano leggere
e scrivere, per comunicare con i sui generali, egli sostituiva ad ogni lettera del messaggio
un'altra lettera con un certo numero di posizioni più avanti nell'alfabeto. Per l'esattezza
utilizzava la chiave “3”, tutte le lettere venivano scalate di tre cifre: la A diventava D, la B
diventava E, la C diventava F e così via. Un metodo semplicissimo ma per quell'epoca più
che rivoluzionario. La debolezza di questo codice sta nel fatto che si possono utilizzare solo
25 chiavi, cioè tante quanto le lettere dell'alfabeto. Comunque è da questo cifrato che
iniziano i miglioramenti e l'evoluzione della crittografia.
La Crittografia: cenni storici
●
●
●
VIGENERE: è stato inventato da Blaise De Vigenere nel 1586, si tratta di un codice a
sostituzione polialfabetica. E' un'estensione più moderna (per l'epoca) del codice di
Cesare, dove al posto di spostare le lettere di una stessa quantità, venivano spostate in
base alla chiave.
ATBASH: consisteva nel cifrare la prima lettera dell'alfabeto ebraico con l'ultima. La seconda
con la penultima e così via.
Dispositivo di JEFFERSON: Thomas Jefferson, all'epoca Segretario di Stato americano, in
seguito divenuto Presidente, inventò un sistema composto da cilindri e dischi ruotanti
intorno ad un asse. Il cilindro era lungo 15 cm e largo 4. Questo cilindro era formato da 36
ruote della stessa misura. Ognuna di esse aveva all'esterno tutte le 26 lettere dell'alfabeto
ma con ordine casuale, e diverso nelle varie 36 ruote. Ogni ruota aveva un numero.
Il testo cifrato veniva composto inserendo le varie ruote in un ordine prestabilito (è
proprio quest'ordine che rappresenta la chiave da comunicare al destinatario).
In questa immagine il dispositivo di JEFFERSON.
La Crittografia: cenni storici
●ENIGMA: fu l'ultimo passo prima della crittografia moderna. Fu ideato dall'ingegnere
tedesco Arthur Scherbius. Era una macchina elettromeccanica composta da ruote con i
caratteri incisi sul bordo, e con contatti elettrici in corrispondenza delle lettere su entrambi
i lati. Il testo in chiaro, digitato su una tastiera, veniva riprodotto utilizzando i caratteri
della prima ruota, la quale a sua volta costruiva un nuovo alfabeto utilizzando i caratteri
della seconda, e poi della terza, e così via. Tutte le ruote, e potevano essere parecchie,
venivano "scalate", in modo che la sostituzione delle lettere fosse ogni volta diversa. La
chiave consisteva nel settaggio iniziale delle ruote, che potevano essere posizionate in una
quantità di posizioni diverse tanto alte quante più erano le ruote utilizzate.
Tra il 1939-1940 un gruppo di matematici inglesi guidati da Alan Turing (l'ideatore della
macchina astratta di calcolo) progettarono e costruirono una
macchina, chiamata Bombe, con cui riuscirono a decifrare i messaggi tedeschi.
Fu attaccato anche dal matematico polacco Marin Rejewsky che con il suo lavoro permise
di decifrare numerosi messaggi militari tedeschi, uno dei passi che contribuì alla vittoria
degli Alleati.
●Cifrario di VERNAM ad inventarlo fu G.S. Vernam. E' uno dei più potenti metodi di
crittografia. La chiave deve essere una sequenza casuale di caratteri ed avere una
lunghezza uguale o superiore al testo in chiaro. Così facendo è matematicamente
impossibili decifrare il testo criptato. Questo sistema fu utilizzato durante la Guerra Fredda fra i
Presidenti USA-URSS.
La Crittografia: evoluzione
Un algoritmo di crittografia riceve un testo da codificare (detto testo in chiaro o Plain-text) e lo
trasforma, attraverso la chiave, in un testo cifrato (Cipher-text) apparentemente
incomprensibile.
cifratura: M = Ck(Mc)
decifratura: Dk(Ck(M)) = M
M è il messaggio da cifrare, C è l'algoritmo di codifica, D quello di decodifica e k la chiave
per i due algoritmi. I metodi di crittografia di questo tipo, cioè che utilizzano la stessa chiave
per la codifica e la decodifica sono detti a chiave segreta (o simmetrici), altri metodi che
utilizzano due chiavi diverse per la codifica e la decodifica vengono detti a chiave pubblica (o
asimmetrici).
La Crittografia: evoluzione
Gli algoritmi simmetrici usano un sistema per cifrare che può essere a flusso o a
blocchi. Se a flusso, il codice cripta un bit, byte o una parola alla volta. Se a blocchi, viene
applicato ad un gruppo di bit, byte o parole.
Gli algoritmi simmetrici a blocchi principali sono:
-BLOWFISH algoritmo creato da Bruce Schneier. L'autore ha implementato nel cifrario
varie tecniche, fra cui Feistel network, S-box dipendenti da chiavi, funzioni non invertibili ed
altro ancora. In sostanza è uno dei più sicuri.
-DES la descrizione del DES si trova più avanti.
-IDEA descrizione nelle pagine seguenti.
-RIJNDAEL sistema di crittografia sviluppato dai matematici belgi Joan Daemen e
Vincent Rijmen su richiesta della Advanced Encryption Standard (AES), fa uso di chiavi
di lunghezza variabile (128, 182 e 256 bit). Viene nominato come standard AES, in
sostituzione del DES. E' implementato via software in molti linguaggi: C/C++, Java, Lisp,
Phyton ed anche in Perl e Javascript.
-SERPENT algoritmo progettato da Ross Anderson, Eli Biham e Lars Knudsen, su
richiesta della AES. Il Serpent adopera chiavi di 256 bit su blocchi di 128 bit, ed ha resistito
alla crittoanalisi lineare e differenziale. Contiene delle permutazioni iniziali e finali, così
come il DES.
La Crittografia: evoluzione
-DSA acronimo di Digital Signature Algorithm inglobato nel Digital Signature Standard
(DSS), è un cifrario usato per generare le firme digitali, più debole rispetto ad esempio
all'RSA. Il software GnuPG lo usa con ELGAMAL per la creazione delle coppia di chiavi
pubblica e privata. Non adatto per la crittografia dei dati.
-RSA descrizione più avanti.
Algoritmi per il calcolo dell'hashing di un documento (vedere il paragrafo “Funzioni di
Hash”):
-MD4 algoritmo di hash considerato sicuro ed alla base delle funzioni Hash. Il messaggio
viene suddiviso in blocchi di 512 bit, poi tramite una struttura iterativa il blocco viene
elaborato da una funzione di compressione sui blocchi di 512 bit per la generazione del
valore hash. L'output ha una lunghezza di 128 bit. Hans Dobbertin ha sviluppato un
attacco a questo algoritmo, in grado di generare collisioni in un minuto di tempo di
calcolo su un normale computer.
-SHA-1 acronimo di Secure Hash Algorithm-1, sviluppato dal NSA su richiesta del
National Institute of Standard and Technology (NIST), è simile all'algoritmo MD4.
L'originale progetto del 1994 aveva il nome di SHA, poi modificato nel codice dal NSA.
Produce output di 160 bit. Attualmente è uno dei più sicuri, usato anche dai programmi
-PGP e GPG per firmare un documento.
-SHA-2, Secure Hash Algorithm-2, versione successiva a SHA-1, genera impronte di
documenti da 256, 384 e 512 bit.
La Crittografia: evoluzione
Il problema della trasmissione della chiave
● Volendo utilizzare un cifrario simmetrico per proteggere le informazioni
tra due interlocutori come posso scambiare la chiave segreta? Devo
utilizzare un canale sicuro di comunicazione.
● Ma tale canale sicuro esiste nella realtà?
● Per una comunicazione sicura tra n utenti si dovranno scambiare in
tutto (n-1)*n/2 chiavi, ad esempio con 100 utenti occorreranno 4950
chiavi, il tutto per ogni comunicazione!
La Crittografia: evoluzione
DES (Data Encryption Standard)
● Sviluppato dall.IBM nel 1970 diventato standard nel 1976.
● Utilizza chiavi di 56 bit, divide il testo in chiaro in blocchi di 64 bit, effettua delle permutazioni
iniziali e finali ed un ciclo di 16 iterazioni di permutazioni e xor (Feistel network, tecniche di
confusione e diffusione).
● Il 17 Luglio 1998, l.EFF (Electronic Frontier Foundation) costruisce un sistema dedicato in
grado di violare il DES in meno di 3 giorni, tramite un attacco di tipo .brute-force.
● Morale della favola: non utilizzate sistemi di cifratura basati sul DES!
La Crittografia: evoluzione
3DES
● Evoluzione del DES, è basato su un utilizzo del cifrario DES ripetuto, chiavi di 112 bit.
● Si utilizza la tecnica della codifica-decodifica-codifica (EDE, Encrypt-Decrypt-Encrypt)
utilizzando il cifrario DES.
La Crittografia: evoluzione
Rijndael
● Sviluppato Joan Daemen e Vincent Rijmen.
● Questo algoritmo ha vinto la selezione per l’Advanced Encryption Standard (AES) il 2
Ottobre 2000. Ufficialmente il Rijndael è diventato lo standard per la cifratura del XXI secolo.
● Il cifrario utilizza chiavi di lunghezza variabile 128, 192, 256 bit (gli autori hanno
dimostrato come è possibile variare le dimensioni delle chiavi con multipli di 32
bit). Lo schema del Rijndael è stato influenzato dall.algoritmo SQUARE.
La Crittografia: evoluzione
La crittografia a chiave pubblica
● Utilizza una coppia di chiavi per le operazioni di cifratura (encryption) e decifrazione
(decryption).
● Una chiave detta pubblica (public key) viene utilizzata per le operazioni di encryption, mentre
l’altra chiave, detta privata (private key), viene utilizzata per le operazioni di decryption.
● A differenza dei cifrari simmetrici non è più presente il problema della trasmissione delle chiavi.
● Sono intrinsecamente sicuri poiché utilizzano tecniche di tipo matematico basate sulla teoria
dei numeri, sulla teoria delle curve ellittiche, etc.
La Crittografia: evoluzione
La nascita dei sistemi PKI
● Dove trovo le chiavi pubbliche dei miei destinatari?
● Creazione di archivi di chiavi pubbliche, i public key server.
● Ma chi mi garantisce la corrispondenza delle chiavi pubbliche con i legittimi proprietari?
● Nascita delle certification authority (CA).
● A questo punto chi garantisce la validità delle certification authority?
● Atto di fede!
La Crittografia: evoluzione
Il cifrario RSA
● E’ basato su tecniche di teoria dei numeri: prodotto di due numeri primi
di dimensioni elevate (ad esempio con 300 cifre decimali).
Le chiavi pubbliche e private vengono determinate con il seguente
algoritmo:
. Si scelgono due numeri primi p e q molto grandi;
. Calcolo n= p*q, e la funzione di Eulero Φ(n)= (p-1)*(q-1);
. Scelgo un intero e minore di Φ(n) e primo con esso;
. Calcolo l’intero d, inverso di e modulo Φ(n) (ossia tale che e*d =
k*Φ(n) + 1, con k numero intero);
. La chiave pubblica è costituita dalla coppia di valori <e,n>, la
chiave privata dai valori <d,n>.
● Le operazioni di encryption e decryption sono:
C=Me (mod n) , M=Cd (mod n)=(Me (mod n))d (mod n)
dove M= blocco di testo in chiaro, C= crittogramma.
●vantaggio:sicurezza
●svantaggio:velocità minore
La Crittografia: evoluzione
La firma digitale e le funzioni hash sicure
● Nasce come applicazione dei sistemi a chiave pubblica.
● Viene utilizzata per autenticare la paternità di un documento informatico e la sua integrità.
● Si utilizza un cifrario a chiave pubblica e si .cifra. Un documento (file) con la propria chiave
segreta. Chiunque può verificare la paternità del documento utilizzando la chiave
pubblica dell’utente firmatario.
● Problema: per l’autenticazione di un documento di grandi dimensioni con un algoritmo a
chiave pubblica occorre molto tempo.
● Soluzione: posso autenticare solo un .riassunto. del documento tramite l’utilizzo di una
funzione hash sicura.
● Una funzione hash accetta in ingresso un messaggio di lunghezza variabile M e produce
in uscita un digest di messaggio H(M) di lunghezza fissa.
La Crittografia: evoluzione
La crittoanalisi
● La scienza che si occupa dell’analisi e della validità degli algoritmi crittografici.
● Analizzando il contenuto di un testo cifrato, attraverso tecniche statistico/matematiche si
possono ottenere informazioni sul testo in chiaro.
● Per fortuna ciò non è sempre possibile, la maggior parte dei cifrari moderni è ancora al
sicuro da tecniche di crittoanalisi.
Le basi della crittoanalisi
● L’attacco ad un sistema crittografico ha l’obiettivo di forzare il sistema, il metodo scelto e il
suo livello di pericolosità dipendono dalle informazioni in possesso del crittoanalista.
● Fondamentalmente esistono queste tipologie di attacchi:
. Cipher Text Attack (il crittoanalista è in possesso solo di alcuni crittogrammi)
. Known Plain-text Attack (il crittoanalista è venuto a conoscenza di una serie di testi in
chiaro e di crittogrammi)
. Chosen Plain-Text Attack (il crittoanalista ha scelto una serie di testi in chiaro e di
crittogrammi)
La Steganografia
L’arte di nascondere un messaggio dentro ad un altro.
Osservate la seguente immagine:
In apparenza vedrete tante immagini di fiori che però viste da lontano oppure
ridotte di dimensione vanno a raffigurare l’occhio di una donna che rappresenta il
messaggio nascosto.
Il principio è lo stesso!
La Steganografia
Le pagine Web sono arricchite da disegni e fotografie digitalizzate.
Possono essere stampate, ma quando sono presenti sul monitor possono essere qualcosa di
più...
In certi tipi di dati, possono essere nascoste informazioni senza che il dato originale venga
apparentemente modificato, in modo da non far sorgere dubbi in chi lo dovesse analizzare.
Messaggio + dato di copertura (+ chiave) = dato steganografico
La Steganografia
Nel campo dell'informatica, due utenti possono utilizzare la steganografia digitale per
inviarsi messaggi nascosti all'interno di file di "copertura" (filigrana elettronica), come
immagini o altri file multimediali: in questo tipo di file l'alterazione di pochi bit non altera
in modo evidente il contenuto.
La steganografia, in sé, si basa sul concetto della sicurezza tramite segretezza: cerca di
proteggere i dati semplicemente nascondendoli e non proteggendoli "davvero".
I sostenitori della steganografia affermano che questa è utile soprattutto quando si vuole
avere la possibilità di negare l'esistenza stessa di un'informazione in loro possesso
(plausible deniability).
La Steganografia
Cos’ è l'information hiding ?
La Steganografia
Steganografia Lingustica
– Codice aperto: il messaggio sembra innocente
• Mascheratura: circostanze note solo ai recipienti (gergo, mots convenus)
• Velatura: solo alcuni caratteri nel testo (acrostici, cronogrammi, griglie)
– Semagrammi: dettagli grafici visibili in uno scritto disegno
• Lettere abbassate o spaziatura delle lettere
• Gli elementi di un disegno contengono il messaggio
• Steganografia tecnica
– Inchiostri invisibili, micropunti
– Congegni meccanici
La Steganografia: cenni storici
Anche se probabilmente sono gli Egizi ad applicarla per primi nei loro geroglifici di cui tuttora
molti sono indecifrati, la steganografia la si fa risalire all'antica Grecia, dove si prefigge di
nascondere la comunicazione tra due interlocutori. Essa fu teorizzata dall'abate Tritemio
attorno al 1500 nell'omonimo libro proponendosi di inviare messaggi tramite l'uso di
linguaggi magici, sistemi di apprendimento accelerato e senza l'utilizzo di simboli o
messaggeri. L'opera continuò a circolare in forma di minuta e fu pubblicata postuma nel
1606.
La Steganografia: evoluzione
Modelli Steganografici:
• Steganografia Iniettiva
• Steganografia generativa
Altri Modelli:
• Steganografia sostitutiva
• Steganografia selettiva
• Steganografia costruttiva
La Steganografia: evoluzione
Steganografia sostitutiva
Rumore
Sempre presente - conversione analogica-digitale
Influenza i bit meno significativi
Inserire il messaggio segreto nei bit meno significativi dopo la conversione
Simula il rumore
La Steganografia: evoluzione
File Bitmap (.BMP)
Matrice di pixel in formato RGB, dimensione MxN
P. es. a 24 bit per pixel, con tre canali, servono 3xMxN bytes
Pixel originario trasmesso:
Sostituire i tre bit meno significativi dei canali con tre bit del messaggio:
La percezione visiva
• non vede molta differenza col colore originario
• non sa quale fosse esattamente il colore originario
La Steganografia: evoluzione
Iniezione di Messaggio
– Dimensione del messaggio iniettato:
(M x N x 3) / 8
– Esempio: immagine di risoluzione 640 x 480 pixel
(640 x 480 x 3) / 8 = 115200 bytes
– E’ possibile codificare il messaggio con più bit
2, 3 o 4 bit meno significativi per canale
aumento dimensioni del messaggio steganografico
aumento del ‘rumore’ percepito
– diminuzione della qualità dell’immagine
– probabilità di insospettire il ricevente
La Steganografia: evoluzione
File sonoro (.WAV)
Formato 44100 Hz, 16 bit, stereo, durata 1 minuto
Generata una stringa di bit ogni 1/44100 secondi
La stringa è di 16 bit
Sono generate due stringhe di bit
Dimensione file contenitore:
44100 x 16 x 2 x 60 = 84762000 bit = 10366 kB
Usando i due bit meno significativi, la dimensione massima del messaggio nascosto è:
84762000 x 2 / 16 = 10595250 = 1293 kB
La Steganografia: evoluzione
File JPEG
Compressione
1. Conversione di spazio cromatico:
• Immagine convertita da formato RGB a YIQ (o YUV) che consiste in tre piani di colore:
luminanza (Y) e due componenti di crominanza (U e V). Opzionale ma permette una
migliore qualità di compressione e minor perdita di qualità.
2. Analisi in frequenza: Discrete cosine transform - DCT
3. Quantizzazione
4. Codifica entropica:
• Lettura a zig-zag
• Run Length Encode – RLE
• Compressione basata sul conteggio di caratteri ASCII.
• DCMP
• Compressione Huffman
• Assegna particolari codici, corti, a sequenze di valori più frequenti.
La Steganografia: evoluzione
File JPEG
Non è possibile usare una semplice tecnica sostitutiva
La compressione JPG intende preservare le caratteristiche visive dell’immagine e non la
sequenza di pixel originaria.
Nella compressione JPG viene compiuta una trasformata di Fourier dell’immagine originaria
e vengono tagliate le frequenze più basse prima di compiere una trasformata di Fourier
inversa.
Soluzione: iniettare le informazioni nei coefficienti di Fourier ottenuti nella prima fase della
compressione
Iniettare le informazioni in un file BMP e poi convertirlo in JPEG?
JPEG è un formato ‘lossy’: il messaggio nascosto viene perduto
La Steganografia: evoluzione
File MP3
Si inserisce il messaggio segreto nella fase di ‘inner loop’:
La Steganografia: evoluzione
File GIF
La Steganografia: evoluzione
File GIF
– Decrementare il numero di colori della paletta
• potenza del 2, inferiore a 256
– risultato: 1/2 o 1/4 della paletta originale
• limitare la perdità di qualità
• usare algoritmi specifici
– Duplicare (o quadruplicare) la paletta risultante
• la nuova paletta è di 256 colori
• ogni colore ha 2 o 4 entries nella paletta
– La scelta della semipaletta determina il bit del messaggio nascosto
• P. es. 0 per paletta originaria, 1 per paletta copia
– Immagine M x N pixel
• messaggio nascosto di almeno M x N / 8 bytes
La Steganografia: evoluzione
File GIF
Osservazioni:
– E’ molto facile scoprire la presenza di sottopalette
– Altro metodo di staganografia GIF:
• le 256 entries della paletta si possono disporre in 256! permutazioni
• variando l’ordine delle permutazioni si può codificare un messaggio
• dimensione massima:
– log2 256! = 1683 bit = 210 bytes
– Anche altri formati sono adatti come contenitori
• Postscript, PDF, HTML, ecc.
La Steganografia: evoluzione
File GIF
Difetti
– Esposizione del contenitore
• Non utilizzare file contenitori il cui originale è accessibile
• Non riutilizzare lo stesso contenitore per più messaggi
• Distruggere il contenitore dopo l’uso
– Modelli di rumore
• Il messaggio cambia le caratteristiche statistiche del rumore,
sostituendosi ad esso
• Chi possieda un modello statistico del rumore può
accorgersene
• Lo scopo è che l’opponente non sospetti neppure la
presenza del messaggio nascosto
La Steganografia: evoluzione
Steganografia Selettiva
– Selezionare solo file contenitori che già possiedano una certa proprietà, tra tutti i possibili
• P. es. file di dimensione pari codificano uno 0, dispari un 1
• Meglio se molti contenitori piccoli
– Il file contiene il messaggio segreto senza essere stato modificato
– La banda passante è molto bassa
– Poco usata in pratica
• Ma: utile per invio password, chiavi, ‘chirp’
La Steganografia: evoluzione
Steganografia Costruttiva
– Tiene conto di un Modello di Rumore
– Il falso rumore introdotto è statisticamente compatibile col modello
– Problemi
• difficile realizzazione di un modello di rumore
• se il modello cade in mano nemica, si possono forse trovare debolezze del
modello e sfruttarle
La Steganografia: evoluzione
Principio di Kerchoff
– Il nemico conosce appieno il progetto e l’implementazione del modello di rumore
– Il nemico non dispone solo di una chiave segreta
• sequenza limitata di bit
– Senza la chiave segreta non è deducibile che un canale di comunicazione contenga o
meno un messaggio nascosto
• Soluzioni:
– Cifrare il messaggio segreto prima di iniettarlo nel contenitore
– Eliminare ogni ridondanza prima dell’iniezione
La Steganografia: evoluzione
Sistema Steganografico Ideale
La Steganografia: evoluzione
File System Steganografico
– I file sono organizzati in livelli di sicurezza
– Ad ogni livello corrisponde una pass-phrase
– Gerarchia lineare
• l’accesso al livello n permette l’accesso anche a tutti i livelli inferiori
– Senza la pass-phrase non è nota neppure l’esistenza del livello di sicurezza
– I livelli di sicurezza massimi sono prefissati
– I livelli utilizzati possono essere inferiori al massimo
• L’attaccante non sa quanti livelli sono utilizzati
La Steganografia: evoluzione
Incrementare la sicurezza
• Dispersione:
Aumentare la dimensione dell’immagine utilizzata come contenitore e inserire i bit del
messaggio segreto non modificando tutti i bit meno significativi possibili, ma ad esempio
uno ogni dieci. All’aumentare della dimensione dell’immagine rispetto alla dimensione del
messaggio segreto diminuisce la probabilità di rilevazione di una distorsione.
La Steganografia: evoluzione
Incrementare la sicurezza
• Crittografia:
Utilizzare accorgimenti crittografici che permettano di rendere incomprensibili i messaggi
segreti anche se scoperti. Sarà dunque necessaria una chiave per poterli poi decifrare.
(vedi principio di Kerchoff che dice che il metodo steganografico è noto dall’attaccante, la
sicurezza la porta la chiave segreta)
Analisti esperti riconoscono anche la struttura di messaggi cifrati.
Esistono programmi (Stealth) in grado di nascondere questa struttura e poi ripristinarla
quando richiesto.
Applicata questa trasformazione i bit sembrano apparentemente casuali.
La Steganografia: evoluzione
Incrementare la sicurezza
• Permutazioni pseudocasuali:
Si indica con M i bit del messaggio e con N quelli che si potrebbero usare nel messaggio
contenitore tenendo presente che N>M.
Si calcola una permutazione per le posizioni degli M bit disponibili e a partire dal primo bit
del messaggio segreto, gli si assegna la prima posizione evidenziata proprio dalla
permutazione. Si ha così che il primo bit non finisce più nel primo bit, ma in uno
qualunque e così anche per gli altri. Chiaramente è tanto meglio quanto più grande è M.
Inoltre è necessario disporre di una chiave per poter in ricezione ricavare il messaggio
originario.
La Steganografia: evoluzione
Steganografia applicata
• Vediamo adesso un esempio pratico di cosa nascondere in un'immagine.
Prendendo immagini da 24 bit si possono imprimere dei "marchi" di due
tipi e più precisamente avremo:
– Watermark
– Fingerprint
La Steganografia: evoluzione
Watermark
• I Watermark sono un classico esempio dell'utilizzo di informazioni nascoste in un'immagine.
• Con il diffondersi dell'utilizzo di Internet, gli autori di documenti digitali (come possono
essere ad esempio le immagini) hanno il problema di impedire che qualcuno si impossessi
delle loro opere spacciandole per proprie.
• I watermark digitali quindi provvedono ad aggiungere delle informazioni dentro il
documento in questione in modo tale che, nel caso ne venisse fatta una copia, il legittimo
proprietario possa essere univocamente determinato.
• Sempre nel caso delle immagini, un modo semplice per creare un watermark può essere
quello di creare una seconda immagine che non conterrà altro che il nome del proprietario
ripetuto molte volte.
• Questa tecnica non viene usata quindi per nascondere un messaggio generico, ma piuttosto
per occultare informazioni che vogliamo siano presenti nel documento ma che non siano
visibili ad un primo impatto.
La Steganografia: evoluzione
Fingerprint
• I Fingerprint invece sono dei marchi separati che vengono inseriti in diverse copie della
stessa immagine per distribuirla a persone diverse. L'effetto è una specie di numero
seriale: fa sì che il proprietario possa identificare le persone a cui ha distribuito il suo
prodotto nel caso esse lo distribuiscano "gratuitamente" a terzi.
• Vediamo adesso alcune debolezze dei marchi e quindi alcuni modi che potrebbero
essere utilizzati per renderli inutilizzabili.
• Una pratica comune è quella di distribuire il watermark per tutta l'immagine, impedendo
in questo modo eventuali attacchi basati sul taglio di una sezione dell'immagine di
partenza. Più piccolo è il watermark e più è facile che venga manipolato.
La Steganografia: evoluzione
Steganalisi
Attacchi alle immagini
• Attacchi visuali:
– Sono in correlazione con le capacità visive umane
– Il file stego viene filtrato con un algoritmo (di filtering) dipendente dalla funzione di
embedding (inserimento del messaggio nel contenitore) utilizzata per nascondere il
messaggio.
– L’immagine filtrata viene osservata per determinare se è stato nascosto un messaggio o
meno.
• Attacchi statistici:
– Effettuano test statistici sul file stego.
– L’idea dell’attacco statistico è di confrontare la distribuzione di frequenza dei colori di un
potenziale file stego con la distribuzione di frequenza teoricamente attesa per un file stego.
La Steganografia: evoluzione
Formato WAV
• LSB: La tecnica utilizzata è quella del bit meno significativo (se si utilizzano
più bit diminuisce la qualità dell’operazione).
• Esempio: file wave a 44100Hz, 16 bit, stereo:
– 44100Hz: Nella trasformazione in digitale viene creata una stringa di 16 bit ogni
1/44100 secondi
– Stereo: Le stringhe generate sono due, una per il canale destro e l’altra per
quello sinistro.
• Dimensione del file: 10366 Kb ossia
= 16 bit x 44100 Hz x 60 sec x 2 = 84762000 bit
• Capacità disponibile per il segreto: usando i due bit meno significativi:
10595250 bit = 1293 Kb ossia
= 84762000 bit /16 bit x 2
• Si aggiunge molto “rumore” di fondo facilmente avvertibile.
Per far fronte a questo esiste una tecnica chiamata Echo-data-hiding.
La Steganografia: evoluzione
Echo data hiding
• Se il suono originale e la sua eco sono divisi da uno spazio di tempo abbastanza piccolo,
l’orecchio umano non riesce a distinguere i due suoni. I dati vengono codificati in questi eco
rappresentando gli 0 e gli 1 come due offset differenti di eco.
• In parole povere consiste nell’inserire una pausa all’interno del file (il file potrebbe essere
anche un video):
– La pausa è cortissima (circa 1ms) impercettibile ai sensi umani
– Si ripropone una sorta del codice morse punto linea:
• pausa corta = punto
• pausa lunga = linea
• Questo metodo di steganografia è il metodo (inventato nel 2001) più sicuro in quanto è
veramente complicato fare del detecting di pause.
Le pause appartengono al file nascosto o sono le pause del video/brano ?
• Ottima qualità steganografica, ma scarsa capacità per il contenimento del dato segreto.
La Steganografia: evoluzione
Formato MP3: tecnica forte
• Sfrutta l’Echo-hiding.
• L’algoritmo di compressione per generare mp3 è lossy, ovvero comprime i dati in input
con perdita di informazione. Per questo motivo, l’embedding ( il nascondere il messaggio
segreto nel contenitore) deve essere effettuato nel processo di trasformazione da wav ad
mp3.
• Teoricamente impossibile da attaccare.
La Steganografia: evoluzione
Formato MP3: tecnica debole
• Anche i file MP3 sono file compressi.
Vengono tagliate le frequenze non udibili all’orecchio umano.
Per noi tali frequenze sono frequenze vuote, chi ci impedisce di riempirle con dati
personali?
• La steganografia di file MP3 può avvenire attraverso la codifica di messaggi segreti (file)
all’interno di frequenze non udibili.
– Un utente non si accorge di nulla ascoltando il brano, ma in realtà assieme al brano
ascolta anche il file nascosto.
• La steganografia moderna non utilizza tali file. Per l’utente risulta impossibile udire la
differenza di suono che vi è tra il file originale e quello steganografato, ma è molto
semplice implementare un software in grado di individuare file MP3 contenenti messaggi
segreti:
– E’ sufficiente implementare un filtro passa banda da 60-20000 hz e tutti quei segnali che
cadono fuori sono byte appartenenti al file nascosto.
La Steganografia: evoluzione
Strumenti
• Detecting di immagini steganografate:
– File JPEG : StegDetect,StegoWatch,
– File GIF : GIFExtract,SysCop
– PCX : DiSi-Steganograph, StegoDos
• Steganografia:
– Jpg : Camouflage, StegHide, OutGuess, Shadow-Jpeg, Jpeg-jsteg, SecureEngine, Jpegx,
InThePicture
– Gif: Camouflage,appendx, EZStego, Hide and Seek, Gifshuffle, S-Tools-4, Cameleon,
TheThirdEye
– Bmp: Camouflage, StegHide, Hide-inpicture, WbStego, InvisibleSecrets, Courier,Xidie,
Hide4PgP
– WAV: Camouflage, StegHide, WeavWav,MP3Stego
• Steganografia generativa:
– Texto
– Stego
• Altri:
– S-Tools (LSB), WinGIMP (plugin per GIMP)
– Psteg (permutazioni pseudocasuali)
Cooperazione tra crittografia e steganografia
Crittografia
Steganografia
Implementazione del software
Ancient Simulator
Questo primo software richiama metodi storici di crittografia :
1. Cesare
2. Enigma
Implementazione del software
Ancient Simulator
Digitando 1 si esegue Cesare che è una funzione scritta in C++ che critta un testo
dato da tastiera secondo il cifrario di Cesare.
1. Viene inserito il testo da crittare (evitando gli spazi o sostituendoli con dei trattini)
2. Va impostata la chiave che è un numero (anche un numero negativo è ammissibile).
3. Il testo viene crittato traslando le lettere dell’alfabeto di una quantità costante pari
alla chiave
Implementazione del software
Ancient Simulator
Digitando 2 si esegue Enigma che è una funzione in C++ che simula in maniera
piuttosto semplificata il funzionamento di Enigma a tre rotori. I tre rotori presentano
permutazioni dell’alfabeto simili a quelle utilizzate nei rotori tedeschi.
1. Viene inserito il testo da crittare.
2. I rotori vengono inizializzati automaticamente e si avvia la crittografia.
3. Il testo viene crittato.
Implementazione del software
Ancient Simulator
Il funzionamento si basa sull’utilizzo di cilindri ( rotori): ognuno presenta una
permutazione dell’alfabeto a 26 lettere. I rotori girano attorno ad un asse: questo
permette che ogni lettera immessa venga cifrata con un alfabeto diverso.
Una macchina cifrante ad un rotore solo ripete il suo schema di crittografia
ogni 26 lettere e si dice dunque che il suo periodo T sarà uguale a 26. Se però i
rotori sono due il periodo diventerà 26*26 ovvero 262 = 676 lettere prima che il
testo venga cifrato con lo stesso schema. Possiamo dunque dire che la sicurezza
aumenta esponenzialmente con l’aumentare dei rotori e il periodo T di una macchina
a n rotori è dato da 26n.
Il settaggio iniziale può essere uno qualunque.

char Rotore_1[27] = "ZYXWVUTSRQPOMNLKJIHGFEDCBA"; // Alfabeto al contrario
char Rotore_2[27] = "BADCFEHGJILKNMPORQTSVUXWZY"; // Alfabeto scambiato
char Rotore_3[27] = "FGHIJABCDEPQRSTKLMNOXYZUVW"; // Blocchi di 5

// Definisci gli operatori per i rotori






char Codifica1(char Input)
{ // Conversione attraverso "i"
return Rotore_1[(i + Input - 'A') - ((i + Input - 'A') / 26 * 26 )];
}
Steganocrypt Simulator
Il secondo software è stato implementato su calcolatore mediante la realizzazione
di un programma in C# , che è dotato di orientazione agli oggetti .
Esso consente di aaggiungere la crittografia alla steganografia.
Implementazione del software
Il C# (si pronuncia C sharp, sharp in inglese significa "in gamba" o più semplicemente diesis)
è un linguaggio di programmazione object-oriented sviluppato da Microsoft all'interno
dell'iniziativa .NET, e successivamente approvato come standard ECMA. La sintassi del C#
prende spunto da quella del Delphi (hanno il medesimo autore), del C++, da quella di Java ed
a Visual Basic per gli strumenti di programmazione visuale e per la sua semplicità (meno
simbolismo rispetto a C++, meno elementi decorativi rispetto a Java).
Il C# è, in un certo senso, il linguaggio che meglio degli altri descrive le linee guida sulle quali
ogni programma .NET gira; questo linguaggio è stato infatti creato da Microsoft
specificatamente per la programmazione nel Framework .NET. I suoi tipi di dati "primitivi"
hanno una corrispondenza univoca con i tipi .NET e molte delle sue astrazioni, come classi,
interfacce, delegati ed eccezioni, espongono esplicitamente caratteristiche proprie del .NET
framework.
Implementazione del software
Osservazioni:
Durante i processi di stegoanalisi, spesso si cerca di determinare in un’immagine le aree
colorate con un unico colore o poche tonalità. Escluse queste si individuano le regioni
con variazioni di bit maggiori, perché in esse è maggiormente probabile che siano
nascosti dei messaggi perché più difficili da individuare.
Guardate quest’immagine:
-Il cielo blu sulle montagne non dovrebbe contenere dati nascosti perché di variazioni
non ce ne sono.
-Se sono presenti sulle montagne al massimo può essere stato cambiato un bit per
pixel, mentre al contrario nelle zone oscure degli alberi possono essere nascosti tanti bit
per pixel appartenenti a dati diversi dall’immagine.
Implementazione del software
I luoghi dove è più di difficile individuare bit nascosti sono i seguenti:
-Questo è uno dei motivi per cui durante la simulazione utilizzeremo un’immagine
particolare.
Implementazione del software
Simulazione n1.
Se vogliamo semplicemente nascondere dei dati in un immagine e trasmetterli,
abbiamo bisogno di un’immagine bitmap contenitore, di una password
associatole per l’accesso e di un messaggio segreto.
1. Apertura dell’immagine (.bmp) e salvataggio.
2. Impostazione password.
3. Immissione del testo.
Implementazione del software
Simulazione n1.
-Simuliamo un attacco ad una base segreta terroristica!
-Supponiamo di aver scelto un’immagine di Spiderman, la password rx78 ed il
messaggio (“Attaccate la base nemica!”).
-Sembrerebbe che due appassionati di film si stiano scambiando delle immagini via
mail, ma in realtà non è così! Sono uno un comandante e l’altro un soldato distanti
migliaia di km.
4. Cliccando su next abbiamo la possibilità di selezionare i poligoni dell’immagine
dove nascondere il messaggio segreto.
Implementazione del software
Simulazione n1.
-Il messaggio lo ripartiamo nei byte dell’area selezionata.
5. Ogni poligono selezionato può essere chiuso mediante un double-click.
-Le regioni vengono visualizzate istantaneamente.
6. Nascondiamo 8 bit per ogni pixel in modo da far variare le tonalità dell’immagine
originaria il più possibile.
7. La dimensione del messaggio deve coincidere con la somma delle quantità di dati
da nascondere per ogni byte per tutte le regioni
8. Clicchiamo su next.
-Questa variazione risulterà impercettibile ad un comune essere umano, ma non per
un software tecnologicamente avanzato.
Implementazione del software
Simulazione n1.
9. Quindi viene creata con successo una mappa contenente le diverse regioni selezionate.
-Essa viene memorizzata nei primi pixel dell’immagine in modo da essere estratta prima
del resto del messaggio come header.
-L’header di ogni regione contiene :
Lunghezza
Capacità
Numero di bit usati
Regione
Indice del primo pixel di ogni regione
Implementazione del software
Simulazione n1.
-Se non ci sono abbastanza pixel tra il primo pixel dell’immagine e l’inizio del primo
della regione dove si nasconde l’header, vengono visualizzati gli opportuni messaggi
errore.
-Lo stesso vale anche per il messagio nascosto all’interno della regione che deve
essere abbastanza grande da poterlo contenere.
-A questo punto il messaggio e la mappa vengono nascosti.
Implementazione del software
Simulazione n1.
Modalità adottata per nascondere i byte:
-Quando verrà estratto il messaggio, il seme utilizzato per inizializzare il distributore
casuale di bit sarà lo stesso (un valore della chiave).
-Per calcolare gli intervalli, sono necessari la lunghezza dei dati da nascondere (o
estrarre) ed il conteggio dei pixel rimanenti.
Implementazione del software
Simulazione n1.
-Dall’immagine modificata vogliamo leggere il messaggio nascosto utilizzando le
informazioni precedentemente memorizzate (la lunghezza degli dati, l’indice del
pixel della regione più in alto e delle altre regioni e così via).
10. Immettiamo la password (in questo caso rx78).
11. Selezioniamo Text in modo da indicare che il messaggio da estrarre non lo
vogliamo salvare su file, ma visualizzarlo immediatamente.
12. Clicchiamo su next.
Implementazione del software
Simulazione n1.
-Ricostruita la mappa, vengono ricostruite anche le regioni dove il messaggio è stato
nascosto.
-E’ necessario conoscere il numero dei byte in ogni regione e quanti bit per pixel
devono essere estratti dai pixel.
13. Eseguiti questi task può essere visualizzato il messaggio in chiaro e le regioni da
cui viene letto.
Il soldato riceve il messaggio ed avvia i preparativi per entrare in azione.
La situazione può evolversi ulteriormente!
Implementazione del software
Simulazione n2.
-Simuliamo l’intercettazione del messaggio e la cifratura
Il nemico, avendo adottato un software di controllo delle mail di tutti i suoi impiegati
riesce ad intercettare il messaggio mediante stegoanalisi e cerca di sfruttarlo a
proprio vantaggio.
Infatti prepara una trappola ai soldati dell’esercito.
Un altro agente segreto dell’esercito comprende la situazione e riutilizza un’altra
casella di posta elettronica per trasmettere di fermare l’attacco, cifrando però il
messaggio con un software di crittografia.
In tale modo anche se cadesse in mani nemiche, non riuscirebbero a decifrarlo!
Per impedire anche questa possibilità utilizza un’altra immagine ed una chiave
memorizzata su file.
Implementazione del software
Simulazione n2.
1. Anzitutto si procede con la scrittura ed il salvataggio del messaggio in un file che
viene crittato. Questo viene effettuato cliccando sul pannello principale Crypt,
aprendo il file originale e indicando la directory dove salvare il file crittato.
2. Si clicca su Encrypt, dopo aver specificato un ulteriore parametro di crittografia ,
la cui somma con quello in fase di decrittografia deve dare 0.
Questo aggiunge ulteriore imprevedibilità al testo cifrato la cui cifratura si basa
su tabelle di codici.
Una tabella codici è un elenco di codici di caratteri selezionati, ossia caratteri
rappresentati come punti di codice, in un determinato ordine. Le tabelle codici
vengono definite in genere per supportare lingue o gruppi di lingue specifici che
condividono sistemi di scrittura.
In questo caso il testo viene convertito in intero, ad esso viene sommato il
parametro e viene ritrasformato in stringa.
Implementazione del software
Simulazione n2.
2. Poi all’immagine contenitore viene associato un file contenente una chiave
d’accesso (Key File).
3. Il file viene aperto selezionando Message File e cliccando su Browse ed è quello
precedentemente crittato.
-Successivamente il messaggio crittato viene memorizzato all’interno dell’immagine.
Implementazione del software
Simulazione n2.
4. Vengono definite le regioni, stavolta più ampie in modo da distribuire più
uniformemente i dati nascosti.
5. Si clicca su next.
Il tipo di immagine scelta aggiunge un’ulteriore vantaggio.
La variazione delle tonalità e i chiaro-scuri rendono molto più difficoltosa
l’individuazione di un messaggio nascosto.
Implementazione del software
Simulazione n2.
6. Il messaggio crittato viene estratto su di un file dopo aver selezionato l’immagine
da aprire ed il file dove salvare il messaggio crittato.
Implementazione del software
Simulazione n2.
7. Il file crittato viene decrittato.
Il comandante lo decritta.
Immediatamente da ordine alla forza armata esterna di fermarsi, e si avvia verso lo
studio di una nuova strategia.
Conclusioni
Realizzazione della Steganocrittografia
Implementazione del software
Validazione mediante simulazioni
Valutazione degli effetti
Approfondimenti futuri
Sviluppi futuri
TECNOLOGIE MILITARI
Gli Stealth possono essere pilotati unendo al pilota automatico sistemi di
controllo esterni (radiocomando).
Considerando le loro potenzialità belliche diventa rilevante evitare
infiltraggi durante tale procedura mediante sistemi di crittografia
avanzata.
Sviluppi futuri
ROBOTICA
Protezione e cifratura di reti small-world fra robot durante l’esplorazione di territori
sconosciuti o inospitali per l’uomo .
Sviluppi futuri
INFORMATICA MEDICA
-Biometria
-Stegano-crittografia del DNA
-Sistemi neurali
Fine:
La storia ci insegna che nulla rimane
per troppo tempo
Fly UP