正文

協(xié)議(17)

信息安全工程(第2版) 作者:(英)羅斯·安德森


3.7.3  Kerberos

從Needham-Schroeder協(xié)議派生出來的一個重要且實用的協(xié)議是Kerberos,這是一個源于MIT的分布式訪問控制系統(tǒng),現(xiàn)在是Windows中的標(biāo)準(zhǔn)身份驗證工具之一[1224]。Kerberos不只是一個單獨的可信第三方,而是有兩種角色:一種是讓用戶登錄的身份驗證服務(wù)器,還有一種角色是給用戶發(fā)放票據(jù)以便其訪問各種資源(比如文件)的票據(jù)授權(quán)服務(wù)器。這有利于提供更具可擴展性的訪問控制管理。比如,在大學(xué)里,通過宿舍樓管理學(xué)生,而通過院系來管理文件服務(wù)器;在公司里,人事部門把用戶注冊到薪資系統(tǒng),而部門管理員負(fù)責(zé)管理服務(wù)器和打印機之類的資源。

首先,Alice使用密碼登錄到身份驗證服務(wù)器,其PC機上的客戶端軟件從服務(wù)器取回一張票據(jù),票據(jù)使用這個密碼加密,并且包含一個會話密鑰KAS。假設(shè)Alice提供的密碼是正確的,現(xiàn)在就可以控制KAS。為訪問票據(jù)授權(quán)服務(wù)器S控制下的資源B,要運行以下的協(xié)議。協(xié)議的輸出結(jié)果是密鑰KAB,帶有時間戳TS和生存期L,該密鑰可用來對后面Alice與資源B間的通信進(jìn)行身份驗證:

A→S:  A,B

S→A: {TS,L,KAB,B,{TS,L,KAB,A}}

A→B: {TS,L,KAB,A},{A,TA}

B→A: {TA+1}

上面的協(xié)議交互過程可以使用自然語言進(jìn)行描述:Alice向票據(jù)授權(quán)服務(wù)器請求訪問B,如果這是允許的,服務(wù)器就創(chuàng)建一個含有適當(dāng)密鑰KAB的票據(jù){TS,L,KAB,A}KBS,并發(fā)放給Alice使用,此外,Alice還將獲取一個以對她可讀的方式給出的該密鑰的副本,也就是用KAS加密過的。現(xiàn)在她向資源發(fā)送一個時間戳TA來檢查此密鑰,資源給在發(fā)送回的時間戳上遞增1,以確認(rèn)自己的存活性(這表明該資源可以正確地對票據(jù)進(jìn)行解密,并且提取出密鑰KAB)。

通過引入時間戳而不是隨機Nonce,Needham-Schroeder的漏洞已經(jīng)得以修復(fù)。但是,正如大多數(shù)生活情形一樣,沒有絕對的安全?,F(xiàn)在又出現(xiàn)了新的漏洞,就是各種客戶端和服務(wù)器的時鐘可能不同步,甚至被更復(fù)雜的攻擊故意弄得無法同步。


上一章目錄下一章

Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號