DTLS

(來自朱登宇吧)
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認證留給套用層協定。

相關詞條

相關搜尋

熱門詞條

聯絡我們