关于 HTTPS 的加密流程

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 关于 HTTPS 的加密流程

HTTP 与 HTTPS 的区别


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


为啥要对 HTTP 进行加密呢?

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


曾经就发生过一个大事件 : “运营商劫持”.

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


为啥运营商能劫持数据呢 ?

由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器, 交换机等), 那么运营商的网络设备就可以解析出你传输的数据报的内容, 并进行篡改.

其实不止运营商能得到用户与服务器交互的数据报, 黑客也可以.


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


加密方式


网络传输中不再直接传输明文了, 而是加密之后的 “密文”.

加密的方式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密


对称加密 :

只有一个密钥 key, 通过这个 key 可以将明文加密成密文, 同样的也可以用 key 将密文解密为明文.

对称加密的特点 : 计算起来比较快.


非对称加密 :

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

非对称加密的使用 :


通过私钥对明文加密, 变成密文, 再通过公钥对密文解密, 变成明文.

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


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


HTTPS 基本工作过程


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


1. 仅使用对称密钥

6b87330aff7b4be480bc942786859d62.png


注意 : 以上交互的前提是服务器存储了客户端的 key.


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


那咋办呢 ?

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


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


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


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


先是客户端随机自己生成了一个 key, 服务器自己则有一对非对称密钥.

具体加密过程如下图 :


6c6e93e15a024566b4a697185a58a25e.png


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


其实黑客可以通过欺骗手段来获取 key, 简称 “中间人攻击”.

原理如下 :

8679799bbbdb43f2b10536d829aef5cf.png


中间人攻击的关键在于客户端信任公钥, 同时这也是破解中间人攻击的关键.


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


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


证书可以理解为一个对象, 这个对象包含了 :

服务器的 url, 证书的有效期, 颁布证书的机构, 服务器自己的公钥 pub, 签名等等.

注意, 签名前面的都是明文展示的, 签名是进行加密了的.

这个签名其实就是一个校验和, 证书颁布机构会针对所有属性计算一个校验和, 然后用机构自己的私钥对其进行加密.


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


客户端访问服务器时就询问服务器公钥, 服务器就直接把证书发给客户端.

客户端拿到证书后, 首先就是对证书进行校验.


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


注意 : 这里为啥黑客就不能破解呢?

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


其实上述这一套 :

对称加密 + 非对称加密 + 证书, 也是一个协议, 叫 SSL 或者 TLS .

HTTPS 也就等于 HTTP + SSL.


相关文章
|
3天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
1月前
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
1月前
|
域名解析 算法 安全
免费申请https加密全攻略
访问JoySSL官网注册账号,申请免费SSL证书。选择证书类型,填写域名信息,生成CSR文件,验证域名所有权。下载并部署证书至服务器,测试HTTPS连接。注意定期续期,确保兼容性和安全性。如有问题,可联系JoySSL客服。
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
42 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
3月前
|
安全 网络安全 数据安全/隐私保护
HTTPS中的加密算法
HTTPS中的加密算法
|
2月前
|
安全 网络协议 网络安全
【HTTPS】对称加密和非对称加密
【HTTPS】对称加密和非对称加密
46 0
|
22天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
23天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
45 10
|
25天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
53 10
|
25天前
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的知识分享
随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞的概念、类型和防范措施,以及加密技术的原理和应用。同时,强调提高个人和企业的安全意识对于防范网络攻击的重要性。