freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

证书的详细探究,以及抓包工具为什么要导入自己的证书
2021-11-19 13:30:25

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

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

# 证书 # 计算机网络
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录