证书管理的最佳实践
本文关键字:最佳 证书管理 | 更新日期: 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订书机更好。
如果证书频繁轮换,则可以重新认证相同的公钥,因为密钥连续性似乎比密钥轮换更可取或更有用。