無線傳輸安全層

無線傳輸安全層

無線傳輸安全層是基於工業標準TLS協定(以前稱為Secure Sockets Layer,SSL),並針對窄帶無線通信作了最佳化和擴展而制定的安全協定。WTLS 工作在數據報協定之上,保留了傳輸服務的接口。由於安全功能是可選的,因此WTLS是運行在無線傳輸層和無線數據報層之間的一個可選協定。

基本介紹

  • 中文名:無線傳輸安全層
  • 外文名:Wireless Transport Layer Security
  • 縮寫:WTLS
  • 又稱:特維斯
簡介,作用,WTLS安全問題解決方法,加密,密鑰交換,鑑別,完整性,安全狀態,WTLS協定結構,

簡介

無線傳輸層安全(特維斯)是一個安全協定,是無線套用協定(Wap)堆疊。它位於WTPWDPWAP通信棧.它提供的安全功能包括:數據完整性、保密性、鑑別和對拒絕服務的保護等。
WTLS來源於TLS。 WTLS使用適用於低頻寬移動設備的類似語義。 主要變化是:
  • 壓縮的數據結構 - 在可能的情況下,通過使用位欄位,丟棄冗餘和截斷某些加密元素,可以減小數據包大小。
  • 新的證書格式 - WTLS定義了壓縮證書格式。 這大致遵循X.509 v3證書結構,但使用較小的數據結構。
  • 基於分組的設計 - TLS旨在用於數據流。 WTLS使這種設計更適合於基於分組的網路。 大量的設計基於一個要求,即可以使用諸如SMS之類的分組網路作為數據傳輸。
  • 通過端到端傳輸層安全規範,WTLS已被WAP無線套用協定2.0標準取代
WAP已經取代了WTLS無線套用協定2.0標準的端到端傳輸層安全規範。

作用

WTLS的作用是保證傳輸層的安全,作為WAP 協定棧的一個層次向上層提供安全傳輸服務接口。WTLS是以安全協定TLS1.0標準為基礎發展而來的,提供通信雙方數據的機密性、完整性和通信雙方的鑒權機制。WTLS在TLS的基礎上,根據無線環境、長距離、低頻寬、自身的適用範圍等增加了一些新的特性,如對數據報的支持、握手協定的最佳化和動態密鑰刷新等。
WTLS能夠提供下列三種類別的安全服務:
第一類服務:能使用交換的公共密鑰建立安全傳輸,使用對稱算法加密解密數據,檢查數據完整性,可以建立安全通信的通道,但沒有對通信雙方的身份進行鑒權。
第二類服務:除完成第一類服務的功能外還可以交換伺服器證書,完成對伺服器的鑑別。
第三類服務:除完成第二類服務的功能外還可以交換客戶證書,在伺服器鑑別的基礎上又增加了客戶鑑別,對惡意的用戶冒充也能進行抗擊。
從第一類服務到第三類服務安全級別逐級增高,可以根據套用對安全級別的要求選擇性的實現某一級別的安全服務。通常應該對這三種類別的服務都能支持,在握手協商的過程中由客戶端與服務端共同協商選定一個類別。

WTLS安全問題解決方法

加密

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 數據上產生。

安全狀態

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

WTLS協定結構

WTLS工作在無線數據報協定(WDP)層和無線事務協定 (WTP)層之間,它所提供的服務對這兩層協定來說是可選的。WTLS由功能協定層和記錄協定層構成。其中功能協定層包含了握手協定、改變密碼標準協定、 告警協定;記錄協定層提供對握手協定層以及上層套用數據的封裝結構,在客戶端和服務端的WTLS對等層之間完成實際的數據傳送任務。WTLS協定結構如圖一所示。
圖一圖一
記錄協定(Record Protocol)
本協定是一個從相鄰層接收原始數據的協定,它僅在連線狀態下運行。當開始一個安全會話時,連線狀態初始化為NULL。邏輯上存在兩種狀態:當前狀態和未決狀態,記錄在當前狀態下處理。它將所接收到的數據進行壓縮、加/解密、鑑別和數據完整性處理,然後向上層轉交或向下層傳送。本協定進行的有關處理完全按照在握手協定中通信雙方所協商一致的處理流程和算法進行。
握手協定(Handshake Protocol)
所有與安全相關的參數都是在握手階段協商一致的。這些參數包括:協定版本號、使用的加密算法、鑑別的信息和由公開密鑰技術生成的密鑰素材。握手階段從客戶方與服務方進行Hello訊息應答開始,在兩個 Hello訊息中,通信雙方商定一致的會話方式。當客戶方傳送Client Hello訊息以後,它等待接收Server Hello Done訊息。服務方如果需要鑑別,可以發一個代表自己的伺服器證書給客戶方,也可以要求客戶方鑑別自己。Server Key Exchange 用於向客戶方提供公開密鑰。
當客戶方收到Server Hello Done訊息後,返回Client Certificate 訊息以讓服務方鑑別自己。隨後客戶方傳送一個Client Key Exchange訊息,包含由服務方用公開密鑰加密過的共享主密鑰和其他一些信息,以使雙方完成密鑰交換。最後,客戶方傳送一個包含驗證前面所有數據的Finished Message,服務方也同樣傳送一個Finished Message證實交換和計算的信息來回應客戶方。此外,任何一方都可以傳送一個Change Cipher Spec訊息來決定雙方使用的密碼參數。
告警協定(Alert Protocol)
告警類型是WTLS記錄層支持的內容類型之一,告警訊息傳送的內容為信息錯誤的嚴重程度及告警描述。記錄協定的告警訊息主要有警告、危急、致命三種。告警訊息使用當前的安全狀態傳送,如果告警訊息的類型是“致命”,則雙方將結束安全連結。同時,其他使用安全會話的連結可以繼續,但會話標識必須設成無效,從而使失敗的連結不能被用於建立新的安全連結。當告警訊息的類型為“危急”時,當前的安全連結結束,而其他使用安全會話的連結可以繼續,會話標記可以用於建立新的安全連結。
WTLS中的出錯處理是基於告警訊息的,當發現錯誤時,發現的一方傳送包含出現錯誤的告警訊息,進一步的處理依賴於出現錯誤的級別和類型。
告警中採用4位元組校驗和,該值可以通過接收其他對話方的上次記錄計算得出,方法如下:
(1)以0填充記錄,使其長度為4的模。
(2)將結果分割為4位元組的長度塊。
(3)對這些塊進行XOR運算。
告警接收方應該檢查校驗和是否與以前所傳送的信息相匹配。
改變密碼標準協定(Change Cipher Spec Protocol)
此協定用來在WAP會話的雙方間進行加密策略改變的通知,僅使用一種改變密碼標準訊息。訊息中包含一個位元組,值為1。此訊息在雙方的安全參數協商一致後,在握手階段由客戶方或服務方傳送給對方實體,用於通知對方:以後的數據記錄將採用新協商的密碼規範和密鑰。當訊息到達時, 傳送訊息的一方設定當前的寫狀態為待決狀態(Pending State),接收訊息的一方設定當前的讀狀態為待決狀態。

相關詞條

熱門詞條

聯絡我們