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 pubblicata 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
OpenPuff
software
Logo
Logo
Schermata di esempio
Schermata di esempio
Screenshot di OpenPuff 4.0
GenereSicurezza informatica
SviluppatoreIng. Cosimo Oliboni
Ultima versione4.01 (19 luglio 2018)
Sistema operativoMicrosoft Windows
Licenza GNU LGPL
(licenza libera)
Sito webHomePage

L'ultima versione supporta molti formati di contenitore

Utilizzo

modifica

OpenPuff è usato principalmente per lo scambio dati anonimo 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

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

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

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

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.

  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 Archiviato il 25 gennaio 2016 in Internet Archive.
  6. ^ Niels Provos, Defending against statistical steganalysis (ps), 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 (PDF), 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.
  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