- 電子商務安全(第2版)
- 張波 朱艷娜編著
- 6917字
- 2020-09-18 18:20:09
3.4 PKI核心產品——數字證書
數字證書(Digital Certificate)又稱數字憑證,是用電子手段來證實一個實體的身份及其公鑰的合法性,并將實體身份與公鑰綁定。它是一個數字標識,可以實現身份的鑒別認證、完整性、保密性和不可抵賴性等安全要求,是公鑰的管理媒介。公鑰的分發、傳送等都是靠數字證書來完成的。數字證書相當于一本網絡護照,可以在需要時提供你的身份證明。數字證書的擁有者可以將證書提供給其他人或實體,以證實其合法身份。兩個實體在進行信息交換前要對對方身份進行認證,若A要取得B的證書可以通過兩種方式:一種是由B將證書隨同要發送的正文信息一起傳送給A;另一種方法是證書存放于公共的證書庫中,A在網上從該庫中取得B的數字證書。取得證書后,A就可以確認B的身份,通過保密通信與B進行信息交換。
數字證書是各類實體(持卡人/個人、商戶/企業、網關/銀行等)在網上進行信息交流及商務活動的身份證明,在電子交易的各個環節,交易的各方都需驗證對方證書的有效性,從而解決相互之間的信任問題。證書是一個經證書認證中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。
從證書的用途來看,數字證書可分為簽名證書和加密證書。簽名證書主要用于對用戶信息進行簽名,以保證信息的不可否認性;加密證書主要用于對用戶傳送信息進行加密,以保證信息的真實性和完整性。
簡單地說,數字證書是一段包含用戶身份信息、用戶公鑰信息以及身份驗證機構數字簽名的數據。身份驗證機構的數字簽名可以確保證書信息的真實性。證書格式及證書內容遵循X.509標準(X.509標準定義了公鑰證書結構的基本標準)。
數字證書工作原理是:數字證書就是標志網絡用戶身份信息的一系列數據,用來在網絡通信中識別通信各方的身份,即要在Internet上解決“我是誰”的問題,就如同在現實中我們每一個人都要擁有一張證明個人身份的身份證或駕駛執照一樣,以表明我們的身份或某種資格。
數字證書是由權威公正的第三方機構即CA中心簽發的,以數字證書為核心的加密技術可以對網絡上傳輸的信息進行加密和解密、數字簽名和簽名驗證,確保網上傳遞信息的機密性、完整性,以及交易實體身份的真實性,簽名信息的不可否認性,從而保障網絡應用的安全性。
數字證書采用公鑰密碼體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶擁有一把僅為本人所掌握的私有密鑰(私鑰),用它進行解密和簽名;同時擁有一把公共密鑰(公鑰)并可以對外公開,用于加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣,信息就可以安全無誤地到達目的地了,即使被第三方截獲,由于沒有相應的私鑰,也無法進行解密。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。在公開密鑰密碼體制中,RSA是一種常用的體制。
用戶也可以采用自己的私鑰對信息加以處理,由于密鑰僅為本人所有,這樣就產生了別人無法生成的文件,也就形成了數字簽名。采用數字簽名,能夠確認以下兩點。
1)保證信息是由簽名者自己簽名發送的,簽名者不能否認或難以否認。
2)保證信息自簽發后到收到為止未曾做過任何修改,簽發的文件是真實文件。
數字證書可用于發送安全電子郵件、訪問安全站點;網上證券、網上招標采購、網上簽約、網上辦公、網上繳費、網上稅務等網上安全電子事務處理和安全電子交易活動。
3.4.1 數字證書的構成
數字證書或公鑰證書是被稱作證書機構的人或實體簽署的,其中含有掌握相應密鑰的持證者的確切身份或其他屬性。
1.證書
在做交易時,應向對方提交一個由CA簽發的包含個人身份的證書,以使對方相信自己的身份。顧客向CA申請證書時,可提交自己的執照、身份證或護照,經驗證后,頒發證書,證書包含了顧客的名字和他的公鑰,以此作為網上證明自己身份的依據。在SET中,最主要的證書是持卡人證書和商家證書,證書結構如圖3-4所示。

圖3-4 公鑰證書結構
(1)持卡人證書
它實際上是支付卡的一種電子化的表示。由于它是由金融機構以數字化形式簽發的,因此不能隨意改變。持卡人證書并不包括賬號和終止日期信息,取而代之的是用單向散列算法根據賬號、截止日期生成的一個碼。如果知道賬號、截止日期、密碼值,即可導出這個碼值,反之不行。
(2)商家證書
做一個形象的比喻,商家證書就像是貼在商家收款臺小窗上的付款卡提示,以表示它可以用什么卡來結算。它是由金融機構簽發的,不能被第三方改變。在SET環境中,一個商家至少應有一個證書。與銀行打交道時,一個商家也可以有多個證書,表示它與多個銀行有合作關系,可以接受多種付款方法。
2.認證機構
CA是提供身份驗證的第三方機構,由一個或多個用戶信任的組織實體組成。例如,持卡人要與商家通信,要先從公共媒體上獲得商家的公開密鑰,但持卡人無法確定商家的真實性和信譽,于是持卡人請求CA對商家進行認證。CA對商家進行調查、驗證和鑒別后,將包含商家公鑰的證書傳給持卡人。同樣,商家也可對持卡人進行驗證。這個過程如圖3-5所示。證書一般包含擁有者的標識名稱和公鑰,并且由CA進行過數字簽名。
在實際運作中,CA也可由大家都信任的一方擔當。例如,在客戶、商家、銀行三角關系中,客戶使用的是由某個銀行發的卡,而商家又與此銀行有業務關系。在此情況下,客戶和商家都信任該銀行,可由該銀行擔當CA角色。又例如,對商家自己發行的購物卡,則可由商家自己擔當CA角色。
3.證書的樹形驗證結構
在雙方通信時,雙方通過出示由某個CA簽發的證書來證明自己的身份。如果對簽發證書的CA本身仍不信任,則可驗證CA的身份,依此類推,一直到公認的權威CA處,就可確信證書的有效性。SET證書正是通過信任層次來逐級驗證的。每一個證書與數字化簽發證書的實體的簽名證書關聯。沿著信任樹一直到一個公認的信任組織,就可確認為有效的。
例如,C的證書是由名稱為B的CA簽發的,而B的證書又是由名稱為A的CA簽發的,A通常被稱為根CA。驗證到了根CA處,就可確信C的證書是合法的。證書的樹形驗證結構如圖3-6所示。

圖3-5 CA認證

圖3-6 證書的樹形驗證結構
在進行網上購物時,持卡人的證書與發卡機構的證書關聯,而發卡機構的證書通過不同品牌卡的證書連接到根CA,而根的公共簽名密鑰對所有的SET軟件都是已知的,可以校驗每一個證書。
3.4.2 X.509證書標準
X.509是由國際電信聯盟(ITU-T)制定的數字證書標準。X.509給出的鑒別框架是一種基于公開密鑰體制的鑒別業務密鑰管理。該鑒別框架允許用戶將其公開密鑰存放在CA的目錄項中。一個用戶如果想與另一個用戶交換秘密信息,就可以直接從對方的目錄項中獲得相應的公開密鑰,用于各種安全服務。
為了進行身份認證,X.509標準及公共密鑰加密系統提供了一個稱作數字簽名的方案。用戶可生成一段信息及其摘要(亦稱作信息“指紋”)。用戶用專用密鑰對摘要加密以形成簽名,接收者用發送者的公共密鑰對簽名解密,并將其與收到的信息“指紋”進行比較,以確定其真實性。
目前,X.509標準在編排公共密鑰格式方面被廣泛接受,已用于許多網絡安全應用程序,其中包括IP安全(Ipsec)、安全套接層(SSL)、安全電子交易(SET)、安全多媒體INTERNET郵件擴展(S/MIME)等。
X.509證書標準主要提供以下五種類型的數字證書。
1.個人數字證書
該證書中包含個人身份信息和個人的公鑰,用于標識證書持有人的個人身份。數字安全證書和對應的私鑰存儲于Ikey或IC卡中,用于個人在網上進行合同簽訂、下訂單、錄入審核、設置操作權限、確認支付信息等活動中標明身份。
2.機構數字證書
該證書中包含企業信息和企業的公鑰,用于標識證書持有企業的身份。數字安全證書和對應的私鑰存儲于鑰匙網絡(Keynet)卡中,可以用于企業在電子商務方面的對外活動,如合同簽訂、網上證券交易、交易支付信息等方面。
3.個人簽名證書
該證書中包含個人身份信息和個人的簽名私鑰,用于標識證書持有人的個人身份。簽名私鑰存儲于Keynet卡中,用于個人在網上進行合同簽訂、下訂單、錄入審核、設置操作權限、確認支付信息等活動中標明身份。
4.機構簽名證書
該證書中包含企業信息和企業的簽名私鑰,用于標識證書持有企業的身份。簽名私鑰存儲于Keynet卡中,可以用于企業在電子商務方面的對外活動,如合同簽訂、網上證券交易、交易支付信息等。
5.設備數字證書
該證書中包含服務器信息和服務器的公鑰,用于標識證書持有服務器的身份。數字安全證書和對應的私鑰存儲于Keynet卡中,用于表征該服務器的身份。其主要用于網站交易服務器,目的是保證客戶和服務器產生交易支付等相關信息時,確保雙方身份的真實性、安全性、可信任度等。
3.4.3 數字證書的功能
由于互聯網的發展和電子商務系統技術的進步,使在網上購物的顧客能夠極其方便輕松地獲得商家和企業的信息,但同時也增加了對某些敏感的或有價值的數據被濫用的風險。買方和賣方在互聯網上進行的一切金融交易運作都必須是真實可靠的,并且要使顧客、商家和企業等交易方都具有絕對的信心,因而電子商務系統必須保證具有十分可靠的安全保密技術,也就是說,必須保證網絡安全的四個要素,即信息傳輸的保密性、數據交換的完整性、發送信息的不可否認性、交易者身份的確定性。
數字安全證書主要有以下四大功能。
1.信息的保密性
交易中的商務信息均有保密的要求。如果信用卡的賬號和用戶名被人知悉,就可能被盜用,訂貨和付款的信息被競爭對手獲悉,就可能喪失商機。而CA中心頒發的數字安全證書保證了電子商務的信息傳播中信息的保密。
2.交易者身份的確定性
網上交易的雙方很可能素昧平生,相隔千里,要使交易成功首先要能確認對方的身份。對商家要考慮客戶端不能是騙子,而客戶也會擔心網上的商店會不會是一個玩弄欺詐的“黑店”。因此能方便而可靠地確認對方身份是網上交易的前提。對于為顧客或用戶開展服務的銀行、信用卡公司和銷售商店,為了做到安全、保密、可靠地開展服務活動,都要進行身份認證的工作。而CA中心頒發的數字安全證書可保證網上交易雙方的身份,銀行和信用卡公司可以通過CA認證確認身份,放心地開展網上業務。
3.不可否認性
由于商情的千變萬化,交易一旦達成是不能否認的,否則必然會損害一方的利益。因此CA中心頒發的數字安全證書確保了電子交易通信過程的各個環節的不可否認性,使交易雙方的利益不受到損害。
4.不可修改性
交易的文件是不可被修改的。CA中心頒發的數字安全證書確保了電子交易文件的不可修改性,以保障交易的嚴肅和公正。
3.4.4 數字證書的格式
CA所頒發的數字證書大都遵循X.509標準,根據這項標準,數字證書包括證書申請者的信息和發放證書CA的信息。
一個標準的X.509數字證書包含以下一些內容。
1)版本號。標示證書的版本(v1,v2,v3……)。
2)序列號。由證書頒發者分配的本證書的唯一標識符。
3)簽名算法。簽名算法標識符由對象標識符(Object Identifier,OID)加上相關參數組成,用于說明本證書所用的數字簽名算法,例如SHA-1和RSA的標識符用來說明該簽名是利用RSA對SHA-1摘要值加密。
4)頒發者。證書頒發者的可識別名(Distinct Name,DN),這是必須說明的。
5)有效期。證書有效的時間段,本字段由“Not Valid Before”和“Not Valid After”兩項組成,它們分別由UTC時間(協調世界時,Universal Time Coordinated)或一般的時間表示(在RFC2459中有詳細的時間表示規則)。
6)主體。證書擁有者的可識別名,此字段必須是非空的,除非使用了其他的名字形式。
7)主體公鑰信息。主體的公鑰(以及算法標識符),這是必須說明的。
8)頒發者唯一標識符。證書頒發者的唯一標識符,僅在版本2和版本3中要求,屬于可選項;該字段在實際中很少使用,并且不被RFC2459推薦使用。
9)主體的唯一標識符。證書擁有者的唯一標識符,僅在版本2和版本3中要求,屬于可選項;該字段在實際中很少使用,并且不被RFC2459推薦使用。
10)擴展。可選的標準和專用擴展(僅在v3以后使用)。
3.4.5 數字證書的管理
數字證書管理包含證書頒發、證書使用、證書驗證和證書存放等過程。
1.數字證書的頒發
數字證書是由認證中心頒發的。根證書是認證中心與用戶建立信任關系的基礎。在用戶使用數字證書之前必須首先下載和安裝。
CA是能向用戶簽發數字證書以確認用戶身份的管理機構。為了防止數字憑證的偽造,CA的公共密鑰必須是可靠的,CA必須公布其公共密鑰或由更高級別的CA提供一個電子憑證來證明其公共密鑰的有效性,后一種方法導致了多級別CA的出現。
數字證書頒發過程如下:用戶產生了自己的密鑰對,并將公共密鑰及部分個人身份信息傳送給一家CA。CA在核實身份后,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然后,CA將發給用戶一個數字證書,該證書內附有用戶和他的密鑰等信息,同時還附有對CA公共密鑰加以確認的數字證書。當用戶想證明其公開密鑰的合法性時,就可以提供這一數字證書。
證書的分發是一個數據分發問題而不是一個安全問題,因為證書具有自我保護能力,不需要通過具有安全性保護的系統協議來傳送,可以利用數字簽名和目錄服務來分發證書。
2.數字證書的使用
每一個用戶有一個各不相同的名字,一個可信的CA給每個用戶分配一個唯一的名字并簽發一個包含名字和用戶公開密鑰的證書。
如果甲方想和乙方通信,甲方首先必須從數據庫中取得乙方的證書,然后對其進行驗證。如果他們使用相同的CA,事情就很簡單,甲方只需驗證乙方證書上CA的簽名。如果他們使用不同的CA,問題就復雜了。甲方必須從CA的樹形結構底部開始,從底層CA往上層CA查詢,一直追蹤到同一個CA為止,找出雙方共同信任的CA。
證書可以存儲在網絡的數據庫中。用戶可以利用網絡交換證書。當證書被撤銷后,它將從證書目錄中刪除,然而簽發此證書的CA仍保留此證書的副本,以備日后解決可能引起的糾紛。
如果用戶的密鑰或CA的密鑰被破壞,就會導致證書的撤銷。每一個CA必須保留一個已經撤銷但還沒有過期的證書廢止列表(CRL)。當甲方收到一個新證書時,首先應該從CRL中檢查證書是否已經被撤銷。
現有持證人甲向持證人乙傳送數字信息,為了保證信息傳送的真實性、完整性和不可否認性,需要對要傳送的信息進行數字加密和數字簽名,其傳送過程如下。
1)甲方準備好要傳送的數字信息(明文)。
2)甲方對數字信息進行哈希運算,得到一個信息摘要。
3)甲方用自己的私鑰對信息摘要進行加密得到甲方的數字簽名,并將其附在數字信息上。
4)甲方隨機產生一個加密密鑰,并用此密鑰對要發送的信息進行加密。
5)甲方用乙方的公鑰對隨機產生的加密密鑰進行加密,將加密后的密鑰同密文一起傳給乙方。
6)乙方收到甲方傳送過來的密文和加過密的密鑰,先用自己的私鑰對加密的密鑰進行解密,得到會話密鑰。
7)乙方用密鑰對收到的密文進行解密,得到明文的數字信息,并將密鑰拋棄。
8)乙方用甲方的公鑰對甲方的數字簽名進行解密,得到信息摘要。乙方用相同的哈希算法對收到的明文再進行一次哈希運算,得到一個新的信息摘要。
9)乙方將收到的信息摘要和新產生的信息摘要進行比較,如果一致,說明收到的信息沒有被修改過。
3.數字證書的驗證
在考慮證書的有效性或者可用性時,除了簡單的完整性檢查外,還需要其他的機制。證書驗證需要確定以下內容。
1)一個可信的CA已經在證書上簽名,注意這可能包括證書路徑處理。
2)證書有良好的完整性,即證書上的數字簽名與簽名者的公鑰和單獨計算出來的證書哈希值一致。
3)證書處在有效期內。
4)證書沒有被吊銷。
5)證書的使用方式與任何聲明的策略和/或使用限制一致(這由特殊的擴展來限定),持證人甲想與持證人乙通信時,他首先查找數據庫并得到一個從甲到乙的證書路徑和乙的公開密鑰。
4.數字證書的存放
數字證書可以存放在計算機的硬盤或光盤、U盤(USBKEY)、IC卡或CLIP卡等介質中。
用戶數字證書在計算機硬盤或光盤中存放時,使用方便,但存放證書的PC機必須受到安全保護,否則一旦被攻擊,證書就有可能被盜用。
USBKEY是一種USB接口的硬件設備。它內置單片機或智能卡芯片,有一定的存儲空間,可以存儲用戶的私鑰以及數字證書。使用U盤保存證書,被竊取的可能性有所降低,但U盤容易損壞;一旦損壞,證書將無法使用。
IC卡中存放證書是一種較為廣泛的使用方式。因為IC卡的成本較低,本身不易被損壞。但使用IC卡加密時,用戶的密鑰會出卡,造成安全隱患。
使用CLIP卡存放證書時,用戶的證書等安全信息被加密存放在CLIP卡中,無法被盜用。在進行加密的過程中,密鑰可以不出卡,安全級別最高,但相對來說,成本較高。
3.4.6 數字證書的應用
國外常見的CA有Verisign、GTE Cyber Trust、Thawte等。國內常見的CA有中國數字認證網(www.ca365.com)、北京數字證書認證中心(www.bjca.org.cn)、中國金融認證中心(http://www.cfca.com.cn/)、上海證書管理中心(http://www.sheca.com/)、廣東省電子商務認證中心(http://www.cnca.net/)等。
用戶想獲得證書時,首先要向CA提出申請,說明自己的身份。CA在證實用戶的身份后,向用戶發出相應的數字證書。CA發放證書時要遵循一定的原則,如要保證自己發出的證書的序列號各不相同,兩個不同的實體所獲得的證書的主題內容應該相異,不同主題內容的證書所包含的公開密鑰相異。
各CA使用程序大致相同,下面以廣東省電子商務認證中心的數字證書的使用為例說明數字證書的簡單應用。
廣東CA個人數字證書使用方法如下。
首先在瀏覽器地址欄中輸入“http://www.cnca.net/”登錄到廣東數字認證中心主頁,然后分下面三步即可取得個人身份證書(具體在每一步中根據提示操作即可)。
1)下載并安裝根證書。
2)申請證書。
3)將個人身份信息連同證書序列號一并郵寄到中國數字認證網。
當安裝了數字證書并獲得認證后,就可以在電子商務活動和Outlook Express中使用數字證書進行安全保證了。