TLS與WTLS
TLS的前身是SSL,它是Internet上最重要的安全標準。SSL是由Netscape的工程師于1993年發布的,意在不改變現存的應用和協議的前提下提供一種安全機制。SSL的有效性使得它在Internet上十分流行。SSL已經成為了Internet標準,并且由IETF(InternetEngineeringTaskForce)繼續管理和發展。如今SSL被更名為TLS,WAP討論組就在TLS的基礎上實現了WAP安全。
雖然TLS是建立在傳輸層,其實它是介于應用層和真正的傳輸層之間的附加層。同樣,WTLS也是建立在傳輸層之上,但在它上面是WTP事務層和WSP會話層,這2層在Internet模型中是不存在的。這種安排使得它們與應用層所要求的服務無關。
TLS同WTLS最顯著的不同是:TLS需要一個可靠的傳輸層,也就是TCP。TLS無法在UDP上工作。WAP協議棧沒有提供可靠的傳輸層,而且在分組網絡上優先選擇了UDP。它只在協議棧的上層通過WTP和WSP實現了可靠性。因此,這也是設計另一套安全協議的動機,使得WTLS工作在WDP和UDP之上。WTLS幀中定義了序列號,而這在TLS中是不存在的。該序列號確保WTLS可以工作在不可靠的傳輸層上。WTLS不支持數據的分組和重裝,它將這個工作交給了下層協議處理。與此不同的是,TLS可以對上層協議的數據包進行分組。
TLS和WTLS都認為會話和連接是不同的。連接一般認為比會話更短暫。在無線網絡中,連接的生存期依賴于任何時候網絡的覆蓋質量,因此當火車穿越隧道或天氣變化時它都會受到影響。會話比連接要持久,它可以存在于多個連接之上,我們可以用一個ID標識一個會話。該會話的安全參數用于確保連接的安全。這意味當連接被破壞時,會話仍然可以存在,并且能夠在以后恢復它。
一個會話可以與另一個會話具有相同的安全參數,它可以來自當前某個有效的連接,也可以來自過去有效的連接;謴瓦B接可以使用一種優化的"握手"方式,而不用交換所有的消息。它也可以用來同時打開若干個連接,而使用相同的安全參數。一般由服務器決定是否允許會話被恢復。
WTLS允許通過匿名方式或證書對客戶機與服務器進行認證,一般需要客戶機或服務器在會話建立消息中提供他們的公鑰。為了便于實現,一共定義了3類WTLS,在這3類中,有些特性是必備的,有些是可選的,還有些是不需要的。第1類實現必須支持公鑰交換、加密和消息認證碼(MAC,Message Authentication Code),而客戶機和服務器證書、共享秘密握手(即客戶機和服務器已經知道了秘密,因而不再需要對這些秘密進行交換)是可選的。第1類WTLS實現不需要支持壓縮算法和智能卡接口。第1類實現可以選擇通過證書實現客戶機和服務器的認證,但不是必須的。第2類實現必須支持服務器證書,第3類實現必須同時支持客戶機和服務器證書。第2類和第3類中的壓縮和智能卡接口都是可選的。
當開始建立安全會話時,客戶機向服務器發送一條請求消息,要求開始安全會話設置的協商過程(一般都是由客戶機開始協商過程的)。服務器可以向客戶機發送消息,請求它開始會話協商,但客戶機可以選擇是否忽視該請求。在會話的任何時候,客戶機都可以發送消息以請求對設置進行重新協商。如果有數據竊聽威脅WAP安全,那么該重新協商過程將通過產生新的密鑰以保證盡可能少的數據被暴露。當客戶機請求安全會話的協商時,它將提供它所支持的安全服務列表。另外客戶機還需要指出經過多少條消息之后這些安全參數需要被刷新,極端的情況是每條消息之后都要刷新這些參數。
如果雙方所認同的公鑰交換機制不是匿名的,那么服務器需要向客戶機發送證書以標識自己。所發送的證書必須符合他們所認同的鑰交換算法。事實上,服務器所發送的這條消息中包含了一條從服務器自身的證書到CA(Certification Authority)根的證書鏈,發送者的證書必須位于鏈表頭,每個后續的證書必須驗證它的前驅(上一個)。CA根的證書可以在鏈表中省略,因為CA根證書是自由發放的,客戶機可能已經擁有該證書,而且即使沒有,客戶機也能輕易地獲取它。
如果鑰交換不是匿名的,服務器還可以向客戶機要求證書。如果客戶機沒有證書,則它需向服務器發送一條不包含證書的消息,然后由服務器決定是否繼續與這個沒有合法證書的客戶機進行會話。通過這條消息,客戶機可以證明它具有與公鑰相關的私鑰,其中的公鑰包含在了它發送給服務器的證書中?蛻魴C發送這條消息,其中包含了客戶機與服務器之間的先前所有的交換握手消息,并且用它的密鑰簽名。這使得服務器可以進行相似的計算,檢查簽名中的消息摘要,然后與它所產生的進行比較,如果相符,則服務器認為客戶機是可靠的,否則認為有錯誤。
TLS使用X。509證書,而WTLS定義了新的專為移動設備使用的證書。雖然WTLS可以使用X。509,但是多數移動設備并不支持它,因為它的體積太大。WTLS證書更適合于移動終端貧乏的存儲資源。WTLS證書與X。509證書的格式對比如表1所示。
X。509 |
WTLS |
版本(Version) |
版本(Version) |
序列號(Serialnumber) |
|
算法標識(Algorithmidentifier) |
算法標識(Algorithmidentifier) |
發行者名稱(Nameofissuer) |
發行者名稱(Nameofissuer) |
有效時期(Periodofvadility) |
有效時期(Periodofvadility) |
證書所有者(屬主)(subject) |
屬主(Subject) |
屬主公鑰(Subject'spublickey) |
屬主公鑰(Subject'spublickey) |
發行者ID(IssuerID) |
|
屬主ID(SubjectID) |
|
發行者簽名(Issuer'ssignature) |
發行者簽名(Issuer'ssignature) |
TLS和WTLS在我們所討論的通信中的2個角色上--客戶機與服務器--都可以實現。在客戶機上,TLS/WTLS發起與遠端服務器的通信,并提出對安全選項的建議。在服務器上,它檢查所提交的選項,并選擇那些它實際使用的以確保通信安全。在任何協議中(包括TLS與WTLS)都有一組消息以確?蛻魴C與服務器的信息交換,并有一套規則約束該交換的進行。
[上一頁] [下一頁]
|