https通信原理

HTTPS通信原理与实例分析 HTTPS通信原理与实例分析HTTPS简介HTTPS作用HTTPS服务器类型HTTPS通信原理与实例分析通信原理通信流程和实例分析加密算法概述对称加密非对称加密哈希算法数字签名 HTTPS简介 HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。HTTPS(全称:HyperText Transfer... 阅读详情

http简介

HTTP通信过程:

三大阶段:
建立连接阶段,tcp三次握手
数据传输阶段,http明文传输
释放连接阶段,tcp四次挥手
1.png

HTTP请求和响应的7个步骤:

2.png

HTTP三大弊端:

  • 被监听
    http通信都是明文,数据在客户端与服务器通信过程中,任何一点都可能被劫持
  • 被伪装
    http通信时,无法保证通行双方是合法的,通信方可能是伪装的。
  • 被篡改
    hacker中间篡改数据后,接收方并不知道数据已经被更改

几个概念

tls和ssl

3.png

https并非应用层的一种新协议,而是在http通信接口部分用SSL(Secure Socket Layer:安全套接字层)和TLS(Transport Layer Security:安全层传输协议)协议代替
SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
  TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。
  SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。
通常,http和TCP直接通信,当使用SSL时,先由http和SSL通信,再由SSL和TCP通信SSL是独立于http的协议,其他应用层的如SMTP何Telnet等协议都可以配合SSL进行使用

https拆成tcp/tls/http这三层来看,tcp handshake >> tls(ssl) handshake >> http request/response
tcp三次握手后,在tls协商加密算法,最后才通信

名词解析

4.png

秘钥:

公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:
加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。
解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。
注意,由公钥加密的内容,只能由私钥进行解密,也就是说,由公钥加密的内容,如果不知道私 钥,是无法解密的。
公钥密码体制的公钥和算法都是公开的(这是为什么叫公钥密码体制的原因),私钥是保密的。大家都以使用公钥进行加密,但是只有私钥的持有者才能解密。在实际的使用中,有需要的人会生成一对公钥和私钥,把公钥发布出去给别人使用,自己保留私钥。

证书:

由数字证书认证机构(CA:Certificate Authority)和其他相关机关颁发的公开密钥证书
处于客户端和服务器双方都可信赖的第三方机构立场,对通过申请的服务器公开密钥做数字签名,分配该公开密钥,将其与共钥证书绑定,然后服务器传给客户端,以进行公开密钥加密方式通信;
收到证书的客户端使用数字证书认证机构的公开密钥,对服务器证书的数字签名进行认证,然后明确2点:
①.认证服务器的公开密钥是真实有效的数字证书认证机构
②.服务器的公开密钥是指的信赖的
作用:
①.证明通信方的服务器是否规范
②.确认对方服务器背后运营的企业是否真实存在(拥有该功能的证书就是EV SSL证书:Extended Validation SSL Cetificate );特点:浏览器背景色是绿色的

https如何解决http的弊端:

  1. 所有信息都是加密传播,第三方无法窃听。
  2. 具有校验机制,一旦被篡改,通信双方会立刻发现。
  3. 配备身份证书,防止身份被冒充。

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
但是,这里有两个问题:

  1. 如何保证公钥不被篡改?
    解决方法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
  2. 公钥加密计算量太大,如何减少耗用的时间?
    解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

SSL/TLS

SSL/TLS握手过程可以分成两种类型:

  1. SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书。
  2. SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客户端身份进行验证。

单向认证:

5.png

单向认证流程:

  1. 客户端向服务端发送SSL协议版本号、客户端支持的加密算法种类、客户端生成的随机数等信息。

  2. 服务端给客户端返回SSL协议版本号、采取的支持加密算法种类、服务端生成的随机数等信息,同时也返回服务器端的数字证书,证书包含(公钥)
    实例:

  3. 客户端使用服务端返回的信息验证服务器的合法性,包括:
    证书是否过期
    发型服务器证书的CA是否可靠
    返回的公钥是否能正确解开返回证书中的数字签名
    服务器证书上的域名是否和服务器的实际域名相匹配
    验证通过后,将继续进行通信,否则,终止通信
    客户端如何验证数字证书呢?

  • 客户端(浏览器)内预置了根证书
  • CA下发给网站的证书都是一个证书链,也就是一层一层的证书,从根证书开始,到下级CA,一层一层,最后一层就是网站证书。
  • 证书的签名是通过签名算法和上级CA的私钥生成的
  • 浏览器需要用上级CA的公钥才能解密签名,并与生成的指纹对比
  • 证书链由多个证书一层一层组成的,除了最底层的网站证书的公钥是给用户加密报文外,其他层证书中的公钥均用于解密底层的证书指纹签名
  • 最高层的根证书是自签名的,也就是自己颁发给自己,所以它的公钥不仅用来解密下层的签名,也用来给自己的签名解密
  • 证书是否可靠? 一句话,只要根证书可靠,整个证书链就可靠,而根证书是否可靠要看这个根证书是否在操作系统或浏览器内置的可信根证书内,在的话就可信。
  1. 客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择
  2. 服务器端在客户端提供的加密方案中选择加密程度最高的加密方式。
  3. 服务器将选择好的加密方案通过明文方式返回给客户端
  4. 客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称 加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器
  5. 服务器收到客户端返回的加密信息后,使用自己的私钥进行解密,获取对称加密密钥。
    在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

证书链实例:
6.png

7.png

8.png

9.png

双向认证

10.png

双向认证流程(双方都有证书):

  1. 客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。

  2. 服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书

  3. 客户端使用服务端返回的信息验证服务器的合法性,包括:
    * 证书是否过期
    * 发型服务器证书的CA是否可靠
    * 返回的公钥是否能正确解开返回证书中的数字签名
    * 服务器证书上的域名是否和服务器的实际域名相匹配
    验证通过后,将继续进行通信,否则,终止通信

  4. 服务端要求客户端发送客户端的证书,客户端会将自己的证书发送至服务端

  5. 验证客户端的证书,通过验证后,会获得客户端的公钥

  6. 客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择

  7. 服务器端在客户端提供的加密方案中选择加密程度最高的加密方式

  8. 将加密方案通过使用之前获取到的公钥进行加密,返回给客户端

  9. 客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端

  10. 服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

证书验证链:
11.png

请关注我的订阅号

订阅号.png

HTTPS通信原理及编程实现 为了解决这个问题,可以使用。HTTPS(Hypertext Transfer Protocol Secure)是一种安全的通信协议,它在HTTP的基础上添加了SSL/TLS加密层,确保在网络上进行的数据传输是加密和安全的。HTTPS(Hypertext Transfer Protocol Secure)是一种安全的通信协议,它在HTTP的基础上添加了SSL/TLS加密层,确保在网络上进行的数据传输是加密和安全的。在HTTPS通信中,数字证书起到了重要的作用,用于验证服务器的身份和确保通信的安全性。 阅读详情

相关推荐

Verilog仿真必备:FSDB dump命令全解析与实战配置指南

本文深入解析了Verilog仿真中FSDB波形记录的核心命令与实战配置技巧。针对大规模SoC验证场景,详细介绍了如何通过$fsdbDumpvars、$fsdbDumpfile等命令实现信号精准捕获、文件体积控制和动态启停,并提供了智能化的分层dump策略,帮助工程师在保证调试信息完整性的同时,大幅提升验证效率并有效管理波形数据。

cnn8visionary的博客 347

HTTPS协议及其工作原理

123456

Boone的博客 7194

避坑指南:vue-print-nb打印隐藏元素与空白页的那些事儿

本文深入解析了使用vue-print-nb插件时,打印出现空白页及隐藏元素问题的根本原因与解决方案。核心在于理解浏览器打印原理,并通过CSS媒体查询精准控制样式。文章提供了从重置根元素高度、处理隐藏元素到控制分页的完整避坑指南,帮助开发者彻底解决打印样式难题。

weixin_29008691的博客 436

http通信过程

一、TCP连接二、浏览器向服务器发送请求命令例如:GET/sample/hello.jsp HTTP/1.1HTTP1.0:客户端每次请求都要建议一次独立的链接,在处理完本次请求后会主动释放链接。HTTP1.1:一次链接可以处理多个请求,请求可以重叠进行。请求命令:GET GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同...

waiting666的博客 1万+

Python 爬虫实战:龙虎榜机构买卖数据爬取与代码详解(附数据分析)

龙虎榜是证券市场中重要的市场信息之一,记录了当日大宗交易及机构买卖情况,包括机构名称、买卖方向、成交金额、成交股数、买入卖出价格等信息。通过分析龙虎榜数据,投资者可以更好地了解市场动向和机构投资者的行为,从而做出更准确的决策。本文将详细介绍如何使用 Python 编写爬虫程序,高效地抓取龙虎榜机构买卖数据,并进行数据分析。我们将从环境搭建、数据抓取、数据存储到数据分析等关键步骤逐一展开,帮助读者掌握完整的爬虫实战流程。

u014481728的博客 702

【STM32+K210项目】基于K210智能人脸识别+车牌识别系统(完整工程资料源码)

随着时代的进步和科技的迅猛发展,人们对居住安全的重视程度不断提升,对安全防范系统的需求也日益增强。在安防系统中,门禁系统占据着重要的位置。传统的门禁控制方式主要依靠钥匙、密码和门禁卡等,这些方式易于被破解和复制,安全性较低。然而,近年来,生物识别技术的迅速发展和成熟,为解决这一问题提供了新的方案。生物识别技术具备便携性、非易失性、不易遗忘以及难以盗用等优点,逐渐被引入到门禁系统中。传统的小区门禁系统往往依赖人工管理,存在一定的局限性,难以满足用户多样化的需求,也浪费了人力资源。

嵌入式技术开发 1万+

网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

大数据开发、JAVA开发、人工智能AI 1886

AD-Copilot 论文解读:把“大模型看图”升级为“对照检验”的工业异常检测助手

本文提出AD-Copilot,一个面向工业异常检测的视觉语言助手,通过视觉上下文比较解决现有方法的不足。针对工业场景中多模态大模型表现不佳的问题,作者指出核心原因在于缺乏工业数据和比较能力不足。为此,论文提出三个关键贡献:构建Chat-AD数据集,设计Comparison Encoder显式建模图像差异,以及采用多阶段训练策略。实验表明,该方法在MMAD基准上达到82.29%准确率,定位任务提升3.35倍,并展现出良好的泛化能力。消融实验验证了比较模块的有效性,表明其成功源于高质量比较数据与显式比较模块的协

blanokvaffy的博客 330

https原理和通信流程

了解HTTPS之前你还需要了解: 加密、证书、签名的原理:https://zhuanlan.zhihu.com/p/50046393 Http协议的不足 不验证身份,导致身份可能被伪装。 HTTP是不会对请求的双方进行身份验证的,服务器不会校验客户端的身份,谁都可以向服务器发送请求,任何人都的请求都会进行响应; 客户端也不会验证响应的数据是否是由自己请求的目标服务器所发出。 ...

疯一样的女子 2103

YOLO26涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLO26模型改进方法。该方法在标准softmax注意力机制中引入头部特定的sigmoid门控,通过增强注意力机制使模型更聚焦于关键信息。实验表明,该模块能显著提升模型性能,特别是在复杂背景和密集目标场景中,同时减少无关区域关注并提高检测精度。门控机制引入的非线性和稀疏性不仅提升了推理效率,还改善了训练稳定性,使模型能采用更大学习率并增强扩展性。此外,该方法有效缓解了"注意力下沉"现象,增强了模型对长距离目标的感知能力。

Ai缝合怪、助力小伙伴高效发论文 650

iOS安全和逆向系列教程 第18篇:iOS应用脱壳技术详解与实战

iOS应用脱壳技术详解与实战 摘要: 本文深入剖析了iOS应用脱壳技术,首先解释了加壳(如FairPlay DRM)与脱壳的基本概念及必要性。通过otool命令可以检测应用的加密状态。文章详细介绍了三种主流脱壳工具:经典dumpdecrypted工具的使用方法、现代化Clutch工具的安装配置以及基于Frida的高级脱壳方案frida-ios-dump。针对特殊情况,还提供了使用LLDB手动dump内存的技术细节,包括查找基地址、计算dump范围和内存读取等操作。最后介绍了修复Mach-O文件头的Pytho

一个自学不成材的程序员 710

计算机网络—— 一次HTTP通信的过程(七个步骤)

一次HTTP通信的过程 先放一张图,这个图上就基本说明了通信的过程,我觉得还是比较详细的。 文字说明过程如下 1. 建立TCP连接 Web浏览器首先要通过网络与Web服务器之间通过TCP建立连接,TCP与IP协议共同构建Internet HTTP协议是比TCP处于更高层的应用层协议,只有当低层协议建立练接之后才能进行更高层次的连接 TCP连接的端口号一般是80 2. Web浏览器向Web服务器发送请求行 建立TCP连接之后,Web浏览器会向Web服务器发送请求命令 3. Web浏览器向服务

Zzz5270的博客 6587

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

通俗的理解HTTPS 通信原理

通俗的理解HTTPS 通信原理 0x00 为什么要使用HTTPS HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。 HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。 HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站

box 763

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HTTP和HTTPS通信原理

一.HTTP通信原理 直接用一张图完美的解释 客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。 二.HTTPS实现原理 1.client向server发送请求https://baidu.com,然后连接到se...

芒果就是没有盲的博客 1372

HTTPS通信原理及SSL/TSL协议的作用

文章目录前言一、关于Http及两种加密手段1.为什么说HTTP不安全2.对称加密3.非对称加密二、HTTPS(HTTP Over SSL)一.HTTPS使用的加密方式二.SSL证书的作用数字证书CA机构三.SSL/TLS层思考 前言 HTTPS(HTTP over SSL)是HTTP协议的安全版。包含了对称加密、非对称加密、数字签名、数字证书等。 HTTP:为应用层协议,SSL:基于应用层之下传输层TCP协议之上的协议用于对消息进行加密 一、关于Http及两种加密手段 Http全称为(超文本传输协议.

as1043682467的博客 1507

简单介绍HTTPS 通信原理

这篇文章主要介绍了HTTPS 通信原理及详细介绍的相关资料,HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议,需要的朋友可以参考下 HTTPS 通信原理 Https是基于安全目的的Http通道,其安全基础由SSL层来保证。最初由netscape公司研发,主要提供了通讯双方的身份认证和加密通信方法。现在广泛应用于互联网上安全敏感...

weixin_44400506的博客 314

HTTP通信原理和HTTPS通信原理

      本博主参加字节跳动第一次面试的时候,发现自己对于网络协议这方面欠缺很严重,并且在信息安全课程中学到了部分数字证书的概念,故特意整理博客以加强自己对于部分协议体系的理解。 概念:        HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。HTTPS(全称:HyperText T...

寒冰小站 4929

HTTPS 通信原理及详细介绍

转:https://blog.youkuaiyun.com/GGxiaobai/article/details/53895644 HTTPS通信原理 HTTPS是基于安全目的的HTTP通道,其安全基础由SSL层来保证,最初由netscape公司研发,主要提供来通讯双方的身份认证和加密通讯方法,现在广泛应用于互联网上安全敏感通讯。 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电...

weixin_43090420的博客 313

Https通信原理

简介:HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的...

u012545728的博客 5448

HTTPS 通信原理

Http 协议明文通信是不安全的 Http 协议是明文通信,数据在通信链路上可能会被劫持或者篡改 既然数据存在被暴露的风险,我们想到的第一个方案可能就是对数据进行加密 对称加密 我们使用对称加密的方式来加密登录信息此时如果被劫持了的话,劫持者没有对称密匙,那么他就无法解密和篡改你的信息。但是由于对称密匙也是明文发布的,这个密匙如果也被劫持者劫持的话,那么劫持者还是可以窃取和篡改你传输的数据 出现这个问题的根源在于密匙暴露在了互联网中,当然这里可能有小伙伴想到就是将和服务端约定好固定的对称密匙,分别藏于.

weixin_48726650的博客 185

Https通信原理一探究竟

简介 HTTP HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是一个基于请求与响应,无状态的,应用层的协议;使用端口为80 HTTPS https相当于http+ssl/tls协议;https默认使用的端口为443。HTTPS简单来说就是一个加强版的HTTP,运行在SSL(Secure Socket Layer)或者TLS(TLS:Transport Layer Security)层上。SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密 特点: 内

lucky_love816的博客 890

Https通信原理解析

Https原理解析 Https简单介绍 ​ 众所周知,https就是http的升级版协议,他比http更加安全,但它是如何实现安全机制的呢?其实剖开去看无非就是https在传输过程中把数据加密了,http在传输过程中不进行加密,直接就是以明文转为二进制流的形式在网络上进行传播,但是https则是传输之前将数据进行一次加密,在读取数据的时候进行解密。 加密方式介绍 ​ 那么上边我们提到了加密解密,我们就要考虑的是如何进行加解密?如果区分常见的加密方式就是对称加密和非对称加密。 对称加密:加密和解密的双方使用

TankyZhang的博客 1112
上一篇: mysql锁总结
下一篇: cgi-fastcgi-fpm概念区别
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值