Come posso correggere "ATTENZIONE: il messaggio non è protetto dall'integrità" quando si utilizza la crittografia simmetrica GPG?


45

Ho crittografato un file usando la crittografia simmetrica in questo modo:

gpg --symmetric myfile

che risulta in un file myfile.gpg.

Tutto a posto. Ora decifriamo di nuovo il file:

gpg -o myfile --decrypt myfile.gpg

Mi viene chiesto il passphrase che ho messo, e poi vedo

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Non sono sicuro della prima e dell'ultima riga lì.

  • Cos'è il codice CAST5 ed è sicuro? Conosco 3DES e AES e so che sono sicuri.
  • Perché non è protetto per integrità?
  • E inoltre, come posso risolvere questo problema?

Tra l'altro puoi solo gpg -c myfilecrittografare e gpg myfile.gpgdecrittografare, l'output verrà decrittografato myfileper impostazione predefinita.
cprn,

1
@CyprianGuerra gpg myfile.gpgsi tradurrà in output decrittografato inviato a stdout sul mio sistema ...
gertvdijk

Interessante.
Ce l'

Ho scaricato la GUI da qui e il file è stato decifrato usando. Ha funzionato! pgptool.github.io
Iftikhar Ahmad Dar,

Risposte:


69

sfondo

CAST-5 è un algoritmo di crittografia più vecchio usato da GnuPG perché AES non esisteva ancora indietro nel tempo GnuPG è stato creato inizialmente fonte . Non è ampiamente usato (a parte GnuPG per motivi di compatibilità).

Questo WARNING: message was not integrity protectedperché questa funzione non è attivata per impostazione predefinita al momento della crittografia. Se questo fosse attivato, GnuPG potrebbe dire se il file è stato modificato durante il trasporto.

Aggiornamento: le versioni moderne di GnuPG fornite con Ubuntu / Debian ora hanno MDC abilitato di default e non dovresti mai più vedere questo messaggio per nulla firmato con queste nuove versioni.

soluzioni

Per usare un AES-256 più forte devi specificarlo sulla riga di comando o nel tuo file di configurazione.

  • Riga di comando: aggiungi l' --cipher-algo AES256opzione in modo che diventi la riga completa da crittografare

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • File di configurazione (consigliato): aggiungere la seguente riga al ~/.gnupg/gpg.conffile di configurazione.

    cipher-algo AES256
    

    Consiglio questo approccio perché verrà utilizzato per tutte le future operazioni GPG su questo account utente.

Non c'è nulla da cambiare per l'utente di decrittografare il file - GnuPG lo rileverà automaticamente.

Si noti che utilizzando il codice AES-256, il messaggio viene automaticamente protetto per integrità. Per abilitare manualmente la protezione dell'integrità su altri codici per i quali non è abilitato (come CAST-5) aggiungere l' --force-mdcopzione durante la crittografia.

Ancora meglio: firma!

Un approccio ancora migliore sarebbe quello di firmare i tuoi file con la tua coppia di chiavi (se ce l'hai). Basta aggiungere l' --signopzione al comando di crittografia, in questo modo:

gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile

Ciò non solo convaliderà l'integrità del file, ma consentirà anche al destinatario del file di verificarne l'origine. Qualsiasi modifica al file avrebbe esito negativo al controllo della firma.


Non ho bisogno di un certificato per firmare?
Bilal Fazlani,

@bilalfazlani per firmare avrai bisogno di una coppia di chiavi GnuPG, sì. Non è necessario renderlo pubblico se non si desidera. Basta condividere la chiave pubblica con i peer con cui condividi i file crittografati e dovrebbero verificare con te l'impronta digitale della chiave.
gertvdijk,

Grazie per la risposta dettagliata Puoi spiegarci di più su come usare la coppia di chiavi?
ben-Nabiy Derush,

"Il messaggio non era protetto contro l'integrità" viene visualizzato sul lato destinatario e si dice come risolvere il problema sul lato mittente. La domanda è come ignorare il problema sul lato ricevente per poter decifrare i messaggi più vecchi (in enigmail)
ensonic,

@ ben-NabiyDerush Questi due articoli potrebbero chiarire le tue domande su come (e perché) usare una coppia di chiavi pubblica e privata. Crittografia a chiave pubblica . Web of Trust
jpaugh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.