2013-02-25 6 views
2

im 은색 5 및 WCF ..를 사용하고 HTTPS로 사이트를 보호합니다. 내가 피들러를 사용하는 경우 그러나, 나는 헤더에서 볼 수 있습니다 /ClientBin/XXXX-Web-MyService.svc/binary/GetUsers웹 서비스 호출을 보호하는 방법

을 GET 내가 넣어 경우 그 직접 내 도메인 후 : https://www.mydom.com/ClientBin/XXXX-Web-MyService.svc/binary/GetUsers

는 것 탭 사용자로부터 모든 데이터를 다운로드하십시오. 이 정보를 어떻게 보이지 않게 숨기고 보호 할 수 있습니까? SSL을 사용하지 않고 있습니까? https!를 사용하는 경우 왜 어쨌든 표시됩니까?

감사합니다.

편집 : 나의 첫 질문은 종류의 난 주제에 대한 더 많은 정보를 발견하고 더 연구를 한 그 난의 사과를 들어,

에 '교육을받지 못한'입니다. 그래서이 Q에는 왜 fiddler가 https를 통해 전송 된 요청과 응답을 해독하고 볼 수 있는지에 대한 설명이 있습니다.
What is point of SSL if fiddler 2 can decrypt all calls over HTTPS?

하고,이 문제에 대한 일반적인 솔루션은 System.Net 네임 스페이스의 실버 구현에 포함되지 않습니다 System.Net.ServicePointManager의 사용을 필요로 "Certificate Pinning" 를 사용하는 것을 더욱 어렵게합니다.

여기 SSL 인증서가 붙어 있습니다. 내가 지불 한 것은 웹 디버깅에 대한 기본적인 지식을 가진 사람이 "금"수 있습니다.

+3

https/SSL은 기내 정보를 보호하기위한 것입니다. 사용자는 분명히 상대방의 데이터를 읽을 수 있어야합니다. 그러나 데이터가 도중에 차단되거나 변조되는 것을 방지합니다. 데이터 전송에 대한 귀하의 요구 사항은 무엇입니까? 신뢰할 수없는 플랫폼 문제가있는 것처럼 들립니다. – Aron

+0

@Aron, 귀하의 의견을 보내 주셔서 감사합니다, 나는 주제에 대한 자세한 내용은 내 질문을 업데이 트되었습니다. – Osama

+0

다시. 당신은 무엇을 막기 위해 노력하고 있습니까? – Aron

답변

4

순수 이론적 컴퓨터 과학의 관점에서 볼 때, 실제로 불가능한 것이 거의 불가능합니다. 공격으로부터 보호하려면 신뢰할 수있는 플랫폼을 구현해야합니다.

이제 과학 비트에 대해, 그래서 몇 가지 기본적인 이론을 시작할 수 있습니다,

이 좋아 집중. SSL과 확장 HTTPS는 매우 특정한 문제를 해결합니다. 안전하지 않은 네트워크의 기밀 정보를 통해 이전에 연락하지 않은 사람과 정보를 어떻게 전달합니까? 이 경우 네트워크에 중점을 둡니다. 그것은 두 가지 문제, 서버의

  1. 인증을 해결하여 그렇게하도록, 일부 중복이 키 교환

  • 비대칭 암호화 (서버는 그것이 누구라고하는 것입니다) 이것은 하나의 단계입니다. 나는 fiddler가 당신의 시스템을 공격하는 곳이기 때문에 1st에 집중할 것입니다.

    SSL 인증은 신뢰 웹이라는 개념에서 작동합니다. 컴퓨터에 신뢰할 수있는 확인 프로그램 목록이 있습니다. 이들은 Verisign, Thawte, Geotrust 등의 회사입니다.이 회사는 인증서에 서명함으로써 인증서를 검증합니다 (복잡한 비대칭 암호화 용어이지만 손으로 ​​쓴 서명과 매우 유사하며 위조하기 어렵고 확인하기 쉽습니다).

    피들러는 새로운 신뢰할 수있는 CA (검증 자)를 컴퓨터에 삽입하여 작동합니다. 그 때부터 HTTPS 사이트를 방문하면 사용자를 대신하여 요청을 보내고 읽은 다음 자신의 고유 한 서명으로 사용자에게 다시 전달합니다. 컴퓨터가이 서명을 완전히 신뢰하기 때문에 아무 문제가 없다고 생각합니다.

    이제 인증서 고정을 구현하려고합니다.이 IMHO는 "피 묻은 끔찍한"입니다. 그것은 특정 SSL 인증서를 기대하도록 소프트웨어에 지시함으로써 작동합니다. 이것이 나쁜 이유는 두 가지입니다.

    1. 피들러를 사용할 수 있다면 dotPeek를 작동하고 인증서 고정을 사용하지 않고 다시 컴파일 할 수 있습니다.
    2. 인증서가 해지되면 클라이언트가 연결할 수 없습니다.

    인증서가 취소되는 이유는 무엇입니까? CA가 개인 키를 잃어 버리면 CA는 해지되었는지와 대체 된 것이 있는지 확인해야합니다. 또한 각 인증서에는 날짜별로 판매가 있기 때문에 냄새가 나기 전에 교체해야합니다.

    마지막으로 무엇을 할 수 있습니까?

    SSL은 컴퓨터에서 수행하는 작업으로부터 보호하기위한 것이 아닙니다. 당신이 요구하는 것을 수행하는 가장 간단한 방법은 단순히 WCF 호출을 대칭 (또는 비대칭) 암호화의 추가 계층에 랩핑하는 것입니다. 그러나 다시 한 번. 키는 어딘가에 있어야하므로 클라이언트는 바이너리를 간단히 분해하여 키를 가져올 수 있고 자신의 프록시를 구성 할 수 있습니다. 결론

    에서

    이 꽤 정확하게 많이 DRM 문제와 동일합니다. 당신은 당신의 고객에게 그들의 기계에있는 무언가에 대한 접근을 허락하고 싶지만 그것이 어떻게 작동 하는지를 보여주고 싶지는 않다. 이 문제를 해결하려면 소니, 닌텐도 및 Microsoft (일부만 언급)가 조사 결과에 매우 흥미가 있기 때문에 후속 조치를 게시하십시오.

  • 관련 문제