La 'demo' è una buona scelta per la crittografia dei file?

4

L'utilità della riga di comando di scrypt (vedi link ) è in realtà solo una dimostrazione dell'algoritmo di hashing della password dello script.

Tuttavia, per la semplice crittografia a riga di comando dei file, mi sembra che potrebbe essere uno dei più sicuri. Tutte le utility di crittografia simmetrica (gpg, openssl, ccrypt) dipendono quasi totalmente dalla sicurezza della password , la crittografia del file sottostante è quasi irrilevante.

Per quanto posso dire, la demo di scrypt usa ssl per la crittografia effettiva, qualcuno può confermarlo a proposito?

Quindi, mi sembra che scrypt sia probabilmente una buona scelta per uno strumento di crittografia dei file di riga di comando facile da usare. Ho ragione?

    
posta Chris Green 08.10.2015 - 11:04
fonte

1 risposta

1

Sfondo: il comando scrypt di Tarsnap utilizza la crittografia AES implementata dal proprio libcperciva . L'algoritmo scrypt viene utilizzato come funzione di derivazione della chiave .

Il bello: l'algoritmo di scrypt è una delle funzioni di derivazione della chiave, se non la più crittograficamente sicura, che conosciamo. Ciò significa che durante un attacco di tipo brute-force, il calcolo della chiave dalle possibili password sarà molto costoso. scrypt usa anche un sale di 32 byte durante la creazione della chiave. Da scryptenc.c :

crypto_entropy_read(salt, 32)

Offre protezione contro le tabelle arcobaleno.

L'insolito: scrypt L'implementazione di AES avviene tramite il proprio libcperciva . Questa è un'implementazione personalizzata scritta da, e nominata per, Colin Percival, il fondatore di Tarsnap e autore dell'algoritmo scrypt . Mentre le implementazioni di crittografia homegrown sono generalmente considerate meno sicure, un'implementazione di scrypt da parte dell'autore, un autore piuttosto famoso, può essere un controesempio. Quindi è necessario confrontare i vantaggi che l'autore porta all'implementazione per il fatto che la libreria non è comunemente usata (ad esempio: ha una bassa statistiche Github , mancanza di visibilità in OpenHUB e solo 1K hit in Google ).

Riepilogo: È chiaro che l'utilizzo dell'algoritmo scrypt con un strong salt come funzione di derivazione chiave è una strategia crittograficamente sicura. Esiste il rischio di utilizzare l'implementazione di AES per uso domestico, sebbene ciò sia in qualche modo mitigato dall'abilità del suo autore. Ti rimangono tre opzioni che sembrano tutte scelte ragionevoli:

  1. Se si desidera uno strumento di crittografia AES a riga di comando che utilizza la funzione scrypt per la derivazione delle chiavi, si può considerare di scrivere il proprio utilizzando un'implementazione AES ben testata.

  2. Puoi utilizzare l'algoritmo di allungamento della chiave bcrypt , rendendolo più sicuro aumentando la lunghezza della password casuale che usi. Ciò significa che c'è di più da ricordare, ma fornisce una quantità nota e misurabile di sicurezza (rispetto alle incognite di libcperciva ).

  3. Puoi fidarti dell'attuazione di Colin Percival e usarla così com'è. Non mi sognerei di suggerire questo per la maggior parte delle persone, ma non stiamo parlando della maggior parte delle persone.

Nota: grazie a @StephenTouset per aver segnalato la notorietà di Colin Percival.

    
risposta data 08.10.2015 - 18:11
fonte

Leggi altre domande sui tag