相關(guān)概念
- PKI:Public Key Infrastructure崔慧,公鑰基礎(chǔ)設(shè)施充择。
- CA:Certificate Of Authority,認(rèn)證中心。
- 數(shù)字證書(shū):提供了一種發(fā)布公鑰的簡(jiǎn)便途徑边锁;
一個(gè)數(shù)字證書(shū)包括:擁有者身份信息、公鑰波岛、CA數(shù)字簽名茅坛、有效期等其他信息。 - 數(shù)字簽名:用來(lái)確認(rèn)信息發(fā)送者的身份则拷,保證信息的完整性和抗否認(rèn)性贡蓖。
數(shù)字簽名
- 數(shù)字簽名的生成:對(duì)于要傳輸?shù)南⒃氖褂孟⒄惴ǎ∕D5、SHA)生成消息摘要煌茬,發(fā)送方使用自己的私鑰對(duì)摘要進(jìn)行加密斥铺,生成數(shù)字簽名。
- 數(shù)字簽名的驗(yàn)證:數(shù)字簽名同消息一通傳輸給接收方坛善,接收方對(duì)簽名使用發(fā)送方的公鑰解密還原摘要晾蜘,并對(duì)得到的原文進(jìn)行hash計(jì)算出消息摘要,比對(duì)兩份消息摘要是否相同眠屎,可以保證消息的完整性和抗否認(rèn)性剔交。
用發(fā)送發(fā)私鑰生成數(shù)字簽名、用發(fā)送方公鑰解密改衩,可以證明消息確實(shí)是由公鑰擁有者發(fā)出的岖常。
兩份摘要的比對(duì)結(jié)果,可以證明消息在傳輸?shù)倪^(guò)程中是否被改動(dòng)葫督。
數(shù)字證書(shū)
數(shù)字簽名要發(fā)揮作用竭鞍,首先需要接收方獲取發(fā)送方的公鑰。如何證明獲取的公鑰確實(shí)是發(fā)送方的公鑰而不是假冒的呢候衍?數(shù)字證書(shū)提供了一種發(fā)布公鑰的簡(jiǎn)便方法笼蛛。
簡(jiǎn)單地來(lái)說(shuō)滨砍,把上面的原文換成公鑰、身份信息妖异、有效期等其他信息惋戏,就是數(shù)字證書(shū)的生成和驗(yàn)證過(guò)程。
- 數(shù)字證書(shū)的生成:CA收到數(shù)字證書(shū)申請(qǐng)并認(rèn)證申請(qǐng)者的真實(shí)身份后他膳,把申請(qǐng)者的公鑰响逢、身份信息、數(shù)字證書(shū)的有效期等信息作為消息原文棕孙,進(jìn)行hash生成摘要舔亭,并用CA的私鑰加密進(jìn)行簽名些膨;數(shù)字簽名與證書(shū)擁有者的公鑰、身份信息钦铺、證書(shū)有效期等其他信息共同組成數(shù)字證書(shū)订雾。
- 數(shù)字證書(shū)的驗(yàn)證:數(shù)字證書(shū)生成后,經(jīng)歷圖2中3矛洞、4洼哎、5的傳輸過(guò)程,來(lái)到接收方沼本。接收方收到消息證書(shū)后噩峦,使用CA公鑰對(duì)數(shù)字簽名解密生成消息摘要,對(duì)證書(shū)內(nèi)容進(jìn)行hash生成摘要抽兆,兩份摘要進(jìn)行比對(duì)可證明證書(shū)內(nèi)容的完整性與真實(shí)性识补。
使用CA私鑰進(jìn)行簽名和解密,可以證明證書(shū)確實(shí)是由CA發(fā)布的郊丛;
兩份摘要的對(duì)比結(jié)果李请,可以證明證書(shū)內(nèi)容是否在傳輸過(guò)程中被改動(dòng)瞧筛;
如果消息原文中的公鑰和身份信息是CA的厉熟,則是CA自簽名的過(guò)程。
通信過(guò)程
數(shù)字證書(shū)提供了一種發(fā)布公鑰的簡(jiǎn)便途徑较幌,大家通過(guò)向CA申請(qǐng)認(rèn)證發(fā)布自己的公鑰揍瑟,通過(guò)向CA驗(yàn)證來(lái)確認(rèn)自己獲得了別人的公鑰。下圖展示了通信雙方互相獲得公鑰以后的通信過(guò)程乍炉。
- 發(fā)送方對(duì)要傳輸消息原文進(jìn)行hash绢片,生成消息摘要,用發(fā)送方的私鑰生成數(shù)字簽名岛琼;
- 隨機(jī)生成對(duì)稱秘鑰底循,對(duì)原文加密,生成密文槐瑞;
- 用接收方公鑰加密對(duì)稱秘鑰熙涤;
- 將加密后的對(duì)稱秘鑰、數(shù)字簽名與密文一通發(fā)送困檩;
- 接收方收到后祠挫,用自己的私鑰解密對(duì)稱秘鑰;
- 用對(duì)稱秘鑰解密密文悼沿,得到原文等舔;
- 對(duì)原文hash得到摘要,用發(fā)送方的公鑰解密簽名得到摘要糟趾,對(duì)方兩份摘要慌植。
非對(duì)稱加密安全性高甚牲,但計(jì)算量大效率低,因此使用對(duì)稱秘鑰對(duì)通信的主要內(nèi)容進(jìn)行加密蝶柿;對(duì)稱秘鑰每次使用隨機(jī)生成鳖藕,用完即丟棄,降低風(fēng)險(xiǎn)只锭;
用接收方公鑰加密對(duì)稱秘鑰著恩,保證了只有接收方才能對(duì)密文進(jìn)行解密;
用發(fā)送發(fā)私鑰進(jìn)行簽名蜻展,使得接收方可以驗(yàn)證消息的發(fā)送方和消息是否被修改過(guò)喉誊,保證了信息的完整性和抗否認(rèn)性。
PKI/CA架構(gòu)
完整的PKI/CA系統(tǒng)如下部分:
- 安全服務(wù)器:安全服務(wù)器面向普通用戶纵顾,用于提供證書(shū)申請(qǐng)伍茄、瀏覽、證書(shū)撤銷列表施逾、證書(shū)下載等安全服務(wù)敷矫;用戶需要首先得到安全服務(wù)器的證書(shū)(該證書(shū)由CA頒發(fā));
- 注冊(cè)機(jī)構(gòu)RA:在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ū)撤銷列表(CRL)。
- LDAP服務(wù)器:Lightweight Directory Access Protocol(輕量目錄訪問(wèn)協(xié)議)蠕搜,提供目錄瀏覽服務(wù)怎茫,負(fù)責(zé)將注冊(cè)機(jī)構(gòu)服務(wù)器RA傳輸過(guò)來(lái)的用戶信息以及數(shù)字證書(shū)加入到服務(wù)器上。用戶通過(guò)訪問(wèn)LDAP服務(wù)器就能夠得到其他用戶的數(shù)字證書(shū)妓灌。
- CA服務(wù)器:整個(gè)證書(shū)機(jī)構(gòu)的核心轨蛤,負(fù)責(zé)證書(shū)的簽發(fā)茫舶。CA首先 產(chǎn)生自身的私鑰和公鑰戈二,然后生成數(shù)字證書(shū),并且將數(shù)字正常傳輸給安全服務(wù)器穴张。CA還負(fù)責(zé)為安全服務(wù)器掉伏、RA服務(wù)器生成數(shù)字證書(shū)缝呕。
- 數(shù)據(jù)庫(kù)服務(wù)器:CA中的核心部分,用于CA中數(shù)據(jù)(如密鑰和用戶信息等)岖免、日志岳颇、統(tǒng)計(jì)信息的存儲(chǔ)和管理。
證書(shū)申請(qǐng)過(guò)程
- 用戶申請(qǐng):用戶獲取CA的數(shù)字證書(shū)(根證書(shū))颅湘,與安全服務(wù)器建立連接话侧;生成自己的公鑰和私鑰,將公鑰和自己的身份信息提交給安全服務(wù)器闯参,安全服務(wù)器將用戶的申請(qǐng)信息傳送給RA服務(wù)器瞻鹏。
- RA審核:RA收到用戶的申請(qǐng)悲立,用戶向RA證明自己的身份,RA進(jìn)行核對(duì)新博。如果RA同意用戶申請(qǐng)證書(shū)的請(qǐng)求薪夕,則對(duì)證書(shū)申請(qǐng)信息做數(shù)字簽名;否則拒絕用戶的申請(qǐng)赫悄。
- CA發(fā)行證書(shū):RA將用戶申請(qǐng)和RA簽名傳輸給CA原献,CA對(duì)RA數(shù)字簽名做認(rèn)證,如果驗(yàn)證通過(guò)埂淮,則同意用戶請(qǐng)求姑隅,頒發(fā)證書(shū),然后將證書(shū)輸出倔撞。如果驗(yàn)證不通過(guò)讲仰,則拒絕證書(shū)申請(qǐng)。
- RA轉(zhuǎn)發(fā)證書(shū):RA從CA得到新的證書(shū)痪蝇,首先將證書(shū)輸出到LDAP服務(wù)器以提供目錄瀏覽鄙陡,再通知用戶證書(shū)發(fā)行成功,告知證書(shū)序列號(hào)躏啰,到指定的網(wǎng)址去下載證書(shū)趁矾。
- 用戶證書(shū)獲取:用戶使用證書(shū)序列號(hào)去指定網(wǎng)址下載自己的數(shù)字證書(shū)丙唧,只有持有與申請(qǐng)時(shí)提交的公鑰配對(duì)的私鑰才能下載成功愈魏。
證書(shū)撤銷過(guò)程
- 用戶申請(qǐng):用戶向RA發(fā)送一封簽名加密郵件觅玻,申請(qǐng)撤銷證書(shū)想际。
- RA審核:注冊(cè)機(jī)構(gòu)同意證書(shū)撤銷,并對(duì)申請(qǐng)簽名溪厘。
- CA更新CRL:CA驗(yàn)證證書(shū)撤銷請(qǐng)求的RA簽名胡本,如果正確,則同意申請(qǐng)畸悬,并更新CRL侧甫,并輸出。
- RA轉(zhuǎn)發(fā)CRL:注冊(cè)中心收到CRL蹋宦,以多種方式將CRL公布(包括LDAP服務(wù)器)披粟。
- 用戶告知:用戶訪問(wèn)LDAP服務(wù)器,下載或?yàn)g覽CRL冷冗。
證書(shū)的管理
認(rèn)證中心CA負(fù)責(zé)維護(hù)和發(fā)布證書(shū)廢除列表CRL(certificate revocation lists守屉,又稱為證書(shū)黑名單)。
當(dāng)一個(gè)證書(shū)蒿辙,特別是其中的公鑰因?yàn)槠渌驘o(wú)效時(shí)(不是因?yàn)榈狡冢┠捶海珻RL提供了一種通知用戶和其他應(yīng)用的中心管理方式滨巴。CA系統(tǒng)生成CRL以后,放到LDAP服務(wù)器中或Web服務(wù)器的合適位置俺叭,供用戶查詢或下載恭取。