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.