【问题标题】:Is it okay to store a digital signature and the public key of the signatory inside a json file?可以将数字签名和签名人的公钥存储在 json 文件中吗?
【发布时间】:2021-09-04 00:39:10
【问题描述】:

在我的项目中,我正在用我的私钥签署一个字符串。如果我将我的公钥和签名存储在一个稍后要验证的 json 文件中,那么它真的安全吗?还是首选使用 PKCS#7?如果是,那有什么区别?

【问题讨论】:

    标签: node.js json encryption cryptography digital-signature


    【解决方案1】:

    是的。只要您的私钥未公开,将您的公钥与由私钥签名的文档一起存储是安全的。

    在用于联合用户身份验证和授权的 SAML2.0 系统中,他们使用的 Assertion 令牌使用私钥进行签名。这些断言是 XML 文档,包含加密签名和公钥。公钥是该系统中 X.509 公钥的 base64 编码版本。

    当然,收件人应该使用自己之前存储的公钥副本来验证签名。如果收件人使用文档中的公钥验证签名,则很容易受到欺骗。不良行为者可以使用自己的私钥签署恶意文档,然后发送自己的公钥。签名会匹配,但无法证明文档的来源。

    【讨论】:

    • 谢谢@O.Jones。那么,如果验证方没有签名者的公钥,那么拥有一个证书颁发机构可能会有所帮助吗?
    • 这完全取决于您的应用程序的工作流程。请转至security.stackexchange.com 并提出具体问题。
    猜你喜欢
    • 2017-10-28
    • 2019-11-24
    • 2011-12-27
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多