2013-12-23 4 views
2

WSE를 사용하는 타사 공급자 웹 서비스와 대화하는 일괄 프로그램이 있으며 WSE 웹 서비스에 대한 호출은 x509 인증서로 암호화됩니다.x509로 암호화 된 원시 soap 응답을 해독하는 방법

우리는이 추가됩니다 우리는 SoapInputFilter에서 상속 WebServiceResponseLogger을 구현 한

  1. 사전 제작 인증서
  2. 생산 증명서, 타사 공급자에 두 개의 서로 다른 인증서가 PipelineInputFilter입니다. 이는 사전 프로덕션 인증서를 사용할 때 응답을 기록하는 훌륭한 작업입니다. 그러나 프로덕션으로 전환하고 프로덕션 인증서를 사용하면 응답이 로깅되지 않습니다.

    이제 우리는 요청 및 응답 물음표 피 들러를 보았습니다. 그래서 우리는 실제로 응답이 나타남을 알고 있습니다. 문제는 피들러에서 볼 수있는 응답이 원시 응답입니다.

    저는 피들러에서 응답을 해독 할 수 있는지 알아보기 위해 인터넷 검색을 시도했습니다. 올바른 인증서가 있으므로 가능할 것으로 예상됩니다. 피들러가 아니라면 비누 반응을 해독 할 수있는 도구가 이미 존재합니까?

+0

를 설치했습니다. 아마 당신은 당신의 문제를 더 잘 설명 할 수 있습니다. '로깅 중이 지 않다'는 의미입니까? –

+0

요청 및 응답을 기록하는 inputfilter가 있습니다. envolope.OuterXML 속성은 요청 및 응답에 대해 로컬 데이터베이스에 저장되지만 응답에 저장된 데이터는 단지 NULL이며 입력 필터가 실제로는없는 것처럼 보입니다 우리가 생산 인증서를 사용할 때 맞았습니다. – thmsn

답변

0

마지막 경우 다른 사람에, 내가 찾은 솔루션을 게시 주위를 얻었다는

내가 바른 길에 나를 넣어 다음과 같은 콘솔 프로그램을 구축 MSDN에 link을 찾기 위해이 관리 문제 :)로 실행합니다 우리 피들러 세션에서 내가 가진 반응을 성공적으로 해독했다.

나는 인증서를 가지고도 것을, 당신이 man-in-the-middle 공격에 도움이 될 것 같은 것을위한 도구를 찾을 수 있다고 생각하지 않습니다 WSE 2.0 NuGet 패키지

try 
{ 
    // http://msdn.microsoft.com/en-us/library/aa529137.aspx 
    XmlDocument response = new XmlDocument(); 
    response.Load("Response.xml"); 
    var encryptedKeyElement = response.GetElementsByTagName("xenc:EncryptedKey")[0] as XmlElement; 
    var encryptedDataElement = response.GetElementsByTagName("xenc:EncryptedData")[0] as XmlElement; 

    EncryptedKey encryptedKey = new EncryptedKey(encryptedKeyElement); 
    EncryptedData data = new EncryptedData(encryptedDataElement, encryptedKey); 

    var decryptedData = data.Decrypt(); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.ToString()); 
    Console.WriteLine("Press any key to exit"); 
    Console.Read(); 
}