
Ich habe eine Datei mit symmetrischer Verschlüsselung wie folgt verschlüsselt:
gpg --symmetric myfile
Das Ergebnis ist eine Datei myfile.gpg
.
Okay. Jetzt entschlüsseln wir die Datei noch einmal:
gpg -o myfile --decrypt myfile.gpg
Ich werde nach der von mir eingegebenen Passphrase gefragt und dann sehe ich
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
Bei der ersten und letzten Zeile bin ich mir nicht sicher.
- Was ist die CAST5-Verschlüsselung und ist sie sicher? Ich kenne 3DES und AES und weiß, dass diese sicher sind.
- Warum wird die Integrität nicht geschützt?
- Und außerdem: wie behebe ich das?
Antwort1
Hintergrund
CAST-5ist ein älterer Verschlüsselungsalgorithmus, der von GnuPG verwendet wird, da AES zum Zeitpunkt der ursprünglichen Entwicklung von GnuPG noch nicht existierteQuelle. Es wird nicht häufig verwendet (abgesehen von GnuPG aus Kompatibilitätsgründen).
Das WARNING: message was not integrity protected
liegt daran, dass diese Funktion zum Zeitpunkt der Verschlüsselung nicht standardmäßig aktiviert ist. Wenn sie aktiviert wäre, könnte GnuPG erkennen, ob die Datei während der Übertragung verändert wurde.
Update: Moderne Versionen von GnuPG, die mit Ubuntu/Debian ausgeliefert werden, haben jetzt MDCstandardmäßig aktiviertund Sie sollten diese Meldung nie wieder für etwas sehen, das mit diesen neueren Versionen signiert wurde.
Lösungen
Um einen stärkeren AES-256 zu verwenden, müssen Sie ihn entweder in der Befehlszeile oder in Ihrer Konfigurationsdatei angeben.
Befehlszeile: Fügen Sie die
--cipher-algo AES256
Option hinzu, so dass die gesamte zu verschlüsselnde Zeilegpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
Konfigurationsdatei (empfohlen): Fügen Sie Ihrer
~/.gnupg/gpg.conf
Konfigurationsdatei die folgende Zeile hinzu.cipher-algo AES256
Ich empfehle diesen Ansatz, da er für alle zukünftigen GPG-Vorgänge auf diesem Benutzerkonto verwendet wird.
Zum Entschlüsseln der Datei muss der Benutzer nichts ändern – GnuPG erkennt dies automatisch.
Beachten Sie, dass die Integrität der Nachricht bei Verwendung der AES-256-Chiffre automatisch geschützt ist. Um den Integritätsschutz bei anderen Chiffren, für die dies nicht aktiviert ist (wie CAST-5), manuell zu aktivieren, fügen Sie die --force-mdc
Option beim Verschlüsseln hinzu.
Noch besser: unterschreiben!
Ein noch besserer Ansatz wäre, Ihre Dateien mit Ihrem Schlüsselpaar zu signieren (falls Sie es haben). Fügen Sie die --sign
Option einfach dem Verschlüsselungsbefehl hinzu, wie folgt:
gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile
Dadurch wird nicht nur die Integrität der Datei überprüft, sondern der Empfänger der Datei kann auch den Ursprung der Datei überprüfen. Jegliche Änderungen an der Datei würden dazu führen, dass die Signaturprüfung fehlschlägt.