मुझे *** चेतावनी के अनुसार एन्क्रिप्शन को कैसे बदलना चाहिए: उपयोग किए गए पदावनत कुंजी व्युत्पत्ति


17

जब मैं किसी फ़ाइल को एन्क्रिप्ट या डिक्रिप्ट करता हूं तो मुझे मिलता है *** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.

मुझे समझ नहीं आ रहा है कि इसका क्या मतलब है, मुझे अपनी प्रक्रियाओं को कैसे बदलना चाहिए। क्या तुम मेरी मदद कर सकते हो? मैं के साथ एन्क्रिप्ट openssl des3 <input >output.des3और साथ डिक्रिप्ट openssl des3 -d <input.des3 >output

पर्यावरण के बारे में

उबंटू 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018


1
एन्क्रिप्शन विधि के रूप में 3DES को सेवानिवृत्त किया जा रहा है। चेतावनी सिर्फ आपको एक और विधि का उपयोग करने का सुझाव दे रही है, शायद अधिक जानकारी के लिए crypto.stackexchange.com/questions/51629/… देखें।
ग्वारसी

1
वह त्रुटि किसी भी प्रकार के सिफर के लिए होती है। आपको -pbkdf2 को एन्क्रिप्ट और डिक्रिप्ट कमांड दोनों में जोड़ना होगा।
डेनियल डेलाफियोर

क्षमा करें, लेकिन क्या आप कृपया उदाहरण दे सकते हैं कि कमांड में -pbkdf2 कैसे जोड़ें? मुझे समझ नहीं आता कि इसे कैसे जोड़ा जाना चाहिए।
टॉमी पोलाक

1
अपने उदाहरण में, आपको बस openssl des3 -e -pbkdf2 < input > output.des3और करने की आवश्यकता है openssl des3 -d -pbkdf2 < input.des3 > output। मैं पहली टिप्पणी से भी सहमत हूं कि आपको 3DES (DES 1977 से) के बजाय एक अलग ब्लॉक सिफर का उपयोग करना चाहिए, ऐसा करने का एक आसान तरीका यह है कि aes256जहां आप वर्तमान des3में उन आदेशों में स्वैप करना चाहते हैं, वहां एईएस का उपयोग करें ( 256-बिट एईएस वर्तमान सुरक्षा मानकों को पूरा करता है)।
जोहलड़ी

धन्यवाद! अब यह aes256 का उपयोग करके बिना किसी चेतावनी के काम करता है। तो सवाल का जवाब है।
टॉमी पोलाक

जवाबों:


12

ओपनएसएसएल के दो मुख्य और हाल के संस्करणों के सिनॉप्सिस की तुलना करते हुए, मैं मैन पेजों को उद्धृत करता हूं।

ओपनएसएसएल 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]

ओपनएसएसएल 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 (ट्रिपल DES) कुछ समय पहले छोड़ दिया गया, देखें कि ट्रिपल DES को 2017 में NIST द्वारा पदावनत किया गया है , जबकि AES सभी आधुनिक सीपीयू द्वारा बहुत तेजी से बढ़ जाता है; यदि आपके CPU के पास AES-NI निर्देश सेट है , उदाहरण के लिए उपयोग कर सकते हैं grep aes /proc/cpuinfo; जीत, जीत

  • -md sha512 SHA-256 की तुलना में SHA-2 फ़ंक्शन परिवार का तेज़ संस्करण है, जबकि यह थोड़ा अधिक सुरक्षित हो सकता है; जीत, जीत

  • -pbkdf2: PBKDF2 (पासवर्ड-आधारित कुंजी व्युत्पत्ति फ़ंक्शन 2) एल्गोरिथ्म का उपयोग करें

  • -iter 100000 पासवर्ड के लिए पुनरावृत्तियों की डिफ़ॉल्ट संख्या को ओवरराइड कर रहा है, मैन पेज को उद्धृत कर रहा है:

    एन्क्रिप्शन कुंजी को प्राप्त करने में पासवर्ड पर दिए गए पुनरावृत्तियों की संख्या का उपयोग करें। उच्च मान परिणामी फ़ाइल को ब्रूट-फोर्स करने के लिए आवश्यक समय बढ़ाते हैं। यह विकल्प कुंजी को प्राप्त करने के लिए PBKDF2 एल्गोरिथ्म के उपयोग को सक्षम करता है।


1
फिर, यह कैसे डिक्रिप्ट करने के लिए जब उपयोग openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
एल 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 के अनुसार आप मुख्य व्युत्पत्ति एल्गोरिथ्म का सबसे धीमा संस्करण चाहते हैं । दूसरे शब्दों में, en.wikipedia.org/wiki/PBKDF2 के अनुसार sha512 का उपयोग न करें 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- इसलिए मैं 1000 के बजाय 10,000 और 100,000 पुनरावृत्तियों के बीच कहीं न कहीं सलाह
दूंगा

@oskarpearson सच है, मैंने इसे अभी पढ़ा है। अद्यतन उत्तर।
LinuxSecurityFreak

@oskarpearson आप क्या हैश की सिफारिश करते हैं?
एंथनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.