证书管理的最佳实践

本文关键字:最佳 证书管理 | 更新日期: 2023-09-27 17:53:46

我有一个ASP。. NET MVC应用程序,其中每个用户都有自己的A1证书(通常是来自CA的密码保护的pfx文件),用于在服务器端签署某些文档。

我看到的两个选项是将pfx文件存储在服务器中并保存密码以便每次导入到c# X509Certificate2类中,或者将证书导入到Windows Storage并使用c# X509Store和其他方式通过序列号访问证书。两者各有利弊(安全、维护、性能)。

谁有这种情况的专业知识,可以分享一些建议吗?

注:

证书管理的最佳实践

谁有这种情况的专业知识,可以分享一些建议吗?

嗯,我想到的是将PFX/pkcs# 12证书和私钥密码一起存储在服务器上。它破坏了一些安全属性,并且可能为那些应该提供不可否认性的东西提供了可否认性。

我看到的两个选项是将pfx文件存储在服务器中并保存密码…

我相信还有第三个。用户从服务器下载文档;然后用户在文件上签字;最后,用户将分离的签名上传到服务器。我认为这是惯例的工作流程。

我偶尔看到的另一个坏主意是让服务器发送文档的哈希值,然后用户在不知道他或她签署的内容的情况下签名。用户应该总是自己计算哈希值。Schneier甚至建议用户稍微修改一下文档,以确保它不受攻击者的控制,并且容易发生冲突。


…每次导入到c# X509Certificate2类中,或者将证书导入到Windows Storage中,并使用c# X509Store和其他方式按序列号访问证书。

这是设计细节。我认为没有足够的信息来提出任何有用的意见。


证书管理最佳实践

证书很酷的一点是它们是公开的,而且不敏感。所以没有太多的实践。但是,使用证书的PKI是另一回事。

选择一个哈希和模来满足你未来的需求,比如SHA256和3072位RSA模。

短期证书(30天左右)促进较小的crl,这对一些客户端(检查吊销的客户端)是有利的。OCSP更好,OCSP订书机更好。

如果证书频繁轮换,则可以重新认证相同的公钥,因为密钥连续性似乎比密钥轮换更可取或更有用。