非对称密码体制(公钥密码体制)相对于对称密码体制而言,优势之一就在于密钥管理相对简单,但如何保证公钥或公共参数的真实性,是非对称密码体制的密钥管理必须解决的主要问题。非对称密码体制的密钥分配方案主要有以下几类。
1.公开发布密钥
在非对称密码体制中公钥不需要保密。公开发布密钥是指某用户将自己的公钥发送给其他用户或者直接在某个范围内广播。例如,在PGP中使用了非对称密码体制RSA,它的用户将自己的公钥附加在发送的消息上传递,使通信对方或者对自己公钥感兴趣的其他用户很容易获取。
公开发布密钥的突出优点是非常简便,密钥分配不需要特别的安全渠道,降低了密钥管理的成本。然而,该方法也存在一个致命的缺点,那就是容易造成假冒的公钥发布。任何用户都可以伪造一个公钥并假冒他人的名义向其他用户发送或广播自己的公钥,然后解读所有使用该假冒公钥加密的所有信息,并且可以利用伪造的密钥获得认证。
2.使用公钥目录表发布密钥
公钥目录表是一个公开、动态、可在线访问的用户公钥数据库。使用公钥目录表发布密钥是指由某个可信的实体建立一个公钥目录表,让每个用户将自己的公开密钥安全地注册到这个公钥目录中,并由目录管理员对公钥目录进行维护和管理。用户可以通过电子手段查询公钥目录获取他感兴趣的其他用户的公开密钥。
这种方案的安全性高于公开发布密钥,缺点在于公钥目录表自身的安全保护是一个大问题。一旦攻击者攻破公钥目录表或者获取了目录管理员的管理密钥,就可以篡改或者伪造任何用户的公钥,既可以假冒任一用户与其他用户通信,又可以监听发往任一用户的消息。
3.由公钥管理机构分配密钥
这是公钥目录表发布密钥的一种改进方案,它需要一个可信的公钥管理机构来建立、维护和管理用户公钥数据库,并且每一个用户都可靠地知道公钥管理机构的公开密钥,而对应的私钥只有公钥管理机构自己知道。由公钥管理机构分配密钥的步骤如图7-4所示。
图7-4 公钥管理机构分配密钥
1)用户A通过网络向公钥管理机构发送一带时间戳的请求消息Request||Time1,请求得到用户B当前的公钥。
2)公钥管理机构为A的请求发出应答消息ESKu[PKb||Request||Time1],消息中包含B的公钥PKb以及A向公钥管理机构发送的带时间戳的请求,这些消息由管理机构的私钥SKu加密后传送。(www.xing528.com)
3)A用B的公钥加密A的身份IDa和一次性随机数N1,得到消息EPKb[IDa||N1],并发送给B。
4)B用与A同样的方法向公钥管理机构发送带时间戳的请求消息Request||Time2,请求得到A的公钥。
5)公钥管理机构为B的请求发出应答消息ESKu[PKa||Request||Time2]。
6)B用A的公钥PKa加密一个消息并发送给A,加密后的消息为EPKa[N1||N2],其中N2是B产生的一个一次性随机数。
7)A用B的公钥PKb加密N2,并将加密结果EPKb[N2]发送给B。
由公钥管理机构给用户分配密钥,限制了用户对公钥数据库的自由查询,并使用数字签名和时间戳对分发公钥进行保护,因此提高了公钥分配的安全性。但这种方案的缺点也是明显的,一是公钥管理机构必须时刻在线,准备为用户服务,这为公钥管理机构的建设增加了难度,使其与公钥目录一样可能成为系统性能的瓶颈;二是要保证所有用户与公钥管理机构间的通信链接时刻畅通,确保任何用户随时可以向公钥管理机构请求他需要的用户公钥,这要求整个网络具有良好的性能;三是公钥管理机构仍然是被攻击的目标,公钥管理机构自己的私钥必须绝对安全。
4.使用公钥证书分配密钥
使用公钥证书分配密钥是将每个用户的公钥进行安全封装,形成一个公钥证书,然后通信双方通过相互交换公钥证书来实现密钥分配,这样不需要在每次通信时都与公钥管理机构在线联系,且能够获得同样的可靠性和安全性。但公钥证书必须真实可信,不存在伪造和假冒的可能。
公钥证书由证书管理机构(Certificate Aauthority,CA)为用户建立,其中的数据项有与该用户的私钥相匹配的公钥及用户的身份和时间戳等,所有的数据项经CA用自己的私钥加密后就形成证书,如用户A的证书形式为CERTa=ESKu[Time||IDa||PKa]。其中,IDa是用户A的身份;PKa是A的公钥;Time是当前时间戳;SKu是CA的私钥。其实证书的内容还包括证书序列号、证书发行CA的名称、证书的有效起止时间等,当然最关键的还是CA对证书的数字签名,它能保证证书的真实可靠性。
另一方面,与公钥证书中的用户公钥相对应的私钥只有该用户本人掌握。在通信过程中,如果一方需要将自己的公钥告知对方,则只需将自己的公钥证书发送给对方即可,对方收到公钥证书后用证书发行CA的公钥去验证证书中的签名,即可识别证书的真伪,同时可判断证书是否还在有效期内。
使用公钥证书分配密钥是一种离线式的公钥分配方案,它的优势很明显:一是证书管理机构的压力显著降低,每个用户只是偶尔与证书管理机构发生联系;二是公钥分配的可靠性和效率都大大提高,由于每个用户的公钥证书都是经过CA签名的,因此只要掌握了CA的公钥就可以方便地识别出证书的真伪,杜绝了伪造和假冒的可能。同时通信双方随时可以交换各自的公钥证书,提高了公钥分配的效率。使用公钥证书分配用户公钥是当前公钥分配的最佳方案。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。