2008-12-16 14 views
7

मैं एएसपी.NET 2.0 एप्लिकेशन के साथ किसी समस्या में भाग रहा हूं। हमारे नेटवर्क लोगों ने अभी हमारी सुरक्षा को बढ़ाया है, और अब जब भी मैं ऐप तक पहुंचने का प्रयास करता हूं तो मुझे फ्लोइंग त्रुटि मिलती है:एएसपी.नेट 2.0 रिजेंडेल प्रबंधित एन्क्रिप्शन एल्गोरिदम बनाम FIPS

"यह कार्यान्वयन विंडोज प्लेटफ़ॉर्म FIPS मान्य क्रिप्टोग्राफ़िक एल्गोरिदम का हिस्सा नहीं है।"

मैं एक छोटे से अनुसंधान किया है, और यह लग रहा है ASP.NET तरह RijndaelManaged एईएस एन्क्रिप्शन एल्गोरिथ्म का उपयोग करता पृष्ठों की ViewState एन्क्रिप्ट करने के लिए ... और RijndaelManaged एल्गोरिदम कि FIPS अनुरूप नहीं हैं की सूची में है । हम निश्चित रूप से किसी भी एन्क्रिप्शन एल्गोरिदम को स्पष्ट रूप से कॉल नहीं कर रहे हैं ... गैर-अनुपालन सूची पर बहुत कम कुछ भी।

यह व्यूस्टेट व्यवसाय मुझे समझ में आता है, मुझे लगता है। जिस चीज को मैं उलझन में नहीं डाल सकता, वह इसके बारे में क्या करना है। मुझे एक KB article मिला है जो एक अलग एल्गोरिदम निर्दिष्ट करने के लिए web.config सेटिंग का उपयोग करने का सुझाव देता है ... लेकिन या तो वह छड़ी नहीं है, या वह एल्गोरिदम स्नफ करने के लिए नहीं है, या तो।

तो:

1) RijndaelManaged/ViewState बात वास्तव में समस्या है? या मैं गलत पेड़ को भड़क रहा हूँ?

2) मैं कैसे निर्दिष्ट करूं कि रिजेंडेल मैनेज्ड के बजाय उपयोग करने के लिए एल्गोरिदम क्या है? मुझे एल्गोरिदम की एक सूची मिली है जो अनुरूप नहीं हैं; मुझे यकीन नहीं है कि उस जानकारी को कहां प्लग करना है।

धन्यवाद!

रिचर्ड

उत्तर

2
अपने 2 प्रश्न के बारे में

: हो सकता है इस MSDN Article मदद करता है।

डॉक्स के अनुसार आप इस तरह एन्क्रिप्शन एल्गोरिथ्म कॉन्फ़िगर कर सकते हैं:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>

सत्यापन के लिए, आप निम्न में से एक का उपयोग कर सकते हैं: [SHA1 | एमडी 5 | 3 डीईएस | एईएस]

डिक्रिप्शन के लिए, आप निम्न में से एक का उपयोग कर सकते हैं: [ऑटो | डीईएस | 3 डीईएस | एईएस]

तो FIPS अनुपालन करने के लिए, आप 3 डीईएस (हालांकि AFAIK सैद्धांतिक रूप से कम सुरक्षित) का उपयोग कर सकते हैं।

0

हमने मशीन की कोशिश की है जिसे आप सुझाव देते हैं। इससे कुछ वेब अनुप्रयोगों (जब जोड़ा जाता है) के साथ मदद मिली है, जो कि बहुत अच्छा है, लेकिन उन सभी उनमें से निराशाजनक है।

मुझे कुछ याद आ रही है, लेकिन अगर मैं बता सकता हूं तो मुझे डर लग रहा है।

0

आप भी बॉक्स

Enforcing FIPS Certified Cryptography

+0

हालांकि बहुत प्रासंगिक नहीं, एक -1 की शायद ही योग्य, जो कोई भी आप कर रहे हैं - तो बाहर upvoting द्वारा संतुलन (यदि -1र वापस आ गया और बताता है, मुझे अपना अपवॉट हटाने में खुशी है)। (लिंक बताता है कि प्रश्न में नेटवर्क लोगों ने इस नीति को पहले स्थान पर कैसे बदल दिया होगा) –

5

तरह जांच लें कि आप अपने Web.config में <compilation debug="true" /> की जरूरत नहीं है पर यह करने के लिए की आवश्यकता होगी। जब डीबग संकलन सेट किया जाता है, तो .NET कुछ आंतरिक बहीखाता के लिए MD5 हैश का उपयोग करता है। MD5 FIPS अनुरूप नहीं है इसलिए आपको यह त्रुटि मिलती है।

0

SharePoint साइटों की तरह कुछ साइटों इसलिए यदि कोई पहले से ही वहाँ एक algorythm है अगर वहाँ इसे हटा और ऊपर जोड़ने देखने के लिए जाँच वेब config में SHA1 मशीन कुंजी पहले से ही है।

2

स्रोत: http://blogs.msdn.com/b/shawnfa/archive/2008/03/14/disabling-the-fips-algorithm-check.aspx

आप जोड़ सकते हैं अपने web.config या मशीन config के लिए निम्न तो अपने ASP.Net अनुप्रयोगों FIPS अनुपालन चेकों की वजह से नाकाम रहने के बंद हो जाएगा।

<configuration> 

    <runtime> 
     <enforceFIPSPolicy enabled="false"/> 
    </runtime> 

आपका machine.config यहां पाया जा सकता: \ Microsoft.NET \ फ्रेमवर्क \\ config \ machine.config

आप अपने machine.config बदलते हैं, तो हो सकता है iisreset सेटिंग्स को प्रभावी होने के लिए आवश्यक है। नोट: आपके maching.config को बदलना सिस्टम पर सभी .NET अनुप्रयोगों को प्रभावित करेगा।


आपके आवेदन एफआईपी निष्क्रिय करने के लिए बिना शिकायत एफआईपी होने के लिए प्राप्त करने के लिए, आप निम्न की कोशिश कर सकते हैं:

1) डिक्रिप्शन और सत्यापन के लिए SHA1 के लिए 3DES उपयोग करने के लिए अपने मशीन कुंजी कॉन्फ़िगर करें।

<configuration> 
<system.web> 
    <authentication mode="Windows" /> 
    <machineKey decryption="3DES" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" validationKey="AutoGenerate,IsolateApps" /> 
</system.web> 
</configuration> 

नोट: यदि आप एक वेब खेत पर्यावरण का उपयोग कर रहे हैं, तो आप आईआईएस जीयूआई का उपयोग और चाबी का एक सेट पैदा करते हैं और अपने वेब खेत में एक ही कुंजी का उपयोग करने के लिए मशीन कुंजी विन्यास अनुभाग के लिए जा सकते हैं।

2) सुनिश्चित करें कि आपका संकलन डिबग = "false", और सभी पेज निर्देशों डिबग = "false" है। डीबग को सच्चाई में सेट करने से एफआईपी अनुपालन जांच भी खत्म हो जाएगी।

0

viewstate मशीन कुंजी और संकलन = "डिबग" config मुद्दों मैं क्या देखा है से इस समस्या का सबसे आम कारण है। जहां तक ​​मुझे पता है, .NET 2.0 में, व्यूस्टेट सत्यापन/एन्क्रिप्शन के लिए 3DES एल्गोरिदम केवल एक है जो FIPS अनुरूप है। तो एसएचए 1, एमडी 5, और एईएस विकल्प वहां काम नहीं करेंगे।

यह भी जानना महत्वपूर्ण है कि यदि किसी भी गैर-FIPS अनुरूप एल्गोरिदम का संदर्भ कोड में है, भले ही वास्तव में कभी भी उपयोग नहीं किया जा सके/पहुंचने योग्य FIPS अनुपालन त्रुटि का कारण बनता है। उदाहरण के लिए बस एक MD5CryptoServiceProvider चर घोषित किए बिना इसे तुरंत चालू करने से त्रुटि उत्पन्न होगी। इसमें अन्य संदर्भित .NET असेंबली शामिल हैं, इसलिए सुनिश्चित करें कि कोई संदर्भित डीएल संभवतः गैर-फ़िप्स अनुपालन एल्गोरिदम का उपयोग कर रहे हैं।

यहाँ एक आसान साइट है कि .NET में FIPS और गैर FIPS एल्गोरिदम के सभी सूचीबद्ध करता है http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html