2013-11-04 1 views
1

HTTPS에서 실행되며 RequireClientCertificate가 web.config에 설정된 ASP.Net 웹 앱에서 사용자의 클라이언트 인증서와 서버의 요청에 대한 디지털 서명을 받아야합니다. 인증서가 HttpContext.Request.ClientCertificate에 있지만 서명 된 데이터를 찾을 수 없습니다. 게시 매개 변수는 자동으로 해독되고 해독되지만 서명이 필요합니다. 누구든지 어디에서 발견 되었습니까? 아니면 그것을 얻을 수 있습니까?요청의 디지털 서명을 얻는 방법 (양방향 SSL)?

브라우저가 인증서를 요청하여 서버에 넘겨 줄 때, 개인 키 또는 그 일부 (예 : 게시 매개 변수)로 전체 HttpRequest를 암호화합니까? 브라우저가 인증서와 서버에 손이 요청 어떤 도움

답변

1

하나 더 질문에 대한

감사합니다, 그것은 와 개인 키 또는 그것의 단지 일부를 HttpRequest에 전체를 암호화 않습니다 (예 : 게시 매개 변수)?

첫째, 그것은 "개인 키와 함께 암호화"이해가되지 않습니다 당신의 개인 키와에 서명 . 일부 알고리즘 (예 : RSA)은 암호화와 서명에 매우 유사한 절차를 사용하지만 "암호화"는 무언가를 숨기는 것을 의미합니다. 공개 키를 가진 사람이 암호를 해독 할 수 있으면 아무 것도 숨기지 않습니다.

둘째, SSL/TLS는 인증서의 키가 아닌 암호화를 위해 대칭 키 (핸드 셰이크 중 협상)를 사용합니다. 이 경우 whole HTTP request will indeed be encrypted입니다.

인증서가 HttpContext.Request.ClientCertificate에서 발견되었지만 서명 된 데이터를 찾을 수 없습니다. 게시 매개 변수는 자동으로 디코딩 및 해독되지만 서명이 필요합니다. 누구든지 을 어디에서 발견했는지 또는 알 수 있습니까?

클라이언트 인증서를 사용할 때 서명되는 내용은 HTTP 요청이 아닌 핸드 셰이크 메시지입니다. SSL/TLS 스택에 의해 적절한 확인이 이루어지면 기술적으로 또는 administratively과 같이 사용하지 않을 것입니다. (이것이 일반적으로 액세스 할 수없는 이유입니다.)

+0

유용한 정보를 제공해 주셔서 감사합니다! 자, 수동으로 (ASP.Net을 통해) 내 도전에 서명하기 위해 클라이언트 인증서를 요청할 수 있습니까? – mahdieh