क्या लिनक्स पर / dev / random / dev / urandom से लिंक करना गलत है?


13

मैं वर्तमान में gpg --genkeyलिनक्स वीएम पर परीक्षण कर रहा हूं । दुर्भाग्य से, यह सॉफ़्टवेयर /dev/randomएंट्रोपी इकट्ठा करने के लिए भरोसा करने लगता है और विनम्रता से उपयोगकर्ता को क्रिप्टोग्राफिक रूप से यादृच्छिक इनपुट की स्क्रीन के बाद स्क्रीन टाइप करने के लिए कहता है ताकि यह अंततः एक कुंजी उत्पन्न करने के साथ समाप्त हो सके, और मुझे बताने के लिए कोई कमांड-लाइन पैरामीटर नहीं मिला है एंट्रोपी स्रोत के रूप में एक और फ़ाइल का उपयोग करने के लिए ( इस वीडियो पर लड़का बहुत ही समस्या का सामना करता है ...)।

हालाँकि, उपयोगकर्ता को /dev/urandomइसके बजाय उपयोग करने के लिए स्वतंत्र होना चाहिए क्योंकि इसमें कुछ भी गलत नहीं है । यह मुख्य रूप से पुराने PRNG एल्गोरिदम की याद के रूप में है जो क्रिप्टोग्राफिक दृष्टिकोण से कमजोर थे। उदाहरण के लिए, जबकि नेटबीएसडी मैनपेज अनुदान देता है कि अंतर अभी भी बहुत शुरुआती बूटिंग चरण में उपयोगी हो सकता है, यह "लोककथा" और "काल्पनिक सिद्धांत जो केवल काल्पनिक खतरे के मॉडल के खिलाफ बचाव करता है " जैसे भेद का वर्णन करता है । कोई भी इस आदेश के लिए आवश्यक एन्ट्रापी की मात्रा से सहमत नहीं है और न ही यह तथ्य है कि एन्ट्रापी एक ऐसी चीज है जिसे वास्तव में GPG मैनपेज में कहा गया है ("कृपया, इस आदेश का उपयोग तब तक न करें जब तक आप यह नहीं जानते कि आप क्या कर रहे हैं, यह सिस्टम से कीमती एन्ट्रॉपी को हटा सकता है!" )।

मैंने डेमॉन स्थापित करने वाले लोगों केrngd बारे में पढ़ा है और इसे /dev/urandomफ़ीड करने के लिए एंट्रॉपी स्रोत के रूप में उपयोग करने के लिए कॉन्फ़िगर किया है /dev/random, लेकिन मुझे ऐसा अभ्यास भारी गंदा लगता है।

मैंने FreeBSD तरीके से समस्या को हल करने की कोशिश की /dev/randomऔर इसे हटाकर /dev/urandomइसके बजाय इसे लिंक किया :

rm /dev/random
ln -s /dev/urandom /dev/random

मैं इसे एक सेटिंग के रूप में देखता हूं, "मुझे /dev/urandomएन्ट्रापी स्रोत के रूप में भरोसा है "

मुझे डर था कि मैं किसी तरह की त्रुटि का सामना करूंगा, लेकिन यह अपेक्षित परिणाम प्रदान करता है क्योंकि कमांड अब तुरंत सफलतापूर्वक लौटता है।

मेरा प्रश्न है: क्या फ्रीबीएसडी सिस्टम पर डिफ़ॉल्ट रूप से लिनक्स सिस्टम पर लिंक /dev/randomकरने का कोई ज्ञात, व्यावहारिक और गलत साइड-इफेक्ट है /dev/urandom? या /dev/randomकिसी सेवा को बंद करने के कारण दोहराए जाने वाले मुद्दों के मामले में इसे स्थायी रूप से (उदाहरण के लिए बूट प्रक्रिया के अंत में एक स्क्रिप्ट में) स्थापित करने की परिकल्पना की जा सकती है ?

जवाबों:


2

यूरेनियम के बारे में मिथकों को देखें , / dev / urandom पर कोई ज्ञात हमला नहीं है जो कि / dev / random पर हमला नहीं होगा। एक लिनक्स सिस्टम की मुख्य समस्या यह है कि क्लोनिंग के बाद सहेजे गए एन्ट्रापी पूल को रीसेट किए बिना यह कई क्लोन और चला जाता है। यह एक कोने का मामला है जो आप चाहते हैं कि स्पर्शरेखा है।


0

अच्छी तरह से एक बात अलग /dev/randomहै कि यह एन्ट्रापी पूल का उपयोग करने के बाद आउटपुट को रोक देता है। इसे इस्तेमाल करे:

$ cat /dev/random
(a few short lines of gibberish)^C
$ 

/dev/urandomहालांकि आउटपुट जारी रखने के लिए उसी पूल का पुन: उपयोग किया जाएगा। जैसा यहाँ दिखाया गया है:

$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$

(जब आप इन विशेष उपकरणों को कैट करने की कोशिश करते हैं, तो आपका संकेत गड़बड़ हो सकता है। बस टाइप करें resetऔर दर्ज करें, आपका टर्मिनल वापस सामान्य हो जाएगा)

उपयोग करें /dev/urandomजब आपको बस "यादृच्छिक" बिट्स के निरंतर प्रवाह के साथ कुछ भरने की आवश्यकता होती है। /dev/randomउन कुंजियों के लिए उपयोग करें जिन्हें आपको बिल्कुल यादृच्छिक होना चाहिए।


3
ओपी का प्रश्न था: क्या फ्रीबीएसडी सिस्टम पर डिफ़ॉल्ट रूप से किए गए लिनक्स सिस्टम पर / देव / यादृच्छिक / से / लिंक करने के लिए कोई ज्ञात, व्यावहारिक और गलत साइड-इफेक्ट है?
काउंटरमोड

दिलचस्प है, अगर अंतर यह स्पष्ट है, तो उन्हें लिंक नहीं किया जाना चाहिए। अधिकांश अन्य विचार-विमर्श अंततः बूट अप के बाद बिना किसी अंतर के आम सहमति तक पहुंचते हैं लेकिन यह व्यवहार लंबे समय तक चलने वाले अंतर का संकेत दे सकता है।
कालपीएम

-2

लिनक्स में, /dev/randomउच्च गुणवत्ता यादृच्छिक बिट्स देता है। वे स्रोत हैं जो कर रहे हैं से प्राप्त कर रहे नहीं उम्मीद के मुताबिक है और दोहराने योग्य, मशीन के लिए बाहरी। इसके विपरीत, /dev/urandomएक ही यादृच्छिक डेटा का उपयोग करता है /dev/random(यदि उपलब्ध हो), यदि कोई नहीं है, तो यह एक छद्म यादृच्छिक संख्या जनरेटर का उपयोग करता है, जो निर्धारक है । अधिकांश उद्देश्यों के लिए, यह अप्रत्याशित रूप से पर्याप्त है, लेकिन क्रिप्टोग्राफी जैसे बहुत मांग वाले अनुप्रयोगों के लिए नहीं , और जीपीजी के लिए लंबे समय तक रहने वाली चाबियाँ बनाने के लिए बहुत कम है।



@ गिल्स जो आपके व्यामोह की डिग्री पर निर्भर करता है। GPG के लिए, हर कोई आपकी कुंजी (अप्रत्यक्ष रूप से) से प्रभावित होता है।
वॉनब्रांड

5
अगर आपको भरोसा नहीं है /dev/urandom, तो आपके पास GPG पर भरोसा करने का कोई कारण नहीं है।
गिल्स एसओ- बुराई को रोकना '

3
@vonbrand: व्यामोह की मेरी डिग्री के आधार पर, अगर मुझे यादृच्छिकता उत्पन्न करने के लिए गणितीय रूप से जाँच की गई PRNG के बीच चयन करना है या उपयोगकर्ता को कूड़े की पूरी स्क्रीन "asdfghasdfghasdfgh" टाइप करने के लिए मजबूर किया जाता है, तो मैं अब तक सॉफ़्टवेयर PRNG का चयन करूँगा। मैं आपकी बात समझता हूं कि एक कंप्यूटर यादृच्छिकता उत्पन्न करने में अच्छा नहीं है, लेकिन मनुष्य इस पर और भी बदतर हैं। फिर भी, मेरे सवाल पर वापस आने के लिए, urandomबनाम randomबहस के अलावा, क्या आप इस बात की पुष्टि करते हैं कि /dev/randomफ़ाइल को लिंक द्वारा प्रतिस्थापित करने का कोई अन्य दुष्प्रभाव नहीं होना चाहिए और rngdमेरे द्वारा बताई गई चाल के लिए एक व्यवहार्य विकल्प होना चाहिए ?
व्हाइटवॉन्डवॉल्फ

2
ये गलत है। वे SAME RNG का उपयोग करते हैं, लेकिन यादृच्छिक ब्लॉक अगर यह अनुमान लगाता है कि पर्याप्त एन्ट्रापी नहीं है।
डंकन एक्स सिम्पसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.