Xades 多重签名
Xades multiple signatures
大家好,在此先感谢您的帮助。
我的目标是让两个或更多不同的人以增量方式处理文档:
第一个将创建xml,仅编译文档的一个小节(根据他的角色)然后仅签署他编译的部分。
第二个人将从第一个人那里获取文档并编译他的小节,而不修改第一个人写的任何内容。然后他将添加他的签名,在他的小节和第一个人的小节中签名。
等等...
我该怎么做?根据标准,XAdES 特定的 xml 元素(例如用于签名的证书的 ID)都在 <object>
元素内(在 signed properties 子元素中),在我看来这意味着一次只有一个人可以签署对象(即文档)而不必覆盖签名数据。
我错了吗?如果有我没有考虑过的方法,有人可以帮助我理解吗?
谢谢,
A.
我的 2 美分...
这看起来是一个使用反签名的案例。
要确保只签署文档的一部分,您必须使用参考资料中的 xpath 转换器。
第二个人将对之前的签名进行复签,您可能还需要添加他编辑的新部分的引用(xpath?)。
你有一些研究要做...
Link 来自 xades4j 的反签名示例:
https://github.com/luisgoncalves/xades4j/blob/master/src/test/xml/document.signed.bes.cs.xml
编辑:
参见 xades 规范:ETSI TS 101 903 V1.4.2 (2010-12)
http://www.etsi.org/deliver/etsi_ts%5C101900_101999%5C101903%5C01.04.02_60%5Cts_101903v010402p.pdf
参见第 7.2.4 章和附件 C。
答案 1)
我会说是的,正如规范所说:
“应用程序可以添加引用 ds:SignatureValue 元素的其他 ds:Reference 元素
以前存在的 CounterSignature 元素。这允许构建任意长的显式链
会签。
答案 2)
好吧,我想这是你的决定......关于副署,他们说:
"The only purpose of this definition is to serve as an easy identification of a signature as actually being a countersignature."
因此,如果您认为将其作为签名而不是联署更容易(在此处添加对您有意义的原因...),您可以。
我不认为在副署元素中有更多引用是可能的,因为对我来说副署是在先前签名上的签名,但标准并不禁止它,也许你'没错。谢谢。
其他注意事项,只是为了确保我理解正确
1) 随着会签人数量的增加,将需要嵌套的会签元素,这对于 ETSI 标准来说是可以的
2) 为什么创建了会签元素?是否不可能在同一容器节点内创建更多签名元素,这些元素通过引用元素相互引用并引用感兴趣的文本部分?我正在考虑您发布的示例,其中数据元素是内部附加的并且只有一个签名:添加更多具有正确引用的签名元素将使我能够获得相同的行为或者存在我没有的限制确定?
感谢大家的贡献。
编辑:
答案 1)
我会说是的,正如规范所说:
“应用程序可以添加引用 ds:SignatureValue 元素的其他 ds:Reference 元素
以前存在的 CounterSignature 元素。这允许构建任意长的显式链
会签。
答案 2)
好吧,我想这是你的决定......关于副署,他们说:
"The only purpose of this definition is to serve as an easy identification of a signature as actually being a countersignature."
因此,如果您认为将其作为签名而不是联署更容易(在此处添加对您有意义的原因...),您可以。
参见 xades 规范:ETSI TS 101 903 V1.4.2 (2010-12)
http://www.etsi.org/deliver/etsi_ts%5C101900_101999%5C101903%5C01.04.02_60%5Cts_101903v010402p.pdf
参见第 7.2.4 章和附件 C。
大家好,在此先感谢您的帮助。
我的目标是让两个或更多不同的人以增量方式处理文档:
第一个将创建xml,仅编译文档的一个小节(根据他的角色)然后仅签署他编译的部分。
第二个人将从第一个人那里获取文档并编译他的小节,而不修改第一个人写的任何内容。然后他将添加他的签名,在他的小节和第一个人的小节中签名。
等等...
我该怎么做?根据标准,XAdES 特定的 xml 元素(例如用于签名的证书的 ID)都在 <object>
元素内(在 signed properties 子元素中),在我看来这意味着一次只有一个人可以签署对象(即文档)而不必覆盖签名数据。
我错了吗?如果有我没有考虑过的方法,有人可以帮助我理解吗?
谢谢,
A.
我的 2 美分...
这看起来是一个使用反签名的案例。
要确保只签署文档的一部分,您必须使用参考资料中的 xpath 转换器。
第二个人将对之前的签名进行复签,您可能还需要添加他编辑的新部分的引用(xpath?)。
你有一些研究要做...
Link 来自 xades4j 的反签名示例: https://github.com/luisgoncalves/xades4j/blob/master/src/test/xml/document.signed.bes.cs.xml
编辑:
参见 xades 规范:ETSI TS 101 903 V1.4.2 (2010-12) http://www.etsi.org/deliver/etsi_ts%5C101900_101999%5C101903%5C01.04.02_60%5Cts_101903v010402p.pdf 参见第 7.2.4 章和附件 C。
答案 1) 我会说是的,正如规范所说: “应用程序可以添加引用 ds:SignatureValue 元素的其他 ds:Reference 元素 以前存在的 CounterSignature 元素。这允许构建任意长的显式链 会签。
答案 2) 好吧,我想这是你的决定......关于副署,他们说: "The only purpose of this definition is to serve as an easy identification of a signature as actually being a countersignature." 因此,如果您认为将其作为签名而不是联署更容易(在此处添加对您有意义的原因...),您可以。
我不认为在副署元素中有更多引用是可能的,因为对我来说副署是在先前签名上的签名,但标准并不禁止它,也许你'没错。谢谢。
其他注意事项,只是为了确保我理解正确 1) 随着会签人数量的增加,将需要嵌套的会签元素,这对于 ETSI 标准来说是可以的 2) 为什么创建了会签元素?是否不可能在同一容器节点内创建更多签名元素,这些元素通过引用元素相互引用并引用感兴趣的文本部分?我正在考虑您发布的示例,其中数据元素是内部附加的并且只有一个签名:添加更多具有正确引用的签名元素将使我能够获得相同的行为或者存在我没有的限制确定?
感谢大家的贡献。
编辑:
答案 1) 我会说是的,正如规范所说: “应用程序可以添加引用 ds:SignatureValue 元素的其他 ds:Reference 元素 以前存在的 CounterSignature 元素。这允许构建任意长的显式链 会签。
答案 2) 好吧,我想这是你的决定......关于副署,他们说: "The only purpose of this definition is to serve as an easy identification of a signature as actually being a countersignature." 因此,如果您认为将其作为签名而不是联署更容易(在此处添加对您有意义的原因...),您可以。
参见 xades 规范:ETSI TS 101 903 V1.4.2 (2010-12) http://www.etsi.org/deliver/etsi_ts%5C101900_101999%5C101903%5C01.04.02_60%5Cts_101903v010402p.pdf
参见第 7.2.4 章和附件 C。