我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用故事说透https

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用故事说透https

本文来自素燕公众号,原文地址:用故事说透https
故事中的主演:
用故事说透https
小华今年上大一,这是她第一次离开父母,独自一人到北京上学。今天妈妈的生日,想了想要给妈妈一个祝福,便给妈妈发了条消息:
用故事说透https
妈妈收到这条消息非常开心,女儿这么忙还能记得自己的生日,两个人便开始聊了起来。妈妈知道女儿一直省吃俭用,决定给女儿打点钱过去。
用故事说透https
小黑是个*,专搞一些“偷鸡摸狗”的事情,他已经监听了这对母女的对话。一直看着她们唠家常,都快睡着了。
用故事说透https
直到看到母女提到钱的事情,立马打起精神,决定搞一笔。然后他截获了小华的消息,替换成自己精心准备的内容给小华的妈妈发过去了。
用故事说透https
小华的妈妈随后就把钱打给了小华,未曾想到母女二人的聊天内容尽在小黑的掌控之中。小黑拿到钱后就逃之夭夭了。

HTTP 协议是建立在 TCP 之上的,TCP 是否安全决定了 HTTP 是否安全。HTTP的报文内容并未加密,容易被监听和篡改。小黑就监听了母女二人的聊天内容,并对内容进行了篡改,伪装成女儿进行聊天。所以 HTTP 有以下 3 个问题:
1.内容未加密,容易被监听,都是明文传输;
2.无法验证内容的完整性,容易被篡改,也就是说不知道消息是不是被修改过;
3.无法验证对方的身份,我现在聊天的人是谁,可靠吗?

小华被骗后,心里很难过,把这件事告诉了她的计算机老师王大强。王老师听到被骗的经历,感到非常惊讶,消息为什么会被篡改呢!立马查看了她们使用的聊天软件,原来这个软件直接使用的是 TCP 协议,没有做安全措施。

研究完软件后,大强对小华说:“这款软件有问题,以后别用了,要用具有安全措施的软件,比如使用 TLS/SSL 协议的软件”。

小华说:“什么是 TLS/SSL 呢?”。大强看到小华诚恳的表情,决定把 HTTPS 的原理告诉她,但是想到她可能理解不了,然后决定剖析一下她和妈妈被骗的场景。

既然小华和她妈妈的聊天内容是明文传输的,那直接把内容加密不就完事了吗。小华和她妈妈就约定了一个密码,所有的内容都通过这个密码进行加密和解密。
用故事说透https
这种加密方式称为对称加密,加密解密都是通过同一个密码来操作,所以需要保证密码的安全,一旦泄露,后果很严重

小华立马觉察到事情的不妙,密码如何才能传给她妈妈呢。只能双方见面后来约定一个密码。但是她想到远在美国的爸爸,如果向他要钱的话,需要飞往美国把密码告诉他。这太麻烦了。

王大强老师说:“别急,还有更好的方法”。那就使用两个密钥,一个用来加密(称为公钥),另一个用来解密(称为私钥),使用公钥加密过的内容,只能通过私钥进行解密。私钥只有自己有,公钥可以丢给别人。
用故事说透https
小华和妈妈,只把公钥交给对方就行。小华给妈妈发消息的时候,用妈妈的公钥进行加密,私钥只有妈妈有,也就是说只有妈妈能解密。

这种加密方式称为非对称加密,会有二个钥匙,一个钥匙加密过的内容只能通过另一个钥匙进行解密。至于为啥要说公钥加密私钥解密,虽然两个钥匙都可以进行加密解密,但是公钥加密私钥解密这种说法不是更好理解吗? 公钥被人都知道,私钥只有自己知道

小华想了想觉得还是有点不安全,假如她和妈妈进行交换公钥的时候,被小黑监听了。

小华把自己的公钥 xiaohua_pub 发给妈妈,中途被小黑掉包了,小黑把自己的公钥 xiaohei_pub 发给了小华的妈妈。这样小华妈妈发消息的时候就使用了小黑的公钥进行了加密,小黑获取到消息表可以用自己的私钥进行解密。
用故事说透https
妈妈发送自己的公钥给小华的时候也被小黑掉包了,这时小黑就有了双方的公钥。
用故事说透https
小黑监听到小华要求妈妈打钱的消息,对消息进行了篡改。
用故事说透https
王大强老师听完小华的疑虑,竖起了大拇指,说道:“别急,听我慢慢解释”。

现在的问题是出在交换公钥的时候被小黑调包了,那接下来就需要解决这个问题。如何才能把公钥安全地送到对方手上。

这似乎是永远解不了的问题,毕竟公钥始终是要经过传输的。这似乎是一个鸡生蛋蛋生鸡的问题。后来小华想了想他平时网上购物的时候,以前总是担心怕付款了,商家跑路不给发货,自从有了淘宝这个第三方机构,毕竟阿里家大业大,值得信赖,即使商家跑路了可以找淘宝。

后来就出现了关于公钥的认证机构,这些认证机构很少,但非常权威,它会和电脑、浏览器等厂商达成信任关系,提前把认证机构的公钥安装到系统中,这样就不会涉及到传输的问题了。
用故事说透https
在聊天的过程中,小华发现消息发送和接收的时候很慢,后来发现因为是加密算法耗费比较长的时间。小华想了想,使用对称加密的时候,唯一的缺点是交换秘钥比较麻烦,但是速度非常快。那么可以通过非对称加密来传输对称加密的密钥,密钥传输成功后,使用对称加密来加密消息。
用故事说透https
HTTP 属于应用层协议,HTTPS 并不是一个新的协议,它只是比 HTTP 协议多了一层(TLS/SSL)来保证数据传输安全。TLS/SSL也属于协议,它的主要作用是保证数据传输安全。大多数使用的是 OpenSSL 来实现,比如 Node 中的 TLS 就是基于 OpenSSL 实现的
用故事说透https

本文以故事的形式介绍了 HTTP 的不安全,保证 HTTPS 安全性的背后支持,包含数字证书、数字签名、对称加密、非对称加密的概念,当然光有理论还不行,需要实践才能更好地理解。大家加油。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用故事说透https

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

用故事说透https

本文来自素燕公众号,原文地址:用故事说透https故事中的主演:小华今年上大一,这是她第一次离开父母,独自一人到北京上学。今天妈妈的生日,想了想要给妈妈一个祝福,便给妈妈发了条消息:妈妈收到这条消息非常开心,女儿这么忙还能记得自己的生日,两
2023-06-05

【MySQL】事务隔离机制 -- 必须说透

文章目录 前言一、什么是数据库事务二、事务并发带来的4类问题三、事务4种隔离级别四、Mysql演示4种隔离级别总结 前言 如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机
2023-08-16

PMP退考费用及相关事项说明

       下文关于PMP退考费用及相关事项进行了说明,供大家参考,更多PMP考试相关资讯可关注编程学习网网站。         PMP考试退考说明:       1、退考
PMP退考费用及相关事项说明
2024-04-18

PMP培训费用及相关事项说明

       PMP认证参加考前培训是很有必要的,下文关于PMP培训费用及相关事项进行了说明,供大家参考,更多PMP考试相关资讯可关注编程学习网网站。        PMP培训费用:     &
PMP培训费用及相关事项说明
2024-04-18

使用golang-unsafe包的注意事项及说明

这篇文章主要介绍了使用golang-unsafe包的注意事项及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-10

解决Mysql的left join无效及使用的注意事项说明

Mysql的left join无效及使用 今天写sql发现使用left join 没有把左边表的数据全部查询出来,让我郁闷了一会,后来仔细研究了一会才知道自己犯了个常识性的错误(我是菜鸟) 这是原sql这样的查询并不能将tb_line这张表
2022-05-11

C#事件标准命名规则及说明(包括用作事件类型的委托命名)

这篇文章主要介绍了C#事件标准命名规则及说明(包括用作事件类型的委托命名),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-25

使用SimpleITK读取NII格式三维图像及注意事项说明

这篇文章主要介绍了使用SimpleITK读取NII格式三维图像及注意事项说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-15

vue3使用echart的两种引入方式以及注意事项说明

这篇文章主要介绍了vue3使用echart的两种引入方式以及注意事项说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

学习Java虚拟机没用? 听听当事人是怎么说的!(skycto JEEditor)

原文链接:https://mp.weixin.qq.com/s/Sx1IvZk25i6-z4V3a2TAXQ转自:码农翻身(微信号:coderising)我是大名鼎鼎的Java 虚拟机, 据说这个星球上每天有900多万程序员和我打交道,这
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录