2010-02-03 13 views
5

-न्यू- मुझे एक और उपयोग मिला। एचटीटीपीएस पोस्ट डेटा के माध्यम से मुझे कुछ डेटा सबमिट किया गया है और मैं इसे अपने डीबी में स्टोर करना चाहता हूं (जैसे कि मां का पहला नाम, जिसे ग्राहक समर्थन को बाद में पढ़ने के लिए गलत है, हैश मैचों की गलत जांच कर रहा है)। मुझे केवल उस अनुभाग को एन्क्रिप्टेड की आवश्यकता है, न कि पूरे डीबी और एक अलग डीबी का उपयोग करने के लायक नहीं हो सकता है। प्रश्न: .NET का उपयोग कर सममित कुंजी + टेक्स्ट एन्क्रिप्ट करने के लिए मैं प्रीपेड पब्लिक कुंजी का उपयोग कैसे कर सकता हूं? (शेष संदर्भ के लिए है, मुझे बस एक उत्तर plz चाहिए)एप सार्वजनिक/निजी कुंजी के साथ एन्क्रिप्टिंग .net

-edit- मैंने पहले सममित एन्क्रिप्शन किया है। मैं सार्वजनिक कुंजी के साथ सममित कुंजी कैसे एन्क्रिप्ट करूं? एक अच्छा बोनस है यदि आप मुझे बता सकते हैं कि एक अलग ऐप में सार्वजनिक/निजी कुंजी कैसे उत्पन्न करें ताकि मैं उन्हें बना सकूं और केवल एक ऐप में सार्वजनिक कुंजी स्टोर कर सकूं।

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

तो मैं सोच रहा हूं कि मेरे ऐप में सार्वजनिक या निजी कुंजी कैसे हो सकती है जो डेटा को एन्क्रिप्ट करता है, इसलिए केवल मैं (या जो भी मैं कुंजी देता हूं) बैकअप को डिक्रिप्ट कर सकता है। मैं इसे .NET में कैसे करूं। लॉग इन करना और स्थानांतरित करना मैं कुछ मिनटों में लिख सकता हूं लेकिन मैं इसे लिखने के रूप में स्ट्रीम को कैसे एन्क्रिप्ट कर सकता हूं?

-edit- यह सिर्फ मुझे मारा। उपयोगकर्ता/पास एक रहस्य नहीं होगा। तो मुझे स्थानांतरण से पहले अपने बैकअप एन्क्रिप्ट करना होगा। मैं .NET का उपयोग कर सार्वजनिक कुंजी के साथ एक सममित कुंजी कैसे एन्क्रिप्ट करूं? फिर इसे मेरी तरफ डिक्रिप्ट करें। एक सममित कुंजी के साथ फ़ाइल एन्क्रिप्शन मुझे पता है कि कैसे करना है।

+2

एन्क्रिप्शन के प्रयोजन के डेटा की बड़ी मात्रा की सुरक्षा में एक छोटी सी चाबी की सुरक्षा का लाभ उठाने के लिए है। ** आप यह सुनिश्चित करने के लिए कैसे जा रहे हैं कि आपकी निजी कुंजी गुप्त रहती है? ** बिट्स को एन्क्रिप्ट करना आसान है; चाबियाँ प्रबंधित करना आम तौर पर क्रिप्टो सिस्टम टूट जाता है। –

+0

मैं सकारात्मक हूं अगर मैं अपने लिए एक कुंजी रखता हूं और ऐप में दूसरी कुंजी डालता हूं तो मैं बिना किसी समस्या के एन्क्रिप्ट कर सकता हूं। मैं सार्वजनिक/निजी कुंजी एन्क्रिप्शन करने के लिए .NET कार्यों/libs नहीं जानता। मैंने एक बार सममित एन्क्रिप्शन का उपयोग किया।नेट –

उत्तर

14

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

दूसरा, आप सार्वजनिक/निजी कुंजी क्रिप्टो का उपयोग करने के बारे में क्यों सोच रहे हैं? आम तौर पर आप किसी प्रेषक से प्राप्तकर्ता से संदेश पर संवाद करने का प्रयास करते समय सार्वजनिक/निजी कुंजी क्रिप्टो का उपयोग करेंगे। आपके परिदृश्य में सार्वजनिक कुंजी क्रिप्टो क्या मूल्य जोड़ता है?

सी # में धारा को एनक्रिप्ट करने के लिए, यह पेज मदद कर सकता है:

http://support.microsoft.com/kb/307010

अद्यतन:

बिल्कुल, हाँ, आप फ़ाइलों एन्क्रिप्ट करने के लिए इससे पहले कि वे साइट पर आते है आप जो माना जाता है कि समझौता किया गया है।

आपको विश्वास है कि साइट असुरक्षित हो सकती है। यह धारणा आपको बनाना चाहिए कि साइट आपका दुश्मन है और आपको को चोट पहुंचाने का प्रयास कर रहा है। अपने हमलावर सोचने की तरह सोचना शुरू करें। आपका दुश्मन क्या करेगा?अगर मैं अपने दुश्मन थे और तुम मुझे फाइलों का एक समूह को सौंप दिया आपकी ओर से स्टोर करने के लिए, मैं हो सकता है:

  • अपनी फ़ाइलें
  • भ्रष्ट अपने फ़ाइलों को हटाने के
  • अपनी फ़ाइलें
  • लॉग हर बाइट पढ़ा है कि बाद में विश्लेषण के लिए आता है या बाहर जाता है
  • अपनी फ़ाइलों को शत्रुतापूर्ण फ़ाइलों के साथ प्रतिस्थापित करें - विशेष रूप से, सभी निष्पादन योग्य कोड, स्क्रिप्ट, और इसी तरह, आप इस साइट पर स्टोर करते हैं, आपको लगता है कि विशेष रूप से हमलावर पर लक्षित वायरस से भरे हुए हैं आप
  • आपको परेशानियों में लाने के लिए सामान करते हैं - वे संदेश देखते हैं जो वे आपके पास आते हैं, और

मान लें कि असुरक्षित बैकअप साइट ऑपरेटर आपको उन सभी चीजों को करने की कोशिश कर रहे हैं। क्रिप्टो उन हमलों में से कुछ के लिए एक शमन है, लेकिन उनमें से सभी नहीं।

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

+0

मैंने सर्वर सह में काम किया और मेरे एक दोस्त ने उनके साथ ऐसा किया और कंपनी को साबित करने के लिए हमला किया (यह मेरे आने से पहले था) और अनुचित आभासीकरण सेटिंग्स के माध्यम से अन्य लोग आक्रमण के साथ आपकी साइट पर जा सकते हैं। यहां तक ​​कि यदि यह ज्यादातर समय समस्या नहीं है या मुख्य साइट पर कोई समस्या है, तो भी मैं इसे कम करना पसंद करता हूं अगर मैं इसे किसी अन्य सर्वर पर डाल रहा हूं। मेरे पास इस मामले में 'बैकअप साइट सुरक्षित' करने की क्षमता नहीं होगी। –

+0

ग्रेट लिंक। यह दिखाता है कि स्ट्रीम का उपयोग करते समय फ़ाइल को एन्क्रिप्ट कैसे करें। लेकिन ऐसा लगता है कि यह केवल एक सममित कुंजी का उपयोग कर रहा है। मैं एक सममित कुंजी उत्पन्न कर सकता हूं लेकिन मैं .NET में किसी निजी/सार्वजनिक कुंजी के साथ कुंजी को कैसे एन्क्रिप्ट कर सकता हूं? –

+0

@Eric - मैं मानता हूं कि बैकअप ऐप एक मध्यम प्रणाली पर है जो सस्ता साइट पर पढ़ता है और लिखता है, तो एक सार्वजनिक/निजी कुंजी अनावश्यक है। सममित कुंजी एन्क्रिप्शन भी तेज है। लेकिन यदि बैकअप ऐप सस्ता सर्वर पर है और समझौता किया जा सकता है, तो एक सार्वजनिक/निजी कुंजी को प्राथमिकता दी जाएगी। –

1

आप एक सममित कुंजी के साथ एन्क्रिप्ट करते हैं, फिर एक सार्वजनिक कुंजी के साथ सममित कुंजी को एन्क्रिप्ट करें, फिर सममित कुंजी ड्रॉप करें। केवल संबंधित निजी कुंजी (आप) के मालिक ही बाद में सममित कुंजी, और इसलिए दस्तावेज़ को डिक्रिप्ट कर सकते हैं। ऐप में कोई रहस्य संग्रहित नहीं है। अच्छी खबर यह है कि इसे हल करने के लिए बॉक्स उत्पादों (पीजीपी) और प्रोटोकॉल (एस-माइम) के लगभग एक टन से अधिक है।

+0

मुझे एहसास है कि मुझे स्थानांतरण से पहले एन्क्रिप्ट करने की आवश्यकता है। एटीएम मैं स्क्लाइट का उपयोग कर रहा हूं इसलिए मैं इसे एक मिनट के लिए लॉक कर सकता हूं और इसे पढ़ने के लिए किसी ऐप का उपयोग कर सकता हूं। 'gpg-zip' ऐसा लगता है कि यह काम कर सकता है लेकिन मुझे एक गैर सममित कुंजी देने का कोई तरीका नहीं दिख रहा है (यह प्रतीत होता है और मुझे stdin हैकिंग की तरह महसूस नहीं होता है)। क्या आपको अपने सिर के ऊपर से उपयोग के बारे में पता होना है (सप्ताहांत आने पर मैं और अधिक शोध करूंगा) –

+0

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

1

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

लेकिन, जो एल्गोरिथ्म आप उपयोग पर ध्यान दिए बिना, आप सुनिश्चित करें कि आपके चाबियाँ, सुरक्षित संभव के रूप में कर रहे हैं एईएस के लिए अपने सममित कुंजी है, और आरएसए आदि

इस लेख के लिए अपनी निजी कुंजी यानी बनाने के लिए की आवश्यकता होगी , सॉल्ट के साथ/बिना सममित एन्क्रिप्शन को निष्पादित करने के तरीके पर एक ट्यूटोरियल प्रदान करता है।

http://www.obviex.com/samples/Encryption.aspx

+0

मैंने पहले सममित एन्क्रिप्शन किया है। हर किसी ने मुझे उससे जोड़ा। मैं .NET में सार्वजनिक कुंजी के साथ सममित कैसे एन्क्रिप्ट करूं? –

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