2012-09-18 39 views
10

यह सुनिश्चित करने के लिए कि मेरे डेटाबेस से समझौता किया गया था, लंबे जीवन तक पहुंच टोकन चोरी नहीं किए जा सकने के लिए मुझे कौन से सुरक्षा उपायों को रखा जाना चाहिए?सुरक्षित टोकन को सुरक्षित रूप से संग्रहीत करना

एक लंबे जीवन तक पहुंच टोकन किसी विशेष सेवा के लिए उपयोगकर्ता नाम और पासवर्ड जितना अच्छा है, लेकिन दूसरों से बात करने से ऐसा लगता है कि सादे पाठ में स्टोर (एक्सेसिंग) टोकन सबसे अधिक है। ऐसा लगता है कि सादा पाठ में पासवर्ड संग्रहीत करना उतना ही बुरा है। जाहिर है कि कोई नमक नहीं & हैश टोकन है।

आदर्श रूप में मैं उन्हें एन्क्रिप्ट करना चाहता हूं, लेकिन मुझे ऐसा करने का सबसे अच्छा तरीका अनिश्चित है, खासकर ओपन सोर्स प्रोजेक्ट पर।

मुझे लगता है कि इस प्रश्न का उत्तर भुगतान जानकारी और पीसीआई अनुपालन को संग्रहीत करने के समान है, लेकिन मैं यह भी पूछूंगा कि इस पर और चर्चा क्यों नहीं है? शायद मुझे कुछ याद आ रही है।

+0

आपका क्या मतलब है "विशेष रूप से ओपन सोर्स प्रोजेक्ट पर"? आप क्या सोच रहे हैं कि एक विशिष्ट प्रकार की एन्क्रिप्शन योजना के साथ जाने का आपका निर्णय अलग-अलग होता है क्योंकि आपकी परियोजना बंद स्रोत नहीं है? –

उत्तर

7

क्या आप बस दूसरों द्वारा प्रदान किए गए टोकन को सत्यापित करना चाहते हैं? यदि ऐसा है, तो इसका इलाज करें क्योंकि आप एक पासवर्ड करेंगे। 10,000 पुनरावृत्तियों के साथ Password Based Key Derivation Function 2 (PBKDF2) (RFC 2898 में वर्णित) जैसे बाइट व्युत्पन्न एल्गोरिदम का उपयोग करें और पहले 20 बाइट्स को स्टोर करें। जब टोकन प्राप्त होता है। यह व्यावहारिक रूप से उलटा नहीं है।

क्या आप प्रमाणीकरण के लिए दूसरों को टोकन पेश करना चाहते हैं? यदि ऐसा है, तो यह एक चुनौती है क्योंकि, यदि आपका एप्लिकेशन डिक्रिप्ट कर सकता है या अन्यथा टोकन तक पहुंच प्राप्त कर सकता है, तो हमलावर भी हो सकता है। शैनन के मैक्सिम को सोचें, हमलावर सिस्टम को जानता है, खासकर ओपन सोर्स प्रोजेक्ट के लिए।

इस मामले में, सबसे अच्छा तरीका एक मजबूत एल्गोरिथ्म (जैसे AES256) के साथ टोकन के आंकड़ों के एक अलग स्थान में, एन्क्रिप्ट एक मजबूत क्रिप्टोग्राफिक मानक यादृच्छिक संख्या जनरेटर का उपयोग कर कुंजी उत्पन्न और प्रमुख (रों) की दुकान सुरक्षित रूप से करने के लिए है , जैसे ऊपर दिए गए उदाहरण में डेटाबेस के बाहर एक अनुमति संरक्षित फ़ाइल में। उत्तरार्द्ध का मतलब है कि एसक्यूएल इंजेक्शन हमले कुंजी प्रकट नहीं करेंगे।

+0

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

+0

@ कटन लेकिन टोकन को पासवर्ड की तरह क्यों व्यवहार करें? (सादा पाठ) पासवर्ड वे जानकारी हैं जो हम नहीं चाहते हैं कि हमलावर बी/सी प्राप्त करे और वह उसी पीडब्ल्यूडी के साथ एक अलग सेवा में लॉगिन करने के लिए इसका उपयोग कर सके। लेकिन एक टोकन केवल आपकी अपनी सेवा के लिए मान्य है - इसलिए यदि हमलावर को टोकन/डीबी पर अपना हाथ मिल गया तो वह आपके खाते में लॉगिन करने के लिए टोकन का उपयोग करने से अधिक नुकसान कर सकता है ... मैं क्या नहीं देख रहा हूं ? – pkyeck

+0

प्रश्न मानना ​​सही है, टोकन एक प्रति उपयोगकर्ता है, साक्ष्य के लंबे समय तक रहने वाले टुकड़े जो उपयोगकर्ता को प्रमाणीकृत कर सकते हैं। दूसरे शब्दों में, यह एक पासवर्ड है। – akton