1.1 PKI 的定義
PKI(Public Key Infrastructure)是一種遵循既定標(biāo)準(zhǔn)的,采用密碼技術(shù)為網(wǎng)上安全通信提供一整套安全服務(wù)的基礎(chǔ)平臺(tái)涧衙,能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用提供信息加密和數(shù)字簽名等密碼服務(wù)及所必須的密鑰與證書(shū)管理體系旦部。也就是能夠?qū)借€對(duì)進(jìn)行管理,支持身份驗(yàn)證、機(jī)密性、完整性以及不可否認(rèn)性服務(wù)的具有普適性的信息安全基礎(chǔ)設(shè)施猬腰。
公鑰基礎(chǔ)設(shè)施是一個(gè)包括硬件、軟件猜敢、人員姑荷、策略和規(guī)程的集合,用來(lái)實(shí)現(xiàn)基于公鑰密碼體制的密鑰和證書(shū)的產(chǎn)生缩擂、管理鼠冕、存儲(chǔ)、分發(fā)和撤銷(xiāo)等功能胯盯。
PKI體系是計(jì)算機(jī)軟硬件懈费、權(quán)威機(jī)構(gòu)及應(yīng)用系統(tǒng)的結(jié)合。它為實(shí)施電子商務(wù)博脑、電子政務(wù)憎乙、辦公自動(dòng)化等提供了基本的安全服務(wù),從而使那些彼此不認(rèn)識(shí)或距離很遠(yuǎn)的用戶(hù)能通過(guò)信任鏈安全地交流叉趣。
PKI系統(tǒng)的組成
一個(gè)典型的PKI系統(tǒng)包括PKI策略泞边、軟硬件系統(tǒng)、證書(shū)機(jī)構(gòu)CA疗杉、注冊(cè)機(jī)構(gòu)RA阵谚、證書(shū)發(fā)布系統(tǒng)和PKI應(yīng)用等。
-
PKI安全策略
建立和定義了一個(gè)組織信息安全方面的指導(dǎo)方針烟具,同時(shí)也定義了密碼系統(tǒng)使用的處理方法和原則梢什。它包括一個(gè)組織怎樣處理密鑰和有價(jià)值的信息,根據(jù)風(fēng)險(xiǎn)的級(jí)別定義安全控制的級(jí)別朝聋。
一般情況下绳矩,在PKI中有兩種類(lèi)型的策略:
一是證書(shū)策略,用于管理證書(shū)的使用玖翅,比如翼馆,可以確認(rèn)某一CA是在Internet上 的公有CA,還是某一企業(yè)內(nèi)部的私有CA金度;
另外一個(gè)就是CPS(Certificate Practice Statement)应媚。一些由商業(yè)證書(shū)發(fā)放機(jī) 構(gòu)(CCA)或者可信的第三方操作的PKI系統(tǒng)需要CPS。這是一個(gè)包含如何在實(shí)踐中增強(qiáng)和支持安全策略的一些操作過(guò)程的詳細(xì)文檔猜极。它包括CA是如何建立 和運(yùn)作的中姜,證書(shū)是如何發(fā)行、接收和廢除的,密鑰是如何產(chǎn)生丢胚、注冊(cè)的翩瓜,以及密鑰是如何存儲(chǔ)的,用戶(hù)是如何得到它的等等携龟。
-
證書(shū)機(jī)構(gòu)CA
證書(shū)機(jī)構(gòu)CA是PKI的信任基礎(chǔ)兔跌,它管理公鑰的整個(gè)生命周期,其作用包括:發(fā)放證書(shū)峡蟋、規(guī)定證書(shū)的有效期和通過(guò)發(fā)布證書(shū)廢除列表(CRL)確保必要時(shí)可以廢除證書(shū)坟桅。
-
注冊(cè)機(jī)構(gòu)RA
注冊(cè)機(jī)構(gòu)RA提供用戶(hù)和CA之間的一個(gè)接口,它獲取并認(rèn)證用戶(hù)的身份蕊蝗,向CA提出證書(shū)請(qǐng)求仅乓。它主要完成收集用戶(hù)信息和確認(rèn)用戶(hù)身份的功能。這里指的用戶(hù)蓬戚,是指將要向認(rèn)證中心(即CA)申請(qǐng)數(shù)字證書(shū)的客戶(hù)夸楣,可以是個(gè)人,也可以是集團(tuán)或團(tuán)體子漩、某政府機(jī)構(gòu)等豫喧。
注冊(cè)管理一般由一個(gè)獨(dú)立的注冊(cè)機(jī)構(gòu)(即RA)來(lái)承擔(dān)。它接受用戶(hù)的注冊(cè)申請(qǐng)痛单,審查用戶(hù)的申請(qǐng)資格嘿棘,并決定是否同意CA給其簽發(fā)數(shù)字證書(shū)劲腿。注冊(cè)機(jī)構(gòu)并不給用戶(hù)簽發(fā)證書(shū)旭绒,而只是對(duì)用戶(hù)進(jìn)行資格審查。因此焦人,RA可以設(shè)置在直接面對(duì)客戶(hù)的業(yè)務(wù)部門(mén)挥吵,如銀行的營(yíng)業(yè)部、機(jī)構(gòu)認(rèn)識(shí)部門(mén)等花椭。當(dāng)然忽匈,對(duì)于一個(gè)規(guī)模較小的PKI應(yīng)用系統(tǒng)來(lái)說(shuō),可把注冊(cè)管理的職能由認(rèn)證中心CA來(lái)完成矿辽,而不設(shè)立獨(dú)立運(yùn)行的RA丹允。但這并不是取消了PKI的注冊(cè)功能,而只是將其作為CA的一項(xiàng)功能而已袋倔。PKI國(guó)際標(biāo)準(zhǔn)推薦由一個(gè)獨(dú)立的RA來(lái)完成注冊(cè)管理的任務(wù)雕蔽,可以增強(qiáng)應(yīng)用系統(tǒng)的安全。
-
證書(shū)發(fā)布系統(tǒng)
證書(shū)發(fā)布系統(tǒng)負(fù)責(zé)證書(shū)的發(fā)放宾娜,如可以通過(guò)用戶(hù)自己批狐,或是通過(guò)目錄服務(wù)器發(fā)放。目錄服務(wù)器可以是一個(gè)組織中現(xiàn)存的前塔,也可以是PKI方案中提供的嚣艇。
PKI的應(yīng)用
PKI的應(yīng)用非常廣泛承冰,包括應(yīng)用在web服務(wù)器和瀏覽器之間的通信、電子郵件食零、電子數(shù)據(jù)交換(EDI)困乒、在Internet上的信用卡交易和虛擬私有網(wǎng)(VPN)等。
通常來(lái)說(shuō)慌洪,CA是證書(shū)的簽發(fā)機(jī)構(gòu)顶燕,它是PKI的核心。眾所周知冈爹,構(gòu)建密碼服務(wù)系統(tǒng)的核心內(nèi)容是如何實(shí)現(xiàn)密鑰管理涌攻。公鑰體制涉及一對(duì)密鑰(即私鑰和公鑰),私鑰只由用戶(hù)獨(dú)立掌握频伤,無(wú)須在網(wǎng)上傳輸恳谎,而公鑰則是公開(kāi)的,需要在網(wǎng)上傳送憋肖,故公鑰體制的密鑰管理主要是針對(duì)公鑰的管理問(wèn)題因痛,較好的方案是數(shù)字證書(shū)機(jī)制。
- CA用于簽發(fā)并管理證書(shū)岸更;
? - RA可作為CA的一部分鸵膏,也可以獨(dú)立,其功能包括個(gè)人身份審核怎炊、CRL管理谭企、密鑰產(chǎn)生和密鑰對(duì)備份等;
? - PKI存儲(chǔ)庫(kù)包括LDAP目錄服務(wù)器和普通數(shù)據(jù)庫(kù)评肆,用于對(duì)用戶(hù)申請(qǐng)债查、證書(shū)、密鑰瓜挽、CRL和日志等信息進(jìn)行 存儲(chǔ)和管理盹廷,并提供一定的查詢(xún)功能。
LDAP目錄服務(wù)器
目錄服務(wù)器
目錄是一個(gè)專(zhuān)門(mén)為搜索和瀏覽而設(shè)計(jì)的數(shù)據(jù)庫(kù)久橙,它也支持簡(jiǎn)單的插入俄占、刪除、修改功能淆衷「组可以把它理解為我們傳統(tǒng)使用的關(guān)系型數(shù)據(jù)庫(kù),但是他與我們的關(guān)系型數(shù)據(jù)庫(kù)有著本質(zhì)的區(qū)別吭敢,目錄的存儲(chǔ)結(jié)構(gòu)類(lèi)似于linux文件系統(tǒng)碰凶,它的結(jié)構(gòu)一顆樹(shù),由于它是為瀏覽和搜索而設(shè)計(jì)的,它的查詢(xún)速度很快欲低,相反插入速度較慢辕宏,它也不支持事務(wù)和回滾以及復(fù)雜的插入、更新功能砾莱。目錄服務(wù)器可像關(guān)系型數(shù)據(jù)庫(kù)一樣對(duì)外提供數(shù)據(jù)服務(wù)瑞筐,它可以是單機(jī)或集群式的。在集群式的架構(gòu)中每個(gè)機(jī)器都擁有一致的數(shù)據(jù)備份腊瑟。
目錄服務(wù)是由目錄數(shù)據(jù)庫(kù)和一套訪(fǎng)問(wèn)協(xié)議組成的系統(tǒng)聚假。類(lèi)似以下的信息適合儲(chǔ)存在目錄中:
企業(yè)員工信息,如姓名闰非、電話(huà)膘格、郵箱等;
公用證書(shū)和安全密鑰财松;
公司的物理設(shè)備信息瘪贱,如服務(wù)器,它的IP地址辆毡、存放位置菜秦、廠(chǎng)商、購(gòu)買(mǎi)時(shí)間等舶掖;
LDAP是輕量目錄訪(fǎng)問(wèn)協(xié)議(Lightweight Directory Access Protocol)的縮寫(xiě)球昨,LDAP是從X.500目錄訪(fǎng)問(wèn)協(xié)議的基礎(chǔ)上發(fā)展過(guò)來(lái)的,目前的版本是v3.0眨攘。
可以使用Java構(gòu)建主慰。
1.2 CA
1.2.1 數(shù)字證書(shū)基礎(chǔ)
數(shù)字證書(shū)是一種數(shù)字標(biāo)識(shí),可以說(shuō)是Internet上的安全護(hù)照或身份證明期犬,數(shù)字證書(shū)提供的是網(wǎng)絡(luò)上的身份證明河哑。
數(shù)字證書(shū)是一個(gè)經(jīng) 證書(shū)授權(quán)中心 數(shù)字簽名的 包含公開(kāi)密鑰擁有者信息和公開(kāi)密鑰的文件避诽。
最簡(jiǎn)單的證書(shū)包含一個(gè)公開(kāi)密鑰龟虎、名稱(chēng)以及證書(shū)授權(quán)中心的數(shù)字簽名。
一般情況下證書(shū)中還包括密鑰的有效時(shí)間沙庐,發(fā)證機(jī)關(guān)(證書(shū)授權(quán)中心)的名稱(chēng)鲤妥,該證書(shū)的序列號(hào)等信息,證書(shū)的格式遵循ITUT X.509國(guó)際標(biāo)準(zhǔn)拱雏。
1.2.2 證書(shū)格式
在Internet網(wǎng)絡(luò)中棉安,應(yīng)用程序使用的證書(shū)都來(lái)自不同的廠(chǎng)商或組織,為了實(shí)現(xiàn)可交互性铸抑,要求證書(shū)能夠被不同的系統(tǒng)識(shí)別贡耽,符合一定的 格式,并實(shí)現(xiàn)標(biāo)準(zhǔn)化。X.509為證書(shū)及其CRL格式提供了一個(gè)標(biāo)準(zhǔn)蒲赂。但X.509本身不是Internet標(biāo)準(zhǔn)阱冶,而是國(guó)際電聯(lián)ITU標(biāo)準(zhǔn),它定義了一個(gè)開(kāi)放的框架滥嘴,并在一定的范圍內(nèi)可以進(jìn)行擴(kuò)展木蹬。
X.509 目前有三個(gè)版本:V1、V2和V3若皱,其中V3是在V2的基礎(chǔ)上加上擴(kuò)展項(xiàng)后的版本镊叁。
為了適應(yīng)新的需求ISO/IEC和ANSI X9發(fā)展了X.509 V3版本證書(shū)格式,該版本證書(shū)通過(guò)增加標(biāo)準(zhǔn)擴(kuò)展項(xiàng)對(duì)V1和V2證書(shū)進(jìn)行了擴(kuò)展走触。另外晦譬,根據(jù)實(shí)際需要,各個(gè)組織或團(tuán)體也可以增加自己的私有擴(kuò)展互广。
X.509 V1和V2證書(shū)所包含的主要內(nèi)容如下:
證書(shū)版本號(hào)(Version):版本號(hào)指明X.509證書(shū)的格式版本漫萄,現(xiàn)在的值可以為0、1站欺、2间螟,也為將來(lái)的版本進(jìn)行了預(yù)定義。
證書(shū)序列號(hào)(SerialNumber):序列號(hào)指定由CA分配給證書(shū)的唯一的數(shù)字型標(biāo)識(shí)符逸吵。當(dāng)證書(shū)被取消時(shí)凶硅,實(shí)際上是將此證書(shū)的序列號(hào)放入由CA簽發(fā)的CRL中,這也是序列號(hào)唯一的原因扫皱。
簽名算法標(biāo)識(shí)符(Signature):簽名算法標(biāo)識(shí)用來(lái)指定由CA簽發(fā)證書(shū)時(shí)所使用的簽名算法足绅。算法標(biāo)識(shí)符用來(lái)指定CA簽發(fā)證書(shū)時(shí)所使用的公開(kāi)密鑰算法和hash算法,須向國(guó)際知名標(biāo)準(zhǔn)組織(如ISO)注冊(cè)韩脑。
簽發(fā)機(jī)構(gòu)名(Issuer):此域用來(lái)標(biāo)識(shí)簽發(fā)證書(shū)的CA的X.500 DN名字氢妈。包括國(guó)家、省市段多、地區(qū)首量、組織機(jī)構(gòu)、單位部門(mén)和通用名进苍。
有效期(Validity):指定證書(shū)的有效期加缘,包括證書(shū)開(kāi)始生效的日期和時(shí)間以及失效的日期和時(shí)間。每次使用證書(shū)時(shí)觉啊,需要檢查證書(shū)是否在有效期內(nèi)拣宏。
證書(shū)用戶(hù)名(Subject):指定證書(shū)持有者的X.500唯一名字。包括國(guó)家杠人、省市勋乾、地區(qū)宋下、組織機(jī)構(gòu)、單位部門(mén)和通用名辑莫,還可包含email地址等個(gè)人信息等
證書(shū)持有者公開(kāi)密鑰信息(subjectPublicKeyInfo):證書(shū)持有者公開(kāi)密鑰信息域包含兩個(gè)重要信息:證書(shū)持有者的公開(kāi)密鑰的值杨凑;公開(kāi)密鑰使用的算法標(biāo)識(shí)符。此標(biāo)識(shí)符包含公開(kāi)密鑰算法和hash算法摆昧。
簽發(fā)者唯一標(biāo)識(shí)符(Issuer Unique Identifier):簽發(fā)者唯一標(biāo)識(shí)符在第2版加入證書(shū)定義中撩满。此域用在當(dāng)同一個(gè)X.500名字用于多個(gè)認(rèn)證機(jī)構(gòu)時(shí),用一比特字符串來(lái)唯一標(biāo)識(shí)簽發(fā)者的X.500名字绅你∷帕保可選。
證書(shū)持有者唯一標(biāo)識(shí)符(Subject Unique Identifier):持有證書(shū)者唯一標(biāo)識(shí)符在第2版的標(biāo)準(zhǔn)中加入X.509證書(shū)定義忌锯。此域用在當(dāng)同一個(gè)X.500名字用于多個(gè)證書(shū)持有者時(shí)伪嫁,用一比特字符串來(lái)唯一標(biāo)識(shí)證書(shū)持有者的X.500名字∨伎澹可選张咳。
簽名值(Issuer's Signature):證書(shū)簽發(fā)機(jī)構(gòu)對(duì)證書(shū)上述內(nèi)容的簽名值。
X.509 V3 證書(shū)是在v2的基礎(chǔ)上一標(biāo)準(zhǔn)形式或普通形式增加了擴(kuò)展項(xiàng)似舵,以使證書(shū)能夠附帶額外信息脚猾。標(biāo)準(zhǔn)擴(kuò)展是指由X.509 V3版本定義的對(duì)V2版本增加的具有廣泛應(yīng)用前景的擴(kuò)展項(xiàng),任何人都可以向一些權(quán)威機(jī)構(gòu)砚哗,如ISO龙助,來(lái)注冊(cè)一些其他擴(kuò)展,如果這些擴(kuò)展項(xiàng)應(yīng)用廣泛蛛芥,也許以后會(huì)成為標(biāo)準(zhǔn)擴(kuò)展項(xiàng)提鸟。
CRL——證書(shū)廢除列表(吊銷(xiāo)列表)
證書(shū)廢除列表CRL(Certificate revocation lists,又稱(chēng)證書(shū)黑名單)為應(yīng)用程序和其它系統(tǒng)提供了一種檢驗(yàn)證書(shū)有效性的方式仅淑。任何一個(gè)證書(shū)廢除以后称勋,證書(shū)機(jī)構(gòu)CA會(huì)通過(guò)發(fā)布CRL的方式來(lái)通知各個(gè)相關(guān)方。
目前涯竟,同X.509 V3證書(shū)對(duì)對(duì)應(yīng)的CRL為 X.509 v2 CRL赡鲜,其所包含的內(nèi)容格式如下:
CRL的版本號(hào):0表示X.509 V1 標(biāo)準(zhǔn);1表示X.509 V2 標(biāo)準(zhǔn)昆禽;目前常用的是同X.509 V3證書(shū)對(duì)應(yīng)的CRL V2版本蝗蛙。
簽名算法:包含算法標(biāo)識(shí)和算法參數(shù)蝇庭,用于指定證書(shū)簽發(fā)機(jī)構(gòu)用來(lái)對(duì)CRL內(nèi)容進(jìn)行簽名的算法醉鳖。
證書(shū)簽發(fā)機(jī)構(gòu)名:簽發(fā)機(jī)構(gòu)的DN名,由國(guó)家哮内、省市盗棵、地區(qū)壮韭、組織機(jī)構(gòu)、單位部門(mén)和通用名等組成纹因。
此次簽發(fā)時(shí)間:此次CRL簽發(fā)時(shí)間喷屋,遵循ITU-T X.509 V2標(biāo)準(zhǔn)的CA在2049年之前把這個(gè)域編碼為UTCTime類(lèi)型,在2050或2050年之后年之前把這個(gè)域編碼為GeneralizedTime類(lèi)型瞭恰。
下次簽發(fā)時(shí)間:下次CRL簽發(fā)時(shí)間屯曹,遵循ITU-T X.509 V2標(biāo)準(zhǔn)的CA在2049年之前把這個(gè)域編碼為UTCTime類(lèi)型,在2050或2050年之后年之前把這個(gè)域編碼為GeneralizedTime類(lèi)型惊畏。
用戶(hù)公鑰信息:其中包括廢除的證書(shū)序列號(hào)和證書(shū)廢除時(shí)間恶耽。廢除的證書(shū)序列號(hào)是指要廢除的由同一個(gè)CA簽發(fā)的證書(shū)的一個(gè)唯一標(biāo)識(shí)號(hào),同一機(jī)構(gòu)簽發(fā)的證書(shū)不會(huì)有相同的序列號(hào)颜启。
簽名算法:對(duì)CRL內(nèi)容進(jìn)行簽名的簽名算法偷俭。
-
簽名值:證書(shū)簽發(fā)機(jī)構(gòu)對(duì)CRL內(nèi)容的簽名值。
[圖片上傳失敗...(image-a94d9e-1608002725947)]
CRL中還包含擴(kuò)展域和條目擴(kuò)展域缰盏。CRL擴(kuò)展域用于提供與CRL有關(guān)的額外信息部份涌萤,允許團(tuán)體和組織定義私有的CRL擴(kuò)展域來(lái)傳送他們獨(dú)有的信息;
證書(shū)的存放方式
數(shù)字證書(shū)作為一種電子數(shù)據(jù)格式,可以直接從網(wǎng)上下載(PKI用戶(hù)可自主下載)口猜,也可以通過(guò)其他方式负溪。
IC卡存放用戶(hù)證書(shū)。即把用戶(hù)的數(shù)字證書(shū)寫(xiě)到IC卡中济炎,供用戶(hù)隨身攜帶笙以。
直接存放在磁盤(pán)或自己的終端上。戶(hù)將從CA申請(qǐng)來(lái)的證書(shū)下載或復(fù)制到磁盤(pán)或自己的PC機(jī)或智能終端上冻辩,當(dāng)用戶(hù)使用自時(shí)猖腕,直接從終端讀入即可。
1.2.3 CA框架模型
證書(shū)機(jī)構(gòu)CA用于創(chuàng)建和發(fā)布證書(shū)恨闪,它通常為一個(gè)稱(chēng)為安全域(security domain)的有限群體發(fā)放證書(shū)倘感。
創(chuàng)建證書(shū)的時(shí)候,CA系統(tǒng)首先獲取用戶(hù)的請(qǐng)求信息咙咽,其中包括用戶(hù)公鑰(如果用戶(hù)端是個(gè)人使用或者測(cè)試用老玛,則公鑰一般由用戶(hù)端產(chǎn)生,如電子郵件程序或?yàn)g覽器等 或者使用第三方開(kāi)發(fā)的具有獨(dú)立CSP的智能終端如USBkey)钧敞,CA將根據(jù)用戶(hù)的請(qǐng)求信息產(chǎn)生證書(shū)蜡豹,并用自己的私鑰對(duì)證書(shū)進(jìn)行簽名。其他用戶(hù)溉苛、應(yīng)用程序或?qū)嶓w將使用CA的公鑰對(duì)證書(shū)進(jìn)行驗(yàn)證镜廉。如果一個(gè)CA系統(tǒng)是可信的,則驗(yàn)證證書(shū)的用戶(hù)可以確信愚战,他所驗(yàn)證的證書(shū)中的公鑰屬于證書(shū)所代表的那個(gè)實(shí)體娇唯。
CA 還負(fù)責(zé)維護(hù)和發(fā)布證書(shū)廢除列表CRL(又稱(chēng)為證書(shū)黑名單)齐遵。
當(dāng)一個(gè)證書(shū),特別是其中的公鑰因 為其他原因無(wú)效時(shí)(不是因?yàn)榈狡冢┧澹珻RL提供了一種通知用戶(hù)和其他應(yīng)用的中心管理方式梗摇。CA系統(tǒng)生成CRL以后,要么是放到LDAP服務(wù)器中供用戶(hù)查詢(xún) 或下載想许,要么是放置在Web服務(wù)器的合適位置伶授,以頁(yè)面超級(jí)連接的方式供用戶(hù)直接查詢(xún)或下載。(通知到PKI用戶(hù)公鑰已失效)
[圖片上傳失敗...(image-c2930d-1608002725953)]
-
安全服務(wù)器
安全服務(wù)器面向普通用戶(hù)流纹,用于提供證書(shū)申請(qǐng)谎砾、瀏覽、證書(shū)撤消列表以及證書(shū)下載等安全服務(wù)捧颅。
安全服務(wù)器與用戶(hù)的的通信采取安全信道方式(如SSL 的方式景图,不需要對(duì)用戶(hù)進(jìn)行身份認(rèn)證)。用戶(hù)首先得到安全服務(wù)器的證書(shū)(該證書(shū)由CA頒發(fā))碉哑,<u style="box-sizing: border-box;">然后用戶(hù)與服務(wù)器之間的所有通信挚币,包括用戶(hù)填寫(xiě)的申請(qǐng)信息以及 瀏覽器生成的公鑰均以安全服務(wù)器的密鑰進(jìn)行加密傳輸,只有安全服務(wù)器利用自己的私鑰解密才能得到明文</u>扣典,這樣可以防止其他人通過(guò)竊聽(tīng)得到明文妆毕。從而保證了證書(shū)申請(qǐng)和傳輸過(guò)程中的信息安全性。
-
CA 服務(wù)器
CA服務(wù)器使整個(gè)證書(shū)機(jī)構(gòu)的核心贮尖,負(fù)責(zé)證書(shū)的簽發(fā)笛粘。CA首先產(chǎn)生自身的私鑰和公鑰(密鑰長(zhǎng)度至少為1024位),然后生成數(shù)字證書(shū)湿硝,并且將數(shù)字證書(shū)傳輸給安全服務(wù)器薪前。CA還負(fù)責(zé)為操作員、安全服務(wù)器以及注冊(cè)機(jī)構(gòu)服務(wù)器生成數(shù)字證書(shū)关斜。安全服務(wù)器的數(shù)字證書(shū)和私鑰也需要傳輸給安全服務(wù)器示括。CA服務(wù)器是 整個(gè)結(jié)構(gòu)中最為重要的部分,存有CA的私鑰以及發(fā)行證書(shū)的腳本文件痢畜,出于安全的考慮垛膝,應(yīng)將CA服務(wù)器與其他服務(wù)器隔離,任何通信采用人工干預(yù)的方式丁稀,確保 認(rèn)證中心的安全吼拥。
-
注冊(cè)機(jī)構(gòu)RA
登記中心服務(wù)器面向登記中心操作員,在CA體系結(jié)構(gòu)中起承上啟下的作用线衫,一方面向CA轉(zhuǎn)發(fā)安全服務(wù)器傳輸過(guò)來(lái)的證書(shū)申請(qǐng)請(qǐng)求凿可,另一方面向LDAP服務(wù)器和安全服務(wù)器轉(zhuǎn)發(fā)CA頒發(fā)的數(shù)字證書(shū)和證書(shū)撤消列表。
-
LDAP服務(wù)器
LDAP服務(wù)器提供目錄瀏覽服務(wù)桶雀,負(fù)責(zé)將注冊(cè)機(jī)構(gòu)服務(wù)器傳輸過(guò)來(lái)的用戶(hù)信息以及數(shù)字證書(shū)加入到服務(wù)器上矿酵。這樣其他用戶(hù)通過(guò)訪(fǎng)問(wèn)LDAP服務(wù)器就能夠得到其他用戶(hù)的數(shù)字證書(shū)唬复。
數(shù)據(jù)庫(kù)服務(wù)器
數(shù)據(jù)庫(kù)服務(wù)器是認(rèn)證機(jī)構(gòu)中的核心部分矗积,用于認(rèn)證機(jī)構(gòu)中數(shù)據(jù)(如密鑰和用戶(hù)信息等)全肮、日志合統(tǒng)計(jì)信息的存儲(chǔ)和管理。
證書(shū)的申請(qǐng)和撤銷(xiāo)
證書(shū)的申請(qǐng)有兩種方式棘捣,一是在線(xiàn)申請(qǐng)辜腺,另外一個(gè)就是離線(xiàn)申請(qǐng)。在線(xiàn)申請(qǐng)就是通過(guò)瀏覽器或其他應(yīng)用系統(tǒng)通過(guò)在線(xiàn)的方式來(lái)申請(qǐng)證書(shū)乍恐,這種方式一般用于申請(qǐng)普通用戶(hù)證書(shū)或測(cè)試證書(shū)评疗。離線(xiàn)方式一般通過(guò)人工的方式直接到證書(shū)機(jī)構(gòu)證書(shū)受理點(diǎn)去辦理證書(shū)申請(qǐng)手續(xù),通過(guò)審核后獲取證書(shū)茵烈,這種方式一般用于比較重要的場(chǎng)合百匆,如服務(wù)器證書(shū)和商家證書(shū)等。下面討論的主要是在線(xiàn)申請(qǐng)方式呜投。
當(dāng)證書(shū)申請(qǐng)時(shí)加匈,用戶(hù)使用瀏覽器通過(guò)Internet訪(fǎng)問(wèn)安全服務(wù)器,下載CA的數(shù)字證書(shū)(又叫做根證書(shū))仑荐,然后注冊(cè)機(jī)構(gòu)服務(wù)器對(duì)用戶(hù)進(jìn)行身份審核雕拼,認(rèn)可后便批準(zhǔn)用戶(hù)的證書(shū)申請(qǐng),然后操作員對(duì)證書(shū)申請(qǐng)表進(jìn)行數(shù)字簽名粘招,并將申請(qǐng)及其簽名一起提交給CA服務(wù)器啥寇。
CA 操作員獲得注冊(cè)機(jī)構(gòu)服務(wù)器操作員簽發(fā)的證書(shū)申請(qǐng),發(fā)行證書(shū)或者拒絕發(fā)行證書(shū)洒扎,然后將證書(shū)通過(guò)硬拷貝的方式傳輸給注冊(cè)機(jī)構(gòu)服務(wù)器辑甜。注冊(cè)機(jī)構(gòu)服務(wù)器得到用戶(hù)的 證書(shū)以后將用戶(hù)的一些公開(kāi)信息和證書(shū)放到LDAP服務(wù)器上提供目錄瀏覽服務(wù),并且通過(guò)電子郵件的方式通知用戶(hù)從安全服務(wù)器上下載證書(shū)袍冷。用戶(hù)根據(jù)郵件的提示 到指定的網(wǎng)址下載自己的數(shù)字證書(shū)栈戳,而其他用戶(hù)可以通過(guò)LDAP服務(wù)器獲得他的公鑰數(shù)字證書(shū)。
證書(shū)申請(qǐng)的步驟如下:
- 用戶(hù)申請(qǐng)
用戶(hù)首先下載CA的證書(shū)难裆,又叫根證書(shū)子檀,然后在證書(shū)的申請(qǐng)過(guò)程中使用SSL安全方式與服務(wù)器建立連接,用戶(hù)填寫(xiě)個(gè)人信息乃戈,瀏覽器生成私鑰 和公鑰對(duì)褂痰,將私鑰保存客戶(hù)端特定文件中,并且要求用口令保護(hù)私鑰症虑,同時(shí)將公鑰和個(gè)人信息提交給安全服務(wù)器缩歪。安全服務(wù)器將用戶(hù)的申請(qǐng)信息傳送給注冊(cè)機(jī)構(gòu)服務(wù)器。
-
注冊(cè)機(jī)構(gòu)審核
用戶(hù)與注冊(cè)機(jī)構(gòu)人員聯(lián)系谍憔,證明自己的真實(shí)身份匪蝙,或者請(qǐng)求代理人與注冊(cè)機(jī)構(gòu)聯(lián)系主籍。
注冊(cè)機(jī)構(gòu)操作員利用自己的瀏覽器與注冊(cè)機(jī)構(gòu)服務(wù)器建立SSL安全通信,該 服務(wù)器需要對(duì)操作員進(jìn)行嚴(yán)格的身份認(rèn)證逛球,包括操作員的數(shù)字證書(shū)千元、IP地址,為了進(jìn)一步保證安全性颤绕,可以設(shè)置固定的訪(fǎng)問(wèn)時(shí)間幸海。操作員首先查看目前系統(tǒng)中的申 請(qǐng)人員,從列表中找出相應(yīng)的用戶(hù)奥务,點(diǎn)擊用戶(hù)名物独,核對(duì)用戶(hù)信息,并且可以進(jìn)行適當(dāng)?shù)男薷穆仍幔绻僮鲉T同意用戶(hù)申請(qǐng)證書(shū)請(qǐng)求挡篓,必須對(duì)證書(shū)申請(qǐng)信息進(jìn)行數(shù)字簽名。操作員也有權(quán)利拒絕用戶(hù)的申請(qǐng)帚称。操作員與服務(wù)器之間的所有通信都采用加密和簽名官研,具有安全性、抗否認(rèn)性世杀,保證了系統(tǒng)的安全性和有效性阀参。
- CA發(fā)行證書(shū)
注冊(cè)機(jī)構(gòu)RA通過(guò)硬拷貝的方式向CA傳輸用戶(hù)的證書(shū)申請(qǐng)與操作員的數(shù)字簽名,CA操作員查看用戶(hù)的詳細(xì)信息瞻坝,并且驗(yàn)證操作員的數(shù)字簽名蛛壳,如果簽名驗(yàn)證通 過(guò),則同意用戶(hù)的證書(shū)請(qǐng)求所刀,頒發(fā)證書(shū)衙荐。然后CA將證書(shū)輸出。如果CA操作員發(fā)現(xiàn)簽名不正確浮创,則拒絕證書(shū)申請(qǐng)忧吟, CA頒發(fā)的數(shù)字證書(shū)中包含關(guān)于用戶(hù)及CA自 身的各種信息,如:能唯一標(biāo)識(shí)用戶(hù)的姓名及其他標(biāo)識(shí)信息斩披,如個(gè)人的email地址溜族;證書(shū)持有者的公鑰。公鑰用于為證書(shū)持有者加密敏感信息垦沉、簽發(fā)個(gè)人證書(shū)的 認(rèn)證機(jī)構(gòu)的名稱(chēng)煌抒、個(gè)人證書(shū)的序列號(hào)和個(gè)人證書(shū)的有效期(證書(shū)有效起止日期)等
- 注冊(cè)機(jī)構(gòu)證書(shū)轉(zhuǎn)發(fā)
注冊(cè)機(jī)構(gòu)RA操作員從CA處得到新的證書(shū),首先將證書(shū)輸出到LDAP目錄服務(wù)器以提供目錄瀏覽服務(wù)厕倍,最后操作員向用戶(hù)發(fā)送一封電子郵件寡壮,通知用戶(hù)證書(shū)已經(jīng) 發(fā)行成功,并且把用戶(hù)的證書(shū)序列號(hào)告訴用戶(hù)到指定的網(wǎng)址去下載自己的數(shù)字證書(shū)。并且告訴用戶(hù)如何使用安全服務(wù)器上的LDAP配置况既,讓用戶(hù)修改瀏覽器的客戶(hù) 端配置文件以便訪(fǎng)問(wèn)LDAP服務(wù)器这溅,獲得他人的數(shù)字證書(shū)。
-
用戶(hù)證書(shū)獲取
用戶(hù)使用證書(shū)申請(qǐng)時(shí)的瀏覽器到指定的網(wǎng)址棒仍,鍵入自己的證書(shū)序列號(hào)悲靴,服務(wù)器要求用戶(hù)必須使用申請(qǐng)證書(shū)時(shí)的瀏覽器,因?yàn)闉g覽器需要用該證書(shū)相應(yīng)的私鑰去驗(yàn)證數(shù)字證書(shū)降狠。只有保存了相應(yīng)私鑰的瀏覽器才能成功下載用戶(hù)的數(shù)字證書(shū)对竣。
這時(shí)用戶(hù)打開(kāi)瀏覽器的安全屬性庇楞,就可以發(fā)現(xiàn)自己已經(jīng)擁有了CA頒發(fā)的數(shù)字證書(shū)榜配,可以利用該數(shù)字證書(shū)與其他人以及web服務(wù)器(擁有相同CA頒發(fā)的證書(shū))使用加密、數(shù)字簽名進(jìn)行安全通信吕晌。
認(rèn)證中心還涉及到CRL的管理蛋褥。用戶(hù)向特定的操作員(僅負(fù)責(zé)CRL的管理)發(fā)一份加密簽名的郵件,申明自己希望撤消證書(shū)睛驳。操作員打開(kāi)郵件烙心,填寫(xiě)CRL注冊(cè) 表,并且進(jìn)行數(shù)字簽名乏沸,提交給CA淫茵,CA操作員驗(yàn)證注冊(cè)機(jī)構(gòu)操作員的數(shù)字簽名,批準(zhǔn)用戶(hù)撤消證書(shū)蹬跃,并且更新CRL匙瘪,然后CA將不同格式的CRL輸出給注冊(cè) 機(jī)構(gòu),公布到安全服務(wù)器上蝶缀,這樣其他人可以通過(guò)訪(fǎng)問(wèn)服務(wù)器得到CRL丹喻。
證書(shū)撤銷(xiāo)流程步驟如下:
用戶(hù)向注冊(cè)機(jī)構(gòu)操作員CRL Manager發(fā)送一封簽名加密的郵件,聲明自己自愿撤消證書(shū)翁都。
這冊(cè)機(jī)構(gòu)同意證書(shū)撤消碍论,操作員鍵入用戶(hù)的序列號(hào),對(duì)請(qǐng)求進(jìn)行數(shù)字簽名柄慰。
CA查詢(xún)證書(shū)撤消請(qǐng)求列表鳍悠,選出其中的一個(gè),驗(yàn)證操作員的數(shù)字簽名坐搔,如果正確的話(huà)藏研,則同意用戶(hù)的證書(shū)撤消申請(qǐng),同時(shí)更新CRL列表薯蝎,然后將CRL以多種格式輸出遥倦。
注冊(cè)機(jī)構(gòu)轉(zhuǎn)發(fā)證書(shū)撤消列表。操作員導(dǎo)入CRL,以多種不同的格式將CRL公布于眾袒哥。
用戶(hù)瀏覽安全服務(wù)器缩筛,下載或?yàn)g覽CRL。
在一個(gè)PKI堡称,特別是CA中瞎抛,信息的存儲(chǔ)是一個(gè)非常核心的問(wèn)題,它包括兩個(gè)方面:
一是CA服務(wù)器利用數(shù)據(jù)庫(kù)來(lái)備份當(dāng)前密鑰和歸檔過(guò)期密鑰却紧,該數(shù)據(jù)庫(kù)需高度安全和機(jī)密桐臊,其安全等級(jí)同CA本身相同;
另外一個(gè)就是目錄服務(wù)器晓殊,用于分發(fā)證書(shū)和CRL断凶,一般采用LDAP目錄服務(wù)器。
密鑰管理
密鑰管理也是PKI(主要指CA)中的一個(gè)核心問(wèn)題巫俺,主要是指密鑰對(duì)的安全管理认烁,包括密鑰產(chǎn)生、密鑰備份介汹、密鑰恢復(fù)和密鑰更新等却嗡。
1. 密鑰產(chǎn)生 密鑰對(duì)的產(chǎn)生是證書(shū)申請(qǐng)過(guò)程中重要的一步,其中產(chǎn)生的私鑰由用戶(hù)保留嘹承,公鑰和其他信息則交于CA中心進(jìn)行簽名窗价,從而產(chǎn)生證書(shū)。根據(jù)證書(shū)類(lèi)型和應(yīng)用的不同,密鑰對(duì)的產(chǎn)生也有不同的形式和方法。對(duì)普通證書(shū)和測(cè)試證書(shū)栋荸,一般由瀏覽器或固定的終端應(yīng)用來(lái)產(chǎn)生,這樣產(chǎn)生的密鑰強(qiáng)度較小餐胀,不適合應(yīng)用于比較重要的安全網(wǎng)絡(luò)交易。而對(duì)于比較重要的證書(shū)瘤载,如商家證書(shū)和服務(wù)器證書(shū)等否灾,密鑰對(duì)一般由專(zhuān)用應(yīng)用程序或CA中心直接產(chǎn)生,這樣產(chǎn)生的密鑰強(qiáng)度大鸣奔,適合于重要的應(yīng)用場(chǎng)合墨技。 另外,根據(jù)密鑰的應(yīng)用不同挎狸,也可能會(huì)有不同的產(chǎn)生方式扣汪。比如簽名密鑰可能在客戶(hù)端或RA中心產(chǎn)生,而加密密鑰則需要在CA中心直接產(chǎn)生(一種方式)
2. 密鑰備份和恢復(fù)
在一個(gè)PKI系統(tǒng)中锨匆,維護(hù)密鑰對(duì)的備份至關(guān)重要崭别,如果沒(méi)有這種措施冬筒,當(dāng)密鑰丟失后,將意味著加密數(shù)據(jù)的完全丟失茅主,對(duì)于一些重要數(shù)據(jù)舞痰,這將是災(zāi)難性的。所以诀姚,密鑰的備份和恢復(fù)也是PKI密鑰管理中的重要一環(huán)响牛。 ? 使用PKI的企業(yè)和組織必須恩能夠得到確認(rèn):即使密鑰丟失,受密要加密保護(hù)的重要信息也必須能夠恢復(fù)赫段,并且不能讓一個(gè)獨(dú)立的個(gè)人完全控制最重要的主密鑰呀打,否則將引起嚴(yán)重后果。 ? 企業(yè)級(jí)的PKI產(chǎn)品至少應(yīng)該支持用于加密的安全密鑰的存儲(chǔ)糯笙、備份和恢復(fù)贬丛。密鑰一般用口令進(jìn)行保護(hù),而口令丟失則是管理員最常見(jiàn)的安全疏漏之一炬丸。所以瘫寝,PKI產(chǎn)品應(yīng)該能夠備份密鑰蜒蕾,即使口令丟失稠炬,它也能夠讓用戶(hù)在一定條件下恢復(fù)該密鑰,并設(shè)置新的口令咪啡。 ? 例如首启,在某些情況下用戶(hù)可能有多對(duì)密鑰,至少應(yīng)該有兩個(gè)密鑰:一個(gè)用于加密撤摸,一個(gè)用于簽名毅桃。簽名密要不需要備份,因?yàn)橛糜隍?yàn)證簽名的公鑰(或公鑰證書(shū))廣泛發(fā)布准夷,即使簽名私鑰丟失钥飞,任何用于相應(yīng)公鑰的人都可以對(duì)已簽名的文檔進(jìn)行驗(yàn)證。但PKI系統(tǒng)必須備份用于加密的密鑰對(duì)衫嵌,并允許用戶(hù)進(jìn)行恢復(fù)读宙,否則,用于解密的私鑰丟失將意味著加密數(shù)據(jù)的完全不可恢復(fù)楔绞。 ? 另外结闸,使用PKI的企業(yè)也應(yīng)該考慮所使用密鑰的生命周期,它包括密鑰和證書(shū)的有效時(shí)間酒朵,以及已撤銷(xiāo)密鑰和證書(shū)的維護(hù)時(shí)間等桦锄。
3. 密鑰更新
對(duì)每一個(gè)由CA頒發(fā)的證書(shū)都會(huì)有有效期,密鑰對(duì)生命周期的長(zhǎng)短由簽發(fā)證書(shū)的CA中心來(lái)確定蔫耽,各CA系統(tǒng)的證書(shū)有效期限有所不同结耀,一般大約為2-3年。 當(dāng)用戶(hù)的私鑰被泄漏或證書(shū)的有效期快到時(shí),用戶(hù)應(yīng)該更新私鑰图甜。這時(shí)用戶(hù)可以廢除證書(shū)香伴,產(chǎn)生新的密鑰對(duì),申請(qǐng)新的證書(shū)具则。
證書(shū)的使用
在實(shí)際應(yīng)用中即纲,為了驗(yàn)證信息的數(shù)字簽名,用戶(hù)首先必須獲取信息發(fā)送者的公鑰證書(shū)博肋,以及一些額外需要的證書(shū)(如CA證書(shū)等低斋,用于驗(yàn)證發(fā)送者證書(shū)的有效性)。
證書(shū)的獲取可以有多種方式匪凡,如發(fā)送者發(fā)送簽名信息時(shí)附加發(fā)送自己的證書(shū)膊畴,或以另外的單獨(dú)信息發(fā)送證書(shū),或者可以通過(guò)訪(fǎng)問(wèn)證書(shū)發(fā)布的目錄服務(wù)器來(lái)獲得病游,或者直接從證書(shū)相關(guān)的實(shí)體處獲得唇跨。在一個(gè)PKI體系中,可以采取某種或某幾種上述方式獲得證書(shū)衬衬。
證書(shū)的持有者可以是個(gè)人用戶(hù)买猖、企事業(yè)單位、商家滋尉、銀行等玉控。無(wú)論是哪一方,在使用證書(shū)驗(yàn)證數(shù)據(jù)時(shí)狮惜,都遵循同樣的驗(yàn)證流程高诺。一個(gè)完整的驗(yàn)證過(guò)程有以下幾步:
將客戶(hù)端發(fā)來(lái)的數(shù)據(jù)解密 (如解開(kāi)數(shù)字信封)。
將解密后的數(shù)據(jù)分解成原始數(shù)據(jù)碾篡,簽名數(shù)據(jù)和客戶(hù)證書(shū)三部分虱而。
用CA根證書(shū)驗(yàn)證客戶(hù)證書(shū)的簽名完整性。
檢查客戶(hù)證書(shū)是否有效 (當(dāng)前時(shí)間在證書(shū)結(jié)構(gòu)中的所定義的有效期內(nèi))开泽。
檢查客戶(hù)證書(shū)是否作廢 (OCSP方式或CRL方式)牡拇。
驗(yàn)證客戶(hù)證書(shū)結(jié)構(gòu)中的證書(shū)用途。
客戶(hù)證書(shū)驗(yàn)證原始數(shù)據(jù)的簽名完整性眼姐。
PCKS----公開(kāi)密鑰密碼學(xué)標(biāo)準(zhǔn)
CA中心普遍采用的規(guī)范是X.509系列和PKCS系列
PKCS是由美國(guó)RSA安全公司及其合作伙伴指定的一組公鑰密碼學(xué)標(biāo)準(zhǔn)诅迷,其中包括證書(shū)申請(qǐng)、證書(shū)更新众旗、證書(shū)作廢列表發(fā)布罢杉、擴(kuò)展證書(shū)內(nèi)容及數(shù)字簽名、數(shù)字信封的格式等方面的一系列相關(guān)協(xié)議贡歧。到1999年底滩租,PKCS已經(jīng)公布了以下標(biāo)準(zhǔn):
PKCS#1:RSA加密標(biāo)準(zhǔn)或規(guī)范赋秀,定義RSA公開(kāi)密鑰算法如何進(jìn)行加密和簽名,主要用于組織PKCS#7中所描述的數(shù)字簽名和數(shù)字信封律想。
該標(biāo)準(zhǔn)類(lèi)似于國(guó)密算法體系中的《GMT 0009-2012 SM2密碼算法使用規(guī)范》,該國(guó)密規(guī)范主要內(nèi)容有:
-
規(guī)范了sm2算法的使用方法
密鑰結(jié)構(gòu)
密鑰產(chǎn)生
簽名運(yùn)算
加密運(yùn)算
密鑰協(xié)商
規(guī)范了私鑰的保護(hù)結(jié)構(gòu)(用于加密密鑰)
規(guī)范了用戶(hù)ID的標(biāo)稱(chēng)值猎莲。
-
密鑰結(jié)構(gòu)
密鑰產(chǎn)生
簽名運(yùn)算
加密運(yùn)算
密鑰協(xié)商
PKCS#3:定義Diffie-Hellman密鑰交換協(xié)議;
PKCS#5:描述一種利用從口令派生出來(lái)的安全密鑰加密字符串的方法技即。使用MD2或MD5從口令中派生密鑰著洼,并采用DES-CBC模式加密。主要用于加密從一個(gè)計(jì)算機(jī)傳送到另一個(gè)計(jì)算機(jī)的私人密鑰而叼,不能用于加密消息身笤。
PKCS#6:描述了公鑰證書(shū)的標(biāo)準(zhǔn)語(yǔ)法,主要描述X509證書(shū)的擴(kuò)展格式
PKCS#7:定義一種通用的消息語(yǔ)法葵陵,包括數(shù)字簽名和加密等用于增強(qiáng)的加密機(jī)制液荸,PKCS#7與PEM兼容,所以不需要其他密碼操作脱篙,就可以將加密的消息轉(zhuǎn)換成PEM消息娇钱。
該標(biāo)準(zhǔn)類(lèi)似于國(guó)密體系中的《GMT 0010-2012 SM2密碼算法加密簽名消息語(yǔ)法規(guī)范》,這個(gè)國(guó)密標(biāo)準(zhǔn)的主要內(nèi)容:
-
規(guī)范了加密簽名消息語(yǔ)法
簽名消息
數(shù)字信封消息
帶簽名的數(shù)字信封消息
加密消息
密鑰協(xié)商交換消息
規(guī)范了公鑰和私鑰的語(yǔ)法
PKCS#8:描述私有密鑰信息格式绊困,該信息包括公開(kāi)密鑰算法的私鑰密鑰及可選的屬性集等文搂;
PKCS#9:定義一些用于PKCS#6證書(shū)擴(kuò)展、PKCS#7數(shù)字簽名和PKCS#8私鑰加密信息的屬性類(lèi)型考抄;
PKCS#10:描述證書(shū)請(qǐng)求語(yǔ)法细疚;
PKCS#11:稱(chēng)為Cyptoki,定義了一套獨(dú)立于技術(shù)的程序設(shè)計(jì)接口,用于智能卡和PCMCIA卡之類(lèi)的加密設(shè)備川梅;
PKCS#12:描述個(gè)人信息交換語(yǔ)法標(biāo)準(zhǔn)。描述了將用戶(hù)公鑰然遏、私鑰證書(shū)和其他相關(guān)信息打包的語(yǔ)法贫途;
PKCS#13:橢圓曲線(xiàn)密碼體制標(biāo)準(zhǔn)
PKCS#14:偽隨機(jī)數(shù)形成標(biāo)準(zhǔn)
PKCS#15:密碼令牌信息格式標(biāo)準(zhǔn)