王朝百科
分享
 
 
 

DTLS

王朝百科·作者佚名  2010-05-22  
宽屏版  字体: |||超大  

(来自朱登宇吧)

1. DTLS简介

1.1 引言

近年来出现了许多实用数据报传输的应用程序。这些应用包括实时视频会议,internet电话和在线游戏,比如Quack和Startcraft。这些应用都是延迟敏感的,并且使用了不可靠的数据报传输。TCP之上的应用可以用TLS来保证安全,但是TLS不能用来保证UDP的安全。Datagram TLS试图在现存的TLS协议架构上提出扩展,使之支持UDP,即成为TLS的一个支持数据报传输的版本。

1.2 基础: TLS简介

TLS是最为广泛部署的协议,它用来保障网络安全通信。TLS用来保护Web 通信和email协议(诸如IMAP,POP)。TLS的主要优势是它通过向应用层和网络层之间(即OSI模型中的会话层)插入TLS来保证应用的安全。然而,TLS要求一个可靠的传输信道—典型的是TCP—因此不能用来保证数据报通信的安全。

当部署TLS的时候,大家还没有充分认识到这个局限性的严重程度,因为当时大多数应用运行在TCP之上。即使今天也是这样。然而情况正在改变。在过去几年中,不断增长的应用层协议,比如SIP (session initial protocol),RTP (real time protocol), MGCP (the Media Gateway Control Protocol),还有许多游戏协议都基于UDP传输而设计。

目前,这些应用的设计者面对着许多用来保证安全性的选择,但却无法令人满意。首先,他们可以使用IPsec。然而,IPsec不适合于Client-Server应用模型,且难以同应用程序结合,因为IPsec运行在系统内核。有很多文献详细讨论了为什么IPsec为什么不是一个令人满意的选择。其次,他们自己设计一个特有的应用层安全协议。例如,SIP使用了S/MIME的一个变体来保证安全通信。将S/MIME嫁接到SIP中比使用TLS上的TCP版本的SIP变体更费尽。第三,可以把应用移植到TCP之上,然后使用TLS。不幸的是,许多这样的应用依赖于UDP语义,当运行在诸如TCP之类的流协议上性能将无法令人接受。

最为明显的选择是设计一个通用的信道安全协议,它可以使用数据报传输,就像TCP上的TLS。这样一个协议可以在用户空间中实现,这样便于安装,但是要足够灵活和通用,能够许多面向数据报的应用程序提供安全。尽管认为这个方案将是一个巨大和困难的规划项目。但是构造一个可以工作的协议相当直接,尤其是有了TLS的起点和IPsec的参考。本文介绍了这个新的协议,我们称为 “Datagram TLS “, DTLS是TLS的一个修改版本, 这样函数能够运行在数据报通信上。相对于上面的方案,该方法有两个主要优势:首先,既然DTLS非常类似于TLS,可以重用以前的协议架构和实现方法。为了便于展示,我们通过对OpenSSL库的添加实现了DTLS。我们总共添加了7000行代码,其中的60%从OpenSSL剪切和粘贴。其次,既然DTLS向通用安全层提供了相似的接口,就易于调整协议来使用它。TLS的经验显示,这种易于调整性是扩大部署的关键。

总结一下,TLS不能用以保证数据报安全的原因。

(1) TLS纪录层不能处理独立纪录。因为加密的上下文(比如CBC状态,序列密钥流)在记录之间经过链接。如果其中一个记录丢失,则将不能处理其后的所有记录。

(2) TLS握手层消息必须可靠而不能丢失。通过一个MAC字段来提供反重放和信息记录保护,其中,MAC中包含序列号,但是序列号被隐含在记录中。

1.3设计概述

DTLS的目标应用主要是C/S及其变体。这也是TLS的设计目标并且已很好工作。展示的安全模型中,server通过DNS名称和IP地址被认证,Client是匿名的或者被其他形式认证,典型的是在应用层通过用户名/密码来处理。

这个实现并不真正安全。然而,应用程序的设计者们,向在添加安全性的时候尽量能够维护他们的协议和实现架构。这个实现制造了一个类似于TLS或IPsec的有吸引力的信道安全协议,因为改动之非常小。从这个观点看来,理想的数据报信道安全协议应该取代对Server的DNS和基于IP认证的 强加密认证,而是把client认证留给应用层协议。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有