【问题标题】:Is Self-Signed IdentityServer4 signing credential good enough in production?自签名 IdentityServer4 签名凭证在生产中是否足够好?
【发布时间】:2021-03-29 09:28:48
【问题描述】:

我们正在使用 IdentityServer4,我们的版本从文件系统中的 PFX 文件或 Windows 证书存储中加载签名密钥。使用证书有效。问题是 - 在生产中应该使用哪个证书颁发者?

是否推荐使用公共 CA 的证书?或者有一个自签名证书(根本没有 CA)就足够了,例如可以使用 IIS 管理器创建?

在我们的测试中,我们发现客户端仍然可以验证访问令牌中的签名,即使签名证书在客户端上没有有效的 CA 链。

在文档中,它说您还可以使用原始密钥材料而不是证书: http://docs.identityserver.io/en/latest/topics/crypto.html#token-signing-and-validation 在这种情况下,将没有任何 CA 链。

这让我假设,当客户端加载公共签名密钥(通过 HTTP(s) 端点)时,CA 链信息可能无论如何都不会传递。那正确吗?通过 HTTPs 的加载机制,您还拥有一个组合的安全机制。

所以我的结论是,对于签名证书,自签名证书与来自 VeriSign 的证书一样安全。可以确认吗?

【问题讨论】:

    标签: certificate identityserver4 signing


    【解决方案1】:

    签名和验证令牌不涉及证书。只有私钥和公钥(RSA 或 ECDSA 密钥)。

    但是,证书对于将密钥“导入/传输”到 .NET 中很有用。因此,我们不关心证书是谁颁发的。

    导入密钥时,一种方法是将持有公钥 + 私钥的证书捆绑在一起,并将其存储在 PKCE#12 文件(.pfx/.p12 扩展名)中。然后将该文件加载到 .NET 中。在 .NET 5 之前,使用密钥有点困难。

    更重要的是您可以以安全的方式管理和部署私钥,并且它会随着时间的推移而持久化。

    (可选)您可以添加对键旋转的支持。

    【讨论】:

    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2019-09-25
    • 2017-09-03
    • 2017-11-19
    • 2020-01-27
    • 2019-04-18
    相关资源
    最近更新 更多