OpenPuff

Da Wikipedia, l'enciclopedia libera.
OpenPuff
Logo
Screenshot di OpenPuff v4.00
Screenshot di OpenPuff v4.00
Sviluppatore Ing. Cosimo Oliboni
Ultima versione 4.00 (7 luglio 2012)
Sistema operativo Microsoft Windows
Linguaggio
Genere Sicurezza informatica
Licenza Licenza libera
Sito web embeddedsw.net/OpenPuff_Steganography_Home.html

OpenPuff Steganography and Watermarking, qualche volta abbreviato OpenPuff o Puff, è uno strumento steganografico freeware per Microsoft Windows creato da Cosimo Oliboni e tuttora in continuo sviluppo come software indipendente. Il programma si distingue per essere stato il primo strumento steganografico (la versione 1.01 è stata rilasciata nel dicembre 2004) che:

  • consente di nascondere un flusso di dati nascosto in più di un singolo contenitore. Quando un flusso di dati viene suddiviso fra più contenitori si ottiene una catena, senza nessun limite teorico di dimensione (256MB, 512MB, ... a seconda solo dell'implementazione)
  • implementa 3 livelli di offuscamento del flusso di dati (crittografia, whitening e codifica con funzione di copertura non lineare
  • estende la crittografia negabile alla steganografia negabile

L'ultima versione supporta molti formati di contenitore

Utilizzo[modifica | modifica wikitesto]

OpenPuff è usato principalmente per lo scambio dati anomimo e asincrono:

  • il mittente nasconde un flusso di dati nascosto all'interno di alcuni contenitori pubblicamente disponibili (password + contenitori + ordine dei contenitori sono la chiave segreta)
  • il ricevente recupera il flusso di dati nascosto con la chiave segreta

Il vantaggio della steganografia, rispetto alla sola crittografia, è che i messaggi sono costruiti in modo da non attirare l'attenzione. Dei messaggi visibilmente crittografati - per quanto robusti - destano sospetto e, nei paesi dove la crittografia è illegale, possono essere incriminanti. Un messaggio steganografato, oltre a proteggere il contenuto del messaggio, protegge anche le parti che vogliono comunicare.

Il Watermarking è l'azione di marcare un contenitore con una stringa di riconoscimento o di copyright. OpenPuff lo fa con un meccanismo steganografico invisibile, disponibile per tutti i formati di contenitore supportati. Il marchio inserito, non protetto da password, è accessibile da tutti (usando il programma).[1]

Architettura della multi crittografia
Architettura della multi crittografia

Multi crittografia[modifica | modifica wikitesto]

OpenPuff è un programma semi open source:

  • la crittografia, il CSPRNG, l'hash (usato nell'estensione esadecimale della password), e lo scrambling sono open source

Gli algoritmi crittografici (16 presi dall'AES, NESSIE e CRYPTREC) sono uniti in un unico algoritmo multi crittografico:

  • vengono inizializzate le chiavi e i dati statici interni di ogni algoritmo f
  • ogni blocco di dati D [ i ] (128bit) viene crittografato usando un diverso algoritmo f [ i ]
  • f [ i ] viene scelto con un oracolo random, inizializzato con una seconda password indipendente[2]
1. Scelta dell'algoritmo di crittografia per il blocco dati i
f [ i ] = rand ( Oracolo )
2. Applicazione della crittografia al blocco dati i
Cipher ( D [ i ] ) = f [ i ] ( D [ i ] )
CSPRNG

Resistenza statistica[modifica | modifica wikitesto]

Le proprietà di resistenza statistica dei moduli CSPRNG e di multi crittografia sono state testate usando le suite di test ENT,[3] NIST[4] e DIEHARD[5]. I risultati forniti provengono da campioni di 64KB, 128KB, ... 256MB:

Codifica dei bit di trasporto

Resistenza steganalitica[modifica | modifica wikitesto]

Sicurezza, performance e resistenza steganalitica sono obiettivi contrastanti.[6]

[Sicurezza vs. Performance]: Whitening

  • Pro: assicura una maggiore sicurezza
  • Pro: consente la steganografia negabile
  • Contro1: richiede molti bit di carrier extra

[Sicurezza vs. Steganalisi]: Crittografia + Whitening

  • Pro: assicura una maggiore sicurezza
  • Contro2: i contenitori sono identificati come "sospetti" a causa della forte componente random

I dati, prima di essere iniettati nei contenitori, vengono crittografati e sottoposti a whitening: piccole quantità di dati nascosti si trasformano così in un grosso segmento di dati pseudorandom "sospetti". L'operazione di iniezione nei contenitori adotta come codifica una funzione nonlineare di copertura[7] che prende in input anche i bit originali del contenitore. I contenitori modificati subiscono meno modifiche (Contro1) e, diminuendo la risposta statistica pseudorandom, superano più test steganalitici (Contro2).

Utilizzo della steganografia negabile

Steganografia negabile[modifica | modifica wikitesto]

Nonostante il flusso di dati nascosto esibisca “caratteristiche naturali” esiste sempre una possibilità non trascurabile che la steganografia venga rilevata (effetti collaterali impredicibili, essere colti in flagrante delicto, ...). È possibile resistere anche a questi attacchi impredicibili, anche quando si è costretti (dalla legge o con la forza) a fornire una password di decodifica valida.[8][9] La steganografia negabile (una tecnica basata sull'uso di una o più esche) permette di negare in maniera convincente il fatto stesso che dei dati sensibili siano stati nascosti. È necessario fornire una o più esche sacrificabili, che plausibilmente si sarebbero volute mantenere confidenziali, e rivelarle all'attaccante sostenendo che è l'unico contenuto.

Note[modifica | modifica wikitesto]

  1. ^ Cours : stéganographie et tatouage numérique
  2. ^ Manuale OpenPuff
  3. ^ ENT - A Pseudorandom Number Sequence Test Program
  4. ^ NIST - A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications
  5. ^ DIEHARD - The Marsaglia Random Number CDROM including the Diehard Battery of Tests of Randomness
  6. ^ Niels Provos, Defending against statistical steganalysis in Proceedings of the 10th conference on USENIX Security Symposium, vol. 10, USENIX Association, pp. 24-37. URL consultato il 28 novembre 2012.
  7. ^ Bierbrauer, Jürgen; Fridrich, Jessica, Constructing good covering codes for applications in Steganography in Transactions on Data Hiding and Multimedia Security III, vol. 4920, Springer Berlin Heidelberg, pp. 1-22, DOI:10.1007/978-3-540-69019-1_1. URL consultato il 28 novembre 2012.
  8. ^ Greg S. Sergienko, Self Incrimination and Cryptographic Keys in Richmond Journal of Law and Technology, vol. 2, nº 1, jolt.richmond.edu. URL consultato il 28 novembre 2012.
  9. ^ Julian Assange - Coercizione fisica

Collegamenti esterni[modifica | modifica wikitesto]