OpenPuff
OpenPuff software | |
---|---|
Screenshot di OpenPuff 4.0 | |
Genere | Sicurezza informatica |
Sviluppatore | Ing. Cosimo Oliboni |
Ultima versione | 4.01 (19 luglio 2018) |
Sistema operativo | Microsoft Windows |
Licenza | GNU LGPL (licenza libera) |
Sito web | HomePage |
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
L'ultima versione supporta molti formati di contenitore
- Immagini Bmp, JPG, Png, TGA
- File audio Aiff, MP3, WAV
- File video 3gp, Mp4, Mpeg I, Mpeg II, VOB
- File Flash-Adobe FLV, Pdf, SWF
Utilizzo
[modifica | modifica wikitesto]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]
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 ] )
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:
- test dell'entropia a livello di bit: >7.9999xx / 8.000000
- test di compressione: 0% di diminuzione della dimensione dopo la compressione
- test della distribuzione chi quadro: 40% < deviazione < 60%
- test del valore medio: 127.4x / 127.5
- test Monte Carlo: errore < 0.01%
- test di correlazione seriale: < 0.0001
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).
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]- ^ Cours : stéganographie et tatouage numérique
- ^ Manuale OpenPuff
- ^ ENT - A Pseudorandom Number Sequence Test Program
- ^ NIST - A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications
- ^ DIEHARD - The Marsaglia Random Number CDROM including the Diehard Battery of Tests of Randomness Archiviato il 25 gennaio 2016 in Internet Archive.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ Julian Assange - Coercizione fisica
Collegamenti esterni
[modifica | modifica wikitesto]- HomePage, su embeddedsw.net.
- Pagina sorgente, su embeddedsw.net.