Openssl / OpenPGP crittografia dei file - avviso di sicurezza [duplicato]

0

Sto pensando di utilizzare Openssl per crittografare i nostri backup settimanali offsite utilizzando un file chiave (crittografia simmetrica) e dopo alcune ricerche ho trovato il seguente comando GnuPGP:

base64 -w0 <keyfile.jpg | gpg --symmetric --passphrase-fd -0 backup.tar.gz

Tuttavia questo genera il seguente errore:

gpg: Warning: using insecure memory!
gpg: Fatal: out of core in secure memory while allocating 32800 bytes


A causa di ciò ho provato a utilizzare OpenSSl e ora ho questo comando:

pass=$(sha256sum keyfile.jpg | awk {'print $1'})
openssl aes-256-cbc -md sha512 -salt -a -e -in backup.tar.gz -out encrypted.tar.gz.aes -pass pass:$pass
pass=""

Questo è considerato un metodo sicuro per la crittografia dei file o GnuPGP era l'opzione migliore?

    
posta Anhofer 07.11.2018 - 00:12
fonte

2 risposte

2

Entrambi questi schemi sembrano un po 'eccessivamente complessi. Cerca di mantenerlo il più semplice possibile, perché se hai mai bisogno di decifrare questi file, probabilmente stai già avendo una brutta giornata, perché stai recuperando da un disastro.

Ti incoraggerei anche a utilizzare chiavi asimmetriche con gpg per un paio di motivi:

  1. Ogni messaggio (file) riceve una chiave simmetrica nuova e casuale
  2. Il 99% delle indicazioni su Internet relative a gpg si basa su chiavi asimmetriche, quindi quando stai passando una brutta giornata, sarà più facile trovare aiuto.

È inoltre possibile crittografare un file per più destinatari di chiavi private con GPG e crittografa semplicemente la stessa chiave di sessione ripetutamente utilizzando diverse chiavi pubbliche. Questo è ottimo per eliminare il "fattore di bus di 1" sui file di backup crittografati.

    
risposta data 07.11.2018 - 01:48
fonte
2

... [this gpg command] generates the following error: gpg: Warning: using insecure memory! gpg: Fatal: out of core in secure memory while allocating 32800 bytes

Stai tentando di utilizzare una chiave simmetrica troppo grande. Sei codec64 che codifica un file jpg e utilizza l'intero output come chiave. Quindi un file di grandi dimensioni produrrà una chiave grande. Invece di codificare in base64 il jpg, potresti eseguire hash il jpg (come hai scelto di fare nel secondo script che hai presentato) per produrre una chiave di dimensioni ragionevoli (una chiave che non ha dimensioni variabili con le dimensioni del file). Ma non ti sto raccomandando di farlo ...

...I tried using OpenSSl and have now this command:

pass=$(sha256sum keyfile.jpg | awk {'print $1'})

openssl aes-256-cbc -md sha512 -salt -a -e -in backup.tar.gz -out encrypted.tar.gz.aes > -pass pass:$pass

pass=""

In questo secondo caso, sei SHA256 che hashing il file jpg invece di base64 lo codifica ... Questo ti dà una chiave di dimensioni più ragionevoli. Per quanto riguarda gli altri parametri nel comando openssl: Ora stai usando aes256 in modalità CBC (aes-256-cbc). La modalità CBC non è una buona scelta. È preferibile utilizzare la modalità GCM o CCM con AES256.

    
risposta data 07.11.2018 - 02:10
fonte

Leggi altre domande sui tag