




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