一、背景
1、一直不太明白面试为什么要问那么多八股,实际工作之后才慢慢发现那些都是基础,工具的使用都是基于计网基础的,而最近我的抓包工具一直用不了,出现如“SSL握手失败”“HTTPS响应已加密”“启用SSL代理查看内容”等问题。
提示信息为HTTPS响应已加密,就牵扯出一系列问题:HTTP的工作机制,为什么会有HTTPS,怎么加密?如何解密?HTTPS的工作机制是什么?
针对抓包问题搜索之后无果,解决方案几乎没有,于是挖了HPPTS的文章,跟着作者的思路看完之后收获颇多。
二、HTTPS
先写结论:
HTTP协议为明文传输,因此抓包工具可以直接获取到请求和响应结果,这也让更改与窃取通信双方的通信内容变得更加容易,于是就有了HTTPS 的存在,可以理解为是在HTTP传输工程中增加了加密解密过程的协议,也就是利用ssl加密协议进行加密,抓包得到的内容没有密钥也无法解密,加强了通讯的安全性
冲突域:共享同一个带宽的域,假设一条高速通道,四辆车想同时通过,如果一次只能过一辆,那么四辆车都想通过的这个条件就发生了冲突,如果按顺序一辆一辆地通过,那么该高速则是他们共享的通道,若将四个车最初到收费站的高速路线看作线缆,车看作主机设备,收费站看作集线器,他们与集线器的这一区域就形成了冲突域。
三、非对称加密和对称加密
假设客户端和服务端需要通信
1、对称加密
服务端和客户端传输时发送密钥加密后的密文和密钥,通过相同的密钥对其解密
2、非对称加密
加密和解密的密钥不相同,即公钥和私钥,公钥public为公开的,可以被任何人拿到,而私钥private不公开,用于解密
1、 非对称加密的过程
1、服务端生成一对公钥和私钥,公钥公开,客户端以及任何人都可拿到,私钥只有服务端有
2、客户端用公钥对对自己的对称密钥进行加密,将加密后的密钥传给服务器
3、服务器通过私钥对该请求的秘文解密,得到对称密钥
4、双方传输文件时发送对称加密后的秘文,并对其用对称密钥解密(不用非对称加密,是为了节省成本,)以此提高安全性
黑客攻击:中间人生成private2和public2,拦截服务端发给客户端的public1,将public2发给客户端,客户端用public2对其密钥加密,被拦截,并用private2对密文解密,得到密钥,再次用public1对密文加密,发送给服务端,服务端用private1对其解密,得到密钥,后续继续传输信息,都被黑客解密
证书:公钥+身份识别
CA证书:防止黑客篡改公钥,用于身份认证,以确保公钥的真实性
服务端申请证书后,第三方机构会返回包含公钥和身份标识的证书,黑客申请不到,服务器公开申请的证书所有人都能拿到,此时黑客拿到证书后无法篡改其中的公钥,若篡改,客户端用改后的证书去第三方验证,返回不合法的结果,识破黑客篡改;
客户端拿到服务端返回的证书去第三方机构验证是否合法,若合法则其中的公钥匙正确的