工作方式: 签署 SOAP 消息
将完整性应用于 SOAP 消息,以确保在消息传输期间任何人都不会非法修改该消息。 本质上,通过在 SOAP 消息的内容上生成 XML 数字签名来提供完整性。 如果消息数据非法更改,那么签名将不再有效。
稳定了对 WS-Security 功能 SOAP 消息的签名和加密支持。 考虑使用传输层安全作为保护 SOAP 信息的替代方案。 另请参阅 " 稳定通知 "和 "停止的职能 "。
6.3 从 CICS® TS 6.3 起,不再支持为 WS-Security 功能签署和加密 SOAP 消息。
6.16.2 稳定了对 WS-Security 功能 SOAP 消息的签名和加密支持。
生成数字签名涉及使用专用密钥对消息摘要进行加密,以创建手写签名的电子等效项。 您可以使用数字签名来验证签署者的身份,并确保自签署 SOAP 消息以来没有任何更改。
对于入站消息, CICS 支持 SOAP 主体中的元素和 SOAP 头块上的数字签名。 对于出站消息, CICS 对 SOAP 主体中的所有元素进行签名。
WS-Security 规范 允许在元素级别对 <Header> 和 <Body> 的内容进行签名。 即,在消息中,单个元素可以签名或不签名,也可以使用不同的签名或使用不同的算法进行签名。 例如,在在线采购应用程序中使用的 SOAP 消息中,对确认订单接收的元素进行签名是适当的,因为这些元素可能具有法律地位。 但是,为了避免对整个消息进行签名的开销,其他信息可能会安全地保持未签名状态。
- 它在 <Header> 中迂到的已签名元素
- SOAP <Body>中的已签名元素。 如果将处理程序配置为需要已签名的主体,那么 CICS 将拒绝任何未对该主体进行签名的 SOAP 消息。
对于出站消息,安全性消息处理程序只能对 SOAP <Body> 进行签名; 它不会对 <Header>进行签名。 安全处理程序的配置信息指定用于对主体进行签名的算法和密钥。
要使用 CICS XML 数字签名,必须启动 z/OS® Integrated Cryptographic Service Facility (ICSF),并配置加密设备。 更多信息,请参阅 z/OS 综合加密服务设施 (ICSF)。
签名算法
| 算法 | URI |
|---|---|
| 带有安全散列算法的数字签名算法 1 (带有 SHA1的 DSA) 仅在入站 SOAP 消息上受支持。 | http://www.w3.org/2000/09/xmldsig#dsa-sha1 |
| 具有安全散列算法的 Rivest-Shamir-Adleman 算法 1 (具有 SHA1的 RSA) | http://www.w3.org/2000/09/xmldsig#rsa-sha1 |
已签名 SOAP 消息的示例
<?xml version="1.0" encoding="UTF8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" SOAP-ENV:mustUnderstand="1">
<wsse:BinarySecurityToken 1
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509"
wsu:Id="x509cert00">MIIChDCCAe2gAwIBAgIBADANBgkqhkiG9w0BAQUFADAwMQswCQYDVQQGEwJHQjEMMAoGA1UEChMD
SUJNMRMwEQYDVQQDEwpXaWxsIFlhdGVzMB4XDTA2MDEzMTAwMDAwMFoXDTA3MDEzMTIzNTk1OVow
MDELMAkGA1UEBhMCR0IxDDAKBgNVBAoTA0lCTTETMBEGA1UEAxMKV2lsbCBZYXRlczCBnzANBgkq
hkiG9w0BAQEFAAOBjQAwgYkCgYEArsRj/n+3RN75+jaxuOMBWSHvZCB0egv8qu2UwLWEeiogePsR
6Ku4SuHbBwJtWNr0xBTAAS9lEa70yhVdppxOnJBOCiERg7S0HUdP7a8JXPFzA+BqV63JqRgJyxN6
msfTAvEMR07LIXmZAte62nwcFrvCKNPCFIJ5mkaJ9v1p7jkCAwEAAaOBrTCBqjA/BglghkgBhvhC
AQ0EMhMwR2VuZXJhdGVkIGJ5IHRoZSBTZWN1cml0eSBTZXJ2ZXIgZm9yIHovT1MgKFJBQ0YpMDgG
ZQVRFU0BVSy5JQk0uQ09ggdJQk0uQ09NhgtXV1cuSUJNLkNPTYcECRRlBjAO
</wsse:BinarySecurityToken>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<c14n:InclusiveNamespaces xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ds wsu xenc SOAP-ENV "/>
</ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#TheBody">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<c14n:InclusiveNamespaces xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="wsu SOAP-ENV "/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 2
<ds:DigestValue>QORZEA+gpafluShspHxhrjaFlXE=</ds:DigestValue> 3
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>drDH0XESiyN6YJm27mfK1ZMG4Q4IsZqQ9N9V6kEnw2lk7aM3if77XNFnyKS4deglbC3ga11kkaFJ 4
p4jLOmYRqqycDPpqPm+UEu7mzfHRQGe7H0EnFqZpikNqZK5FF6fvYlv2JgTDPwrOSYXmhzwegUDT
lTVjOvuUgXYrFyaO3pw=</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#x509cert00"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509"/> 5
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="TheBody">
<getVersion xmlns="http://msgsec.wssecfvt.ws.ibm.com"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>- 1 二进制安全性令牌包含 X.509 证书的 base64binary 编码。 此编码包含 SOAP 消息的预期接收方用于验证签名的公用密钥。
- 2 这是散列过程中用于生成消息摘要的算法。
- 3 这是消息摘要的值。
- 4 然后使用用户的专用密钥对摘要值进行加密,并将其作为签名值包含在此处。
- 5 这将引用包含用于验证签名的公用密钥的二进制安全性令牌。