HTTP 公鑰基礎(chǔ)設(shè)施(PKI)
公開(kāi)密鑰基礎(chǔ)建設(shè) PKI(Public Key Infrastructure)是一組由硬件、軟件、參與者、管理政策與流程組成的基礎(chǔ)設(shè)施,是為了保障網(wǎng)絡(luò)系統(tǒng)的安全而產(chǎn)生的機(jī)構(gòu)。PKI 里面包含了多個(gè)職能機(jī)構(gòu),其中 CA 是證書(shū)機(jī)構(gòu),負(fù)責(zé)管理證書(shū)的整個(gè)生命周期,它是 PKI 的核心組成。在當(dāng)前在線交易盛行的今天,網(wǎng)絡(luò)安全尤為重要。
1. 簡(jiǎn)介
安全密鑰交換與非對(duì)稱(chēng)密鑰算法,推動(dòng)了網(wǎng)絡(luò)安全通信的發(fā)展,在認(rèn)證與安全訴求越來(lái)越迫切的環(huán)境下,一些廠商嗅探到市場(chǎng)的機(jī)遇,逐漸推出了相應(yīng)的認(rèn)證服務(wù)。
信息的安全關(guān)系到國(guó)家安全和經(jīng)濟(jì)利益,因此我國(guó)這幾年也在積極探索網(wǎng)絡(luò)安全的標(biāo)準(zhǔn)化建設(shè),這些標(biāo)準(zhǔn)并不僅僅局限于證書(shū)的簽名算法,也包括了物理廠房的建設(shè),人員的管理流程規(guī)則制度。當(dāng)然我們的網(wǎng)絡(luò)安全建設(shè)一方面要保證自己足夠安全,另一方面也要對(duì)接國(guó)際,畢竟今天的網(wǎng)絡(luò)今天的經(jīng)濟(jì)都是全世界共同的。
2. PKI 組成
2.1 證書(shū)管理中心
面向用戶,管理證書(shū)的申請(qǐng),撤銷(xiāo),瀏覽,下載。
2.2 Registration Authority(RA)
證書(shū)注冊(cè)機(jī)構(gòu),用戶提出信息申請(qǐng)的請(qǐng)求,RA 校驗(yàn)用戶身份信息的準(zhǔn)確性,審查用戶的申請(qǐng)資格。如果審核都通過(guò)會(huì)幫忙向 CA 提出證書(shū)申請(qǐng)。
2.3 Certificate Authority(CA)
證書(shū)頒發(fā)機(jī)構(gòu) CA 是 PKI 的基礎(chǔ),它管理著證書(shū)的整個(gè)生命周期,其作用包括:發(fā)放證書(shū),規(guī)定證書(shū)有效期,廢棄不良信用證書(shū)。
2.4 證書(shū)存儲(chǔ)
證書(shū)、密鑰、CRL 等信息進(jìn)行 存儲(chǔ)和管理。
3. 平臺(tái)結(jié)構(gòu)
3.1 證書(shū)申請(qǐng)步驟
- 用戶通過(guò)非對(duì)稱(chēng)加密算法生成一個(gè)自己的公鑰,然后將公鑰和其他用戶信息提交給證書(shū)管理平臺(tái),告訴他要申請(qǐng)證書(shū)。
- 證書(shū)管理將請(qǐng)求轉(zhuǎn)發(fā)給 VA ,進(jìn)行身份的審核資質(zhì)的認(rèn)證。
- 審核通過(guò)將證書(shū)申請(qǐng)發(fā)送給 CA,CA 生成包含關(guān)于用戶及 CA 自身的各種信息的證書(shū)。
- 用戶從管理平臺(tái)下載證書(shū)。
4. 證書(shū)如何發(fā)揮作用
了解完證書(shū)是如何獲取的,下面我們要了解下辛辛苦苦得到的這本證書(shū)是如何起到身份認(rèn)證和保證信息完整性的功效。
4.1 重要項(xiàng)說(shuō)明
-
用戶申請(qǐng)證書(shū)前生成了自己的一對(duì)公鑰 clientPub ,私鑰 clientPri,證書(shū)申請(qǐng)的提交內(nèi)容中需要包含 clientPub。
-
CA 機(jī)構(gòu)也有自己的 公鑰 caPub ,私鑰 caPri ,用來(lái)生成最終的 CA 證書(shū)。
-
數(shù)字簽名:數(shù)字簽名主要是依托了 Hash 算法的單向性和非對(duì)稱(chēng)加密算法的特性來(lái)實(shí)現(xiàn)。將傳輸?shù)膬?nèi)容(Http 的接口參數(shù))用 Hash算法(如 MD5)生成一個(gè)很難反向逆推的摘要(就是一串字符串)。再繼續(xù)把摘要用非對(duì)稱(chēng)算法的私鑰加密生成簽名,后面把簽名和信息體一起發(fā)送給接收者。接收著先用非對(duì)稱(chēng)的公鑰對(duì)簽名進(jìn)行解密得到摘要信息,然后采用發(fā)送著相同的 Hash 算法,把收到的信息(請(qǐng)求參數(shù))進(jìn)行 Hash 計(jì)算得到摘要2,將自己生成的摘要和發(fā)送過(guò)來(lái)的摘要相比較,一致就可以證明信息發(fā)送者的身份和內(nèi)容都是正確的,沒(méi)有被偽造和篡改。
-
數(shù)字證書(shū):數(shù)字簽名能成功,一方面是借助 Hash 算法和 非對(duì)稱(chēng)算法 的特性,另一方面取決于公鑰的可靠性。就像大街上有人告訴你你家的保險(xiǎn)箱密碼你可能不信,但是如果是你爸告訴你的,這個(gè)消息的可靠性就高很多了。所以數(shù)字證書(shū)是一個(gè)權(quán)威機(jī)構(gòu)頒發(fā)給你的,證書(shū)的內(nèi)容包含了:申請(qǐng)者的身份信息,申請(qǐng)者自己的公鑰,證書(shū)的有效期等內(nèi)容。從證書(shū)中取到公鑰,接下去就利用上面 數(shù)字簽名 的流程進(jìn)行消息內(nèi)容的驗(yàn)證就好了。
當(dāng)然證書(shū)的有效性也是需要借助簽名算法來(lái)驗(yàn)證的,權(quán)威機(jī)構(gòu)的 CA 公鑰大家都是知道的,瀏覽器里面也都有內(nèi)置。相當(dāng)于我要拿 CA 的公鑰借助簽名算法計(jì)算證書(shū)的有效性,之后獲取到用戶端的公鑰,再拿這個(gè)公鑰同時(shí)借助簽名算法來(lái)驗(yàn)證信息體。
4.2 證書(shū)內(nèi)容
下面較詳細(xì)的列舉證書(shū)的基本字段,但不是全部。
- 證書(shū)版本號(hào)
- 簽名算法
- 頒發(fā)者數(shù)字簽名信息
- 證書(shū)有限期
- 申請(qǐng)人的公鑰
- CRL信息:(certificate revocation list)證書(shū)吊銷(xiāo)列表查看地址
- 證書(shū)頒發(fā)的機(jī)構(gòu)信息
4.3 工作流程
5. CA 與 區(qū)塊鏈
CA 證書(shū)的可靠性來(lái)自 PKI 機(jī)構(gòu)的權(quán)威和安全,是一種中心化的機(jī)構(gòu)。區(qū)塊鏈?zhǔn)且环N去中心化的結(jié)構(gòu),它的可靠性是基于共識(shí)機(jī)制,數(shù)學(xué)算法,分布式原理。兩者相比較,區(qū)塊鏈會(huì)顯得更加的客觀可靠。區(qū)塊鏈?zhǔn)且环N新的革命技術(shù),但它更傾向保證記錄的不可磨滅性,CA 保證的是權(quán)威機(jī)構(gòu)對(duì)身份的認(rèn)證,兩者目前不能說(shuō)誰(shuí)絕對(duì)的優(yōu)勢(shì),可以在某些場(chǎng)合互相補(bǔ)充。
6. 小結(jié)
認(rèn)證的核心是數(shù)字簽名,數(shù)字簽名中公鑰不可靠需要借助 CA 認(rèn)證,同時(shí)簽名算法的實(shí)現(xiàn)主要是借助 Hash 算法(又稱(chēng)散列算法)的單向不可逆,和 非對(duì)稱(chēng)密碼學(xué)算法。證書(shū)的頒發(fā)要有權(quán)威的頒發(fā)機(jī)構(gòu),這個(gè)機(jī)構(gòu)中核心是 CA 證書(shū)制作機(jī)構(gòu),其他職能機(jī)構(gòu)也是圍繞證書(shū)服務(wù)的,所有機(jī)構(gòu)組成 PKI。