Pengenalan

Pengenalan

OpenSSL adalah toolkit kriptografi yang kuat. Ramai di antara kita telah menggunakan OpenSSL untuk membuat kunci peribadi RSA atau CSR (permintaan menandatangani sijil). Walau bagaimanapun, adakah anda tahu bahawa anda boleh menggunakan OpenSSL untuk menanda aras kelajuan komputer anda atau yang anda juga boleh menyulitkan fail atau mesej? Artikel ini akan memberi anda beberapa petua mudah untuk mengikuti cara menyulitkan mesej dan fail menggunakan OpenSSL.

Menyulitkan dan menyahsulit mesej

Pertama kita boleh mulakan dengan menyulitkan mesej ringkas. Perintah Linux berikut akan menyulitkan mesej "Selamat datang ke LinuxCareer.com "menggunakan pengekodan base64:

$ echo "Selamat datang ke LinuxCareer.com "| openssl enc -base64
V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K

Output arahan di atas adalah rentetan yang disulitkan yang mengandungi mesej yang dikodkan "Selamat datang ke LinuxCareer.com "". Untuk menyahsulit semula rentetan kembali ke mesej asalnya, kita perlu membalikkan pesanan dan melampirkan pilihan untuk penyahsulitan:

$ echo "v2vsy29tzsb0bybmaw51eenhcmvlci5jb20k" | openssl enc -base64 -d
Selamat datang ke LinuxCareer.com

Penyulitan di atas adalah mudah digunakan, bagaimanapun, ia tidak mempunyai ciri penting kata laluan, yang harus digunakan untuk penyulitan. Contohnya, cuba nyahripasikan rentetan berikut dengan kata laluan "lulus":

U2fsdgvkx181xscmhkpia6j0qd76n/nsjjtc9nrduc0cbslpzqxq2db7ipd7kexj

Untuk melakukan penggunaan OpenSSL sekali lagi dengan pilihan -D dan kaedah pengekodan AES-256-CBC:

echo "u2fsdgvkx181xscmhkpia6j0qd76n/nsjjtc9nrduc0cbslpzqxq2db7ipd7kexj" | OpenSSL ENC -AES -256 -CBC -D -A

Seperti yang anda mungkin telah meneka, untuk membuat mesej yang disulitkan dengan kata laluan sebagai yang di atas, anda boleh menggunakan arahan Linux berikut:

 $ echo "Openssl" | OpenSSL ENC-AES-256-CBC -A Masukkan kata laluan penyulitan AES-256-CBC:
Mengesahkan-Masukkan kata laluan penyulitan AES-256-CBC:
U2fsdgvkx185e3h2me2d+qmcfkesxdtn8ncn/4sblr8 =


Sekiranya anda ingin menyimpan output OpenSSL ke fail dan bukannya menggunakan pengalihan stdout ">". Semasa menyimpan output yang disulitkan ke fail, anda juga boleh menghilangkannya -a pilihan kerana anda tidak lagi memerlukan output untuk menjadi teks ASCII berdasarkan:

$ echo "Openssl" | OpenSSL Enc-AES-256-CBC> OPENSSL.dat
Masukkan kata laluan penyulitan AES-256-CBC:
Mengesahkan-Masukkan kata laluan penyulitan AES-256-CBC:
$ fail openSSL.dat
OpenSSL.DAT: Data

Untuk menyahsulit openssl.Fail DAT Kembali ke penggunaan mesej asalnya:

$ openssl enc -aes -256 -cbc -d -in openssl.dat
Masukkan kata laluan penyahsulitan AES-256-CBC:
OpenSSL

Menyulitkan dan menyahsulit fail

Untuk menyulitkan fail dengan openssl semudah menyulitkan mesej. Satu -satunya perbezaan ialah bukannya echo perintah kita menggunakan -dalam pilihan dengan fail sebenar kami ingin menyulitkan dan -keluar pilihan, yang akan mengarahkan OpenSSL untuk menyimpan fail yang disulitkan di bawah nama tertentu:

Amaran: Pastikan fail output yang disulitkan diberi nama fail yang berbeza daripada fail input biasa asal. Ia juga disyorkan untuk melakukan sedikit ujian enkripsi/decrypt berjalan pada data dummy sebelum menyulitkan kandungan penting.

$ OPENSSL ENC -AES -256 -CBC -IN /ETC /SERVICE -PERKHIDMATAN.dat

Untuk menyahsulit semula penggunaan fail perkhidmatan kami:

$ OPENSSL ENC -AES -256 -CBC -D -IN SERVICE.DAT> Perkhidmatan.txt
Masukkan kata laluan penyahsulitan AES-256-CBC:

Menyulitkan dan menyahsulit direktori

Sekiranya anda perlu menggunakan OpenSSL untuk menyulitkan seluruh direktori yang anda lakukan, Firs, T perlu membuat gzip tarball dan kemudian menyulitkan tarball dengan kaedah di atas atau anda boleh melakukan kedua -duanya pada masa yang sama dengan menggunakan paip:

# tar cz /etc | OpenSSL ENC -AES -256 -CBC -out dll.tar.Gz.dat
Tar: Mengeluarkan '/' dari nama ahli
Masukkan kata laluan penyulitan AES-256-CBC:
Mengesahkan-Masukkan kata laluan penyulitan AES-256-CBC:

Untuk menyahsulit dan mengekstrak keseluruhan dll/ direktori kepada anda penggunaan direktori kerja semasa:

# openssl enc -aes -256 -cbc -d -in dll.tar.Gz.dat | tar xz
Masukkan kata laluan penyahsulitan AES-256-CBC:

Kaedah di atas boleh sangat berguna untuk sandaran yang disulitkan automatik.



Menggunakan kunci awam dan peribadi

Dalam bahagian ini, kami akan menunjukkan cara menyulitkan dan menyahsulit fail menggunakan kunci awam dan peribadi. Mula -mula kita perlu menjana kunci peribadi dan awam. Ini hanya boleh dilakukan oleh:

$ openssl genrsa -out private_key.PEM 1024
Menjana kunci peribadi RSA, modulus panjang 1024 bit
… ++++++
… ++++++
E IS 65537 (0x10001)

Dari kunci persendirian kita boleh menjana kunci awam:

$ openssl rsa -in private_key.PEM -out public_key.pem -outform pEM -pubout
Menulis kekunci RSA

Pada ketika ini anda harus mempunyai kunci peribadi dan awam yang terdapat di direktori kerja semasa anda.

$ ls
private_key.PEM Public_key.PEM

Seterusnya, kami membuat beberapa fail sampel yang dipanggil Encrypt.TXT dengan teks sewenang -wenangnya:

$ echo "Selamat datang ke LinuxCareer.com "> enkripsi.txt
$ Cat Encrypt.txt
Selamat datang ke LinuxCareer.com

Sekarang kami bersedia menyulitkan fail ini dengan kunci awam:

$ openssl rsautl -encrypt -inkey public_key.PEM -pubin -in enkripsi.TXT -out Encrypt.dat
$ ls
menyulitkan.Dat Encrypt.txt private_key.PEM Public_key.PEM
$ Fail Encrypt.dat
menyulitkan.DAT: Data

Seperti yang anda dapat lihat enkripsi baru kami.fail dat tidak lagi fail teks. Untuk menyahsulit fail ini, kita perlu menggunakan kunci peribadi:

$ openssl rsautl -decrypt -inkey private_key.PEM -in Encrypt.DAT -OUT NEW_ENCRYPT.txt
$ Cat new_encrypt.txt
Selamat datang ke LinuxCareer.com

Sintaks di atas agak intuitif. Seperti yang anda lihat, kami telah menyahsulit fail yang disulitkan.dat ke borang asalnya dan simpannya sebagai new_encrypt.txt. Anda boleh sebagai contoh menggabungkan sintaks ini dengan menyulitkan Direktori Contoh di atas untuk membuat skrip sandaran yang disulitkan automatik.

Kesimpulan

Apa yang baru sahaja anda baca adalah pengenalan asas kepada penyulitan OpenSSL. Ketika datang ke OpenSSL sebagai toolkit penyulitan secara literal tidak mempunyai batasan pada apa yang boleh anda lakukan. Untuk melihat cara menggunakan kaedah pengekodan yang berbeza lihat halaman manual OpenSSL: Man OpenSSL

Tutorial Linux Berkaitan:

  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Cara menjana sijil SSL yang ditandatangani sendiri di Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Ujian penanda aras pemacu USB di Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Cara Prestasi Cakera Penanda Aras di Linux
  • Menguji Pelanggan HTTPS Menggunakan OpenSSL untuk Mensimulasikan Pelayan
  • Menguasai Gelung Skrip Bash
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..