综上所述,公钥分配方法主要有以下几种。
(1)公钥的公开发布
公钥密码体制出现的一个原因是解决密钥分配问题,也就是公钥密码体制中的公钥可以公开,无需特殊的安全渠道,相应地降低了密钥管理的要求和成本。缺点是可能出现伪造公钥公开发布,从而读取到其他方利用该伪造的公钥加密后的消息。
(2)建立公钥目录
建立公钥目录是即需要名为目录管理员的可信实体或组织来维护此公共目录,而其他用户可通过公钥目录以获取公钥。
这种方法比个人公开发布公钥更安全,但它也有缺点:一旦目录管理员的私钥泄露,其他人可假冒通信方,传递假的公钥,或窃取发送给该通信方的消息。
(3)带认证的公钥分发
更安全的公钥分发方法是基于公钥目录的建立来增加认证功能。目录管理员的角色是维护通信方的公钥的动态目录,管理员向请求方返回经自己的私钥签名变换过的公钥,请求方可用管理员的公钥解密证实获取的签名变换过的公钥,来确定公钥的真实性。实际上,这是一个在线服务器类型的公钥分发解决方案。
该方案的缺点:可能导致可信服务器成为一个瓶颈;因而必须在目标通信方和可信服务器间建立通信链路。
(4)使用数字证书的分钥分发
若通信各方用证书交换密钥并非是公钥管理员,同样可以获得与其相同的可靠性。这时,数字证书可基于离线服务器的方式进行工作,但需要证书和密钥持有者携带的公钥具有一定的相关性。如何保证与证明这种关联性是重要的,因为一方面,需要传递密钥和签名者之间的关联,以便其他人可以验证签名,在传递的过程中需保证这种关联性不会被篡改;另一方面,需要记录该关联性的起源。可采用对该关联进行签名的办法,数字证书即为给出一种确保此关联的可靠性与传递该关联和公钥自身的机制。
该方案要求用户要登记他的公钥并获取CA的证书证实公钥。CA通过把用户的公钥与其身份绑定来认证用户的公钥,结果生成一个证书。证书的内容包括:用户的名称、用户的公钥,另外,证书中还包括:证书序列号、证书发行者名称、证书的失效日期,最后还必须有CA的签名,以表明该证书的真实性。作为认证中心与离线可信方联系证书由证书管理员生成,并发它具有通信方的相应私钥。通信方利用传递证书把密钥信息传给另一方,其他通信各方可核验此证书就是通过证书管理者产生的得到公钥认证。
由CA产生的用户证书有两个方面的特点:任何拥有CA公钥的用户都可以恢复并验证用户的公钥;CA以外的任何一方都无法被检测到更改此证书。正是由于这两个特点,证书是不可伪造的,这样它们就可以放在一个目录中而无需特殊保护的目录中。