This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
加密和解密 XML 有效负载
您可以使用高级策略表达式中的 XML_ENCRYPT () 和 XML_DECRICPT () 函数分别加密和解密 XML 数据。这些函数符合在 http://www.w3.org/TR/2001/PR-xmldsig-core-20010820/ 中定义的 W3C XML 加密标准。XML_ENCRYPT () 和 XML_DECRICPT () 支持 XML 加密规范的一个子集。在子集中,数据加密使用批量加密方法(RC4、DES3、AES128、AES192 或 AES256),并且使用 RSA 公钥加密批量密钥。
注意: 如果要对有效负载中的文本进行加密和解密,则必须使用加密和解密函数。有关这些函数的更多信息,请参阅 加密和解密文本。
XML_CONTACT () 和 XML_DECLUT () 函数不依赖于文本的加密/解密命令使用的加密/解密服务。密码方法被明确指定为 XML_ENCRYPT () 函数的参数。 XML_DECRYPT()
函数从 <xenc:EncryptedData>
元素中获取有关指定密码方法的信息。以下是 XML 加密和解密函数的概要:
-
XML_ENCRYPT(<certKeyName>, <method> [, <flags>])**. Returns an
<xenc:EncryptedData>
元素,其中包含加密的输入文本和加密密钥,加密密钥本身使用 RSA 进行加密。 -
XML_DECRYPT(<certKeyName>)
。返回来自输入<xenc:EncryptedData>
元素的解密文本,其中包括密码方法和 RSA 加密的密钥。
注意: <xenc:EncryptedData>
元素在 W3C XML 加密规范中定义。
以下是参数的说明:
-
证书密钥名称: 为 XML_ENCRYPT () 选择一个带有 RSA 公钥的 X.509 证书或用于 XML_DECRYPT () 的 RSA 私钥的证书。证书密钥必须是先前由
add ssl certKey
命令创建的。 -
方法: 指定用于加密 XML 数据的密码方法。可能的值:RC4、DES3、AES128、AES192、AES256。
-
flags: 一个位掩码,用于指定要包含在由生成的
<xenc:EncryptedData>
元素中的以下可选关键信息 (<ds:KeyInfo>
)XML_ENCRYPT()
:-
1 -在 CertKeyName 中包含一个 KeyName 元素。元素是
<ds:KeyName>
。 -
2 -使用证书中的 RSA 公钥包含 KeyValue 元素。元素是
<ds:KeyValue>
。 -
4 -包括带有证书序列号和颁发者 DN 的 X509issuerSerial 元素。元素是
<ds:X509IssuserSerial>
。 -
8 -在证书主题 DN 中包含一个 X509SubjectName 元素。元素是
<ds:X509SubjectName>
。 -
16 -在整个证书中包含 X509 证书元素。元素是
<ds:X509Certificate>
。
-
1 -在 CertKeyName 中包含一个 KeyName 元素。元素是
在表达式中使用 XML_ENCRYPT () 和 XML_DECRICPT () 函数
XML 加密功能使用 SSL 证书密钥对为密钥加密提供 X.509 证书(带有 RSA 公钥)和用于密钥解密的 RSA 私钥。因此,在表达式中使用 XML_ENCRYPT () 函数之前,必须创建 SSL 证书密钥对。以下命令使用 X.509 证书、my-cert.pem 和私钥文件 my-key.pem 创建 SSL 证书密钥对 my-certkey。
add ssl certKey my-certkey -cert my-cert.pem -key my-key.pem -passcrypt kxPeMRYnitY=
以下 CLI 命令创建用于加密和解密 XML 内容的重写操作和策略。
add rewrite action my-xml-encrypt-action replace "HTTP.RES.BODY(10000).XPATH_WITH_MARKUP(xp%/%)" "HTTP.RES.BODY(10000).XPATH_WITH_MARKUP(xp%/%).XML_ENCRYPT("my-certkey", AES256, 31)"
add rewrite action my-xml-decrypt-action replace "HTTP.REQ.BODY(10000).XPATH_WITH_MARKUP(xp%//xenc:EncryptedData%)" "HTTP.REQ.BODY(10000).XPATH_WITH_MARKUP(xp%//xenc:EncryptedData%).XML_DECRYPT("my-certkey")"
add rewrite policy my-xml-encrypt-policy "HTTP.REQ.URL.CONTAINS("xml-encrypt")" my-xml-encrypt-action
add rewrite policy my-xml-decrypt-policy "HTTP.REQ.BODY(10000).XPATH(xp%boolean(//xenc:EncryptedData)%)" my-xml-decrypt-action
bind rewrite global my-xml-encrypt-policy 30
bind rewrite global my-xml-decrypt-policy 30
<!--NeedCopy-->
在上面的示例中,重写操作 my-xmll-crypt-action 通过使用 AES-256 批量加密方法和 my-certkey 中的 RSA 公钥加密批量加密密钥,对请求中的整个 XML 文档(XPATH_WITH_MARKUP (xp%/%))进行加密。该操作将使用包含加密数据和加密密钥的 <xenc:EncryptedData>
元素替换文档。31 表示的标志包括所有可选 <ds:KeyInfo>
元素。
操作 my-xml-解密操作解密响应中的第一个 <xenc:EncryptedData>
元素 (XPATH_WITH_MARKUP(xp%//xenc:EncryptedData%))。这要求事先使用以下 CLI 命令添加 xenc XML 命名空间:
add ns xmlnamespace xenc http://www.w3.org/2001/04/xmlenc#
my-xml-decrypt-action 操作使用 my-certkey 中的 RSA 私钥解密加密的密钥,然后使用元素中指定的批量加密方法解密加密的内容。最后,该操作将用解密的内容替换加密的数据元素。
重写策略 my-xml 加密策略将 my-xml 加密操作应用于对包含 xml-encrypt 的 URL 的请求。该操作会加密来自 NetScaler 设备上配置的服务的整个响应。
重写策略 my-xml-解密策略将 my-xml-解密操作应用于包含 <xenc:EncryptedData>
元素的请求(XPATH (xp%//xenc:cryptedDATA%) 返回非空字符串)。该操作对绑定到 NetScaler 设备上配置的服务的请求中的加密数据进行解密。
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.