2014-01-16 1 views
1

암호화 된 HTTP 프로토콜을 사용하여 WCF 서비스를 구현해야합니다. 메시지 또는 전송 보안이 가능합니다. 암호화에 대한 보안 요구 사항을 달성하기 위해 x509 인증서를 사용해야합니까? 아니면 다른 방법이 있습니까?암호화가있는 HTTP 프로토콜을 사용하여 WCF 서비스 구현

+0

에만 암호화를 구현하는 공유 비밀이 필요합니다

여기 WCF을 HTTPS에 괜찮은 방법에 대한 기사에 대한 링크입니다. 당신은 클라이언트와 서버가 비밀에 동의/얻는 것을 어떻게 계획합니까? HTTPS가 아닌 HTTP를 사용한다고 가정하면 서비스 사용자는이 서비스를 신뢰하게 될 것입니다. 대부분의 (비 기술자) 사람들은 HTTP가 안전하지 못하고 HTTPS가 안전하다고 가정합니다. – StevieB

+0

어떤 종류의 공유 ​​키로 충분합니다. 나는 시범 프로젝트를하고 있는데, 시간 제약으로 인해 인증서 + SSL 보안을 올바르게 구현할 수 있을지 확신 할 수 없습니다. HTTP 프로토콜을 사용하여 암호화 요구 사항을 충족하는 가장 빠른 방법을 찾고 있습니다. – Cortlendt

답변

1

메시지 보안이 아닌 전송 보안을 사용하는 것이 좋습니다. 전송 보안은 일반 https 암호화와 마찬가지로 작동합니다. 사실 호스트에 대한 URL은 https입니다. 설정하고 인증서와 프로그램을 올바르게 구성하는 것은 약간 복잡하지만 전송은 메시지 보안보다 큰 이점이 있습니다.

메시지 보안을 사용하면 메시지 보안이 작동하도록 x509 인증서의 공개 키 파일을 각 클라이언트 컴퓨터와 호스트 컴퓨터의 공개 키 및 개인 키에 수동으로 설치해야합니다. 이는 많은 추가 작업, 즉 모든 클라이언트 인증서 파일 설치를 의미합니다. 또한 메시지 보안은 SOAP 기반이므로 SOAP 행을 따라 모든 것을 코딩해야 REST 프로그래밍을 어렵거나 불가능하게 만들 수 있습니다.

전송을 사용하면 각 클라이언트 컴퓨터에 인증서 공개 키 사본을 설치할 필요가 없습니다. 일반 https 웹 서버와 마찬가지로 호스트는 공개 키를 처음 연결하는 클라이언트에게 전송합니다. http://www.codeproject.com/Articles/36705/Seven-simple-steps-to-enable-HTTPS-on-WCF-WsHttp-b

+0

인증서가없는 경우 키 파일을 사용하는 것이 좋습니다. – Cortlendt

+0

키 파일은 인증서입니다 ... cert는 공개 키와 개인 키의 두 부분으로되어 있습니다. https 사이트에 로그온하면 호스트 서버가 브라우저에 보낸 공개 키 사본을 받게됩니다. 브라우저는 자신과 호스트 사이에 암호화 된 "터널"을 생성하기 위해 공개 키 (브라우저 메모리에 상주)를 사용합니다. 호스트에만 개인 키가 있습니다. – Brian

+0

이제 WCF를 통해 HTTPS를 사용하는 경우 프로세스가 동일합니다. 호스트는 핸드 셰이크 프로세스 중에 클라이언트가 인증서의 공개 키 부분을 클라이언트에 자동으로 보냅니다. 그러나 메시지 보안을 사용하는 경우 리터럴 파일로 공개 키를 클라이언트에로드하여 등록해야합니다. 그것이 메시지 보안에 대해 짜증이납니다. 모든 행정부는 클라이언트 측에서 필요했습니다. – Brian

관련 문제