我正在设计一个基于 WCF 的 B2B Web 服务。由于客户端数量相对较少且安全性是优先事项,因此我选择使用 X509 客户端证书进行客户端身份验证。
我正在使用我自己的自签名 CA 签署客户端证书(这当然是安全的)。我还验证了该设置正在一组本地计算机上运行。
一个问题一直困扰着我。只要证书可以“物理”移交,我就没有问题。但是,我似乎找不到将客户端证书安全地传输到实际客户端的解决方案。这些是我到目前为止提出的选项:
1) 使用 PFX 格式的对称加密对证书进行加密。然后我将通过电子邮件发送证书并使用旧的蜗牛邮件(即物理信件)发送解密证书的密钥
2) 建立一个简单的网站,让客户使用临时 URL(发送到电子邮件地址的凭据)登录,然后下载证书。该站点将使用 HTTPS 进行保护。然后,安全性完全依赖于客户电子邮件的安全性,并且没有人从电子邮件中获取 URL
我倾向于选择选项 1)作为唯一的安全漏洞,因为有人实际上会从物理信件中窃取密钥。然而,使用物理字母似乎有点乏味。
是否有任何事实上的标准来解决我忽略的这个问题,提供合理的安全性?