StegCloak è un puro modulo di steganografia JavaScript progettato in stile di programmazione funzionale, per nascondere segreti all’interno del testo comprimendo e crittografando il segreto prima di occultarlo con speciali caratteri invisibili Unicode. Può essere utilizzato per filigranare in modo sicuro stringhe, script invisibili su pagine Web, testi sui social media o per qualsiasi altra comunicazione nascosta. Completamente invisibile!
Caratteristiche
- Utilizza password e integrità HMAC
- Crittograficamente sicuro, con AES-256-CTR.
- Utilizza 6 caratteri invisibili in caratteri Unicode che funzionano ovunque nel Web: Tweet, Gmail, WhatsApp, Telegram, Instagram, Facebook e molti altri!
- Massima compressione per ridurre il carico utile (LZ, Huffman).
- Completamente invisibile, utilizza caratteri a larghezza zero invece di spazi o tabulazioni.
- Super veloce: nasconde la fonte della pagina Wikipedia per la steganografia (800 righe e 205362 caratteri) all’interno di un testo di copertina di 3 parole in meno di un secondo.
- È possibile nascondere i file nelle stringhe caricando il file nel cloud e nascondendo il collegamento nella stringa
- Scritto in puro stile funzionale.
- Utilizzo: disponibile come modulo API, CLI e anche interfaccia Web (ottimizzata con i web worker).
Installazione
Utilizzando npm,
$ npm install -g stegcloak
Usando npm (per usarlo localmente nel tuo programma),
$ npm installa stegcloak
Come funziona
Utilizzo della CLI
Nascondere
$ stegcloak hide
Opzioni:
hide [options] [secret] [cover]
-fc, --fcover <file> Extract cover text from file
-fs, --fsecret <file> Extract secret text from file
-n, --nocrypt If you don't need encryption (default: false)
-i, --integrity If additional security of preventing tampering is needed (default: false)
-o, --output <output> Stream the results to an output file
-c, --config <file> Config file
-h, --help display help for command
Svelare
$ stegcloak rivela
Opzioni:
reveal [message]
-f, --file <file> Extract message from file
-cp, --clip Copy message directly from clipboard
-o, --output <output> Stream the secret to an output file
-c, --config <file> Config file
-h, --help display help for command
Supporto aggiuntivo
- La variabile d’ambiente STEGCLOAK_PASSWORD, se impostata, verrà utilizzata di default come password.
- Supporto del file di configurazione per configurare StegCloak CLI e per evitare richieste. Leggi i documenti di configurazione qui.
Utilizzo delle API
const StegCloak = require ( 'stegcloak' ) ;
const stegcloak = nuovo StegCloak ( vero , falso ) ; // Inizializza con crittografia true e hmac false per nascondere
// Questi argomenti vengono utilizzati solo durante hide
// Può essere modificato in seguito cambiando i flag booleani per stegcloak.encrypt e stegcloak.integrity
Cos’è l’HMAC e ne ho bisogno?
HMAC è un ulteriore passaggio di sicurezza delle impronte digitali intrapreso per la manomissione dei testi e per verificare se il messaggio ricevuto è stato effettivamente inviato dal mittente previsto. Se i dati vengono inviati tramite WhatsApp, Messenger o qualsiasi piattaforma di social media, questo è già stato risolto! Tuttavia, se stai usando StegCloak nel tuo programma per trasmettere e recuperare in sicurezza, questa opzione può essere abilitata e StegCloak se ne prende cura.
Nascondere
stegcloak.hide(secret, password, cover) -> string
const magic = stegcloak . hide ( "Voldemort è tornato" , "malizia gestita" , "Il WiFi non funziona qui!" ) ;
// Utilizza stegcloak.encrypt e stegcloak.integrity booleani per l'offuscamento
console . log ( magia ) ; // Il WiFi non funziona qui!
Svelare
stegcloak.reveal(data, password) -> string
const secret = stegcloak . rivelare ( magia , "malizia gestita" ) ;
// Rileva automaticamente se la crittografia o i controlli di integrità sono stati eseguiti durante hide e agisce di conseguenza
console . log ( segreto ) ; // Voldemort è tornato
Questo blog mostra come puoi utilizzare l’API StegCloak per filigranare qualsiasi testo sul tuo sito web.
Importante
StegCloak non risolve il problema di Alice-Bob-Warden, è potente solo quando le persone non lo cercano e ti aiuta a farlo davvero bene, date le sue proprietà invisibili sul web! Potrebbe essere tranquillamente utilizzato per la filigrana nei forum, tweet invisibili, social media ecc. Per favore, non usarlo quando sai che c’è qualcuno che sta attivamente annusando i tuoi dati, guardando i caratteri Unicode attraverso uno strumento di analisi dei dati. In quel caso, anche se il segreto codificato non può essere decifrato, il fatto è che il Custode (intermediario) sa che è avvenuta una comunicazione segreta, perché avrebbe notato una quantità insolita di personaggi invisibili speciali.
Risorse
Si è fatto riferimento ai seguenti documenti per approfondimenti e comprensione dell’uso dei caratteri a larghezza zero nella steganografia.
- Milad Tale di Ahvanooey, Qianmu Li, Jun Hou, Ahmed Raza Rajput e Chen Yini
Modern Text Hiding, Text Steganalysis, and Applications: A Comparative Analysis
- Taleby Ahvanooey, Milad & Li, Qianmu & Hou, Jun & Dana Mazraeh, Hassan & Zhang, Jing.
AITSteg: An Innovative Text Steganography Technique for Hidden Transmission of Text Message via Social Media.
IEEE Access