2012-11-27 2 views
2

FormsAuthentication.Encrypt/FormsAuthentication.Decrypt를 사용하여 Istead를 사용하면 컴퓨터 키 저장소에있는 기존 RSA 컨테이너를 사용하여 암호화/해독을 수행 할 수 있습니까? 그 티켓.RSA를 사용하여 ASP.Net 폼 인증 티켓을 암호화/암호 해독하는 방법

내가 개발중인 ASP.Net 응용 프로그램은 다중로드 균형 서버에서 사용하기위한 것입니다. 따라서 모든 컴퓨터의 모든 web.config 파일에 컴퓨터 키를 복사해야합니다. 다른 목적으로 RSA (Asymmetric Encryption)를 이미 사용하고 있으므로 Bat 파일과 키 컨테이너 xml을 통해 모든 서버에 공통 RSA 키 컨테이너를 자동 설치합니다. 이 메커니즘이 있기 때문에 양식 승인 티켓을 암호화/해독하기 위해 동일한 RSA 키 컨테이너를 사용하려고합니다.

  1. 이것은 가능합니까? 그렇다면 기존 동작을 어떻게 재정의하여이를 달성 할 수 있습니까?
  2. 가능한 경우 표준 암호화 대신 RSA를 사용하는 데 따른 단점이 있습니까?

답변

0

네,하지만 약간의 작업이 필요합니다.

.NET과 함께 제공되는 표준 인증 모듈을 대체/대체하고 대신 사용할 RSA 암호화/암호 해독 메소드 호출을 제외한 모든 기존 기능을 복제해야합니다.

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.encrypt.aspx

당신은 또한 당신이 그를 사용하는 경우 모든 표준 내장 로그인 페이지를 편집해야합니다 참조하십시오.

템플릿으로 FormsAuthenticationTicket에 대한 원본을 검사하면 UserID, 만료 날짜 등의 매개 변수가 포함 된 문자열이 어떻게 생성되는지 확인한 다음 해당 문자열을 Encrypt 메서드에 전달한 다음 다시 사용합니다 쿠키 값으로

그러면 새 인증 모듈이 해당 암호화를 취소하고 이전과 같이 사용자의 유효성을 검사해야합니다.

그것은 상대적으로 작은 이익을 위해 업무의 공정한 양이의 당신이 사용하는 표준 암호화 방법을 통해 RSA를 사용하는 방법을 심하게에 따라

+0

내가 놓친 (그들은 이미 http://www.sourcetree.net/sourcetree/Development/Aspnet%20Examples/GenerateMachineKeyForWebConfig.aspx를 참조 오른쪽 상자에서 몇 가지 강력한 encruyption 방법을 제공) 여기서 공개 키를 공개 키로 만든 사람이 쿠키를 만들고 허위 인증에 유효한 암호화 된 인증 티켓을 다시 보낼 수있는 경우에 해당합니다. 또한 대칭 인증이 기본적으로 양식 승인에 사용되는 이유이기도합니다. – Harindaka