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