【网络】一文读懂HTTPS协议

张开发
2026/4/13 8:38:09 15 分钟阅读

分享文章

【网络】一文读懂HTTPS协议
目录HTTPS是什么如何解决明文传输导致的危险加密操作的几个概念具体加密方式--对称加密具体加密方式--非对称加密具体加密方式--引入证书HTTPS是什么前面说了HTTP协议其实HTTPS和他底层是一样的只是HTTPS在HTTP协议的基础之上加了一个加密层那么数据就不是明文传输的了如果使用我们Fiddler这样的抓包工具抓到了包也不知道我们传输的具体内容是什么了。为啥要使用HTTPS呢上面说了本质是对我们传输的数据进行加密在讲解HTTP协议的时候我们说了报头里面的一个字段Refer大部分用来记录跳转到广告页面的页面是哪一个方便广告主统计是那个页面跳转的付给对方应有的报酬, 在互联网早期的时候我们大部分公司使用的都是HTTP协议来明文传输数据这个时候我们要进行网络传输都要经过运营商的路由器/交换机这个时候有一些运营商就让路由器解析到应用层拿到HTTP里面的内容把Refer字段进行修改成自己的页面跳转到广告页面这个时候导致内容被恶意篡改了那么付给原打广告公司的广告费就到了运营商的钱包里面了如何解决明文传输导致的危险解决明文传输的危险就是不再使用明文传输而是对我们传输的数据进行加密。这样我们黑客无法查看并且修改我们的数据‘加密操作的几个概念明文要传输的真实数据可以直接读取理解他的意思。密文把明文加密后的数据无法直接读取并且理解意思。密钥加密和解密的关键工具。就如同我们的钥匙既能上锁也可以解锁。对称加密加密和解密是用同一个密钥非对称加密加密和解密是不同的密钥。两个密钥是成对的如k1和k2k1可以用来加密k2可以用来解密k2也可以用来加密k1也可以用来解密两个密钥一个公开出去叫做公钥一个不公开出去叫做私钥。也就是如果一个只能用来加锁另一个只能解锁。具体加密方式–对称加密客户端/服务器先通过网络设备传输加密的密钥给对端让他知道我们后面的加密密钥是用的什么后续密文传输就可以通过密钥来解密。这里看似是安全了后面可以直接用密文传输但是如果我们黑客把网络设备(这里是路由器)入侵了通过网络设备抓包到了我们传输的数据那么我们之前明文传输的密钥不就让黑客知道了吗这个时候黑客也拿到了这个密钥那么后续传输的密文都可以用这个密钥来解密这不相当于是没有加密吗具体加密方式–非对称加密对于上面对称加密方式如果我们黑客入侵了拿到了既能加密又能解密的密钥黑客就可以为所欲为了仔细想一想黑客能解密的关键就是这个密钥既可以加密又可以解密而且采用的是明文传输那么现在非对称加密传输我们的解密的密钥不再采用加密传输我们客户端拿到的是公钥用来加密我们服务器拿到的是私钥用来解密客户端密文传输对称公钥给服务器告诉他用这个对称密钥进行加密传输后面服务器说好的并采用密文响应返回客户端解密的私钥这个时候我们黑客入侵的网络设备就只知道是非对称加密的公钥是什么但是不知道解密的私钥是什么因为我们解密的私钥采用的是密文传输那么黑客就没办法拿到后续对称密钥加密的密钥了当客户端收到解密的私钥后后续直接采用对称加密进行传输反正黑客入侵的网络设备并不知道对称密钥是什么只有客户端和服务器知道解密的对称密钥是啥。只使用非对称加密进行传输是否可行可以但是并不建议因为我们如果只使用非对称加密进行传输的话因为我们非对称加密的加密解密成本消耗的 CPU 资源远远高于对称加密所以大规模使用的话会非常消耗CPU资源。但是非常遗憾的是这样看似安全的加密方式还是有缺陷我们客户端从哪里获取公钥来加密传输答案是服务器。那么要从服务器获取公钥中间一定要靠黑客入侵的网络设备来当中间传输。黑客就有机可乘了。因为我们客户端需要向服务器索要用来加密的公钥这个时候一定会经过黑客入侵的网络设备并且拿到的公钥也是由黑客入侵的网络设备返回的这个时候客户端并不能判断黑客入侵的网络设备返回的公钥到底是不是服务器返回的。有没有被修改过。这个时候黑客入侵的网络设备伪装成服务器给客户端pub2公钥客户端也无法判断他到底是不是服务器的就直接相信了之后传输对称公钥就使用pub2公钥进行加密传输, 那么被黑客入侵的网络设备那里就要pri2可以解密pub2密文这个时候就知道了我们后续传输使用的对称公钥。后续采用对称加密传输的时候就可以直接解密拿到明文数据了。对于这种攻击方式叫做中间人攻击服务器和客户端都无法识别对方的身份直接无条件信任导致被欺骗具体加密方式–引入证书导致我们非对称加密失败的原因主要就是我们服务器和客户端无条件信任了被黑客入侵的网络设备传输的数据找到了问题所在我们就需要对现在的问题给出解决方案对我们被黑客入侵的网络设备传输的公钥进行验证真假。就像我们验证一个人的身份需要出把身份证刷公安系统验证身份证的真假什么是证书 证书就是一个结构化的字符串由公证机构来颁发。证书又是如何来验证数据的呢通过计算证书的字段得出检验和然后用我们公证机构的pri3私钥进行加密就得到了数字签名这个时候我们客户端不再直接向服务器索要公钥而是问证书如果黑客依旧故技重施把证书的数据(比如公钥)修改了我们客户端哪里会用公证机构的pub3解密数字签名拿到校验和采用同样的计算方式来把证书的字段算出一个校验和(来比对证书里面校验和如果不一致那么客户端拒绝传输后面的数据。还有问题1.黑客是否可以把数字签名修改了来欺骗客户端呢答案是不行的因为黑客只有pub3只有解密数字签名没有用来加密的pri3就不能生成数字签名(除非把公证机构黑了拿到pri3但几乎不可能也没必要)2.那么我们黑客是否可以再故技重施对公证机构申请一个证书然后把公证机构的证书换掉进行中间人攻击呢还是不行的证书中还需要包含服务器的域名域名是唯一的黑客申请的证书的域名和原服务器的域名肯定是不同的。客户端拿到证书之后一看域名都不一样直接就知道证书是假的了都不用进行校验和验证了当然上述的过程所谓的安全也不是绝对的安全。上述的安全本质上都是基于非对称加密体系。非对称加密体系也不是无懈可击的只不过破解这样的加密体系需要的计算量非常大超出了现有计算机的算力上限。随着算力的提升尤其是量子计算机崛起我们的算力又会大幅度提升对现有的密码学体系就会造成重大冲击g.csdn.net/Yeeear/article/details/142438540

更多文章