Crittografia negabile

Da Wikipedia, l'enciclopedia libera.

La crittografia negabile in crittografia e steganografia è una forma di crittografia che consente di negare in maniera convincente sia che i dati siano crittografati, sia di essere in grado di decrittografarli. Il diniego, anche se non veritiero, non può essere verificato dall'attaccante senza la cooperazione dell'utilizzatore, che potrebbe veramente non essere in grado di decrittografare i dati. Il dubbio che la negabilità induce nell'attaccante diventa così un'ulteriore forma di protezione dell'utilizzatore.

Funzione[modifica | modifica sorgente]

Un normale testo cifrato può essere decifrato ottenendo un unico testo in chiaro e l'utilizzatore non può sostenere di avere cifrato un messaggio differente. La crittografia negabile permette di cifrare il testo cifrato e di ottenere, se necessario, un testo in chiaro alternativo che ha il ruolo di esca. L'attaccante, anche se in grado di forzare l'utilizzatore a produrre un testo in chiaro, non può rilevare alcuna differenza fra il vero testo in chiaro e quello alternativo. L'utilizzatore può sempre difendersi, scegliendo volta per volta se produrre, a partire dallo stesso testo cifrato, il vero testo in chiaro o quello di copertura.

Il concetto di "crittografia negabile" è stato usato da Julian Assange e Ralf Weinmann nel Rubberhose filesystem e esplorato in dettaglio in un articolo di Ran Canetti, Cynthia Dwork, Moni Naor, e Rafail Ostrovsky[1] nel 1996.

Scenario[modifica | modifica sorgente]

La crittografia negabile consente al mittente di un messaggio cifrato di negare di aver spedito quel messaggio. Ciò richiede un terzo partecipante fidato. Ecco un possibile scenario:

  1. Alice è la moglie di Bob, che la sospetta di adulterio. Lei vuole comunicare con il suo amante segreto Carl e crea due chiavi. La prima (K1) può essere sacrificata, mentre l'altra (K2) deve rimanere segreta e condivisa solo con Carl.
  2. Alice costruisce un messaggio innocuo M1 per Carl (destinato ad essere rivelato a Bob in caso di emergenza) e un messaggio compromettente M2 per Carl. M1 viene cifrato con la chiave K1 e M2 con la chiave K2. Al momento della cifratura M1 e M2 vengono fusi in un unico messaggio cifrato che viene spedito a Carl.
  3. Carl usa la chiave segreta K2 per decifrare il messaggio e legge il testo segreto M2.
  4. Bob scopre il messaggio cifrato per Carl, si insospettisce e costringe Alice a decifrarlo.
  5. Alice sacrifica la chiave K1, la rivela a Bob che legge così il testo innocuo M1. Bob non conosce l'esistenza dell'altra chiave e non sospetta l'esistenza del testo segreto.

Un altro possibile scenario vede Alice creare un messaggio cifrato con istruzioni segrete per Bob e Carl. Bob e Carl devono ricevere istruzioni diverse e non venire a conoscenza l'uno delle istruzioni dell'altro. Carl può ricevere il messaggio solo attraverso Bob.

  1. Alice crea il messaggio cifrato (M1 con K1 e M2 con K2) e lo spedisce a Bob.
  2. Bob legge le sue istruzioni M1 usando la sua chiave K1. Non può leggere M2.
  3. Bob inoltra il messaggio cifrato a Carl.
  4. Carl legge le sue istruzioni M2 usando la sua chiave K2. Non può leggere M1.

Forme moderne di crittografia negabile[modifica | modifica sorgente]

Le moderne tecniche di crittografia negabile sfruttano le proprietà di permutazione pseudorandom dei cifrari a blocchi, rendendo impossibile dimostrare che il testo cifrato non corrisponda a dati casuali generati da un generatore di numeri pseudocasuali crittograficamente sicuro. Vengono usati in combinazione anche dei dati esca, plausibilmente confidenziali, che l'utilizzatore può rivelare all'attaccante, sostenendo che non esistono altri dati. Questa forma di crittografia negabile viene accomunata con la steganografia.

Un altro esempio di crittografia negabile è il filesystem crittografico che utilizza il concetto di "livelli" astratti, dove ogni livello viene cifrato con una chiave differente, e livelli addizionali speciali, con funzione di "chaff", riempiti con dati random. L'utilizzatore memorizza dei file esca in uno o più livelli e nega l'esistenza di altri livelli con file segreti, sostenendo che il restante spazio è occupato solo da livelli chaff. Fisicamente questi filesystem sono tipicamente memorizzati in una singola directory e tutti i file contenuti hanno uguale lunghezza e timestamp casuale. I nomi sono generati casualmente - se appartengono a livelli chaff - o sono hash crittografici delle stringhe che identificano i blocchi. Rubberhose filesystem e PhoneBookFS utilizzano questo approccio.

Un altro approccio utilizzato da alcuni software di crittografia su disco è creare un secondo volume cifrato all'interno di un volume contenitore. Il volume contenitore viene prima formattato con dati casuali cifrati[2] e poi inizializzato con un filesystem che l'utilizzatore riempie con dei dati plausibilmente sensibili. Viene successivamente allocato all'interno del volume contenitore un secondo volume nascosto e cifrato, in cui l'utilizzatore memorizza dei dati segreti. Come per gli altri esempi, la protezione del volume cifrato deriva dalle proprietà di permutazione pseudorandom dei cifrari a blocchi.[3]

L'integrità del volume cifrato dipende dalla possibilità di non aumentare la dimensione dei dati contenuti nel volume contenitore fino a sovrascrivere lo spazio nascosto cifrato allocato all'interno. In alcuni casi può essere necessario "congelare" nel tempo il volume contenitore per preservare quello nascosto, correndo però il rischio di renderlo sospetto per via dei timestamp di ultimo accesso e modifica non più aggiornati. FreeOTFE e BestCrypt possono allocare più volumi cifrati all'interno di un volume contenitore; TrueCrypt è limitato ad unico volume nascosto.[4]

Critiche[modifica | modifica sorgente]

L'esistenza di un volume nascosto può essere compromessa da implementazioni con elementi crittografici predicibili[5][6] o da alcuni strumenti forensici che possono svelare la presenza di dati cifrati non casuali.[7][8] È stata anche suggerita una vulnerabilità dei volumi cifrati al test di randomicità chi quadrato che richiederebbe, ad ogni modifica dei dati cifrati, l'inserimento di elementi correttivi per riportare il volume ad uno stato di randomicità plausibile.[9]

La crittografia negabile è stata criticata anche per la sua impossibilità di difendere gli utilizzatori dal metodo del tubo di gomma (Rubber-hose cryptanalysis). Alcuni utilizzatori e progettisti temono infatti che l'utilizzo stesso di strumenti con supporto per la crittografia negabile possa spingere gli attaccanti a non interrompere le indagini nemmeno quando l'utilizzatore finge di cooperare fornendo la chiave di copertura.[10]

Voci correlate[modifica | modifica sorgente]

Note[modifica | modifica sorgente]

  1. ^ Ran Canetti, Cynthia Dwork, Moni Naor, Rafail Ostrovsky, Deniable Encryption (PostScript) in Lecture Notes in Computer Science, vol. 1294, 1996-05-10, pp. 90-104, DOI:10.1007/BFb0052229, ISBN 978-3-540-63384-6. URL consultato il 2007-01-05.
  2. ^ Plausible Deniability
  3. ^ Negabilità plausibile su disco: luci e ombre di Truecrypt
  4. ^ TrueCrypt - Free Open-Source On-The-Fly Disk Encryption Software for Windows 7/Vista/XP, Mac OS X and Linux - Hidden Volume
  5. ^ Adal Chiriliuc, BestCrypt IV generation flaw, 2003-10-23. URL consultato il 2006-08-23.
  6. ^ Encrypted hard drives may not be safe: Researchers find that encryption is not all it claims to be.
  7. ^ TrueCrypt is now Detectable
  8. ^ TCHunt, Search For TrueCrypt Volumes
  9. ^ MultiObfuscator - Manuale: Architettura e meccanismo di difesa dal test chi quadrato
  10. ^ Julian Assange: Physical Coercion

Approfondimenti[modifica | modifica sorgente]