2009-09-01 2 views
0

Windows 서비스에서 호스팅되는 웹 서비스에 연결하는 Silverlight 클라이언트가있는 경우 사용하지 않는 경우이 둘 사이의 통신을 보호하는 확실한 방법이 없습니다 IIS. SSL을 사용할 수없고 Silverlight에서 wsHttpBinding을 지원하지 않습니다.공용 키 암호화를 사용하는 IIS가없는 Silverlight에서 웹 서비스로의 통신

그래서 여기에 내가 할 계획이 있는데, 확실한 보안 구멍을 놓친 지 알고 싶었습니다. 이것은 모두 인트라넷에 있으며, 인터넷에서 사용할 수있게 설정하면 IIS의 SSL 보안 호스팅이 사용됩니다.

  1. 인증서를 만들어 웹 서비스의 서비스 계정에 대한 사용자 저장소에 저장합니다. 웹 서비스는 시작할 때 인증서 키를 검색합니다.
  2. 인증서의 공개 키를 문자열로 반환하는 웹 서비스에 일반 텍스트 메서드를 추가합니다.
  3. Silverlight 클라이언트에서 웹 서비스를 호출하여 공개 키를 가져옵니다.
  4. 공개 키를 사용하여 Silverlight 클라이언트에서 웹 서비스로 보낸 모든 데이터를 암호화합니다. Silverlight 클라이언트에 반환 된 데이터는 암호화 할 필요가 없습니다.

나는 무엇이 있습니까? 나는 그것을 할 다른 방법을 알아낼 수 없다!

+0

왜 자체 호스팅 Windows 서비스에서 SSL을 사용할 수 없다고 생각합니까? 아니면 더 많은 사람이 CA를 설치하거나 인증서를 지불 할 것입니까? WCF는 자체 호스트 시스템에서 HTTPS 끝점을 확실히 호스팅 할 수 있습니다. – blowdart

답변

0

RSA 암호화로 대량의 데이터를 암호화 할 수 없으며 속도가 너무 느립니다 (내가 생각하는 RSA 모듈 길이 당 100 초). 모든 스키마는 RSA를 사용하여 대칭 키를 부트 스트랩하고이 키를 사용하여 데이터를 암호화합니다. 설정된 키 교환 프로토콜을 사용하십시오. Rescorla의 서적을 가지고 있다면 SSL 3.0 또는 TLS 1.0을 구현하는 것이 얼마나 쉬운 지 놀라실 것입니다. SSL and TLS: Designing and Building Secure Systems

+0

맞습니다. 사용자 자격 증명과 같이 보호가 필요한 데이터 만 암호화되도록 지정해야합니다. –

+0

중간에 공격자가 인증서를 보내지 않도록하려면 어떻게 계획합니까? 인증서가 신뢰할 수있는 기관 (클라이언트가 신뢰했거나 신뢰할 수 있습니까?)에 서명했으며 적절한 특성 (예 : 제목)을 갖고 있는지 확인 하시겠습니까? –

+0

저는 인트라넷에있을 것이므로 위험하다고 생각합니다. 대신 IIS에서 호스팅 할 기회가 있다면 생각합니다. –

관련 문제