GNU/Linux >> Belajar Linux >  >> Linux

Cara mengenkripsi file besar di openssl menggunakan kunci publik

Solusi untuk menyandikan file siapa pun dengan aman dan terjamin tinggi di OpenSSL dan baris perintah:

Anda harus menyiapkan beberapa sertifikat X.509 untuk mengenkripsi file dalam format PEM.

Enkripsi file:

openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem

Apa itu:

  • senyum - perintah ssl untuk utilitas S/MIME (smime(1))
  • -enkripsi - metode yang dipilih untuk proses file
  • -biner - gunakan proses file yang aman. Biasanya pesan input dikonversi ke format "kanonik" seperti yang dipersyaratkan oleh spesifikasi S/MIME, sakelar ini menonaktifkannya. Ini diperlukan untuk semua file biner (seperti gambar, suara, arsip ZIP).
  • -aes-256-cbc - dipilih cipher AES dalam 256 bit untuk enkripsi (kuat). Jika tidak ditentukan 40 bit RC2 digunakan (sangat lemah). (Cipher yang didukung)
  • -di plainfile.zip - masukkan nama file
  • -keluar dienkripsi.zip.enc - nama file keluaran
  • -mengungguli DER - menyandikan file keluaran sebagai biner. Jika tidak ditentukan, file dikodekan oleh base64 dan ukuran file akan ditingkatkan sebesar 30%.
  • SslCertificate.pem Anda - nama file sertifikat Anda. Itu harus dalam format PEM.

Perintah itu dapat dengan sangat efektif mengenkripsi file besar terlepas dari formatnya.
Masalah umum: Sesuatu yang salah terjadi ketika Anda mencoba mengenkripsi file besar (>600MB). Tidak ada kesalahan yang terjadi, tetapi file terenkripsi akan rusak. Selalu verifikasi setiap file! (atau gunakan PGP - yang memiliki dukungan lebih besar untuk enkripsi file dengan kunci publik)

Dekripsi file:

openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password

Apa itu:

  • -menginformasikan DER - sama dengan -outform di atas
  • -inkey private.key - nama file kunci pribadi Anda. Itu harus dalam format PEM dan dapat dienkripsi dengan kata sandi.
  • -passin pass:your_password - kata sandi Anda untuk mengenkripsi kunci pribadi. (argumen frasa sandi)

Crypto kunci publik bukan untuk mengenkripsi file panjang yang sewenang-wenang. Seseorang menggunakan cipher simetris (katakanlah AES) untuk melakukan enkripsi normal. Setiap kali kunci simetris acak baru dihasilkan, digunakan, dan kemudian dienkripsi dengan cipher RSA (kunci publik). Ciphertext bersama dengan kunci simetris terenkripsi ditransfer ke penerima. Penerima mendekripsi kunci simetris menggunakan kunci privatnya, lalu menggunakan kunci simetris untuk mendekripsi pesan.

Kunci privat tidak pernah dibagikan, hanya kunci publik yang digunakan untuk mengenkripsi sandi simetris acak.


Linux
  1. Cara Mengenkripsi dan Mendekripsi File dan Direktori Menggunakan Tar dan OpenSSL

  2. Cara Enkripsi dan Dekripsi file/folder di Linux menggunakan GnuPG

  3. Bagaimana cara menghapus file tanpa menggunakan rm?

  1. Bagaimana Cara Masuk ke OpenStack Instance atau VM melalui Putty menggunakan Kunci?

  2. Cara Mengenkripsi dan Mendekripsi File menggunakan GnuPG di Linux

  3. Menggunakan nc untuk mentransfer file besar

  1. Bagaimana cara mengisi file dengan FF menggunakan dd?

  2. Cara membuka file di vim menggunakan pipa

  3. Bagaimana cara menentukan kunci pribadi saat mendekripsi file menggunakan GnuPG?