मेरे पास कंपनियों और उनके ग्राहकों के साथ एक डेटाबेस है। डेटाबेस को इस सवाल का जवाब देने में सक्षम होना चाहिए कि 'किस कंपनियों के पास एक्स एड्रेस पर रहने वाला क्लाइंट है?', जो आमतौर पर लागू करने के लिए बहुत सीधा है।

मैं जो बचना चाहता हूं वह यह है कि एक हमलावर किसी तरह कंपनी-क्लाइंट संबंधों को ढूंढ सकता है। यह डेटाबेस एक वेबसर्वर पर रहेगा और सभी डेटा की क्रूर-बल डाउनलोडिंग से बचने के लिए इसके लिए प्रश्न सीमित होंगे।

लेकिन क्या होगा यदि सर्वर से समझौता किया गया है और एक हमलावर के पास पूरे डेटाबेस तक पहुंच है और संभवत: सर्वर पर संग्रहीत कोई भी निजी कुंजी भी है? यह ठीक है अगर हमलावर कंपनियों की सूची, या ग्राहकों की सूची ढूंढ सकता है, लेकिन उसे यह पता लगाने में सक्षम नहीं होना चाहिए कि कौन सी कंपनियां किस ग्राहक से संबंधित हैं और अधिमानतः वह प्रत्येक ग्राहक के पते को पुनः प्राप्त करने में सक्षम नहीं होना चाहिए।

ग्राहकों की पहचान उनके पते से होती है, किसी भी तरह की यूनिक आईडी से नहीं। मेरे देश में लगभग 5 मिलियन अलग-अलग पते हैं। हालांकि मैं पते की सुरक्षा के लिए एक सुरक्षित हैश का उपयोग कर रहा हूं, लेकिन 5 मिलियन हैश की गणना करना और हैश से पते पर मैपिंग बनाना बहुत आसान है। भले ही हैश नमकीन हो।

केवल एक चीज जिसके बारे में मैं सोच सकता हूं वह है अस्पष्टता के माध्यम से सुरक्षा: मैं सुनिश्चित करता हूं कि हैशिंग फ़ंक्शन स्पष्ट रूप से पहचानने योग्य नहीं है और संकलित कोड में है, और आशा है कि हमलावर इतना स्मार्ट नहीं है कि यह सब पता लगा सके।

क्या इसे वास्तव में सुरक्षित बनाने का कोई तरीका है?

संपादित करें: a3_nm और निक जॉनसन की टिप्पणियां निश्चित रूप से सही हैं: यदि किसी हमलावर के पास सभी डेटा तक पहुंच है, तो इसे संभवतः सुरक्षित नहीं बनाया जा सकता है। इस (स्पष्ट) दोष को इंगित करने के लिए धन्यवाद।

तो मुझे ऐसा कुछ चाहिए जो डेटाबेस में संग्रहीत नहीं है। यह सुनिश्चित करने के लिए कि केवल कंपनियां और ग्राहक ही अपने डेटा तक पहुंच सकते हैं, मैं इसे अपने पासवर्ड से एन्क्रिप्ट कर सकता हूं। तो एक कंपनी के ग्राहकों की सूची उस कंपनी के पासवर्ड से एन्क्रिप्ट की जाएगी, जो कभी भी सर्वर पर संग्रहीत नहीं होगी और प्रत्येक अनुरोध के साथ भेजी जानी होगी। मुझे लगता है कि मेरे लिए यह मान लेना ठीक है कि हमलावर उन अनुरोधों को नहीं रोक सकता जिनमें पासवर्ड शामिल हैं।

या इस सोच में भी कोई और (स्पष्ट?) दोष है?

4
Peter 23 अप्रैल 2011, 11:27
1
तो उस स्थिति में जब आपका सारा डेटा सामने आ जाता है, आप नहीं चाहते कि हमलावर इस जानकारी तक पहुंच सके - लेकिन आप अभी भी खुद को सक्षम बनाना चाहते हैं? मुझे आशा है कि हमें यह इंगित करने की आवश्यकता नहीं है कि यह असंभव क्यों है।
 – 
Nick Johnson
24 अप्रैल 2011, 05:47

2 जवाब

सबसे बढ़िया उत्तर

मुझे यकीन नहीं है कि इसे सुरक्षित करना संभव है। ऐसा लगता है कि आप चाहते हैं कि सर्वर तक कुल पहुंच वाला एक हमलावर उन प्रश्नों के उत्तर प्राप्त करने में असमर्थ हो, जिनका उत्तर सर्वर को देना चाहिए। यदि हमलावर के पास सर्वर एक्सेस है, तो वह सर्वर का उपयोग किसी भी प्रश्न का उत्तर देने के लिए कर सकता है जिसका सर्वर उत्तर दे सकता है - उसके आसपास काम करने का कोई तरीका नहीं है।

3
a3nm 23 अप्रैल 2011, 12:06

आपको अपना डीबी सीधे वेबसर्वर पर स्टोर नहीं करना चाहिए। इसे सर्वर पर पैक करें जो सीधे वेब से उपलब्ध नहीं है। यह प्रत्येक हमलावर के लिए इसे और कठिन बना देगा। मेरे पास आपके लिए कोई तैयार समाधान नहीं है, लेकिन शुरू करने के लिए एक बेहतर बिंदु है: क्रेडिट कार्ड की जानकारी एक ही समस्या का सामना कर रही है। ऐसे मामलों के लिए डीबी मॉडलिंग के लिए Google और आपको समाधान मिल जाएगा।

1
sra 23 अप्रैल 2011, 12:05
डेटाबेस को किसी अन्य सर्वर पर रखना इसे मौलिक रूप से सुरक्षित नहीं बनाता है। सबसे अच्छा यह एक हमलावर के लिए इसे थोड़ा कठिन बना देगा। कम से कम इससे कोई फर्क नहीं पड़ता। लेकिन मैं क्रेडिट कार्ड की जानकारी के बारे में संकेत की सराहना करता हूं, इस पर गौर करूंगा।
 – 
Peter
24 अप्रैल 2011, 12:07