資源描述:
《密碼協(xié)議的設(shè)計(jì)準(zhǔn)則薛佟佟》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、密碼協(xié)議的設(shè)計(jì)準(zhǔn)則薛佟佟密碼協(xié)議的設(shè)計(jì)密碼協(xié)議運(yùn)行在計(jì)算機(jī)通信網(wǎng)或分布式系統(tǒng)中,借助于密碼算法來達(dá)到密鑰分配、身份認(rèn)證等目的的一種交互通信協(xié)議,它是為了完成某種安全任務(wù)。然而,在密碼協(xié)議的設(shè)計(jì)過程中很容易產(chǎn)生各種各樣的錯(cuò)誤(見密鑰的建立.ppt)設(shè)計(jì)中的安全性考慮如何在協(xié)議的設(shè)計(jì)過程中避免可能出現(xiàn)的安全漏洞是一個(gè)值得研究的問題。近年來,已出現(xiàn)多種形式化方法用以考察和分析密碼協(xié)議,看其是否存在安全缺陷,對于上一節(jié)講過的幾種協(xié)議,針對某種問題的改進(jìn)并不徹底,甚至往往會(huì)引入其他問題雖然這些方法有時(shí)是很有用的,但它本身并沒有提出有關(guān)設(shè)計(jì)準(zhǔn)則的建議,因此不能直接有效地防止錯(cuò)誤的產(chǎn)生。
2、設(shè)計(jì)的準(zhǔn)則準(zhǔn)則本身是一種非形式化的指導(dǎo)方針,獨(dú)立于任何邏輯。盡管這些準(zhǔn)則對于協(xié)議的正確性來說既非必要條件,也非充分條件,但對于協(xié)議的設(shè)計(jì)卻是非常有幫助的,因?yàn)樽袷厮鼈兛梢院喕瘏f(xié)議的設(shè)計(jì)并防止許多已公布的混淆和錯(cuò)誤的產(chǎn)生。有名的文章如:AndersonR,NeedhamR.RobustnessPrinciplesforPublicKeyProtocols.InCoppersmith兩條基本準(zhǔn)則以下兩條準(zhǔn)則是貫穿整個(gè)安全密碼協(xié)議設(shè)計(jì)過程的最基本的準(zhǔn)則。準(zhǔn)則1:每個(gè)消息應(yīng)清楚地說明它的意思,對消息的解釋應(yīng)完全依靠其內(nèi)容。即使存在合適的形式化表達(dá)方法,每個(gè)消息的內(nèi)容也應(yīng)可用一個(gè)完整
3、的、有意義的語句來描述。準(zhǔn)則一例如:A→B:{Ta,Kab,B,A}KbA發(fā)送的消息的意義可以解釋為:A在時(shí)刻Ta向B發(fā)送了一個(gè)共享的(Kb來保證)會(huì)話密鑰Kab。B接收到以上的消息但不能確信這個(gè)消息是不是A發(fā)送的,因此把接收到的消息解釋為:B在時(shí)刻Ta收到了自稱是主體A發(fā)送來的會(huì)話密鑰Kab。準(zhǔn)則二準(zhǔn)則2:一個(gè)消息起作用的條件應(yīng)該清楚地說明,以便協(xié)議的使用者能夠根據(jù)條件來判斷是否采用該協(xié)議。例如,如果某人認(rèn)為會(huì)話密鑰應(yīng)該由合適的可信第三方而不是參與會(huì)話的某一方選定,那么他將不會(huì)希望使用這樣的協(xié)議。主體命名準(zhǔn)則如果主體的身份對于某個(gè)消息的意義來說是必要的,那么應(yīng)該謹(jǐn)慎處理主
4、體的身份信息,如在消息中明確地提到主體的名字。例如,對于如下協(xié)議:1)A→S:A,B2)S→A:CA,CB3)A→B:CA,CB,{{Kab,Timea}Ka-1}Kb在第3)步的加密消息中,由于沒有主體的身份信息,因此主體B得到消息3)后,可以進(jìn)行以下操作:B→C:CA,CC,{{Kab,Ta}Ka-1}Kc這樣,就可以對C進(jìn)行欺騙,使得C相信消息來自于A。尤其是,C可能會(huì)用Kab加密敏感信息并發(fā)送給A,這時(shí)B就可以看到這些信息。改進(jìn)的方法很簡單,即把通信雙方的身份信息加入消息3)中:3)A→B:CA,CB,{{Kab,Ta,A,B}Ka-1}Kb加密準(zhǔn)則應(yīng)該清楚地知道協(xié)
5、議中使用加密的目的,因?yàn)榧用懿皇且环N簡單的運(yùn)算,它需要的計(jì)算量較大,不清楚加密的目的可能會(huì)導(dǎo)致冗余。而且加密并不等同于安全,不正確地使用加密甚至?xí)?dǎo)致協(xié)議的錯(cuò)誤。例如,Kerberos協(xié)議的消息2)S→A:{Ts,L,Kab,B,{Ts,L,Kab,A}Kbs}Kas中采用了雙重加密,而從安全和認(rèn)證的角度來看,這并沒有加強(qiáng)安全性,反而增加了計(jì)算量。簽名準(zhǔn)則即使主體對已加過密的消息進(jìn)行了簽名操作,我們也不能由此推斷出主體一定就知道該消息的內(nèi)容。如果主體對消息先簽名然后再加密,那么可以推斷出主體一定知道該消息的內(nèi)容。對于認(rèn)證協(xié)議來說,消息在傳送時(shí),簽名必須在加密之前完成,這樣既
6、可以讓接收者確定發(fā)送者的身份,也保證了發(fā)送者知道所發(fā)送消息的內(nèi)容。例如,在之前的例子中,為了進(jìn)一步確定發(fā)送者的身份,可將消息流改為:A→B:{{Ta,Kab,B,A}Ka-1}Kb加密與簽名在協(xié)議中簽名通常應(yīng)在加密之前完成,但這并不能保證協(xié)議完全安全。而且該準(zhǔn)則的后半部分還值得考慮,即只有當(dāng)進(jìn)行加密和簽名操作的是同一主體時(shí),后半部分才能夠成立。通過下面的例子可以說明以上兩點(diǎn)。對于以下協(xié)議:A→B:{{M}Ka-1}Kb其中,A是雇主,B是雇員,M表示"你的工資增加了5000美元",Ka-1是A的簽名密鑰,Kb是B的公鑰。該協(xié)議很容易被攻擊,即B用自己的私鑰解除密,得到{M}
7、Ka-1,并用另一雇員C的公鑰加密得到{{M}Ka-1}Kc并發(fā)送給C,這樣,A與C之間就產(chǎn)生了糾紛。Kerberos協(xié)議kerberos是由MIT開發(fā)的提供網(wǎng)絡(luò)認(rèn)證服務(wù)的系統(tǒng)。Kerberos協(xié)議主要用于計(jì)算機(jī)網(wǎng)絡(luò)的身份鑒別(Authentication),其特點(diǎn)是用戶只需輸入一次身份驗(yàn)證信息就可以憑借此驗(yàn)證獲得的票據(jù)(ticket-grantingticket)訪問多個(gè)服務(wù),即SSO(SingleSignOn)。由于在每個(gè)Client和Service之間建立了共享密鑰,使得該協(xié)議具有相當(dāng)?shù)陌踩?。Kerbero