2011-04-21 3 views
4

양방향 인증을 사용하는 타사 호스트 서버로 정보를 보내려고합니다 (MIME 파일 형태로). 많이 감추고 난 후에 비 기술적 인 헬프 데스크 직원으로부터 TLS/SSL 통신의 유형 일 가능성이 높은 정보를 얻었습니다. 그들은 클라이언트와 서버 핸드 셰이크를 사용합니다. 다음 예제를 발견했습니다 : sslstream example. 하지만 그것을 사용하는 데 문제가 있습니다 (TcpClient가 호스트 adddress를 보지 못함).SSL 통신을위한 양방향 인증

너무 오래 지나기 전에 나는이 프로세스에 대한 좋은 예나 더 많은 정보의 방향으로 나를 가리킬 수 있기를 바랬다. 나는 꽤 상실감을 느낀다.

답변

3

양방향 인증이란 아마도 클라이언트 인증서가 필요하다는 의미 일 수 있습니다. 즉, 핸드 셰이크 중에 클라이언트 측에서도 서버에 인증서를 제시해야합니다. 가장 일반적인 SSL 동작은 HTTPS를 사용하는 일반 사이트로 이동할 때와 같이 서버 부분 만 인증서를 제공한다는 것입니다.

SslStream의 경우 매우 사용하기 쉽습니다. 클라이언트 인증서를 제공하려면 런타임 중에 메모리에로드 할 수있는 인증서 저장소 또는 pfx 파일에 인증서가 있어야합니다.

나는 this sample으로 충분하다고 생각됩니다. Here is another one. 두 번째 클라이언트 인증서는 클라이언트 인증서를 사용하지 않지만 AuthenticateAsClient 호출에 매개 변수로 추가 할 수 있습니다.

TcpClient가 호스트 주소를 보지 못한다면 이는 일종의 연결 문제 일 가능성이 높으며 실제 SSL 구현과 관련이 없습니다.

+0

응답 해 주셔서 감사합니다. 이 예제는 내가하는 일을 조금 더 이해할 수있게 도와주었습니다. 닷넷 툴은 TLS http://en.wikipedia.org/wiki/Transport_Layer_Security에서 요구하는 다양한 '핸드 셰이크'를 처리하지 못합니다. 아마도 그렇게 할 수는 있지만 실제로 필요한 코드를 작성하고 싶지는 않습니다. 누구든지 .Net 친화적 인 타사 도구를 제안 할 수 있습니까? – Belmiris

+0

제대로 기억한다면 SslStream이 AES를 지원하지 않는다고 생각합니다. 서버가 요청할 경우 문제가 될 수 있습니다. –

관련 문제