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

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

1.为什么要用证书?

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

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

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

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

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

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

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

image-20211017180327099


2.什么是证书

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

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

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

问题:

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

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

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

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

    ​ 百度的证书信息:

    image-20211022144805322

    ​ 浏览器默认:

    image-20211022145015417


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

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

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

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

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

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

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

  6. ……

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

实验证明:

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

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

​ 开启Fiddler后查看证书:

image-20211022151215022

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值