GNU/Linux >> Znalost Linux >  >> Linux

Jak zašifrovat velký soubor v openssl pomocí veřejného klíče

Ř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.


Linux
  1. Jak se přihlásit k OpenStack Instance nebo VM přes PuTTY pomocí klíče?

  2. Použití nc pro přenos velkých souborů

  3. Jak otevřít soubor ve vim pomocí pipe

  1. Jak šifrovat a dešifrovat soubory a adresáře pomocí Tar a OpenSSL

  2. Jak zašifrovat a dešifrovat soubor pomocí GnuPG v Linuxu

  3. Jak podložit soubor pomocí FF pomocí dd?

  1. Jak šifrovat a dešifrovat soubory/složky v Linuxu pomocí GnuPG

  2. Jak určit soukromý klíč při dešifrování souboru pomocí GnuPG?

  3. Jak odstranit soubor bez použití rm?