Ich möchte eine Datei (mit AES 256) mit einem Schlüssel verschlüsseln, den ich selbst erstelle und verwalte. Gibt es ein Linux-Befehlszeilenprogramm, das dies unterstützt? gpg
Nein, und ich glaube, openssl
das tut es auch nicht?
Zu Ihrer Information: Ich bin mir völlig bewusst, dass das Erstellen und Verwalten von Schlüsseln selbstnichtgilt als sicher oder als beste Vorgehensweise. Trotzdem möchte ich das aus meinen eigenen, eigentümlichen Gründen tun. Wenn alles andere fehlschlägt, kann ich etwas in Java schreiben, um dies zu tun, aber wenn es ein vorhandenes Dienstprogramm gibt, würde ich es lieber verwenden.
Antwort1
gpg unterstützt AES256, Sie müssen lediglich die Konfigurationsdatei ändern. Es gibt Optionen zum Festlegen der bevorzugten Verschlüsselung und Optionen zum Verschlüsselungszeitpunkt.
gpg rät davon ab, die Verschlüsselungschiffre festzulegen, da diese automatisch basierend auf den Präferenzen ausgewählt wird. Um die Kompatibilität zu maximieren, gibt es eine Reihe unterstützter Schiffre.
hier können Sie die unterstützten Chiffren sehen:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
und noch einmal mit deaktivierten Chiffren:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: AES256, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
Antwort2
Schauen Sie sich mcrypt anhand Ihrer Beschreibung an, es sollte Ihren Anforderungen entsprechen. Da Sie damit Ihre eigenen Schlüssel verwenden können. Ich bin mir jedoch nicht sicher, warum Sie gpg nicht verwenden können. TinyCA ist eine weitere Option, wenn Sie versuchen, diese Verschlüsselung für das Web oder zum Signieren von Software zu verwenden.
Sie haben bereits angemerkt, dass Sie die Einschränkungen bei der Selbstsignierung verstehen, daher überlasse ich dies Ihrem Urteil.
Antwort3
Das openssl
Befehlszeilenprogramm kann dies mithilfe eines Kennworts aus einer Datei tun:
openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc
openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain
Sie könnten -K
den tatsächlich verwendeten Schlüssel festlegen, anstatt ihn aus einem Kennwort abzuleiten. Dann muss allerdings auch der IV manuell festgelegt werden, was nicht sehr praktisch ist.
Die Manualpage istenc(1)
.