认识HTTPS

简介:

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


本文转自   手不要乱摸  51CTO博客,原文链接:http://blog.51cto.com/5880861/1681621
相关文章
|
7月前
|
安全 数据安全/隐私保护
HTTPS
HTTPS
77 0
|
4月前
|
安全 Java 网络安全
https:邮递员
https:邮递员
20 3
|
10月前
|
安全 算法 网络协议
HTTPS在什么场景是不安全的?
HTTPS在什么场景是不安全的?
118 1
|
9月前
|
Java 网络安全 数据安全/隐私保护
一篇文章让您了解HTTPS
一篇文章让您了解HTTPS
52 1
|
安全 算法 网络协议
|
算法 安全 网络协议
浅谈HTTPS🔐
浅谈HTTPS🔐
219 0
浅谈HTTPS🔐
|
Web App开发 安全 算法
Why | Https 为什么是安全的?(上)
Why | Https 为什么是安全的?(上)
Why | Https 为什么是安全的?(上)
|
Web App开发 缓存 算法
WHY |HTTPS 为什么是安全的 ? (下)
WHY |HTTPS 为什么是安全的 ? (下)
WHY |HTTPS 为什么是安全的 ? (下)
|
算法 安全 网络协议
这 HTTPS,真滴牛逼!
今天这一篇「从理论再到实战抓包」介绍 ECDHE 算法。
这 HTTPS,真滴牛逼!
|
存储 开发框架 安全
2020年了,再不会Https就老了
合格的web后端程序员,除搬砖技能,还必须会给各种web服务器启用Https,本文结合ASP.NET Core部署模型聊一聊启用Https的方式。
2020年了,再不会Https就老了