Linux网络: HTTPS | 加密 | 中间人攻击 | 安全证书


全文约 1689 字,预计阅读时长: 5分钟


前言

  浏览器的难度成本特别高,不亚于任何一款工业及软件。由于某年谷歌内核开源,才有了百花争鸣的局面,导致前端的标准有八成一样,剩下的两成自由发挥。有人的地方,便有市场,有市场便会有斗争。

  HTTP的报文可以通过某些应用程序,以代理劫持浏览器的方式,进行HTTP请求抓取。无论是GET 方法还是 POST 方法传输的报文都是一览无遗。只有经过加密的数据,才能保证在理论上是安全的。
在这里插入图片描述


数据指纹

  • 一个文本内容,用哈希算法提取出文本中的部分内容,将此文本发送给对方,用同样的算法,也能提取到相同的部分内容,这部分内容叫做摘要。
    • 对摘要再进行特定的加密得到的数据,就叫做数据指纹。MD5对摘要再加密形成的指纹数据长度是确定的。
    • 凡是对原始文本做任何修改,进行摘要形成指纹后,得到的指纹数据差别会非常大。
    • 登录时,服务端数据库中的数据指纹和你的指纹数据进行对比;还有采取 “ 密码加盐 ”等方法。

对称加密 | 非对称加密

  • 对称加密:加密和解密都用一个密钥。非对称加密:公钥加密,私钥解密;或者私钥加密,公钥解密。
    • 异或运算,是一种简易的加密算法。
x ^ y = z; 
z ^ y = x;
// x 是数据,y是密钥 z是加密之后的结果。
  • 所有的密码学加密算法,是和CPU算力相关。如果向破解一个加密的数据,只要我们的算力足够,就大概率可以破解。何为安全?安全就是破解的成本 远大于 破解的收益,因为强大的算力是需要强大的成本的。

  客户端与服务端进行通信时,对称加密意味着对方必须知道你的密钥。密钥也是数据,客户端在进行发送数据之前,必须先将密钥给对方。非对称加密中,一般公钥是公开的,私钥必须保存。

  那么http选择什么种类的加密算法呢?不能使用对称加密,因为第一次的交换密钥就是一个大问题。可以使用两个公钥私钥算法解决,但需要 所有的 客户端和服务端提前内置公钥和私钥,这样只能用私钥解密,可以保证单向的数据安全。其中对称加密效率快一些,非对称加密效率特别低。因此需要将两者通过某种方法组合一下,便有了在密钥协商阶段:用非对称加密解密算法,加密通信阶段用对称加密解密算法。


密钥协商 | 加密通信

  • 前期ssl握手期间,使用非对称加密,来交换对称加密的密钥;通信期间,采用对称加密保证数据安全。
    在这里插入图片描述

中间人攻击

  • 中间人在http发起请求后,截取服务端返回的明文公钥 A;因为此时的通信是裸奔状态。之后把原本服务端的公钥A换成自己的公钥 M 返回给客户端。
  • 客户端以为自己获取到的服务端的公钥A,但其实是M。于是就将自己的对称密钥D,用公钥M加密,再发送给服务器;
  • 此时唯有中间人的私钥m,才可以解开;截取请求以后,解密得到客户端的密钥D。中间人再将客户端密钥D,用A公钥加密;返回给服务端。
  • 中间人,服务端都得到了客户端的对称密钥D,浑然不知。
    在这里插入图片描述

安全证书

  • 如何确认对方发来的公钥是合法的,没有被篡改?此时需要有权威的机构(CA机构)对网站、服务器进行合法认证,颁发数字证书。
    • 用证书的目的是为了证明服务端发过来的公钥是合法的。
  • 那么如何证明证书是合法的、而且没有被篡改过?证书与服务器公钥之间进行怎样的配合呢?
    • 颁给服务端的证书的找摘要,用CA机构的私钥加密,用CA公钥解密获取摘要。只要对证书的内容有任何修改,指纹的变化就非常大,CA公钥解不开指纹。
    • 客户端通过对比证书摘要 和 指纹揭秘之后的携带的摘要是否相等,来判定是否篡改过。
    • 同时也证明了证书的合法性。
  • 申请 与 颁发证书流程:

在这里插入图片描述

  • 颁发证书过程:
    在这里插入图片描述
  • 客户端对服务端发送过来的证书进行认证:
    在这里插入图片描述

在这里插入图片描述

  • 证书返回给客户端的过程中,也是明文传送的。中间人如果修改了证书的数字指纹,客户端用且只用CA的公钥解密进行证书认证时,造成的现象是解不开。
  • 中间人监听,攻击也是有成本的;如果拿不到对称密钥就对数据进行破坏,此时服务端便会发现并进行反追踪等等…

  因此世界上的任何一份证书+指纹,没有任何一个人可以修改。因为没有CA的密钥,无法重新二次生成指纹。

  • 操作系统、浏览器出厂时,内置了各种权威机构的根认证机构的各种证书(公钥)。OS、浏览器、CA认证机构利益不冲突,互相促进。
    在这里插入图片描述

寄语

  • 计算机世界的任何名词,都有相应的软、硬件提供底层支持,计算机的发展与现实世界中的商业竞争密不可分。
  • 下一篇:UDP 与 TCP 协议
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值