SSL介绍:
安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议
目前有三个版本:2、3、3.1,最常用的是第3版,是1995年发布的。
SSL协议的三个特性
① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。
② 鉴别:可选的客户端认证,和强制的服务器端认证。
③ 完整性:传送的消息包括消息完整性检查(使用MAC)。
SSL的位置
SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。
SSL的工作原理
握手协议(Handshake protocol)
记录协议(Record protocol)
警报协议(Alert protocol)
参看文档 :http://blog.csdn.net/u012643122/article/details/44025947 http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
DH (Diffie–Hellman 密钥交换协议)
概要: Diffie-Hellman算法是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法,它是一种建立秘钥的方法,而不是加密方法 !
原理:Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度
这种算法的关键是在这个式中
b=ai mod p, 0<=i<=p-1 (mod: 取余, 即ai / p 的余数)
如果知道a, i, p可以很方便的算出b的值,但是知道b, a, p的情况下想要算出i的值却非常难。
举例,以下是DH协议的方案:
离散对数: y = gx modp
1. Alice和Bob先对p 和g达成一致,而且公开出来。Eve(攻击者)也就知道它们的值了。
2. Alice取一个私密的整数a,不让任何人知道,发给Bob 计算结果:A=ga modp. Eve 也看到了A的值。
3. 类似,Bob 取一私密的整数b,发给Alice计算结果B=gb mod p.同样Eve也会看见传递的B是什么。
4. Alice 计算出S=B a mod p=(gb)a modp=gabmod p.
5. Bob 也能计算出S=Ab mod p=(ga)bmodp=gabmod p.
6. Alice 和 Bob 现在就拥有了一个共用的密钥S.
7. 虽然Eve看见了p,g, A and B, 但是鉴于计算离散对数的困难性,她无法知道a和b 的具体值。所以Eve就无从知晓密钥S 是什么了。
PS: 我相信不久的将来,随着量子计算机的发展,破解这种加密方式将不再是问题,任何一种依靠计算复杂度来保证数据安全性的加密方式都将会被淘汰,应运而生的将是更加先进可靠的加密方式。
请参考