SSL介绍:html
安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。web
SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,全部主要的浏览器都支持SSL协议算法
目前有三个版本:2、3、3.1,最经常使用的是第3版,是1995年发布的。浏览器
SSL协议的三个特性安全
① 保密:在握手协议中定义了会话密钥后,全部的消息都被加密。服务器
② 鉴别:可选的客户端认证,和强制的服务器端认证。加密
③ 完整性:传送的消息包括消息完整性检查(使用MAC)。spa
SSL的位置.net
SSL介于应用层和TCP层之间。应用层数据再也不直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增长本身的SSL头。htm
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: 我相信不久的未来,随着量子计算机的发展,破解这种加密方式将再也不是问题,任何一种依靠计算复杂度来保证数据安全性的加密方式都将会被淘汰,应运而生的将是更加先进可靠的加密方式。
请参考