1

우리 아키텍처는 IIS7에있는 ASP.Net 응용 프로그램으로 구성된 간단한 N 계층 모델입니다 (DiscountASP에서 호스팅 됨)는 WCF 서비스에서 메서드를 노출합니다. 그 방법들은 EF4를 사용하여 DB와 대화합니다. 클라이언트는 Silverlight 4.0에 있습니다.N 계층 응용 프로그램의 WCF 및 Silverlight 4.0 : 보안 서비스 호출 (SSL 없음, 메시지 보안 없음, x.509 없음)

세 가지 중요한 포인트 :

  • 인증 및 Authurazation는 문제가되지합니다 - 서비스에 대한 호출은 익명하고 우리는 발신자의 신원에 대해 걱정하지 않는다.

  • 에는 메서드에서 전송 된 데이터가 필요합니다.

  • 우리는 누군가가 전화를 걸 수 없도록하고 싶습니다.

잘못에서 경우에 저를 수정 :이 실버 라이트에서 지원되지 않는 때문에
메시지 보안은 옵션이 아닙니다.
전송 보안 (HTTPS 및 X.509/SSL 인증서) 또한 우리가 일정 수준의 보안을 강화하기 위해 수행 그래서 단계

실버

으로 수행 할 수 있습니다 :

  • 비밀 키는 XAP에서 DLL의 하드 코딩 된.

  • 이 DLL은 스크램블되어 있으므로 다시 조작 할 수 없습니다.

  • 비밀 키는 모든 서비스 방법 호출에 대한 매개 변수로 전송됩니다.

  • 각 방법을 시작할 때 데이터베이스에있는 원본에 대한 비밀 키를 확인하십시오.

  • 서비스에서 MetaDataExchange 엔드 포인트를 제거하십시오.

이 최소한의 설치를 고려하고 가장 큰 결함은 아마 전송이 확보되지 않은 사실 (HTTP), 그리고 비밀 키가 노출되어, 많은 결함을합니다. 따라서 질문은 다음과 같습니다.

악의적 인 사용자가 시스템에 해를 끼치려면 비밀 키를 추출하기 위해 얼마나 많은 노력을 기울여야합니까? 노출 된 방법을 찾고이를 호출하기 시작합니까?

각 호출 (HTTPS 또는 인증서 없음)에서 자격 증명의 기본 보호를 제공 할 수있는 다른 WCFcombiantion이 있습니까?

답변

0

잘 아니요 계약시 보안상의 의미가 무엇입니까? previous question. 보안은 several aspects으로 구성됩니다.

  • 인증 및 Authurazation는 문제가되지합니다 - 서비스에 대한 호출은 익명 우리는 발신자의 신원에 대해 걱정하지 않는다.

  • 우리는 누군가가 전화를 걸 수 없도록하고 싶습니다. 모순이다

. 인증을 원하는 모든 사람이 전화를 걸 수 없도록하려는 경우. 방법으로 전송

  • 데이터에 민감하지 부른다.

이 최소한의 설정을 고려할 때 가장 큰 결점은 아마도 전송이 보안되지 않고 (HTTP) 보안 키가 노출되었다는 것입니다.

또 다른 모순 - 당신은 분명히 중요한 데이터를 보내고 싶습니다.

메시지 보안은 실버 라이트에 대한 옵션을 선택하지 않습니다 - 우리가 메시지 암호화 및 서명에 대해 이야기하는 경우 그것이 사실이지만 보안 채널을 제공하는 HTTPS를 사용하는 경우 당신은 여전히 ​​메시지에 사용자 이름과 암호를 전달할 수 있습니다 = TransportWithMessageCredential

비밀 키를 찾는 데 얼마나 많은 노력이 필요합니까? 당신이 HTTPS를 사용하지 않는 경우 당신은 아마 더 기술을 필요로하지만 여전히 키가있을 것입니다 어셈블리의 키를 배치하면

  • 그것은 (난독 기본 기술과 네트워크 트래픽이
  • 에 접근 할 수있는 모두를 찾을 수 논리를 리버스 엔지니어링하기는 어렵지만 상수는 여전히 동일해야합니다.)

전송을 보호하고 안전한 솔루션을 구축하려면 HTTPS를 사용해야합니다. HTTPS를 통해 노출 된 서비스는 Silverlight에서 사용할 수 있습니다. 사용자 이름과 암호를 사용하여 클라이언트를 식별 할 수도 있습니다. 고객은 사용자 이름과 암호를 비밀로 유지할 책임이 있습니다. 왜냐하면 사용자 이름과 암호가 사용자의 응용 프로그램에 누가 해를 끼친 지 알 수 없기 때문입니다.

+0

확인 : HTTPS 정보 : 1) 사용자는 SSL 인증서를 사용해야합니까? 2) HTTPS를 사용하면 클라이언트의 서비스 액세스 가능성이 손상 될 수 있습니다. (우리는 방화벽, 커피 숍의 지역 와이파이 네트워크 등 어디에 있든 상관없이 클라이언트가 서비스에 액세스 할 수 있기를 원합니다.) –

관련 문제