用了 HTTPS,没想到还是被监控了!-程序员宅基地

技术标签: 网络  路由器  http  https  ssl  

48df2d5f1f7a91aa04da6b5e873ac0ff.gif

作者 | 轩辕之风

来源 | 编程技术宇宙

大家好,我是轩辕。

上周,微信里有个小伙伴儿给我发来了消息:

c6b0c578ac266ccee9746ba1c83bcf8b.png 631fccfb18bb1f42f0ba223a1e62d118.png

随后,我让他截了一个完整的图,我一瞅,是HTTPS啊!没用HTTP!再一瞅,是www.baidu.com啊,不是什么山寨网站!

我瞬间明白了些什么,让他点击了一下浏览器地址栏中那个表示安全的小锁标志,查看了一下网站使用的HTTPS证书。

0943c6408272bc90c86923277a79d092.png

果然不出我之所料,证书不是官方的,官方的证书长这样:

5e1111714b49ea3d06a907ad53256921.png

而那个假的证书是他们公司签发的,看来,他们公司开始对HTTPS流量做解析了,这家伙瞬间瑟瑟发抖···

8448abb4efee9eed1e232b434a26992d.png

今天就来跟大家聊一下:HTTPS真的安全吗?

现如今大家每天上网基本上看到的都是使用了HTTPS的网站,有时候特意想找一个HTTP的网站来让新同学练习抓包分析都不好找。

但在几年前,差不多我刚刚开始毕业工作(2014年)的时候,情况却不是这样的,网络上还有大量使用HTTP的网站。

大家知道,HTTP是超文本传输协议,数据内容在网络中都是明文传输的,非常不安全。同在一个宿舍里的同学,随便搞一个中间人劫持就能监听到你浏览了什么视频学习网站。

不仅如此,上网链路中包括寝室路由器在内的各级网络设备都可以探知你的数据,甚至给你插入小广告(其实这种现象现在依然存在,尤其是很多医院、学校的网站,还是很多都是用HTTP,特别容易粘上小广告),一不小心就跳到了广告页面,真是防不胜防。

不久,网站HTTPS化的浪潮很快打来,通过加密这一最简单直接的办法,将浏览器上网过程中传输的数据进行加密保护,上网内容的安全性得到了极大的提升。

我之前写过一篇故事深入浅出的描述了HTTPS的工作原理,还不懂的小伙伴儿可以学习一下,我经常也会在面试中考察候选人这个问题,这可以迅速帮助我知道对方对HTTPS的了解程度。

为了一个HTTPS,浏览器操碎了心···

咱们通过下面的快问快答环节来简单总结一下。

HTTPS为什么安全呢?

d5a9543a4abb2183cce58eca1bd6d806.png

b929940148e98fa396212d4448530b06.png

因为数据加密了啊~

04ce0eb0be6ac53a32076d7bf3ca90b0.png

ac5a1b54ea2a8cf3ee922cb203d992ab.png

那数据加密的秘钥怎么来的?

d4028f2cec7ac9b0361152bf4cd64507.png

093a775aa3c1d6cea45e04a7762b00e1.png

是双方通过相同的随机数计算出来的。

2585242e871da2f959b25a6f3c004eb6.png

9e563bb2d7b385689f7856e20e8ba1f6.png

那随机数怎么传输的?

c4afccaa46610a353302a76bf81876b1.png

90b7ed0eb6298895e3097a6e4ae6bcc8.png

使用非对称加密传输的,浏览器使用服务器提供的公钥加密,只有服务器使用自己的私钥才能解开,别人解不开。

e370217021287c79f102b0d6794c5b17.png

45abc502cf46e1250ebf64f905c4efae.png

你怎么知道那是服务器的公钥,万一是别人的,中间人攻击呢?

d7e197ca053176874bd1e65c995a13c9.png

252bbc6b1c14742a2931d4dfeb6cc52d.png

有证书来证明服务器身份

24a4aa3ce61bd6caca5478c9e9ccaa65.png

dfdcd06f8ce1943d4b9fcead323becd9.png

证书万一是假的呢?

cc9199c5236b944b72d38863ea1ac326.png

8fa3d3181c8f7d69d31e2c9fbc7a5bc5.png

不可能,假的证书不是受信任的机构签发的,浏览器会验证通不过。

5dfc9fc2526568e95c2967c95fbc2d7a.png

bc622cf3a01225c68f725a93524396f4.png

那浏览器怎么知道证书的签发机构是不是受信任的?

96bd957365c3a57625d0c6a60c2c6232.png

c3e70788910a740cb36352edf15f9976.png

因为受信任机构的根证书安装到了系统中,你总得相信微软吧!

f5687757d08136a634ff40378188fb41.png

a646c5bec63e2d9c67cbd034ce113349.png

要是假的根证书被安装进了系统咋办?

73566952660e71d0d3543d11bdbc299a.png

19797ca6638c3e1cc2b36aaa5e570a02.png

ef09b68aada605d975b1cfc7df65a9ea.png

d3584703a1f20f688bd399d398ea7773.png

5a4a2048e475f6a32ae90df03fb40ec1.png

看到了吧,HTTPS能够安全的基石是非对称加密,非对称加密建立的前提是对方真的是对方,如果这一个前提不成立,后面的一切都是假的!

网站服务器使用HTTPS进行通信时,会提供一个用于证明身份的证书,这个证书,将会由某个受信任的机构签发。

浏览器拿到这个证书后,会校验证书的合法性,去检查证书的签发机构是不是受信任的。

那如何去检查签发机构是不是受信任的呢?

答案是继续检查签发机构的证书,看看是谁给他签发的,一直这样追溯,直到找到最终的签发者,看看最终的签发者的证书是不是安装在操作系统的受信任的根证书列表中。

b4ed9f6d119c6f9674af8b843e534a93.png

是不是已经晕了?没关系,我们来用百度的那个证书为例,看一下这个过程,你就知道什么意思了。

你可以通过点击证书路径tab页面查看证书的签发链条:

e68de4dd54a835e935c0c7e1ed73ba89.png

通过这个树形结构图,可以清晰地看到:

baidu.com这个域名使用的证书,是由名为GlobalSign Organization Validation CA - SHA256 - G2的颁发者签发的。

而这个颁发者的证书,又是由GlobalSign Root CA - R1签发的。

浏览器拿到这个最顶层的签发证书后,去操作系统安装的受信任的根证书列表中一找,嘿,还真让它找着了!

94b80018981dc00d8ce1fc6189679f0d.png

于是,浏览器信任了这个证书,继续接下来的通信过程。

如果找不到,浏览器就会弹出不受信任的消息,提醒用户要当心了!

3fe6b8423e067f8c0cd54925d43ff665.png

而如果,有人在你的电脑中安装了一个自己的根证书进去,骗过浏览器,这一切安全的根基也就倾覆了。

而文章开头那个小伙伴儿之所以弹出了那个窗口,多半是根证书还没安装进去,就开始了HTTPS劫持。因为重启之后,便再也没有这些提示信息,一切如往常一样风平浪静,只不过上网的流量已经被公司悉数掌握。

看到这里,还不赶紧点开浏览器地址栏的那把锁,看看证书的签发机构是不是你们公司?

如果是,那恭喜你了~

2e304dd6432735781d13771c9c158226.gif

往期推荐

低代码发展专访系列之八:低代码平台能够打破企业「应用孤岛」现象吗?

Medusa又一个开源的替代品

数字孪生+交通,到底有啥用?

快速搭建实验环境:使用 Terraform 部署 Proxmox 虚拟机

0cfbbf24094c33736c9f9706b993cd6d.gif

点分享

24312f78cfbd05c592b27aff8d8fe3ca.gif

点收藏

aa1ff0ba21c073015ee79211c88a1f39.gif

点点赞

d4a780b89007eab7762e9c64ab77652b.gif

点在看

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FL63Zv9Zou86950w/article/details/122374712

智能推荐

今日头条阅读量怎么刷_今日头条阅读量怎么刷 今日头条怎么增加阅读量-程序员宅基地

文章浏览阅读4.9k次。今日头条阅读量怎么刷呢,这是很多小伙伴们都关注的一个问题。今日头条怎么增加阅读量呢,有没有轻松简单的方法?今日头条阅读量怎么刷?你可以让水军帮你买阅读量,那些几千万阅读量的基本都是靠水军买阅读量。今日头条买阅读量除了真人,还有一种方法,就是今日头条买阅读量软件。这个据说可以提高几千万阅读量的神器,我们就来看下到底是不是真的,会不会封号。因为大家对今日头条买阅读量比较关注,所以多说了一些。今日头条怎..._今日头条怎么买阅读量

IPFS最新消息!IPFS区块链分布式存储行业大会在四川召开_成都ipfs大会-程序员宅基地

文章浏览阅读2.1k次。IPFS最新资讯!前阵子各种消息的发布,让很多朋友非常紧张甚至不安。而且随后发布的行业消息也让很多朋友摸不着头脑。Web3.0中国峰会在6月18号四川全面关闭矿场之后,由四川政府主办的“Web3.0中国峰会中国大数据应用大会暨 IPFS区块链分布式存储行业大会”将于7月15日在成都世纪城新国际会展中心举行。之前已经宣布关闭四川比特币矿场,后面还将举行区块链分布式存储大会,这意味着什么?IPFS以分布式存储为核心,正好符合区块链技术的特点和需求。各种因特网数据都需要存储,这为 IPFS的发展提供了巨_成都ipfs大会

网络安全笔记_安全知识笔记-程序员宅基地

文章浏览阅读4.4k次,点赞9次,收藏69次。课程路径:华南理工大学公开课:网络安全网络安全将是未来的基石,万物互联的基础保障。第一节 现状分析病毒,变种病毒;漏洞攻击,技术人员的后门导致;假网址;中断,截获,篡改,伪造被动攻击和主动攻击安全服务:保密,认证,完整,不可否认安全框架:安全攻击,安全服务,安全机制第二节 常规加密技术公钥密码学加密操作类型:代换,置换,多重加密单密钥算法和多密钥算法对称加密:发送..._安全知识笔记

js判断日期合法性_js判断日期是否合法-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏6次。functioncheck(date){ return(newDate(date).getDate()==date.substring(date.length-2)); } //参数date可以格式化为xx-xx-xx或xxxx-xx-xx或用/分割 附:通常来说,javascript验证日期的有效性可以通过正则判断但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,..._js判断日期是否合法

matlab调用c,mex的 mexw64 不是有效的 Win32 应用程序-程序员宅基地

文章浏览阅读1.2k次。使用OpenCV库,进行混合编程时mex.c文件能够编译成功,并且生出mexw64文件: 但是在调用编程成功的函数时,提示下面的错误: 解决方法: 将系统环境变量中的OpenCV bin目录进行如下的修改。 将x86修改为x64,即:C:\OpenCV2.4\build\x86\vc10\bin;修改为:C:\OpenCV2.4\build\x64\..._mex 文件 'resize.mexw64' 无效: opencv

STL中迭代器的实现_stl迭代器实现-程序员宅基地

文章浏览阅读1.8w次,点赞6次,收藏21次。 STL中迭代器的实现junguo 最近在看候捷先生的《STL源码剖析》,侯先生写的挺好的。但我读起来总感觉有些拗,理解起来有些费劲,可能他看问题的观点和我不一样造成的。开始的时候总是不太理解,后来理顺了自己的思路,发现有些东西其实并不难。在此把我对迭代器的理解整理一下,也是帮助自己消化一下,因为我发现不动手,很多东西容易遗忘。 文章里提供的一些例子程序是在D_stl迭代器实现

随便推点

【机器学习-斯坦福】学习笔记18——线性判别分析(Linear Discriminant Analysis)(一)_拟合判别分析分类器-程序员宅基地

文章浏览阅读1.8k次。1. 问题 之前我们讨论的PCA、ICA也好,对样本数据来言,可以是没有类别标签y的。回想我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA来降维,但PCA没有将类别标签考虑进去,属于无监督的。 比如回到上次提出的文档中含有“learn”和“study”的问题,使用PCA后,也许可以将这两个特征合并为一个,降了维度。但假设我们的_拟合判别分析分类器

【简单】在单链表中删除指定值的节点-Java:解法二_单向链表怎么删除指定节点数据-程序员宅基地

文章浏览阅读905次。package live.every.day.ProgrammingDesign.CodingInterviewGuide.List;/** * 在单链表中删除指定值的节点 * * 【题目】 * 给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除。 * * 【难度】 * 简单 * * 【解答】 * 方法二:不用任何容器而直接调整的方法。时间复杂度为O(N),额外空间复杂度为O(1)。 * * 首先从链表头开始,找到第一个值不等于num的节点,作为新_单向链表怎么删除指定节点数据

python求解整数规划_如何用python结合cplex求解混合整数规划问题-程序员宅基地

文章浏览阅读1.4k次。第一步:注册IBM id账号第二步:下载相关系统的CPLEX(windows/linux/mac)这里需要系统中安装有JAVA,选择 open with Java web start launcher (需要下载JAVA),打开后就开始进入下载页面。补充JAVA安装:备注:JAVA可以通过rpm包安装,或者是bin文件安装。Rpm安装可以直接双击就可以打开jnlp后缀的文件,bin文件安装的话,需..._cplex求解双目标混合整数规划模型

CentOS 7.X 源码编译安装MariaDB-10.2.X_group ‘mail’ not found-程序员宅基地

文章浏览阅读2.5k次。CentOS 7 编译安装MariaDB-10.2.XCentOS 7下mariadb-10.1.22 源码编译安装过程笔记,希望对大家有帮助。 下载文件https://mariadb.com/ 或 https://downloads.mariadb.org/mariadb/10.2.11/
源码包的下载下载链接: https://mirrors.tuna.tsinghua.edu.cn/m_group ‘mail’ not found

wps中的大客户版本_wps 大客户版-程序员宅基地

文章浏览阅读462次,点赞11次,收藏8次。网上的WPS各个版本基本都带有稻香插件,广告一堆堆,用户需要注册才能减少广告的显示,但依然时不时跳出来显示。其实WPS给大学做过一些版本,这种定制版本应用于大学院系的文档编写使用。最关键的是这个版本没有广告,没有稻香,没有推荐模板,只有纯净的WPS。界面虽然不华丽,风格还是很传统office2000风格,不是烦人的多标签页,也不会隐藏。工具栏不会藏着掖着直接横排展示所有图标,鼠标不用切换页,所有工具一目了然。这集美大学版本是办公软件的不二之选。_wps 大客户版

Android自动化页面测速在美团的实践-程序员宅基地

文章浏览阅读587次,点赞8次,收藏19次。我们都知道ViewPager的Tab切换是可以通过一个 OnPageChangeListener 对象进行监听的,所以我们可以为ViewPager添加一个自定义的Listener对象,在切换时记录一个时间,这样可以通过用这个时间减去页面创建后的时间得出这个多余的等待时间,上报时在总时间中减去即可。这里的 getConfigModel() 方法中,会使用页面的类名或者全路径类名,去初始化时解析的配置Map中进行id的匹配,如果匹配到说明页面需要测速,就会创建测速对象 PageObject 进行测速。

推荐文章

热门文章

相关标签