Řešení pro bezpečné a vysoce zabezpečené kódování souborů pro kohokoli v OpenSSL a příkazovém řádku:
Měli byste mít připravený nějaký certifikát X.509 pro šifrování souborů ve formátu PEM.
Šifrovat soubor:
openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem
Co je co:
- smime - příkaz ssl pro nástroj S/MIME (smime(1))
- -encrypt - zvolená metoda pro zpracování souborů
- -binární - používat bezpečný souborový proces. Normálně je vstupní zpráva převedena do „kanonického“ formátu, jak to vyžaduje specifikace S/MIME, tento přepínač to deaktivuje. Je nezbytný pro všechny binární soubory (jako obrázky, zvuky, ZIP archivy).
- -aes-256-cbc - zvolená šifra AES ve 256 bitech pro šifrování (silná). Pokud není uvedeno, použije se 40bitový RC2 (velmi slabý). (Podporované šifry)
- -v plainfile.zip - název vstupního souboru
- -out encrypted.zip.enc - název výstupního souboru
- -outform DER - zakódovat výstupní soubor jako binární. Pokud není zadáno, soubor je zakódován pomocí base64 a velikost souboru se zvýší o 30 %.
- vasSslCertificate.pem - název souboru vašeho certifikátu. Mělo by to být ve formátu PEM.
Tento příkaz dokáže velmi efektivně silně zašifrovat velké soubory bez ohledu na jejich formát.
Známý problém: Při pokusu o zašifrování velkého souboru (>600 MB) se stane něco špatného. Nebyla vyvolána žádná chyba, ale zašifrovaný soubor bude poškozen. Vždy ověřte každý soubor! (nebo použijte PGP - který má větší podporu pro šifrování souborů pomocí veřejného klíče)
Dešifrovat soubor:
openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password
Co je co:
- -informujte DER - stejné jako -outform výše
- -inkey private.key - název souboru vašeho soukromého klíče. To by mělo být ve formátu PEM a může být zašifrováno heslem.
- -passin pass:vaše_heslo - vaše heslo pro šifrování soukromého klíče. (argumenty přístupové fráze)
Šifrování s veřejným klíčem není pro šifrování libovolně dlouhých souborů. Jeden používá symetrickou šifru (řekněme AES) k normálnímu šifrování. Pokaždé se vygeneruje nový náhodný symetrický klíč, použije se a poté zašifruje šifrou RSA (veřejný klíč). Šifrovaný text spolu se zašifrovaným symetrickým klíčem je předán příjemci. Příjemce dešifruje symetrický klíč pomocí svého soukromého klíče a poté použije symetrický klíč k dešifrování zprávy.
Soukromý klíč není nikdy sdílen, pouze veřejný klíč se používá k zašifrování náhodné symetrické šifry.