2013-03-26 109 views
2

我想制作一个用于签名消息的JavaScript库。我期望格式是类似的...数字签名的标准格式

--- BEGIN SIGNED MESSAGE --- 
This is a plain old message 
It goes on and on... 
--- BEGIN RSA OF SHA1 --- 
Base64Stringassfd86asdf870n8 
09as8d76fn098== 
--- END SIGNED MESSAGE --- 

但我不知道正确的格式。我可以复制PGP格式(我相信不难找到有关这方面的信息),但我更喜欢使用标准方法(如果有的话)。

这种签名邮件是否有标准格式?

+0

邓肯琼斯对可用的标准格式说得很好,我建议你尝试使用已经完成的任何事情 - 如果没有对安全性和PKI的严肃认识,你很容易犯一个安全相关的错误。你肯定读过关于为什么JavaScript加密是个坏主意的文章,不是吗? – 2013-03-27 07:59:25

回答

3

Cryptographic Message Syntax(又名PKCS#7)是一种非常常用的签名数据格式。它还支持有效载荷内容的加密和认证,所以它有点超级格式。缺点是执行的复杂性 - the specification可能令人厌倦拖延,你必须与ASN.1一起工作。

OpenPGP format可能更容易实现并且对人眼更易读(无ASN.1可见)。这可能是简单性最好的选择。同样,如果您愿意,您可以选择在以后添加加密。然而,规范可以同样恼人的工作 - 我从来没有遇到一个RFC是如此...以前不精确。

+0

OpenPGP并不比PKCS#7更简单(除了*你经常看到base64编码的数据而不是二进制)。 – 2013-03-27 07:58:16

+0

@ EugeneMayevski'EldoSCorp在执行了两个标准的部分内容之后,我不同意。但是,这可能是由于我对不同的编程任务有自己的天赋。这当然是我的主观意见。 – 2013-03-27 07:59:28

+0

那么,我们在一个库(SecureBlackbox)中完全实现了它们(以及更多)。实现一个部分更简单,你可以省略某些复杂的事情。当然,PKI整体上比OpenPGP更广(也更复杂),但如果我们将PKCS#7与OpenPGP加密/签名进行比较,那么它们具有相同的复杂性。 – 2013-03-27 13:03:20

-1

数字签名是用于演示数字信息或文档真实性的数学方案。有效的数字签名使收件人有理由相信该邮件是由已知发件人创建的,因此他们不能拒绝发送邮件(验证和不可否认),并且邮件在传输过程中未被更改(完整性)。数字签名的消息可以是表示为位串的任何东西:例如电子邮件,合同或通过其他加密协议发送的消息。更多信息..点击Hare .. How do i get a digital signature

1

为了完成,W3C XML Signature,从语法和编码的角度来看它稍微容易些,但要求最终的数据是XML。