TLS1.3防止降级攻击的方法

背景

最近回顾了一下SSL/TLS协议,重点看了看TLS1.3的优点。其中有一条是可以有效地防止降级攻击,但是具体怎么防止的网上没有比较详细的中文资料,所以我对一些英文资料做了一下总结。

降级攻击

降级攻击的具体流程看下图就可以了:
降级攻击的原理
以TLS1.2为例,TLS1.2的详细流程可以看https://www.51cto.com/article/698090.html

攻击者以中间人的身份,监听客户端和服务器的通信。
在客户端发送请求的时候,攻击者将客户端请求的加密算法更改为安全性较弱的加密算法,如果服务端支持该加密算法,他会告诉客户端以后咱俩就用这个加密了。
然后攻击者对生成的弱加密算法的密钥进行破解(如图中所示的暴力破解),伪造Finished message,然后对正常通信的内容进行解密与加密,这样就可以获取到所有的正常通信内容了。

TLS1.3防止降级攻击的手段

https://blog.gypsyengineer.com/en/security/how-does-tls-1-3-protect-against-downgrade-attacks.html

TLS1.3有两种方法来防止降级攻击:
1、客户端和服务器发送的Finished message包含了之前所有握手消息的MAC,用于防止有攻击者更改握手消息。
2、在SeverHello中的ServerHello.random中嵌入保护机制
当服务器收到降级请求时,服务器会将ServerHello.random的最后8字节修改为

44 4F 57 4E 47 52 44 01                               表示TLS1.2
44 4F 57 4E 47 52 44 00                               表示TLS1.1

前7字节为DOWNGRD

由于ServerHello等信息在TLS1.3中是被加密的(TLS1.2中未加密),因此攻击者在TLS1.3中无法获取到ServerHello也无法对其进行修改。

客户端收到握手的信息并解密后,发现ServerHello.random中倒数后8字节中的前七字节为DOWNGRD,自己一琢磨,我发送的明明是TLS1.3请求,为啥降级了?应该是有人在中间发送了降级的请求,不行,有人在监听我们,赶紧停止TLS的握手。

总结

TLS1.3中ServerHello等信息的加密、MAC、ServerHello.random可以有效地防止降级攻击。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值