Сделать веб-приложение ASP.NET FIPS-совместимым? - PullRequest
1 голос
/ 25 июня 2010

Мне нужно понять, как сделать веб-приложение ASP.NET совместимым с FIPS.Для простоты я создал новое веб-приложение в VS 2008. У меня на компьютере разработчика включен FIPS, поскольку клиент, использующий веб-приложение, будет федеральным агентством, которое будет применять FIPS.

Я не могудаже скомпилировать новое веб-приложение - поскольку оно выдает мне ошибку:

Эта реализация не является частью проверенных криптографических алгоритмов платформы Windows FIPS.

Я прочитал документацию и добавил следующие элементы вфайл web.config:

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

<enforceFIPSPolicy enabled="false" /> (also tried <enforceFIPSPolicy enabled="0" />)

Но я все еще получаю эту ошибку.Опять же, я хочу, чтобы это работало с совершенно новым веб-приложением, прежде чем я попытаюсь заставить его работать с моим реальным решением.

Я использую .NET 3.5 SP1 для платформы.

Любая помощь будет принята с благодарностью.

Спасибо.

Крис

Ответы [ 2 ]

2 голосов
/ 29 июня 2010

, если в коде есть ссылка на ЛЮБОЙ не совместимый с FIPS алгоритм, даже если он никогда не использовался / недоступен, приведет к ошибке соответствия FIPS. Например, простое объявление переменной MD5CryptoServiceProvider без ее создания приведет к ошибке. Это относится и к другим ссылочным сборкам .NET, поэтому убедитесь, что никакие ссылочные библиотеки не могут использовать не совместимые с fips алгоритмы.

Вот удобный сайт, который перечисляет все алгоритмы FIPS и не-FIPS в .NET http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

0 голосов
/ 12 апреля 2016

Есть две вещи, чтобы сделать новые приложения .NET совместимыми с FIP.

1) В настройках ключа машины используйте 3DES для расшифровки и SHA1 для проверки, как вы упоминали в вопросе. (Существует STIG, который говорит, что вы должны использовать SHA1. https://www.stigviewer.com/stig/iis_7.0_web_site/2014-03-25/finding/V-26026)

2) Убедитесь, что код не находится в режиме отладки. Раздел компиляции вашего web.config и директивы страницы должны иметь debug = "false". Debug = "true" вызовет ошибку соответствия FIP, прежде чем .Net сможет даже запустить первую строку кода.

Чтобы Visual Studio скомпилировал код, вам может потребоваться отключить fips в Visual Studio.

Для визуального изучения 2010:

  • Открыть Devenv.exe.config из C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE, если вы работаете в 64-разрядной ОС или C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ на ОС x86

  • Найдите тег </runtime> и добавьте следующую строку над этой строкой:

    <enforceFIPSPolicy enabled="false"/> 
    
  • После вышеупомянутой модификации конфиг devenv будет выглядеть так:

    <configuration> 
    <runtime> 
    . 
    . 
    . 
    <enforceFIPSPolicy enabled="false"/> 
    </runtime> 
    </configuration> 
    
  • Перезапустите Visual Studio

https://blogs.msdn.microsoft.com/brijs/2010/08/10/issue-getting-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-exception-while-building-outlook-vsto-add-in-in-vs-2010/

Источники: https://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.100).aspx

https://blogs.msdn.microsoft.com/webtopics/2009/07/20/parser-error-message-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-when-net-page-has-debugtrue/

http://forums.asp.net/t/1778719.aspx?+FIPS+validated+cryptographic+algorithms+3DES+machinekey+solution+didnt+work

...