【问题标题】:Does NodeJS crypto module fail verification if the RSA cert is expired?如果 RSA 证书过期,NodeJS 加密模块是否无法通过验证?
【发布时间】:2016-12-09 19:36:31
【问题描述】:

如果下面代码中的'key'是一个过期的证书,那么无论签名的有效性如何,res都会一直为假吗?

var verifier = crypto.createVerify("RSA-SHA1")
verifier.update(str)
var res = verifier.verify(key, signatureValue, 'base64')

换句话说,NodeJS 加密模块在验证签名时是否关心证书的过期时间。这都是在验证签名的 XML 文档的上下文中。

【问题讨论】:

    标签: node.js cryptography rsa digital-signature


    【解决方案1】:

    不,过期不使用上面的代码验证。如果您直接使用公钥而不是签名,那么该算法甚至不会收到有效期结束日期。

    如果您代码中的key 不是密钥而是证书,那么签名验证通常也不会失败。验证证书是否有效的测试应在验证数据签名之前进行。

    证书验证和确认程序 换句话说,应该包含对证书是否在其有效期内的检查 - 在所有其他检查中。签名验证仅应在此之后进行。

    【讨论】:

    • 证书值中嵌入了到期日期,不是吗?我的问题是 verifier.verify 是否关心那个日期。
    • @cava23 不,它没有。它只检查签名是否正确,需要检查当前日期是否在密钥有效使用期限内。
    猜你喜欢
    • 1970-01-01
    • 2023-01-16
    • 2014-09-16
    • 1970-01-01
    • 2011-08-14
    • 2014-06-09
    • 2020-05-20
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多