我们正在验证嵌入了多个嵌入式xades(BES)消息的消息。 之前已被证明有效。 (还嵌入了签名。)
<Messsage1>
<OtherTags>
...Change location A...
</OtherTags>
<PreDocument>
<Messsage2>
<OtherTags>
...Change location B...
</OtherTags>
<PreDocument>
<Messsage3>
<OtherTags>
...Change location C...
</OtherTags>
<Signature>
...
</Signature>
</Messsage3>
</PreDocument>
<Signature>
...
</Signature>
</Messsage2>
</PreDocument>
<Signature>
...
</Signature>
</Messsage1>
目前,只有在“更改位置C”时所做的更改才会使邮件无效。 “更改位置A”和“更改位置B”的更改不会影响消息的有效性,甚至可以删除整个结构。
这是预期的行为吗? 是否有可能改变行为? (这样每次更改都会使消息无效)
答案 0 :(得分:0)
更改XML对签名有效性的影响取决于两个事实:
引用中的URI:如果您更改了受引用保护的XML blob中的某些内容,那么(并且必须)会使您的签名失效。
您在References中使用的变换以及您为它们使用的规范化算法以及ds:SignedInfo。例如,如果您使用的是独占规范化算法,则在包络XML blob中的某处添加命名空间不会使您的签名无效。 希望这会有所帮助。