公鑰基礎(chǔ)設(shè)施
目錄
1.什么是公鑰基礎(chǔ)設(shè)施
公鑰基礎(chǔ)設(shè)施(以下簡(jiǎn)稱PKI)是一套通過(guò)公鑰密碼算法原理與技術(shù)提供安全服務(wù)的具有通用性的安全基礎(chǔ)設(shè)施,是能夠?yàn)?a href="/wiki/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1" title="電子商務(wù)">電子商務(wù)提供一套安全基礎(chǔ)平臺(tái)的技術(shù)規(guī)范。它通過(guò)數(shù)字證書(shū)管理公鑰,通過(guò)CA把用戶的公鑰與其他標(biāo)識(shí)信息捆綁在一起,實(shí)現(xiàn)互聯(lián)網(wǎng)上的用戶身份驗(yàn)證。PKI的基礎(chǔ)技術(shù)包括加密、數(shù)字簽名、數(shù)據(jù)完整性機(jī)制、數(shù)字信封、雙重?cái)?shù)字簽名等。
2.PKI的地位[1]
PKI彌補(bǔ)了SSL協(xié)議缺少數(shù)字簽名、授權(quán)、存取控制和不支持不可抵賴性等功能的缺陷。目前,它已初步形成一整套的Intemet安全解決方案,成為信息安全技術(shù)的核心和電子商務(wù)的安全基礎(chǔ)。
3.PKI的構(gòu)建[1]
PKI是新的安全技術(shù)和安全規(guī)范,它必須具有認(rèn)證機(jī)關(guān)(CA)、證書(shū)庫(kù)、密鑰備份及恢復(fù)系統(tǒng)、證書(shū)作廢處理系統(tǒng)、客戶端證書(shū)處理系統(tǒng)等基本成分,構(gòu)建PKI也將圍繞著這五大系統(tǒng)來(lái)進(jìn)行。
1)認(rèn)證中心。CA是數(shù)字證書(shū)的申請(qǐng)及簽發(fā)機(jī)構(gòu)。它的職責(zé)如下:
(1)驗(yàn)證并標(biāo)識(shí)證書(shū)申請(qǐng)者的身份;
(2)確保CA用于簽名證書(shū)的非對(duì)稱密鑰的質(zhì)量;
(3)確保整個(gè)簽證過(guò)程的安全性,確保簽名私鑰的安全性;
(4)證書(shū)材料信息(包括公鑰證書(shū)序列號(hào)、CA標(biāo)識(shí)等)的管理;
(5)確定并檢查證書(shū)的有效期限;
(6)確保證書(shū)主體標(biāo)識(shí)的唯一性,防止重名;
(7)發(fā)布并維護(hù)作廢證書(shū)表;
(8)對(duì)整個(gè)證書(shū)簽發(fā)過(guò)程做日志記錄;
(9)向申請(qǐng)人發(fā)通知。
2)證書(shū)庫(kù)。證書(shū)庫(kù)是證書(shū)的集中存放地,它與網(wǎng)上“白頁(yè)”類(lèi)似,是網(wǎng)上的一種公共信息庫(kù),用戶可以從此處獲得其他用戶的證書(shū)和公鑰。構(gòu)造證書(shū)庫(kù)的最佳方法是采用支持LDAP協(xié)議的目錄系統(tǒng),用戶或相關(guān)的應(yīng)用通過(guò)LDAP來(lái)訪問(wèn)證書(shū)庫(kù)。系統(tǒng)必須確保證書(shū)庫(kù)的完整性,防止偽造、篡改證書(shū)。
3)密鑰備份及恢復(fù)系統(tǒng)。如果用戶丟失了用于脫密數(shù)據(jù)的密鑰,則密文數(shù)據(jù)將無(wú)法被脫密,造成數(shù)據(jù)丟失。為避免這種情況的出現(xiàn),PKI應(yīng)該提供備份與恢復(fù)脫密密鑰的機(jī)制。密鑰的備份與恢復(fù)應(yīng)該由可信的機(jī)構(gòu)來(lái)完成,例如,CA可以充當(dāng)這一角色。值得強(qiáng)調(diào)的是,密鑰備份與恢復(fù)只能針對(duì)脫密密鑰,簽名私鑰不能夠作備份。
4)證書(shū)作廢處理系統(tǒng)(X.509 Version 3,CRL Version2)。證書(shū)作廢處理系統(tǒng)是PKI的一個(gè)重要組件。同日常生活中的各種證件一樣,證書(shū)在CA為其簽署的有效期以內(nèi)也可能需要作廢。例如,A公司的職員a辭職離開(kāi)公司,這就需要終止a證書(shū)的生命期。為實(shí)現(xiàn)這一點(diǎn),PKI必須提供作廢證書(shū)的一系列機(jī)制。作廢證書(shū)有如下三種策略:
(1)作廢一個(gè)或多個(gè)主體的證書(shū);
(2)作廢由某一對(duì)密鑰簽發(fā)的所有證書(shū);
(3)作廢由某CA簽發(fā)的所有證書(shū)。
作廢證書(shū)一般通過(guò)將證書(shū)列入作廢證書(shū)表(CRL)來(lái)完成。通常,系統(tǒng)中由CA負(fù)責(zé)創(chuàng)建并維護(hù)一張及時(shí)更新的CRL,而由用戶在驗(yàn)證證書(shū)時(shí)負(fù)責(zé)檢查該證書(shū)是否在CRL之列。CRL一般存放在目錄系統(tǒng)中。證書(shū)的作廢處理必須在安全及可驗(yàn)證的情況下進(jìn)行,系統(tǒng)還必須保證CRL的完整性。
通過(guò)PKI能夠營(yíng)造可管、可控、安全可靠的互聯(lián)網(wǎng)環(huán)境,構(gòu)建完整的授權(quán)范圍體系,建立普適性好、安全性高的統(tǒng)一平臺(tái),為電子金融的不斷發(fā)展奠定良好的基礎(chǔ)。
4.PKI使用的密碼技術(shù)[2]
1976年,Whitefield Diffie和Martin Hellmam發(fā)表了論文“New directions in cryptography”這篇文章奠定了公鑰密碼系統(tǒng)的基礎(chǔ)。公鑰密碼系統(tǒng)的概念在密碼學(xué)的發(fā)展史上具有劃時(shí)代的意義。公鑰密碼算法又稱為非對(duì)稱密鑰算法、雙鑰密碼算法。
目前有兩種類(lèi)型的公鑰系統(tǒng)是安全實(shí)用的,即基于大整數(shù)困難分解問(wèn)題的密碼體制和基于離散對(duì)數(shù)困難的密碼體制。
基于大整數(shù)困難分解問(wèn)題的公鑰密碼體制有RSA、Rabin體制、LUC體制及其推廣、二次剩余體制等?;陔x散對(duì)數(shù)困難的密碼體制主要包括基于有限域的乘法群上的離散對(duì)數(shù)問(wèn)題的E1Gamal體制和基于橢圓曲線離散對(duì)數(shù)的橢圓曲線密碼體制(ECC),以及近年來(lái)Lenstra等人提出的XTR群的離散對(duì)數(shù)問(wèn)題的XTR公鑰體制。
糾錯(cuò)碼和密碼學(xué)是兩門(mén)不同的學(xué)科,但是公鑰密碼體制思想是建立在一個(gè)難解的數(shù)學(xué)問(wèn)題之上的,即NPC問(wèn)題。1978年,Berlekamp等人證明了糾錯(cuò)碼中的一些譯碼問(wèn)題屬于NPC問(wèn)題。這兩項(xiàng)成果建立起糾錯(cuò)碼和密碼學(xué)相結(jié)合的理論基礎(chǔ)。
有限自動(dòng)機(jī)公鑰密碼體制是由我國(guó)學(xué)者陶仁驥發(fā)明的,它的思想與RSA體制類(lèi)似。此類(lèi)體制是基于分解兩個(gè)有限自動(dòng)機(jī)的合成而構(gòu)成的,尤其是當(dāng)其中的一個(gè)或兩個(gè)為非線性時(shí),難度更大。目前已經(jīng)公開(kāi)了該體制的三個(gè)算法,分別為FAPKCOF、FAPKCl、FAPKC2,后者比較復(fù)雜,研究出來(lái)以支持基于身份鑒別的操作。
5.PKI提供的安全服務(wù)[2]
通常,一個(gè)完善的PKI基礎(chǔ)設(shè)施提供的服務(wù)主要包括以下幾個(gè)方面。
- 1.安全登錄
在訪問(wèn)網(wǎng)絡(luò)資源,或者使用某些應(yīng)用程序的時(shí)候,用戶往往會(huì)被要求首先“登錄”或者“注冊(cè)”。這一步驟中,典型的操作過(guò)程包括用戶輸入用戶身份的信息(如用戶D或者昵稱)以及認(rèn)證信息(如口令或其他機(jī)密信息)。除了合法用戶沒(méi)人能夠獲取用戶的認(rèn)證信息,采用這種方法能夠安全地允許合法用戶進(jìn)入系統(tǒng)或者指定的應(yīng)用程序。
選用一個(gè)符合安全規(guī)范的好的口令,并且記住它而不要用筆寫(xiě)下來(lái),而且要經(jīng)常修改口令,這對(duì)一般用戶來(lái)說(shuō)不是一件容易的事,很可能因?yàn)轭l繁更換到后來(lái)自己也不記得口令了。這正是安全基礎(chǔ)設(shè)施提供的服務(wù)之一,它可以幫助解決這些問(wèn)題。
安全基礎(chǔ)設(shè)施并不意味著取消口令,因?yàn)榭诹罘绞绞怯脩暨M(jìn)入基礎(chǔ)設(shè)施本身的認(rèn)證機(jī)制。安全基礎(chǔ)設(shè)施只是解決了使用口令方式時(shí)存在的一個(gè)最嚴(yán)重問(wèn)題,它可以避免口令在不信任的或不安全的網(wǎng)絡(luò)中傳遞,根本避免口令在傳輸中被截獲的可能性。
使用普適性的安全基礎(chǔ)設(shè)施可以極大地改善這種狀況。安全基礎(chǔ)設(shè)施能夠?qū)⒁粋€(gè)成功登錄的結(jié)果安全地通知到其他重要登錄的設(shè)備,減少遠(yuǎn)程登錄的需求。
安全單點(diǎn)登錄是安全基礎(chǔ)設(shè)施提供的一項(xiàng)服務(wù),適用于所有應(yīng)用程序和設(shè)備。在任何時(shí)候和地方,如果需要使用安全傳送認(rèn)證信息的機(jī)制,基礎(chǔ)設(shè)施就可以為之提供:應(yīng)用程序在必要時(shí)接入基礎(chǔ)設(shè)施,從而獲得認(rèn)證信息。這種基礎(chǔ)服務(wù)減少了用戶必須登錄的次數(shù)。另外,在安全性上的另一個(gè)好處就是,一個(gè)設(shè)計(jì)良好的基礎(chǔ)設(shè)施能夠保證用戶只需在它們工作的機(jī)器上登錄。所以在某些情況下,口令無(wú)須在易于受到攻擊的網(wǎng)絡(luò)上傳遞,極大地降低了口令被竊聽(tīng)和口令存儲(chǔ)、重復(fù)攻擊的風(fēng)險(xiǎn)。
- 2.終端用戶透明
用戶使用安全基礎(chǔ)設(shè)施時(shí),基礎(chǔ)設(shè)施只是一個(gè)黑盒子,用戶需要的是服務(wù)而不是如何提供服務(wù)的細(xì)節(jié)。換句話說(shuō),對(duì)終端用戶而言,安全基礎(chǔ)設(shè)施是完全透明的,這是普適性基礎(chǔ)設(shè)施的一個(gè)極其重要的特性。
- 3.全面的安全性
一個(gè)普適性安全基礎(chǔ)設(shè)施最大的益處是在整個(gè)環(huán)境中實(shí)施的是單一的、可信的安全技術(shù)(如公鑰密碼技術(shù)),所有它能夠提供跟設(shè)備無(wú)關(guān)的安全服務(wù)。它能夠保證數(shù)目不受限制的應(yīng)用程序、設(shè)備和服務(wù)器無(wú)縫地協(xié)調(diào)工作,安全地傳輸、存儲(chǔ)和檢索數(shù)據(jù),安全地進(jìn)行事務(wù)處理,安全地訪問(wèn)服務(wù)器等。這種環(huán)境不僅極大地簡(jiǎn)化了終端用戶使用各種設(shè)備和應(yīng)用程序的方式,而且簡(jiǎn)化了設(shè)備和應(yīng)用程序的管理工作。
使基礎(chǔ)設(shè)施達(dá)到全面安全性所采取的重要機(jī)制之一就是保證大范圍的組織實(shí)體和設(shè)備采用統(tǒng)一的方式使用、理解和處理密鑰。為了解決Intemet的安全問(wèn)題,世界各國(guó)對(duì)其進(jìn)行了多年的研究,初步形成了一套完整的Intemet安全解決方案,即目前被廣泛使用的PKI技術(shù),PKI技術(shù)采用證書(shū)管理公鑰,通過(guò)第三方的可信任機(jī)構(gòu),即認(rèn)證中心,(Certificate Authority,CA),把用戶的公鑰和用戶的其他標(biāo)識(shí)信息(如名稱,E-mail、身份證號(hào)碼等)捆綁在一起在Intemet驗(yàn)證用戶的身份。采用建立在PKI基礎(chǔ)上的數(shù)字證書(shū),通過(guò)對(duì)要傳輸?shù)臄?shù)字信息進(jìn)行加密和簽名,保證信息傳輸?shù)臋C(jī)密性、真實(shí)性、完整性和不可否認(rèn)性,從而保證信息的安全傳輸。
6.PKI的管理[3]
PKI的管理可以歸納為證書(shū)管理和密鑰管理兩個(gè)部分。
- 1.證書(shū)管理
(1)策略批準(zhǔn)。在實(shí)現(xiàn)認(rèn)證操作之前,必須生成各種認(rèn)證策略以指導(dǎo)認(rèn)證過(guò)程。策略主要包括:操縱策略——闡明有關(guān)個(gè)人、設(shè)備和應(yīng)用事宜;簽發(fā)策略——檢查用于簽發(fā)證書(shū)的準(zhǔn)則。
(2)證書(shū)簽發(fā)。證書(shū)簽發(fā)需要以下步驟:檢查公開(kāi)密鑰信息的正確性。計(jì)算公開(kāi)密鑰信息的簽名;簽名與公開(kāi)密鑰信息一起生成證書(shū);CA在證書(shū)簽發(fā)過(guò)程中的行為應(yīng)該被記錄。
(3)證書(shū)發(fā)布。簽發(fā)后的證書(shū)將被放在數(shù)據(jù)庫(kù)中,以便第三方或證書(shū)用戶訪問(wèn)。數(shù)據(jù)庫(kù)應(yīng)該有各種訪問(wèn)控制,以便證書(shū)等數(shù)據(jù)的安全存儲(chǔ)。
(4)證書(shū)歸檔。數(shù)字簽名文檔的有效期比證書(shū)有效期長(zhǎng),因此為了確保失效的證書(shū)仍可以訪問(wèn),就必須對(duì)證書(shū)、證書(shū)撤銷(xiāo)表等數(shù)據(jù)進(jìn)行長(zhǎng)期歸檔。
(5)證書(shū)撤銷(xiāo)。證書(shū)撤銷(xiāo)主要涉及下列方面:撤銷(xiāo)證書(shū)的歸檔,無(wú)論證書(shū)是過(guò)期還是被撤銷(xiāo),舊證書(shū)的拷貝應(yīng)由可信的第三方保留一段時(shí)間,時(shí)間長(zhǎng)度由具體情況確定;撤銷(xiāo)證書(shū)的公布,CA維護(hù)并定期發(fā)布證書(shū)撤銷(xiāo)列表,讓用戶查詢證書(shū)狀態(tài)來(lái)了解證書(shū)撤銷(xiāo)的情況。
- 2.密鑰管理
主要指對(duì)密鑰的安全管理,密鑰管理的功能主要包括以下方面:
(1)密鑰產(chǎn)生。密鑰可由用戶自己產(chǎn)生,也可由CA產(chǎn)生。在初始化客戶端時(shí),必須通過(guò)安全信道或某些分發(fā)機(jī)制來(lái)安全地分發(fā)密鑰。
(2)密鑰備份及恢復(fù)。用戶遺忘密鑰的保護(hù)口令,用戶丟失密鑰或者用戶調(diào)離工作崗位時(shí)仍可訪問(wèn)密鑰及加密的數(shù)據(jù);應(yīng)用戶或有關(guān)部門(mén)的要求,對(duì)某些加密數(shù)據(jù)進(jìn)行檢查(密鑰的托管);應(yīng)用戶要求,恢復(fù)加密密鑰。
(3)密鑰更新。任何密鑰都不能長(zhǎng)期不變。密鑰必須定期更新。更新的周期取決于CA或相關(guān)的策略需求,CA應(yīng)配備相應(yīng)的密鑰更換規(guī)程。
密鑰管理中心負(fù)責(zé)對(duì)密鑰的產(chǎn)生、登記、論證、注銷(xiāo)、分發(fā)、歸檔、撤銷(xiāo)和銷(xiāo)毀等服務(wù)的實(shí)施和運(yùn)用。其中密鑰管理的目標(biāo)是安全地實(shí)施和運(yùn)用這些密鑰管理服務(wù)功能。