目录
前言:
1.对称加密原理
1.1加密原理
1.2预防缺陷
2.非对称加密原理
2.1加密原理
2.2预防缺陷
3.中间人攻击
3.1中间人攻击方法
3.2破解非对称加密
4.证书预防原理
4.1解决中间人攻击
4.2问题探究
(1)中间人有没有可能篡改该证书?
(2)中间人整个掉包证书?
4.3完整流程
HTTPS协议对于HTTP协议多了一个加密层,这个加密层通过多种方式对于网络攻击进行防御。
网络黑客的攻击手段多样,本节主要模拟网络黑客攻击,详解HTTPS的加密工作原理。
序列:HTTP/HTTPS - 006
在网络环境中,黑客往往可以捕获客户端和服务器之间的交互数据,这对于网络数据的安全性大大降低。
引入对称加密后,这一现象可以得到一定杜绝。
引入对称加密之后,即使数据被黑客截获,由于黑客不知道密钥是啥,因此就无法进行解密,也就不知道请求的真实内容是啥了。
但事情没这么简单,服务器同一时刻其实是给很多客户端提供服务的,这么多客户端,每个人用的秘钥都必须是不同的(如果是相同那密钥就太容易扩散了,黑客就也能拿到了).
因此服务器就需要维护每个客户端和每个密钥之间的关联关系,这也是个很麻烦的事情~
比较理想的做法,就是能在客户端和服务器建立连接的时候,双方协商确定这次的密钥是啥~
但是如果直接把密钥明文传输,那么黑客也就能获得密钥了 ,所以引入非对称加密。
客户端在本地生成对称密钥,通过公钥加密,发送给服务器.由于中间的网络设备没有私钥,即使截获了数据,也无法还原出内部的原文,也就无法获取到对称密钥
服务器通过私钥解密,还原出客户端发送的对称密钥,并且使用这个对称密钥加密给客户端返回的响应数据
后续客户端和服务器的通信都只用对称加密即可,由于该密钥只有客户端和服务器两个主机知道,其他主机/设备不知道密钥即使截获数据也没有意义
那么接下来问题又来了:
客户端如何获取到公钥?
客户端如何确定这个公钥不是黑客伪造的?
黑客可以通过中间人攻击进行破解非对称加密。
黑客可以使用中间人攻击,获取到对称密钥。
在客户端和服务器刚一建立连接的时候,服务器给客户端返回一个 证书这个证书包含了刚才的公钥,也包含了网站的身份信息.
当客户端获取到这个证书之后,会对证书进行校验(防止证书是伪造的).
判定证书的有效期是否过期
判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)
验证证书是否被篡改:从系统中拿到该证书发布机构的公钥,对签名解密,得到一个 hash 值(称为数据摘要),设为 hash1.然后计算整个证书的 hash 值,设为 hash2.对比 hash1和 hash2 是否相等.如果相等,则说明证书是没有被篡改过的,
中间人篡改了证书的明文
由于他没有CA机构的私钥,所以无法hash之后用私钥加密形成签名,那么也就没法办法对篡改后的证书形成匹配的签名
如果强行篡改,客户端收到该证书后会发现明文和签名解密后的值不一致,则说明证书已被篡改证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人
因为中间人没有CA私钥,所以无法制作假的证书(为什么?)
所以中间人只能向CA申请真证书,然后用自己申请的证书进行掉包.
这个确实能做到证书的整体掉包,但是别忘记,证书明文中包含了域名等服务端认证信息,如果整体掉包,客户端依旧能够识别出来。
永远记住:中间人没有CA私钥,所以对任何证书都无法进行合法修改,包括自己的
左侧都是客户端做的事情,右侧都是服务器做的事情
以上便是模拟网络黑客攻击中HTTPS协议的几个预防方法。