正文

協(xié)議(15)

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


3.7  加密密鑰管理

到這里,本書討論的安全協(xié)議實(shí)例大都是對主體的名稱或應(yīng)用數(shù)據(jù)(比如對出租車計價器進(jìn)行觸發(fā)的脈沖)進(jìn)行身份驗證。實(shí)際上還有一種很重要的身份驗證協(xié)議——?用于管理密鑰的協(xié)議。直到最近,這種協(xié)議在支持其他運(yùn)營的后臺中廣泛應(yīng)用,大多數(shù)這類技術(shù)的開發(fā)都用于對密鑰(比如取款機(jī)與銀行彼此通信時使用的密鑰)進(jìn)行管理,不過現(xiàn)在,像付費(fèi)電視這樣的系統(tǒng)使用密鑰管理直接控制對系統(tǒng)的訪問。

身份驗證協(xié)議現(xiàn)在也用于分布式計算機(jī)系統(tǒng),以實(shí)現(xiàn)通常的密鑰管理目的,因此也變得更重要。Kerberos是第一種得到廣泛應(yīng)用的這類系統(tǒng),Windows中使用了該協(xié)議的一個變種。為理解Kerberos協(xié)議,下面介紹一些基礎(chǔ)知識。

3.7.1  基本密鑰管理

密鑰分配協(xié)議的基本思想是,在兩個主體需要進(jìn)行通信時,使用一個可信的第三方進(jìn)行身份驗證。

討論身份驗證協(xié)議時,常規(guī)的做法是給主體賦予人名,以免迷失于太多的代數(shù)符號表示中,因此,本書將兩個通信主體分別稱為Alice與Bob,可信的第三方為Sam。但是不要認(rèn)為本書正在討論的是人本身。Alice和Bob很可能是程序,而Sam可能是服務(wù)器。比如,Alice可能是出租車計價器里的程序,Bob是變速箱傳感器的程序,而Sam是出租車監(jiān)察站的計算機(jī)。

總之,簡單的身份驗證協(xié)議運(yùn)行方式如下:

(1) Alice首先呼叫Sam,申請密鑰與Bob進(jìn)行通信。

(2) Sam進(jìn)行應(yīng)答,向Alice發(fā)送一對證書。每個證書包括一個密鑰副本,第一個加密證書只有Alice能讀懂,第二個加密證書只有Bob能讀懂。

(3) Alice呼叫Bob,提交第二個證書對自己進(jìn)行介紹。雙方都用和Sam共享的密鑰對相應(yīng)的證書進(jìn)行解密,然后才可以得到新的密鑰。Alice現(xiàn)在可以用這個密鑰向Bob發(fā)送密文,并且接收Bob返回的消息。

重放攻擊是身份驗證協(xié)議中一個的已知問題,因此,為了讓Alice和Bob能檢測證書是新鮮的,Sam會在每個證書上包含一個時間戳。如果證書永遠(yuǎn)也不作廢的話,處理那些權(quán)限已經(jīng)撤消的用戶時就會產(chǎn)生嚴(yán)重的問題。

使用協(xié)議表示法,可以把這個過程描述如下:

A→S: A,B

S→A: {A,B,KAB,T}KAS ,{A,B,KAB,T} KBS

A→B: {A,B,KAB,T} KBS ,{M} KAB

將上面的表示法適當(dāng)擴(kuò)展一下,Alice呼叫Sam,并聲稱需要與Bob通話。Sam構(gòu)造一個會話密鑰消息,包含Alice的名字、Bob的名字、他們使用的密鑰和一個時間戳。Sam用其與Alice共享的密鑰對所有這些數(shù)據(jù)進(jìn)行加密,再用與Bob共享的密鑰對這些數(shù)據(jù)進(jìn)行加密,并將密文都發(fā)給Alice。Alice從發(fā)送給她的加密密文中重新獲得密鑰,并將為Bob加密的密文傳送給他?,F(xiàn)在Alice可以用這個密鑰對任何數(shù)據(jù)進(jìn)行加密并發(fā)送給Bob了。


上一章目錄下一章

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