目录
一,fidler工具
前提知识
二,Https原理解析
1. 中间人攻击
2. 常见的加密方式
1). 对称加密
2). 非对称加密 + 对称加密
4). CA证书
1. 数据摘要
3. 数字签名
CA证书
理解数据签名
存在的安全疑问?
1. 中间⼈有没有可能篡改该证书?
2. 篡改整个证书包体?
如何成为中间⼈ - 了解
edge浏览器证书位置:
5). CA & 非对称加密 + 对称加密
总结
嗨!收到一张超美的风景图,愿你每天都能顺心!
一,fidler工具
简介:
fiddler 是由 C# 开发的最强大好用的免费web调试工具之一,可记录所有客户端和服务见的 http 以及 https 请求,可监视设断点,甚至修改输入输出数据,它还包含了一个强大的基于事件脚本的子系统,并且能使用 .net 语言来拓展。
简单理解:
详细教程,请参考其他博主。
前提知识
加密:就是把 明⽂ (要传输的信息)进⾏⼀系列变换, ⽣成 密⽂ .解密:就是把 密⽂ 再进⾏⼀系列变换, 还原成 明⽂ .
二,Https原理解析
首先,从前面的http协议开始,我们知道客户端可以通过get,post向服务端发出请求,post较get有隐私性,但他们终究是明文传输,只要截取,就能直接得到里面信息,甚至篡改,不安全。https协议就是来解决数据在这个安全问题。笼统的解释方法:对数据进行加密解密。
1. 中间人攻击
加密与解密,看似比较简单,但实际问题远比这复杂,下面让我们逐渐理解Https如何做到在网络中实现数据安全。
2. 常见的加密方式
1). 对称加密
因此密钥的传输也必须加密传输! 但是要想对密钥进⾏对称加密, 就仍然需要先协商确定⼀个 "密钥的密钥". 这就成了 "先有鸡还是先有蛋" 的问题了. 此时密钥的传输再⽤对称加密就⾏不通了。
2). 非对称加密 + 对称加密
⾮对称加密要⽤到两个密钥, ⼀个叫做 "公钥", ⼀个叫做 "私钥"。 公钥和私钥 是 配对 的. 最⼤的缺点就是 运算速度⾮常慢 ,⽐对称加密要慢很多.
如果最开始,中间⼈就已经开始攻击了呢? 问题是如何保证,从网络传来的S是否是真实的服务端的公钥?
4). CA证书
讲解CA证书时,我们首先了解:数字签名,数据摘要(或数据指纹)。
1. 数据摘要
• 摘要特征:和 加密算法 的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息( 无法反推原文 ),通常⽤来 进⾏数据对⽐ 。
3. 数字签名
对数据摘要进行加密后,就形成了数字签名。
CA证书
服务端在使⽤HTTPS前,需要向CA机构(政府单位)申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性。
申请CA证书的步骤:
可以使⽤在线⽣成CSR和私钥: https://myssl.com/csr_create.html
理解数据签名
1. CA机构拥有⾮对称加密的私钥A和公钥A'2. CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要3. 然后对数据摘要⽤CA私钥A'加密,得到数字签名S
存在的安全疑问?
1. 中间⼈有没有可能篡改该证书?
2. 篡改整个证书包体?
- 首先替换的证书也必须是真实有效的证书。
- 既然是真实有效的证书,其真实内容如果与所需要的网站或网页不同,客户端可以比较容易的检查发现。
如何成为中间⼈ - 了解
edge浏览器证书位置:
设置中搜索安全性
5). CA & 非对称加密 + 对称加密
流程梳理:
总结
https协议使用了三组加密:
1. 第一组(非对称加密):检测证书是否被篡改。服务器持有私钥(制作CSR时产生的一对密钥),客户端持有CA机构的公钥。当客户端第一次向服务端提出请求,服务端返回一个签名证书,客户端验证其证书的合法性。
2. 第二组(非对称加密):保证对称加密的密钥安全发送给服务端。在第一组中,如果客户端验证证书合法(或者我们强制信任此证书),我们将提取证书里的公钥,对对称加密的密钥进行加密,发送给服务端。
3. 第三组(对称加密):对后续数据加密。第二组中,客户端发送来对称加密的密钥,随后根据密钥,加密资源,向客户端发送资源,至此交换资源传递开始。
关系:第一组保证服务端公钥的真实性,第二组保证对称加密的密钥安全发送给服务端。
结语
本小节就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区评论,如果给小伙伴带来一些收获请留下你的小赞,你的点赞和关注将会成为博主创作的动力。