美文网首页
iOS相关知识(七)--https 中间人攻击(是怎样攻击的)为

iOS相关知识(七)--https 中间人攻击(是怎样攻击的)为

作者: 奋斗的小马达 | 来源:发表于2021-09-22 10:49 被阅读0次

    HTTPS 中间人攻击。也就是通讯双方中插入一个中间人,通讯双方的对方已经变成中间人了,而不是原本的对方。

    HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。

    HTTPS的整体过程分为证书验证和数据传输阶段

    ① 证书验证阶段

    1. 客户端发起 HTTPS 请求

    2. 服务端返回 HTTPS 证书

    3. 客户端验证证书是否合法,如果不合法则提示告警

    ② 数据传输阶段

    1. 当证书验证合法后,客户端在本地生成随机数

    2. 通过公钥加密随机数,并把加密后的随机数传输到服务端

    3. 服务端通过私钥对随机数进行解密

    4. 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

    为什么数据传输是用对称加密?

    首先,非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。

    为什么需要 CA 认证机构颁发证书?

    HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。“中间人攻击”的具体过程如下:

    过程原理:

    1、客户端请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器

    2、中间人服务器返回中间人自己的证书

    3、客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输

    4、中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密

    5、中间人以客户端的请求内容再向正规网站发起请求

    6、因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据

    7、中间人凭借与正规网站建立的对称加密算法对内容进行解密

    8、中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输

    9、客户端通过与中间人建立的对称加密算法对返回结果数据进行解密

    由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。

    Q: HTTPS 为什么安全?

    A: 因为 HTTPS 保证了传输安全,防止传输过程被监听、防止数据被窃取,可以确认网站的真实性。

    Q: HTTPS 的传输过程是怎样的?

    A: 客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。

    Q: 为什么需要证书?

    A: 防止”中间人“攻击,同时可以为网站提供身份证明。

    Q: 使用 HTTPS 会被抓包吗?

    A: 会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。

    参考文章地址

    相关文章

      网友评论

          本文标题:iOS相关知识(七)--https 中间人攻击(是怎样攻击的)为

          本文链接:https://www.haomeiwen.com/subject/webwgltx.html