Https的交互流程

详细讲解http及进阶https的交互流程 虽然 HTTP 和 HTTPS 都是用于网络通信的协议,但 HTTPS 提供了额外的安全层,对于涉及敏感信息(如登录凭据、个人资料等)的网站来说至关重要。随着网络安全意识的提高,越来越多的网站开始采用 HTTPS 来保护用户数据HTTP 协议本身并不直接涉及握手或挥手的过程,因为这些概念通常与 TCP(传输控制协议)相关联。TCP 是一种面向连接的、可靠的传输层协议,它提供了端到端的通信服务。HTTP 请求和响应都是通过 TCP 连接来传输的。 阅读详情

先理解几个概念
对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等,示意图如下:
20080419173658592.png

非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等,示意图如下:
20080419173659971.png

HTTPS 服务端和客户端交互流程
①客户端的浏览器向服务器传送客户端SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。
②服务器向客户端传送SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。
③客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
④用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后传给服务器。
⑤服务器用私钥解密“对称密码”(此处的公钥和私钥是相互关联的,公钥加密的数据只能用私钥解密,私钥只在服务器端保留。然后用其作为服务器和客户端的“通话密码”加解密通讯。同时在SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
⑥客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑤中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
⑦服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑤中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。

⑧SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

一图胜千言,先上图
HTTPS流程 (1).png

注意问题

(1)请注意第2步时,当服务器给客户端返回自己的证书时,证书包含三部分内容,公钥、名称、数字签名等信息;注意数字签名是加密的,数字签名是用颁发机构的私钥对本证书的公钥,名称以及其他信息做hash散列加密而成的,所以客户端需要解密数字签名来验证该证书是否是合法可靠的,那怎么解密呢,客户端浏览器会找到该证书的根证书颁发机构,然后在本机上的证书管理器里寻找 那些受信任的根证书颁发机构列表是否有该证书的根证书颁发机构,如果有,则用该根证书的公钥解密服务器下发的证书
a,如果不能正常解密,则服务器下发的证书则被认为是伪造的,浏览器弹出提示框
b,如果能正常解密,则获取到公钥,名称,数字签名信息跟本身的公钥等其他信息比对一下,确认公钥没有被篡改,如果公钥不一致,则依然被认为是不可信的。 因此客户端验证服务器的合法性取决于公钥,而公钥的合法性取决于ca证书颁发机构的合法性,这里会形成一个信任链,而终点则是CA根证书,根证书是CA机构自己办法给自己的,根证书是一个特殊的数字证书,公钥是公开的,而私钥是被CA机构保存在硬件中的,所以证书的安全性取决于你对该CA机构的信任,反过来说,加入CA机构的密钥被窃取,那么该CA机构颁发的所有证书将会存在灾难性安全问题;
就像你验证身份证是否真实,肯定去公安局验证,那么谁来保证公安局是合法可靠的呢,没人能保证,公安局自己生命自己是合法可靠的,就这么简单
(2)ok,上边扯了那么多,无为就为了一个目的,客户端根据服务器下发的证书验证了服务器是真实可靠的,然后进入第3步,客户端生成一个密钥,就是对称加密算法的密钥用于加密后续的数据传输

总结一下

https传输在建立连接时使用的是非对称加密算法,一旦连接建立完成,有后续的通讯则使用了对称加密算法,这样做的好处是有利于数据传输效率,众所周知非对称加密算法的性能很差劲,你懂得。

谢谢

^_^

HTTPS产生的原因以及交互的完整流程 一、产生的原因 HTTP是一个超文本传输的协议,它用于传输客户端与服务器端的数据,但是HTTP存在三个问题,传输过程中内容很容易被窃取;不能对传输对方的身份进行效验,会有伪装的可能;没有办法保证报文的完整性,内容和容易被篡改。所以就产生了HTTPS来解决这些问题。二、HTTPS在HTTP基础上进行的升级 对于传输过程中内容很容易被窃取的问题,HTTPS选择进行加密的方式保护数据;对于不能对传输对方的身份进行效验,会有伪装的可能的问题,HTTPS利用证书来确定对方的身份;对于没 阅读详情

相关推荐

【网络协议】【HTTPS】精讲HTTPS协议通信全过程,图解超赞超详细!!!

想掌握HTTPS通信原理,看完这篇文章就够了!结合wireshark抓包实战分析,图解超赞超详细!!!

风云说通信 1699

Https:深入浅出HTTPS的交互过程。

说到HTTPS,就需要知道HTTP。我们知道这两个都是应用层方面的协议,HTTP是无状态的,因为他的报文是明文,很容易被人截取后篡改。也就是说,他是不安全的。 然而在我们主机与目标服务器进行信息交互的过程中,不可避免地会涉及到支付、登录后等进行的一系列需要保密和其他的相关操作信息。于是出现了HTTPS协议。

孤芳不自赏 6576

《工程测量学》笔记/期末复习资料

《工程测量学》笔记/期末复习资料。

@HNUSTer的博客 5559

https的交互过程

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                此为博主(yjclsx

aabbyyz的博客 2299

光谱特征选择之模拟退火算法SA

光谱特征选择之模拟退火算法SA。

weixin_42621095的博客 901

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

泛红尘的博客 2996

HTTPS过程以及详细案例

1.HTTPS的过程    1.客户端向服务端发送请求,客户端主要向服务器提供以下信息: 支持的协议版本,比如TLS 1.0版。 一个客户端生成的随机数,稍后用于生成"对话密钥"。 支持的加密方法,比如RSA公钥加密。 支持的压缩方法。 2.服务器端收到请求后,向客户端做出回应,回应的内容包括: 确认使用的加密通信协议版本,比如TLS 1.0版本。...

weixin_30252709的博客 878

【八股】JUC并发编程篇

👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。

qq_44768318的博客 551

图文详解HTTPS协议通信全过程,结合抓包实战分析,带你一次看透HTTPS!零基础入门到精通,收藏这一篇就够了

HTTPS 被称为 HTTP Over SSL (基于SSL加密的HTTP),这里的SSL (Secure Socket Layer) 被称为安全套接层,它是一种加密协议,不仅可应用于HTTP协议、还可应用于POP3协议、SMTP协议、VPN等。TLS (Transport Layer Security) 被称为传输层安全,TLS相对于SSL 3.0版本做了些修改和功能增强,相当于SSL的升级版本,所以有时也一起统称为 SSL,接入来本文若不明显强调,SSL就默认表示SSL/TLS。我们可以用公式。

leah126的博客 5万+

(十二)深入理解蓝牙BLE之“移植Bluez 5.18源码到嵌入式平台”

在某嵌入式平台进行蓝牙开发,发现上面居然没有btmon,hciattach,hcitool等蓝牙调试工具,无奈之下,只好移植bluez协议栈到目标嵌入式平台,建议移植5.18版本(最新的5.54版本居然hcitool等工具不是默认编译的,需要修改Makefile才可以)。 看到很多讲解移植过程的文章都是需要积分的,觉得写一篇免积分的文章还是有些意义的,欢迎同行来交流。 移植环境:Linux ubuntu 目标平台:sigmastar 星宸科技 配置交叉编译工具链:export PATH=$PATH:

2964

使用 Python 爬取 Wikipedia 数据:抓取百科条目及其内容

维基百科的 API 提供了一些方便的接口,通过这些接口,我们可以轻松获取到维基百科的条目、类别、图片和其他相关信息。维基百科的 API 主要是基于 HTTP 请求的,通过向特定的 URL 发送 GET 请求来获取信息。:获取指定条目的内容。在本博客中,我们介绍了如何使用 Python 爬取维基百科的条目数据。通过使用 Wikipedia API 和网页抓取技术,我们能够高效地获取条目内容,并将其存储和分析。希望本篇教程能帮助你深入理解如何抓取和处理维基百科的数据。

2201_76125261的博客 475

浅谈HTTPS中客户端与服务端的交互流程

在http传输协议中,客户端和服务端在发送和接收数据的时候不会给数据做加解密操作,因此数据都是以明文的方式传输。因此为了解决HTTP的安全性问题,出现了HTTPS,其在HTTP的基础上利用SSL/TLS协议对数据进行加密后再传输,保障了数据传输过程的安全。

ww_frozenTear的博客 1726

Python GUI编程:视频播放器(opencv、tkinter、PIL、ffpyplayer、threading)

用了几天做了一个视频播放器,搞了几个版本,开始想的是运用cv2模块把视频转化成一张张图片,然后再用ffpyplayer模块下的相关类来播放视频。但是,结果画面和视频的音频播放不同步(原因是cv2将转换得到的图片展示到tk上canvas,花费的时间多于每张图片应该展示的时间[1/fps])。后面看到ffpyplayer这个模块官网的介绍,发现这个模块可以得到视频播放时的图片,只不过这个图片是一个对象,我对这个不是很了解,到网上找了很久,终于找到了一篇文章,说可以利用PIL模块下的相关类,把上述这个对象转化成。

坚持不懈的大白的博客 3407

HTTPS交互流程解析

HTTPS浏览器和服务端交互流程 废话少说,上图。Just Show Photo. TCP+TLS 的WireShark过程介绍 1.TLS介绍 [TLS1.2为模板] tls的各个版本的区别,本文不过多的讨论。 只是为了让大家了解tls的整个加密流程。 ietf的论文 https://tools.ietf.org/html/rfc5246#section-7.3 如下图:TLS的交互流程比较简单,只需要进行交互的生活 进行两次单独的握手操作即可。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保

weixin_47596136的博客 1972

【VTKExamples::PolyData】第十六期 GradientFilter

本文分享VTK样例GradientFilter,并解析接口vtkGradientFilter & vtkAssignAttribute,希望对各位小伙伴有所帮助!

qq_40041064的博客 319

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Https通信原理及交互流程

这个总结得比较通俗易懂,适合入门级的学习者,这个也只是https的单向认证,对于安全性要求比较高可能会使用双向认证,比如说金融行业,银行手机APP等。​​单向认证只是客户端还有自己的一套公私钥对,然后客户端会将自己的公钥传送给服务器端。 我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决...

小丑鱼的专栏 1481

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

https交互流程

qq_21794917的博客 1472

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HTTPS协议、编码、交互流程以及SSL介绍

本文目录1、HTTPS科普2、CA和x509指的是什么?3、 对称密钥算法与非对称密钥算法3.1 对称密钥算法3.2 非对称秘钥算法3.3 HASH算法4、https流程4.1 https组成4.2 https交互流程5、SSL在互联网模型中的位置 按照网上的参考,根据自己的理解思维进行整理,持续更新。 1、HTTPS科普 HTTPS科普扫盲帖 讲的比较通俗易懂,参考着先看下。 2、CA和x50...

BiigPanda的博客 2万+

Https交互流程《转》

最经看了一些关于https的东西,比较乱,现在做个总结(不一定正确,而且很多细节没挖掘,只是目前的一个粗浅认识) Https流程图 从这个图我们可以看出: 由于浏览器和服务器之间对数据传输进行了对称加密,从而保证了数据的安全性,但是现在有一个问题,如何保证浏览器生成的随机数(对称加密的密钥)能安全的传递给服务器端? 如果这把密钥被第三方窃取,那么浏览器和服务器之间传递的数据就能被轻而易举的解密...

刨根问底,挖到祖坟 310

[面试系列]HTTPS交互流程

转载自:http://diaocow.iteye.com/blog/1743273 以下是原文内容: 最经看了一些关于https的东西,比较乱,现在做个总结(不一定正确,而且很多细节没挖掘,只是目前的一个粗浅认识)  Https流程图  从这个图我们可以看出:  由于浏览器和服务器之间对数据传输进行了对称加密,从而保证了数据的安全性,但是现在有一个问题,如何保证浏览器

Alf的专栏 1464

浅析HTTPS交互流程

加密方式的演进 缺点:数据没有加密,很容易泄漏信息。 对称加密 简介:加密和解密使用同一个密钥 缺点:k 和 加密算法都容易被黑客获取到,从而获取解密出数据。 非对称加密 简介:非对称加密之所以不对称,指的就是加密用一个密钥,而解密的时候用的是另外一个密钥。 加密 f(pk,data) = Y => 解密 f(sk,Y) = data 加密 f(sk,data) = X => 解密 f(pk,X) = data ...

blue5blue的博客 259

面试题:Https通信原理及交互流程

这个总结得比较通俗易懂,适合入门级的学习者,这个也只是https的单向认证,对于安全性要求比较高可能会使用双向认证,比如说金融行业,银行手机APP等。​​单向认证只是客户端还有自己的一套公私钥对,然后客户端会将自己的公钥传送给服务器端。 我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在

森明帮大于黑虎帮的博客 584

计算机网络--HTTPS的hash、交互流程以及相关的实战问题

前面两篇文章都阐述清楚了HTTPS如何加密和利用CA证书认证,第一个方法解决了内容加密传输的问题,第二个方案解决了防伪冒的问题,那么就剩下最后一个问题了,如何验证完整性,接下来开始我们的这一章的主要内容:HTTPS的哈希 哈希,键值对数据结构,通过哈希函数把一个空间映射到另一个空间。非常好用的一个工具,而且哪哪儿都有它的影子,比如负载均衡的一致性哈希、密码学中用于信息加密或数据校验的各种哈希(SHA、MD5等)、二维空间定位的GeoHash、对象相似度的SimHash等等。 HTTPS的哈希一共用在2个

JordanInShenzhen的博客 625

HTTPS请求流程分析

HTTPS浏览器和服务端交互流程 废话少说,上图。Just Show Photo. TCP+TLS 的WireShark过程介绍 1.TLS介绍 [TLS1.2为模板] tls的各个版本的区别,本文不过多的讨论。 只是为了让大家了解tls的整个加密流程。 ietf的论文 https://tools.ietf.org/html/rfc5246#section-7.3 如下图:TLS的交互流程比较简单,只需要进行交互的生活 进行两次单独的握手操作即可。 WireShark的TLS抓包流程。请求coolshell

douya0012的博客 292

HTTPS抓包实验

HTTPS需要客户端、服务端双方做加解密处理,需要消耗更多CPU和内存资源,相比HTTP通信,HTTPS又多了TLS握手,会消耗更多的网络资源,总体也导致HTTPS响应时间变慢。之所以搞这么麻烦,就是因为 TLS 设计者不信任客户端或服务器伪随机数的可靠性,为了保证真正的完全随机,把三个不可靠家伙混合起来,随机的程度就非常高了,安全性也就更高。,TLS相对于SSL 3.0版本做了些修改和功能增强,相当于SSL的升级版本,所以有时也一起统称为 SSL,接入来本文若不明显强调,SSL就默认表示SSL/TLS。

Rio_hoch的博客 1062
上一篇: MVC、MVP及MVVM的比较
下一篇: Android音视频点/直播模块开发实践总结
deng_wei_csdn
博客等级 码龄10年 15粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值