2015-12-17 6 views
5

पर संग्रहित होने पर संदेश निकाय को एन्क्रिप्टेड रखें, मेरे प्रोजेक्ट को सभी डेटा एन्क्रिप्टेड रखने की आवश्यकता है, इसलिए एमएसएमक्यू को भी एन्क्रिप्ट किया जाना चाहिए। लेकिन जैसा कि यह लेख (https://msdn.microsoft.com/en-us/library/ms704178(v=vs.85).aspx) से ज्ञात है, निजी कतारों से संदेशों को डिफ़ॉल्ट रूप से संग्रहीत किया जाता है ... \ MSMQ \ Storage \ p000000x.mq फ़ाइल।एमएसएमक्यू। ड्राइव

जब मैं एक निजी कतार कॉन्फ़िगर करता हूं, तो इसका निजता स्तर "बॉडी" पर सेट करता है, और जब मैं इस कतार में एन्क्रिप्टेड संदेश भेजता हूं, तो मैं पाठ दर्शक में \ MSMQ \ Storage \ p000000x.mq फ़ाइल खोलता हूं (मैं उपयोग करता हूं सुदूर प्रबंधक हेक्स रेडैक्टर), मुझे संदेश का सादा पाठ दिखाई देता है। यह एन्क्रिप्टेड नहीं है। मैं अगले कोड का उपयोग संदेश भेजने के लिए:

message.UseEncryption = true; 
message.EncryptionAlgorithm = EncryptionAlgorithm.Rc2; 

संदेश ... \ MSMQ \ भंडारण \ p000000x.mq सादा रहता है, निर्दिष्ट संदेश एन्क्रिप्शन के बावजूद। नीचे दी गई तस्वीर देखें।

enter image description here तो मेरा प्रश्न: क्या ड्राइव में एन्क्रिप्टेड संदेश रखने के लिए कुछ अंतर्निहित टूल है ... \ MSMQ \ Storage \ p000000x.mq फ़ाइल? या मुझे कतार में भेजने से पहले संदेश निकाय को एन्क्रिप्ट करना होगा, और फिर, जब कतार से चिपक जाए, तो मुझे इसे डिक्रिप्ट करने की आवश्यकता है?

बहुत बहुत धन्यवाद!

उत्तर

4

हां, आपको इसे संदेश में डालने से पहले डेटा को एन्क्रिप्ट करना होगा और फिर संदेश पढ़ने के बाद डेटा को डिक्रिप्ट करना होगा।

"डेटा पर उपयोग करना आवेदन एन्क्रिप्शन" http://blogs.msdn.com/b/johnbreakwell/archive/2008/09/12/sending-encrypted-msmq-messages.aspx

+1

धन्यवाद, जॉन। मैंने आपको पहले लेख पढ़ा लेकिन एक प्रश्न पूछने का फैसला किया कि यह सुनिश्चित करने के लिए कि एक और समय संदेश संदेश को msmq से पहले एन्क्रिप्ट किया जाना चाहिए। यह सब सामान परियोजना के FIPS अनुपालन कार्यान्वयन के भीतर किया जाता है। –

+0

मुझे लगता है कि एन्क्रिप्टेड स्टोरेज उन सुविधाओं में से एक है जो अच्छा होगा लेकिन इसमें एमएसएमक्यू डिज़ाइन में प्रमुख (यानी महंगा) परिवर्तन शामिल होंगे। –

1

क्योंकि माइक्रोसॉफ्ट विंडोज एकाधिक उपयोगकर्ताओं † NTFS Encrypting File System (EFS) के माध्यम से के लिए फ़ोल्डर एन्क्रिप्शन का समर्थन करता है, मैं इस पारदर्शी एन्क्रिप्शन प्रणाली का MSMQ की एन्क्रिप्शन का समर्थन करने के लिए लाभ उठाने के लिए सक्षम था स्टोरेज फ़ोल्डर और इसलिए * .mq फ़ाइलों में संदेश निकायों और अन्यथा पठनीय पाठ के टुकड़े शामिल फाइलों के अंदर डेटा तक उपयोगकर्ता पहुंच के सतह क्षेत्र को कम करें।

यह समाधान एक विकल्प मैं निजी कतारों के लिए तैयार (कोई डोमेन एकीकरण के साथ) पारदर्शी रूप से एन्क्रिप्ट होने के लिए और आवेदन द्वारा Application-Encrypted Messages करने के लिए या कस्टम एन्क्रिप्शन का सहारा के बिना है। यह वास्तव में सिस्टम पर सभी कतारों को प्रभावित करता है क्योंकि एमएसएमक्यू उदाहरण के लिए संपूर्ण भंडारण स्थान एन्क्रिप्ट किया गया है।

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

नोट इस समाधान कहता है कि आप MSMQ के लिए डिस्क पर एक नया भंडारण स्थान बनाने के लिए, क्योंकि मैं मुद्दों था जब एन्क्रिप्ट करने के लिए कोशिश कर रहा है और डिफ़ॉल्ट संग्रहण स्थान विंडोज़/System32 किया जा रहा है जो परिवर्तित। यदि आपको कोई नया फ़ोल्डर बनाने के बिना इस समाधान को बनाने का कोई तरीका मिलता है तो कृपया टिप्पणियों में पोस्ट करें।
(यह जानकारी हो जाती है जैसा कि आप जानते हैं जहां के साथ सेवा को कॉन्फ़िगर करने के लिए अपने संदेश पंक्ति प्रबंधक को खोजने के लिए, और कैसे:

ये कदम मैं एक पारदर्शी रूप से एन्क्रिप्टेड MSMQ समाधान के लिए EFS प्रौद्योगिकी काम करने के लिए ले रहे हैं कुछ अन्य बुनियादी विंडोज व्यवस्थापक कार्यों को पूरा करने या पता लगाने के लिए एक प्रशासक (संदेश INF कतारबद्ध सेवा संभालने के रूप में मशीन में ऐसा करने के लिए कैसे)

  1. लॉग पहले से स्थापित है, नहीं तो हवा से इसे स्थापित ओयूएस कार्यक्रम और विशेषताएं)।

  2. उपयोगकर्ता खाता का ध्यान रखें संदेश संदेश सेवा (यानी नेटवर्क सेवा) के अंतर्गत चल रही है। आपको निम्न चरणों में इसकी आवश्यकता होगी ...

  3. msmq के लिए डिस्क पर वैकल्पिक संग्रहण फ़ोल्डर बनाएं उदा। सी: \ msmq-storage

  4. पूर्ण व्यवस्थापक अनुमति के साथ अपने व्यवस्थापक उपयोगकर्ता को नए फ़ोल्डर में असाइन करें।

  5. सेवा उपयोगकर्ता खाता असाइन करें (चरण 2 में उल्लिखित नेटवर्क सेवा) फ़ोल्डर में पूर्ण नियंत्रण अनुमति भी।

  6. एन्क्रिप्ट उसके गुण के लिए जा रहा है और एन्क्रिप्ट चेकबॉक्स को सक्षम करने से फ़ोल्डर (यह एक बहुत ही महत्वपूर्ण कदम है क्योंकि यह संदेश फ़ाइलें। की एन्क्रिप्टेड सामग्री के MSMQ सेवा उपयोगकर्ता खाता पहुँच देता है)। फ़ोल्डर अब एन्क्रिप्ट किया गया है और एक अलग रंग में दिखाया जा सकता है।
    (आप मशीन पर एक अन्य उपयोगकर्ता के रूप में प्रवेश करने और एन्क्रिप्टेड फ़ाइलों की सामग्री का उपयोग करने की कोशिश कर, एक में जिसके परिणामस्वरूप द्वारा इस परीक्षण कर सकते हैं 'प्रवेश निषेध' संदेश।)

  7. अब MSMQ प्रबंधक का उपयोग अपने स्टोरेज स्थानों को फिर से इंगित करने के लिए (उन सभी को) नए एन्क्रिप्टेड फ़ोल्डर में जिसे आपने अभी डिस्क पर बनाया है (और जहां भी हो सकता है डिफ़ॉल्ट या वर्तमान स्टोरेज स्थान से दूर)। परिवर्तन आपको सेवा को पुनरारंभ करने के लिए संकेत देगा। हाँ बोलो।

यदि आपको इस समाधान के साथ कोई समस्या है तो कृपया टिप्पणियों में यहां पोस्ट करें। धन्यवाद।

† मैं करने के लिए लिख और एक बुनियादी .NET अनुप्रयोग this article about how to write a bare minimum message queue app में उल्लिखित का उपयोग कर कतार से पढ़कर दोनों विन 7 कार्य केंद्र & विंडोज 2008 R2 सर्वर पर इस समाधान का परीक्षण किया।

+1

यह दृष्टिकोण डेटा को सुरक्षित रखने में आसान बनाता है। उत्पादन में, प्रदर्शन पर असर पड़ सकता है ताकि लोड परीक्षण के साथ-साथ कार्यात्मक परीक्षण की भी सिफारिश की जा सके। –

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