码迷,mamicode.com
首页 > Web开发 > 详细

认识HTTPS

时间:2015-08-04 23:19:57      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:https ssl tls

1、HTTPS简述

    HTTPS可以认为是HTTP + SSL/TLS。TLS是传输层加密协议,它的前身是SSL。

2、TLS运行原理

    简单的来说,TLS的运行过程是这样的:客户端和服务器端协商生成一个会话密钥,然后利用这个会话密钥对通信的内容进行加密传输。

    具体来讲,握手过程是这样的:

    (1) 客户端向服务器端发送一个请求,告诉服务器自己支持的SSL协议版本号、支持的加密算法等等,同时生成一个随机数一同发给服务器;

    (2) 服务器收到请求以后,发送一个响应,告诉客户端选择的SSL协议版本,确定加密算法,同时服务器端也产生一个随机数,也发给客户端,还发给客户端一个证书(证书里面包含公钥);

    (3) 客户端收到服务器端的响应之后就知道了SSL协议版本、加密算法等。客户端还有验证证书的有效性,如果验证通过,表示信任该证书,否则浏览器会予以提示。

    (4) 接着,客户端生成一个随机数,并用证书中的公钥对其进行加密,然后发给服务器,服务器收到之后用私钥解密就获得了这个随机数。

    (5) 服务器端作出响应,握手结束。

    至此,客户端和服务器端经过协商,双方都知道以下内容:加密算法、三个随机数。

    接下来,双方根据约定的加密方式一键三个随机数各自生成一个密钥,我们把它叫做“会话密钥”,以后双方通信就用这个“会话密钥”对通信的内容进行加密。

3、补充说明

    HTTPS一般使用的加密与HASH算法如下:

    非对称加密算法:RSA、DSA/DSS

    对称加密算法:AES、RC4、3DES

    HASH算法:MD5、SHA1、SHA256

    其中,非对称加密算法用于在握手过程中对第三次的随机数进行加密;对称加密算法用于对真正传输的数据进行加密;HASH算法用于验证数据的完整性。

    因为,私钥在服务器端,客户端使用服务器给它的公钥对第三次的随机数加密,然后发给服务器,这个过程是安全的,没有私钥的话很难得到这个随机数,无法得到这个随机数也就无法得到会话密钥。


参考:

http://www.2cto.com/Article/201407/315433.html

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

http://blog.jobbole.com/48369/

http://blog.csdn.net/tidus2005/article/details/2599980


本文出自 “十里稻花香” 博客,请务必保留此出处http://5880861.blog.51cto.com/5870861/1681621

认识HTTPS

标签:https ssl tls

原文地址:http://5880861.blog.51cto.com/5870861/1681621

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!