2011-02-17 4 views
6

मैं विंडोज 7 में FIPS अनुपालन मोड सक्षम है, लेकिन अब मेरी कोड निम्न त्रुटि के साथ संकलित करने के लिए विफल रहता है:आप विजुअल स्टूडियो 2010 और विंडोज 7 के साथ FIPS मान्य क्रिप्टोग्राफिक एल्गोरिदम का उपयोग कैसे करते हैं?

Source file 'whatever.cs' could not be opened ('This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.') 

मैं SHA1 (हैशिंग) और TripleDes (एन्क्रिप्शन) एन्क्रिप्शन का उपयोग कर रहा हूँ। मैंने SHA512 और एईएस (256 बिट कुंजी) भी कोशिश की।

मैं परियोजना को और बनाने के लिए नहीं मिल सकता, लेकिन मुझे FIPS अनुपालन एल्गोरिदम का उपयोग करने के लिए इसे संकलित करने की आवश्यकता है।

उत्तर

8

एक खाली सी # अनुप्रयोग बनाने और यह संकलन की कोशिश करें, यह एक ही कारण के लिए असफल चाहिए। आखिरकार समस्या विजुअल स्टूडियो है, न कि आपका कोड। instructions here पालन करें और अपने आईडीई के कॉन्फ़िग फ़ाइल (Devenv.exe.config/VCSExpress.exe.config/vbexpress.exe.config) से जोड़ें:

<enforceFIPSPolicy enabled="false"/> 

इसका मतलब यह नहीं है कि आपकी ऐप FIPS अनुरूप मोड में नहीं चल रहा है, इसका मतलब है कि दृश्य स्टूडियो 'isn टी अब गैर-अनुपालन कोड अभी भी संकलित होगा लेकिन यदि यह निष्पादित करने का प्रयास करता है तो आपको System.InvalidOperationException अपवाद प्राप्त होगा।

मुझे लगता है, लेकिन यह सुनिश्चित नहीं है कि वीएस पुस्तकालयों में कुछ हैश उत्पन्न करने के लिए उपयोग किए जाने वाले एल्गोरिदम वास्तव में FIPS अनुरूप नहीं है।

+5

आप आईडीई में सभी खुली फ़ाइलों को बंद करने और फिर निर्माण करने का भी प्रयास कर सकते हैं। किसी ने हाल ही में माइक्रोसॉफ्ट कनेक्ट में इस मुद्दे को लिखा है: https://connect.microsoft.com/VisualStudio/feedback/details/644602/c-solution-will-not-build-with-fips-compliant-security-turned-on- और-कुछ-स्रोत-फाइल-ओपन-इन-आइडिया – indiv

+1

यह गलत करने के लिए सीएलआर को अनिश्चित एल्गोरिदम और कार्यान्वयन के निर्माता से अमान्यऑपरेशन अपवादों को फेंकने से रोक देगा। मुझे यकीन नहीं है कि यह वही है जो आप करना चाहते हैं यदि आपको वास्तव में FIPS प्रमाणित एल्गोरिदम का उपयोग करने की आवश्यकता है। – SwDevMan81

+1

@ SwDevMan81, जो एक डिग्री के लिए सच है। हालांकि, यह सेटिंग केवल विजुअल स्टूडियो को प्रभावित करेगी और न कि प्रोग्राम को बनाया जा रहा है। यदि आप इस नीति को वीएस के लिए चालू करते हैं और MD5 का उपयोग करने का प्रयास करते हैं तो आपको एक त्रुटि मिल जाएगी। –

9

This में FIPS अनुरूप एल्गोरिदम की एक सूची है। एक और पूरी सूची here

FIPS compliant Algorithms:

Hash algorithms

HMACSHA1

MACTripleDES

SHA1CryptoServiceProvider

Symmetric algorithms (use the same key for encryption and decryption)

DESCryptoServiceProvider

TripleDESCryptoServiceProvider

Asymmetric algorithms (use a public key for encryption and a private key for decryption)

DSACryptoServiceProvider

RSACryptoServiceProvider

तो तुम SHA1CryptoServiceProvider और TripleDESCryptoServiceProvider उपयोग करने के लिए करने की आवश्यकता होगी है FIPS समर्थक

+0

को पुनः आरंभ किया था। – ScArcher2

+0

जैसा कि इंडिव ने इंगित किया है कि आपको सभी फाइलों को बंद करने और वीएस को पुनरारंभ करने की आवश्यकता हो सकती है। आप एक नया csproj और sln फ़ाइलों को भी बनाना चाहते हैं। – SwDevMan81

+1

मुझे विश्वास है कि HMACSHA1 SHA1CSP एल्गोरिदम से मेल खाता है। मुझे नफरत है कि कैसे .net दस्तावेज आपको नहीं बताता है कि एल्गोरिदम आधिकारिक नाम क्या हैं, और FIPS आदि द्वारा कौन सा संस्करण अनुमोदित है। – Dexter

0

You can also try closing all open files in the IDE and then building. Someone wrote up the >issue recently at Microsoft Connect: connect.microsoft.com/VisualStudio/feedback/details/644602/… – indiv

कि यह विजुअल स्टूडियो 2010 के साथ मेरे लिए काम किया मेरे मामले में मैं सभी खुली फ़ाइलों को बंद करने और उस संयोजन एल्गोरिदम के मैं अभी भी त्रुटि मैं उपरोक्त प्राप्त का उपयोग करते समय यह विजुअल स्टूडियो

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