2013-06-25 2 views
0

WCF 보안에 대한 질문이 있습니다. 나는 특정한 문제가 아니라 더 일반적인 질문을 가지고있다.WCF 보안 - 인증서

인증서를 사용하여 WCF 서비스와 보호 된 서비스를 만드는 경우 해당 서비스를 사용하는 모든 클라이언트에 해당 클라이언트 인증서가 있어야합니까?

예를 들어 인증서를 사용하는 WCF 서비스와 통신하는 Winforms 클라이언트 응용 프로그램이있는 경우 클라이언트에 해당 클라이언트 인증서가 있어야합니까? - 또는 클라이언트가 인증서를 설치하지 않고 통신 할 수 있습니까?

감사합니다.

답변

1

클라이언트 인증서로 서버 인증서를 혼동시킬 수 있습니다. 서비스가 "인증서로 보호됩니다"라고 말할 때 어떤 의미인지는 분명하지 않습니다. 서버 인증서와 클라이언트 인증서는 서로 다른 방식으로 서비스를 "보호"할 수 있습니다. 서비스를 인증 된 클라이언트에게만 제한함으로써 클라이언트 인증서를 암호화함으로써 서버 인증서입니다.

서버 인증서 만 사용하는 설정은 HTTPS를 통해 제공되는 모든 웹 사이트와 유사합니다. 서버에 인증서가 설치되어 있습니다 (즉 인증서의 개인 키가 있음). 클라이언트는 자체 인증서가 없지만 서버는 자신의 인증서를 자신에게 전송하며 인증서에 서명 한 권한을 신뢰한다고 가정 할 때 서버의 ID를 확인할 수 있습니다. 또한 서버 ID가 설정되면 인증서는 클라이언트와 서버 간의 세션을 암호화하기위한 기초를 제공합니다.

지금까지이 이야기에서 클라이언트 인증은 없었습니다. 클라이언트는 서버 인증서 덕분에 의도 한 서버와 통신 중이며 모든 통신이 암호화되어 있음에도 불구하고 서버가 그것에 연결하는 클라이언트의 신원을 확인하십시오. 클라이언트 인증서는 입니다. 클라이언트 인증을 수행하는 방법입니다. 더 익숙한 대안은 사용자 이름과 암호입니다.

클라이언트 인증서를 사용하려면 각 클라이언트에 올바른 인증서와 개인 키가 있어야하며이 인증서는 서버의 인증서와 같지 않습니다. 다시 말하지만, 서버는 반드시이 인증서의 로컬 복사본을 저장하지는 않습니다 - 보안 핸드 셰이크 중에 교환됩니다.

이 문맥에서 "유효"는 몇 가지 확립 된 기준 (예 : 클라이언트 인증서의 화이트리스트 또는 특정 기관에서 발급 한 클라이언트 인증서 요구)을 사용하여 서버에 대한 신원 확인 수단으로 사용할 수 있음을 의미합니다. 서버 인증서을 유효하게 받아들이려면 클라이언트가 신뢰할 수있는 루트까지 신뢰할 수있는 루트까지 신뢰하는 것이 좋지만 허용 가능한 클라이언트 인증서 인에 추가 제한 사항이 있어야 인증에 유용합니다. 대부분의 경우 신뢰할 수있는 인증서가있는 임의의 클라이언트가 클라이언트 인증서를 사용하여 클라이언트를 인증하도록 구성된 서비스에 연결할 수 있도록하는 것이 도움이되지 않습니다.

+0

분명한 답변을 보내 주셔서 감사합니다. HTTPS 인증서와 WCF 인증서를 혼동하고있었습니다. 귀하의 설명이이를 명확하게 나타 냈습니다. 다시 한번 감사드립니다. – Chris

+0

미안하지만, 내가 아는 한 HTTPS 인증서 나 WCF 인증서 같은 것은 없다. 개념적으로 모두는 단지 인증서 일 뿐이며, 모두 똑같은 방식으로 작동한다. 좀 더 자세히 설명해 주실 수 있습니까? – Anu

1

프로스트 씨, 내가 먼저 어떻게 인증서 작품의 짧은 순서를 명시하여 도와 줄게이 중요하다 :

  1. 브라우저는 (여기에 브라우저 클라이언트가, 그것은 다른 클라이언트가 될 수 있습니다) 보안 페이지 (보통 https : //)를 요청합니다.

  2. 웹 서버는 인증서와 함께 공개 키를 보냅니다.

  3. 브라우저는 신뢰할 수있는 당사자 (대개 신뢰할 수있는 루트 CA)가 인증서를 발급했는지, 인증서가 여전히 이고 유효하며 인증서가 연결된 사이트와 관련되어 있는지 확인합니다.
  4. 이 브라우저는 임의의 대칭 암호화 키를 암호화, 공개 키를 사용하여 필요한 암호화 된 URL 뿐만 아니라 다른 암호화 된 HTTP 데이터를 서버로 보냅니다.
  5. 웹 서버는 개인 키를 사용하여 대칭 암호화 키를 해독하고 대칭 키를 사용하여 URL을 해독하고 http 데이터를 해독합니다.
  6. 웹 서버는 요청 된 html 문서와 http 데이터 을 대칭 키로 암호화하여 전송합니다.
  7. 브라우저는 대칭 키를 사용하여 http 데이터 및 html 문서를 해독하고 정보를 표시합니다. 이 지금 당신의 회답 Link

    을 참조하십시오

지금, 클라이언트와 서버 인증서의 차이 무엇인가 "클라이언트가 있어야 않는 클라이언트 인증서 일치"예는하지의 그것 없이는 개념이 작동하지 않습니다.