DTLS协议的缺陷分析和解决方案
发布时间:2020-08-17 10:30
【摘要】:随着互联网应用的高速普及和发展,应用层安全加密协议成为保护应用层通信隐私的重要手段。自从保护TCP通信的安全传输层协议(TLS)问世后,保护UDP通信的数据报传输层安全性协议(DTLS)也应运而生。DTLS协议的1.0和1.2版分别基于TLS的1.1和1.2版,大部分规范与TLS相同。双方其中一个不同点是DTLS采取了显式的序列号,置于通信包的记录层部分,由0递增,用于抗重放攻击。但DTLS该抗重放机制的设定存在缺陷,可以造成针对DTLS服务端的DoS攻击。本文从DTLS协议出发,分析其与TLS抗重放和抗DoS的异同,揭示DTLS抗重放机制的缺陷,并设计了两种解决方案,提供在Windows上的实现样例。论文的主要研究内容与创新如下:1.发现了DTLS协议抗重放部分相关缺陷。本文通过描述TLS和DTLS在相关机制上的异同,指出DTLS抗重放部分存在DoS攻击漏洞,并通过实验进行演示。DTLS容忍接收方检测到携带重放序列号的数据包后可以不断开连接,由此产生DoS安全问题。2.设计了一种基于修改协议规范的解决方案。该方案在DTLS原来的协议规范基础上,增加检测机制,设定接收次数上限,规定服务端若连续接收重放序列号达到该上限次数后就断开DTLS连接,能够让DTLS服务器不受该攻击的影响。3.设计了一种基于监控时间的解决方案。该方案通过监控DTLS服务端在握手和正式通信时接收行为的运行时间,从而确定服务端是否受到了基于序列号重放攻击的DoS攻击。对于服务器,记录接收前的时间,并在相应时限之后进行检查,用当前时间与之前时间相减,得到的差即为判断依据。该方案较之修改协议的方案更具有可移植性。
【学位授予单位】:重庆邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.08
【图文】:
Datagram Transport Layer Security(DTLS)协议是数据报传输层安全性协议,是 Transport Layer Security(TLS)的 UDP 版本,用于对采用 UDP 方式的应用层协议通信进行加密防护和身份认证。由 1.3 节知 DTLS 1.0 版本和 1.2 版本分别基于 TLS 1.1 和 TLS 1.2,因此 DTLS 和 TLS 的规则大致相同。但由于 DTLS 是针对无连接的 UDP,因此规范和 TLS 相比依然存在不同。TLS 和 DTLS 都是先进行握手,再进行加密传输。加密传输是对称加密。握手阶段是为了协商出服务器和客户端之间所需的对称加密的密钥,以及其他重要的密码套件,并进行单身份或双身份认证。之后双方便开始正式会话,使用协商好的加密套件在应用层对 TCP 或 UDP 数据包进行加密传输。握手阶段必须确保双方之后的通信是安全可靠的,是 TLS 和 DTLS 中最重要也是最复杂的阶段。和 TLS 一样,DTLS 也是两层协议,其协议栈如图 2.1 所示。
重庆邮电大学硕士学位论文 第 2 章 相关基础知识DTLS 记录层处于下层,为上层协议提供服务。上层协议有三个,分别是 DTLS握手协议、DTLS Change Cipher Spec 协议(DTLS 修改加密规范协议)和 DTLS警告协议。其中,握手协议处理握手过程,是 TLS / DTLS 中最复杂的协议;而修改加密规范协议最简单,用于在握手的末尾阶段通知对方使用更新的密码套件;警告协议则报告通信中出现的问题。DTLS 的握手流程如图 2.2 所示。
图 2.3 TLS 和 DTLS 的 MAC 生成因子握手中,客户端和服务端要产生各自的随机数,用来协商会话密钥、MAC和加密初始向量(IV)。由于每次握手时双方的随机数都是不同的,所以每手协商出的 IV 都是不同,可以抗重放,也有助于身份认证。密钥计算因子如主秘密数,涉及预备主秘密数、串"master secret"、客户端随机数和服务端数。密钥块,涉及主秘密数、串"key expansion"、客户端随机数和服务端随机如果密钥协商采用 RSA,则客户端会在 ClientKeyExchange 消息中包含用服公钥加密的预主秘密数(也是随机的),如图 2.4 所示。
本文编号:2795205
【学位授予单位】:重庆邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP393.08
【图文】:
Datagram Transport Layer Security(DTLS)协议是数据报传输层安全性协议,是 Transport Layer Security(TLS)的 UDP 版本,用于对采用 UDP 方式的应用层协议通信进行加密防护和身份认证。由 1.3 节知 DTLS 1.0 版本和 1.2 版本分别基于 TLS 1.1 和 TLS 1.2,因此 DTLS 和 TLS 的规则大致相同。但由于 DTLS 是针对无连接的 UDP,因此规范和 TLS 相比依然存在不同。TLS 和 DTLS 都是先进行握手,再进行加密传输。加密传输是对称加密。握手阶段是为了协商出服务器和客户端之间所需的对称加密的密钥,以及其他重要的密码套件,并进行单身份或双身份认证。之后双方便开始正式会话,使用协商好的加密套件在应用层对 TCP 或 UDP 数据包进行加密传输。握手阶段必须确保双方之后的通信是安全可靠的,是 TLS 和 DTLS 中最重要也是最复杂的阶段。和 TLS 一样,DTLS 也是两层协议,其协议栈如图 2.1 所示。
重庆邮电大学硕士学位论文 第 2 章 相关基础知识DTLS 记录层处于下层,为上层协议提供服务。上层协议有三个,分别是 DTLS握手协议、DTLS Change Cipher Spec 协议(DTLS 修改加密规范协议)和 DTLS警告协议。其中,握手协议处理握手过程,是 TLS / DTLS 中最复杂的协议;而修改加密规范协议最简单,用于在握手的末尾阶段通知对方使用更新的密码套件;警告协议则报告通信中出现的问题。DTLS 的握手流程如图 2.2 所示。
图 2.3 TLS 和 DTLS 的 MAC 生成因子握手中,客户端和服务端要产生各自的随机数,用来协商会话密钥、MAC和加密初始向量(IV)。由于每次握手时双方的随机数都是不同的,所以每手协商出的 IV 都是不同,可以抗重放,也有助于身份认证。密钥计算因子如主秘密数,涉及预备主秘密数、串"master secret"、客户端随机数和服务端数。密钥块,涉及主秘密数、串"key expansion"、客户端随机数和服务端随机如果密钥协商采用 RSA,则客户端会在 ClientKeyExchange 消息中包含用服公钥加密的预主秘密数(也是随机的),如图 2.4 所示。
【参考文献】
相关期刊论文 前1条
1 于莉莉;杜蒙杉;张平;纪玲利;;Web安全性测试技术综述[J];计算机应用研究;2012年11期
本文编号:2795205
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2795205.html