利用WSE 加密SOAP报文(8)

原创 2004年03月22日 15:51:00

下面是被WSE在运行时序列化后产生的报文加密后的结果<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <soap:Header>

    <wsu:Timestamp

      xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">

      <wsu:Created>2003-02-11T20:21:52Z</wsu:Created>

      <wsu:Expires>2003-02-11T20:26:52Z</wsu:Expires>

    </wsu:Timestamp>

    <wsse:Security soap:mustUnderstand="1"

      xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">

      <xenc:EncryptedKey

        Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"

        xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">

        <xenc:EncryptionMethod

          Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />

        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

          <wsse:SecurityTokenReference>

            <wsse:KeyIdentifier ValueType="wsse:X509v3">

              YmlKVwXYD8vuGuYliuIOXOY7ZYN9PwHbfAhCiYOV0aYdEAQQPw=

            </wsse:KeyIdentifier>

          </wsse:SecurityTokenReference>

        </KeyInfo>

        <xenc:CipherData>

          <xenc:CipherValue>

            UyKGBEXdY8lYSzqgdgxOXOY7ZYN9PwHbfAhCiYOV0...bwRnWk=

          </xenc:CipherValue>

        </xenc:CipherData>

        <xenc:ReferenceList>

          <xenc:DataReference URI=

            "#EncryptedContent-cf014249-0e2a-4f8b-9002-13a7de916be0" />

        </xenc:ReferenceList>

      </xenc:EncryptedKey>

      <xenc:EncryptedKey

        Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"

        xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">

        <xenc:EncryptionMethod

          Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />

        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

          <wsse:SecurityTokenReference>

            <wsse:KeyIdentifier ValueType="wsse:X509v3">

              YmlKVwXYD8vuGuYliuIYdEAQQPw=

            </wsse:KeyIdentifier>

          </wsse:SecurityTokenReference>

        </KeyInfo>

        <xenc:CipherData>

          <xenc:CipherValue>

            In8Kf1cIdiJJJXCLZ+... wMqBEevXmzk=

          </xenc:CipherValue>

        </xenc:CipherData>

        <xenc:ReferenceList>

          <xenc:DataReference URI=

            "#EncryptedContent-0744279a-02bf-4ad1-998e-622208eded0e" />

        </xenc:ReferenceList>

      </xenc:EncryptedKey>

    </wsse:Security>

  </soap:Header>

  <soap:Body>

    <GetXmlDocumentResponse xmlns="http://example.com/dime/">

      <GetXmlDocumentResult>

        <Response>

          <NotEncrypted>

            This part of the response does not need encryption

          </NotEncrypted>

          <EncryptedResponse

           wsu:Id="Id:e5e8d792-abe7-4476-91d0-856fbdf4a958"

           xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">

            <xenc:EncryptedData

              Id=

              "EncryptedContent-cf014249-0e2a-4f8b-9002-13a7de916be0"

              Type="http://www.w3.org/2001/04/xmlenc#Content"

              xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">

              <xenc:EncryptionMethod

                Algorithm=

                "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />

              <xenc:CipherData>

                <xenc:CipherValue>

                  2MNHCkGVH/5jb0pF4pCh3u2VaUKsWSA...AfEvJZT=

                </xenc:CipherValue>

              </xenc:CipherData>

            </xenc:EncryptedData>

          </EncryptedResponse>

        </Response>

      </GetXmlDocumentResult>

    </GetXmlDocumentResponse>

  </soap:Body>

</soap:Envelope>

注意,在这个加密后的报文里,这里有一个用于表示X.509证书的BinarySecurityToken元素,但有两个分开的EncryptedKey元素,每个EncryptedData元素都被添加到SoapContext,在最外面的被加密的元素中(EncryptedResponse),你只能看到EncryptedData元素,当EncryptedResponse被加密后,表示EncryptedSub元素的EncryptedData元素也随之转换为密文了。当这个报文在客户端被收到时,SecurityInputFilter使用来自记号的信息来得到曾给两个EncryptedKey元素解密过的私有密钥。

利用WSE 加密SOAP报文(5)

解密收到的报文不管是在客户端还是在服务器端,WSE总是在SecurityInputFilter实现报文解密的,由于对称加密需要由公共密钥派生出来的加密密钥,你需要创建一个SecurityInputFi...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:50
  • 845

利用WSE 加密SOAP报文(2)

一个加密后的SOAP 报文下面的SOAP报文示例有一个payment节点,含有一些敏感的客户信息.OAP:Envelope SOAP:xmlsn="http://www.w3.org/2002/12/...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:50
  • 1229

利用WSE 加密SOAP报文(3)

WSE对加密的支持 WSE支持对SOAP 报文的部分加密.对称加密使用一个共享的密钥,不对称加密支持使用x.509证书.当使用WSE来加密SOAP报文时,整个body节点的内容被加密,除非明确指定不要...
  • loyalzu
  • loyalzu
  • 2004年03月23日 09:55
  • 945

利用WSE 加密SOAP报文(7)

给收到的报文解密当收到一个由X.509证书加密后的报文后,SoapInputFilter会自动尝试使用用户密钥储存室的私有密钥来进行解密,当然,这个需要告诉WSE运行时哪里可以找到这个证书的额外配置信...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:51
  • 785

利用WSE 加密SOAP报文(4)

加密对外发送的报文这里我简单描述下如何创建一个可以返回个被加密的XML文档的Web服务。第一步先用using指示符来添加必要的命名空间,如下:using System.Web.Services;usi...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:50
  • 781

利用WSE 加密SOAP报文(1)

摘要:如何使用支持WS安全规范的WSE(Microsoft Web Services Enhancements)使加密SOAP能够跨越标准HTTP呢?讲述了SOAP报文加密是如何进行,在WS安全和XM...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:50
  • 1738

利用WSE 加密SOAP报文(6)

加密对外发送的报文我已经修改了前面的GetXmlDocument方法,让它可以使用由WSE实现的基于X.509非对称加密技术。加密回应报文,FindCertificateBySubjectString...
  • loyalzu
  • loyalzu
  • 2004年03月22日 15:51
  • 1005

利用WSE 加密SOAP报文增加WEB SERVICE 的安全性

翻译:张勇,周竞 摘要:如何使用支持WS安全规范的WSE(Microsoft Web Services Enhancements)使加密SOAP能够跨越标准HTTP呢?讲述了SOAP报文加密是如何进行...
  • Eastunfail
  • Eastunfail
  • 2004年10月17日 12:40
  • 1708

使用WSE实现对SOAP报文进行加密

摘要:如何使用支持WS安全规范的WSE(Microsoft Web Services Enhancements)使加密SOAP能够跨越标准HTTP呢?讲述了SOAP报文加密是如何进行,在WS安全和XM...
  • deepbluekk
  • deepbluekk
  • 2006年06月01日 09:03
  • 1112

SOAP请求、响应报文格式

SOAP请求报文格式:   SOAP响应报文格式:
  • a19881029
  • a19881029
  • 2014年06月06日 11:12
  • 15097
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用WSE 加密SOAP报文(8)
举报原因:
原因补充:

(最多只允许输入30个字)