YAML文件中的数字签名。与XMLDSIG类似

时间:2017-09-25 18:36:00

标签: c# encryption cryptography digital-signature

XMLDSIG是XML文档的数字签名规范。 C#具有在System.Security.Cryptography.Xml命名空间中支持XMLDSIG的类。

我想知道YAML文档是否有数字签名规范。或者一般来说如何验证YAML文档的真实性(因为它没有被篡改)。

想法是在YAML文档中放置数字签名,然后使用另一端的公钥来验证它。不确定在C#,python或go中是否存在围绕此事件实现的库。

我确实在 3.2.1.3部分找到了一些内容。 http://yaml.org/spec/1.0/处的平等提到了使用规范形式来支持数字签名。不知道我是否理解它。

1 个答案:

答案 0 :(得分:0)

不,Yaml没有特定的数字签名格式。最常见的格式为xml为XMLDsig,PDF为PAdES,二进制数据为CMS / PKCS#7 / CAdES,JSON为JWS < / p>

添加带有签名的yaml标记意味着处理可能导致头痛的文本的规范化。

我建议将内容作为CMS / PKCS#7或JWT包装到签名容器中。例如

{
 "yaml": "SGVsbG8=". //yaml as base64
}

或使用分离的签名

<强>规范化 您引用的链接是在谈论如何表示数字。请注意,数据的任何更改或处理它们以计算签名的方式都会产生不同的签名。因此,当使用文本格式时,需要一个众所周知的“规范化”过程来确保所有各方以相同的方式处理数据