जाहिर है कि वे देखने के लिए नहीं हैं, इसलिए उन पर खोज करना समस्याग्रस्त होगा।
अतीत में मैंने जो एक तरकीब इस्तेमाल की है वह एन्क्रिप्टेड डेटा को एन्क्रिप्ट करने से पहले हैश करना है, और एक अनुक्रमित कॉलम में हैश को संग्रहीत करना है। बेशक, यह केवल तभी काम करता है जब आप पूरे मूल्य पर खोज कर रहे हों; आंशिक मानों में समान हैश नहीं होगा।
यदि आप की जरूरत है, तो आप संभवतः "हैश का" पूर्ण पाठ सूचकांक बनाकर इसे बढ़ा सकते हैं, लेकिन यह वास्तव में तेजी से जटिल हो सकता है।
परिशिष्ट
यह सुझाव दिया गया है कि मैं शब्दकोश के हमलों की भेद्यता के बारे में बातचीत में काफी लंबी बहस के अनुसार अपने जवाब में एक फुटनोट जोड़ता हूं, इसलिए मैं उपरोक्त दृष्टिकोण के लिए इस संभावित सुरक्षा जोखिम पर चर्चा करूंगा।
डिक्शनरी अटैक: डिक्शनरी अटैक तब होता है जब कोई पूर्व ज्ञात मूल्यों की सूची को प्री-हैश करता है, और हैश की तुलना डेटाबेस में अपने हैशेड कॉलम से करता है। यदि वे एक मैच पा सकते हैं, तो संभावना है कि ज्ञात मूल्य वास्तव में हैशेड है (हालांकि यह निश्चित नहीं है, क्योंकि हैश अद्वितीय होने की गारंटी नहीं है)। यह आम तौर पर एक यादृच्छिक "नमक" के साथ मूल्य के अनुसार हैशिंग से होता है या प्रचलित होता है इसलिए हैश शब्दकोष से मेल नहीं खाता, लेकिन उपरोक्त उत्तर में नमक का उपयोग नहीं किया जा सकता है क्योंकि आप खोज क्षमता खो देते हैं।
पासवर्ड जैसी चीजों से निपटने के दौरान यह हमला खतरनाक है: यदि आप लोकप्रिय पासवर्ड हैश का शब्दकोश बनाते हैं, तो आप उस हैश मान के लिए तालिका को जल्दी से खोज सकते हैं और उस उपयोगकर्ता की पहचान कर सकते हैं जिसके पास ऐसा पासवर्ड है और उस उपयोगकर्ता की पहचान को चोरी करने के लिए प्रभावी रूप से क्रेडेंशियल निकालते हैं। ।
यह उच्च स्तर की कार्डिनलिटी वाली वस्तुओं के लिए कम खतरनाक है, जैसे SSN, क्रेडिट कार्ड नंबर, GUIDs, आदि (लेकिन इनको संग्रहीत करने से जुड़े विभिन्न जोखिम [पढ़ें: कानूनी] हैं, इसलिए मैं इन्हें स्टोर करने की सलाह देने के लिए इच्छुक नहीं हूं। )।
इसका कारण कार्य करने के लिए एक शब्दकोश हमले के लिए है, आपको संभावित मूल्यों और उनके हैश के पूर्व-निर्मित होने की आवश्यकता है। आप सिद्धांत रूप में, सभी संभव SSNs (एक बिलियन पंक्तियों, सभी प्रारूपण क्रमपरिवर्तन हटा दिए गए हैं, का एक शब्दकोश का निर्माण कर सकते हैं; क्रेडिट कार्ड के लिए प्रविष्टियों के कई दर्जनों खरब) ... लेकिन यह आमतौर पर एक शब्दकोश हमले की बात नहीं है, और मूल रूप से एक जानवर-बल के हमले के लिए तुलनीय हो जाता है जहां आप व्यवस्थित रूप से हर मूल्य की जांच कर रहे हैं।
यदि आप किसी व्यक्ति के लिए SSN से मिलान करने का प्रयास कर रहे हैं, तो आप एक विशिष्ट SSN या क्रेडिट कार्ड नंबर भी देख सकते हैं । फिर, आमतौर पर एक शब्दकोश हमले की बात नहीं है, लेकिन ऐसा करना संभव है, इसलिए यदि यह एक जोखिम है जिसे आपको बचने की आवश्यकता है, तो मेरा जवाब आपके लिए एक अच्छा समाधान नहीं है।
इसलिए यह अब आपके पास है। सभी एन्क्रिप्टेड डेटा के साथ के रूप में, यह आमतौर पर एक कारण के लिए एन्क्रिप्टेड है, इसलिए अपने डेटा के बारे में पता होना चाहिए और आप इसे से बचाने के लिए क्या प्रयास कर रहे हैं।