2011-01-25 4 views
11

शुरू करने और ग्रिड को परिभाषित करने के लिए, मैं एक .net फ्रेमवर्क का उपयोग कर रहा हूं GUID यह कुछ हद तक एक अनुमानित स्थिति उपयोगकर्ता विशिष्ट कार्यवाही को पूर्ववत करते समय ग्रिड उत्पन्न होते हैं। प्रत्येक उपयोगकर्ता अपने स्वयं के guids देख सकते हैं। यदि कोई उपयोगकर्ता किसी अन्य उपयोगकर्ता के गाइड को जानना चाहता था तो वहां एक सुरक्षा समझौता होगा।क्या सुरक्षा के लिए गाइड पर भरोसा किया जा सकता है, या क्या वे अनुमान लगा सकते हैं कि सिस्टम को कई ज्ञात मार्गदर्शिकाएं उत्पन्न करने के लिए मजबूर किया जा सकता है?

अगर हम मानते हैं कि किसी उपयोगकर्ता के पास किसी अन्य उपयोगकर्ता की मार्गदर्शिका चोरी करने का कोई तरीका नहीं है और केवल अनुमान लगा सकता है तो यह सिस्टम कितना सुरक्षित है?

मैं समझता हूं कि अंधेरे अनुमान लगाने वाले गड़बड़ असंभव हैं। यहां तक ​​कि यदि उनके पास दस लाख सफलता मूल्य थे, फिर भी उनके पास सफल अनुमान

जहां मुझे डर है कि कोई समस्या मौजूद हो सकती है, वह भविष्यवाणी है। क्या कोई उपयोगकर्ता बड़ी संख्या में अनुरोध उत्पन्न कर सकता है, उसे प्राप्त मार्गदर्शिकाओं को देख सकता है, और .net guid generation formula को जानना अनुमान लगाने की अपनी बाधाओं में काफी सुधार कर सकता है? क्या इन बाधाओं को एक बिंदु तक कम किया जा सकता है जहां वे एक सुरक्षा चिंता होगी? उस मामले में कुंजियों को एक अद्वितीय गैर अनुमानित तरीके से कैसे उत्पन्न किया जाना चाहिए?

मैं किसी से पूछता हूं कि अनुमान लगाने/टकराव की बाधाओं का उल्लेख करने के लिए कुछ कठिन अर्थ है। या तो कोई सही संख्या बाधाओं, या कुछ और की तरह, "यह खाता डाटा स्टोर करने के लिए इस्तेमाल किया जा सकता है, लेकिन नहीं संवेदनशील डेटा" को परिभाषित करने

संपादित

इस सवाल का क्षेत्र मैं मूल रूप से पता लगाने के लिए की मांग की में अच्छी तरह से जाना जा रहा है इस प्रश्न के साथ Is a GUID a good key for (temporary) encryption?

+1

Guid के अद्वितीय नहीं हैं; इस प्रकार सिद्धांत में दो उपयोगकर्ताओं के पास एक ही गाइड हो सकता है। –

+0

शायद http://stackoverflow.com/questions/4517497/how-secure-are-guids-in-terms-of-predictability –

+0

सही ढंग से जेनरेट किए गए यादृच्छिक मार्गदर्शकों के लिए टकराव की संभावना अभ्यास में विशिष्टता की गारंटी के लिए पर्याप्त रूप से कम है। – CodesInChaos

उत्तर

7

GUID/UUID का मुख्य रूप से आईडी के रूप में उपयोग के लिए 128 बिट संख्याएं उत्पन्न करने का इरादा है (सभी उद्देश्यों और उद्देश्यों के लिए)।

यूयूआईडी क्रिप्टोग्राफिक रूप से मजबूत यादृच्छिक संख्या अनुक्रम उत्पन्न करने के लिए डिज़ाइन नहीं किए गए हैं, और यदि आप अधिकतम अन-भविष्यवाणी चाहते हैं, तो क्रिप्टोग्राफ़िक रूप से मजबूत यादृच्छिक संख्या अनुक्रम बिल्कुल वही हैं जो आप चाहते हैं। इसके लिए, .NET आपको RNGCryptoServiceProvider प्रदान करता है - ग्राउंड अप से अप्रत्याशित होने के रूप में डिज़ाइन किया गया है जिसे एल्गोरिदमिक माध्यमों द्वारा उचित रूप से हासिल किया जा सकता है, तो इसका उपयोग क्यों न करें?

उदाहरण:

byte[] GenerateRandomBytes() 
{ 
    byte[] key = new byte[16]; 

    System.Security.Cryptography.RNGCryptoServiceProvider c = 
     new System.Security.Cryptography.RNGCryptoServiceProvider(); 

    c.GetBytes(key); 

    return key; 
} 
4

अफैक .net Version 4 UUIDs डिफ़ॉल्ट रूप से गिड्स के रूप में उत्पन्न करता है। यह सही ढंग से कार्यान्वित होने पर अनुमान लगाने के लिए यादृच्छिक और कठिन हैं। लेकिन चूंकि भविष्य के संस्करण एक और कार्यान्वयन का उपयोग कर सकते हैं, इसलिए मैं उस पर भरोसा नहीं करता। मुझे लगता है कि विंडोज़ या नेट के पहले संस्करण भी मैक-एड्रेस पर आधारित ग्रिड का इस्तेमाल करते थे जो अनुमान लगाना आसान है।

तो मैं इसके बजाय .NET में निर्मित क्रिप्टो-छद्म-यादृच्छिक-संख्या-जेनरेटर का उपयोग करता हूं। यदि आप 16 बाइट उत्पन्न करते हैं तो आपके पास एक ग्रिड के लिए ड्रॉप-इन प्रतिस्थापन होता है।

+2

क्या आप "अनुमान लगाने में कठोर" परिभाषित कर सकते हैं। फोरम के लिए पर्याप्त सुरक्षित, बैंक के लिए पर्याप्त सुरक्षित, राष्ट्रीय सुरक्षा – Andrey

+0

के लिए पर्याप्त सुरक्षित एक यादृच्छिक 128 बिट संख्या कुछ भी सुरक्षित है (अच्छी तरह से राष्ट्रीय सुरक्षा को कुछ प्रमाणीकरण प्रक्रियाओं की आवश्यकता होती है, इसलिए आपके विज्ञापन-क्रियान्वयन का उपयोग नहीं किया जा सकता है)। संख्याओं की गुणवत्ता समस्या है। यही कारण है कि मैंने मानक GUID जनरेटर का उपयोग नहीं करने की सिफारिश की, बल्कि इसके बजाय एक क्रिप्टो-prng। – CodesInChaos

+1

अन्य हमलों को यादृच्छिक रूप से उस आकार की वैध यादृच्छिक संख्या अनुमान लगाने की अपेक्षा अधिक संभावना है। – CodesInChaos

संबंधित मुद्दे

 संबंधित मुद्दे