版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章協(xié)議安全技術(shù)一.協(xié)議安全基礎(chǔ)
1.安全協(xié)議的概念安全協(xié)議與信息安全何謂安全協(xié)議?
我們從一個(gè)有關(guān)安全協(xié)議的經(jīng)典例子入手來(lái)介紹安全協(xié)議的基本念。在這個(gè)例子中,有兩個(gè)用戶Alice(簡(jiǎn)稱A)和Bob,他們通過(guò)某種方式獲得了對(duì)方可行的公鑰。Alice希望和Bob實(shí)現(xiàn)在不安全網(wǎng)絡(luò)環(huán)境中的安全通信。
所謂安全通信,首先Alice要知道她所通信的對(duì)象一定是Bob。同樣,Bob也要確信他所通信的對(duì)象是Alice。這種對(duì)通信實(shí)體身份的確認(rèn)就是所謂的身份認(rèn)證(IdentificationAuthentication),因此Alice和Bob之間安全通信的第一個(gè)目標(biāo)就是實(shí)現(xiàn)雙向認(rèn)證。其次,還需確保通信過(guò)程中消息的機(jī)密性,即除了Alice和Bob之外,不應(yīng)該有第三方知道他們正在交換的消息的內(nèi)容。解決消息機(jī)密性最有效的方法就是加密。但是,由于Alice和Bob除了知道對(duì)方的公鑰(即和)之外,并無(wú)其它有關(guān)機(jī)密的任何信息。當(dāng)然,他們可以通過(guò)用對(duì)方的公鑰來(lái)加密消息的方式來(lái)提供消息的機(jī)密性。但是,一來(lái)公鑰加密算法加密速度慢,有可能影響通信性能,二來(lái)包含公鑰的密文積累過(guò)多,可能造成密鑰失竊的情況。為此,他們約定采用對(duì)稱加密算法(如DES)來(lái)實(shí)現(xiàn)消息的機(jī)密性。
但是,如何獲得稱加密算法所需要的加密和解密密鑰又成為了一個(gè)問(wèn)題。簡(jiǎn)單的方法是,該密鑰可以由Alice在本地生成后傳給Bob,但是由于二人相隔千里,無(wú)法面對(duì)面交換,而其它方式(如電子郵件、電話等)均不是理想和安全的交換方式。為此,他們希望通過(guò)某種方式,能夠在已知對(duì)方公鑰的基礎(chǔ)之上,提供加密密鑰交換的功能。此即為安全通信的第二個(gè)目標(biāo):在Alice和Bob之間實(shí)現(xiàn)共享秘密(分別記為和)的安全交換。獲得共享秘密和后,對(duì)稱加密算法所需要的密鑰可以通過(guò)某種約定的方式由和來(lái)生成。當(dāng)然,Alice和Bob希望在網(wǎng)絡(luò)上通過(guò)交換消息來(lái)實(shí)現(xiàn)。一個(gè)稱之為Needham-Schroeder公鑰認(rèn)證協(xié)議(簡(jiǎn)稱NSPK協(xié)議)的安全協(xié)議可以用來(lái)實(shí)現(xiàn)Alice和Bob的目標(biāo)。其描述如協(xié)議4-1-1所示。NSPK協(xié)議協(xié)議主體就是協(xié)議的參與者(或用戶)。其中圓括號(hào)中的數(shù)字表示消息的順序;符號(hào)“→”表示消息的流向:M”表示Alice向Bob發(fā)送消息M;{M}K表示用密鑰k對(duì)消息M進(jìn)行加密;A是Alice的身份,Na和Nb是新鮮的一次性隨機(jī)數(shù)。所謂新鮮的一次性隨機(jī)數(shù)(Nonce)或一次性隨機(jī)數(shù)是指該隨機(jī)數(shù)在產(chǎn)生時(shí)間上很新,且用完后即被丟棄,不會(huì)重用。上述NSPK就是一個(gè)典型的安全協(xié)議(SecurityProtocol)。通過(guò)對(duì)NSPK協(xié)議的分析,可得到如下結(jié)論:(1)NSPK是一個(gè)協(xié)議定義5-1-1協(xié)議(Protocol):是兩個(gè)或兩個(gè)以上參與者之間為完成某項(xiàng)特殊任務(wù)而采取的一系列步驟。NSPK本質(zhì)上看就是一個(gè)網(wǎng)絡(luò)協(xié)議,它必須具備網(wǎng)絡(luò)協(xié)議的三要素。(2)NSPK中用到了密碼技術(shù)綜合上述兩個(gè)特點(diǎn),可以得到安全協(xié)議的定義:定義5-1-2安全協(xié)議(SecurityProtocol):是在消息交換和處理過(guò)程中使用了若干密碼算法的協(xié)議。安全協(xié)議的內(nèi)涵是,安全協(xié)議是一個(gè)協(xié)議;安全協(xié)議必定涉及密碼算法;安全協(xié)議目標(biāo)是在密碼算法的基礎(chǔ)之上為網(wǎng)絡(luò)安全提供一個(gè)解決方案。2.安全協(xié)議的分類(1)密鑰交換協(xié)議密鑰交換協(xié)議可分為兩種情況:密鑰傳輸和密鑰協(xié)商。在密鑰傳輸中,需交換的共享密鑰其中的一個(gè)協(xié)議主體生成,通過(guò)密鑰交換協(xié)議傳遞給其它協(xié)議主體。而在密鑰協(xié)商協(xié)議中,需交換的共享密鑰不是有協(xié)議主體單方面生成,而是協(xié)議主體在交換一個(gè)或多個(gè)共享秘密信息之后,將這些秘密信息輸入一個(gè)預(yù)定函數(shù)而得到。協(xié)議5-1-2是一個(gè)典型的密鑰傳輸協(xié)議的例子,而協(xié)議5-1-3則是一個(gè)密鑰協(xié)商協(xié)議。協(xié)議5-1-2由4條消息組成,需要交換的共享密鑰由Bob生成,通過(guò)協(xié)議傳遞給Alice。協(xié)議過(guò)程中用到了對(duì)稱密碼算法和認(rèn)證,使用一次性隨機(jī)數(shù)的目的是為了防范重放攻擊。Diffie-Hellman密鑰交換協(xié)議是基于有限域中計(jì)算離散對(duì)數(shù)的困難性問(wèn)題之上的。離散對(duì)數(shù)問(wèn)題是指對(duì)任意正整數(shù)x,計(jì)算gx(modp)是容易的;但是已知g、Y、p和求x,使Y=gx(modp)是計(jì)算上幾乎不可能的。協(xié)議5-1-3由3條消息組成,其中xa和xb分別為Alice和Bob選擇的隨機(jī)數(shù)。在消息交換之后,Alice計(jì)算。同理,Bob計(jì)算,因此實(shí)現(xiàn)了共享密鑰(或秘密)的交換。協(xié)議5-1-4和協(xié)議5-1-5分別為基于公鑰體制的單向和雙向認(rèn)證協(xié)議。需要注意的是,雙向認(rèn)證協(xié)議一般不能等同于兩個(gè)單向認(rèn)證協(xié)議的簡(jiǎn)單疊加。認(rèn)證協(xié)議按照哪些實(shí)體的身份需要進(jìn)行認(rèn)證可分為單向認(rèn)證協(xié)議和雙向認(rèn)證協(xié)議。在前者中,僅有一個(gè)實(shí)體的身份得以認(rèn)證,而在后者中,兩個(gè)實(shí)體的身份均得到認(rèn)證。認(rèn)證協(xié)議一般需要使用密碼算法。協(xié)議5-1-5由3條消息組成,其中、、和是可選內(nèi)容。協(xié)議的認(rèn)證過(guò)程讀者可結(jié)合有關(guān)知識(shí)自行分析。協(xié)議5-1-6是DH協(xié)議的一個(gè)改進(jìn)版本,不僅實(shí)現(xiàn)了雙向認(rèn)證,而且實(shí)現(xiàn)了雙向密鑰確認(rèn),因而屬于認(rèn)證與密鑰交換協(xié)議。協(xié)議5-1-6由3條消息組成,其中。由于采用了簽名機(jī)制來(lái)保證消息的真實(shí)性,因此可以抵御許多針對(duì)DH協(xié)議的攻擊。(3)認(rèn)證與密鑰交換協(xié)議與其它類型的安全協(xié)議相比,電子商務(wù)協(xié)議具有顯著的特殊性。在電子商務(wù)安全協(xié)議中,協(xié)議主體往往是交易的雙方和金融機(jī)構(gòu),因此遠(yuǎn)比一般安全協(xié)議復(fù)雜。此外,除了一般協(xié)議中要求的機(jī)密性、完整性和不可抵賴性之外,電子商務(wù)安全協(xié)議還特別強(qiáng)調(diào)公平性(Fairness)和匿名性(Anonymity)。前者指協(xié)議應(yīng)該保證交易雙方都不能通過(guò)損害對(duì)方的利益而得到不應(yīng)該得到的利益,后者指交易雙方的身份應(yīng)該盡量不為他人所知(有時(shí)甚至要求交易雙方和金融機(jī)構(gòu)也不能知道交易方的信息)。安全電子交易(SET協(xié)議)是一個(gè)典型的電子商務(wù)安全協(xié)議,有關(guān)電子商務(wù)安全協(xié)議及SET協(xié)議的有關(guān)內(nèi)容可參照本書的其它章節(jié)。(4)電子商務(wù)安全協(xié)議(1)仲裁協(xié)議仲裁協(xié)議需要借助于一個(gè)稱之為仲裁者的可信第三方(TrustedThirdParty)來(lái)完成消息交換??尚乓馕吨俨谜咴趨f(xié)議過(guò)程中并無(wú)既得利益,且于協(xié)議中的其它任何主體之間無(wú)厲害關(guān)系,因此協(xié)議主體也樂(lè)于信賴該仲裁者。在仲裁者的幫助下,協(xié)議主體之間完成協(xié)議過(guò)程。2.按照是否需要可信第三方分類仲裁協(xié)議原理示意圖裁決協(xié)議原理示意圖如圖5-1-3所示。由圖5-1-3可知,裁決者Trent并不參與Alice和Bob之間的交易,僅當(dāng)Bob沒有收到書款提交裁決請(qǐng)求時(shí),Trent才參與協(xié)議。如果交易順利完成,Trent在協(xié)議中無(wú)需承擔(dān)任何工作,其負(fù)擔(dān)大為減輕。(3)自動(dòng)執(zhí)行協(xié)議自動(dòng)執(zhí)行協(xié)議不需要任何第三方(如仲裁者和裁決者)的參與,在協(xié)議主體之間完成協(xié)議過(guò)程。由于自動(dòng)執(zhí)行協(xié)議本身就保證了協(xié)議的安全性(如機(jī)密性、公平性等),因此不需要仲裁者來(lái)協(xié)助完成協(xié)議,也不需要裁決者來(lái)解決爭(zhēng)端,因此是比較好的一種安全協(xié)議。但是,設(shè)計(jì)一個(gè)安全的自動(dòng)執(zhí)行協(xié)議具有很高的難度,目前屬于安全協(xié)議研究的熱點(diǎn)問(wèn)題。以上述Alice向Bob購(gòu)書為例,要設(shè)計(jì)一個(gè)無(wú)仲裁者和裁決者的自動(dòng)執(zhí)行協(xié)議無(wú)疑是極為困難的事情。1.安全協(xié)議缺陷與安全協(xié)議模型二.協(xié)議安全的缺陷
在實(shí)際應(yīng)用中,要設(shè)計(jì)一個(gè)安全的協(xié)議是極為困難的。以著名的DH協(xié)議(協(xié)議5-1-3)為例,由于存在針對(duì)該協(xié)議的“中間人攻擊”,因此DH協(xié)議就不是一個(gè)絕對(duì)安全的協(xié)議。所謂中間人攻擊,就是攻擊者作為第三者,插入到協(xié)議主體Alice和Bob的通信過(guò)程的中間,對(duì)對(duì)消息進(jìn)行處理,從而破壞協(xié)議的正常執(zhí)行。DH協(xié)議的中間人攻擊如攻擊5-2-1所示。在攻擊5-2-1中,Malice作為中間人,截獲Alice發(fā)送給Bob的gx,并用自己計(jì)算的替代后以Alice的名義轉(zhuǎn)發(fā)給Bob。而Bob并不知曉中間人Malice的存在,因此以為是Alice向自己發(fā)起密鑰交換請(qǐng)求,因此發(fā)送自己的給Alice。Malice在此截獲,用替代后以Bob的名義轉(zhuǎn)發(fā)給Alice。按照協(xié)議規(guī)則,Alice和Bob在協(xié)議終止后計(jì)算所得共享密鑰分別為和,二人并不知曉所共享的密鑰是否相同,且已為Malice所擁有。而作為中間人的Malice,則同時(shí)獲得了Alice和Bob所擁有的兩個(gè)密鑰(即和)。在隨后的通信中,當(dāng)Alice用加密消息時(shí),Malice可以用相同的解密,得到消息的明文,并對(duì)該明文消息用加密后轉(zhuǎn)發(fā)給Bob。后者可以用自己擁有的解密,因此不能感知任何錯(cuò)誤或異常。同樣,對(duì)于Bob發(fā)送給Alice的加密消息,Malice可以采用密鑰實(shí)施欺騙功能。因此,了解安全協(xié)議常見問(wèn)題及其產(chǎn)生原因,有助于設(shè)計(jì)和驗(yàn)證協(xié)議的安全性。導(dǎo)致協(xié)議不安全的根本原因在于協(xié)議所運(yùn)行環(huán)境的復(fù)雜性。該復(fù)雜性的典型代表是存在協(xié)議攻擊者。協(xié)議攻擊者(ProtocolAttacker,以下簡(jiǎn)稱攻擊者)是指了解安全協(xié)議,并利用一定的方式對(duì)安全協(xié)議的過(guò)程進(jìn)行破壞,從而導(dǎo)致安全協(xié)議預(yù)定目標(biāo)不能正常實(shí)現(xiàn)的通信實(shí)體。攻擊者可以是協(xié)議的主體,也可以是協(xié)議主體之外的其它主體(如DH協(xié)議中的中間人)。因此,攻擊者可能存在與協(xié)議運(yùn)行過(guò)程中,也可能存在于協(xié)議運(yùn)行的環(huán)境中。圖5-2-1是攻擊者與協(xié)議及其協(xié)議運(yùn)行環(huán)境的關(guān)系示意圖。圖5-2-1是攻擊者與協(xié)議及其協(xié)議運(yùn)行環(huán)境的關(guān)系示意圖。攻擊者有被動(dòng)和主動(dòng)之分。被動(dòng)攻擊者通過(guò)竊聽并截獲協(xié)議消息。而主動(dòng)攻擊者不僅可以截獲消息,而且可以對(duì)其進(jìn)行修改,甚至于它還可以偽裝成協(xié)議主體與其它誠(chéng)實(shí)協(xié)議主體通信。在考慮協(xié)議安全時(shí),需要對(duì)攻擊者的能力進(jìn)行定義,即必須對(duì)攻擊者進(jìn)行建模,獲得攻擊者模型(attackermodel或adversarymodel)。一般而言,絕對(duì)安全的協(xié)議是極難設(shè)計(jì)和構(gòu)造的,因此所謂協(xié)議的安全性,一般為在假定攻擊者模型下,證明協(xié)議是安全的。為此,攻擊者模型在協(xié)議安全分析占有舉足輕重的地位和作用。(1)截獲并延遲消息的發(fā)送;(2)截獲并重新發(fā)送消息到任意接收者;(3)截獲并修改消息,并可轉(zhuǎn)發(fā)給任意接收者;(4)可以產(chǎn)生新的消息(包括新鮮的消息)。(5)可以對(duì)消息進(jìn)行分離;(6)可以對(duì)多個(gè)消息進(jìn)行組合;(7)知道密鑰后可解密消息和重新加密消息;(8)可以查看和掌握協(xié)議相關(guān)的公用信息;在眾多攻擊者模型中,Dolev-Yao模型是公認(rèn)較好的模型之一。在Dolev-Yao攻擊者模型中,一般假設(shè)攻擊者具有如下能力:由此可見,一個(gè)合理的攻擊者模型,應(yīng)該假定攻擊者的能力較強(qiáng)。如果輕視或忽略攻擊者這種能力,得出協(xié)議是安全的結(jié)論是極為不合理的,有時(shí)甚至是荒謬的。此外,Dolev-Yao模型假定攻擊者不具備如下能力:(1)不知道密鑰不能進(jìn)行加密和解密操作(即密碼算法是安全的);(2)不能獲得加密消息的部分內(nèi)容;(3)不能猜測(cè)密鑰或密鑰的一部分;(4)不能進(jìn)行統(tǒng)計(jì)分析。總之,由于存在攻擊者,因此設(shè)計(jì)一個(gè)安全的協(xié)議是非常困難的任務(wù).除了由于存在攻擊者而導(dǎo)致協(xié)議不安全之外,協(xié)議自身的缺陷也是導(dǎo)致協(xié)議不安全的原因之一。存在協(xié)議缺陷的原因可能是協(xié)議設(shè)計(jì)過(guò)程不規(guī)范,也可能是在協(xié)議執(zhí)行時(shí)產(chǎn)生。常見的協(xié)議缺陷包括:(1)基本協(xié)議缺陷:協(xié)議中沒有或者很少考慮對(duì)攻擊者的防范而引發(fā)的協(xié)議缺陷(如TCP/IP協(xié)議的安全缺陷問(wèn)題等)。(2)口令/密碼設(shè)置缺陷:在設(shè)置和使用口令或密碼的過(guò)程中,未考慮攻擊者對(duì)其的猜測(cè)攻擊等情況(如口令和密碼過(guò)短,直接采用用戶名來(lái)作為口令和密碼等)。(3)陳舊消息缺陷:在協(xié)議設(shè)計(jì)過(guò)程中,未考慮消息的時(shí)效性(即新鮮性),從而使得攻擊者可以利用協(xié)議過(guò)程中產(chǎn)生的過(guò)時(shí)消息來(lái)對(duì)協(xié)議進(jìn)行重放攻擊。(4)并行會(huì)話缺陷:協(xié)議設(shè)計(jì)對(duì)僅考慮單個(gè)協(xié)議執(zhí)行的情況,對(duì)多個(gè)協(xié)議(或同一個(gè)協(xié)議的多個(gè)運(yùn)行實(shí)例)并行會(huì)話缺乏考慮,使得攻擊者可以相互交換適當(dāng)?shù)膮f(xié)議消息來(lái)獲得更為重要的消息。(5)內(nèi)部協(xié)議缺陷:協(xié)議參與者中至少有一方不能夠完成所有必須的動(dòng)作而導(dǎo)致缺陷。(6)密碼系統(tǒng)缺陷:協(xié)議中使用的密碼算法的安全強(qiáng)度問(wèn)題導(dǎo)致協(xié)議不能完全滿足所要求的機(jī)密性、完整性、認(rèn)證等需要而產(chǎn)生的缺陷。以下通過(guò)針對(duì)協(xié)議5-2-2(NSSK協(xié)議)來(lái)闡釋消息重放攻擊。攻擊者M(jìn)alice通過(guò)對(duì)Alice和Bob過(guò)去某次NSSK協(xié)議的通過(guò)過(guò)程進(jìn)行竊聽,獲得了其中的第三條消息{kab,A}kbt.通過(guò)對(duì)該加密消息的攻擊(如典型的蠻力破解),破譯了該消息,從而得到了Alice和Bob使用的會(huì)話密鑰kab.當(dāng)然,該破譯過(guò)程可能需要較長(zhǎng)的時(shí)間(如一年甚至更長(zhǎng))。一旦獲得舊的會(huì)話密鑰kab之后,Malice可以在今后某個(gè)時(shí)刻重新發(fā)送過(guò)去截獲的舊消息{kab,A}kbt而Bob對(duì)此并無(wú)只覺,因此它按照協(xié)議執(zhí)行。隨后的過(guò)程重Malice可以成功欺騙Bob,使得Bob認(rèn)為和Alice發(fā)起了一次認(rèn)證和密鑰交換協(xié)議,并使得Alice(實(shí)質(zhì)上是Malice偽裝成Alice)的身份得以認(rèn)證通過(guò)。但是,Alice在整個(gè)協(xié)議過(guò)程中根本未出現(xiàn),所有的行為均為攻擊者M(jìn)alice所為。通過(guò)對(duì)攻擊5-2-2的分析可知,重放攻擊之所以成功,其根本原因在于消息的新鮮性無(wú)法得到保證。如當(dāng)Bob收到NSSK協(xié)議中第三條消息{kab,A}kbt時(shí),他并不能區(qū)分該消息是現(xiàn)在產(chǎn)生的,還是過(guò)去的舊消息。從被重放消息的來(lái)源來(lái)看,重放攻擊可分為協(xié)議輪內(nèi)攻擊和協(xié)議輪外攻擊。協(xié)議輪是指一個(gè)協(xié)議的整個(gè)過(guò)程消息交換過(guò)程(如NSSK協(xié)議中的5條消息交換即為一個(gè)協(xié)議輪)。因此,協(xié)議輪內(nèi)的重放攻擊就是指重放在本協(xié)議輪被截獲的消息,而協(xié)議論外攻擊則是重放從其它協(xié)議輪中捕獲的消息。根據(jù)消息的去向,重放攻擊可分為偏轉(zhuǎn)攻擊和直接攻擊。偏轉(zhuǎn)攻擊是通過(guò)改變消息的去向而實(shí)施的攻擊。直接攻擊是將消息發(fā)送給任意接收方而實(shí)施的攻擊。其中偏轉(zhuǎn)攻擊分為反射攻擊和第三方攻擊。前者指將消息返回給發(fā)送者,而后者指將消息發(fā)給協(xié)議合法通信雙方之外的任一方。攻擊5-2-2中的重放攻擊屬于協(xié)議輪外攻擊和直接攻擊。消息重放對(duì)策主要有三種:挑戰(zhàn)-應(yīng)答機(jī)制、時(shí)戳機(jī)制(Timestamp)和序列號(hào)機(jī)制(SequenceNo)。挑戰(zhàn)-應(yīng)答機(jī)制通過(guò)發(fā)送挑戰(zhàn)值(Nonce:中文含義是現(xiàn)在,目前)來(lái)確保消息的新鮮性。時(shí)戳機(jī)制對(duì)消息加蓋本地時(shí)戳,只有當(dāng)消息上的時(shí)戳與當(dāng)前本地時(shí)間的差值在意定范圍之內(nèi),才接受該消息。時(shí)戳機(jī)制要求有一個(gè)全局同步時(shí)鐘。如果雙方時(shí)鐘偏差過(guò)大或者允許的范圍過(guò)大,則可以被攻擊者利用。序列號(hào)機(jī)制是指通信雙方通過(guò)消息中的序列號(hào)來(lái)判斷消息的新鮮性。序列號(hào)機(jī)制要求通信雙方必須事先協(xié)商一個(gè)初始序列號(hào),并協(xié)商遞增方法。(1)挑戰(zhàn)-應(yīng)答機(jī)制在挑戰(zhàn)-應(yīng)答機(jī)制中,發(fā)送者(或挑戰(zhàn)者)向接收者發(fā)送一條挑戰(zhàn)消息(Challenge)(如可能是一個(gè)稱之為Nonce的一次性隨機(jī)數(shù));接收者(或應(yīng)答者)對(duì)該挑戰(zhàn)消息進(jìn)行密碼操作,并發(fā)送該挑戰(zhàn)對(duì)應(yīng)的應(yīng)答消息(Response)給發(fā)送者進(jìn)行驗(yàn)證;發(fā)送者收到應(yīng)答消息之后卡,能夠通過(guò)他自己輸入消息的新鮮性來(lái)驗(yàn)證接收者通信的新鮮性和真實(shí)性。其中,接收者的應(yīng)答消息中所包含的對(duì)挑戰(zhàn)的應(yīng)答必須進(jìn)行完整性保護(hù),即對(duì)于應(yīng)答消息一般需要進(jìn)行某種密碼變換。依據(jù)接收者對(duì)該消息進(jìn)行密碼操作不同,挑戰(zhàn)-應(yīng)答機(jī)制可分為對(duì)稱密鑰加密機(jī)制和非對(duì)稱密鑰簽名機(jī)制。典型的挑戰(zhàn)-應(yīng)答機(jī)制如圖5-2-2所示。需要說(shuō)明的是,對(duì)新鮮隨機(jī)數(shù)的保護(hù)(或變化)也可以由挑戰(zhàn)者來(lái)進(jìn)行,而應(yīng)答者僅需簡(jiǎn)單回復(fù)即可。一般而言,挑戰(zhàn)者和應(yīng)答者同時(shí)對(duì)新鮮隨機(jī)數(shù)進(jìn)行變換是不必要的,但是在某些安全協(xié)議中也可同時(shí)進(jìn)行變換。如圖5-2-2所示,Alice通過(guò)在消息中嵌入表示消息新鮮性的標(biāo)志(新鮮一次性隨機(jī)數(shù)Nonce)來(lái)發(fā)起挑戰(zhàn),Bob收到帶有挑戰(zhàn)信息(Nonce)的消息之后,對(duì)挑戰(zhàn)信息先進(jìn)性變換后返回給Alice。而Alice能夠通過(guò)對(duì)比Bob的應(yīng)答和自己所知道的答案來(lái)判斷消息是否是新鮮的。如果Bob的應(yīng)答不能滿足Alice的挑戰(zhàn),則Bob所回應(yīng)的消息被認(rèn)為是陳舊消息,即可能是重放攻擊。協(xié)議5-2-1為采用挑戰(zhàn)-應(yīng)答機(jī)制來(lái)設(shè)計(jì)抗重放攻擊的安全協(xié)議協(xié)的一例。在協(xié)議5-2-1中,Bob對(duì)Alice的挑戰(zhàn)是利用對(duì)稱密鑰進(jìn)行加密。Alice收到Bob發(fā)送的消息之后,用相同的密鑰解密得到自己所期望的應(yīng)答,并與自己在第一步中所發(fā)送的挑戰(zhàn)進(jìn)行比較。如果相同,則消息是新鮮的;否則消息即為陳舊消息。需要說(shuō)明的時(shí),協(xié)議5-2-1僅僅證明了消息的新鮮性,而其它消息的新鮮性則未提供保證。(2)時(shí)戳機(jī)制時(shí)戳機(jī)制是指發(fā)送者在消息中嵌入發(fā)送消息的本地時(shí)刻,而接收者在消息達(dá)到后,通過(guò)對(duì)比消息中所包含的時(shí)間信息和本地時(shí)間信息的差值,來(lái)決定該消息是否為新鮮消息。如果接收者對(duì)消息延遲達(dá)到所能容忍的時(shí)間差值為,發(fā)送消息的時(shí)刻為,收到消息的時(shí)刻為,如果則接收者認(rèn)為該消息是新鮮的,否則該消息是陳舊消息(即可能時(shí)重放攻擊)。同樣,消息中的時(shí)戳信息必須進(jìn)行完整性保護(hù)。典型的利用時(shí)戳機(jī)制對(duì)抗重放攻擊的過(guò)程如圖5-2-3所示。與挑戰(zhàn)-應(yīng)答機(jī)制不同,對(duì)時(shí)戳的保護(hù)(或變化)只能由消息的發(fā)送者提供在圖5-2-3中,Alice通過(guò)在消息中嵌入時(shí)戳來(lái)表示消息的新鮮性。Bob收到帶有時(shí)戳信息的消息之后,計(jì)算出消息的時(shí)間差,并依據(jù)本地安全策略判斷該消息是否是新鮮的。在攻擊5-2-2中,我們描述了針對(duì)Needham-Schroeder對(duì)稱密碼認(rèn)證與密鑰交換協(xié)議的重放攻擊,而協(xié)議5-2-2則是利用時(shí)戳機(jī)制對(duì)NSSK協(xié)議的一種改進(jìn)。由于Trent在第二條消息中嵌入了自己的本地時(shí)戳,因此Bob在收到Alice所發(fā)送的第三條消息之后,可以通過(guò)對(duì)比時(shí)戳來(lái)挫敗攻擊者所發(fā)起的重放攻擊。(3)序列號(hào)機(jī)制在序列號(hào)機(jī)制中,協(xié)議主體之間首先協(xié)商一個(gè)一致的初始序列號(hào)。協(xié)議過(guò)程中每條協(xié)議消息均帶上序列號(hào)。每發(fā)送一條消息,序列號(hào)對(duì)應(yīng)加1。因此,協(xié)議實(shí)體可以通過(guò)對(duì)比消息中的序列號(hào)和自己當(dāng)前所期望的序列號(hào)是否相同來(lái)判斷消息的新鮮性。典型的采用序列號(hào)機(jī)制來(lái)對(duì)抗消息重返的過(guò)程如圖5-2-4所示。當(dāng)然,每條消息的序列號(hào)必須進(jìn)行保護(hù)。由于序列號(hào)需要協(xié)商并保持同步,因此在實(shí)際應(yīng)用中較少采用。三種對(duì)抗重放攻擊的方法各有優(yōu)缺點(diǎn),設(shè)計(jì)安全協(xié)議時(shí)須結(jié)合各自的特點(diǎn)和應(yīng)用的要求來(lái)選擇。三種防御方法對(duì)比如表5-2-1所示。方法特點(diǎn)缺點(diǎn)應(yīng)用挑戰(zhàn)-應(yīng)答機(jī)制通過(guò)新鮮一次性隨機(jī)數(shù)保證消息的新鮮性需要生成一次性隨機(jī)數(shù)的算法用于挑戰(zhàn)的發(fā)起者驗(yàn)證所收到消息的新鮮行時(shí)戳機(jī)制利用時(shí)戳保證消息的新鮮性需要全局時(shí)鐘同步;時(shí)間窗口大小不易控制用于消息的接收者判斷消息的新鮮性序列號(hào)機(jī)制利用消息序列號(hào)來(lái)保證消息的新鮮性需要協(xié)商初始序列號(hào),序列號(hào)不易同步可用于發(fā)送者和接收者判斷消息的新鮮性表5-2-1
三種對(duì)抗重放攻擊的方法對(duì)比分析攻擊者和協(xié)議的缺陷是導(dǎo)致協(xié)議不安全的兩大原因。為了設(shè)計(jì)出更為安全的協(xié)議來(lái),需掌握協(xié)議設(shè)計(jì)的工程方法。在協(xié)議設(shè)計(jì)中遵循一些基本原則,不僅有助于幫助設(shè)計(jì)者避免那些已在許多安全協(xié)議出現(xiàn)過(guò)的錯(cuò)誤,而且有助于設(shè)計(jì)者掌握一套良好的協(xié)議設(shè)計(jì)技巧和方法。以下是設(shè)計(jì)一個(gè)安全協(xié)議時(shí)應(yīng)遵循的一般原則:(1)消息獨(dú)立性原則
協(xié)議中的每條消息應(yīng)該盡可能是自包含的,即消息的含義應(yīng)該是一目了然,且消息含義的翻譯直接通過(guò)該消息就可以完成,而無(wú)需依賴于其它協(xié)議或協(xié)議中的其它消息。(2)消息前提準(zhǔn)確原則
消息所依賴的條件必須明確地定義出來(lái),從而使得協(xié)議的評(píng)價(jià)者知道這些條件是否可以接受。其原因在于絕對(duì)安全的協(xié)議是很難設(shè)計(jì)和構(gòu)造的,一般的安全協(xié)議均是有條件的。因此,協(xié)議安全的前提必須明確的提出來(lái)。(3)協(xié)議主體身份標(biāo)識(shí)原則如果協(xié)議主體的身份對(duì)于理解消息的含義是必須的,那么協(xié)議主體身份就應(yīng)該在消息中明確地標(biāo)識(shí)出來(lái),以避免歧義。(4)加密目的明確原則(5)簽名原則加密需要計(jì)算開銷和空間開銷,因此必須在必要時(shí)才使用加密。此外,加密并不等于安全,如果必須使用加密,則必須明確加密在協(xié)議安全中的作用和目的。一般而言,加密的目的包括:機(jī)密性、認(rèn)證、認(rèn)證與機(jī)密性、消息綁定、生成隨機(jī)數(shù)。消息綁定是指通過(guò)密鑰加密,可以將加密密鑰所對(duì)應(yīng)的協(xié)議主體的身份與被加密消息的身份綁定在一起。例如,如果某個(gè)密鑰僅為Alice和Bob使用,則當(dāng)Alice收到一條由加密的消息時(shí),她知道該消息的加密者是Bob(因?yàn)槌怂虰ob之外,無(wú)其它人知道該密鑰)。生成隨機(jī)數(shù)一般是利用了加密算法的雪崩效應(yīng),即輸入產(chǎn)生少許變化,將帶來(lái)輸出的巨大變化。
當(dāng)協(xié)議主體對(duì)加密消息進(jìn)行簽名(即先加密后簽名)時(shí),則不應(yīng)當(dāng)假設(shè)該主體對(duì)消息的含義是清楚的。相反,如果是對(duì)明文進(jìn)行簽名后再加密(即先簽名后加密)時(shí),協(xié)議主體對(duì)消息的含義是完全清楚的。如果在一個(gè)安全協(xié)議中需要同時(shí)進(jìn)行加密和簽名,則須謹(jǐn)慎。一般的原則是先加密后簽名。需要明確的是,這并非對(duì)所有協(xié)議實(shí)用,且即便如此不能保證協(xié)議的絕對(duì)安全。(6)隨機(jī)數(shù)使用原則(7)隨機(jī)數(shù)隨機(jī)性原則(8)時(shí)戳使用原則(9)密鑰新鮮性原則當(dāng)使用隨機(jī)數(shù)時(shí),必須明確隨機(jī)數(shù)對(duì)應(yīng)的含義。例如,隨機(jī)數(shù)是用來(lái)對(duì)抗重放攻擊,還是用來(lái)綁定時(shí)間上鄰接的兩條消息?此外,由于生成真正的隨機(jī)數(shù)是非常困難的,因此如果有好的替換方法,應(yīng)盡量少用隨機(jī)數(shù)。如果決定在協(xié)議中使用隨機(jī)數(shù),則必須明確對(duì)隨機(jī)數(shù)隨機(jī)性的要求。例如,由于挑戰(zhàn)-應(yīng)答機(jī)制中對(duì)隨機(jī)數(shù)進(jìn)行了保護(hù),因此可以使用可預(yù)測(cè)的隨機(jī)數(shù)來(lái)保證消息的新鮮性。但是,當(dāng)使用可預(yù)測(cè)的隨機(jī)數(shù)時(shí),必須謹(jǐn)慎,以確保隨機(jī)數(shù)的作用得到保證。如果時(shí)戳是用來(lái)表示消息新鮮性的絕對(duì)時(shí)間,那么不同協(xié)議主體的本地時(shí)鐘必須進(jìn)行全局同步,以確保新鮮性的真實(shí)性。此外,如果使用了全局時(shí)鐘同步,那么該同步機(jī)制也應(yīng)該被視為安全協(xié)議的一部分。會(huì)話密鑰僅能用來(lái)加密當(dāng)前消息,因此用過(guò)的會(huì)話密鑰不應(yīng)當(dāng)在以后協(xié)議執(zhí)行過(guò)程中再次有效。因此,協(xié)議過(guò)程中用到的密鑰應(yīng)盡可能提供新鮮性保證。如果協(xié)議中使用了編碼方案,那么就應(yīng)當(dāng)明確地對(duì)所采用地編碼方法進(jìn)行說(shuō)明。如果編碼方法是依賴于協(xié)議的,那么可以推測(cè)該消息是確實(shí)屬于這個(gè)協(xié)議的。有時(shí)候甚至要求知道該消息對(duì)應(yīng)的協(xié)議實(shí)例及其消息順序號(hào)。(10)編碼原則(11)信任性原則協(xié)議設(shè)計(jì)者必須知道自己所設(shè)計(jì)的安全協(xié)議所依賴的信任關(guān)系,并清楚地知道為什么該信任是必須和可能地。此外,如果存在信任關(guān)系,那么這種信任關(guān)系必須是依賴于安全策略和判斷的,而不能依賴于邏輯推理。綜上所述,正如一位著名的安全學(xué)者所言,安全協(xié)議的設(shè)計(jì)原則對(duì)于協(xié)議的安全性是必須的,但也是不夠的。不過(guò),掌握一般的設(shè)計(jì)原則,在某些條件下可以幫助協(xié)議設(shè)計(jì)者簡(jiǎn)化協(xié)議,并避免那些已經(jīng)公開的混亂和錯(cuò)誤。認(rèn)證(即身份認(rèn)證)是聲稱者向驗(yàn)證者出示自己的身份的證明過(guò)程。認(rèn)證目的是使別的成員(驗(yàn)證者)獲得對(duì)聲稱者所聲稱的事實(shí)的信任。身份認(rèn)證是獲得系統(tǒng)服務(wù)所必須的第一道關(guān)卡。常見的協(xié)議包括用戶口令認(rèn)證協(xié)議(PAP)、挑戰(zhàn)-握手認(rèn)證協(xié)議(CHAP)、Kerberos認(rèn)證協(xié)議和X.509認(rèn)證協(xié)議等。用戶口令認(rèn)證協(xié)議(PAP:PasswordAuthenticationProtocol)是用于用戶向點(diǎn)到點(diǎn)連接(PPP:Point-toPointProtocol)服務(wù)器證明自己的身份的協(xié)議,它僅在鏈路建立初期進(jìn)行認(rèn)證,一旦完成認(rèn)證,以后就不再進(jìn)行認(rèn)證。其認(rèn)證過(guò)程如圖5-3-1所示。其中認(rèn)證請(qǐng)求消息主要包括用戶名及其口令,而認(rèn)證響應(yīng)消息則指明認(rèn)證是否通過(guò)。因此,PAP協(xié)議就是簡(jiǎn)單的用戶口令認(rèn)證協(xié)議,且口令明文傳送。PAP的缺點(diǎn)是顯然的:任何網(wǎng)絡(luò)竊聽均可獲得用戶口令,從而假冒用戶。與PAP認(rèn)證協(xié)議相似,挑戰(zhàn)-握手認(rèn)證協(xié)議(CHAP:ChallengeHandshakeAuthenticationProtocol)也是用于用戶與PPP服務(wù)器之間的認(rèn)證。但是,與PAP不同,CHAP協(xié)議雖然在鏈路建立初期需要進(jìn)行認(rèn)證,但是它也可以在再次進(jìn)行認(rèn)證。在認(rèn)證之前,用戶和服務(wù)器之間必須共享某個(gè)秘密值S(如用戶口令)和一個(gè)單向函數(shù)H。CHAP認(rèn)證協(xié)議原理如圖5-3-2所示。其中認(rèn)證挑戰(zhàn)消息(M)包含用戶ID等信息,而認(rèn)證響應(yīng)消息是包含挑戰(zhàn)消息及用戶和服務(wù)器共享的秘密值的一個(gè)單向函數(shù)的輸出結(jié)果:H1=H(M+S)。服務(wù)器收到認(rèn)證響應(yīng)消息之后,利用相同的單向函數(shù)和自己所知道的共性秘密值計(jì)算:H2=H(M+S)
;如果H1=H2則認(rèn)證通過(guò),否則認(rèn)證失敗。CHAP協(xié)議避免了口令在網(wǎng)絡(luò)上的明文傳送的缺點(diǎn),是對(duì)PAP協(xié)議的改進(jìn)。但是,CHAP協(xié)議由于需要預(yù)共享秘密值,因此其應(yīng)用范圍受到一定的限制。“Kerberos”的本意是希臘神話中守護(hù)地獄之門的三頭犬。Kerberos認(rèn)證協(xié)議是美國(guó)麻省理工學(xué)院雅典娜(Athena)研究計(jì)劃中的一部份,由Miller和Neuman兩位研究人員以Needham-Schroeder認(rèn)證協(xié)議為基礎(chǔ)改進(jìn)而成。Kerberos提供了一個(gè)集中式的認(rèn)證服務(wù)器結(jié)構(gòu),認(rèn)證服務(wù)器的功能是實(shí)現(xiàn)用戶與其訪問(wèn)的服務(wù)器間的相互鑒別,其實(shí)現(xiàn)采用對(duì)稱密鑰加密技術(shù),而未采用公開密鑰加密技術(shù)。公開發(fā)布的Kerberos版本包括版本4和版本5。針對(duì)Needham-Schroeder認(rèn)證協(xié)議的缺點(diǎn),Kerberos引入了票據(jù)準(zhǔn)許服務(wù)器(TGS:Ticket-GrantingServer)作為一個(gè)認(rèn)證框架,Kerbero認(rèn)證協(xié)議可應(yīng)用于多種網(wǎng)絡(luò)協(xié)議和操作系統(tǒng)。目前,無(wú)論是UNIX系統(tǒng)、Linux操作系統(tǒng),還是Windows2000/XP操作系統(tǒng)均支持Kerberos協(xié)議。在Kerberos認(rèn)證協(xié)議中,存在四個(gè)角色:客戶端(C:Client,即用戶),服務(wù)器(S:Server,即提供某種服務(wù)器的服務(wù)器),認(rèn)證服務(wù)器(AS:Authentication
Server)及票據(jù)準(zhǔn)許服務(wù)器(TGS:Ticket-GrantingServer)??蛻舳思凑?qǐng)求服務(wù)的用戶,而服務(wù)器就是向用戶提供服務(wù)的一方。認(rèn)證服務(wù)器負(fù)責(zé)驗(yàn)證用戶的身份,如果通過(guò)了認(rèn)證,則向用戶提供訪問(wèn)票據(jù)準(zhǔn)許服務(wù)器的票據(jù)許可票據(jù)(Ticket-GrantingTicket),票據(jù)準(zhǔn)許服務(wù)器則負(fù)責(zé)驗(yàn)證用戶的票據(jù)許可票據(jù),如果驗(yàn)證通過(guò),則為用戶提供訪問(wèn)服務(wù)器的服務(wù)許可票據(jù)(Service-GrantingTicket)。因此,從認(rèn)證服務(wù)器所獲得的票據(jù)許可票據(jù)不能作為用戶訪問(wèn)服務(wù)器的憑證,只能作為訪問(wèn)票據(jù)許可服務(wù)器的憑證,而后者所授予的服務(wù)票據(jù)才是用戶訪問(wèn)服務(wù)器的憑證。Kerberos中的四種角色及其密鑰共享關(guān)系如圖5-3-4所示。由圖5-3-4可知,用戶C和票據(jù)準(zhǔn)許服務(wù)器TGS和服務(wù)器S之間并無(wú)密鑰共享關(guān)系,因此它們之間的通信采用會(huì)話密鑰來(lái)加密。Kerberos系統(tǒng)構(gòu)架如圖5-3-5所示。在Kerberos的認(rèn)證過(guò)程中也存在票據(jù)有效期問(wèn)題。因此,當(dāng)用戶向認(rèn)證服務(wù)器AS請(qǐng)求一張與票據(jù)許可服務(wù)器TGS通信的通行證時(shí),該通行證除了會(huì)話密鑰之外,還包括用戶端、服務(wù)器端、時(shí)戳以及有效期等信息。同樣,票據(jù)許可服務(wù)器頒發(fā)給用戶的服務(wù)許可票據(jù)除了包含會(huì)話密鑰之外,同樣也包含用戶、服務(wù)器、時(shí)戳和有效期等信息。一旦用戶獲得票據(jù)許可票據(jù),則訪問(wèn)其它服務(wù)時(shí)只需要訪問(wèn)票據(jù)許可服務(wù)器,而無(wú)需通過(guò)認(rèn)證服務(wù)器。通過(guò)使用票據(jù)許可票據(jù),避免了用戶重復(fù)出示用戶名和口令的問(wèn)題,因此可有效提高認(rèn)證的效率和安全性,而通過(guò)使用服務(wù)許可票據(jù),將認(rèn)證和授權(quán)分離,減少了認(rèn)證開銷。(1)第一步:認(rèn)證服務(wù)交換(AuthenticationServiceExchange):用戶向認(rèn)證服務(wù)器證明自己的身份,以便獲得票據(jù)許可票據(jù)(Ticket-GrantingTicket)。(2)第二步:票據(jù)許可服務(wù)交換(Ticket-GrantingServiceExchange):用戶向票據(jù)許可服務(wù)器TGS索取訪問(wèn)服務(wù)器的服務(wù)許可票據(jù)(Service-GrantingTicket)。(3)第三步:用戶與服務(wù)器交換(AuthenticationExchange):使用所需服務(wù)??偨Y(jié)起來(lái),Kerberos認(rèn)證協(xié)議可分為三大步驟:參數(shù)含義說(shuō)明C客戶端(Client)S服務(wù)器(Server)TGS票據(jù)準(zhǔn)許服務(wù)器(Ticket-GrantingServer)TS時(shí)戳(Timestamp)Ticket票據(jù),網(wǎng)絡(luò)雙方通信時(shí)的有效憑證LT票據(jù)(Ticket)的有效期IDC客戶端的標(biāo)識(shí)(ID)IDtgs票據(jù)準(zhǔn)許服務(wù)器的標(biāo)識(shí)(TGSID)Kc客戶端(C)和認(rèn)證服務(wù)器(AS)的共享密鑰Ks服務(wù)器(S)和票據(jù)準(zhǔn)許服務(wù)器(TGS)的共享密鑰Ktgs認(rèn)證服務(wù)器(AS)和票據(jù)準(zhǔn)許服務(wù)器(TGS)的共享密鑰Kc,tgs認(rèn)證服務(wù)器(AS)產(chǎn)生的、用于客戶端(C)和票據(jù)準(zhǔn)許服務(wù)器(TGS)之間通信需要的會(huì)話密鑰(sessionkey)Kc,s票據(jù)準(zhǔn)許服務(wù)器(TGS)產(chǎn)生的、用于客戶端(C)和服務(wù)器(S)之間通信需要的會(huì)話密鑰{M}K表示用密鑰K加密消息MTickettgs客戶端(C)用來(lái)與票據(jù)準(zhǔn)許服務(wù)器(TGS)通信的票據(jù)Tickets客戶端(C)用來(lái)與服務(wù)器(S)通信的票據(jù)ADc客戶端的IP地址,用來(lái)代表誰(shuí)使用票據(jù)AU認(rèn)證標(biāo)識(shí),用來(lái)標(biāo)識(shí)認(rèn)證相關(guān)信息M1||M2消息M1和消息M2的簡(jiǎn)單串接表5-3-1Kerberos認(rèn)證協(xié)議中的參數(shù)及其含義
在描述Kerberos協(xié)議的過(guò)程中,各個(gè)參數(shù)如表5-3-1所示。Kerberos協(xié)議版本4如協(xié)議5-3-1所示。消息(3)和消息(4)是票據(jù)許可服務(wù)交換。在消息(3)中,IDs用來(lái)表示客戶端C要求訪問(wèn)服務(wù)器IDs或與之通信;Tickettgs是消息(2)中所取得的、用來(lái)證明C已通過(guò)AS的認(rèn)證的票據(jù);與Tickettgs中的相關(guān)認(rèn)證信息對(duì)應(yīng),認(rèn)證符AUc1用來(lái)證明自己是Tickettgs的合法擁有者。AUc1是由客戶端所產(chǎn)生,其使用期限應(yīng)該很短,以減少遭受重放攻擊(replayattack)的概率。認(rèn)證符中包括時(shí)戳TS3,用來(lái)表示此認(rèn)證符表示AUc1產(chǎn)生的時(shí)間;IDC和ADc都是用來(lái)與Tickettgs中的IDc和ADc做對(duì)比,以證明客戶端的身份。在消息(4)中,所有內(nèi)容均使用客戶和票據(jù)準(zhǔn)許服務(wù)器共享的密鑰Kc,tgs加密傳送,以避免信息被竊聽。此消息包含了客戶端與服務(wù)器通信所需要的會(huì)話密鑰Kc,s;IDs用來(lái)表示Tickets是用來(lái)與服務(wù)器S通信的;時(shí)戳TS4用來(lái)表示此Tickets的產(chǎn)生時(shí)間,而Tickets是由票據(jù)準(zhǔn)許服務(wù)器簽發(fā)給客戶端用來(lái)與服務(wù)器通信的票據(jù)(即通信證)。消息(5)和消息(6)是用戶與服務(wù)器交換。其中消息(5)的作用與消息(4)相似,主要用于服務(wù)器認(rèn)證客戶,讀者可自行分析。消息(6)作為客戶端認(rèn)證服務(wù)器,以證明服務(wù)器具有解密消息(5)中的認(rèn)證標(biāo)識(shí)AUc2的能力,并回送另外一時(shí)戳信息TS5+1。通過(guò)消息(5)和消息(6)實(shí)現(xiàn)了客戶端和服務(wù)器的雙向認(rèn)證。比較項(xiàng)說(shuō)明加密方法KerberosV4只支持DES加密,而在V5中可支持多種加密方法。網(wǎng)絡(luò)協(xié)議KerberosV4中只能用在TCP/IP網(wǎng)絡(luò)上,而V5則可以使用在各種符合OSI標(biāo)準(zhǔn)的網(wǎng)絡(luò)中。報(bào)文字節(jié)順序KerberosV4中消息的位順序是由其中的一個(gè)標(biāo)記(tags)來(lái)決定的,而在V5中則采用的通用的抽象語(yǔ)法標(biāo)記標(biāo)準(zhǔn)ASN.1(AbstractSyntaxNotationOne)以及基本編碼規(guī)則BER(BasicEncodingRule)進(jìn)行編碼。票據(jù)準(zhǔn)許票據(jù)的有效期限制KerberosV4中,一張票據(jù)許可票據(jù)的有效期最多只有21小時(shí),而在V5中則可直接指定起止時(shí)間,因此無(wú)有效期的限制。交叉認(rèn)證能力在Kerberosv4中沒有代理認(rèn)證功能,因此不提供交叉認(rèn)證功能,而在V5中則支持交叉認(rèn)證功能??缬蛘J(rèn)證功能KerberosV4僅適用于一個(gè)網(wǎng)絡(luò)域內(nèi)的認(rèn)證,不提供跨域認(rèn)證功能,而V5提供更有效的跨域認(rèn)證功能??诹钫J(rèn)證Kerberos中的客戶端與認(rèn)證服務(wù)器共享的口令易遭受字典攻擊,而V5提供了一種預(yù)認(rèn)證(Pre-authentication)機(jī)制,使口令攻擊更加困難。新版本(版本v5)則提供了較版本4更為完善的認(rèn)證功能,且提供了跨域認(rèn)證功能。Kerberos版本4與版本5的不同之處如表5-3-2所示。參數(shù)含義說(shuō)明Realm表示使用者所在的域Options用于請(qǐng)求在返回的票據(jù)中設(shè)置指定的標(biāo)識(shí)位(如表5-3-4所示)Times標(biāo)識(shí)要求生辰個(gè)的ticket的使用時(shí)間Nonce用來(lái)防止重放攻擊的一次性新鮮隨機(jī)數(shù)Subkey客戶端要求使用的加密密鑰,用來(lái)對(duì)某個(gè)特定會(huì)話加密;如果被省略則使用票據(jù)中的會(huì)話密鑰Seq#服務(wù)器和客戶端交換消息的初始序列號(hào)FlagsKerberosV5支持的可選參數(shù)表5-3-3KerberosV5中新增加的參數(shù)及其含義表5-3-3是KerberosV5中新增加的符號(hào)及其說(shuō)明,具體的協(xié)議5-3-2所示。由于V5與V4大致相同,讀者可自行分析。表5-3-4KerberosV5的標(biāo)志及其含義參數(shù)含義說(shuō)明INITIAL按照認(rèn)證服務(wù)器AS的PRE-AUTHENT在初始認(rèn)證中,客戶在授予票據(jù)前就被KDC認(rèn)證HW-AUTHENT初始認(rèn)證協(xié)議要求帶RENEWABLE用來(lái)防止重放攻擊的一次性新鮮隨機(jī)數(shù)MAY-POSTDATE客戶端要求使用的加密密鑰,用來(lái)對(duì)某個(gè)特定會(huì)話加密;如果被省略則使用票據(jù)中的會(huì)話密鑰POSTDATED服務(wù)器和客戶端交換消息的初始序列號(hào)INVALIDKerberosV5支持的可選參數(shù)PROXIABLE告訴票證許可服務(wù)它可以基于這個(gè)票證簽發(fā)一個(gè)不同網(wǎng)絡(luò)地址的新票證PROXY在TGS簽發(fā)一個(gè)新的代理票證時(shí)被置位,應(yīng)用服務(wù)器可以檢查這個(gè)標(biāo)志并可以為了檢查跟蹤要求附加的驗(yàn)證FORWARDABLE告訴票證許可服務(wù)允許根據(jù)當(dāng)前TGT簽發(fā)一個(gè)新的不同的網(wǎng)絡(luò)地址的TGTFORWARDED指示是否是被轉(zhuǎn)發(fā)的,或者是從一個(gè)轉(zhuǎn)發(fā)的TGT簽發(fā)的一個(gè)完整的Kerberos環(huán)境包括一個(gè)Kerberos服務(wù)器,一組工作站和一組應(yīng)用服務(wù)器。其中Kerberos服務(wù)器包括認(rèn)證服務(wù)器AS和票據(jù)許可服務(wù)器TGS。所有用戶和所有的應(yīng)用服務(wù)器均在Kerberos服務(wù)器上注冊(cè)。Kerberos服務(wù)器的數(shù)據(jù)庫(kù)中擁有所有參與用戶的UID及其對(duì)應(yīng)的口令散列表。Kerberos服務(wù)器必須與每一個(gè)應(yīng)用服務(wù)器之間共享一個(gè)保密密鑰,該密鑰也保存在Kerveros服務(wù)器的數(shù)據(jù)庫(kù)中。根據(jù)用戶和應(yīng)用服務(wù)器在網(wǎng)絡(luò)管理中的位置不同,KerberosV5提供了域管理的能力。所謂域,就是依據(jù)網(wǎng)絡(luò)管理的邊界而劃定的一個(gè)網(wǎng)絡(luò)范圍。屬于同一個(gè)網(wǎng)絡(luò)范圍內(nèi)的用戶和服務(wù)器屬于同一個(gè)域。一個(gè)用戶可能需要訪問(wèn)另一個(gè)Kerberos領(lǐng)域中應(yīng)用服務(wù)器。同樣,一個(gè)應(yīng)用服務(wù)器也可以向其它領(lǐng)域中的客戶提供網(wǎng)絡(luò)服務(wù)。為了提供跨域訪問(wèn)的能力,Kerberos提供了跨域認(rèn)證的能力。領(lǐng)域間互通的前提是,支持不同領(lǐng)域之間進(jìn)行用戶身份鑒別的機(jī)制;互通領(lǐng)域中的Kerberos服務(wù)器之間必須共享一個(gè)密鑰;兩個(gè)Kerberos服務(wù)器也必須進(jìn)行相互注冊(cè)。圖5-3-7是Kerveros跨域認(rèn)證框架。Kerveros跨域認(rèn)證過(guò)程分為四步:(1)用戶通過(guò)本地認(rèn)證服務(wù)器AS,請(qǐng)求與本地票據(jù)許可服務(wù)器(localTGS)進(jìn)行通信的票據(jù)許可票據(jù);(2)用戶通過(guò)本地的票據(jù)許可票據(jù)服務(wù)器,請(qǐng)求與遠(yuǎn)程票據(jù)許可服務(wù)器(remoteTGS)通信的票據(jù)許可票據(jù);(3)用戶通過(guò)遠(yuǎn)程票據(jù)許可票據(jù)服務(wù)器,請(qǐng)求與遠(yuǎn)程服務(wù)器S通信的票據(jù);(4)用戶向遠(yuǎn)程服務(wù)器提出服務(wù)訪問(wèn)請(qǐng)求。與通常的Kerveros協(xié)議相比,跨域認(rèn)證多了一個(gè)獲取訪問(wèn)遠(yuǎn)程票據(jù)許可服務(wù)器的步驟,具體的跨域認(rèn)證協(xié)議如協(xié)議5-3-3所示。(1)X.509簡(jiǎn)介從技術(shù)角度來(lái)看,X.509協(xié)議的實(shí)現(xiàn)基于公開密鑰加密算法和數(shù)字簽名技術(shù)。在公鑰加密算法方面,雖然X.509沒有規(guī)定使用某個(gè)特定的算法,但推薦使用RSA公鑰算法,因此具有較高的安全性。在數(shù)字簽名技術(shù)方面,X.509使用安全哈希函數(shù)(HashFunction),但是沒有規(guī)定具體的Hash算法。(2)X.509中的證書
證書(Certificate)是一個(gè)機(jī)構(gòu)頒發(fā)給一個(gè)安全個(gè)體的證明。證書是公開密碼體制的一種密鑰管理媒介,是一種權(quán)威性的電子文檔,用于證明某一主體(人或者設(shè)備)的身份及其公開密鑰的合法性。證書的權(quán)威性取決于該證書頒發(fā)機(jī)構(gòu)的權(quán)威性。一個(gè)證書中,最重要的信息是個(gè)體名字、個(gè)體的公鑰、機(jī)構(gòu)的簽名、算法和用途等。自1988年開始,X.509總共定義了三種證書版本(X.509v1,v2和3)。在認(rèn)證方面,X.509規(guī)定了三種認(rèn)證協(xié)議:?jiǎn)蜗蛘J(rèn)證、雙向認(rèn)證和三向認(rèn)證。A.單向認(rèn)證協(xié)議該協(xié)議如協(xié)議5-3-4所示。(1)Alice生成一個(gè)隨機(jī)數(shù)RA。(2)Alice生成一個(gè)消息M=,其中TA是Alice的時(shí)間標(biāo)記,IDB是Bob的身份,而時(shí)可選的簽名消息,用于保證消息的完整性和可信性。kab是可選的Alice和Bob之間的需要交換的共享密鑰,如果需要交換kab
,則需要用Bob的公鑰kB加密。此外,為了提供機(jī)密性,消息M可以使用Bob的公鑰來(lái)kB加密。(3)Alice將消息CAA||M發(fā)送給Bob。其中,CAA是Alice的證書。(4)Bob驗(yàn)證CAA且取得Alice的公鑰kA,并驗(yàn)證公鑰是否過(guò)期。(5)Bob使用kA解密M的簽名部分,并同時(shí)驗(yàn)證Alice的簽名是否有效和消息是否完整。(6)Bob驗(yàn)證M中IDB的正確性。(7)Bob檢查M中的TA,并驗(yàn)證此消息是最新的。(8)Bob檢查M中的NA,比較原來(lái)收到消息的隨機(jī)數(shù)信息,以確認(rèn)消息不是被重放的。雙向協(xié)議由協(xié)議5-3-4擴(kuò)展而來(lái),在消息(1)的基礎(chǔ)之上,增加了從Bob到Alice的類似于單向認(rèn)證協(xié)議的消息,其過(guò)程如協(xié)議5-3-5所示。在執(zhí)行上述步驟(1)步驟(8)之后,雙向協(xié)議的剩余流程如下所示。(9)Bob生成另外一個(gè)一次性新鮮隨機(jī)數(shù)NB。(10)Bob生成另外一個(gè)消息,其中TB是Bob的時(shí)戳,IDA是Alice的身份。同樣,為了保密消息也可以用Alice的公鑰kA加密。NA是Alice在步驟(1)中所生成的隨機(jī)數(shù)。(11)Bob將消息CAB||M’發(fā)送給Alice,其中CAB是Bob的證書。(12)Alice驗(yàn)證CAB且取得Bob公鑰kB,并驗(yàn)證公鑰是否過(guò)期。(13)Alice用kB解密消息M’的簽名部分,并同時(shí)驗(yàn)證了Bob的簽名是否有效和消息是否完整。(14)Alice檢查消息M’中IA的正確性。(15)Alice檢查消息M’中的TB,并確認(rèn)消息是最新的。(16)Alice檢查消息M’中NB,比較原來(lái)收到消息的隨機(jī)數(shù)信息,以確認(rèn)消息不是被重放的。三向認(rèn)證協(xié)議的目的與雙向認(rèn)證相同,其不同點(diǎn)在于三向認(rèn)證協(xié)議沒有使用時(shí)戳,其原因在于認(rèn)證發(fā)起者Alice向Bob返回了一次性新鮮隨機(jī)數(shù)NB。其中,三向認(rèn)證協(xié)議的步驟(1)到步驟(16)與雙向協(xié)議相同,只是其中的兩個(gè)時(shí)戳
TA和TB為可選內(nèi)容(或TA=TB
=0。隨后,三向認(rèn)證協(xié)議加入了步驟(17)到步驟(20),如下所示。(17)Alice檢查收到的NA,并與她在步驟(3)發(fā)送給Bob的NA進(jìn)行比較,看是否相同。(18)Alice送將消息發(fā)送給Bob。(19)Bob用Alice的公鑰kA解密消息,同時(shí)驗(yàn)證了Alice簽名的有效性和消息的完整性。(20)Bob檢查自己所收到NB,并與自己在步驟(10)發(fā)送給Alice的NB比較,看是否相同。(1)攻擊者M(jìn)alice對(duì)Bob重放協(xié)議5-3-4中的消息(1):
由于Bob不驗(yàn)證時(shí)戳,因此Bob不會(huì)發(fā)現(xiàn)此消息是重放的。(2)Bob選取新的新鮮隨機(jī)數(shù)NB,并將協(xié)議5-3-5中的消息(2):
發(fā)送給Alice。攻擊者可以截獲該消息,并利用Bob的公鑰獲得其中的NB。攻擊者為了攻擊成功,必須回應(yīng)協(xié)議5-3-6中的消息(3):。為此,攻擊者M(jìn)alice給Alice發(fā)送消息,并讓Alice對(duì)自己進(jìn)行認(rèn)證。在Malie和Alice的認(rèn)證過(guò)程結(jié)束時(shí),Malice獲得了Alice發(fā)送回來(lái)的(3)Malice利用獲得的冒充Alice成功。上述攻擊成功的原因在于Alice的簽名被濫用,即Alice對(duì)消息NB的簽名沒有指出是簽發(fā)給誰(shuí)的,因而Malice可以利用消息對(duì)Bob發(fā)起重放攻擊。為此,針對(duì)上述攻擊,僅需將協(xié)議5-3-6中的消息(3):修改為。因?yàn)檫@樣修改之后,攻擊者M(jìn)alice在攻擊步驟(2)中所獲得的將是(其中IDM是Malice的身份標(biāo)識(shí)),而無(wú)法獲得Malice所需要的。在三向認(rèn)證協(xié)議中,時(shí)戳可以為空,因此可以不對(duì)時(shí)戳進(jìn)行驗(yàn)證。但是,在上述三向認(rèn)證協(xié)議中,存在協(xié)議漏洞,其攻擊步驟如下:認(rèn)證是信息安全防護(hù)系統(tǒng)中的核心和基礎(chǔ),是許多安全處理(如授權(quán)、審計(jì)等)過(guò)程的前提。用戶口令認(rèn)證協(xié)議(PAP)和挑戰(zhàn)-握手認(rèn)證協(xié)議(CHAP)雖然簡(jiǎn)單,但是二者存在口令字典式攻擊、重放攻擊等缺陷,因此僅能在安全要求低的環(huán)境中使用。Kerberos認(rèn)證協(xié)議基于對(duì)稱密碼技術(shù),且要求較多的共享密鑰,因此雖然可以在較大規(guī)模網(wǎng)絡(luò)環(huán)境中使用,但是共享密鑰的管理和更新是一個(gè)困難的問(wèn)題。而X.509認(rèn)證協(xié)議,由于基于公鑰基礎(chǔ)設(shè)施,因此是大規(guī)模網(wǎng)絡(luò)環(huán)境中認(rèn)證技術(shù)的首選解決方案,但是證書的管理則要求公鑰基礎(chǔ)設(shè)施(PKI)的支持,而后者要求較高的成本。電子商務(wù)(E-Commerce)是指利用先進(jìn)的電子信息技術(shù)(特別是Internet技術(shù))從事各種商業(yè)活動(dòng)的方式。電子商務(wù)是指對(duì)整個(gè)貿(mào)易活動(dòng)實(shí)現(xiàn)電子化,其具體的含義可從兩個(gè)方面來(lái)理解:一、從涵蓋范圍方面:電子商務(wù)是各參與方之間在計(jì)算機(jī)網(wǎng)絡(luò),特別是Internet平臺(tái)上,按一定標(biāo)準(zhǔn)以電子方式而不是以物理交換或直接物理接觸方式完成任何形式的業(yè)務(wù)交易。這里的電子方式包括電子數(shù)據(jù)交換、電子支付手段、電子訂貨系統(tǒng)、電子郵件、傳真、網(wǎng)絡(luò)、電子公告系統(tǒng)條碼、圖象處理、智能卡等;二、從技術(shù)方面:電子商務(wù)是多技術(shù)的集合體:包括數(shù)據(jù)交換(如電子數(shù)據(jù)交換、電子郵件)、數(shù)據(jù)獲?。ü蚕頂?shù)據(jù)庫(kù)、電子公告牌)以及自動(dòng)捕獲數(shù)據(jù)(條形碼)等。1.電子商務(wù)概述A、按電子商務(wù)活動(dòng)內(nèi)容可分為:1)直接電子商務(wù):指數(shù)字商品或服務(wù)的訂貨與付款等活動(dòng),其特點(diǎn)是交易過(guò)程可以通過(guò)網(wǎng)絡(luò)直接完成,如通過(guò)網(wǎng)上支付的方式購(gòu)買軟件產(chǎn)品。2)間接電子商務(wù):指有形的貨物或者服務(wù)的訂貨與付款等活動(dòng),其特點(diǎn)是交易過(guò)程的部分環(huán)節(jié)需要借助傳統(tǒng)商務(wù)活動(dòng)中的某些要件,如通過(guò)網(wǎng)上商城購(gòu)買電器等商品,其商品的交付環(huán)節(jié)通常需要物流服務(wù)的支持。B、按電子商務(wù)活動(dòng)是否涉及支付可分為:1)非支付型電子商務(wù):指不進(jìn)行網(wǎng)上支付和貨物運(yùn)送的電子商務(wù),內(nèi)容包括:信息發(fā)布、信息查詢、在線談判、在線簽約等,其特點(diǎn)是此類電子商務(wù)活動(dòng)均不涉及銀行支付。2)支付型電子商務(wù):指進(jìn)行網(wǎng)上支付和貨物運(yùn)送的電子商務(wù)。除了非支付型電子商務(wù)的全部?jī)?nèi)容外,還包括銀行的支付、交割活動(dòng)以及供貨方的貨物運(yùn)送活動(dòng)。電子商務(wù)業(yè)務(wù)種類繁多,根據(jù)不同的分類標(biāo)準(zhǔn)可劃分為不同的類型:C、按電子商務(wù)業(yè)務(wù)涉及的交易實(shí)體可分為:1)企業(yè)內(nèi)部電子商務(wù):即企業(yè)內(nèi)部之間,通過(guò)企業(yè)內(nèi)部網(wǎng)(Intranet)方式處理與交換商貿(mào)信息。2)企業(yè)對(duì)消費(fèi)者的電子商務(wù)(簡(jiǎn)稱B2C模式),是指企業(yè)使用Internet直接面向消費(fèi)者銷售服務(wù)或產(chǎn)品。該類型的電子商務(wù)包括電子商務(wù)運(yùn)營(yíng)商建立的網(wǎng)上商城,如新蛋網(wǎng)()和京東方網(wǎng)()等,也有由企業(yè)自身構(gòu)建的網(wǎng)上銷售平臺(tái)如蘋果公司的在線銷售網(wǎng)站和聯(lián)想公司的在線銷售網(wǎng)站等,消費(fèi)者可通過(guò)網(wǎng)絡(luò)直接購(gòu)買不同類型的商品和服務(wù)。3)企業(yè)對(duì)企業(yè)的電子商務(wù)(簡(jiǎn)稱B2B模式),是指企業(yè)使用Internet或各種商務(wù)網(wǎng)絡(luò)向供應(yīng)商訂貨和付款,如制造企業(yè)向下游供貨商進(jìn)行原料的采購(gòu),典型代表有阿里巴巴。4)企業(yè)對(duì)政府機(jī)構(gòu)的電子商務(wù)(簡(jiǎn)稱B2G模式),是指在企業(yè)和政府機(jī)構(gòu)之間的電子商務(wù)??梢院w公司與政府組織間的許多事務(wù),如通過(guò)Internet企業(yè)可以參與政府部門的在線招投標(biāo)項(xiàng)目。5)消費(fèi)者對(duì)政府機(jī)構(gòu)的電子商務(wù)(簡(jiǎn)稱C2G模式),是指某些涉及個(gè)人與政府間的商務(wù)活動(dòng),如社會(huì)福利費(fèi)發(fā)放和個(gè)人稅收申報(bào)和上繳等。6)消費(fèi)者對(duì)消費(fèi)者的電子商務(wù)(簡(jiǎn)稱C2C模式),是指?jìng)€(gè)人之間使用Internet進(jìn)行的商務(wù)活動(dòng),如通過(guò)eBay和淘寶網(wǎng)進(jìn)行個(gè)人間的商品買賣。
目前最常見的電子商務(wù)類型包括B2C,B2B和C2C模式,例如eBay和淘寶網(wǎng)就同時(shí)提供了B2C和C2C兩種不同類型的電子商務(wù)模式。電子商務(wù)主要是在開放的Internet網(wǎng)絡(luò)環(huán)境中完成的,由于Internet本身開放且不具備安全性,要保證電子商務(wù)的順利進(jìn)行,就必須要解決網(wǎng)上交易的安全性問(wèn)題,常見的電子商務(wù)模型如圖5-4-1所示。電子商務(wù)交易模型涉及客戶(Customer)、商家(Merchant)、銀行(Bank)和第三方認(rèn)證機(jī)構(gòu)(CertificateAuthority)等多方實(shí)體,實(shí)體之間通過(guò)Internet進(jìn)行信息流、物流、資金流的交互來(lái)完成各種商務(wù)活動(dòng)。不同實(shí)體間的交互關(guān)系必須滿足一定的規(guī)范,才能保證各方利益的安全和控制風(fēng)險(xiǎn),這就是各種安全協(xié)議(SecurityProtocol)需要完成的功能。。圖5-4-1電子商務(wù)模型包含兩層含義:首先,正確執(zhí)行協(xié)議后,應(yīng)當(dāng)保證商務(wù)活動(dòng)的參與各方能夠正確完成所有的消息交互;其次,如果協(xié)議異常終止,協(xié)議應(yīng)當(dāng)保證通信雙方都處于同等地位,任何一方都不占任何優(yōu)勢(shì)。以網(wǎng)上購(gòu)物為例,要么商家收到顧客支付并向顧客提供正確商品,要么交易失敗商家收不到顧客的支付,顧客也無(wú)法得到對(duì)應(yīng)的商品。公平性(Fairness)
不可否認(rèn)性(Non-repudiation)是安全電子商務(wù)協(xié)議的基本性質(zhì),具體是指商務(wù)活動(dòng)中的參與方不能對(duì)自己的行為進(jìn)行抵賴。由于電子商務(wù)過(guò)程是通過(guò)參與方之間的消息交換來(lái)完成的,因此不可否認(rèn)性主要體現(xiàn)為:(1)不能否認(rèn)擁有某個(gè)消息;(2)不能否認(rèn)發(fā)送過(guò)某個(gè)消息;(3)不能否認(rèn)接收到某個(gè)消息;(4)不能否認(rèn)在規(guī)定的時(shí)間內(nèi)收到或發(fā)送消息等等。是與不可否認(rèn)性密切相關(guān)的另外一個(gè)重要性質(zhì),可追究性是安全電子商務(wù)協(xié)議必須滿足的基本要求。電子商務(wù)協(xié)議的可追究性是通過(guò)發(fā)方非否認(rèn)和收方非否認(rèn)兩個(gè)基本目標(biāo)達(dá)到的。在電子商務(wù)協(xié)議中,通常使用憑證(Evidence)來(lái)實(shí)現(xiàn)可追究性,憑證分為兩種:發(fā)方非否認(rèn)證據(jù)(Evidence-of-origin)和收方非否認(rèn)證據(jù)(Evidence-of-receipt)。前者是指電子商務(wù)協(xié)議向接收方提供的不可抵賴證據(jù),用于證明發(fā)送方發(fā)送過(guò)某個(gè)消息;后者是指電子商務(wù)協(xié)議向發(fā)送方提供的不可抵賴證據(jù),用于證明接收方收到發(fā)送方發(fā)送的某個(gè)消息??勺肪啃?Accountability)匿名性是指電子商務(wù)活動(dòng)不被跟蹤,保證商務(wù)過(guò)程中個(gè)人和組織的信息不被泄露的安全屬性。其保護(hù)對(duì)象包括:用戶的個(gè)人信息、購(gòu)物習(xí)慣、銷售者的交易規(guī)模等隱私信息。匿名性是商業(yè)活動(dòng)中個(gè)人和組織隱私權(quán)的一種體現(xiàn)。匿名性技術(shù)是一把雙刃劍,既可以保護(hù)合法主體的隱私權(quán),也可能被有惡意的人利用進(jìn)行隱匿的違法活動(dòng)。因此對(duì)電子商務(wù)協(xié)議的匿名性仍有爭(zhēng)議,應(yīng)當(dāng)謹(jǐn)慎實(shí)施。公平性、非否認(rèn)性、可追究性和匿名性都是電子商務(wù)協(xié)議的特有屬性,其中公平性是電子商務(wù)協(xié)議的核心屬性。保護(hù)電子商務(wù)公平性的協(xié)議稱為公平交換協(xié)議。實(shí)現(xiàn)非否認(rèn)性和可追究性是保證公平性的一個(gè)有效的輔助措施,或者說(shuō)是一種補(bǔ)救措施,主要用于事后的爭(zhēng)端解決。伴隨著電子商務(wù)的發(fā)展,目前已經(jīng)出現(xiàn)了大量的電子商務(wù)安全協(xié)議。其中包括針對(duì)電子支付的專用協(xié)議如DigiCash協(xié)議、ISI協(xié)議、Netbill協(xié)議、FirstVirtual協(xié)議、iKP協(xié)議等,以及針對(duì)電子商務(wù)綜合應(yīng)用的SET協(xié)議和SSL協(xié)議。特別是SSL(安全套接層協(xié)議)和SET(安全電子交易協(xié)議)兩個(gè)協(xié)議在電子商務(wù)領(lǐng)域得到了大量應(yīng)用。因此在電子商務(wù)安全協(xié)議實(shí)例中,本書將分別對(duì)這個(gè)兩個(gè)協(xié)議進(jìn)行介紹。安全電子商務(wù)交易(SecureE-commerceTransaction:SET)協(xié)議是由美國(guó)VISA和MasterCard兩大信用卡組織提出的應(yīng)用于Internet上的以信用卡為基礎(chǔ)的電子支付系統(tǒng)協(xié)議。它采用公鑰密碼體制和X.509數(shù)字證書標(biāo)準(zhǔn),主要應(yīng)用于B2C模式中保障支付信息的安全性。1)SET協(xié)議簡(jiǎn)介
SET協(xié)議非常詳細(xì)而準(zhǔn)確地反映了交易各方之間存在的各種關(guān)系。它定義了加密信息的格式和付款支付交易過(guò)程中各方傳輸信息的規(guī)則。SET提供了持卡人、商家和銀行之間的認(rèn)證,確保了網(wǎng)上交易數(shù)據(jù)的機(jī)密性、數(shù)據(jù)的完整性及交易的不可抵賴性。目前,SET協(xié)議已經(jīng)成為事實(shí)上的工業(yè)標(biāo)準(zhǔn),得到了IBM、Microsoft、Verisign等信息產(chǎn)業(yè)界主流公司的廣泛支持,并獲得IETF標(biāo)準(zhǔn)的認(rèn)可。
A.認(rèn)證:由于通信網(wǎng)絡(luò)的匿名性,電子商務(wù)交易與面對(duì)面交易不同。一方面商家需確認(rèn)持卡人是付款卡賬號(hào)的合法使用者;另一方面持卡人也需對(duì)商家進(jìn)行認(rèn)證。SET協(xié)議通過(guò)數(shù)字簽名和數(shù)字證書來(lái)實(shí)現(xiàn)認(rèn)證的目的。持卡人和商家均有自己的用于數(shù)字簽名的公鑰/私鑰對(duì)(SignatureKeyPair)和用于密鑰交換的公鑰/私鑰對(duì)(Key-exchangeKeyPair)及相應(yīng)的證書。證書由認(rèn)證中心CA頒發(fā),且由頒發(fā)者進(jìn)行數(shù)字簽名。證書分別包含使用者的簽名公鑰或交換公鑰。傳送消息時(shí),發(fā)送方先對(duì)消息進(jìn)行數(shù)字簽名,然后將消息隨同簽名及證書一起發(fā)送給接收方。接收方收到消息后,先驗(yàn)證發(fā)送方證書的有效性,然后從發(fā)送方證書中取得簽名公鑰,驗(yàn)證發(fā)送方的數(shù)字簽名,以證實(shí)消息來(lái)自發(fā)送方。數(shù)據(jù)完整性:SET協(xié)議使用了多種方式來(lái)保證數(shù)據(jù)完整性。一種是利用數(shù)字簽名來(lái)確保數(shù)據(jù)的完整性;另一種是通信雙方共享一個(gè)密鑰,發(fā)送者可以用它對(duì)消息摘要加密或者計(jì)算帶密鑰的消息散列值(HMAC),并把該散列值跟消息一起發(fā)送。接收者接到消息后,重新計(jì)算帶密鑰的散列值并與接收到的散列值比較,如果兩者相同則完整性得到證實(shí)。消息的私密性:SET協(xié)議使用對(duì)稱密碼算法來(lái)確保信息的安全,同時(shí)利用公鑰密碼算法來(lái)交換會(huì)話密鑰(對(duì)稱密鑰)。SET協(xié)議中的實(shí)體由持卡人(Cardholder)、商家(Merchant)、發(fā)卡行(Issuer)、收單行(Acquirer)、支付網(wǎng)關(guān)(Paymentgateway)及認(rèn)證中心(CertificateAuthority)等六個(gè)部分組成,SET協(xié)議中各實(shí)體的關(guān)系如圖5-4-2所示。圖5-4-2SET協(xié)議中實(shí)體關(guān)系在電子商務(wù)環(huán)境中,持卡人通過(guò)計(jì)算機(jī)訪問(wèn)商家的網(wǎng)上銷售平臺(tái),購(gòu)買商品。為了在電子商務(wù)環(huán)境中安全地進(jìn)行支付操作,持卡人需要安裝一套基于SET標(biāo)準(zhǔn)的軟件(通常嵌入在瀏覽器中),并使用由發(fā)卡行發(fā)行的支付卡(信用卡或借記卡),且需要從認(rèn)證中心獲取自己的數(shù)字簽名證書;持卡人:
在電子商務(wù)環(huán)境中,商家通過(guò)自己的網(wǎng)上銷售平臺(tái)向客戶提供商品和服務(wù)。同時(shí)商家必須與相關(guān)的收單行達(dá)成協(xié)議,保證可以接受信用卡的支付。而且商家也需要從認(rèn)證中心獲取相應(yīng)的數(shù)字證書(包括簽名證書和密鑰交換證書);收單行為每一個(gè)網(wǎng)上商家建立一個(gè)賬戶,且處理付款授權(quán)和付款結(jié)算等。收單行不屬于安全電子商務(wù)的直接組成部分,但它是授權(quán)交易與付款結(jié)算操作的主要參與者;發(fā)卡行為每一個(gè)持卡人建立一個(gè)賬戶,并發(fā)放支付卡。一個(gè)發(fā)卡行必須保證對(duì)經(jīng)過(guò)授權(quán)的交易進(jìn)行付款;商家:
發(fā)卡行收單行支付網(wǎng)關(guān)是指收單行或指定的第三方運(yùn)行的一套設(shè)備。它負(fù)責(zé)處理支付卡的授權(quán)和支付。同時(shí),它要能夠同收單行的交易處理主機(jī)通信,還需要從認(rèn)證中心獲取相應(yīng)的數(shù)字證書(包括簽名證書和交換密鑰證書);認(rèn)證中心負(fù)責(zé)頒發(fā)和撤銷持卡人、商家和支付網(wǎng)關(guān)的數(shù)字證書;同時(shí),它還要向商家和支付網(wǎng)關(guān)頒發(fā)交換密鑰證書,以便在支付過(guò)程中交換會(huì)話密鑰。支付網(wǎng)關(guān)認(rèn)證中心在實(shí)際的系統(tǒng)中,發(fā)卡行和收單行可以由同一家銀行擔(dān)當(dāng),支付網(wǎng)關(guān)也可由該銀行來(lái)運(yùn)行,這些需要根據(jù)具體的情況來(lái)決定。SET協(xié)議定義了一套完備的證書信任鏈,每個(gè)證書連接一個(gè)實(shí)體的數(shù)字簽名證書。沿著信任樹可以到一個(gè)眾所周知的信任機(jī)構(gòu),用戶可以確認(rèn)證書的有效性。所有的基于SET協(xié)議的軟件都知道根證書的數(shù)字簽名公鑰,可用于驗(yàn)證每個(gè)證書。圖5-4-3描述了這種信任層次。在SET協(xié)議中的用戶對(duì)根節(jié)點(diǎn)的證書是無(wú)條件信任的,如果從證書所對(duì)應(yīng)的節(jié)點(diǎn)出發(fā)沿著信任樹逐級(jí)驗(yàn)證證書的數(shù)字簽名,若能夠到達(dá)一個(gè)已知的信任方所對(duì)應(yīng)的節(jié)點(diǎn)或根節(jié)點(diǎn),就能確認(rèn)該證書是有效的。換而言之,信任關(guān)系是從根節(jié)點(diǎn)到樹葉傳播的。圖5-4-3SET協(xié)議中的證書信任關(guān)系
商家證書(MerchantCertificates):商家證書表示商家與收單行存在聯(lián)系,收單行同意商家接受支付卡的付款。商家證書由收單行數(shù)字簽名后頒發(fā)。商家要加入SET的交易至少要擁有一對(duì)證書:一個(gè)為簽名證書,用來(lái)讓其它用戶驗(yàn)證商家對(duì)交易信息的數(shù)字簽名;另一個(gè)為密鑰交換證書,用來(lái)在交易過(guò)程中交換用于加密交易信息的會(huì)話密鑰。事實(shí)上,一個(gè)商家通常擁有多對(duì)證書,以支持不同品牌的付款卡;
持卡人證書(CardholderCertificates):持卡人證書相當(dāng)于支付卡的電子表示,它可以由付款銀行數(shù)字簽名后發(fā)放。由于證書的簽名私鑰僅為付款銀行所知,所以證書中的內(nèi)容不可能被任何第三方更改。持卡人證書僅在付款銀行的同意下發(fā)給持卡人。證書同購(gòu)買請(qǐng)求和加密后的付款指令一起發(fā)給商家,商家在驗(yàn)證證書有效后,就可以認(rèn)為持卡人為合法的使用者。持卡人的證書是一個(gè)數(shù)字簽名證書,用于驗(yàn)證持卡人的數(shù)字簽名,而不能用于會(huì)話密鑰的交換。任何持卡人只有在申請(qǐng)到數(shù)字證書之后,才能夠進(jìn)行電子交易;收單行證書(AcquirerCertificates):收單行必須擁有一個(gè)證書以便建立一個(gè)證書頒發(fā)機(jī)構(gòu),它接受和處理商家通過(guò)公共網(wǎng)絡(luò)或私有網(wǎng)絡(luò)傳來(lái)的證書請(qǐng)求和授權(quán)信息。支付網(wǎng)關(guān)證書(PaymentGatewayCertificates):支付網(wǎng)關(guān)證書用于商家和持卡人在進(jìn)行支付處理時(shí)對(duì)支付網(wǎng)關(guān)進(jìn)行確認(rèn)以及交換會(huì)話密鑰,因此一個(gè)支付網(wǎng)關(guān)也擁有兩個(gè)證書:簽名證書和密鑰交換證書。持卡人在支付時(shí)從支付網(wǎng)關(guān)的密鑰交換證書中得到用來(lái)保護(hù)其支付卡賬號(hào)及密碼的公開密鑰。發(fā)卡行證書(IssuerCertificates):發(fā)卡行必須擁有一個(gè)證書以便建立一個(gè)證書頒發(fā)機(jī)構(gòu),它接受和處理持卡人通過(guò)公共網(wǎng)絡(luò)或私有網(wǎng)絡(luò)傳來(lái)的證書請(qǐng)求和授權(quán)信息。在SET協(xié)議中,證書的撤銷管理采用X.509協(xié)議中定義的證書撤銷列表機(jī)制(CertificateRevocationList,簡(jiǎn)稱CRL)。即每級(jí)CA都維護(hù)著一個(gè)自己的CRL,用于公布被撤銷的由它所生成和簽發(fā)的證書名單。引發(fā)證書被撤銷的原因很多,主要包括私鑰的失竊或被破譯、證書所含信息的更改等。證書的撤銷功能在一定程度上體現(xiàn)和延續(xù)了現(xiàn)今的信用卡管理體系,使證書達(dá)到或超過(guò)信用卡的安全程度,從而充分保障了網(wǎng)上交易的正常進(jìn)行。SET協(xié)議大量使用了密碼技術(shù)來(lái)保障交易的安全。因此,密碼算法是SET協(xié)議的基本構(gòu)件,為電子交易環(huán)節(jié)提供更大的信任度、更高的安全性和更少受欺詐的可能性。SET協(xié)議中使用到的密碼算法包括DES、RSA、SHA1和HMAC-SHA1,其中DES用于數(shù)據(jù)加密,RSA用于身份認(rèn)證、密鑰交換和數(shù)字簽名,SHA1和HMAC-SHA1用于摘要的生成。SET協(xié)議主要采用“數(shù)字信封”和“雙數(shù)字簽名”的方式來(lái)保證數(shù)據(jù)的私密性和訂單信息的可驗(yàn)證性,下面分別對(duì)這兩種方式進(jìn)行簡(jiǎn)要說(shuō)明。A.數(shù)字信封:又稱為數(shù)字封套,主要的目的是保證數(shù)據(jù)的私密性。數(shù)字信封的好處是提高了加密速度,避免對(duì)稱密鑰的分發(fā)。在SET協(xié)議中,數(shù)字信封的處理流程如圖5-4-4所示。圖5-4-4數(shù)字信封處理流程B.雙重?cái)?shù)字簽名:在SET協(xié)議中,持卡人進(jìn)行支付時(shí)需要對(duì)訂單信息和支付信息同時(shí)進(jìn)行簽名,因此稱雙重?cái)?shù)字簽名。雙數(shù)字簽名對(duì)簽名的內(nèi)容和數(shù)據(jù)的封裝作了改動(dòng),雙重?cái)?shù)字簽名的實(shí)現(xiàn)流程如圖5-4-5所示。圖5-4-5雙重?cái)?shù)字簽名流程持卡人將支付信息摘要,訂單信息和雙數(shù)字簽名用數(shù)字信封加密后發(fā)送給商家,將訂單信息摘要、支付信息和雙重?cái)?shù)字簽名用數(shù)字信封加密后經(jīng)商家轉(zhuǎn)發(fā)給支付網(wǎng)關(guān)。商家解開信封,生成訂單的摘要后和賬號(hào)的摘要連接起來(lái),用持卡人證書的簽名公鑰即可驗(yàn)證簽名。
SET協(xié)議是由17個(gè)子協(xié)議構(gòu)成的一整套協(xié)議,涵蓋了證書管理和支付系統(tǒng)的各流程。在本書中選取SET協(xié)議的核心部分:購(gòu)買請(qǐng)求(PurchaseRequest)、支付授權(quán)(PaymentAuthorization)和付款結(jié)算(PaymentCapture)三個(gè)子協(xié)議的執(zhí)行過(guò)程進(jìn)行介紹。A、購(gòu)買請(qǐng)求:注冊(cè)過(guò)的持卡人可向注冊(cè)商家發(fā)出購(gòu)買請(qǐng)求,具體流程如圖5-4-6所示。a.持卡人通過(guò)一定的方式挑選商品。選完后,發(fā)送初始化請(qǐng)求給商家M;b.商家接收初始請(qǐng)求,并生成初始響應(yīng)(商品的報(bào)價(jià)清單),對(duì)其進(jìn)行數(shù)字簽名;然后把初始響應(yīng)、自己和支付網(wǎng)關(guān)的證書發(fā)送給持卡人;c.持卡人接收到初始響應(yīng),并驗(yàn)證所有的證書和初始響應(yīng)的數(shù)字簽名;然后生成訂單信息OI和付款指令信息PI,并對(duì)OI和PI進(jìn)行雙重?cái)?shù)字簽名,并用隨機(jī)生成的對(duì)稱密鑰K1對(duì)PI加密,K1和持卡人的賬戶信息用支付網(wǎng)關(guān)的交換密鑰的公鑰加密;最后,持卡人發(fā)送OI及加密的PI給商家;d.商家驗(yàn)證持卡人的證書及OI和PI的雙重?cái)?shù)字簽名;然后處理購(gòu)買請(qǐng)求,并生成購(gòu)買響應(yīng)(包括M的證書)并對(duì)其簽名,發(fā)送給持卡人;e.若交易己經(jīng)授權(quán),則商家履行合同;f.持卡人接收購(gòu)買響應(yīng)后,驗(yàn)證商家的證書,進(jìn)一步驗(yàn)證商家對(duì)購(gòu)買響應(yīng)的數(shù)字簽名;然后持卡人保留購(gòu)買響應(yīng)。a.商家生成授權(quán)請(qǐng)求,并對(duì)其進(jìn)行簽名;然后將授權(quán)請(qǐng)求用隨機(jī)生成的對(duì)稱密鑰K2加密,K2則用支付網(wǎng)關(guān)的交換密鑰的公鑰加密;最后,商家將加密后的信息和自己的證書一起發(fā)送給PG;b.支付網(wǎng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024網(wǎng)絡(luò)安全防護(hù)與監(jiān)測(cè)服務(wù)合同
- 2024離婚雙方的特殊財(cái)產(chǎn)(如古董、藝術(shù)品)分配合同
- 2025年度住宅小區(qū)蟲鼠害預(yù)防與治理專項(xiàng)服務(wù)合同模板4篇
- 2025年度安全生產(chǎn)應(yīng)急預(yù)案編制合同規(guī)范3篇
- 2025年度新能源汽車銷售代理及售后服務(wù)合同3篇
- 2025年度智慧停車系統(tǒng)車位租賃管理合同樣本4篇
- 2025年度出租車公司車輛更新改造升級(jí)合同3篇
- 2025年度現(xiàn)代農(nóng)業(yè)示范區(qū)場(chǎng)地平整與灌溉系統(tǒng)建設(shè)合同3篇
- 2025年度特色菜肴研發(fā)及廚師團(tuán)隊(duì)聘用協(xié)議4篇
- 2025年度數(shù)據(jù)中心專用電纜供應(yīng)與安裝服務(wù)合同范本4篇
- 雞鴨屠宰生產(chǎn)企業(yè)安全風(fēng)險(xiǎn)分級(jí)管控資料
- 高中物理必修一第六節(jié)共點(diǎn)力的平衡條件及其應(yīng)用課件
- 2020版曼昆版宏觀經(jīng)濟(jì)學(xué)(第十版)課件第3章
- 醫(yī)院感染管理組織架構(gòu)圖
- 《工程招投標(biāo)與合同管理》題庫(kù)試題及答案 共5套試卷
- 離子色譜法分析氯化物原始記錄 (1)
- 高等數(shù)學(xué)說(shuō)課稿PPT課件(PPT 49頁(yè))
- 造影劑腎病概述和性質(zhì)
- 單片機(jī)交通燈系統(tǒng)設(shè)計(jì)報(bào)告
- 標(biāo)桿房企人力資源體系研究之龍湖
- 招商部人員績(jī)效考核辦法最全方案
評(píng)論
0/150
提交評(píng)論