2013-02-18 12 views
6

जो मैं समझता हूं, सर्विसस्टैक के Authentication का उपयोग करते समय आप आम तौर पर सत्र की शुरुआत में प्रमाणित करेंगे और फिर प्रमाणित के रूप में सर्वर पक्ष पर सत्र को चिह्नित करेंगे। बाद के वेब सेवा अनुरोध उस सत्र आईडी का उपयोग करेंगे और पुनः प्रमाणीकरण की आवश्यकता नहीं होगी। (अगर मैं अब तक गलत हूं तो कृपया मुझे सही करें)।सर्विसस्टैक सत्र आईडी पर्याप्त सुरक्षित हैं?

नए सत्र आईडी का उत्पादन Guid.NewGuid() SessionExtensions.cs में doesn't generate cryptographically fantastic values में किया जाता है। क्या क्रिप्टोग्राफ़िक रूप से सुरक्षित मानों का उपयोग करने के लिए स्विच करने का कोई कारण नहीं है, उदा। RNGCryptoServiceProvider का उपयोग कर?

अद्यतन:

वास्तव में, एक सा आगे इस बारे में सोच के बाद, ASP.NET अपने सत्र आईडी पुष्टि करते हैं कि अनुरोधकर्ता प्रमाणित है का उपयोग नहीं करता। यह एक फॉर्म प्रमाणीकरण टिकट का उपयोग करता है जिसे मशीन कुंजी के साथ एन्क्रिप्ट किया गया है और एएसपी.नेट 2.0 के लिए प्रक्रिया के here's a nice description) है।

मैं सुरक्षा दोस्त नहीं हूं इसलिए मुझे नहीं पता कि अगर आप एएसपी.नेट फॉर्म एथ द्वारा प्रदान की गई सुरक्षा के स्तर की तुलना करना चाहते हैं और यह यादृच्छिक मूल्य द्वारा प्रदान किया गया है तो मुझे क्या पता नहीं है। मुझे लगता है कि यह सब कुंजी और डेटा की लंबाई के लिए नीचे आता है ... लेकिन फॉर्म प्रमाणीकरण पर एक ब्रूट-फोर्स हमले को माउंट करने के लिए आवश्यक समय शायद अधिक है क्योंकि इसे केवल यादृच्छिक संख्याओं के पूरे ढेर की आवश्यकता नहीं है?

उत्तर

7

दाएं ServiceStack प्रमाणीकरण + सेट सत्र कुकी के मानक HTTP दृष्टिकोण का उपयोग करता है ताकि बाद के अनुरोधों के लिए एक प्रमाणित सत्र स्थापित किया जा सके, जो सभी वेब ढांचे में एक आम दृष्टिकोण है।

हालांकि मैं नेट में एक असुरक्षा की भविष्यवाणी और करने में सक्षम होने से कभी नहीं सुना है रिवर्स इंजीनियर एक GUID, it appears कि ASP.NET के अपने सत्र आईडी मजबूत नहीं है के रूप में एक Guid (2^120 बनाम 2^128 एंट्रॉपी के बिट्स)। लेकिन यह वास्तव में यादृच्छिक नहीं है, हम अगली रिलीज में वास्तव में यादृच्छिक पहचानकर्ता का उपयोग करने के लिए सर्विसस्टैक के कार्यान्वयन को बदल देंगे।

+0

बस एहसास हुआ कि एएसपी.नेट प्रमाणीकरण के लिए सत्र आईडी का उपयोग नहीं करता है बल्कि बल्कि एन्क्रिप्टेड और फॉर्म प्रमाणीकरण टिकट रखता है। सुरक्षा की तुलना में कोई विचार? दर्द नहीं करना चाहते हैं, लेकिन यह हमारे लिए महत्वपूर्ण है कि हम इस ढांचे को आसानी से चुन सकें। – Rory

+0

कुछ करने का सबसे तेज़ तरीका सिर्फ इसके लिए पुल-अनुरोध भेजना है। अन्यथा इसे तब तक इंतजार करना पड़ेगा जब तक कि हमारे पास ऐसा करने का खाली समय न हो। मैं इस सप्ताहांत रिलीज (v3.9.38 +) से पहले इसे प्राप्त करने के लिए देखता हूं - लेकिन कोई वादा नहीं। – mythz

+3

सर्विसस्टैक के FYI v3.9.38 + को RNGCryptoServiceProvider का उपयोग करने के लिए अद्यतन किया गया था [इस प्रतिबद्ध में] (https://github.com/ServiceStack/ServiceStack/commit/4235f0b11ff6ee9a6f49c49edacb4363684291e2) – mythz

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