DTLS 1.3协议简介及其在物联网通信中的应用

来源 :大科技·C版 | 被引量 : 0次 | 上传用户:aska1982st
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:SSL/TLS是应用非常广泛的网络安全协议,其目的是为通信双方建立一个安全的信道,提供认证、机密性和完整性保护。DTLS基于TLS实现,为运行在数据报(UDP)之上的应用提供安全保护。TLS和DTLS目前的版本是1.2,已经使用了很长时间,在目前的应用环境尤其是物联网通信中出现了一些弊端,因此新的TLS1.3和DTLS1.3协议草案提出了很多改进,本文简要介绍了DTLS1.3协议及其给物联网通信带来的优化。
  关键词:TLS;DTLS;DTLS1.3;0-RTT;IoT;物联网
  中图分类号:TP391.44 文献标识码:A 文章编号:1004-7344(2018)11-0264-02
  引 言
  SSL/TLS协议是应用非常广泛的网络安全协议,它的主要目的是在不可信的通信环境中为通信的双方建立起一个安全的通道,能够防止通信过程中被偷听、避免消息被篡改和伪造。
  SSL协议最初由网景公司设计实现,于1996年SSL3.0成为RFC标准,并在之后改称为TLS(Transport Layer Security),版本号1.0(实际对应SSL3.1)。经过几年的发展,2008年的RFC5246定义了TLS1.2版本,成为目前最广泛使用的网络安全协议。然而TLS1.2距现在也已过去了近十年,在此期间出现的针对TLS协议的攻击与日俱增,网络应用对于传输性能的要求也越来越高,TLS迫切需要一次更新,于是TLS1.3的制定也就备受关注。
  1 DTLS介绍
  SSL/TLS被设计运行在可靠连接(例如TCP)之上。但是在实际使用中,有部分应用对于时延或者带宽比较敏感,例如VoIP和物联网传感器等,这些应用希望运行在数据报协议(例如UDP)之上。于是DTLS应运而生,它将TLS进行了一些改造,使得能够运行在不可靠的数据报协议上。DTLS为这些基于数据报协议的应用提供了与TLS相当的机密性、完整性和认证保护。
  DTLS的第一个版本是1.0,基于TLS1.1协议,于2006年发布。目前的版本是1.2,基于TLS1.2协议,2012年发布。DTLS没有1.1版本,因为人们希望DTLS和TLS的版本号之后能够同步,由此也可见DTLS和TLS两者的紧密关1.1TLS1.2协议。
  TLS1.2协议由四个子协议组成,分别是握手协议、密码状态变更协议、告警协议和记录层协议,它们之间以及和传输层、应用层协议的关系如图1。
  TLS连接由客户端发起,双方通过握手协议协商协议版本、协商密码算法和参数、并(可选的)认证对方身份。握手协议成功后双方计算会话密钥,通过密码状态变更协议通知对方开始加密。协商过程中产生的错误会通过告警协议通知对端。握手协议、密码状态变更协议、告警协议,以及对应用层协议的传输,都封装在记录层协议里。
  1.1 握手协议
  TLS1.2完整的握手流程如下:
  其中,带有*的消息是可选的,ChangeCipherSpec属于密码状态变更协议。
  握手协议通过ClientHello和ServerHello消息交换协议版本、密码算法和相关参数,通过Certificate和CertificateVerify来验证身份。如果握手成功完成,双方会计算出通信所使用的会话密钥,发送用会话密钥加密的Finished消息来确认握手过程的完整性。
  TLS1.2支持会话重用机制,如果双方之前进行过完整的握手,那么通过在ClientHello和ServerHello中使用之前的会话ID来重用会话。会话重用的握手流程如下:
  1.2 记录层协议
  记录层协议用来承载上层协议,这里的上层协议除了包括TLS的握手和告警等协议外,还包括应用层协议。TLS记录层会对上层协议做分段、加密等处理后发送,然后在接收方做解密和重组。记录层协议的格式和处理方式如图2。
  其中类型、协议版本、负载长度这三个字段属于记录层协议的头部,总共占用5个字节。
  1.3 DTLS协议
  为了适用于数据报协议,DTLS对TLS进行了一些改造,主要有以下几点:
  (1)握手协议头部增加了序列号、分片偏移、分片长度三个字段,用于解决丢包和乱序问题,保证握手协议的可靠性。
  (2)记录层协议头部在协议版本和负载长度之间增加了epoch和序列号两个字段。epoch用于区分同一UDP“连接”中的多个DTLS会话,系列号用于解决丢包引起的HMAC计算错误以及防止重放攻击。这两个字段的添加使得DTLS记录层头部长度增长到了10个字节。
  (3)为了一定程度上防御DoS攻击,添加了HelloVerifyRequest消息来要求客户端记录状态。
  2 DTLS1.3的主要变化
  DTLS1.3是基于TLS1.3制定的,因此DTLS1.3的主要变化在很大程度上包含了TLS1.3所作的修改。
  2.1 TLS1.3的变化
  相对于1.2版本,TLS1.3做了相当大的修改,主要有以下几点:
  (1)僅保留了AEAD(Authenticated Encryption with Associated Data)算法,去掉了所有其他的对称加密和HMAC算法。
  (2)增加了0-RTT模式,可以在握手协商的同时传输应用数据。
  (3)去掉了RSA和DH相关的密码套件,保证前向安全性。
  (4)从ServerHello之后的消息就开始进行加密。
  (5)密钥生成算法有PRF变更为安全性更高的HKDF算法。
  (6)不再使用握手消息中的协议版本协商机制,改为使用专门的协议版本选项。   TLS1.3完整的握手流程如下:
  其中,+表示握手消息中附带的选项,*表示可选的消息,{ }表示该消息使用发送端的握手密钥加密,[ ]表示该消息使用发送端的业务密钥加密。
  完整协商完成后,服务端可以给客户端发送若干会话票据(SessionTicket),每个会话票据代表了一个预共享密钥,之后的协商可以使用会话票据指示的预共享密钥来进行。在此基础上新添加了0-RTT模式,0-RTT模式的协商流程如下:
  0-RTT模式下客户端在发起ClientHello消息的同时就可以发送应用层数据,这里的应用层数据会使用客户端早期业务密钥加密(用()包围的消息),而早期密钥会通过ClientHello中pre_shared_key选项的指示和之前完整协商产生的会话票据(SessionTicket)来计算。
  2.2 DTLS1.3的改进
  除了继承TLS1.3的变化,DTLS1.3还做了一些其他改进,主要是在记录层协议方面。
  首先是修改了密文记录层头部的结构,去掉了协议版本字段,将epoch和序列号两者压缩合并为一个四字节的字段。
  其次是定义了更短的DTLSShortCiphertext的密文记录层结构,去掉了类型字段,进一步压缩epoch和序列号字段为两个字节,甚至去掉了长度字段,改为由下面的传输层(UDP)来指示DTLS记录层消息的长度。
  另外,DTLS1.2中的HelloVerifyRequest消息变更为TLS1.3中的HelloRetryRequest+cookie机制。对握手协议中的某些消息增加了ACK机制以保证可靠性。
  3 DTLS协议和物联网通信
  物联网尤其是窄带物联网(NB-IoT)对网络通信的要求比较苛刻,大都需要低时延、高并发、很多时候要求使用UDP协议因为有些设备甚至没有TCP协议栈。另外物联网的安全需求也是显而易见的,诸如智能门锁、远程控制等业务是必须要有安全性保护的。基于UDP的DTLS协议就非常适合物联网通信场景,实际上,RFC7925专门定义了TLS/DTLS在物联网环境下实施的规范。
  目前的DTLS1.2协议完整握手需要2个RTT,会话重用需要1个RTT,但如果加上HelloVerifyRequest的话则分别都需要在加上一个RTT。在DTLS1.3中,完整握手只需要1个RTT,加HelloRetryRequest则需要2个RTT,而借助新增加了0-RTT模式,客户端和服务端只需要首次进行完整握手,之后都可以在握手的同时就发送应用数据。就握手协商来说,DTLS1.3大大减少了连接建立的时延,使得物联网应用可以在需要的时候更迅捷的進行联系。
  应用层数据需要封装到DTLS记录层中传输。在DTLS1.2中,记录层头部需要10个字节;而在DTLS1.3中,记录层头部减少至7个字节,如果使用了DTLSShortCiphertext则记录层头部仅需2个字节。DTLS记录层头部的缩小对物联网应用影响巨大,因为物联网本身传输的数据量大都很小,有时甚至只传输几个字节,在这种情况下DTLS1.2记录层头部的10个字节就成为一定的流量负担,而DTLS1.3则很大程度上减轻了这种负担。
  4 结 语
  本文描述了TLS和DTLS协议的结构和握手流程,然后分析了DTLS1.3版本的变化,最后说明了这些变化对于物联网通信的影响。
  随着物联网的发展,通信的安全始终伴随,而安全性保护如何尽量少的影响应用业务,是DTLS设计和实现人员的目标和努力方向。
  参考文献
  [1]Dierks, T. and E. Rescorla, “The Transport Layer Security(TLS) Protocol Version 1.2”, RFC 5246, DOI 10.17487/RFC5246, August 2008.
  [2]Rescorla, E. and N. Modadugu, “Datagram Transport Layer Security Version 1.2”, RFC 6347, DOI 10.17487/RFC6347, January 2012.
  [3]Eric Rescorla,“The Transport Layer Security(TLS) Protocol Version 1.3”, draft-ietf-tls-tls13-26, Mar 2018.
  [4]E. Rescorla and H. Tschofenig and N. Modadugu,“The Datagram Transport Layer Security(DTLS) Protocol Version 1.3”, draft-ietf-tls-dtls13~26,Mar 2018.
  [5]沈若愚,卢盛祺,赵运磊.TLS1.3协议更新发展及其攻击与防御研究[J].计算机应用与软件,2017,11:049.
  收稿日期:2018-2-20
其他文献
目的:探究临床护理路径在轻度烧伤患者护理中的应用效果.方法:60例轻度烧伤患者,随机分为观察组和对照组,每组30例.对照组患者采用常规护理,观察组患者在对照组基础上采用临
矿井开拓系统是矿井设计的核心内容和关键环节。由于传统设计方法存在缺陷,相关研究成果不能满足实际应用的要求,探索新的矿井开拓系统设计方法已经成为工程设计的迫切需要。针
针对目前煤矿井下矿用广播系统语音质量不佳、可靠性差、回声大、功能单一等问题,给出了一种新型嵌入式矿用应急广播终端的设计方案,并对影响其性能的关键技术进行研究并解决。
由于湿软路面具有承载能力低、环境复杂恶劣且不平坦等特点,常规的行走机构在通过这类路面时,可能存在严重的下陷、打滑、粘土等问题。本文针对湿软路面的作业环境特点,探索性地研究了一种结合非常规车辆和移动机器人技术的双足气垫靴式行走机构,期望提高机构在湿软路面环境下的通过性和稳定性。首先,本文阐述了双足气垫靴式行走机构的行走机理,确定了机构的关键设计参数,并在Solid Works软件环境下完成了双足气垫
自货车提速以来,转K6型转向架已成为我国货车的主型转向架,满足了我国对铁路货车重载、提速的要求。但某厂在前不久厂修中,经磁粉探伤发现部分转K6型摇枕、侧架(树脂砂工艺)
钻孔瓦斯流量是反映瓦斯抽采效果的重要参数,目前只能通过现场实测得到。为了定量分析钻孔瓦斯流量,在煤层瓦斯渗流符合达西定律和瓦斯稳定流动的基础上,推到了钻孔流量的表
采用下向尾砂胶结充填采矿法的矿山,维护充填体的稳定是矿山安全生产的重要保障。在充填体内布置锚杆可增加充填体的强度,提高充填体的整体稳定性。但针对锚杆应用在充填体方
众所周知,物理是高中阶段比较难学的一门学科.通过多年的教学改革与实践我们发现,通过“微课程”教学模式可有效缓解教学的压力,提升课堂教学质量.教学过程中教师应以学生的
期刊
目前,我国正在大力推广矿井安全避险“六大系统”的建设工作。紧急避险设施之一的避难硐室为不能及时逃生的避险人员,提供了一个安全可靠的避险空间。作为生命保障工程的第一道
近些年来,干部腐败问题已经成为我国社会关注的焦点问题。能否有效预防和清除腐败,已经成为关系到我国改革开放能否顺利进行、社会主义能否健康发展、党的执政地位能否巩固