2011-12-14 14 views
6

मैं लागू करने के लिए एक "मुझे याद" सुविधा कोशिश कर रहा हूँ, यहाँ hashing निम्नलिखित प्रदान की दिशा निर्देशों के लिए सबसे अच्छा तरीका है http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/एक "मुझे याद रखें" कुकी टोकन

ऐसा लगता है कि " कुकी टोकन "डीबी में संग्रहीत होने पर धोया जाना चाहिए (यदि किसी हमलावर के पास डीबी तक पहुंच है, तो अनचाहे टोकन सादे लॉगिन/पासवर्ड की तरह दिखते हैं, जो वेबसाइट पर लॉग इन करने की इजाजत देता है)।

एक अच्छा हैशिंग एल्गोरिथ्म के लिए देख रहे हैं, मैं इस सिफारिश तकनीक का उपयोग कर bcrypt पाया है: https://stackoverflow.com/a/6337021/488666

मैं इसे करने की कोशिश की और पाया कि प्रस्तावित दौर की राशि (15) के साथ एक की ओर जाता है किया है बहुत धीमी गति से प्रसंस्करण समय

मुझे पता है कि हैशिंग एल्गोरिदम हमलावरों में बाधा के लिए अपेक्षाकृत धीमी गति से होना चाहिए, लेकिन उस स्तर पर, यह बाधित (हैश 2,3s + एक इंटेल कोर 2 डुओ E8500 4 जीबी रैम पर 2,3s सत्यापित करें) उपयोगकर्ता वेबसाइट का उपयोग करने के लिए :)

क्या आपको लगता है कि कम राउंड (उदा। 7, जो प्रसंस्करण समय 10ms + 10ms तक छोड़ देता है) पर्याप्त होगा?

+0

संभावित डुप्लिकेट [वेबसाइट के लिए "मुझे याद रखें" को लागू करने का सबसे अच्छा तरीका क्या है?] (Http://stackoverflow.com/questions/244882/what-is-the-best-way-to-implement- याद रखें-एक-वेबसाइट के लिए) – symcbean

+0

हैश का उपयोग करना इसके लिए समय की महंगी बर्बादी है - एक यादृच्छिक मान – symcbean

+0

का उपयोग करें सर्वोत्तम अभ्यास दस्तावेज़/anwsers/आलेख दृढ़ता से डीबी में टोकन हैश करने की सलाह देते हैं; मैं बस ऐसा करने के लिए एक उचित तरीके से सलाह की तलाश में हूं। –

उत्तर

13

का हवाला देते हुए The definitive guide to form-based website authentication:

लगातार प्रवेश कुकी (टोकन) अपने डेटाबेस में स्टोर नहीं करते, उसके केवल एक HASH! लॉगिन टोकन पासवर्ड समतुल्य है, इसलिए यदि हमलावर को आपके डेटाबेस पर हाथ मिला, तो वह किसी भी खाते में लॉग इन करने के लिए टोकन का उपयोग कर सकता था, जैसे कि वे क्लीयरटेक्स्ट लॉगिन-पासवर्ड संयोजन थे। इसलिए, लगातार लॉगिन टोकन संग्रहीत करते समय मजबूत नमकीन हैशिंग (बीसीआरपीटी/फीपास) का उपयोग करें।

मैं पहली बोल्ड वाक्य से सहमत हूं, लेकिन आखिरी नहीं।

अगर मैं गलत नहीं हूँ, एक "मजबूत नमकीन हैशिंग" एल्गोरिथ्म के उद्देश्य है कि किसी पासवर्ड रेनबो टेबल दिया पुनः प्राप्त करने में सक्षम नहीं होना चाहिए।

लेकिन यहां, हैश स्ट्रिंग एक पासवर्ड नहीं है लेकिन यादृच्छिक स्ट्रिंग है। इसलिए यह बहुत संभावना नहीं है कि किसी भी इंद्रधनुष तालिका किसी भी मूल रूप से धोया स्ट्रिंग पुनर्प्राप्त करने में सक्षम हो जाएगा। मुझे यह भी लगता है कि मैं बस इसके लिए एक मूल hash('sha256', $randomString) कॉल का उपयोग कर सकता हूं, लक्ष्य डीबी में और कुकी में टोकन के लिए अलग-अलग मान होने का लक्ष्य है।

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