Public Key Infrastructure(PKI),中文叫做公開密鑰基礎(chǔ)設(shè)施,也就是利用公開密鑰機(jī)制建立起來的基礎(chǔ)設(shè)施。但是如果這么解釋起來,到底是個什么東西,大家想必是沒辦法理解的。
現(xiàn)在大家的很多重要活動都是通過網(wǎng)絡(luò)進(jìn)行的,那么與之俱來的安全問題就顯得非常重要。同時很多安全保障機(jī)制都是基于PKI的,如果你因?yàn)楦鞣N原因(考試?提案?好奇?)想知道各種PKI是什么。那么通過這篇文章,絕對讓你5分鐘知道什么是PKI。
PKI不好理解的原因是,這個概念包括了很多不同的技術(shù)和知識,同時又因?yàn)檫@個概念很龐大,讓人感覺無從下手。但是,這個概念其實(shí)沒有看起來那么復(fù)雜,讓我們開始說明吧!
第1分鐘 - PKI的核心是身份證明書的發(fā)行
PKI的主要目的是用來發(fā)行“身份證明書”,網(wǎng)絡(luò)上因?yàn)榇蠹也荒芤娒?,所以偽造身份是非常容易的事情。因?yàn)橐诰W(wǎng)絡(luò)上驗(yàn)明正身,所以這個網(wǎng)絡(luò)身份證明書就變得很重要了。
相互通信的時候,如果能相互確認(rèn)身份證明書,那么我們就知道自己是在跟對的人通信。

但是,自己做的身份證明書是不能拿來作為證明的,就像生活中,如果公民身份證可以私人合法制作的話,那么身份證也就沒啥可信度了。網(wǎng)絡(luò)世界中,我們需要一個信得過的發(fā)證機(jī)關(guān)來發(fā)行身份證明書,同時自己要好好保管自己的身份證明書,就像派出所給你發(fā)了公民身份證,自己要好好保管一樣。
PKI的世界里,這個身份證明書,被叫做“證明書”。發(fā)行“證明書”的機(jī)關(guān)叫做“認(rèn)證機(jī)關(guān)”。還有一個就是統(tǒng)一管理證明書的證書“檔案庫”。這三個東西加起來,就是PKI的主要構(gòu)成要素。
第2分鐘 - 構(gòu)成PKI的要素只有三個
就像之前提到的,一般來說,構(gòu)成PKI的主要要素就是下面三個概念
證明書
認(rèn)證機(jī)關(guān)
證書庫
說到底,PKI指的是證明書的制作和分發(fā)的一種機(jī)制。在這個機(jī)制的保障前提下,進(jìn)行可信賴的網(wǎng)絡(luò)通信。即安全的網(wǎng)路通信保障機(jī)制。

實(shí)際上,證明書是被存放在硬盤或者IC卡里面的。證明書的文件構(gòu)造是一種叫做 X.509 的協(xié)議規(guī)定的。另一方面,認(rèn)證機(jī)關(guān)也其實(shí)就是一個網(wǎng)絡(luò)應(yīng)用程序。
證書庫因?yàn)槟承┰颍鋵?shí)也就是文件系統(tǒng)而已,在網(wǎng)絡(luò)上將證書存放在一起。這些東西,可以通過下載來獲取?;蛘撸?yàn)槟承┰?,證書直接分發(fā),從而省去了證書庫這個環(huán)節(jié)。
第3分鐘 - 證明書里面的密鑰
一旦利用了證明書確認(rèn)了身份的同時,通信的加密也就可以實(shí)現(xiàn)了。為什么呢?證明書里面包含了用來加密的密鑰。
比如說,你要和一個自稱比爾的男人通信。這個自稱比爾的男人,會在通信的最開始,通過網(wǎng)絡(luò)將證明書發(fā)給你,那么通過這個證明書,就證實(shí)了他就是比爾。
然后,你用這個“證明書中的密鑰”,將你要發(fā)送給比爾的內(nèi)容進(jìn)行加密,然后發(fā)送給比爾。
用“證明書中的密鑰”加密過的內(nèi)容,只能用比爾自己才有的另一個“私人的密鑰”才能解密。這樣的話,如果你發(fā)送給比爾的內(nèi)容被他人竊取的話,他人也無法解密。

只要比爾自己好好保管好自己才有的“私人的密鑰”,那么如果有人拿著比爾的“證明書中的密鑰”想要胡作非為的話,那就是不可能的。因?yàn)橛谩白C明書中的密鑰”加密過的內(nèi)容,只有比爾自己才有的“私人的密鑰”才能解密。
所以這么一來,PKI提供的證明書可以用來 身份確認(rèn) 和 通信加密。同時實(shí)現(xiàn)了這兩個重要的功能。
第4分鐘 - 什么是“公開密鑰”,什么是“私有密鑰”
對于比爾來說,只要保證本人的那個“私人的密鑰”不被盜走,包含在“證明書里的密鑰”給多少人都沒有關(guān)系。也就是說,想跟比爾通信的人,必須要有比爾的證明書,要用比爾“證明書里的密鑰”對通信內(nèi)容進(jìn)行加密。為了能讓其他人可以方便的獲取比爾的證明書,證書庫就顯得有必要了。
在PKI機(jī)制中,放在“證明書里面的密鑰”可以被任意自由分發(fā),這里的“證明書里的密鑰”被叫做“公開密鑰(Public Key)”。與此相對,本人保管的那個“私人的密鑰”就要做“私有密鑰(Private Key)”。

就像前文提到的,公開密鑰是放在證明書里面的,所有用什么樣的方式去分發(fā)證明書都沒有關(guān)系。放到U盤里給別人,或者放到網(wǎng)上讓人任意下載,或者用郵件發(fā)送,都是可以的。
第5分鐘 - “拿什么去信任你?我的證明書”
先前說到,用包含在證明書里的公開密鑰去給通信內(nèi)容加密,這個過程大家已經(jīng)知道。但是PKI提供的證明書真的可以被信任嗎?說到底,證明書也就是普通的文件而已。不像貨幣那樣,本身有著特殊的材質(zhì)或者物理上的防偽措施。
這么想是完全對的,因?yàn)閷?shí)際上,認(rèn)證機(jī)關(guān)所用的證書生成器說到底也就是一個軟件而已,如果搞到這個軟件,誰都可以發(fā)行證明書。所以說,在技術(shù)上,偽造證明書是非常簡單的。所謂假的證明書,比如說有一個所謂的“比爾的證明書”,但是里面含有的公開密鑰是史提芬的公開密鑰。那么,別人發(fā)給比爾的信息,史蒂芬可以解密,反而比爾自己不能解密。
這樣看來,這個認(rèn)證機(jī)關(guān)就至關(guān)重要了,認(rèn)證機(jī)關(guān)的可信度,直接與證書的可信度掛鉤,也就是與整個PKI機(jī)制的可信度息息相關(guān)。

關(guān)于認(rèn)證機(jī)關(guān)的權(quán)威性和可信度的問題,其實(shí)是一個社會基礎(chǔ)設(shè)施建設(shè)的話題了。
在很多國家認(rèn)證機(jī)關(guān)都是由政府在主導(dǎo)建設(shè),常常被視作一個社會性基礎(chǔ)設(shè)施的一個環(huán)節(jié)。如同建設(shè)各種社會機(jī)構(gòu),比如醫(yī)院,銀行,學(xué)校等等。
(譯者案:日本關(guān)于這些基礎(chǔ)概念的文章都寫的非常通俗易懂,如何去讓小白都可以去理解一個非常復(fù)雜的概念,這是日本人寫技術(shù)文章特別專注的,很值得大家學(xué)習(xí), 雖然小日本可恨,哈哈?。?/p>