2013-02-27 35 views
7

मैं एक साधारण एप्लिकेशन बनाने की कोशिश कर रहा हूं जो एक ईमेल भेजेगा। मैं MailMessage और SmtpClient कक्षाओं का उपयोग करता हूं। SmpClient को काम करने के लिए लॉगिन और पासवर्ड की आवश्यकता है।सुरक्षित तरीके से ईमेल भेजें

  • क्या यह सरल स्ट्रिंग में लॉगिन/पासवर्ड के साथ एप्लिकेशन को संकलित करने के लिए सुरक्षित है?
  • क्या यह इसे अलग करना संभव है, और पासवर्ड प्राप्त करना संभव है?
  • संभावित हमलावर से इसे कैसे छिपाना है?
  • क्या लॉगिन/पासवर्ड का उपयोग कर ईमेल w/o भेजना संभव है?
+2

आपको पासवर्ड एन्क्रिप्ट करना होगा क्योंकि किसी भी सादे स्ट्रिंग को आसानी से परावर्तक जैसे टूल का उपयोग करके देखा जाएगा। मैं या तो उपयोगकर्ता को संकेत दूंगा, या कॉन्फ़िगरेशन प्रकार फ़ाइल में एन्क्रिप्टेड पासवर्ड स्टोर करूंगा। –

+1

एक ** सेवा खाता ** बनाएं जो ई-मेल भेज सकता है (लेकिन अधिक कुछ नहीं) और प्रमाण-पत्र एन्क्रिप्ट करें? – SpaceBison

उत्तर

6

हां, आपके आवेदन में कहीं भी सादा पाठ में पासवर्ड संग्रहीत करना असुरक्षित है। ऐसा मत करो! वैकल्पिक रूप से आप सकता है

Encrypting and Decrypting ApplicationConfigSections

:

इसके बजाय, आप पासवर्ड एन्क्रिप्टेड अपने App.config फ़ाइल में (एक विन्यास फाइल में या कहीं और, उदाहरण के लिए machine.config) संग्रहीत करना चाहिए प्रमाण पत्र के लिए उपयोगकर्ता को रनटाइम पर पूछें।

यदि आप स्पष्ट रूप से पासवर्ड प्रदान करने से बचना चाहते हैं, तो आप वर्तमान में लॉग ऑन उपयोगकर्ता के विंडोज प्रमाणीकरण के माध्यम से प्रमाणित कर सकते हैं। इसके लिए आप मेल भेजने के लिए SmtpClient.UseDefaultCredentials का उपयोग कर सकते हैं। बेशक यह केवल तभी काम करता है जब SmtpServer उपयोगकर्ताओं के विंडोज प्रमाण-पत्रों को पहचानता है।


आप मैन-इन-द-मिडल हमलों और पैकेट सूँघने से सुरक्षित होना चाहते हैं, तो आप प्रमाणीकरण डाटा संचारित करने के लिए SSL का उपयोग करना चाहिए। आप इसे enabling SSL in the configuration द्वारा कर सकते हैं या बस संपत्ति को सेट कर सकते हैं: SmtpClient.EnableSsl। (.NET> = 4.0)

+0

ऐसा लगता है कि मुझे इस App.config चीज़ को समझने के लिए अभी बहुत कुछ पढ़ने की आवश्यकता है। Asp.net में मैंने ऐसा कुछ देखा, लेकिन WinForms में मैं इसे नहीं देखता। हालांकि मैं इसके बारे में लाल हूँ। लेकिन जब SmtpClient संदेश भेजता है, तो क्या हमलावर के लिए पासवर्ड दिखाई देता है जो पैकेट स्निफर का उपयोग करता है? – zgnilec

+1

आप मेल भेजने के लिए एसएसएल का उपयोग कर सकते हैं, तो पासवर्ड सादा पाठ में नहीं भेजा जाएगा और आप पैकेट स्नीफर्स से सुरक्षित हैं। – magnattic

+0

एक एन्क्रिप्टेड रूप में पासवर्ड को संग्रहीत कैसे उपयोगी है? यदि यह एन्क्रिप्ट किया गया है, तो ऐप को इसे डिक्रिप्ट करना होगा, और इसलिए * उस * को पासवर्ड प्रोग्राम बाइनरी में अनएन्क्रिप्टेड होना होगा, आदि –

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