HTTPS工作流程浅谈
2019-06-17 22:06
190 查看
https ,就是Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议,其实就是数据加密后的http协议,在Http底层加入了SSL,安全基础为SSL,因此加密的详细内容就需要SSL,使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)
https与http两者之间的差异在于
- http为明文传输,攻击者一旦截取Web浏览器与网站服务器之间的传输报文,即可立刻获取报文中的所有显式信息,比如用户个人信息等.不适合传输敏感信息的传输,而https则是具有安全性的ssl加密传输协议
- http与https连接方式不一致,端口也不一样,前者是80端口,后者为443端口
- http连接简单,无状态 ,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等,主要提供
- 认证用户与服务器,确保数据 在正确的用户以及服务器之间传输
- 数据完整性的维护
- 传输数据的加密
正常第一次访问网站时候的Https的工作流程 ,如有不对的地方望大神们指点小弟一下
- 客户端向服务器发送一个请求,服务端收到请求,将已有的公钥以及其他能作为认证的信息返回给客户端
- 客户端信息后开始认证,也就是对服务器上的证书进行一系列认证,认证通过,使用服务器传输的公钥进行加密,加密的内容作为后期两端会话的秘钥,将加密的内容发送给服务器
- 服务器使用私钥对加密的内容进行解密,将解密后的信息作为对称加密的秘钥 , 使用该秘钥对数据进行加密返回客户端
- 客户端 使用对称加密的秘钥进行数据解密,获取服务端返回的信息 ,此时两端完成正确的连接,后续客户端与服务端使用会话秘钥进行数据加解密
对称秘钥与非对称秘钥
- 对称加密算法: 数据加解密使用同一个秘钥
- 非对称加密算法 : https的加密算法即为非对称加密算法,加密使用公钥加密,公钥是公开的,而解密使用私钥进行解密,私钥为服务端所有
上个图吧 ,清晰一点
下面几种情况会导致证书认证失败
- 证书已过期
- 发行服务器证书的CA 无效
- 服务器证书上的域名和服务器的实际域名不相符
- 发行者证书的公钥无法正确解开服务器证书的“发行者的数字签名”
相关文章推荐
- HTTPS的原理及工作流程
- 浅谈SpringMVC之架构与工作流程
- Flask源码解读 <1> --- 浅谈Flask基本工作流程
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- 浅谈SpringMVC工作流程
- 浅谈SpringMVC之架构与工作流程
- SSL协议详解——SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- 浅谈服务器被黑后的检查工作流程 推荐
- 浅谈SpringMVC工作流程
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- 浅谈SpringMVC之架构与工作流程
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- https的工作流程
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- 浅谈SpringMVC之架构与工作流程
- 一眼看懂https的工作流程
- HTTPS的工作流程的理解
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
- Android 浅谈Sensor工作流程(一)