OpenPuff

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
OpenPuff
software
Logo
Logo
Screenshot di OpenPuff v4.00
Screenshot di OpenPuff v4.00
Screenshot di OpenPuff v4.00
GenereSicurezza informatica
SviluppatoreIng. Cosimo Oliboni
Ultima versione4.00 (7 luglio 2012)
Sistema operativoMicrosoft Windows
LicenzaGNU Lesser General Public License
(licenza libera)
Sito webembeddedsw.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

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 incriminati. 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

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

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

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

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

Collegamenti esterni