证书的详细探究,以及抓包工具为什么要导入自己的证书

证书的详细探究,以及抓包工具为什么要导入自己的证书

文章目录

证书的详细探究,以及抓包工具为什么要导入自己的证书1.为什么要用证书?2.什么是证书3.抓包软件为什么要导入证书

证书的详细探究,以及抓包工具为什么要导入自己的证书

1.为什么要用证书?

知道什么是证书之前需要了解下 “非对称加密”

对称加密:客户端和服务器用一个秘钥加密和解密,效率高

非对称加密:将公钥公布于众,客户端拿公钥加密,服务器拿自己的私钥解密,这样即使数据被截获,别人也解密不出明文内容,效率低。

​ 非对称加密有两个秘钥,公钥和私钥,而这两个秘钥只要用一个加密,另一个就能解密,我们正常加密数据用公钥加密,用私钥解密

​ 而我们还有一种用法就是服务器发数据用私钥加密,客户端用公钥解密,那么客户如果用公钥正确解密出数据,那么就证明这个数据一定是服务器发的,因为私钥只有它知道,这个过程我们一般不叫加密,叫签名,也就是服务器对数据签个名,代表这个确确实实是它发的。

​ 其实我们正常情况下因为对称加密效率虽高,但是不安全,因为它告诉对方秘钥的时候这个秘钥容易被截获,但是我们如果用非对称加密,安全是安全,效率又太低,所以一般采用对称加密来加密数据,非对称加密配送对称加密的秘钥。

​ 因为公钥是在网络上进行传输的,那么假如遭遇了如下图所示的中间人攻击,那么A的私钥就可能是伪造的。那么如何验证公钥的合法性呢?------证书

2.什么是证书

​ 证书就是由认证机构,采用它们自己的私钥,对发送方的公钥和发送方的信息进行数字加密。各大CA(认证机构)的证书已经默认被添加到了浏览器和操作系统中。

服务器生成自己的密匙对——公钥和私钥服务器在认证机构注册自己的公钥认证机构(CA)用自己机构的私钥对,服务器的公钥进行数字签名并生成证书(里面带了这个签名过得公钥和服务器一些信息)认证机构把证书给客户端客户端用认证机构的公钥验证数字签名认证成功后用里面带的服务器的公钥加密并发消息给服务器服务器用自己的私钥解密

这样一来就可以解决数据传输的安全问题了

问题:

如果黑客在第二步服务器在认证机构注册公钥的时候截取数据呢?

​ 这个完全不用担心,CA证书的申请,流程很多,而且较为严格,比如准备很多文件,再比如CA那边如果通过后还会要申请方这边的管理员验证之类的。

第五步的认证机构的公钥咋传输的?如果黑客改了呢?

​ 如果改了那么这个证书就不会验证成功,其实各大CA的公钥已经在系统和浏览器中内置了。看下边的例子:

​ 百度的证书信息:

​ 浏览器默认:

3.抓包软件为什么要导入证书

​ 我们如果用过Charles、Fiddler或者其它抓包软件,那么一定对抓HTTPS包需要导入抓包软件的证书的流程不陌生,那么为什么它能解密HTTPS数据,为什么它需要导包呢?看以下流程:

客户端发一个HTTPS请求,被Fiddler拦截并且Fiddler伪装成客户端发请求给服务器

服务器像假装成客户端的FIddler返回了CA证书

自己制作了一张证书,假装服务器给客户端发了自己做的证书。获取服务器的公钥

客户端生成对称秘钥,并用Fiddler假冒的公钥加密发送

Fiddler用自己的私钥解密获取对称秘钥

……

​ 这样的话Fiddler能完全获取解析到双方加密的数据。

实验证明:

抛去实验的空谈结论,都是耍流氓

​ 当我们正常访问百度,查看证书: ​

​ 开启Fiddler后查看证书:

🌟 相关推荐

jim汽车是什么车
棋牌365大厅

jim汽车是什么车

📅 06-28 👁️ 7918
楼梯平面图怎么看上下?楼梯设计规范是什么?
棋牌365大厅

楼梯平面图怎么看上下?楼梯设计规范是什么?

📅 07-02 👁️ 4142
美工刀怎么换新刀片呢?
365娱乐头条

美工刀怎么换新刀片呢?

📅 07-08 👁️ 7024