2010-08-02 6 views
3

우리는 AJAX.NET 5.7.25.1을 사용하는 몇 가지 응용 프로그램 섹션을 제공합니다. 서버 관리자가 FIPS를 활성화했으며 다음과 같은 오류가 발생했습니다.AJAX.NET 및 FIPS

이 구현은 Windows 플랫폼의 FIPS 유효성이 입증 된 암호화 알고리즘에 포함되어 있지 않습니다.

콜 스택 :

at System.Security.Cryptography.MD5CryptoServiceProvider..ctor()  
at MS.Utilities.MD5Helper.GetHash(Byte[] data)  
at Ajax.AjaxRequestProcessor.Run()  
at Ajax.AjaxHandler.ProcessRequest(HttpContext context)  
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()  
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

는 AJAX.NET 라이브러리의 최신 버전은 FIPS 호환 있습니까?

답변

1

여기 다 그냥 MD5 알고리즘을 사용하여 위반 호출을 제거하기 위해 직접 AJAX.Net 프로 소스를 수정 할 수있는 가장 빠른 방법. Codeplex에서 사용하는 AJax.NET 프로 버전의 소스를 얻으십시오. AjaxPro/유틸리티/MD5Helper.cs에서 :

은 ... 그것을 수정해야

라인과
MD5 md5 = new MD5CryptoServiceProvider(); 

...

SHA1 md5 = new SHA1CryptoServiceProvider(); 

을 라인을 교체합니다. 이 경우 ... 두 제공자 그렇게 구현 ComputeHash() 메소드이며, 사용되는 유일한 API에서

SHA1 is FIPS compliant per this page ...

그냥 암호화 공급자를 전환하여 컴파일 할 수 있어야한다

및 다른 변경없이 성가신 FIPS 정책 위반 플래그없이 코드를 사용하십시오.

1

.NET에서 ANY MD5 해시 알고리즘을 사용하면 NON-FIPS를 준수하는 것으로 간주되므로이 오류가 항상 발생합니다. 나는 AjaxRequestProcessor가 MD5를 가지고 있을지 모르지만, 어떤 종류의 viewstate 조작일지도 모른다. MD5 대신 3DES를 사용하도록 viewstate 암호화 알고리즘을 변경하면 도움이 될 수 있습니다. web.config 파일의 당신의 system.web 섹션에이 키를 추가

시도 : 해결 방법 HERE에 대한

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

전체 기사.

또한 webconfig에서 debug = "true"로 설정하면 .NET에서 MD5를 일부 디버깅 작업에 사용하기 때문에이 오류가 발생할 수 있습니다. web.config에서 debug = "false"입니까?

<system.web> 
    <compilation debug="false"> 
</system.web> 
관련 문제