Come posso crittografare i dati compressi in modo sicuro?

2

Come menzionato in questa risposta particolare, la compressione dei dati prima della crittografia può portare a attacco CRIME , soprattutto se l'hacker ha raccolto molte versioni simili dei dati trasmessi.

Usiamo il seguente esempio per questo particolare caso di sicurezza:

  • Bob sta utilizzando un programma di diario personale crittografato che viene archiviato in un file che viene crittografato utilizzando AES-256 in modalità CBC con un HMAC SHA-256 (o AES-256 in modalità GCM).
    • Il diario comprime il testo della voce usando la compressione LZ o DEFLATE al salvataggio.
    • La struttura del file journal è un albero BSON abbastanza semplice (si pensi JSON, ma binario quindi non è necessario sfuggire alle stringhe / etc.) che semplicemente comprime il testo del journal reale al salvataggio del file, ma non i titoli delle voci del journal, le date, ecc. .
  • Bob memorizza questo file in una cartella Dropbox che viene sincronizzata sulle sue macchine.
  • Una delle macchine di Bob è compromessa e Oscar ora ha accesso al suo account Dropbox.
  • Oscar può scaricare tutta la cronologia del diario da Dropbox.

Qual è la superficie di attacco principale, se esiste, per Oscar? La compressione dei dati nel file di giornale crittografato offre compromessi che Oscar può sfruttare?

    
posta Naftuli Kay 23.05.2014 - 18:53
fonte

2 risposte

2

Per quanto comprendo il tuo schema non è vulnerabile a CRIME nello scenario che hai presentato, gli attacchi in stile CRIME che richiedono l'hacker di indurre Bob a comprimerlo e quindi crittografare il materiale di sua scelta, quindi essere in grado di osservare proprio almeno la dimensione del risultato.

Tuttavia, se dovessi attaccare il tuo schema, sceglierei la parte che hai tralasciato: generazione di chiavi e più in generale ciclo di vita delle chiavi.

Se si genera la chiave di crittografia da una password, si applica una password complessa e si utilizza una buona funzione di derivazione della chiave, si è sicuri che ad es. non perdere l'entropia con alcuni errori stupidi come giocare con la codifica o in qualche modo normalizzare la password?

La chiave è generata casualmente (quindi si pone la domanda, quanto è buona la fonte della casualità), quindi protetta da un altro meccanismo e quanto è strong?

Hai menzionato la rottura della macchina Bob, sei sicuro che nessun materiale chiave verrà lasciato indietro? Blocca il materiale chiave in memoria? Lo azzeri correttamente una volta che hai finito? Eviti di passarlo sulla riga di comando?

    
risposta data 23.05.2014 - 19:33
fonte
2

CRIME è un tipo di attacco a testo normale prescelto in cui la maggior parte, ma non tutto il testo in chiaro è sotto l'attacco dell'attaccante controllo, e l'attaccante desidera scoprire qual è il resto del testo in chiaro. Il tuo scenario è completamente immune da questo tipo di attacco, dal momento che l'attaccante non ha alcun controllo sul testo in chiaro.

    
risposta data 24.05.2014 - 06:44
fonte

Leggi altre domande sui tag