htts 原理

article/2025/9/25 9:19:33

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

HTTPS简介

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

1. 客户端发起HTTPS请求

这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

2. 服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3. 传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4. 客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5. 传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6. 服务段解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7. 传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原

8. 客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

作者:朱祁林
出处:http://zhuqil.cnblogs.com 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 

 

 

SSL的位置

SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

 

RSA性能是非常低的,原因在于寻找大素数、大数计算、数据分割需要耗费很多的CPU周期,所以一般的HTTPS连接只在第一次握手时使用非对称加密,通过握手交换对称加密密钥,在之后的通信走对称加密。

 

http://www.cnblogs.com/ttltry-air/archive/2012/08/20/2647898.html

 

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下:


1.浏览器将自己支持的一套加密规则发送给网站。 
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器
。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 
3.浏览器获得网站证书之后浏览器要做以下工作: 
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。 
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。 
c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。 
4.网站接收浏览器发来的数据之后要做以下的操作: 
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。 
b) 使用密码加密一段握手消息,发送给浏览器。 
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密

      这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:


      非对称加密算法:RSA,DSA/DSS 
      对称加密算法:AES,RC4,3DES 
      HASH算法:MD5,SHA1,SHA256

 

 

总结:

服务器 用RSA生成公钥和私钥

把公钥放在证书里发送给客户端,私钥自己保存

客户端首先向一个权威的服务器检查证书的合法性,如果证书合法,客户端产生一段随机数,这个随机数就作为通信的密钥,我们称之为对称密钥,用公钥加密这段随机数,然后发送到服务器

服务器用密钥解密获取对称密钥,然后,双方就已对称密钥进行加密解密通信了

 

 

 

PS:HTTPS通过认证和加密保证数据传输的安全。

加密和认证:加密是指通信双方为了防止铭感信息在信道上被第三方窃取而泄漏,将明文通过加密变成密文,如果第三方无法解密的话,就算他获得密文也无能为力;认证是指通信双方为了确认对方是值得信任的消息发送或接受方,而不是使用假身份的骗子,采取的确认身份的方式。只有同时进行了加密和认真才能保证通信的安全,因此在SSL通信协议中这两者都被应。 

因此,这三者的关系已经十分清楚了:https依赖一种实现方式,目前通用的是SSL,数字证书是支持这种安全通信的文件。另外有SSL衍生出TLS和WTLS,前者是IEFT将SSL标准化之后产生的(TSL1.0),与SSL差别很小,后者是用于无线环境下的TSL。

SSL的加密过程 

 

需要注意的是非对称加解密算法的效率要比对称加解密要低的多。所以SSL在握手过程中使用非对称密码算法来协商密钥,实际使用对称加解密的方法对http内容加密传输


http://chatgpt.dhexx.cn/article/t6Tdlera.shtml

相关文章

charles抓htts包总结

参考:Charles问题之抓Android手机应用Https包,出现Unknown - 简书 (jianshu.com)Charles问题之Windows10下抓取https包,出现unknown - 简书 (jianshu.com) 一、安装charles root证书 二、在浏览器安装证书(用以电脑浏览器抓https) 三、手机抓…

htts加密过程

文章目录 HTTPS 什么是HTTPS什么是‘加密’ 加密的方式有哪些 对称加密非对称加密 总结HTTPS传输过程 什么是HTTPS HTTPS与HTTP一样都是应用层协议,与HTTP不同的是:HTTP的协议内容都是按照文本方式进行明文传输的,这导致在传输过程第三方者…

HTTS 为什么更安全?

本文已收录于专栏 ⭐️ 《计算机网络》⭐️ 学习指南: HTTPS引入SSL协议加密方式摘要算法数字证书 SSL/TLS握手经典面试题HTTP 与 HTTPS 区别?HTTPS 目前有哪些不足? 完结散花参考文献 HTTPS 引入 HTTP 最凸出的优点是「简单、灵活和易于扩…

HTTPS安全通信基础

导读HTTPS协议提供了较为完善的方案,HTTPS不是一种新协议,是通过HTTP结合SSL/TSL实现了通信安全。但是HTTPS也有其缺点,所以要结合具体场景情况合理地使用才能发挥HTTPS的强大作用。 HTTP是一个优秀的通信协议,不过事物皆具有双面…

HTTP协议与HTTPS协议的介绍与区别

目录 1. HTTP协议的介绍: 2. HTTP工作原理: 3.HTTP三点注意事项: 4.HTTP请求和响应的格式: 5.HTTPS协议的简单介绍: 6.HTTPS的作用: 7.HTTS方式与Web服务器通信的步骤: 8.HTTP与HTTPS的区别&#xf…

HTTS基础知识

简介 HTTPS 指的是超文本传输安全协议(Hypertext Transfer Protocol Secure)。简单的理解,HTTPS 就是将 HTTP 中的传输内容进行了加密,然后通过可靠的连接,传输到对方的机器上。加密的协议是 TLS,其前身是 SSL&#x…

2020年6月最新iOS面试题总结(答案篇)

之前发了这篇iOS面试总结(2020年6月),没想到挺受大家欢迎,本来是没打算为它写答案,但有几个人建议我最好出一篇答案,提的人多了我就答应了下来。因为最近比较忙,断断续续总算补完了,…

iOS面试(内含面试全流程,面试准备工作面试题等)

推荐👇: 收录:zhangferry 都说今年互联网行情很差,iOS行情更差。但到底怎么样呢,不能光听别人说,而要自己走出去看一看。我的面试的阶段基本都在3月份,准备的阶段则要再往前推个半个月吧。期间约到了不少…

iOS面试

iOS面试 智力题计算机基础面向对象的三个要素?堆和栈的区别?HTTP和HTTPS区别?OSI七层模型和五层模型以及对应的协议?HTTP头域包括?说几个状态码?https一定是安全的吗?TCP和UDP的区别&#xff1f…

iOS面试题

整理一些重点和面试问到几率比较大的题目给小伙伴 对您有帮助或者您喜欢的话 希望能点个赞或者添加一下关注 一. CALayer和UIView的区别联系 1 UIView是UIKIt的只能在iOS使用, CALayer是QuartzCore的 iOS和mac os通用2 CALayer比UIView更加轻量级,但是可以实现同样的效果3 UI…

ios面试准备 - 网络篇

iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C篇 iOS面试准备 - 其他篇 http和https是什么?http和https有什么区别? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从…

iOS面试准备 - ios篇

iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C篇 iOS面试准备 - 其他篇 运行时 https://juejin.cn/post/6844903586216804359 Runtime消息发送机制 首先进行方法的查找: 1)iOS调用一个方法时,实…

iOS基础面试题(二)

多数是CocoaTouch社区的回复,其中蓝色字体是我的补充 所有的群都已到人数上限,本着“与时俱进”精神,建了个"iOS面试"公众号, 大家扫码关注后,可直接发消息给我,iOS面试相关的问题我会尽量一一回复。 iOS面试题系列: iOS如何面试 iOS基础面试题(一) iOS基础…

2021 iOS面试题大全---全方面剖析面试(一)

(答案不唯一,仅供参考,文章最后有福利) 一. iOS面试题—UI相关:事件传递,图像显示,性能优化,离屏渲染 UIView与CALayer事件传递与视图响应链图像显示原理UI卡顿掉帧原因滑动优化方案UI绘制原理离屏渲染一、UIView与CALayer <单一职责原则> UIView为CALayer提供内…

差分隐私(二)指数,高斯,拉普拉斯机制

在应用差分隐私进行隐私保护中&#xff0c;需要处理的数据主要分为两大类&#xff1a; 数值查询&#xff1a;一般采用 L a p l a c e Laplace Laplace &#xff08;严格DP&#xff09;或者高斯机制&#xff08;松弛DP&#xff09;对得到数值结果加入随机噪声即可实现差分隐私。…

电路模型和电路定律(Ⅲ)

&#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是泽奀&#x1f496;&#x1f3c5;2021年度博客之星物联网与嵌入式开发TOP5→作者周榜56→总排名3255&#x1f3c5; &#x1f4dd; 个人主页&#xff1a;泽奀的博客_CSDN博客&#x1f381;欢迎各位→点赞&#x1f44d; …

拉普拉斯的几个重要定理

目录 线性性质 微分性质 积分定理 实位移定理 复位移定理 初值定理 终值定理 线性性质 微分性质 积分定理 实位移定理 复位移定理 初值定理 终值定理

菲兹定律(Fitts's law)

菲兹定律 介绍什么是菲兹定律&#xff1f;初识菲兹定律信息论和香农公式吞吐量(Throughput)菲兹范例菲兹定律的修正有效宽度We&#xff08;effective target width)深入理解菲兹定律示例总结我对菲兹定律的理解 介绍 本博客是基于《The Wiley Handbook of Human Computer Inte…

再探格林公式、斯托克斯公式、高斯公式

再探格林公式、斯托克斯公式、高斯公式 1.再探格林公式、斯托克斯公式、高斯公式1.1 格林公式&#xff08;环量与旋度的联系&#xff09;1.2 斯托克斯公式&#xff08;对格林公式的推广&#xff09;1.3 高斯公式&#xff08;通量与散度的联系&#xff09; 1.再探格林公式、斯托…

Nurbs曲线简介

Nurbs曲线详解_谷棵的博客-CSDN博客_nurbs曲线 发表于2017年12月3日 了解完一种特殊的nurbs曲线&#xff1a;贝塞尔曲线后,从本节开始&#xff0c;我将逐步介绍非均匀有理本样条曲线。理解bezier曲线的相关概念对NURBS的学习非常有帮助。本文的目标是介绍NURBS曲线的背景、主…