無線傳輸安全層協定

無線傳輸安全層協定

無線傳輸層安全協定(Wireless Transport Layer Security Protocol,WTLS)作用是保證傳輸層的安全,作WAP協定棧的一個層次向上層提供安全傳輸服務接口。WTLS是以安全協定TLS1.0標準為基礎發展而來的,提供通信雙方數據的機密性、完整性和通信雙方的鑒權機制。WTLS在TLS的基礎上,根據無線環境、長距離、低頻寬、自身的適用範圍等增加了一些新的特性,如對數據報的支持、握手協定的最佳化和動態密鑰刷新等。

簡介

線傳輸層安全協定(Wireless Transport Layer Security, WTLS)協定版本 18-2-2000 是從 TLS1.0協定演化而來的,它的主題框架和握手流程模仿了 TLS1.0 協定中的內容,但又針對無線套用這一特殊領域的要求做了相應的調整。其規範定義在 WAP 論壇上的《WAP WTLS WAP-199-WTLS Version 18-Feb-2000》中。WTLS 為兩個通信套用提供保密,數據完整性和認證服務。它為 WAP 上層提供了一個安全傳輸服務接口且禁止其下層的傳輸服務接口。另外,WTLS 提供一個管理安全連線(創建,撤銷)的接口。

主要服務

客戶方和伺服器的合法性認證

使得通信雙方能夠確信數據將被送到正確的客戶方或伺服器上。客戶方和伺服器都有各自的數字證書。為了達到驗證用戶的目的,WTLS 要求通信雙方交換各自的數字證書以進行身份認證,並可由此可靠地獲取對方的公鑰。

對數據進行加密

WTLS 協定使用的加密技術既有對稱加密算法,也有非對稱加密算法。具體地說,在安全的通信連線建立起來之前,雙方先使用非對稱加密算法加密握手過程中的報文信息和進行雙方的數字簽名及驗證等。安全的通信連線建立起之後,雙方使用對稱加密算法加密實際的通信內容,以達到提高通信效率的目的。

保證數據的完整性

WTLS 協定採用訊息摘要函式提供數據的完整性服務,同時也達到節省通信頻寬,提高通信效率的目的。

構造

WTLS 協定是一個分層協定,被分為四層:

套用數據協定(Application protocol)

這是一個從相鄰層接收原始數據的協定,它僅在連線狀態下運行。連線狀態是指 WTLS 記錄協定的運行環境,它規定壓縮算法、加密算法和 MAC 算法。另外,這些算法的參數也是已知的。MAC 的密碼、體加密密鑰以及讀寫雙向安全連線的IV。它將所接收到的數據進行壓縮、加/解密、鑑別和數據完整性處理,然後向上層轉交或向下層傳送。本協定進行的有關處理完全按照在握手協定中通信雙方所協商一致的處理流程和算法進行。

邏輯上,通常有兩個連線狀態很重要:當前狀態和未決狀態。所有的記錄都在當前狀態下進行處理,未決狀態的安全參數由 WTLS 被重新初始化為空狀態。最初的當前狀態通常都指明不使用加密、壓縮或 MAC。

握手協定(Handshake protocol)

所有與安全相關的參數都是在握手階段協商一致的。這些參數包括:協定版本號、使用的加密算法、鑑別的信息和由公開密鑰技術生成的密鑰素材。握手階段從客戶方與服務方進行 Hello 訊息應答開始,在兩個Hello訊息中,通信雙方商定一致的會話方式。當客戶方發 送 Client Hello訊息以後,它等待接收Server Hello Done 訊息。服務方如果需要鑑別,可以發一個代表自己的伺服器證書給客戶方,也可以要求客戶方鑑別自己。Server Key Exchange用於向客戶方提供公開密鑰。當客戶方收到Server Hello Done訊息後,返回Client Certificate訊息以讓服務方鑑別自己;隨後,客戶方傳送一個Client Key Exchange訊息,包含由服務方用公開密鑰加密過的共享主密鑰和其他一些信息,以使雙方完成密鑰交換;最後,客戶方傳送一個包含驗證前面所有數據的 Finished Message,服務方也同樣傳送一個Finished Message 證實交換和計算的信息來回應客戶方。

報警協定(Alert protocol)

記錄協定的警報訊息主要有錯誤、嚴重、致命三種。警報訊息使用當前的安全狀態傳送。如果警報訊息的類型是“致命”,則雙方將結束安全連結。同時,其他使用安全會話的連結可以繼續,但會話標識必須設成無效,以防用已經終止的安全對話建立新的安全連線。 當警報訊息的類型為“嚴重”時,當前的安全連結結束,而其他使用安全會話的連結可以繼續,會話標記也可以保存,用於建立新的安全連線。告警信息的傳送可以有當前連線狀態(如壓縮和加密)指定或採用無密碼(如不進行壓縮與加密)。WTLS 中的出錯處理是基於警報訊息的,當發現錯誤時,發現的一方傳送包含出現錯誤的警報訊息,進一步的處理依賴於出現錯誤的級別和類型。

改變密碼規範協定

此協定套用在加密算法中,用來在 WAP 會話的雙方間進行加密策略改變的通知,僅使用一種改變密碼標準訊息。此訊息在雙方的安全參數協商一致後,在握手階段由客戶方或服務方傳送給對方實體, 用於通知另一方:以後的數據記錄將採用新協商的密碼規範和密鑰。在握手時,經過雙方同意安全參數後並在最後校驗信息傳送前,改變後的密碼規範信息才被傳送。運行中必須檢查改變密碼規範信息的傳送或接受是否在最後校驗信息傳送或接收之前進行,這樣,已結束和接下來的信息將受新的密碼規範和密鑰的保護。當訊息到達時,傳送訊息的一方設定當前的寫狀態為待決狀態(Pending state),接收訊息的一方設定當前的讀狀態為待決狀態 。

安全方法

加密

WTLS的保密性依靠加密通信通道來實現,所使用的加密方法和計算共享密鑰所需的值在握手時進行交換。首先,客戶端和伺服器交換Hello訊息,此後,客戶端和伺服器交換預主密鑰(Pre master Secret),這個值用來計算主密鑰(Master Secret),計算所使用的加密算法在伺服器的Hello訊息中進行選擇。在這條訊息中,伺服器通知客戶端已經選擇了一個密碼組,客戶端向伺服器提供一個密碼組列表。如果伺服器未發現合適的密碼組,則握手失敗,連線關閉。當前常用的大批量加密算法有:支持40、56和128位密鑰的RC5,支持40和56位密鑰的DES,支持40、56和128位密鑰的3DES和IDEA。所有的算法都是分組加密算法,加密密鑰在密鑰分組的基礎上進行操作,密鑰分組根據協商的密鑰刷新頻率在一段時間後重新運算。

密鑰交換

為了保證安全的聯繫通道,加密密鑰或計算密鑰的初始值必須以安全方式進行交換。WTLS的密鑰交換機制提供了一種匿名交換密鑰的方法。在密鑰交換過程中,伺服器傳送包含伺服器公鑰的伺服器密鑰交換訊息。密鑰交換算法可能是RSA、Diffie-Hellman或Elliptic Curve Diffie-Hellman。在RSA和匿名RSA中,客戶端用伺服器的公鑰加密預主密鑰,並在客戶密鑰交換訊息中將其返回給伺服器。在基於Diffie-Hellman的算法中,客戶端和伺服器在一個私鑰和相應的公鑰基礎上計算預主密鑰。

如果客戶端列出了它所支持的用密碼寫的密鑰交換方法,伺服器可以選擇是使用基於客戶請求的方法,還是定義另一種方法。如果客戶端並未提出任何方法,則伺服器必須指明。

鑑別

WTLS的身份鑑別依靠證書實現。身份鑑別可以在客戶端和伺服器之間進行,也可以在伺服器允許的情況下,只由客戶端鑑別伺服器,伺服器還可以要求客戶端向伺服器證明自己。在WTLS規範中,身份鑑別是可選的。當前所支持的證書類型包括:X.509v3、X9.68 和 WTLS證書。在客戶端和伺服器之間交換Hello訊息之後,鑑別過程隨即開始。當使用鑑別時,伺服器傳送服務證書訊息給客戶端。根據WTLS規範,為了最佳化流量和客戶處理,伺服器一次只傳送一個證書。伺服器證書由CA公司獨立分發的公鑰進行鑑別。伺服器也可以傳送證書請求訊息給客戶端以鑑別之。此時,客戶端傳送客戶證書訊息返回給伺服器,客戶端證書遵循與服務證書相同的結構。

完整性

數據完整性通過使用訊息鑑別編碼(MAC)而得到保證, MAC算法同時也被認為是加密算法。客戶端傳送一列所支持的MAC算法,伺服器在返回的Hello 訊息中標出所選的算法。WTLS支持通用的MAC算法,MAC在壓縮的WTLS 數據上產生。

安全狀態

在安全協商後,會話通信雙方將擁有同樣的安全狀態。當前狀態通過安全參數產生,並持續更新。

相關詞條

熱門詞條

聯絡我們