IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTPS基础 -> 正文阅读

[网络协议]HTTPS基础

HTTPS

HTTPS = HTTP + 加密 + 认证 + 完整性保护

HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL(安全套接层)和TLS(安全传输层协议)协议代替而已。
在这里插入图片描述

HTTP的不足:
  • 通信使用明文(不加密),内容可能被窃听
    • 即使经过加密,通信内容也会被窥视,只是无法破解报文信息的含义
    • 通信加密,建立通信安全线路(SSL+TLS)
    • 内容加密,对报文主体进行加密
  • 不验证通信方的身份,可能遭遇伪装
    • 伪装的Web服务器
    • 伪装的客户端
    • 无法确定对方是否具有访问权限
    • 无法判断请求来自何方、出自谁手
    • 对请求照单全收,无法阻止Dos攻击
  • 无法证明报文的完整性,有可能遭到篡改
SSL

安全套接层 (Secure Scoket Layer),提供认证、加密、摘要功能。

加密技术

共享密钥加密
  • 加密和解密共用一把密钥的方式,也叫作对称密钥加密。

  • 存在的问题:此方式必须要将密钥发给对方,但密钥怎么安全传输就是问题,密钥能安全传输,那数据也就能安全传输。

公开密钥加密
  • 使用一对非对称的密钥,发送密文的一方使用对方的公开密钥进行加密,对方收到加密信息后,再使用自己的私有秘钥进行解密
  • 存在的问题:1)加密方式复杂,效率低。2)无法证明公开密钥本身的真实性(CA解决)
HTTPS加密机制

? HTTPS采用混合加密机制。

  1. 使用公开密钥加密方式安全的交换在稍后的共享密钥加密中要使用的密钥
  2. 确保交换的密钥是安全的前提下,使用共享密钥加密方式进行通信

数字证书认证机构

  1. 服务器把自己的公开密钥登录至数字证书认证机构
  2. 数字证书认证机构用自己的私钥向服务器的公开密钥部署数字签名并颁发公钥证书
  3. 客户端拿到服务器的公钥证书后,使用数字机构的公开密钥(事先植入浏览器中),验证公钥证书上的数字签名,以确认服务器的公开密钥的真实性
  4. 使用服务器的公开密钥对报文加密后发送
  5. 服务器用私有密钥对报文进行解密

HTTPS的安全通信机制

步骤1. 客户端发送 Client Hello 报文开始 SSL 通信。报文包含客户端支持的SSL的版本,加密组件列表(加密算法、密钥长度等)。

步骤2. 服务器支持 SSL 通信时,会以 Server Hello 报文作为应答,报文包含的内容与客户端一样,只是加密组件内容是从客户端加密组件中筛选出来的。

步骤3. 服务器发送 Certificate 报文。报文中包含公开密钥证书。

步骤4. 最后服务器发送 Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。

步骤5. SSL 第一次握手结束之后,客户端以 Client Key Exchange 报文作为应答。报文中包含通信加密中使用的一种被称为Pre-master secret 的随机密码串。该报文使用步骤3中的公开密钥进行加密。

步骤6. 客户端继续发送 Change Cipher Spec 报文。该报文提示服务器,在此报文之后的通信会采用Pre-master secret的密钥加密。

步骤7. 客户端发送 Finished 报文。该报文包含连接至今全部报文整体校验值。这次握手是否成功,要服务器是否正确解密该报文做为评判标准。

步骤8. 服务器同样发送 Change Cipher Spec 报文。

步骤9. 服务器同样发送 Finished 报文。

步骤10. 服务器和客户端的 Finished 报文交换完毕之后,SSL连接就算建立完成。

步骤11. 应用层协议通信,即发送HTTP请求。

步骤12. 最后由客户端发送 close_notify 报文断开连接。

步骤13. 断开 TCP 连接。
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:25:33  更:2022-01-29 23:26:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:53:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码