Як слід змінити шифрування відповідно до *** ПОПЕРЕДЖЕННЯ: використане застаріле виведення ключа


17

Коли я шифрую або розшифровую отриманий файл *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

Я не розумію, що це означає, як я повинен змінити свої процедури. Не могли б ви мені допомогти? Я шифрую openssl des3 <input >output.des3і розшифровую за допомогою openssl des3 -d <input.des3 >output

Про довкілля

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018


1
3DES як метод шифрування відкликається. Попередження просто пропонує використовувати інший метод, можливо, докладніші відомості про crypto.stackexchange.com/questions/51629/…
guiverc

1
Ця помилка трапляється для будь-якого типу шифрів. Вам потрібно додати -pbkdf2 до команд шифрування та дешифрування.
Даніеле Деллафіоре

Вибачте, але ви можете, будь ласка, навести приклад того, як додати -pbkdf2 до команд? Я не розумію, як це слід додати.
Tommy Pollák

1
У вашому прикладі вам просто потрібно зробити openssl des3 -e -pbkdf2 < input > output.des3і openssl des3 -d -pbkdf2 < input.des3 > output. Я також погоджуюся з першим коментарем, що вам слід використовувати інший блок-шифр замість 3DES (DES - це з 1977 року), простий спосіб зробити це - просто поміняти місцями, aes256де у вас зараз є des3ці команди, використовувати AES ( 256-бітний AES відповідає сучасним стандартам безпеки).
joelhardi

Спасибі! Тепер він працює і без попереджень за допомогою aes256. Тож на запитання відповіли.
Tommy Pollák

Відповіді:


12

Порівнюючи Synopsys двох основних та останніх версій OpenSSL, дозвольте мені процитувати довідкові сторінки.

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]

Очевидно, є деякі більші відмінності, а саме з огляду на це питання, ці два комутатори відсутні в 1.1.0:

  • pbkdf2

  • iter


У вас зараз два варіанти. Або ігноруйте попередження або налаштуйте команду шифрування на щось подібне:

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

Де ці комутатори:

  • -aes-256-cbcце те, що вам слід використовувати для максимального захисту або 128-бітну версію, 3DES (Triple DES) відмовилися деякий час тому, див. Triple DES був знищений NIST в 2017 році , в той час як AES значно прискорюється всіма сучасними процесорами; ви можете просто перевірити, чи встановлений у вашому процесорі інструкцію AES-NI, наприклад, використовуючи grep aes /proc/cpuinfo; виграти, виграти

  • -md sha512 є більш швидким варіантом сімейства функцій SHA-2 порівняно з SHA-256, хоча він може бути трохи більш безпечним; виграти, виграти

  • -pbkdf2: використовувати алгоритм PBKDF2 (функція виведення ключа на основі пароля 2)

  • -iter 100000 відміняє кількість ітерацій пароля за замовчуванням, цитуючи довідкову сторінку:

    Використовуйте задану кількість ітерацій пароля для отримання ключа шифрування. Високі значення збільшують час, необхідний для грубої сили отриманого файлу. Цей параметр дозволяє використовувати алгоритм PBKDF2 для отримання ключа.


1
Потім, як розшифрувати його при використанні openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
l mingzhi

1
Просто додавши -dдо команди:openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
Едуард Ітріх

1
Я майже впевнений, що з цією пропозицією є кілька питань. Відповідно до en.wikipedia.org/wiki/Key_derivation_function потрібен найповільніший варіант алгоритму виведення ключів. Іншими словами, не використовуйте sha512 Відповідно до 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 - тому я б рекомендував десь між 10000 та 100 000 ітерацій, а не 1000.
oskarpearson

@oskarpearson Щоправда, я читав це саме зараз. Оновлення відповіді.
LinuxSecurityFreak

@oskarpearson Що ти рекомендуєш хеш?
Антоній
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.