关于 HTTPS 的加密流程

这篇具有很好参考价值的文章主要介绍了关于 HTTPS 的加密流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP 与 HTTPS 的区别

其实 HTTPS 与 HTTP 一样都是应用层协议, HTTPS 只是在 HTTP 的基础上再加上了一个加密层.

为啥要对 HTTP 进行加密呢?
HTTP 协议内容都是按照文本格式明文传输的, 这就导致在传输过程中可能会被篡改. (明文传输的各种信息会被别人一览无余, 没有隐私)

曾经就发生过一个大事件 : “运营商劫持”.
就好比我现在进入官网下载一个官方软件, 点击下载后弹出的是其他软件的下载, 这过程就是我发送一个HTTP请求给服务器, 服务器返回一个带有下载链接的HTTP响应, 结果被运营商修改了响应里的下载链接, 这样我得到的就是换掉的链接了.

为啥运营商能劫持数据呢 ?
由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据报的内容, 并进行篡改.
其实不止运营商能得到用户与服务器交互的数据报, 黑客也可以.

HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全.

加密方式

网络传输中不再直接传输明文了, 而是加密之后的 “密文”.
加密的方式有很多, 但是整体可以分成两大类: 对称加密非对称加密

对称加密 :
只有一个密钥 key, 通过这个 key 可以将明文加密成密文, 同样的也可以用 key 将密文解密为明文.
对称加密的特点 : 计算起来比较快.

非对称加密 :
非对称加密要用到两个密钥, 一个叫做公钥(pub), 一个叫做私钥(pri). 公钥和私钥是配对的.
非对称加密的使用 :

通过私钥对明文加密, 变成密文, 再通过公钥对密文解密, 变成明文.
也可以反着来 : 通过公钥对明文加密, 变成密文, 再通过私钥对密文解密, 变成明文.

非对称加密缺点 : 运算速度非常慢,比对称加密要慢很多.

HTTPS 基本工作过程

注意 : 加密是针对 HTTP 的各种 header 和 body.

1. 仅使用对称密钥

关于 HTTPS 的加密流程
注意 : 以上交互的前提是服务器存储了客户端的 key.

但实际上服务器所要服务的客户端非常多, 不可能将客户端的 key 都存储下来, 而客户端也不可能都使用一个 key, 如果所有客户端都使用一个 key, 那黑客就直接知道 key 了, 可以对数据报进行修改.

那咋办呢 ?
我们可以通过客户端自己生成一个 key, 在与服务器进行交互时, 提前告诉服务器我的 key 是多少, 然后客户端和服务器就用 key 来对数据加密解密.

那客户端总不能明文传输 key 吧, 这时候就要用到 非对称密钥 来对 key 加密了.

2. 引入非对称密钥对 key 进行加密

首先明确目标 : 客户端要将 key 安全送达到服务器, 不被黑客拿到.

先是客户端随机自己生成了一个 key, 服务器自己则有一对非对称密钥.
具体加密过程如下图 :

关于 HTTPS 的加密流程

这样难道就真的安全吗? 黑客就没办法破解吗?

其实黑客可以通过欺骗手段来获取 key, 简称 “中间人攻击”.
原理如下 :
关于 HTTPS 的加密流程
中间人攻击的关键在于客户端信任公钥, 同时这也是破解中间人攻击的关键.

3. 引入证书, 破解中间人攻击

证书就好比人的身份证, 作为这个网站的身份标识. 搭建一个 HTTPS 网站要在CA机构先申请一个证书. (类似于去公安局办个身份证).

证书可以理解为一个对象, 这个对象包含了 :
服务器的 url, 证书的有效期, 颁布证书的机构, 服务器自己的公钥 pub, 签名等等.
注意, 签名前面的都是明文展示的, 签名是进行加密了的.
这个签名其实就是一个校验和, 证书颁布机构会针对所有属性计算一个校验和, 然后用机构自己的私钥对其进行加密.

注意 : 每个机构的非对称密钥都不一样, 每个机构的公钥都内置在操作系统中, 不需要去机构拿.

客户端访问服务器时就询问服务器公钥, 服务器就直接把证书发给客户端.
客户端拿到证书后, 首先就是对证书进行校验.

  1. 得到初始的签名 : 客户端使用系统内置的权威机构的公钥, 对证书中的加密的签名进行解密, 得到初始签名(sum1)
  2. 计算现在签名 : 客户端使用同样的算法计算证书中的各种属性, 得到sum2.
  3. 比较两个sun值是否相同, 如果相同则说明是未被篡改的数据(安全), 如果不同, 则说明证书被篡改了(不安全), 客户端的浏览器就报错.

注意 : 这里为啥黑客就不能破解呢?
黑客也是可以破解签名的, 但是黑客不能对签名进行加密, 黑客没有机构的私钥, 既然无法加密, 那自然无法伪造签名了, 就不能破解了.

其实上述这一套 :
对称加密 + 非对称加密 + 证书, 也是一个协议, 叫 SSL 或者 TLS .
HTTPS 也就等于 HTTP + SSL.文章来源地址https://www.toymoban.com/news/detail-456086.html

到了这里,关于关于 HTTPS 的加密流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTPS 加密解密大致流程

    HTTPS简介 在我们开始配置之前,让我们先了解一下HTTPS和它的重要性。 为什么选择HTTPS? 加密传输 :通过SSL/TLS协议,确保数据在传输过程中不被窃听。 认证身份 :确保 客户端与预期的服务器通信 ,防止中间人攻击。 数据完整性 :保证数据在传输过程中未被篡改。 彻底搞

    2024年04月25日
    浏览(40)
  • JavaWeb——HTTPS的加密流程

    目录 一、使用对称加密 1、定义 2、加密/解密过程  二、使用非对称加密 1、对称加密弱点 2、非对称加密过程 (1)、定义 (2)、加密/解密过程 三、使用证书加密 1、非对称加密弱点 2、使用证书加密过程 (1)、定义 (2)、加密/解密过程 只有一个密钥key,加密和解密都

    2024年02月13日
    浏览(25)
  • HTTPS的认证和加密流程,超详细!!

    1、服务器生成自己的 私钥A 和 公钥A 2、服务器将 公钥A 和服务器域名等相关信息,发送给认证机构 3、认证机构生成自己的 私钥B 和 公钥B ,并用自己的 私钥B 对服务器发送来的信息进行加密, 生成服务器A的证书 ,发送给服务器 4、认证机构将自己的 公钥B 发给的浏览器

    2024年02月13日
    浏览(29)
  • 【应用层协议】HTTPS的加密流程

    目录 一、认识HTTPS 二、密文 1、对称加密 2、非对称加密 三、HTTPS加密流程 1、建立连接 2、证书验证 3、密钥协商 4、数据传输 5、关闭连接 总结 在数字化时代,互联网已经成为我们生活和工作中不可或缺的一部分。然而,随着数据的不断增加,网络安全问题也日益凸显。为

    2024年02月07日
    浏览(30)
  • http和https的区别,以及https涉及到的加密过程

    一.http与https的介绍 http:超文本传输协议,是互联网应用最广泛的一种网络协议。设计的最初目的是为了提供一种发布和接收HTML页面的方法。是以明文的形式来传输的,所以就会存在一定的安全隐患(因为攻击者可以截取web服务器和网站相关的报文,就可以直接读懂其中的信

    2024年02月05日
    浏览(36)
  • 【Java EE】-HTTP请求构造以及HTTPS的加密流程

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【JavaEE】 分享 : 在满园弥漫的沉静的光芒之前,一个人更容易看到时间,并看到自己的身影。——史铁生《我与地坛》 主要内容 :构造http请求,不需要写代码直接发送http请求:地址栏输入地址,html中 img标签,scri

    2024年02月02日
    浏览(34)
  • HTTP 和 HTTPS(请求响应报文格式 + 请求方法 + 响应状态码 + HTTPS 加密流程 + Cookie 和 Session)

    HTTP 全称 “ 超文本传输协议 ”,是一种基于传输层 TCP 协议实现的应用非常广泛的 应用层协议 我们平时打开一个网站,就是通过 HTTP 协议来传输数据的 当我们在浏览器中访问一个 “ 网址 ”(URL),浏览器就会给这个 URL 的服务器发送一个 HTTP 请求,服务器返回一个 HTTP 响

    2023年04月19日
    浏览(34)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(35)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS的缺点 && HTTP如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(39)
  • HTTP代理与HTTPS代理在工作流程上有哪些区别

         HTTP代理和HTTPS代理都是常见的代理技术,可以实现隐藏客户端IP地址、突破网络封锁、加速网站访问、过滤网络内容等功能。本文将介绍HTTP代理和HTTPS代理在工作流程上的区别。 HTTP代理的工作流程 客户端向代理服务器发送HTTP请求      当客户端需要访问某个网站时,

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包