1.公开发布
公开发布是指用户将自己的公钥发给每一其他用户,或向某一团体广播。例如:PGP(Pretty Good Privacy)中采用RSA算法,很多用户就可将自己的公钥附加到消息上,发送到公开区域。
这种方法虽然简单,但有一个非常大的缺点:任何人都可以伪造密钥公开发布。如果某个用户假装是用户A,并以A的名义向另一用户发送或广播自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有发向A的加密消息,甚至还能用伪造的密钥获得认证。
2.公用目录表
公用目录表指一个公用的公钥动态目录表,由某个可信的实体或组织(公用目录的管理员)承担该共用目录表的建立、维护以及公钥的分布等。管理员为每个用户在目录表中建立一个目录,其中包括用户名和用户的公开钥两个数据项,并且定期公布和更新目录表。每个用户都亲自或以某种安全的认证通信在管理者那里注册自己的公开钥,可通过电子手段访问目录表,还可随时替换新密钥。但是,这种公用目录表的管理员秘密钥一旦被攻击者获取,同样面临被假冒的危险。
3.公钥管理机构
与公用目录表类似的,不过用公钥管理机构来为各用户建立、维护动态的公钥目录,这种对公钥分配更加严密的控制措施可以增强其安全性。特别注意的是,每个用户都可靠地知道管理机构的公开钥,但是只有管理机构自己知道相应的秘密钥。
例如:当用户A向公钥管理机构发送一个请求时,该机构对请求作出应答,并用自己的秘密钥SKAu加密后发送给A,A再用机构的公开钥解密。
它的缺点在于因为每一用户要想和他人联系都须求助于管理机构,所以容易使管理机构成为系统的瓶颈,并且管理机构维护的公钥目录表也容易被敌手窜扰。
4.公钥证书
公钥证书可以从一定程度上解决以上策略存在的一些不足之处。公钥证书是由证书管理机构CA(Certificate Authority)为用户建立的,其中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等,所有的数据项经CA用自己的秘密钥签字后就形成证书,即证书的形式为CA=ESKcA[T,IDA,PK?]。T是当前的时戳,ID?是用户A的身份,PKA是A的公钥,SKcA是CA的秘密钥,CA则是用户A产生的证书。
用户将自己的公开钥通过公钥证书发给另一用户,而接受方则可用CA的公钥PKcA对证书加以验证。这样通过证书交换用户之间的公钥而无须再与公钥管理机构联系,从而避免了由统一机构管理所带来的不便和安全隐患。
领取专属 10元无门槛券
私享最新 技术干货