什么是xml签名中使用的规范化标记.它存在于<signed info>元素中.我通过网络浏览了各种文件.但是所有这些都太抽象了,我无法理解.如果有人可以解释规范化标签中应该包含哪些内容以及应该如何使用它将会有所帮助?
我对<signature value>元素也有疑问.它包含什么签名?
一般使用签名(除了可追踪性原因)作为接收者的证明,消息在其传递过程中没有被改变(例如,由中间的人改变).
- > 关键字:诚信:
问题:
XML提供了几种有效的方法来构建相同的(输入)数据,如:
<a>1</a><!--comment--> <b></b><a>1</a><b/>这使得无法创建可确定的签名散列,这是工作签名验证的必要条件.例如,上面两个XML示例的MD5哈希将导致完全不同的结果哈希,尽管两个示例都以XML格式提供相同的有效数据(它们在语义上相同).
解决方案: 这是XML规范化(c14n)的来源:消息由发送方(客户端)格式化(规范化),也在接收方(服务器)接收后,以便散列不会因相同数据而改变(在XML级别上).
我想你只是对这些东西很好奇,因为通常你不应该关心这个,因为libs(XMLDSig-libs,WS-Security-libs,..)正在幕后处理这个问题.
第二个问题: SignatureValue元素包含SignedInfo元素的Base64编码签名结果.