我发现自己需要存储公共密钥证书和一个私人密钥证书的内部应用程序。
我们小组的一名成员build议将X509证书存储在数据库中,而不是将其存储在Windows证书存储中,就像我们一直在做的那样。 我不喜欢重新发明轮子,但我至less要考虑这个想法。 这意味着保持我们的数据更集中,这是好的,我想。
我能看到的最初的障碍是:
私钥仍然需要存储在某个地方,我不知道是否将它锁在“公钥”表中是一个好主意。 我不喜欢为单个元素设置表格的想法。 也许只是将私钥保存为本地文件? (例如.pfx文件)。
撤销清单。 我们可能必须build立一个处理撤销公钥的stream程。
我对X509证书没有太多的经验,所以,我的问题是:是否还有其他问题可能会遇到将公钥证书存储在数据库中,而不是使用Windows证书存储?
New-SelfSignedCertificate创build证书给拒绝访问
Windows密钥库和证书
需要帮助来使用CertFindCertificateInStore()按主题名称(X500格式,CERT_X500_NAME_STR)查找证书?
电子应用程序证书需要多长时间才能build立足够的信任?
SignedXml.CheckSignature如何validation证书
值得注意的是,这个应用程序将被推出到多个商业客户端服务器上,所以将所有数据保存在一个地方将会使备份更容易。 哦,而且正在使用C#开发内部应用程序。
谢谢!
在目标机器上运行CodeSigned PowerShell脚本
将自签名的XAP部署到Windows Phone 8
如何在未连接到Internet的计算机上安装Visual Studio 2015的远程工具
SSL:无法加载CA证书文件/etc/pki/tls/certs/ca-bundle.crt
扫描证书存储区不显示所有证书
你的应用程序的目的是什么?
如果您正在处理应用程序中的所有密码,并且可以引用PKCS#12证书+私钥文件,那么转到数据库路由可能没有问题。
如果您需要使用Windows Crypto API访问证书,那么您可能需要继续使用内置的证书存储。 您可以在这里获得一些优势,因为您可以保护外部设备上的私钥,如智能卡或硬件安全模块(HSM)。
如果要将所有内容存储在本地磁盘上,则需要确保您经过大量努力来保护私钥。 请务必使用强大的密码,并使用最佳做法来保护您的应用中的密码。
除非确实需要,否则我不愿将私钥移到其他位置。 如果密钥用于签名,则不需要,只有在密钥用于解密时才需要,而且您希望将其存档以备将来使用。 即使在这种情况下,颁发证书的证书颁发机构通常也能够处理存档和恢复。 对于像微软这样的更受欢迎的CA和委托来说,情况确实如此。
如果您必须存储它,然后使用AES和一个可以在HSM(硬件安全模块)或智能卡上进行保护的密钥对其进行加密。 不要将此密钥保存为纯文本(在文件或注册表中)。
你也希望保护这个密钥在其生成位置和中央数据库之间的传输。 SSL或VPN等
撤销列表由证书颁发机构在大多数环境中发布,通常发布到LDAP或目录或两者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。