作者 | 轩辕之风
来源 | 编程技术宇宙
大家好,我是轩辕。
上周,微信里有个小伙伴儿给我发来了消息:
随后,我让他截了一个完整的图,我一瞅,是HTTPS啊!没用HTTP!再一瞅,是www.baidu.com啊,不是什么山寨网站!
我瞬间明白了些什么,让他点击了一下浏览器地址栏中那个表示安全的小锁标志,查看了一下网站使用的HTTPS证书。
果然不出我之所料,证书不是官方的,官方的证书长这样:
而那个假的证书是他们公司签发的,看来,他们公司开始对HTTPS流量做解析了,这家伙瞬间瑟瑟发抖···
今天就来跟大家聊一下:HTTPS真的安全吗?
现如今大家每天上网基本上看到的都是使用了HTTPS的网站,有时候特意想找一个HTTP的网站来让新同学练习抓包分析都不好找。
但在几年前,差不多我刚刚开始毕业工作(2014年)的时候,情况却不是这样的,网络上还有大量使用HTTP的网站。
大家知道,HTTP是超文本传输协议,数据内容在网络中都是明文传输的,非常不安全。同在一个宿舍里的同学,随便搞一个中间人劫持就能监听到你浏览了什么视频学习网站。
不仅如此,上网链路中包括寝室路由器在内的各级网络设备都可以探知你的数据,甚至给你插入小广告(其实这种现象现在依然存在,尤其是很多医院、学校的网站,还是很多都是用HTTP,特别容易粘上小广告),一不小心就跳到了广告页面,真是防不胜防。
不久,网站HTTPS化的浪潮很快打来,通过加密这一最简单直接的办法,将浏览器上网过程中传输的数据进行加密保护,上网内容的安全性得到了极大的提升。
我之前写过一篇故事深入浅出的描述了HTTPS的工作原理,还不懂的小伙伴儿可以学习一下,我经常也会在面试中考察候选人这个问题,这可以迅速帮助我知道对方对HTTPS的了解程度。
咱们通过下面的快问快答环节来简单总结一下。
HTTPS为什么安全呢?
因为数据加密了啊~
那数据加密的秘钥怎么来的?
是双方通过相同的随机数计算出来的。
那随机数怎么传输的?
使用非对称加密传输的,浏览器使用服务器提供的公钥加密,只有服务器使用自己的私钥才能解开,别人解不开。
你怎么知道那是服务器的公钥,万一是别人的,中间人攻击呢?
有证书来证明服务器身份
证书万一是假的呢?
不可能,假的证书不是受信任的机构签发的,浏览器会验证通不过。
那浏览器怎么知道证书的签发机构是不是受信任的?
因为受信任机构的根证书安装到了系统中,你总得相信微软吧!
要是假的根证书被安装进了系统咋办?
看到了吧,HTTPS能够安全的基石是非对称加密,非对称加密建立的前提是对方真的是对方,如果这一个前提不成立,后面的一切都是假的!
网站服务器使用HTTPS进行通信时,会提供一个用于证明身份的证书,这个证书,将会由某个受信任的机构签发。
浏览器拿到这个证书后,会校验证书的合法性,去检查证书的签发机构是不是受信任的。
那如何去检查签发机构是不是受信任的呢?
答案是继续检查签发机构的证书,看看是谁给他签发的,一直这样追溯,直到找到最终的签发者,看看最终的签发者的证书是不是安装在操作系统的受信任的根证书列表中。
是不是已经晕了?没关系,我们来用百度的那个证书为例,看一下这个过程,你就知道什么意思了。
你可以通过点击证书路径tab页面查看证书的签发链条:
通过这个树形结构图,可以清晰地看到:
baidu.com
这个域名使用的证书,是由名为GlobalSign Organization Validation CA - SHA256 - G2
的颁发者签发的。
而这个颁发者的证书,又是由GlobalSign Root CA - R1
签发的。
浏览器拿到这个最顶层的签发证书后,去操作系统安装的受信任的根证书列表中一找,嘿,还真让它找着了!
于是,浏览器信任了这个证书,继续接下来的通信过程。
如果找不到,浏览器就会弹出不受信任的消息,提醒用户要当心了!
而如果,有人在你的电脑中安装了一个自己的根证书进去,骗过浏览器,这一切安全的根基也就倾覆了。
而文章开头那个小伙伴儿之所以弹出了那个窗口,多半是根证书还没安装进去,就开始了HTTPS劫持。因为重启之后,便再也没有这些提示信息,一切如往常一样风平浪静,只不过上网的流量已经被公司悉数掌握。
看到这里,还不赶紧点开浏览器地址栏的那把锁,看看证书的签发机构是不是你们公司?
如果是,那恭喜你了~
往期推荐
低代码发展专访系列之八:低代码平台能够打破企业「应用孤岛」现象吗?
快速搭建实验环境:使用 Terraform 部署 Proxmox 虚拟机
点分享
点收藏
点点赞
点在看
文章浏览阅读4.9k次。今日头条阅读量怎么刷呢,这是很多小伙伴们都关注的一个问题。今日头条怎么增加阅读量呢,有没有轻松简单的方法?今日头条阅读量怎么刷?你可以让水军帮你买阅读量,那些几千万阅读量的基本都是靠水军买阅读量。今日头条买阅读量除了真人,还有一种方法,就是今日头条买阅读量软件。这个据说可以提高几千万阅读量的神器,我们就来看下到底是不是真的,会不会封号。因为大家对今日头条买阅读量比较关注,所以多说了一些。今日头条怎..._今日头条怎么买阅读量
文章浏览阅读2.1k次。IPFS最新资讯!前阵子各种消息的发布,让很多朋友非常紧张甚至不安。而且随后发布的行业消息也让很多朋友摸不着头脑。Web3.0中国峰会在6月18号四川全面关闭矿场之后,由四川政府主办的“Web3.0中国峰会中国大数据应用大会暨 IPFS区块链分布式存储行业大会”将于7月15日在成都世纪城新国际会展中心举行。之前已经宣布关闭四川比特币矿场,后面还将举行区块链分布式存储大会,这意味着什么?IPFS以分布式存储为核心,正好符合区块链技术的特点和需求。各种因特网数据都需要存储,这为 IPFS的发展提供了巨_成都ipfs大会
文章浏览阅读4.4k次,点赞9次,收藏69次。课程路径:华南理工大学公开课:网络安全网络安全将是未来的基石,万物互联的基础保障。第一节 现状分析病毒,变种病毒;漏洞攻击,技术人员的后门导致;假网址;中断,截获,篡改,伪造被动攻击和主动攻击安全服务:保密,认证,完整,不可否认安全框架:安全攻击,安全服务,安全机制第二节 常规加密技术公钥密码学加密操作类型:代换,置换,多重加密单密钥算法和多密钥算法对称加密:发送..._安全知识笔记
文章浏览阅读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判断日期是否合法
文章浏览阅读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
文章浏览阅读1.8w次,点赞6次,收藏21次。 STL中迭代器的实现junguo 最近在看候捷先生的《STL源码剖析》,侯先生写的挺好的。但我读起来总感觉有些拗,理解起来有些费劲,可能他看问题的观点和我不一样造成的。开始的时候总是不太理解,后来理顺了自己的思路,发现有些东西其实并不难。在此把我对迭代器的理解整理一下,也是帮助自己消化一下,因为我发现不动手,很多东西容易遗忘。 文章里提供的一些例子程序是在D_stl迭代器实现
文章浏览阅读1.8k次。1. 问题 之前我们讨论的PCA、ICA也好,对样本数据来言,可以是没有类别标签y的。回想我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA来降维,但PCA没有将类别标签考虑进去,属于无监督的。 比如回到上次提出的文档中含有“learn”和“study”的问题,使用PCA后,也许可以将这两个特征合并为一个,降了维度。但假设我们的_拟合判别分析分类器
文章浏览阅读905次。package live.every.day.ProgrammingDesign.CodingInterviewGuide.List;/** * 在单链表中删除指定值的节点 * * 【题目】 * 给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除。 * * 【难度】 * 简单 * * 【解答】 * 方法二:不用任何容器而直接调整的方法。时间复杂度为O(N),额外空间复杂度为O(1)。 * * 首先从链表头开始,找到第一个值不等于num的节点,作为新_单向链表怎么删除指定节点数据
文章浏览阅读1.4k次。第一步:注册IBM id账号第二步:下载相关系统的CPLEX(windows/linux/mac)这里需要系统中安装有JAVA,选择 open with Java web start launcher (需要下载JAVA),打开后就开始进入下载页面。补充JAVA安装:备注:JAVA可以通过rpm包安装,或者是bin文件安装。Rpm安装可以直接双击就可以打开jnlp后缀的文件,bin文件安装的话,需..._cplex求解双目标混合整数规划模型
文章浏览阅读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
文章浏览阅读462次,点赞11次,收藏8次。网上的WPS各个版本基本都带有稻香插件,广告一堆堆,用户需要注册才能减少广告的显示,但依然时不时跳出来显示。其实WPS给大学做过一些版本,这种定制版本应用于大学院系的文档编写使用。最关键的是这个版本没有广告,没有稻香,没有推荐模板,只有纯净的WPS。界面虽然不华丽,风格还是很传统office2000风格,不是烦人的多标签页,也不会隐藏。工具栏不会藏着掖着直接横排展示所有图标,鼠标不用切换页,所有工具一目了然。这集美大学版本是办公软件的不二之选。_wps 大客户版
文章浏览阅读587次,点赞8次,收藏19次。我们都知道ViewPager的Tab切换是可以通过一个 OnPageChangeListener 对象进行监听的,所以我们可以为ViewPager添加一个自定义的Listener对象,在切换时记录一个时间,这样可以通过用这个时间减去页面创建后的时间得出这个多余的等待时间,上报时在总时间中减去即可。这里的 getConfigModel() 方法中,会使用页面的类名或者全路径类名,去初始化时解析的配置Map中进行id的匹配,如果匹配到说明页面需要测速,就会创建测速对象 PageObject 进行测速。