2016-07-25 4 views
3

У моей компании есть проект, созданный с помощью ASP.NET в .NET Framework 3.5 и веб-сервере Windows 2008 R2 принять проект.Как обеспечить выполнение FIPS в коде asp.net (эта реализация не является частью криптографических алгоритмов проверки подлинности Windows Platform FIPS.)

В веб-сервере, мы включили настройку «Системная криптография: совместимые алгоритмы использовать FIPS для шифрования, хеширования и подписывания»

После после того, что приложение не запускается. он показывает следующую ошибку

Parser Error Message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 

трассировки стека:

[InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.] 
    System.Security.Cryptography.RijndaelManaged..ctor() +7715396 
    System.Web.Configuration.MachineKeySection.ConfigureEncryptionObject() +232 
    System.Web.Configuration.MachineKeySection.EnsureConfig() +156 
    System.Web.Configuration.MachineKeySection.GetEncodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32& length) +37 
    System.Web.UI.ObjectStateFormatter.Serialize(Object stateGraph) +166 
    System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Serialize(Object state) +4 
    System.Web.UI.Util.SerializeWithAssert(IStateFormatter formatter, Object stateGraph) +37 
    System.Web.UI.HiddenFieldPageStatePersister.Save() +79 
    System.Web.UI.Page.SavePageStateToPersistenceMedium(Object state) +105 
    System.Web.UI.Page.SaveAllState() +236 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1099 

Мы ищем решения для этого. Большинство решений, которые мы нашли в Интернете, предлагают отключить проверку FIPS, отключив параметр «Системная криптография: используйте алгоритмы, совместимые с FIPS для шифрования, хэширования и подписания». Или добавив эти две строки в web.config.

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

Но мы не хотим отключать проверку FIPS для нашего кода в целях безопасности. Вместо этого мы хотим скорректировать наш код или настройку сервера, чтобы он применял политику FIPS в проекте с интерпретацией его функциональных возможностей.

Может ли кто-нибудь дать мне какие-либо идеи по этому поводу?

+0

«Реализация утвержденного криптографического алгоритма считается совместимым с FIPS только в том случае, если она была отправлена ​​и прошла сертификацию Национального института стандартов и технологий (NIST)». См. [Здесь] (https://blogs.technet.microsoft.com/secguide/2014/04/07/why-were-not-recommending-fips-mode-anymore/). Я предполагаю, что ваши алгоритмы не были отправлены, подтверждены и подписаны? – Basic

+0

Используете ли вы управляемые версии .Net Реализованные алгоритмы хеширования? В этой ссылке указано, что полные .net Реализованные версии не соответствуют FIPS, в основном, методам, заканчивающимся «Управляемым». https://blogs.technet.microsoft.com/secguide/2014/04/07/why-would-not-recommending-fips-mode-more/ – Bearcat9425

+1

@basic: просматривая код, я понимаю, что код просто использует криптографический алгоритм по умолчанию в System.Security.Cryptography , – monjuri

ответ

1

Существует соответствующий номер MSDN blog. Попробуйте следующие изменения реестра:

  • HKLM \ System \ CurrentControlSet \ Control \ Lsa \ FIPSAlgorithmPolicy \ Enabled Этот параметр реестра отражает текущую настройку FIPS. Если этот параметр включен, значение равно 1. Если этот параметр отключен, значение равно 0.
  • HKLM \ System \ CurrentControlSet \ Control \ Lsa \ FIPSAlgorithmPolicy Это значение реестра отражает текущую настройку FIPS. Если этот параметр включен, значение равно 1. Если этот параметр отключен, значение равно 0.

После включения или отключения системы криптографии: использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания вы должны перезапустить приложение, например Internet Explorer, для того, чтобы новый параметр вступил в силу.

В вашем случае этого достаточно, чтобы переработать доменное имя вашего веб-сайта.

Обратите внимание также на комментарий @Basic, что позволяет использовать режим FIPS, в то время как потенциально необходимо взаимодействовать с государственными системами, может cause other security headaches.