2011-11-19 11 views
6

मैं डेटाबेस में पासवर्ड और व्यक्तिगत डेटा संग्रहीत कर रहा हूं। सुरक्षा के लिए इन मानों को एन्क्रिप्ट करने के लिए सबसे मजबूत तरीका क्या है।डेटाबेस के लिए एन्क्रिप्शन की सर्वश्रेष्ठ + सबसे मजबूत विधि

इसके अलावा, क्या एक डेटाबेस में क्रेडिट कार्ड की जानकारी के लिए एन्क्रिप्शन के लिए सबसे अच्छा तरीका है? या क्या मुझे क्रेडिट कार्ड जानकारी स्टोर करने के लिए कुछ और उपयोग करना चाहिए, एक mysql डेटाबेस नहीं ??

धन्यवाद।

+7

कभी भी क्रेडिट कार्ड की जानकारी स्टोर न करें। –

+3

@ShaktiSingh तो अमेज़ॅन और पसंद की तरह कंपनियों को कैसे स्टोर करते हैं? –

+2

पढ़ा गया: http://stackoverflow.com/questions/3002189/best-practices-to-store- क्रेडिट कार्ड- जानकारी- into-डेटा –

उत्तर

11

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

संभवत: कोशिश की और परीक्षण की गई किसी चीज़ से चिपकना सबसे अच्छा है। चूंकि यह एक डीबी है (संभवतः एक बिलिंग प्रणाली के लिए) तेजी से पुनर्प्राप्ति करना अच्छा होगा। तो असममित एन्क्रिप्शन से दूर रहें - जिसे आपको केवल सममित कुंजी को एन्क्रिप्ट करने के लिए उपयोग करना चाहिए यदि आपको उन्हें किसी के साथ साझा करने की आवश्यकता है।

एईएस की कुछ विशेष शक्ति (256 बिट्स कहें) ठीक होनी चाहिए। मुझे इस तरह से सुरक्षित मेरे व्यक्तिगत विवरण जानने में खुशी होगी।

उपयोगकर्ताओं के पासवर्ड संग्रहीत करने के मामले में, नमक (एक यादृच्छिक स्ट्रिंग) उत्पन्न करने के लिए यह सामान्य प्रथा है और फिर उपयोगकर्ताओं को एक सुरक्षित हैश एल्गोरिदम (आरआईपीईएमडी, एसएचए 1, एमडी 5) का उपयोग करके इस नमक के साथ जोड़ा गया है।

यह passwods उबरने से पूर्व परिकलित पटाखा शब्दकोश से बचाता है, क्योंकि यह रूप में अच्छी तरह सभी यादृच्छिक लवण संभाल करने की जरूरत है।

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

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

यदि आप खुले इंटरनेट पर उपयोगकर्ता की जानकारी संचारित कर रहे हैं, तो इसे एन्क्रिप्ट करें।

आप अपने DB सर्वर पर उपयोगकर्ता की जानकारी की सुरक्षा के बारे में चिंतित हैं, शायद एक बादल या जो आप अपने सर्वर के लिए कुछ अतिरिक्त भौतिक सुरक्षा प्रदान कर सकते हैं होस्टिंग प्रदाता डेटा के साथ काम करने पर विचार करें।

एन्क्रिप्शन केवल एक मजबूत सुरक्षा नीति का हिस्सा है। विशेष रूप से एक सुरक्षित वातावरण स्थापित करने के मानव तत्व पर ध्यान केंद्रित करें जिसमें आपके बिज़ का संचालन किया जाए। आधार जानने के लिए संवेदनशील संसाधनों तक पहुंच को हाथ से बाहर रखें। सुनिश्चित करें कि आप बैकअप या डेटा पुनर्प्राप्ति के कुछ साधनों की व्यवस्था करते हैं, सभी चाबियाँ खो जाएंगी।

+1

+1 अच्छा गहन उत्तर –

+0

[nope] (http://stackoverflow.com/users/1283048/nope) की टिप्पणी: "तो असममित एन्क्रिप्शन से दूर रहें - जिसे आपको केवल सममित कुंजी को एन्क्रिप्ट करने के लिए उपयोग करना चाहिए यदि आपको उन्हें किसी के साथ साझा करने की ज़रूरत है। ' - यह कोई समझ नहीं आता है - क्यों कोई टीएलएस को छोड़कर कुंजी को एन्क्रिप्ट करेगा? बेशक एसिमेट्रिक एन्क्रिप्शन में इसके (कई) उपयोग होते हैं - असल में, किसी को सिमेट्रिक एन्क्रिप्शन-विधियों से बचना चाहिए क्योंकि वे डिज़ाइन द्वारा कमजोर हैं यदि परिवहन-स्ट्रीम अनएन्क्रिप्टेड है ; असममित एन्क्रिप्शन के साथ सार्वजनिक कुंजी को जानना डिक्रिप्शन-क्षमताओं को प्रदान नहीं करता है। " –

+0

@ पीटरो। यह वास्तव में समझ में आता है ... धीमी, असममित सार्वजनिक कुंजी एन्क्रिप्शन विधि का प्रयोग सममित कुंजी के आदान-प्रदान को एन्क्रिप्ट करने के लिए किया जाता है। तेज़, सममित कुंजी एन्क्रिप्शन बदले में डेटा स्ट्रीम को एन्क्रिप्ट करने के लिए उपयोग किया जाता है। – spamsink

1

ध्यान दें कि एन्क्रिप्शन केवल एक चीज आप जब क्रेडिट कार्ड डेटा भंडारण के बारे में चिंता करने की जरूरत नहीं है। सख्त लेखा परीक्षा आवश्यकताओं और कई अन्य चिंताओं को भी देखें (यदि आप अपरिचित हैं तो PCI website देखें)।

आप शायद अगर आप आवश्यक सुरक्षा उपायों के साथ वास्तव में परिचित आप विशाल देनदारियों के लिए खुला छोड़ सकते हैं नहीं कर रहे हैं, PCI अनुपालन मिल ऐसा करने के लिए प्रबंधन कर सकते हैं।यदि आपकी प्रणाली का उल्लंघन किया गया है या आप अनुपालन में पाए जाते हैं, तो आपको गंभीर दंड का सामना करना पड़ता है।

वैकल्पिक समाधान के लिए Authorize.net जैसे भुगतान प्रदाताओं की जांच करें। विशेष रूप से, उनके Customer Information Manager उत्पाद को देखने के लायक है क्योंकि वे आपके लिए अपने सर्वर पर क्रेडिट कार्ड जानकारी जैसे सुरक्षित डेटा स्टोर करेंगे।

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