简单理解HTTPS

2023-10-30

HTTP:全名为“HyperText Transfer Protocol”,也就是“超文本传输协议”,是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息,默认工作在TCP协议的80端口。                                  HTTP协议以明文来传输消息,不使用加密,所以当攻击者截取了Web浏览器和网站服务器之间的传输报文,便可直接读取其中的内容。

HTTPS:全名为“Hypertext Transfer Protocol Secure超文本传输安全协议”,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,相较于HTTP协议,HTTPS更加安全。                          它的主要作用:

一是对数据进行加密,建立一个信息安全通道,来保证传输过程中的数据安全;

二是对网站服务器进行真实身份认证。

TCP三次握手

HTTPS在TCP协议中443端口工作,在TCP/IP协议中,TCP协议通过三次握手建立连接

 这里我们假设客户端开始时是关闭的。

第一次握手:

客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。

第二次握手:

服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。

第三次握手:

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1。

(TCP/IP协议详解可以去这里了解https://www.cnblogs.com/klb561/p/11485463.html

HTTPS的工作原理

一,通过加密来防止内容被窃听

对称加密就是加密和解密同用一个密钥。加密和解密都会用到密钥。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了。

非对称加密就是公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公开密钥。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。

HTTPS采用的是对称加密非对称加密结合的方式来加密。这种方式便是在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式。具体来说,发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”,这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信。

二,通过数字签名来防止报文被篡改

数字签名能确定消息确实是由发送方签名并发出来的,并且能确定消息的完整性,证明数据是否未被篡改过。

数字签名是由文本通过Hash函数生成消息摘要,再由信息摘要用发送者的私钥加密生成。

接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与上一步得到的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过。

三,通过数字证书解决通信方身份可能被伪装的问题

数字证书认证机构(CA,Certificate Authority)是被客户端与服务器双方信赖的。使用由数字认证机构和其相关机关颁发的公开密钥证书即可解决通信方身份可能被伪装的问题。

数字认证机构的业务流程
首先,服务器的运营人员向数字认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名。

然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,用来进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。

客户端在接收到证书后,使用数字认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。

认证机关的公开密钥必须安全的转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单理解HTTPS 的相关文章

随机推荐

  • awk与shell参数传递(或说变量传递)二三点

    awk与shell间参数 或说变量传递 是shell编程中常有的话题了 因为其中实际涉及到不少的知识点 比如包括 a 进程进通信 b awk参数形式 c shell命令解析 命令替换 等等 在此列举二三点例子 做为小结 以下主要分为二部分
  • 路由器工作原理

    定义 路由器 router 是互联网的枢纽 是连接英特网中各局域网 广域网的设备 它会根据信道的情况自动选择和设定路由 以最佳路径 按前后顺序发送数据 作用在OSI模型的第三层 提供了路由与转发两种重要机制 路由 路由器控制层面的工作 决定
  • 使用Python绘制余弦函数的可视化曲线

    使用Python绘制余弦函数的可视化曲线 余弦函数是一种重要的三角函数 其图像可以用来描述很多自然现象 在Python中 我们可以使用plot函数快速地绘制出余弦曲线的图像 首先 我们需要导入必要的库 import numpy as np
  • 如何在H264数据中获取PTS

    H264的ES原始数据一般是以NAL Network Abstract Layer 的格式存在 可以直接用于文件存储和网络传输 每一个NALU Network Abstract Layer Unit 数据 是由数据头 RBSP数据组成 首先
  • 计算1~100之间所有整数的和

    sum 0 for i in range 1 101 sum sum i print sum 5050 sum 0 i 1 while i lt 100 sum sum i i i 1 print sum 5050
  • 在VBA中写SQL语句的注意事项

    最近使用VBA连接MySQL数据库比较多 总结出一些书写方面的注意事项 分享出来 希望能给大家一些提示 同时也给自己做个备忘 1 单引号 双引号 在标准SQL语句中 字符串使用的是单引号 但是MySQL中 单引号和双引号都适用 平时使用时也
  • Python学习第七篇:sys标准库

    Python学习第七篇 sys标准库 活动地址 CSDN21天学习挑战赛 Python的sys模块提供访问由解释器使用或维护的变量的接口 并提供了一些函数用来和解释器进行交互 操控Python的运行时环境 要进行使用 直接导入即可 impo
  • Spring中ApplicationListener事件监听机制详解

    1 概述 Spring中事件监听 也有说法叫事件通知 机制 其实本质是观察者模式的应用 当某个事件发生时 其会被广播出去 监听该实践的listener就会被触发然后执行响应的动作 该模式可良好应用于程序解耦 类似消息的发布订阅 它的事件监听
  • 为什么绝对收敛级数具有可交换性+为什么一般项级数不能使用比较判别法/等价判别法?

    绝对收敛 可以认为是级数某种 本质上 是收敛的 即其正项和负项的和分别是收敛的 而条件收敛 往往是正项负项的和不收敛 因为在级数中的排列导致互相抵消 所以 看起来 收敛了 数列收敛 也就是数列的前N项和的极限存在 对于正项数列 在前N项改变
  • 标签的正确使用

    原文 http book csdn net bookfiles 502 10050217296 shtml 7 7 图片 标签 7 7 1
  • LTC2380-24使用记录

    CNV脉冲时间 至少保持20ns 触发转换之后 标志位忙 此期间 芯片在转换 最长花掉392ns 20210115 转换系数 FS 5 0 6uV 10 2 24 时钟的上升沿输出数据 高位先输出 20210119 数据处理问题 高精度24
  • 移植linux开源软件到android系统

    例子 vlc android vlc android jni 目录 写连接vlc core 的jni 代码 vlc目录 configure host arm linux androideabi 生成linux Makefile 后面的编译和
  • 深入理解Python中的GIL(全局解释器锁)

    深入理解Python中的GIL 全局解释器锁 一 GIL是什么 GIL 又称全局解释器锁 作用就是限制多线程同时执行 保证同一时间内只有一个线程在执行 线程非独立的 所以同一进程里线程是数据共享 当各个线程访问数据资源时会出现 竞争 状态
  • AWK用户自定义函数

    函数是程序的基本组成部分 AWK允许我们定义自己的函数 一个大项目可以分为多个函数并且每个函数可以写 独立测试 它提供了可重用性的代码 下面给出的是用户自定义函数的一般格式为 function function name argument1
  • Android开发中onConfigurationChanged()不起作用

    很多开发者 在开发中很可能遇到的这样的问题 在Activity中重写了onConfigurationChanged 但是该函数就是不执行 这种问题的解决方式一般是没有在AndroidManifest中添加configuration的标签 可
  • 【模型评估】ROC(Receiver operating characteristic)与 AUC

    前面 我们提到了混淆矩阵 以及根据混淆矩阵进一步计算得到的敏感度 召回率 特异度 精确度 准确度 F1 Score等等 那他们的前提都是要首先确定一个截断阈值 模型评估 混淆矩阵 confusion matrix 之 TP FP TN FN
  • 操作系统引论和进程管理部分习题

    一 单选题 1 操作系统是一种 A 通用软件 B 系统软件 C 应用软件 D 软件包 正确答案 B 2 操作系统的 管理部分负责对进程进行调度 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案 D 3 若把操作系统看作计算机系统资
  • Python高级用法总结—(列表推导式,迭代器,生成器,装饰器)

    原文地址 Python高级用法总结 列表推导式 迭代器 生成器 装饰器 Python高级用法总结 列表推导式 迭代器 生成器 装饰器 列表推导式 list comprehensions 场景1 将一个三维列表中所有一维数据为a的元素合并 组
  • Nature:为什么人工智能需要理解因果?

    转自 集智俱乐部 作者 Neil Savage 导语 为什么药物只对某些人有效 而对另一些人无效 为什么 ChatGPT 会产生违背常识的答案 机器学习的发展似乎遇到了障碍 其中症结或许在于 相关性不等于因果性 近日发表在 Nature 的
  • 简单理解HTTPS

    HTTP 全名为 HyperText Transfer Protocol 也就是 超文本传输协议 是一种用于分布式 协作式和超媒体信息系统的应用层协议 简单来说就是一种发布和接收 HTML 页面的方法 被用于在 Web 浏览器和网站服务器之