PKI系统深入的介绍
大家好,又見面了,我是風(fēng)君子,今天給大家準(zhǔn)備了Idea注冊碼。
公鑰基礎(chǔ)設(shè)施(PublicKeyInfrastructure,縮寫PKI)的基礎(chǔ)與核心。是電子商務(wù)安全實施的基本保障。因此。對PKI技術(shù)的研究和開發(fā)成為眼下信息安全領(lǐng)域的熱點。
本文對PKI技術(shù)進(jìn)行了全面的分析和總結(jié),當(dāng)中包含PKI組成、證書認(rèn)證機(jī)構(gòu)CA、PKI應(yīng)用、應(yīng)用編程接口和PKI標(biāo)準(zhǔn)等,并對CA的開發(fā)做了簡要分析。本文對PKI。特別是CA的開發(fā)、應(yīng)用和普及具有一定的促進(jìn)作用。
1前言
隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的發(fā)展,電子商務(wù)已逐步被人們所接受。并在得到不斷普及。
但因為各種原因,國內(nèi)電子商務(wù)的安全性仍不能得到有效的保障。在常規(guī)業(yè)務(wù)中。交易兩方現(xiàn)場交易,可以確認(rèn)購買兩方的身份。利用商場開具的發(fā)票和客戶現(xiàn)場支付商品費(fèi)用。無須操心發(fā)生糾紛和無憑證可依。但通過網(wǎng)上進(jìn)行電子商務(wù)交易時,因為交易兩方并不現(xiàn)場交易,因此,無法確認(rèn)兩方的合法身份,同一時候交易信息是交易兩方的商業(yè)秘密。在網(wǎng)上傳輸時必須保證安全性,防止信息被竊??;兩方的交易非現(xiàn)場交易,一旦發(fā)生糾紛。必須可以提供仲裁。
因此,在電子商務(wù)中。必須從技術(shù)上保證在交易過程中可以實現(xiàn)身份認(rèn)證、安全傳輸、不可否認(rèn)性、數(shù)據(jù)完整性。在採用數(shù)字證書認(rèn)證體系之前,交易安全一直未能真正得到解決。因為數(shù)字證書認(rèn)證技術(shù)採用了加密傳輸和數(shù)字簽名,可以實現(xiàn)上述要求。因此在國內(nèi)外電子商務(wù)中。都得到了廣泛的應(yīng)用。
PKI採用證書進(jìn)行公鑰管理,通過第三方的可信任機(jī)構(gòu)(認(rèn)證中心。即CA),把用戶的公鑰和用戶的其它標(biāo)識信息捆綁在一起,當(dāng)中包含username和電子郵件地址等信息。以在Internet網(wǎng)上驗證用戶的身份。PKI把公鑰password和對稱password結(jié)合起來。在Internet網(wǎng)上實現(xiàn)密鑰的自己主動管理,保證網(wǎng)上數(shù)據(jù)的安全傳輸。
因此,從大的方面來說,全部提供公鑰加密和數(shù)字簽名服務(wù)的系統(tǒng),都可歸結(jié)為PKI系統(tǒng)的一部分,PKI的主要目的是通過自己主動管理密鑰和證書,為用戶建立起一個安全的網(wǎng)絡(luò)執(zhí)行環(huán)境,使用戶能夠在多種應(yīng)用環(huán)境下方便的使用加密和數(shù)字簽名技術(shù)。從而保證網(wǎng)上數(shù)據(jù)的機(jī)密性、完整性、有效性。數(shù)據(jù)的機(jī)密性是指數(shù)據(jù)在傳輸過程中,不能被非授權(quán)者偷看;數(shù)據(jù)的完整性是指數(shù)據(jù)在傳輸過程中不能被非法篡改;數(shù)據(jù)的有效性是指數(shù)據(jù)不能被否認(rèn)。
一個有效的PKI系統(tǒng)必須是安全的和透明的,用戶在獲得加密和數(shù)字簽名服務(wù)時,不須要具體地了解PKI的內(nèi)部運(yùn)作機(jī)制。
在一個典型、完整和有效的PKI系統(tǒng)中,除證書的創(chuàng)建和公布,特別是證書的撤銷,一個可用的PKI產(chǎn)品還必須提供對應(yīng)的密鑰管理服務(wù)。包含密鑰的備份、恢復(fù)和更新等。沒有一個好的密鑰管理系統(tǒng)。將極大影響一個PKI系統(tǒng)的規(guī)模、可伸縮性和在協(xié)同網(wǎng)絡(luò)中的執(zhí)行成本。在一個企業(yè)中。PKI系統(tǒng)必須有能力為一個用戶管理多對密鑰和證書;可以提供安全策略編輯和管理工具。如密鑰周期和密鑰用途等。
PKI發(fā)展的一個重要方面就是標(biāo)準(zhǔn)化問題,它也是建立互操作性的基礎(chǔ)。
眼下,PKI標(biāo)準(zhǔn)化主要有兩個方面:一是RSA公司的公鑰加密標(biāo)準(zhǔn)PKCS(PublicKeyCryptographyStandards),它定義了很多基本PKI部件,包含數(shù)字簽名和證書請求格式等;二是由Internetproject任務(wù)組IETF(InternetEngineeringTaskForce)和PKI工作組PKIX(PublicKeyInfrastructureWorkingGroup)所定義的一組具有互操作性的公鑰基礎(chǔ)設(shè)施協(xié)議。在今后非常長的一段時間內(nèi)。PKCS和PKIX將會并存,大部分的PKI產(chǎn)品為保持兼容性,也將會對這兩種標(biāo)準(zhǔn)進(jìn)行支持。
PKI的發(fā)展非???,已經(jīng)從幾年前的理論階段過渡到眼下的產(chǎn)品階段,而且出現(xiàn)了大量成熟技術(shù)、產(chǎn)品和解決方式,正逐步走向成熟。PKI的發(fā)展受應(yīng)用驅(qū)動的影響,比方。早期的Internet商務(wù)和Web安全要求主要依賴于SSL,并要求應(yīng)用首先對證書進(jìn)行處理,所以。在非常多公司的消息和群組產(chǎn)品中都提供了公鑰和證書系統(tǒng),如Exchange和Notes等。
另外?;跇?biāo)準(zhǔn)的基礎(chǔ)設(shè)施和應(yīng)用也相同促進(jìn)了PKI的發(fā)展,它可以保證基于Internet的安全消息傳送的可交互性。如S/MIME等。
眼下,PKI產(chǎn)品的生產(chǎn)廠家非常多,比較有代表性的主要有VeriSign和Entrust。VeriSign作為RSA的控股公司。借助RSA成熟的安全技術(shù),提供了PKI產(chǎn)品,為用戶之間的內(nèi)部信息交互提供安全保障。另外,VeriSign也提供對外的CA服務(wù)。包含證書的公布和管理等功能。而且同一些大的生產(chǎn)商。如Microsoft、Netscape和JavaSoft等。保持了伙伴關(guān)系,以在Internet上提供代碼簽名服務(wù)。
Entrust作為北方電訊(NorthernTelecom)的控股公司。從事PKI的研究與產(chǎn)品開發(fā)已經(jīng)有非常多年的歷史了,并一直在業(yè)界保持率先地位。擁有很多成熟的PKI及配套產(chǎn)品,并提供了有效的密鑰管理功能。
另外。一些大的廠商,如Microsoft、Netscape和Novell等,都開始在自己的網(wǎng)絡(luò)基礎(chǔ)設(shè)施產(chǎn)品中添加PKI功能。Netscape已經(jīng)開始把證書server作為了SuiteSpot的一部分。盡管其證書server沒有Entrust產(chǎn)品的功能全面和完好,但提供了主要的證書生成和管理功能。
即使沒有密鑰管理功能,但因為Netscape把證書server同SuiteSpotserver和Communicatorclient產(chǎn)品的集成,依靠廣泛的市場基礎(chǔ),也取得的越來越多的市場份額。由SUN和Netscape聯(lián)盟組成的iplanet公司(Sun|NetscapeAlliance)也在PKI方面做了非常大的努力,憑借其在網(wǎng)絡(luò)和電子商務(wù)方面的優(yōu)勢。發(fā)展了非常多性能優(yōu)越的PKI產(chǎn)品。如LDAP文件夾server和證書管理系統(tǒng)等。
2PKI組成
PKI作為一組在分布式計算系統(tǒng)中利用公鑰技術(shù)和X.509證書所提供的安全服務(wù)。企業(yè)或組織可利用相關(guān)產(chǎn)品建立安全域,并在當(dāng)中公布密鑰和證書。
在安全域內(nèi),PKI管理加密密鑰和證書的公布,并提供諸如密鑰管理(包含密鑰更新,密鑰恢復(fù)和密鑰托付等)、證書管理(包含證書產(chǎn)生和撤銷等)和策略管理等。PKI產(chǎn)品也同意一個組織通過證書級別或直接交叉認(rèn)證等方式來同其它安全域建立信任關(guān)系。
這些服務(wù)和信任關(guān)系不能局限于獨(dú)立的網(wǎng)絡(luò)之內(nèi)。而應(yīng)建立在網(wǎng)絡(luò)之間和Internet之上。為電子商務(wù)和網(wǎng)絡(luò)通信提供安全保障,所以具有互操作性的結(jié)構(gòu)化和標(biāo)準(zhǔn)化技術(shù)成為PKI的核心
PKI在實際應(yīng)用上是一套軟硬件系統(tǒng)和安全策略的集合,它提供了一整套安全機(jī)制。使用戶在不知道對方身份或分布地非常廣的情況下,以證書為基礎(chǔ)。通過一系列的信任關(guān)系進(jìn)行通訊和電子商務(wù)交易。
圖 1 PKI組成
一個典型的PKI系統(tǒng)如圖1所看到的。當(dāng)中包含PKI策略、軟硬件系統(tǒng)、證書機(jī)構(gòu)CA、注冊機(jī)構(gòu)RA、證書公布系統(tǒng)和PKI應(yīng)用等。
1.PKI安全策略建立和定義了一個組織信息安全方面的指導(dǎo)方針,同一時候也定義了password系統(tǒng)使用的處理方法和原則。它包含一個組織怎樣處理密鑰和有價值的信息。依據(jù)風(fēng)險的級別定義安全控制的級別。普通情況下,在PKI中有兩種類型的策略:一是證書策略。用于管理證書的使用,比方,能夠確認(rèn)某一CA是在Internet上的公有CA,還是某一企業(yè)內(nèi)部的私有CA。另外一個就是CPS(CertificatePracticeStatement)。一些由商業(yè)證書發(fā)放機(jī)構(gòu)(CCA)或者可信的第三方操作的PKI系統(tǒng)須要CPS。
這是一個包含怎樣在實踐中增強(qiáng)和支持安全策略的一些操作過程的具體文檔。它包含CA是怎樣建立和運(yùn)作的,證書是怎樣發(fā)行、接收和廢除的。密鑰是怎樣產(chǎn)生、注冊的,以及密鑰是怎樣存儲的,用戶是怎樣得到它的等等。
2.證書機(jī)構(gòu)CA是PKI的信任基礎(chǔ),它管理公鑰的整個生命周期。其作用包含:發(fā)放證書、規(guī)定證書的有效期和通過公布證書廢除列表(CRL)確保必要時能夠廢除證書。后面將會在CA進(jìn)行具體介紹。
3.注冊機(jī)構(gòu)RA提供用戶和CA之間的一個接口。它獲取并認(rèn)證用戶的身份,向CA提出證書請求。它主要完畢收集用戶信息和確認(rèn)用戶身份的功能。這里指的用戶,是指將要向認(rèn)證中心(即CA)申請數(shù)字證書的客戶,能夠是個人,也能夠是集團(tuán)或團(tuán)體、某政府機(jī)構(gòu)等。
注冊管理一般由一個獨(dú)立的注冊機(jī)構(gòu)(即RA)來承擔(dān)。它接受用戶的注冊申請,審查用戶的申請資格。并決定是否允許CA給其簽發(fā)數(shù)字證書。注冊機(jī)構(gòu)并不給用戶簽發(fā)證書,而僅僅是對用戶進(jìn)行資格審查。
因此,RA能夠設(shè)置在直接面對客戶的業(yè)務(wù)部門,如銀行的營業(yè)部、機(jī)構(gòu)認(rèn)識部門等。當(dāng)然,對于一個規(guī)模較小的PKI應(yīng)用系統(tǒng)來說,可把注冊管理的職能由認(rèn)證中心CA來完畢,而不設(shè)立獨(dú)立執(zhí)行的RA。
但這并非取消了PKI的注冊功能。而僅僅是將其作為CA的一項功能而已。PKI國際標(biāo)準(zhǔn)推薦由一個獨(dú)立的RA來完畢注冊管理的任務(wù),能夠增強(qiáng)應(yīng)用系統(tǒng)的安全。
4.證書公布系統(tǒng)負(fù)責(zé)證書的發(fā)放,如能夠通過用戶自己。或是通過文件夾服務(wù)。文件夾server能夠是一個組織中現(xiàn)存的,也能夠是PKI方案中提供的。
PKI的應(yīng)用很廣泛,包含在webserver和瀏覽器之間的通訊、電子郵件、電子數(shù)據(jù)交換(EDI)、在Internet上的信用卡交易和虛擬私有網(wǎng)(VPN)等。
一個簡單的PKI系統(tǒng)包含證書機(jī)構(gòu)CA、注冊機(jī)構(gòu)RA和對應(yīng)的PKI存儲庫。CA用于簽發(fā)并管理證書;RA可作為CA的一部分,也能夠獨(dú)立,其功能包含個人身份審核、CRL管理、密鑰產(chǎn)生和密鑰對備份等;PKI存儲庫包含LDAP文件夾server和普通數(shù)據(jù)庫,用于對用戶申請、證書、密鑰、CRL和日志等信息進(jìn)行存儲和管理。并提供一定的查詢功能。
3證書認(rèn)證機(jī)構(gòu)CA
3.1數(shù)字證書基礎(chǔ)
數(shù)字證書是一種數(shù)字標(biāo)識,能夠說是Internet上的安全護(hù)照或身份證明。當(dāng)人們到其它國家旅行時。用戶護(hù)照能夠證實其身份,并被獲準(zhǔn)進(jìn)入這個國家。數(shù)字證書提供的是網(wǎng)絡(luò)上的身份證明。
數(shù)字證書是一個經(jīng)證書授權(quán)中心數(shù)字簽名的包括公開密鑰擁有者信息和公開密鑰的文件。最簡單的證書包括一個公開密鑰、名稱以及證書授權(quán)中心的數(shù)字簽名。普通情況下證書中還包括密鑰的有效時間,發(fā)證機(jī)關(guān)(證書授權(quán)中心)的名稱。該證書的序列號等信息,證書的格式遵循ITUTX.509國際標(biāo)準(zhǔn)。
3.1.1證書格式
在Internet網(wǎng)絡(luò)中,應(yīng)用程序使用的證書都來自不同的廠商或組織。為了實現(xiàn)可交互性,要求證書可以被不同的系統(tǒng)識別,符合一定的格式,并實現(xiàn)標(biāo)準(zhǔn)化。X.509為證書及其CRL格式提供了一個標(biāo)準(zhǔn)。但X.509本身不是Internet標(biāo)準(zhǔn),而是國際電聯(lián)ITU標(biāo)準(zhǔn),它定義了一個開放的框架。并在一定的范圍內(nèi)可以進(jìn)行擴(kuò)展。
為了適應(yīng)PKI技術(shù)的發(fā)展。IETF也必須制定在Internet上使用X.509和CRL的標(biāo)準(zhǔn)。
PKIX工作組就提供了一個Internet草案”PartI:X.509CertificateandCRLProfile”(具體內(nèi)容可見:ftp://ftp.ietf.org/internet-drafts/draft-ietf-pkix-ipki-part1-11.txt),用于定義在InternetPKI中使用X.509和CRL的方法和規(guī)范。該草案把X.509作為標(biāo)準(zhǔn),并對各標(biāo)準(zhǔn)項和擴(kuò)展做了說明,基本接收了X.509作為Internet中的證書標(biāo)準(zhǔn),但也定義了被PKI應(yīng)用的X.509V3和CRLV2標(biāo)準(zhǔn)格式的設(shè)置。這些設(shè)置包括了PKIX工作組對X.509所做的一些新的擴(kuò)展。
X.509眼下有三個版本號:V1、V2和V3,當(dāng)中V3是在V2的基礎(chǔ)上加上擴(kuò)展項后的版本號,這些擴(kuò)展包含由ISO文檔(X.509-AM)定義的標(biāo)準(zhǔn)擴(kuò)展。也包含由其它組織或團(tuán)體定義或注冊的擴(kuò)展項。
X.509由ITU-TX.509(前身為CCITTX.509)或ISO/IEC9594-8定義。最早以X.500文件夾建議的一部分發(fā)表于1988年,并作為V1版本號的證書格式。
X.500于1993年進(jìn)行了改動。并在V1基礎(chǔ)上添加了兩個額外的域,用于支持文件夾存取控制,從而產(chǎn)生了V2版本號。
為了適應(yīng)新的需求ISO/IEC和ANSIX9發(fā)展了X.509V3版本號證書格式,該版本號證書通過添加標(biāo)準(zhǔn)擴(kuò)展項對V1和V2證書進(jìn)行了擴(kuò)展。
另外,依據(jù)實際須要。各個組織或團(tuán)體也能夠添加自己的私有擴(kuò)展。
X.509V1和V2證書所包括的主要內(nèi)容例如以下:
·證書版本號號(Version):版本號號指明X.509證書的格式版本號,如今的值能夠為0、1、2,也為將來的版本號進(jìn)行了提前定義。
·證書序列號(SerialNumber):序列號指定由CA分配給證書的唯一的數(shù)字型標(biāo)識符。當(dāng)證書被取消時,實際上是將此證書的序列號放入由CA簽發(fā)的CRL中,這也是序列號唯一的原因。
·簽名算法標(biāo)識符(Signature):簽名算法標(biāo)識用來指定由CA簽發(fā)證書時所使用的簽名算法。算法標(biāo)識符用來指定CA簽發(fā)證書時所使用的公開密鑰算法和hash算法。須向國際知名標(biāo)準(zhǔn)組織(如ISO)注冊。
·簽發(fā)機(jī)構(gòu)名(Issuer):此域用來標(biāo)識簽發(fā)證書的CA的X.500DN名字。包含國家、省市、地區(qū)、組織機(jī)構(gòu)、單位部門和通用名。
·有效期(Validity):指定證書的有效期。包含證書開始生效的日期和時間以及失效的日期和時間。
每次使用證書時。須要檢查證書是否在有效期內(nèi)。
·證書username(Subject):指定證書持有者的X.500唯一名字。包括國家、省市、地區(qū)、組織機(jī)構(gòu)、單位部門和通用名,還可包括email地址等個人信息等
·證書持有者公開密鑰信息(subjectPublicKeyInfo):證書持有者公開密鑰信息域包括兩個重要信息:證書持有者的公開密鑰的值;公開密鑰使用的算法標(biāo)識符。
此標(biāo)識符包括公開密鑰算法和hash算法。
·簽發(fā)者唯一標(biāo)識符(IssuerUniqueIdentifier):簽發(fā)者唯一標(biāo)識符在第2版增加證書定義中。此域用在當(dāng)同一個X.500名字用于多個認(rèn)證機(jī)構(gòu)時,用一比特字符串來唯一標(biāo)識簽發(fā)者的X.500名字??蛇x。
·證書持有者唯一標(biāo)識符(SubjectUniqueIdentifier):持有證書者唯一標(biāo)識符在第2版的標(biāo)準(zhǔn)中增加X.509證書定義。此域用在當(dāng)同一個X.500名字用于多個證書持有者時,用一比特字符串來唯一標(biāo)識證書持有者的X.500名字??蛇x。
·簽名值(Issuer’sSignature):證書簽發(fā)機(jī)構(gòu)對證書上述內(nèi)容的簽名值。
X.509V3證書是在v2的基礎(chǔ)上一標(biāo)準(zhǔn)形式或普通形式添加了擴(kuò)展項,以使證書可以附帶額外信息。標(biāo)準(zhǔn)擴(kuò)展是指由X.509V3版本號定義的對V2版本號添加的具有廣泛應(yīng)用前景的擴(kuò)展項,不論什么人都可以向一些權(quán)威機(jī)構(gòu),如ISO。來注冊一些其它擴(kuò)展,假設(shè)這些擴(kuò)展項應(yīng)用廣泛,或許以后會成為標(biāo)準(zhǔn)擴(kuò)展項。
3.1.2CRL格式
證書廢除列表CRL(Certificaterevocationlists,又稱證書黑名單)為應(yīng)用程序和其他系統(tǒng)提供了一種檢驗證書有效性的方式。不論什么一個證書廢除以后。證書機(jī)構(gòu)CA會通過公布CRL的方式來通知各個相關(guān)方。
眼下,同X.509V3證書對相應(yīng)的CRL為X.509v2CRL,其所包括的內(nèi)容格式例如以下:
·CRL的版本號號:0表示X.509V1標(biāo)準(zhǔn);1表示X.509V2標(biāo)準(zhǔn)。眼下經(jīng)常使用的是同X.509V3證書相應(yīng)的CRLV2版本號。
·簽名算法:包括算法標(biāo)識和算法參數(shù),用于指定證書簽發(fā)機(jī)構(gòu)用來對CRL內(nèi)容進(jìn)行簽名的算法。
·證書簽發(fā)機(jī)構(gòu)名:簽發(fā)機(jī)構(gòu)的DN名,由國家、省市、地區(qū)、組織機(jī)構(gòu)、單位部門和通用名等組成。
·此次簽發(fā)時間:此次CRL簽發(fā)時間,遵循ITU-TX.509V2標(biāo)準(zhǔn)的CA在2049年之前把這個域編碼為UTCTime類型,在2050或2050年之后年之前把這個域編碼為GeneralizedTime類型。
·下次簽發(fā)時間:下次CRL簽發(fā)時間,遵循ITU-TX.509V2標(biāo)準(zhǔn)的CA在2049年之前把這個域編碼為UTCTime類型,在2050或2050年之后年之前把這個域編碼為GeneralizedTime類型。
·用戶公鑰信息。當(dāng)中包含廢除的證書序列號和證書廢除時間。廢除的證書序列號是指要廢除的由同一個CA簽發(fā)的證書的一個唯一標(biāo)識號,同一機(jī)構(gòu)簽發(fā)的證書不會有同樣的序列號。
·簽名算法:對CRL內(nèi)容進(jìn)行簽名的簽名算法。
·簽名值:證書簽發(fā)機(jī)構(gòu)對CRL內(nèi)容的簽名值。
另外。CRL中還包括擴(kuò)展域和條目擴(kuò)展域。CRL擴(kuò)展域用于提供與CRL有關(guān)的額外信息部份,同意團(tuán)體和組織定義私有的CRL擴(kuò)展域來傳送他們獨(dú)有的信息。CRL條目擴(kuò)展域則提供與CRL條目有關(guān)的額外信息部份,同意團(tuán)體和組織定義私有的CRL條目擴(kuò)展域來傳送他們獨(dú)有的信息。
3.1.3證書的存放
數(shù)字證書作為一種電子數(shù)據(jù)格式,能夠直接從網(wǎng)上下載。也能夠通過其它方式。
·使用IC卡存放用戶證書。即把用戶的數(shù)字證書寫到IC卡中。供用戶隨身攜帶。這樣用戶在全部可以讀IC卡證書的電子商務(wù)終端上都可以享受安全電子商務(wù)服務(wù)。
·用戶證書直接存放在磁盤或自己的終端上。戶將從CA申請來的證書下載或拷貝到磁盤或自己的PC機(jī)或智能終端上。當(dāng)用戶使用自己的終端享受電子商務(wù)服務(wù)時,直接從終端讀入就可以。
·另外,CRL一般通過網(wǎng)上下載的方式存儲在用戶端。
3.2CA框架模型
證書機(jī)構(gòu)CA用于創(chuàng)建和公布證書,它通常為一個稱為安全域(securitydomain)的有限群體發(fā)放證書。創(chuàng)建證書的時候,CA系統(tǒng)首先獲取用戶的請求信息,當(dāng)中包含用戶公鑰(假設(shè)用戶端是個人使用或者測試用。則公鑰一般由用戶端產(chǎn)生,如電子郵件程序或瀏覽器等或者使用第三方開發(fā)的具有獨(dú)立CSP的智能終端如USBkey),CA將依據(jù)用戶的請求信息產(chǎn)生證書。并用自己的私鑰對證書進(jìn)行簽名。其它用戶、應(yīng)用程序或?qū)嶓w將使用CA的公鑰對證書進(jìn)行驗證。
假設(shè)一個CA系統(tǒng)是可信的。則驗證證書的用戶能夠確信,他所驗證的證書中的公鑰屬于證書所代表的那個實體。
CA還負(fù)責(zé)維護(hù)和公布證書廢除列表CRL(certificaterevocationlists,又稱為證書黑名單)。
當(dāng)一個證書,特別是當(dāng)中的公鑰由于其它原因無效時(不是由于到期)。CRL提供了一種通知用戶和其它應(yīng)用的中心管理方式。CA系統(tǒng)生成CRL以后。要么是放到LDAPserver中供用戶查詢或下載,要么是放置在Webserver的合適位置,以頁面超級連接的方式供用戶直接查詢或下載。
一個典型的CA系統(tǒng)包含安全server、注冊機(jī)構(gòu)RA、CAserver、LDAP文件夾server和數(shù)據(jù)庫server等。如圖2所看到的。
圖2 典型CA框架模型
安全server:安全server面向普通用戶。用于提供證書申請、瀏覽、證書撤消列表以及證書下載等安全服務(wù)。安全server與用戶的的通信採取安全信道方式(如SSL的方式,不須要對用戶進(jìn)行身份認(rèn)證)。用戶首先得到安全server的證書(該證書由CA頒發(fā)),然后用戶與server之間的全部通信。包含用戶填寫的申請信息以及瀏覽器生成的公鑰均以安全server的密鑰進(jìn)行加密傳輸,僅僅有安全server利用自己的私鑰解密才干得到明文,這樣能夠防止其它人通過竊聽得到明文。從而保證了證書申請和傳輸過程中的信息安全性。
CAserver:CAserver使整個證書機(jī)構(gòu)的核心,負(fù)責(zé)證書的簽發(fā)。
CA首先產(chǎn)生自身的私鑰和公鑰(密鑰長度至少為1024位),然后生成數(shù)字證書,而且將數(shù)字證書傳輸給安全server。CA還負(fù)責(zé)為操作員、安全server以及注冊機(jī)構(gòu)server生成數(shù)字證書。安全server的數(shù)字證書和私鑰也須要傳輸給安全server。CAserver是整個結(jié)構(gòu)中最為重要的部分,存有CA的私鑰以及發(fā)行證書的腳本文件,出于安全的考慮,應(yīng)將CAserver與其它server隔離。不論什么通信採用人工干預(yù)的方式,確保認(rèn)證中心的安全。
注冊機(jī)構(gòu)RA:登記中心server面向登記中心操作員,在CA體系結(jié)構(gòu)中起承上啟下的作用。一方面向CA轉(zhuǎn)發(fā)安全server傳輸過來的證書申請請求,還有一方面向LDAPserver和安全server轉(zhuǎn)發(fā)CA頒發(fā)的數(shù)字證書和證書撤消列表。
LDAPserver:LDAPserver提供文件夾瀏覽服務(wù),負(fù)責(zé)將注冊機(jī)構(gòu)server傳輸過來的用戶信息以及數(shù)字證書增加到server上。這樣其它用戶通過訪問LDAPserver就行得到其它用戶的數(shù)字證書。
數(shù)據(jù)庫server:數(shù)據(jù)庫server是認(rèn)證機(jī)構(gòu)中的核心部分。用于認(rèn)證機(jī)構(gòu)中數(shù)據(jù)(如密鑰和用戶信息等)、日志合統(tǒng)計信息的存儲和管理。實際的的數(shù)據(jù)庫系統(tǒng)應(yīng)採用多種措施,如磁盤陣列、雙機(jī)備份和多處理器等方式,以維護(hù)數(shù)據(jù)庫系統(tǒng)的安全性、穩(wěn)定性、可伸縮性和高性能。
3.3證書的申請和撤銷
證書的申請有兩種方式,一是在線申請,另外一個就是離線申請。在線申請就是通過瀏覽器或其它應(yīng)用系統(tǒng)通過在線的方式來申請證書。這樣的方式一般用于申請普通用戶證書或測試證書。
離線方式一般通過人工的方式直接到證書機(jī)構(gòu)證書受理點去辦理證書申請手續(xù)。通過審核后獲取證書,這樣的方式一般用于比較重要的場合,如server證書和商家證書等。
以下討論的主要是在線申請方式。
當(dāng)證書申請時,用戶使用瀏覽器通過Internet訪問安全server,下載CA的數(shù)字證書(又叫做根證書),然后注冊機(jī)構(gòu)server對用戶進(jìn)行身份審核,認(rèn)可后便批準(zhǔn)用戶的證書申請。然后操作員對證書申請表進(jìn)行數(shù)字簽名,并將申請及其簽名一起提交給CAserver。
CA操作員獲得注冊機(jī)構(gòu)server操作員簽發(fā)的證書申請。發(fā)行證書或者拒絕發(fā)行證書,然后將證書通過硬拷貝的方式傳輸給注冊機(jī)構(gòu)server。注冊機(jī)構(gòu)server得到用戶的證書以后將用戶的一些公開信息和證書放到LDAPserver上提供文件夾瀏覽服務(wù)。而且通過電子郵件的方式通知用戶從安全server上下載證書。
用戶依據(jù)郵件的提示到指定的網(wǎng)址下載自己的數(shù)字證書。而其它用戶能夠通過LDAPserver獲得他的公鑰數(shù)字證書。
證書申請的過程例如以下:
1.用戶申請
用戶首先下載CA的證書,又叫根證書,然后在證書的申請過程中使用SSL安全方式與server建立連接,用戶填寫個人信息。瀏覽器生成私鑰和公鑰對,將私鑰保存client特定文件里,而且要求用口令保護(hù)私鑰。同一時候?qū)⒐€和個人信息提交給安全server。安全server將用戶的申請信息傳送給注冊機(jī)構(gòu)server。
2.注冊機(jī)構(gòu)審核
用戶與注冊機(jī)構(gòu)人員聯(lián)系,證明自己的真實身份,或者請求代理人與注冊機(jī)構(gòu)聯(lián)系。注冊機(jī)構(gòu)操作員利用自己的瀏覽器與注冊機(jī)構(gòu)server建立SSL安全通信,該server須要對操作員進(jìn)行嚴(yán)格的身份認(rèn)證。包含操作員的數(shù)字證書、IP地址。為了進(jìn)一步保證安全性,能夠設(shè)置固定的訪問時間。
操作員首先查看眼下系統(tǒng)中的申請人員,從列表中找出對應(yīng)的用戶,點擊username。核對用戶信息。而且能夠進(jìn)行適當(dāng)?shù)母膭印<僭O(shè)操作員允許用戶申請證書請求。必須對證書申請信息進(jìn)行數(shù)字簽名。操作員也有權(quán)利拒絕用戶的申請。
操作員與server之間的全部通信都採用加密和簽名。具有安全性、抗否認(rèn)性。保證了系統(tǒng)的安全性和有效性。
3.CA發(fā)行證書
注冊機(jī)構(gòu)RA通過硬拷貝的方式向CA傳輸用戶的證書申請與操作員的數(shù)字簽名,CA操作員查看用戶的具體信息。而且驗證操作員的數(shù)字簽名,假設(shè)簽名驗證通過,則允許用戶的證書請求,頒發(fā)證書。
然后CA將證書輸出。假設(shè)CA操作員發(fā)現(xiàn)簽名不對,則拒絕證書申請。CA頒發(fā)的數(shù)字證書中包括關(guān)于用戶及CA自身的各種信息。如:能唯一標(biāo)識用戶的姓名及其它標(biāo)識信息。如個人的email地址;證書持有者的公鑰。公鑰用于為證書持有者加密敏感信息、簽發(fā)個人證書的認(rèn)證機(jī)構(gòu)的名稱、個人證書的序列號和個人證書的有效期(證書有效起止日期)等
4.注冊機(jī)構(gòu)證書轉(zhuǎn)發(fā)
注冊機(jī)構(gòu)RA操作員從CA處得到新的證書,首先將證書輸出到LDAP文件夾server以提供文件夾瀏覽服務(wù),最后操作員向用戶發(fā)送一封電子郵件。通知用戶證書已經(jīng)發(fā)行成功。而且把用戶的證書序列號告訴用戶到指定的網(wǎng)址去下載自己的數(shù)字證書。
而且告訴用戶怎樣使用安全server上的LDAP配置。讓用戶改動瀏覽器的client配置文件以便訪問LDAPserver,獲得他人的數(shù)字證書。
5.用戶證書獲取
用戶使用證書申請時的瀏覽器到指定的網(wǎng)址。鍵入自己的證書序列號,server要求用戶必須使用申請證書時的瀏覽器,由于瀏覽器須要用該證書對應(yīng)的私鑰去驗證數(shù)字證書。僅僅有保存了對應(yīng)私鑰的瀏覽器才干成功下載用戶的數(shù)字證書。
這時用戶打開瀏覽器的安全屬性,就能夠發(fā)現(xiàn)自己已經(jīng)擁有了CA頒發(fā)的數(shù)字證書,能夠利用該數(shù)字證書與其它人以及webserver(擁有同樣CA頒發(fā)的證書)使用加密、數(shù)字簽名進(jìn)行安全通信。
認(rèn)證中心還涉及到CRL的管理。用戶向特定的操作員(僅負(fù)責(zé)CRL的管理)發(fā)一份加密簽名的郵件。申明自己希望撤消證書。操作員打開郵件,填寫CRL注冊表。而且進(jìn)行數(shù)字簽名,提交給CA,CA操作員驗證注冊機(jī)構(gòu)操作員的數(shù)字簽名。批準(zhǔn)用戶撤消證書。而且更新CRL,然后CA將不同格式的CRL輸出給注冊機(jī)構(gòu)。發(fā)布到安全server上。這樣其它人能夠通過訪問server得到CRL。
證書撤銷流程過程例如以下:
1.用戶向注冊機(jī)構(gòu)操作員CRLManager發(fā)送一封簽名加密的郵件。聲明自己自愿撤消證書。
2.這冊機(jī)構(gòu)允許證書撤消,操作員鍵入用戶的序列號,對請求進(jìn)行數(shù)字簽名。
3.CA查詢證書撤消請求列表,選出當(dāng)中的一個,驗證操作員的數(shù)字簽名,假設(shè)正確的話,則允許用戶的證書撤消申請。同一時候更新CRL列表,然后將CRL以多種格式輸出。
4.注冊機(jī)構(gòu)轉(zhuǎn)發(fā)證書撤消列表。操作員導(dǎo)入CRL,以多種不同的格式將CRL發(fā)布于眾。
5.用戶瀏覽安全server。下載或瀏覽CRL。
在一個PKI,特別是CA中,信息的存儲是一個很核心的問題。它包含兩個方面:一是CAserver利用數(shù)據(jù)庫來備份當(dāng)前密鑰和歸檔過期密鑰。該數(shù)據(jù)庫需高度安全和機(jī)密。其安全等級同CA本身同樣;另外一個就是文件夾server。用于分發(fā)證書和CRL,一般採用LDAP文件夾server。
3.4密鑰管理
密鑰管理也是PKI(主要指CA)中的一個核心問題。主要是指密鑰對的安全管理,包含密鑰產(chǎn)生、密鑰備份、密鑰恢復(fù)和密鑰更新等。
1.密鑰產(chǎn)生
密鑰對的產(chǎn)生是證書申請過程中重要的一步,當(dāng)中產(chǎn)生的私鑰由用戶保留,公鑰和其它信息則交于CA中心進(jìn)行簽名。從而產(chǎn)生證書。依據(jù)證書類型和應(yīng)用的不同。密鑰對的產(chǎn)生也有不同的形式和方法。
對普通證書和測試證書。一般由瀏覽器或固定的終端應(yīng)用來產(chǎn)生。這樣產(chǎn)生的密鑰強(qiáng)度較小。不適合應(yīng)用于比較重要的安全網(wǎng)絡(luò)交易。而對于比較重要的證書,如商家證書和server證書等,密鑰對一般由專用應(yīng)用程序或CA中心直接產(chǎn)生。這樣產(chǎn)生的密鑰強(qiáng)度大,適合于重要的應(yīng)用場合。
另外,依據(jù)密鑰的應(yīng)用不同,也可能會有不同的產(chǎn)生方式。比方簽名密鑰可能在client或RA中心產(chǎn)生,而加密密鑰則須要在CA中心直接產(chǎn)生。
2.密鑰備份和恢復(fù)
在一個PKI系統(tǒng)中。維護(hù)密鑰對的備份至關(guān)重要。假設(shè)沒有這樣的措施,當(dāng)密鑰丟失后。將意味著加密數(shù)據(jù)的全然丟失。對于一些關(guān)鍵數(shù)據(jù),這將是災(zāi)難性的。
所以,密鑰的備份和恢復(fù)也是PKI密鑰管理中的重要一環(huán)。
使用PKI的企業(yè)和組織必須恩可以得到確認(rèn):即使密鑰丟失。受密要加密保護(hù)的重要信息也必須可以恢復(fù)。而且不能讓一個獨(dú)立的個人全然控制最重要的主密鑰。否則將引起嚴(yán)重后果。
企業(yè)級的PKI產(chǎn)品至少應(yīng)該支持用于加密的安全密鑰的存儲、備份和恢復(fù)。
密鑰一般用口令進(jìn)行保護(hù),而口令丟失則是管理員最常見的安全疏漏之中的一個。所以,PKI產(chǎn)品應(yīng)該可以備份密鑰,即使口令丟失。它也可以讓用戶在一定條件下恢復(fù)該密鑰,并設(shè)置新的口令。
比如,在某些情況下用戶可能有多對密鑰,至少應(yīng)該有兩個密鑰:一個用于加密,一個用于簽名。簽名密要不須要備份。由于用于驗證簽名的公鑰(或公鑰證書)廣泛公布,即使簽名私鑰丟失,不論什么用于對應(yīng)公要的人都能夠?qū)σ押灻奈臋n進(jìn)行驗證。
但PKI系統(tǒng)必須備份用于加密的密鑰對,并同意用戶進(jìn)行恢復(fù)。否則,用于解密的私鑰丟失將意味著加密數(shù)據(jù)的全然不可恢復(fù)。
另外,使用PKI的企業(yè)也應(yīng)該考慮所使用密鑰的生命周期,它包含密鑰和證書的有效時間,以及已撤銷密鑰和證書的維護(hù)時間等。
3.密鑰更新
對每個由CA頒發(fā)的證書都會有有效期。密鑰對生命周期的長短由簽發(fā)證書的CA中心來確定,各CA系統(tǒng)的證書有效期限有所不同。一般大約為2-3年。
當(dāng)用戶的私鑰被泄漏或證書的有效期快到時,用戶應(yīng)該更新私鑰。這時用戶能夠廢除證書,產(chǎn)生新的密鑰對。申請新的證書。
3.5證書的使用
在實際應(yīng)用中,為了驗證信息的數(shù)字簽名。用戶首先必須獲取信息發(fā)送者的公鑰證書,以及一些額外須要的證書(如CA證書等,用于驗證發(fā)送者證書的有效性)。
證書的獲取能夠有多種方式,如發(fā)送者發(fā)送簽名信息時附加發(fā)送自己的證書,或以另外的單獨(dú)信息發(fā)送證書。或者能夠通過訪問證書公布的文件夾server來獲得?;蛘咧苯訌淖C書相關(guān)的實體處獲得。在一個PKI體系中,能夠採取某種或某幾種上述方式獲得證書。
在電子商務(wù)系統(tǒng)中。證書的持有者能夠是個人用戶、企事業(yè)單位、商家、銀行等。
不管是電子商務(wù)中的哪一方,在使用證書驗證數(shù)據(jù)時,都遵循相同的驗證流程。
一個完整的驗證過程有下面幾步:
1.將client發(fā)來的數(shù)據(jù)解密(如解開數(shù)字信封)。
2.將解密后的數(shù)據(jù)分解成原始數(shù)據(jù)。簽名數(shù)據(jù)和客戶證書三部分。
3.用CA根證書驗證客戶證書的簽名完整性。
4.檢查客戶證書是否有效(當(dāng)前時間在證書結(jié)構(gòu)中的所定義的有效期內(nèi))。
5.檢查客戶證書是否作廢(OCSP方式或CRL方式)。
6.驗證客戶證書結(jié)構(gòu)中的證書用途。
7.客戶證書驗證原始數(shù)據(jù)的簽名完整性。
假設(shè)以上各項均驗證通過。則接受該數(shù)據(jù)。
4PKI應(yīng)用
—PKI技術(shù)的廣泛應(yīng)用能滿足人們對網(wǎng)絡(luò)交易安全保障的需求。當(dāng)然,作為一種基礎(chǔ)設(shè)施。PKI的應(yīng)用范圍很廣泛,而且在不斷發(fā)展之中,以下給出幾個應(yīng)用實例。
1.虛擬專用網(wǎng)絡(luò)(VPN)
VPN是一種架構(gòu)在公用通信基礎(chǔ)設(shè)施上的專用數(shù)據(jù)通信網(wǎng)絡(luò)。利用網(wǎng)絡(luò)層安全協(xié)議(尤其是IPSec)和建立在PKI上的加密與簽名技術(shù)來獲得機(jī)密性保護(hù)?;赑KI技術(shù)的IPSec協(xié)議如今已經(jīng)成為架構(gòu)VPN的基礎(chǔ),它能夠為路由器之間、防火墻之間或者路由器和防火墻之間提供經(jīng)過加密和認(rèn)證的通信。盡管它的實現(xiàn)會復(fù)雜一些。但其安全性比其它協(xié)議都完好得多。
2.安全電子郵件
—-作為Internet上最有效的應(yīng)用。電子郵件憑借其易用、低成本和高效已經(jīng)成為現(xiàn)代商業(yè)中的一種標(biāo)準(zhǔn)信息交換工具。隨著Internet的持續(xù)增長,商業(yè)機(jī)構(gòu)或政府機(jī)構(gòu)都開始用電子郵件交換一些秘密的或是有商業(yè)價值的信息。這就引出了一些安全方面的問題,包含:消息和附件能夠在不為通信兩方所知的情況下被讀取、篡改或截掉。發(fā)信人的身份無法確認(rèn)。
電子郵件的安全需求也是機(jī)密、完整、認(rèn)證和不可否認(rèn)。而這些都能夠利用PKI技術(shù)來獲得。
眼下發(fā)展非??斓陌踩娮余]件協(xié)議是S/MIME(TheSecureMultipurposeInternetMailExtension)。這是一個同意發(fā)送加密和有簽名郵件的協(xié)議。
該協(xié)議的實現(xiàn)須要依賴于PKI技術(shù)。
3.Web安全
—-瀏覽Web頁面是人們最經(jīng)常使用的訪問Internet的方式。假設(shè)要通過Web進(jìn)行一些商業(yè)交易,該怎樣保證交易的安全呢?為了透明地解決Web的安全問題,在兩個實體進(jìn)行通信之前,先要建立SSL連接,以此實現(xiàn)相應(yīng)用層透明的安全通信。
利用PKI技術(shù),SSL協(xié)議同意在瀏覽器和server之間進(jìn)行加密通信。此外server端和瀏覽器端通信時兩方能夠通過數(shù)字證書確認(rèn)對方的身份。-結(jié)合SSL協(xié)議和數(shù)字證書,PKI技術(shù)能夠保證Web交易多方面的安全需求,使Web上的交易和面對面的交易一樣安全。
5應(yīng)用編程接口API
協(xié)議標(biāo)準(zhǔn)是系統(tǒng)具有可交互性的前提和基礎(chǔ),它規(guī)范了PKI系統(tǒng)各部分之間相互通信的格式和步驟。
而應(yīng)用編程界面API(Applicationprogramminginterfaces)則定義了怎樣使用這些協(xié)議。并為上層應(yīng)用提供PKI服務(wù)。
當(dāng)應(yīng)用須要使用PKI服務(wù),如獲取某一用戶的公鑰、請求證書廢除信息或請求證書時將會都會用到API。眼下API沒有統(tǒng)一的國際標(biāo)準(zhǔn)。大部分都是操作系統(tǒng)或某一公司產(chǎn)品的擴(kuò)展,并在其產(chǎn)品應(yīng)用的框架內(nèi)提供PKI服務(wù)。
眼下。有非常多能夠讓開發(fā)人員選擇的API類型。IETF建議標(biāo)準(zhǔn)為通用安全服務(wù)API:GSS-API(GenericSecurityServiceApplicationProgramInterface),它提供了一種接口與網(wǎng)絡(luò)機(jī)制和網(wǎng)絡(luò)協(xié)議相互獨(dú)立的實現(xiàn)。
歐洲建立的SESAME(SecureEuropeanSystemforApplicationsinaMulti-VendorEnvironment)定義了一些安全界面。并作為該組織發(fā)展的安全技術(shù)的一部分,該接口得到了歐洲很多著名廠商的支持,如BullSA、ICL和Seimens等,但沒有在美國得到支持,特別是一些大的廠商。如Microsoft和Netscape等。
Entrust也為其產(chǎn)品提供了一套API,如Entrust證書管理服務(wù)API(CMSAPI。Entrust’sCertificateManagementServicesAPI),該API同意應(yīng)用使用Entrust的證書管理和分發(fā)服務(wù)。在1996年指定。并與1997年更新的PKIXInternet草案”ArchitectureforPublicKeyInfrastructure”定義了PKI結(jié)構(gòu),并建議了很多標(biāo)準(zhǔn),當(dāng)中就包含API。
眼下,在API市場處于率先地位的是Microsoft的CryptoAPI和Intel的公用數(shù)據(jù)安全框架CDSA(CommonDataSecurityArchitecture),他們憑借自己的產(chǎn)品優(yōu)勢相互競爭。Microsoft利用其廣泛的操作系統(tǒng)市場,而Intel則憑借其PC芯片的優(yōu)勢,并與其他廠商。如IBM、Entrust和Netscape等進(jìn)行聯(lián)合。共同支持CDSA。
如今也有非常多廠商的PKI產(chǎn)品同一時候支持這兩種API,如Entrust等。PKIX在非常多情況下支持CDSA,并建議其為”ArchitectureforPublicKeyInfrastructure”草案的標(biāo)準(zhǔn)。
除此之外,Entrust、IBM、Intel、Netscape和TIS等聯(lián)合向開放組織(OpenGroup)提議了一個基于CDSA的加密和證書管理接口,并使用了Entrust的CMSAPI、IBM的密鑰恢復(fù)API。
但開放組織同一時候也在考慮使用PKCS#11作為安全API接口。
以下介紹眼下兩個比較經(jīng)常使用的安全API接口:CryptoAPI和CDSA接口。
5.1CryptoAPI
微軟加密應(yīng)用程序接口CryptoAPI(MicrosoftCryptographicApplicationProgrammingInterface)為Win32應(yīng)用程序提供了認(rèn)證、編碼、加密和簽名等安全處理,它可使用戶在對復(fù)雜的加密機(jī)制和加密算法不了解的情況下,而相應(yīng)用程序添加安全功能。這樣非常符合Windows的設(shè)計風(fēng)格。就像用戶但是使用圖形庫而不須要了解圖形硬件一樣。
眼下CryptoAPI的最新版本號是2.0版,在包括CryptoAPI1.0的所有功能外,還添加了證書管理功能。為網(wǎng)絡(luò)身份認(rèn)證提供的基本保證。
CryptoAPI通過一系列的庫函數(shù)來相應(yīng)用程序提供PKI安全服務(wù)。其總體系統(tǒng)結(jié)構(gòu)如圖3所看到的:
圖3 CryptoAPI結(jié)構(gòu)圖
CryptoAPI的編程模型同Windows系統(tǒng)的圖形設(shè)備接口GDI比較類似,當(dāng)中加密服務(wù)提供者CSP(CryptographicServiceProviders)等同于圖形設(shè)備驅(qū)動程序,加密硬件(可選)等同于圖形硬件,其上層的應(yīng)用程序也類似,都不須要同設(shè)備驅(qū)動程序和硬件直接打交道
CryptoAPI共同擁有五部分組成:簡單消息函數(shù)(SimplifiedMessageFunctions)、低層消息函數(shù)(Low-levelMessageFunctions)、基本加密函數(shù)(BaseCryptographicFunctions)、證書編解碼函數(shù)(CertificateEncode/DecodeFunctions)和證書庫管理函數(shù)(CertificateStoreFunctions)。當(dāng)中前三者可用于對敏感信息進(jìn)行加密或簽名處理??杀WC網(wǎng)絡(luò)傳輸信心的私有性;后兩者通過對證書的使用??杀WC網(wǎng)絡(luò)信息交流中的認(rèn)證性。
5.2CDSA
CDSA(CommonDataSecurityArchitecture)為安全應(yīng)用服務(wù)提供了一個總體框架和解決方式,提供了諸如證書管理等很多PKI功能。
同CryptoAPI類似。CDSA也是以一個分層的服務(wù)提供者框架為基礎(chǔ)。其的應(yīng)用模式可分為四層。最上層是應(yīng)用程序。應(yīng)用程序的下層是中間件,比如SSL、IPSEC接口、語言接口轉(zhuǎn)換器等。接下來是CSSM層,CSSM層是CDSA的核心層,CSSM的下層是詳細(xì)的服務(wù)提供者。如加密服務(wù)、證書服務(wù)、政策服務(wù)、數(shù)據(jù)存儲服務(wù)等。如圖4所看到的。
圖4 CDSA系統(tǒng)結(jié)構(gòu)
—CSSM是CDSA的核心部分,它表現(xiàn)為一組公開的應(yīng)用編程接口(API),為應(yīng)用程序提供安全功能的調(diào)用。共包括4個主要的安全模塊。
·加密服務(wù)提供(CryptographicServiceProvider。CSP)模塊。CSP負(fù)責(zé)加/解密、數(shù)字簽名和私鑰保存等工作,是整個CDSA結(jié)構(gòu)的基礎(chǔ)。
·信任策略(TrustPolicy,TP)模塊。
TP負(fù)責(zé)信任策略的詳細(xì)實施,判定特定行為(如開支票或訪問涉密信息)所需的信任級別。因為具有模塊化的結(jié)構(gòu),TP可以對不同的機(jī)構(gòu)應(yīng)用不同的策略。比方,對商業(yè)銀行和政府機(jī)構(gòu)運(yùn)用的策略就有所不同。
·證書庫(CertificateLibrary,CL)模塊。CL提供證書的維護(hù)、撤銷和數(shù)字簽名等功能。
·數(shù)據(jù)存儲庫(DataStorageLibrary,DL)模塊。DL進(jìn)行安全相關(guān)數(shù)據(jù)對象的存儲,包含證書、密鑰和信任規(guī)則對象等。而實際的存儲位置可能在大型數(shù)據(jù)庫、原始的文件系統(tǒng)或某種特定的硬件設(shè)備中。
—-另外,不論什么軟、硬件廠商都能夠建立自己的服務(wù)提供模塊。無縫嵌入到CDSA的開放式框架中。在CDSA2.0中又添加任選模塊管理,支持更方便地添加模塊。
另外,還能夠?qū)SSM進(jìn)行更高一層的抽象。提供高層的API,使開發(fā)人員更easy使用CDSA提供的PKI安全功能。
6PKI標(biāo)準(zhǔn)
隨著PKI的發(fā)展和應(yīng)用的不斷普及。PKI的產(chǎn)品也越來越多。為了保持個產(chǎn)品之間的兼容性。標(biāo)準(zhǔn)化成了PKI不可避免的發(fā)展趨勢。
PKI的標(biāo)準(zhǔn)可分為兩個部分:一類用于定義PKI,而還有一類用于PKI的應(yīng)用。
6.1定義PKI的標(biāo)準(zhǔn)
在PKI技術(shù)框架中。很多方面都經(jīng)過嚴(yán)格的定義,如用戶的注冊流程、數(shù)字證書的格式、CRL的格式、證書的申請格式以及數(shù)字簽名格式等。
國際電信聯(lián)盟ITUX.509協(xié)議,是PKI技術(shù)體系中應(yīng)用最為廣泛、也是最為基礎(chǔ)的一個國際標(biāo)準(zhǔn)。
它的主要目的在于定義一個規(guī)范的數(shù)字證書的格式。以便為基于X.500協(xié)議的文件夾服務(wù)提供一種強(qiáng)認(rèn)證手段。
但該標(biāo)準(zhǔn)并不是要定義一個完整的、可互操作的PKI認(rèn)證體系。
PKCS是由美國RSA數(shù)據(jù)安全公司及其合作伙伴制定的一組公鑰password學(xué)標(biāo)準(zhǔn),當(dāng)中包含證書申請、證書更新、證書作廢表發(fā)布、擴(kuò)展證書內(nèi)容以及數(shù)字簽名、數(shù)字信封的格式等方面的一系列相關(guān)協(xié)議。
到1999年底,PKCS已經(jīng)發(fā)布了下面標(biāo)準(zhǔn):
·PKCS#1:定義RSA公開密鑰算法加密和簽名機(jī)制。主要用于組織PKCS#7中所描寫敘述的數(shù)字簽名和數(shù)字信封。
·PKCS#3:定義Diffie-Hellman密鑰交換協(xié)議。
·PKCS#5:描寫敘述一種利用從口令派生出來的安全密鑰加密字符串的方法。使用MD2或MD5從口令中派生密鑰,并採用DES-CBC模式加密。
主要用于加密從一個計算機(jī)傳送到還有一個計算機(jī)的私人密鑰,不能用于加密消息。
·PKCS#6:描寫敘述了公鑰證書的標(biāo)準(zhǔn)語法,主要描寫敘述X.509證書的擴(kuò)展格式。
·PKCS#7:定義一種通用的消息語法,包含數(shù)字簽名和加密等用于增強(qiáng)的加密機(jī)制,PKCS#7與PEM兼容,所以不需其它password操作,就能夠?qū)⒓用艿南⑥D(zhuǎn)換成PEM消息。
·PKCS#8:描寫敘述私有密鑰信息格式,該信息包含公開密鑰算法的私有密鑰以及可選的屬性集等。
·PKCS#9:定義一些用于PKCS#6證書擴(kuò)展、PKCS#7數(shù)字簽名和PKCS#8私鑰加密信息的屬性類型。
·PKCS#10:描寫敘述證書請求語法。
·PKCS#11:稱為Cyptoki,定義了一套獨(dú)立于技術(shù)的程序設(shè)計接口,用于智能卡和PCMCIA卡之類的加密設(shè)備。
·PKCS#12:描寫敘述個人信息交換語法標(biāo)準(zhǔn)。
描寫敘述了將用戶公鑰、私鑰、證書和其它相關(guān)信息打包的語法。
·PKCS#13:橢圓曲線password體制標(biāo)準(zhǔn)。
·PKCS#14:偽隨機(jī)數(shù)生成標(biāo)準(zhǔn)。
·PKCS#15:password令牌信息格式標(biāo)準(zhǔn)。
另外。PKCS#2和PKCS#4已經(jīng)合并到PKCS#1之中。PKIX是由IETF組織中的PKI工作小組制定的系列國際標(biāo)準(zhǔn)。此類標(biāo)準(zhǔn)主要定義基于X.509和PKCS的PKI模型框架。PKIX中定義的四個主要模型為用戶、認(rèn)證中心CA、注冊中心RA和證書存取庫。
6.2PKI應(yīng)用標(biāo)準(zhǔn)
眼下世界上已經(jīng)出現(xiàn)了很多依賴于PKI的安全標(biāo)準(zhǔn)。即PKI的應(yīng)用標(biāo)準(zhǔn),如安全的套接層協(xié)議SSL、傳輸層安全協(xié)議TLS、安全的多用途互連網(wǎng)郵件擴(kuò)展協(xié)議S/MIME和IP安全協(xié)議IPSEC等。
·S/MIME是一個用于發(fā)送安全報文的IETF標(biāo)準(zhǔn)。它採用了PKI數(shù)字簽名技術(shù)并支持消息和附件的加密,無須收發(fā)兩方共享同樣密鑰。S/MIME委員會採用PKI技術(shù)標(biāo)準(zhǔn)來實現(xiàn)S/MIME,并適當(dāng)擴(kuò)展了PKI的功能。眼下該標(biāo)準(zhǔn)包含password報文語法、報文規(guī)范、證書處理以及證書申請語法等方面的內(nèi)容。
·SSL/TLS是互連網(wǎng)中訪問WEBserver最重要的安全協(xié)議。當(dāng)然。他們也能夠應(yīng)用于基于客戶機(jī)/server模型的非WEB類型的應(yīng)用系統(tǒng)。SSL/TLS都利用PKI的數(shù)字證書來認(rèn)證客戶和server的身份。
·IPSEC是IETF制定的IP層加密協(xié)議,PKI技術(shù)為其提供了加密和認(rèn)證過程的密鑰管理功能。IPSEC主要用于開發(fā)新一代的VPN。
另外,隨著PKI的進(jìn)一步發(fā)展,新的標(biāo)準(zhǔn)也在不斷的添加和更新。
7結(jié)論
從眼下的發(fā)展來說,PKI的范圍很廣。而不只局限于通常覺得的CA機(jī)構(gòu),它還包含完整的安全策略和安全應(yīng)用。
因此。PKI的開發(fā)也從傳統(tǒng)的身份認(rèn)證到各種與應(yīng)用相關(guān)的安全場合,如企業(yè)安全電子商務(wù)和政府的安全電子政務(wù)等。
另外,PKI的開發(fā)也從大型的認(rèn)證機(jī)構(gòu)到與企業(yè)或政府應(yīng)用相關(guān)的中小型PKI系統(tǒng)發(fā)展,既保持了兼容性,又和特定的應(yīng)用相關(guān)。在以后的文章中。我們會對PKI的源碼projectOpenCA進(jìn)行具體分析,為PKI的開發(fā)提供借鑒。
參考資料
·http://www.pkiforum.org/:PKI論壇,能夠獲取很多其它關(guān)于PKI的信息。
·http://www.pki-page.org/:當(dāng)中包括了大量PKI網(wǎng)站的鏈接。
·http://www.openca.org:是一個CA開放源碼機(jī)構(gòu),能夠獲取很多其它的關(guān)于CA開發(fā)的信息。
總結(jié)
以上是生活随笔為你收集整理的PKI系统深入的介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球最大手游源码共享网站_传奇手游开发定
- 下一篇: Cache--主存地址映射