ssl运行机制中,为什么不直接采用pms作为会话密钥

阮一峰写了一篇不错的文章介绍ssl的运行机制 http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

对于”为什么一定要用三个随机数,来生成会话密钥”,dog250解释恐怕有误。



首先,前两个随机数分别来自客户端和服务端,其目的是为了防止重放攻击,因此所有计算都要带上它俩,而非为了增加随机性。


退一步说,如果pms被猜到,引入前两个随机数来计算最终密钥也于事无补,因为握手阶段,协商的加密算法以及前两个随机数都是明文传递的,攻击者完全可以照图索骥推导出最终密钥。


答案应该是,本来可以让pms直接作为会话密钥,但pms可能在会话间重复(随机数嘛),且会话密钥需要常驻内存(增加了泄漏的风险)。一旦泄漏,使用该pms的所有会话都遭殃了。


因此ssl的采用如下结构,将会话密钥泄漏的影响面限制在单个会话:

pms -> ms(会话密钥)-> key(对称密钥)。
"->"表示带上前两个随机数,按一定规则进行一系列摘要运算,因此不可逆。

其中:
pms:pre master secret,会在使用过后立刻从内存中清除。(Pms should be deleted in memory. http://tools.ietf.org/html/rfc5246#section-8.1)
ms:master secret、会话密钥,会话的生命周期内常驻内存,并面向session。
key:最终的对称密钥,面向connection。

参考:http://www.cse.ohio-state.edu/~lai/651/8.SSL.ppt


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值