【计算机网络】HTTPS

这篇具有很好参考价值的文章主要介绍了【计算机网络】HTTPS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. HTTPS的概念

HTTPS也是一个应用层协议,在HTTP协议基础上引入加密层


由于HTTP协议内容都是按照文本形式 明文传输的,就导致在传输过程中出现一些篡改的情况

报文在传送时,有效载荷是明文传送的,容易泄露
在应用层和传输层之间 添加 软件层 ,一般称为 SSL /TLS

SSL/TLS 本质就是 HTTP的握手协商、加密解密


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

所以此时的数据交给 传输层的都是经过加密的


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

远端主机也是要进行通信的
转而将数据交给远端的HTTP
通过加一层软件层,就可以在协议栈中添加 加密 解密 功能
网络中的实际报文 一定是被加密的


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

HTTP 加上 SSL/TLS 称之为 HTTPS

2. 加密

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

加密就是把明文 进行一系列转换 生成为密文
解密 就是把 密文再进行一系列变换,还原成明文

在这个加密和解密的过程中,需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为密钥


常见的加密方式

对称加密

采用 单钥 密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密
也称为 单秘钥加密,特征:加密和解密所用的密钥是相同的
特点:算法公开、计算量小、加密速度快、加密效率高

非对称加密

用两个密钥来进行加密和解密,这两个密钥是公开密钥私有密钥

公钥:可以向全网公开
私钥:只能自己拥有

用公钥加密,只能用私钥解密
用私钥加密,只能用公钥解密

因为公钥是公开的,所以所有人都可以使用公钥来进行 加密和解密

特点:算法强度复杂 ,安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快

3. HTTPS的工作过程的探究

方案1 —— 只使用对称加密

若通信双方都各自持有同一个密钥,并且没有别人知道,这两方的通信安全当然是可以保证的
(除非密钥被破解)

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

即使黑客将数据截获,但是由于黑客并不知道密钥是啥,所以就没办法解密,也就不知道请求中的内容


如何保证客户端和服务端双方用同一个密钥?
若内置,则内置到windows操作系统还是浏览器中,无论是哪一个,则黑客都有一定渠道获取到


若刚开始时将密钥传给服务器,服务器就知道了对应的密钥了,双方再用密钥做加密
将密钥 经过客户端发送给服务器 ,无法保证密钥本身的安全
所以该方案是不安全的

方案2 —— 只使用 非对称加密

当使用公钥 加密, 使用私钥解密时,就算让黑客将数据截获,也没有关系,因为只有私钥才能解密
似乎看起来是安全的


(私钥加密 ,公钥解密)
若服务器用它的私钥数据 加密 传给浏览器,浏览器就可以用公钥解密它,公钥被全网公开
若这个公钥 被人劫持了,则他也能用该公钥 解密 服务器传来的消息
所以该方案也是不安全的

方案3 —— 双方都是用非对称加密

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

服务器拥有公钥S和私钥S1,客户端拥有公钥C和公钥C1
客户端和服务器在通信之前,交换下自己的公钥
客户端把自己的公钥 直接发给服务器,服务器就知道了客户端的公钥C
服务器再把自己的公钥 直接发给客户端,客户端就知道了服务器的公钥S


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

若客户端给服务器发消息,用公钥S加密,只有服务器能解密


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

若服务器给客户端发消息,则用公钥C进行加密


这种做法看似是安全的,但是存在效率低下的问题(非对称加密速度比较慢,而且双方都使用非对称加密就更慢了)
但依旧有安全的问题

方案4 —— 非对称加密+对称加密

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

服务器采用非对加密解密,客户端采用对称加密解密
服务器拥有公钥S和私钥S1
客户端发起HTTP请求,服务器 在响应
请求和响应都是明文的
服务器响应时,给客户端推送服务器端的公钥S


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

假设客户端形成对称秘钥C
通过 对称秘钥C和 推送公钥S 形成 一段密文
将加密后的数据推送给服务器端


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

服务器端再用自己的私钥S1 进行解密,形成对称密钥C
通过对称秘钥C来完成对称加密,保证双方数据的数据安全
但依旧有安全问题

中间人攻击

以方案四为例
简称 MITM 攻击


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

客户端获取到公钥S后, 客户端形成对称秘钥C 用服务器端给客户端的公钥S加密
中间人即使 窃取数据,中间人确实 无法解出 客户端形成的密匙C


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

M表示中间人
服务器端 具有 非对称加密的公钥S和私钥S1
中间人 具有 公钥M和私钥M1


客户端先请求,然后服务器响应,服务器向客户端发送公钥S

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

当服务器把自己的公钥推送给客户端时,中间人截获
将 S从报文中 拿出来保存好,并将中间人自己的公钥M填进去

将新的报文转发给客户端,因为客户端请求的服务器端,所以就默认是服务器端发送的报文
客户端得到公钥M,客户端并不知道公钥被更换过


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

客户端就正常运行,公钥M与客户端形成的对称秘钥X 结合成 加密报文
并将加密报文推送给中间人,此时就可使中间人对应的私钥M1 对加密报文解密
使中间人获得客户端的对称秘钥X


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

获取到客户端的对称秘钥X后,在与服务器的公钥S结合,重新形成 新的加密报文
再将新的加密报文 推送给服务器
服务器 只觉得给 客户端 推送公钥S,就应该返回 带有公钥S的加密报文
服务器依然进行解密,也获得了客户端的 对称秘钥 X


总结:
中间人攻击,核心原因是什么?
客户端无法验证公钥的合法性

引入证书

给别人提供网络服务的服务端,本身是否为合法的,并不由它自己说了算,
要引入一张权威的、第三方的机构来对服务端做认证

如:你是一个餐厅的老板,餐厅做的菜是否符合食品安全,你是不知道,就算你说好的,别人凭什么相信你
所以必须去政府的相关单位,获得经营许可证,获得了该证,食品安全就有了一点保证
所以此时别人相信该餐厅的食品安全,是因为相信给这个餐厅认证的食品安全部门

CA认证

CA机构是 互联网标准化组织,以及整个网络标准化组织 共同筹建的 机构
对全国范围内所有对应的 服务器进行认证,颁发一个电子证书后,服务器才能被信任

要想使用 HTTPS,就必须在CA机构中认证,以获取到CA证书
若不认证,则 浏览器会弹窗,链接是不安全的,导致客户不相信该网站


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

数字证书本质就是数据

理解数据签名

对大文本进行摘要,再对摘要的信息进行加密 即 数据签名

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

将文本经过哈希散列,形成散列值
特定CA证书 的私钥 对 散列值进行加密 形成 签名

将原始的文本和签名 结合,形成签名的数据
这个过程称为 颁发一个证书


【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议 将证书推送给某一个人时,将收到的证书(明文) 拆分为 数据 和对应的签名 对原始的数据 继续使用 哈希散列 形成散列值 再对加密过的签名,使用CA证书的公钥 解密 形成 散列值

对比两者的散列值 是否相等
若相等,则说明签名数据没有被篡改过
若不相等,则 明文数据和签名数据至少有一个被篡改过

方案5 —— 非对称加密 + 对称加密 + 证书认证

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

客户端先请求,然后服务器响应,给客户端证书

1. 验证证书的合法性

客户端先认证,证书的合法性

通过验证,将内容和签名 分开,用相同的hash算法,形成对应的散列值
先将数据 使用 hash算法,形成对应的散列值
使用浏览器内置公钥,对签名做解密,形成散列值

若两者的散列值 不同,有可能 数据被篡改了,所以直接丢弃
若两者的散列值相同,说明内容没有被篡改以及证书是合法的

2. 客户端在证书中提取公钥

若证书是合法的,则提取证书中的公钥

【计算机网络】HTTPS,计算机网络,计算机网络,https,网络协议

客户端在形成对称秘钥X,与提取出的公钥 结合,形成加密报文
将加密报文推送给 服务器,服务器通过对应的证书私钥解密
就形成了 客户端的对称秘钥X

证书存在的意义是 保证内容没有被篡改,在验证 证书合法性的同时 也验证了公钥的合法性文章来源地址https://www.toymoban.com/news/detail-704352.html

到了这里,关于【计算机网络】HTTPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机网络】什么是HTTPS?HTTPS为什么是安全的?

    【面试经典题】 前言: HTTP最初的设计就是用于数据的共享和传输,并没有考虑到数据的安全性,如窃听风险,篡改风险和冒充风险。HTTPS是在 HTTP 的基础上引入了一个加密层。HTTPS通过数据加密,数据完整性检验和身份认证有效的保证了数据传输的安全性。HTTP默认端口号8

    2024年02月08日
    浏览(34)
  • 计算机网络的故事——确保Web安全的Https

    1、明文传输 通信加密,HTTP协议中没有加密机制,但是可以通过SSL(Secure Socket Layer,安全套接字层)或TLE(Transport Layer Security安全层传输协议)的组合使用,加密HTTP的通信内容 2、不验证通信方的身份(可能会遭到伪装) 内容加密:将HTTP报文里所含的内容进行加密之后进行传输

    2024年02月09日
    浏览(39)
  • 计算机网络之HTTP和HTTPS的区别(文末送书福利)

    目录 1、HTTP和HTTPS有什么不同? 1、HTTP协议 HTTP协议的特点 2、HTTPS协议 3、HTTP和HTTPS的区别 2、HTTP比HTTPS多了几次握手? 1、HTTP的三次握手 2、HTTPS握手过程  3、 为什么HTTPS是安全的? 4、对于HTTPS,在验证阶段,除了传递密钥,还会发送什么? 5、HTTP2.0相对于HTTP1.0有什么区别

    2024年04月28日
    浏览(24)
  • 计算机网络基础知识(八)—— 怎么制作HTTPS中的SSL证书?手把手教学

    前面学习了什么是HTTPS协议,简单了解了SSL/TLS协议的相关概念,其中HTTPS中的S里最关键的一点就是“公钥和私钥”,那么现在就来了解一下怎么制作“公钥 私钥”吧 使用 OPENSSL 生成自签名证书的过程如下,下面的 google.com 域名可以任起,但是替换的时候,每一个指令中的域

    2024年02月09日
    浏览(44)
  • 计算机网络—HTTP基本概念、HTTPS、HTTP状态码、HTTP缓存、HTTP请求

    参考小林coding HTTP是超文本传输协议。所谓的超文本,就是超越了普通文本的文本,最关键的是有超链接,能从一个超文本跳转到另一个超文本。 HTML是最常见的超文本,本身是纯文字文件,但是内部使用很多标签定义图片、视频等链接,再经过浏览器的解释,呈现出来的就是

    2024年02月07日
    浏览(33)
  • 初识计算机网络 | 计算机网络的发展 | 协议初识

    1.计算机网络的发展 “矛盾是普遍存在的,矛盾是事物联系的实质内容和 事物发展的根本动力 !” 计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中( 商业的推动,国家政策推动 ),计算机的应用场景被发现!被应用于各种各样的场景当中! 现在,

    2024年01月25日
    浏览(35)
  • 计算机网络-网络协议

    作为一个小萌新,当然我无法将tcp/ip协议的大部分江山和盘托出,但是其中很多面试可能问到的知识,我觉得有必要总结一下! 首先,在学习tcp/ip协议之前,我们必须搞明白什么是tcp/ip协议。 书本上的定义:网络协议是为计算机网络中进行数据交换而建立的规则、标准或约

    2024年02月03日
    浏览(27)
  • 【计算机网络】网络层协议 -- ICMP协议

    ICMP(Internet Control Message Protocol,控制报文协议),用于在IP主机、路由器直接传递控制消息,是一个TCP/IP协议。 ICMP协议的定位 网络层的最典型的协议是IP协议,但是除了IP协议之外,还有ICMP协议和IGMP协议。 ICMP、IGMP和IP协议虽然都属于网络层的协议,但是ICMP协议和IGMP协议属

    2024年02月14日
    浏览(28)
  • 计算机网络-网络文件共享协议

    前言 在计算机网络中,我们经常会遇到在不同计算机网络系统之间如何共享和访问文件的场景,并且在实际项目中有这样的需求,在Linux中需要动态的mount文件,需要选择合适的网络文件共享协议以满足并发,吞吐量等需求。这就涉及今天要讲的网络文件共享协议SMB和NFS。

    2024年04月29日
    浏览(47)
  • [计算机网络]认识“协议”

    在网络体系结构中,应用层的应用程序会产生数据,这个数据往往不是简单的一段字符串数据,而是具有一定意义的结构化数据,应用层要想在网络中发送这个结构化数据,就要将其转化成报文结构,而这个 将应用程序产生的结构化数据转化成报文的过程就是序列化 。 数据

    2024年02月05日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包