Bagaimana saya harus mengubah enkripsi sesuai dengan *** PERINGATAN: derivasi kunci usang digunakan

15

Ketika saya mengenkripsi atau mendekripsi file yang saya dapatkan *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Saya tidak mengerti apa artinya ini, bagaimana saya harus mengubah prosedur saya. Bisakah kamu membantuku? Saya mengenkripsi dengan openssl des3 <input >output.des3dan mendekripsi dengan openssl des3 -d <input.des3 >output

Tentang lingkungan

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018

Tommy Pollák
sumber
1
3DES sebagai metode enkripsi sedang dihentikan. Peringatan itu hanya menyarankan Anda menggunakan metode lain, mungkin merujuk ke crypto.stackexchange.com/questions/51629/… untuk lebih jelasnya.
guiverc
1
Kesalahan itu terjadi pada semua jenis sandi. Anda perlu menambahkan -pbkdf2 untuk perintah mengenkripsi dan mendekripsi.
Daniele Dellafiore
Maaf, tetapi bisakah Anda memberi contoh cara menambahkan -pbkdf2 ke perintah? Saya tidak mengerti bagaimana cara menambahkannya.
Tommy Pollák
1
Dalam contoh Anda, Anda hanya perlu melakukan openssl des3 -e -pbkdf2 < input > output.des3dan openssl des3 -d -pbkdf2 < input.des3 > output. Saya juga kebetulan setuju dengan komentar pertama bahwa Anda harus menggunakan cipher blok yang berbeda daripada 3DES (DES berasal dari tahun 1977), cara mudah untuk melakukannya adalah dengan menukar di aes256tempat yang saat ini Anda miliki des3dalam perintah tersebut, untuk menggunakan AES ( AES 256-bit memenuhi standar keamanan saat ini).
joelhardi
Terima kasih! Sekarang berfungsi dan tanpa peringatan menggunakan aes256. Jadi pertanyaannya dijawab.
Tommy Pollák

Jawaban:

12

Membandingkan Synopsys dari dua versi utama dan terbaru OpenSSL, izinkan saya mengutip halaman manual.

OpenSSL 1.1.0

openssl enc -ciphername [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

OpenSSL 1.1.1

openssl enc -cipher [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-iter count] [-pbkdf2] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-rand file...] [-writerand file] [-engine id]

Jelas ada beberapa perbedaan yang lebih besar, yaitu mempertimbangkan pertanyaan ini, ada dua sakelar yang tidak ada pada 1.1.0:

  • pbkdf2

  • iter


Anda pada dasarnya memiliki dua opsi sekarang. Abaikan peringatan atau sesuaikan perintah enkripsi Anda dengan sesuatu seperti:

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in InputFilePath -out OutputFilePath

Di mana switch ini:

  • -aes-256-cbcadalah apa yang harus Anda gunakan untuk perlindungan maksimum atau versi 128-bit, 3DES (Triple DES) ditinggalkan beberapa waktu lalu, lihat Triple DES telah ditinggalkan oleh NIST pada tahun 2017 , sementara AES semakin dipercepat oleh semua CPU modern; Anda dapat memverifikasi apakah CPU Anda memiliki set instruksi AES-NI misalnya menggunakan grep aes /proc/cpuinfo; menang, menang

  • -md sha512 adalah varian yang lebih cepat dari keluarga fungsi SHA-2 dibandingkan dengan SHA-256 sementara itu mungkin sedikit lebih aman; menang, menang

  • -pbkdf2: gunakan algoritma PBKDF2 (Function Derivation Key 2)

  • -iter 100000 menimpa hitungan iterasi default untuk kata sandi, mengutip halaman manual:

    Gunakan sejumlah iterasi pada kata sandi untuk mendapatkan kunci enkripsi. Nilai tinggi meningkatkan waktu yang diperlukan untuk memaksa file yang dihasilkan. Opsi ini memungkinkan penggunaan algoritma PBKDF2 untuk mendapatkan kunci.

LinuxSecurityFreak
sumber
1
Lalu, bagaimana cara mendekripsi ketika menggunakan openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
l mingzhi
1
Dengan hanya menambahkan -dperintah:openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
Eduard Itrich
1
Saya cukup yakin ada beberapa masalah dengan saran ini. Sesuai en.wikipedia.org/wiki/Key_derivation_function Anda ingin varian paling lambat dari algoritma derivasi kunci. Dengan kata lain jangan gunakan sha512 Per en.wikipedia.org/wiki/PBKDF2 in the year 2000 the recommended minimum number of iterations was 1000, but the parameter is intended to be increased over time as CPU speeds increase - jadi saya akan merekomendasikan suatu tempat antara 10.000 dan 100.000 iterasi daripada 1000.
oskarpearson
@oskarpearson Benar, saya baru saja membacanya. Memperbarui jawaban.
LinuxSecurityFreak
@oskarpearson Hash apa yang Anda rekomendasikan?
anthony