Das Verschlüsseln einer sehr großen Datei mit smime wird nicht empfohlen, da Sie möglicherweise große Dateien mit der Option -stream verschlüsseln können, die resultierende Datei jedoch aufgrund von Hardwareeinschränkungen nicht entschlüsseln können. Siehe: Problem beim Entschlüsseln großer Dateien
Wie oben erwähnt, dient die Krypto mit öffentlichem Schlüssel nicht zum Verschlüsseln beliebig langer Dateien. Daher generieren die folgenden Befehle eine Passphrase, verschlüsseln die Datei mit symmetrischer Verschlüsselung und verschlüsseln die Passphrase dann mit dem asymmetrischen (öffentlichen Schlüssel). Hinweis: Der Smime umfasst die Verwendung eines öffentlichen Primärschlüssels und eines Sicherungsschlüssels zum Verschlüsseln der Passphrase. Ein öffentliches / privates Backup-Schlüsselpaar wäre umsichtig.
Zufällige Passwortgenerierung
Richten Sie den RANDFILE-Wert für eine Datei ein, auf die der aktuelle Benutzer zugreifen kann, generieren Sie die Datei passwd.txt und bereinigen Sie die Einstellungen
export OLD_RANDFILE=$RANDFILE
RANDFILE=~/rand1
openssl rand -base64 2048 > passwd.txt
rm ~/rand1
export RANDFILE=$OLD_RANDFILE
Verschlüsselung
Verwenden Sie die folgenden Befehle, um die Datei mit dem Inhalt von passwd.txt als Kennwort und AES256 in eine base64-Datei (-a Option) zu verschlüsseln. Verschlüsseln Sie die Datei passwd.txt mit asymetrischer Verschlüsselung in die Datei XXLarge.crypt.pass mit einem öffentlichen Primärschlüssel und einem Sicherungsschlüssel.
openssl enc -aes-256-cbc -a -salt -in XXLarge.data -out XXLarge.crypt -pass file:passwd.txt
openssl smime -encrypt -binary -in passwd.txt -out XXLarge.crypt.pass -aes256 PublicKey1.pem PublicBackupKey.pem
rm passwd.txt
Entschlüsselung
Die Entschlüsselung entschlüsselt einfach den XXLarge.crypt.pass in passwd.tmp, entschlüsselt den XXLarge.crypt in XXLarge2.data und löscht die passwd.tmp-Datei.
openssl smime -decrypt -binary -in XXLarge.crypt.pass -out passwd.tmp -aes256 -recip PublicKey1.pem -inkey PublicKey1.key
openssl enc -d -aes-256-cbc -a -in XXLarge.crypt -out XXLarge2.data -pass file:passwd.tmp
rm passwd.tmp
Dies wurde gegen> 5 GB Dateien getestet.
5365295400 Nov 17 10:07 XXLarge.data
7265504220 Nov 17 10:03 XXLarge.crypt
5673 Nov 17 10:03 XXLarge.crypt.pass
5365295400 Nov 17 10:07 XXLarge2.data