作者 | 轩辕之风
来源 | 编程技术宇宙
大家好,我是轩辕。
上周,微信里有个小伙伴儿给我发来了消息:
随后,我让他截了一个完整的图,我一瞅,是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 虚拟机
点分享
点收藏
点点赞
点在看
QAS是直接从Product做Client Copy出来的,所以遇到诸多问题。 A. Transfer structure prefix for source system T90CLNT090 is not defined 我激活DSO的时候出现以上错误。 从网上找到了解决的方法:1. Go to WE20 an
前段时间公司要开发一个后台管理系统,思考了半天,决定选用vue这一框架,其实是公司强制要求的,哈哈,好了,别的不多说了,今天主要是帮助大家快速搭建起vue项目。第一步,安装node和npm百度搜索关键字'node',就可以了,然后根据电脑的操作系统,直接下载就可以了具体的安装步骤就不细说了,这个网上有很多,实际上一直点下一步就可以了,哈哈现在最新的node里面已经包含有npm了,所...
蓝桥杯 算法提高——输出九九乘法表问题描述编制程序,按照下述格式打印九九乘法表。输出样例:Nine-by-nine Multiplication Table-------------------------------------- 1 2 3 4 5 6 7 8 9-------------------------------------- 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5
int main( int argc , char *argv[ ] , char *envp[ ] ) 详解: main函数的参数列表保存了输入参数的信息:第一个参数argc记录了输入参数的个数。第二个参数是字符串数组的,字符串数组的每个单元是char*类型的,指向一个c风格字符串,arg[ ]指向的数组中至少有一个字符指针,即ar
文章目录1. if2. choose3. where4. set5. foreach5.1. 集合遍历5.2. 批量执行5.2.1. MySQL5.2.2. Oracle6. 特殊符号6.1. 转义字符替换6.2. CDATA 部件包含1. if通过title和author两个参数进行可选搜索。<select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = 'ACTIVE' &
全部章节的笔记:1.使用var声明变量,可赋予不同类型的值。如果不初始化变量的值,则默认是null。赋值以后变量的数据类型就已经确定。2.使用final声明一个只能赋值一次的变量。3.使用const声明常量。使用const声明的必须是编译期常量(在编译的时候就能确定的值)。4.isNaN是否是非数字,isEven是否是偶数,isOdd是否是奇数。abs()绝对值,round()四舍五入,floor...
有线耳机与蓝牙耳机的连接监听(插入、拔出、处于连接状态)author —Dabin 项目要做插入耳机的判断进行一些逻辑操作,刚开始只写入了,插入或者拔出的监听,但是呢,耳机处于连接状态的改怎么判断呢,把声音管理器给忘记了,搜索了一下,代码如下,注释很清楚了。在这记录一下。package com.example.dabin.headset;import androi...
解决: -bash: yum: command not found错误最近在学习Linux,今天不小心在CentOS7系统下把yum命令给删除了,于是百度了好几篇文章,实话照他们的操作去做,实在不敢说啥,只得自己手动了.......步骤如下第一步: http://mirrors.163.com/centos/6/os/x86_64/Packa
js Date 类型 的取值、计算、格式化 与 moment.js前言笔者工作多年,作为一个爱思考的程序员,一直在想一个问题:究竟怎样才可以让自己变的更强。。对不起各位,说的太中二了,让我们重新来一遍 : 究竟怎样才可以提高自己的工作能力,提高自己的职业技能,究竟怎样才可以让自己更快、更快的成长。古人曾经云过,灵光总会在放大的时候一闪而过,而你的任务,就是抓住它,记录它,思考它,并且,去做...
1.在同当前窗口中打开窗口baidu等效js代码window.location.href="http://www.baidu.com"; 2.在另外新建窗口中打开窗口baidu等效于js代码window.open("http://http://www.baidu.com");
Python 读写文件并按照固定格式输出有两个csv files,分别是08和09年的数据,里面含有school ID和对应的stu结果打印出来还是输出到文件 中?其实所谓没有喜欢的人,都是因为心里有一个不能忘记的人。python怎么以追加的方式写文件黑夜,铭记起初的誓言,低头转身,看不见的身影,让回忆离去,不再沉沦此生;往事成烟似沙从指尖留,又一轮回,那跳跃在指尖上的承诺,渐行渐远。python...
poppy-software engineer-bj 说:开始啦心无痕-要饭儿-bj 说:?》susan- pa-襄樊 说:欢迎poppy-software engineer-bj 说:我开始讲了,项目中的烦恼心无痕 -要饭儿-bj 说:好的,欢迎。romeo,网络解决方案专家,IT~达人~电联13911514882 说...