HTTPS加密传输过程

HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPSHTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

知识储备

HTTP

HTTP是应用层协议,默认运行在80端口,是一种不安全的传输协议,经其传输的数据都是未加密的明文数据,可以被中间人攻击,获取到你的网络传输数据,这也就是尽量不要使用公共场所WIFI的原因。

HTTPS

HTTPS是应用层协议,默认运行在443端口,是一种安全的传输协议,通过在HTTP层与运输层的TCP直接加入一个加密/身份验证层来保证安全传输。

SSL

SSL安全套接层Secure Sockets Layer,位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:
SSL记录协议SSL Record Protocol:它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议SSL Handshake Protocol:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

TLS

TLS传输层安全性协议Transport Layer Security用于在两个通信应用程序之间提供保密性和数据完整性,其由TLS记录协议和TLS握手协议组成。TLS1.0即为SSL3.0的标准化版本,SSL最初由网景Netscape提出研发,在SSL3.0时由国际互联网工程任务组IETF进行了标准化并添加了少量机制,并更名为TLS1.0

对称加密

简单来说对称加密的加密密钥和解密密钥是相同的,对称加密的效率要比非对称加密高。

非对称加密

简单来说非对称加密的加密密钥与解密密钥是不同的,需要一把公钥与一把私钥,私钥不能被其他任何人知道,公钥则可以随意公开。公钥加密,私钥解密;私钥数字签名,公钥验证。

CA

由于公钥是放在服务器的,在建立连接的过程中将公钥传输到用户,但是如何避免中间人攻击,即在传输公钥的过程中避免劫持,于是引入第三方认证权威机构CA,大多数操作系统的CA证书是默认安装的,CA也拥有一个公钥和私钥。任何人都可以得到CA的证书,其包含公钥,用以验证它所签发的证书。CA为服务申请者颁发证书,在CA判明申请者的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别一个证书的真伪,他就用CA的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关CA签发的对用户的公钥的认证。

传输过程

  1. 首先TCP三次握手建立链接,这是数据传输基础,在此之上开始SSL
  2. 客户端首先发送Client Hello开始SSL通信,报文中包含客户端支持的SSL版本、随机值Random1、加密算法以及密钥长度等。
  3. 服务器发送Server Hello,和客户端一样,在报文中包含SSL版本、随机值Random2以及加密组件,此后服务端将证书也发送到客户端。
  4. 此时客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的HASH与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换。
  5. 客户端验证证书合法,然后生成一个随机值Random3,用公钥对Random3进行加密,生成Pre-Master Key,客户端以Client Key Exchange报文将Pre-Master Key发送到服务端,此后发送Change Cipher Spec报文表示此后数据传输进行加密传输。
  6. 服务端将Pre-Master Key用自己的私钥解密为Random3,服务端发送Change Cipher Spec报文表示此后数据传输进行加密传输。
  7. 此时客户端与服务端都拥有三个随机字符串,且Random3是密文传输的,是安全状态的,此时则可以使用这三个字符串进行对称加密传输。由于非对称加密慢,不能每次传输数据都进行非对称加密,所以使用非对称加密将密钥协商好然后使用对称加密进行数据传输。
  8. 此时便正常进行HTTP数据传输,但是由于SSL加密的作用,此时的HTTP传输便是安全的,此为HTTPS的传输过程,其中2356也被称为SSL四次握手。

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.cnblogs.com/yangtianle/p/11202574.html
https://www.cnblogs.com/liyulong1982/p/6106132.html
https://blog.csdn.net/lyztyycode/article/details/81259284
https://blog.csdn.net/lihuang319/article/details/79970774
https://blog.csdn.net/qq_32998153/article/details/80022489

HTTPS加密传输过程相关推荐

  1. HTTPS加密的过程你了解吗?

    1.HTTPS加密的过程 HTTPS是在HTTP的基础上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版.主要作用是: (1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数 ...

  2. HTTPS 的传输过程

    系列文章目录 如何使用代码来构造HTTP请求?_crazy_xieyi的博客-CSDN博客 HTTP协议中常见的状态码及其含义_crazy_xieyi的博客-CSDN博客 HTTP协议中的" ...

  3. HTTPS加密数据传输过程

    HTTPS加密过程 HTTPS采用对称加密和非对称加密的混合加密方式 1.加密方式 2.混合加密 3.HTTPS的数据传输的优缺点 HTTPS采用对称加密和非对称加密的混合加密方式 1.加密方式 数据 ...

  4. SiMayRAT:利用云文档HTTPS加密传输的远控家族

    近期,我们观察到SiMayRAT家族[l2] 在2022年4月有所活动SiMAyRAT是一个远控家族,攻击者通过邮件鱼叉钓鱼方式将病毒植入到受害者后,病毒通过从云端下载第二阶段的控制代码执行,从而达到 ...

  5. https加密解密过程详解

    要点: https协议对传输内容进行加密,具有更强的安全性,防止被抓包后解析出请求内容. https是建立在ssl之上的http协议. 服务器支持https协议必须安装一套数字证书,所谓数字证书就是一 ...

  6. HTTPS加密解密过程

    https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议.http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层 ...

  7. DUKPT IPEK KSNPOS机的加密传输过程

    DUKPT(Derived Unique Key Per Transaction)是被ANSI定义的一套密钥管理体系和算法,用于解决金融支付领域的信息安全传输中的密钥管理问题,应用于对称密钥加密MAC ...

  8. HTTPS加密通信过程原理

    目录 一.从网络层协议理解HTTPS 二.从密码学理解 三.加密 对称加密 非对称加密 1.客户端请求服务端,发送TLS版本,和加密套件,和第一个随机数 2.服务器收到请求后,向客户端发送生成的第二个 ...

  9. HTTPS加密过程和TLS证书验证

    HTTPS加密过程和TLS证书验证 HTTPS 是在 HTTP 和 TCP 之间建立了一个安全层,HTTP 与 TCP 通信的时候,必须先进过一个安全层,对数据包进行加密,然后将加密后的数据包传送给 ...

最新文章

  1. 米的建站日记(2014年12月18日)
  2. 深度学习入门笔记系列(一)——深度学习框架 tensorflow 的介绍与安装
  3. adb logcat 基本用法
  4. 不要62 HDU - 2089【数位dp】
  5. jQuery零基础入门——(三)层级选择器
  6. 熟悉的指标,多重的应用
  7. 我的世界服务器传送系统,我的世界多人服务器任何人都没权限了 不能回主城 不能传送 等等...
  8. 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析
  9. WCF系列教程之客户端异步调用服务
  10. 软件测试中测试用例的简单案例
  11. mysql 获得年月函数_mysql之日期函数
  12. visio 2010 激活方法
  13. ajax请求resource文件Access to XMLHttpRequest at 'file:'
  14. LeetCode 206. 反转链表(c语言实现)
  15. 最全架构设计实践方法论(一)
  16. salve mysql_mysql 同步实现, master-salve
  17. 溯源系统服务器,区块链溯源服务平台系统架构!
  18. Axure教程(B站宋老师)
  19. 导航系统设计专题(六)——松组合导航系统与紧组合导航系统
  20. 如何选择合适的网络自动化工具

热门文章

  1. Reddit程序员的酒后真言
  2. Laravel核心解读--ENV的加载和读取
  3. hive udaf_Hive自定义函数
  4. 问题解决 :浏览器默认请求favicon.ico图标
  5. 关于ElasticSearch整合SpringBoot
  6. 希尔排序(分而治之)
  7. dubbo 异步调用
  8. AngularJS 指令实践指南(二)
  9. 记一次MBR锁机病毒分析
  10. Hadoop JAVA 开发说明