複製鏈接
請複製以下鏈接發送給好友

DTLS

鎖定
DTLS(Datagram Transport Layer Security)即數據包傳輸層安全性協議。TLS不能用來保證UDP上傳輸的數據的安全,因此Datagram TLS試圖在現存的TLS協議架構上提出擴展,使之支持UDP,即成為TLS的一個支持數據包傳輸的版本。DTLS 1.0 基於 TLS 1.1, DTLS 1.2 基於TLS 1.2。
中文名
DTLS
外文名
Datagram Transport Layer Security
基    礎
充分認識到這個侷限性的嚴重程度
支    持
數據報傳輸的版本

目錄

DTLS簡介

1. DTLS(Datagram Transport Layer Security)
1.1 引言
近年來出現了許多實用數據包傳輸的應用程序。這些應用包括實時視頻會議,internet電話和在線遊戲,比如Quack和Starcraft。這些應用都是延遲敏感的,並且使用了不可靠的數據報傳輸。TCP之上的應用可以用TLS來保證安全,但是TLS不能用來保證UDP的安全。Datagram TLS試圖在現存的TLS協議架構上提出擴展,使之支持UDP,即成為TLS的一個支持數據包傳輸的版本。DTLS 1.0 基於 TLS 1.1, DTLS 1.2 基於TLS 1.2.
1.2 基礎: TLS簡介
當部署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中包含序列號,但是序列號被隱含在記錄中。

DTLS設計概述

DTLS的目標應用主要是C/S及其變體。這也是TLS設計目標並且已很好工作。展示的安全模型中,server通過DNS名稱和IP地址被認證,Client是匿名的或者被其他形式認證,典型的是在應用層通過用户名/密碼來處理。
這個實現並不真正安全。然而,應用程序的設計者們,向在添加安全性的時候儘量能夠維護他們的協議和實現架構。這個實現製造了一個類似於TLS或IPsec的有吸引力的信道安全協議,因為改動之非常小。從這個觀點看來,理想的數據報信道安全協議應該取代對Server的DNS和基於IP認證的 強加密認證,而是把client認證留給應用層協議。