如何安全地保存 x509 证书



我有一个具有以下实现的类:

public class ObjectSer
    {
        public X509Certificate cer;
        public string name;
    }

我想使用稍后在其他应用程序中加载System.Xml.Serialization; XML 文件中序列化 XML 文件中的ObjectSer实例。当我检查输出文件时,只有name属性。经过一些研究,我发现我应该将证书导出到 byte[],所以我修改了ObjectSer实现:

public class ObjectSer
    {
        public X509Certificate cer;
        public string name;
        public byte[] exportedBytes;
    }

现在,我可以保存和加载证书,但我不想将证书导出的字节作为纯文本存储在 XML 文件中。我的问题是:

  1. 对于网络安全措施,是否有任何其他方法可以执行 X509Certifacate 实例的序列化和序列化?
  2. 我是否应该在保存之前添加另一层来加密exportedBytes并在加载之前解密?
我不知道

为什么要将 X509 证书序列化为 XML,但总的来说,我会说不要。如果您坚持这样做,我建议您对字节数组进行 base64 编码并将其保存在 xml 中。

至于你关于安全问题的问题;您应该只存储 X509 证书的公共部分,并将私钥保存在另一个位置。

我推荐以下文章在 .NET 中使用 X.509 证书的八个技巧,其中包含一些很棒的技巧。

您可以将加密的证书及其私钥存储在 PKCS 12 格式的文件中。下面是有关 .NET PKCS 12 API 的一些信息。

相关内容

  • 没有找到相关文章

最新更新