美文网首页
第三十五章 结合加密和签名

第三十五章 结合加密和签名

作者: Cache技术分享 | 来源:发表于2024-09-29 08:05 被阅读0次

第三十五章 结合加密和签名

可以在同一条消息中加密和签名。在大多数情况下,只需组合前面主题中给出的方法即可。本主题讨论了多种场景。

使用非对称密钥签名并加密

要签名然后加密(使用非对称密钥时),请执行以下操作:

  1. 按照添加数字签名中的步骤进行操作。
  2. 按照加密安全标头元素中的步骤进行操作。

或者按照加密 SOAP 主体中的步骤进行操作。

使用非对称密钥加密并签名

要仅加密 SOAP 主体,然后添加数字签名(使用非对称密钥时),请执行以下操作:

  1. 按照加密 SOAP 主体中的步骤进行操作。
  2. 按照添加数字签名中的步骤进行操作。

要加密任何安全标头元素,然后添加数字签名(使用非对称密钥时),必须使用顶级 <ReferenceList> 元素(在文档的其他地方不需要)。在这种情况下,请执行以下操作:

  1. 按照加密安全标头元素中的步骤 1 — 4 进行操作。
  2. 对于要加密的每个安全标头元素,根据该元素创建一个 <EncryptedData> 元素。为此,请调用 %XML.Security.EncryptedDataCreate() 类方法。在此过程中,指定所有三个参数:

a. 在前面的步骤中创建的加密密钥实例。

b. 要加密的安全标头元素。

c. $$$SOAPWSReferenceEncryptedKey,指定 <EncryptedData> 如何使用加密密钥实例。

 set refopt=$$$SOAPWSReferenceEncryptedKey
 set encdata=##class(%XML.Security.EncryptedData).Create(enckey,userToken,refopt)
  1. 创建 <ReferenceList> 元素。为此调用 %XML.Security.ReferenceList%New() 方法。例如:
  2. 在此 <ReferenceList> 中,创建一个指向 <EncryptedData> 元素的Reference>。为此,请对每个 <EncryptedData> 执行以下操作:

a. 调用 %XML.Security.DataReferenceCreate() 类方法,并指定加密数据实例作为参数。此方法返回 %XML.Security.DataReference的实例。

b. 调用引用列表实例的 AddReference() 方法并指定数据引用实例作为参数。

 set dataref=##class(%XML.Security.DataReference).Create(encdata)
 do reflist.AddReference(dataref)
  1. <ReferenceList> 元素添加到 WS-Security 标头元素。为此,请调用 Web 客户端或Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于要添加的元素,请指定您的引用列表实例。例如:
 do ..SecurityOut.AddSecurityElement(reflist)

注意:在添加其他项目之前,必须先添加 <ReferenceList> 元素。

  1. <EncryptedKey> 元素添加到 WS-Security 标头元素。使用 AddSecurityElement()。例如:
 do ..SecurityOut.AddSecurityElement(enckey)
  1. 将加密的安全标头元素添加到 WS-Security标头元素。为此,请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。在本例中,指定两个参数:

a. 要包含的安全标头元素(而不是基于该元素的 %XML.Security.EncryptedData的实例)。

b. 加密密钥实例。第二个参数指定第一个参数指定的项的放置位置。如果参数为 AB,则 IRIS 确保 AB 之后。指定此项以便收件人首先处理加密密钥,然后再处理依赖于它的加密安全标头元素。

 do ..SecurityOut.AddSecurityElement(userToken,enckey)

或者,如果加密的安全标头元素是<Signature>,,则使用 AddSecurityElement()

  1. 按照步骤添加数字签名。
  2. 发送 SOAP 消息。请参阅添加安全标头元素中的一般注释。

相关文章

  • java.security 框架之签名、加密、摘要及证书

    和第三方系统对接时,需要对隐私数据进行加密,对请求报文进行签名等。加密算法分为单向加密、对称加密、非对称加密等,其...

  • 加密和签名

    基本知识 ASCII(American Standard Code for Information Interch...

  • iOS逆向-day9:签名机制

    概述:加密解密单向散列函数数字签名iOS签名机制 和 证书重签名 一、加密解密 1.1、常见的英文单词encryp...

  • 接口签名与数据加密

    接口签名与数据加密 前言 公司业务主要是和第三方机构合作,遇到过各种各样的加密,今天就来简单讲解一下常见的加密方式...

  • 数字签名

    签名:用私钥加密 验证:用公钥解密 加密:用公钥加密 解密:用私钥解密 数字签名签名的数据 数字签名主要使用来做数...

  • 安全编程基础

    安全编程基础 目录 数据加密 数字签名 哈希算法 数字签名 PKI体系 加密通信 一.数据加密 分类:对称加密,非...

  • iOS逆向-RSA的使用-证书签名、代码签名(手动签名、脚本自动

    一:APP证书、APP 的签名与解密(低级签名) 3.1 公钥和私钥(公钥也是私钥加密过的)3.2 公钥加密,私钥...

  • iOS安全--APP代码签名机制

    学习路线(内部分享内容) 加密解密(对称加密、非对称加密、混合加密) 单向散列函数 数字签名 证书 iOS签名机制...

  • 数字签名

    简介 数字签名技术结合Hash算法和加密算法,来防止消息被篡改和进行身份认证。 消息认证码 消息认证码(Hash-...

  • 【技术】加密与签名

    加密和签名是两回事,加密的目的是防止信息泄露,签名的目的是防止篡改和伪造 MD5、SHA-1、SHA-256、HM...

网友评论

      本文标题:第三十五章 结合加密和签名

      本文链接:https://www.haomeiwen.com/subject/ybwrrjtx.html