Wie behebe ich "WARNUNG: Nachricht war nicht integritätsgeschützt" bei Verwendung der symmetrischen GPG-Verschlüsselung?

45

Ich habe eine Datei mit der folgenden symmetrischen Verschlüsselung verschlüsselt:

gpg --symmetric myfile

was zu einer Datei führt myfile.gpg.

In Ordung. Nun entschlüsseln wir die Datei noch einmal:

gpg -o myfile --decrypt myfile.gpg

Ich werde nach der Passphrase gefragt, die ich eingegeben habe, 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 ich weiß, dass diese sicher sind.
  • Warum ist es nicht für die Integrität geschützt?
  • Und wie behebe ich das?
gertvdijk
quelle
Übrigens können Sie nur gpg -c myfileverschlüsseln und gpg myfile.gpgentschlüsseln, die Ausgabe wird myfilestandardmäßig entschlüsselt .
cprn
1
@CyprianGuerra gpg myfile.gpgführt zu einer entschlüsselten Ausgabe, die auf meinem System an stdout gesendet wird ...
gertvdijk
Interessant. Ich habe es auf
Standardeinstellungen
Ich habe die GUI von hier heruntergeladen und die Datei damit entschlüsselt. Es funktionierte! pgptool.github.io
Iftikhar Ahmad Dar

Antworten:

69

Hintergrund

CAST-5 ist ein älterer Verschlüsselungsalgorithmus, der von GnuPG verwendet wird, da AES zu dem Zeitpunkt, als GnuPG ursprünglich als Quelle erstellt wurde, noch nicht existierte . Es ist nicht weit verbreitet (abgesehen von GnuPG aus Kompatibilitätsgründen).

Das WARNING: message was not integrity protectedliegt daran , dass diese Funktion nicht eingeschaltet wird zum Zeitpunkt der Verschlüsselung standardmäßig aktiviert. Wenn dies aktiviert war, konnte GnuPG feststellen, ob die Datei während der Übertragung geändert wurde.

Update: In modernen Versionen von GnuPG, die mit Ubuntu / Debian ausgeliefert werden, ist MDC jetzt standardmäßig aktiviert und Sie sollten diese Meldung nie mehr für etwas sehen, das mit diesen neueren Versionen signiert ist.

Lösungen

Um ein stärkeres AES-256 zu verwenden, müssen Sie es entweder in der Befehlszeile oder in Ihrer Konfigurationsdatei angeben.

  • Befehlszeile: Fügen Sie die --cipher-algo AES256Option hinzu, damit die gesamte zu verschlüsselnde Zeile angezeigt wird

    gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
    
  • Konfigurationsdatei (empfohlen): Fügen Sie Ihrer ~/.gnupg/gpg.confKonfigurationsdatei die folgende Zeile hinzu .

    cipher-algo AES256
    

    Ich empfehle diesen Ansatz, da er für alle zukünftigen GPG-Vorgänge mit diesem Benutzerkonto verwendet wird.

Der Benutzer muss nichts ändern, um die Datei zu entschlüsseln - GnuPG erkennt dies automatisch.

Beachten Sie, dass die Nachricht bei Verwendung der AES-256-Verschlüsselung automatisch auf Integrität geschützt wird. Um den Integritätsschutz für andere Chiffren, für die dies nicht aktiviert ist (wie CAST-5), manuell zu aktivieren, fügen Sie die --force-mdcOption beim Verschlüsseln hinzu.

Noch besser: unterschreiben!

Ein noch besserer Ansatz wäre, Ihre Dateien mit Ihrem Schlüsselpaar zu signieren (wenn Sie es haben). Fügen Sie dem --signVerschlüsselungsbefehl einfach die folgende Option hinzu:

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

Dadurch wird nicht nur die Integrität der Datei überprüft, sondern es wird auch dem Empfänger der Datei ermöglicht, den Ursprung zu überprüfen. Bei Änderungen an der Datei schlägt die Signaturprüfung fehl.

gertvdijk
quelle
Benötige ich zum Signieren kein Zertifikat?
Bilal Fazlani
@bilalfazlani Zum Signieren benötigen Sie ein GnuPG-Schlüsselpaar, ja. Sie müssen es nicht veröffentlichen, wenn Sie es nicht möchten. Teilen Sie einfach den öffentlichen Schlüssel mit den Kollegen, mit denen Sie die verschlüsselten Dateien teilen, und sie sollten den Fingerabdruck des Schlüssels mit Ihnen überprüfen.
Gertvdijk
Vielen Dank für die ausführliche Antwort. Können Sie mehr über die Verwendung des Schlüsselpaars erklären?
Ben-Nabiy Derush
"Nachricht war nicht integritätsgeschützt" passiert auf der Empfängerseite und Sie sagen, wie dies auf der Absenderseite behoben werden soll. Die Frage ist, wie man das Problem auf der Empfängerseite ignoriert, um ältere Nachrichten (in enigmail) entschlüsseln zu können
ensonic
@ ben-NabiyDerush In diesen beiden Artikeln werden möglicherweise Ihre Fragen zur Verwendung eines öffentlichen und eines privaten Schlüsselpaars (und warum) geklärt. Kryptographie mit öffentlichem Schlüssel . Web of Trust
Jpaugh