HTTS 为什么更安全?

article/2025/9/25 9:22:36
本文已收录于专栏
⭐️ 《计算机网络》⭐️

学习指南:

  • HTTPS
  • 引入
  • SSL协议
    • 加密方式
    • 摘要算法
    • 数字证书
  • SSL/TLS握手
  • 经典面试题
    • HTTP 与 HTTPS 区别?
    • HTTPS 目前有哪些不足?
  • 完结散花
  • 参考文献

HTTPS

引入

HTTP 最凸出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」。

但同时也有很多缺点,如:

  • 窃听风险,通信使用明文(不加密),内容可能会被窃听 。
  • 冒充风险,不验证通信方的身份,因此有可能遭遇伪装 。
  • 篡改风险,无法证明报文的完整性,所以有可能已遭篡改 。

总结一下就是HTTP 存在着极大的信息安全风险。

这也就是我们经常会在 Web 的登录页面和购物结算界面等使用的是HTTPS通信而不是HTTP的原因。

为了统一解决HTTP的不足,需要在 HTTP 上再加入加密处理和认证 等机制。

我们把添加了加密及认证机制的 HTTP 称为 HTTPS(HTTP Secure)。

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

也就是说HTTP 加上加密处理和认证以及完整性保护后即是 HTTPS

SSL协议

HTTPS 并非是应用层的一种新协议。

只是HTTP通信接口部分用SSLTLS 协议代替而已。

上面提到的 加密 + 认证 + 完整性保护 等 都是 SSL协议的功能。

通常,HTTP 直接和 TCP 通信。当使用 SSL时,则演变成先和 SSL通信,再由 SSLTCP 通信了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVBKqRmv-1658934500300)(D:\Note\Computer network\image-20220723105331651.png)]

SSL是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTPTelnet等协议均可配合 SSL协议使用。可以说 SSL是当今世界上应用最为广泛的网络安全技术。

SSL 很好的解决了上述 HTTP 使用中的风险:

  • 信息加密:交互信息无法被窃取。
  • 身份证书:验证通信方的身份,确保对方不是伪装。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示。

加密方式

在对 SSL进行讲解之前,我们先来了解一下加密方法。

近代的加密方法中加密算法是公开的,而密钥却是保密的。通过这种方式得以保持加密方法的安全性。

加密和解密都会用到密钥。没有密钥就无法对密码解密。

也就是说只要有密钥任何人都能解密,如果密钥被攻击者获得,那加密也就失去了意义。

加密方式按照密钥分为两类。

  • 加密和解密同用一个密钥的方式称为 共享密钥加密 也被叫做 对称密钥加密 。
    • 共享密钥方式加密时必须将密钥也发给对方。

    • 但是没办法保证密钥安全的转交到对方手中,如果通信被监听那么密钥就可会落入攻击者之手,同时也就失去了加密的意义。

    • 另外还得设法安全地保管接收到的密钥。

  • 使用两把密钥的公开密钥加密的方式称为 非对称密钥加密 。
    • 一个是公钥,这个是可以公开给所有人的;
    • 一个是私钥,这个必须由本人管理,不可泄露。
    • 这两个密钥可以双向加解密的。
    • 比如可以用公钥加密内容,然后用私钥解密,也可以用私钥加密内容,公钥解密内容。
    • 流程的不同,意味着目的也不相同:
      • 公钥加密,私钥解密。这个目的是为了保证内容传输的安全,因为被公钥加密的内容,其他人是无法解密的,只有持有私钥的人,才能解密出实际的内容;
      • 私钥加密,公钥解密。这个目的是为了保证消息不会被冒充,因为私钥是不可泄露的,如果公钥能正常解密出私钥加密的内容,就能证明这个消息是来源于持有私钥身份的人发送的。
    • 一般我们不会用非对称加密来加密实际的传输内容,因为非对称加密的计算比较耗费性能的。
    • 所以非对称加密的用途主要在于通过私钥加密,公钥解密的方式,来确认消息的身份。

HTTPS 采用的是对称加密非对称加密结合的混合加密机制

  • 在通信建立前采用非对称加密的方式交换「会话秘钥」,后续就不再使用非对称加密。
  • 在通信过程中全部使用对称加密的「会话秘钥」的方式加密明文数据。

采用「混合加密」的方式的原因:

  • 对称加密只使用一个密钥。
    • 运算速度快,密钥必须保密,无法做到安全的密钥交换,不安全
    • 所以这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方。
  • 非对称加密使用两个密钥。
    • 使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢

所以应充分利用两者各自的优势,将多种方法组合起来用于通信。

传送消息采用对称加密机制,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

摘要算法

为了保证传输的内容不被篡改,我们需要对内容计算出一个哈希值,然后同内容一起传输给对方。

对方收到后,先是对内容也计算出一个哈希值。然后跟发送方发送的哈希值做一个比较。

如果哈希值相同,说明内容没有被篡改,否则就可以判断出内容被篡改了。

摘要算法 正是计算机将传输内容计算出哈希值的方法。

摘要算法计算出来的哈希值是唯一的,且无法通过哈希值推导出内容。

通过哈希算法可以确保内容不会被篡改,但是并不能保证「内容 + 哈希值」不会被中间人替换,因为这里缺少对客户端收到的消息是否来源于服务端的证明

也就是说 如果在传输过程中 中间人 将内容 + 哈希值全部拦截并将其全部修改,这样客户端计算出来的哈希值即便是比对正确,信息也是错的。因为哈希值本身就已经被篡改了。

中间人攻击

是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方 直接对话,但事实上整个会话都被攻击者完全控制。

在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。中间人攻击是一个(缺乏)相互认证的攻击。

大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。

例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信 任的数字证书认证机构颁发,并且能执行双向身份认证。

那为了避免这种情况,计算机里会用数字签名算法来解决。

用数字签名算法对内容的哈希值加密,这样中间人就无法修改哈希值了

数字证书

服务端可以向证书颁发机构CA申请证书,以避免中间人攻击(防止证书被篡改)。证书包含三部分内容:证书内容、证书签名算法和签名,签名是为了验证身份。

服务端把证书传输给浏览器,浏览器从证书里取公钥。证书可以证明该公钥对应本网站。

数字签名的制作过程

  1. CA使用证书签名算法对证书内容进行hash运算
  2. 对hash后的值用CA的私钥加密,得到数字签名。

浏览器验证过程

  1. 获取证书,得到证书内容、证书签名算法和数字签名。
  2. 用CA机构的公钥对数字签名解密(由于是浏览器信任的机构,所以浏览器会保存它的公钥)。
  3. 用证书里的签名算法对证书内容进行hash运算
  4. 比较解密后的数字签名和对证书内容做hash运算后得到的哈希值,相等则表明证书可信。

SSL/TLS握手

SSL/TLS 协议基本流程:

  • 客户端向服务器索要并验证服务器的公钥。
  • 双方协商生产「会话秘钥」。
  • 双方采用「会话秘钥」进行加密通信。

前两步也就是 SSL/TLS 的建立过程,也就是 TLS 握手阶段。

SSL/TLS 协议建立的详细流程:

  1. ClientHello

首先,由客户端向服务器发起加密通信请求,也就是 ClientHello 请求

在这一步,客户端主要向服务器发送以下信息:

(1)客户端支持的 SSL/TLS 协议版本,如 TLS 1.2 版本。

(2)客户端生产的随机数(Client Random),后面用于生成「会话秘钥」条件之一。

(3)客户端支持的密码套件列表,如 RSA 加密算法。

  1. SeverHello

服务器收到客户端请求后,向客户端发出响应,也就是 SeverHello。服务器回应的内容有如下内容:

(1)确认 SSL/ TLS 协议版本,如果浏览器不支持,则关闭加密通信。

(2)服务器生产的随机数(Server Random),也是后面用于生产「会话秘钥」条件之一。

(3)确认的密码套件列表,如 RSA 加密算法。

(4)服务器的数字证书。

3.客户端回应

客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的 CA 公钥,确认服务器的数字证书的真实性。

如果证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送如下信息:

(1)一个随机数(pre-master key)。该随机数会被服务器公钥加密。

(2)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。

(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。

  1. 服务器的最后回应

服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。

然后,向客户端发送最后的信息:

(1)加密通信算法改变通知,表示随后的信息都将用「会话秘钥」加密通信。

(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供客户端校验。

至此,整个 SSL/TLS 的握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的 HTTP 协议,只不过用「会话秘钥」加密内容。

经典面试题

HTTP 与 HTTPS 区别?

  • 所接入的端口号不同。
    • HTTP 的端口号是 80,
    • HTTPS 的端口号是 443。
  • 建立连接的难度不同。
    *HTTP连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。
    • HTTPSTCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  • 传输的安全性系数不同。
    • HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。
    • HTTPS 则解决 HTTP 不安全的缺陷,在TCPHTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  • HTTPS协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTPS 目前有哪些不足?

既然 HTTPS 那么安全可靠,那为何所有的 Web 网站不一直使用 HTTPS ?

因为 与纯文本通信相比,加密通信会消耗更多的 CPU 及内存资源。

如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。

所以 HTTPSHTTP 要慢 2100 倍 。

SSL 的慢分两种。

一种是指通信慢。另一种是指由于大量消耗 CPU 及内存等资源,导致处理速度变慢。

针对速度变慢这一问题,并没有根本性的解决方案,我们会使用 SSL加速器这种(专用服务器)硬件来改善该问题。该硬件为 SSL通信专用硬件,相对软件来讲,能够提高数倍 SSL的计算速度。仅在 SSL处理时发挥 SSL加速器的功效,以分担负载。

完结散花

ok以上就是对 HTTS 为什么更安全? 的全部讲解啦,很感谢你能看到这儿。如果有遗漏、错误或者有更加通俗易懂的讲解,欢迎小伙伴私信我,我后期再补充完善。

参考文献

《图解HTTP》
https://www.xiaolincoding.com


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

相关文章

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曲线的背景、主…

文献计量三大定律之一---洛特卡定律及普赖斯定律

科学生产率是洛特卡定律的基础&#xff0c;科学生产率”(Scientific Productivity)&#xff09;是指科学家&#xff08;科研人员&#xff09;在科学上所表现出的能力和工作效率&#xff0c;通常用其生产的科学文献的数量来衡量。 1926年&#xff0c;洛特卡在一篇论文中提出了科…

关于罗德里格斯公式(Rodrigues‘sFormula)的详细推导过程

关于罗德里格斯公式[RodriguessFormula]的详细推导过程 1 旋转向量2 罗德里格斯公式2.1 罗德里格斯公式定义2.2 罗德里格斯公式推导 3 旋转矩阵到旋转向量的转换 1 旋转向量 实际上&#xff0c;任意旋转都可以用一个旋转轴和一个旋转角来刻画。我们可以使用一个向量 u u u&…

Armijo-Goldstein准则及Wolfe-Powell准则

Armijo-Goldstein准则及Wolfe-Powell准则 line search&#xff08;一维搜索&#xff0c;或线搜索&#xff09;是最优化&#xff08;Optimization&#xff09;算法中的一个基础步骤/算法。它可以分为精确的一维搜索以及不精确的一维搜索两大类。 本文主要介绍一下&#xff0c;…