呂凌浩
在X.509標準中,PKI(Public Key Infrastructure)的定義是支持公鑰管理并能支持加密、認證、完整性和不可否認服務(wù)的基礎(chǔ)設(shè)施。簡單來說,PKI就是一種使用公鑰密碼理論和技術(shù)而建立的在信息安全保護領(lǐng)域普遍適用的系統(tǒng)或平臺,為各種網(wǎng)絡(luò)應(yīng)用提供必要的安全服務(wù)。一個比較典型的PKI系統(tǒng)包括證書機構(gòu)CA、PKI策略、數(shù)字證書庫、證書撤銷系統(tǒng)和PKI應(yīng)用接口等。PKI是目前網(wǎng)絡(luò)安全建設(shè)的基礎(chǔ)與核心,是各類信息服務(wù)能夠安全實施的基本保障,因此,對PKI的研究和開發(fā)是目前信息安全領(lǐng)域的熱點。
區(qū)塊鏈技術(shù)是利用塊鏈式數(shù)據(jù)結(jié)構(gòu)來驗證與存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計算范式。作為一項新興的技術(shù),區(qū)塊鏈定義了一種全新的網(wǎng)絡(luò)互信方式,具備去中心化、分布式計算、可編程及安全可信等特點,過程高度透明,數(shù)據(jù)高度安全,凡是需要公平公開并且互相信任的領(lǐng)域,都可以應(yīng)用區(qū)塊鏈技術(shù)。Lux Research于2018年12月發(fā)布的《2019年的19項關(guān)鍵技術(shù)》報告顯示,區(qū)塊鏈是即將改變世界經(jīng)濟,并在未來改變?nèi)藗兩罘绞降?9項關(guān)鍵技術(shù)之一。
一、PKI存在問題
隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)體量將會呈現(xiàn)爆炸性上升的趨勢,社會對信息安全服務(wù)的效率和多樣性需求變得越來越強,人與人之間的信任關(guān)系越來越復(fù)雜易變,現(xiàn)有的PKI系統(tǒng)對于信息的保護和信任關(guān)系的建立,已經(jīng)不值得完全信賴。傳統(tǒng)PKI技術(shù)在具體應(yīng)用時存在以下問題:
(一)信任錨點問題:根CA是信任的起點,必須保證其具有極高的信譽。但如何能保證CA是絕對可信的?有人提出可以把政府或國家機關(guān)作為根CA,以國家信用來擔(dān)保。然而在某些情況下,國家也變得不再可信。據(jù)谷歌官方安全博客報道,2013年12月7日,他們發(fā)現(xiàn)一個與法國信息系統(tǒng)安全局(ANSSI)有關(guān)系的中級CA發(fā)行商向多個Google域名發(fā)行了偽造的CA證書。這是全球首例曝光的國家級偽造CA證書劫持加密通訊事件,在網(wǎng)絡(luò)安全行業(yè)影響十分惡劣。
(二)中心失效問題:作為系統(tǒng)核心的根CA對于黑客來說是極其明顯的攻擊目標,攻擊成本相對較低而收益卻非常大。根CA一旦被攻陷,該CA給其他用戶簽發(fā)的證書以及CA給自己簽發(fā)的根證書都將失去作用。
(三)性能瓶頸問題:PKI系統(tǒng)的核心是CA,它所做的工作包括證書發(fā)放、證書更新、證書撤銷、證書驗證等,任務(wù)繁重且無法被代理。這很容易使CA成為整個系統(tǒng)的性能短板,產(chǎn)生瓶頸問題。
(四)證書配置效率問題:用戶在配置證書時,要首先向CA申請證書,CA簽發(fā)證書后,用戶需要將簽發(fā)的證書安裝在個人的終端上。在一些需要批量操作的場合例如終端設(shè)備的生產(chǎn)線上,由于私鑰的私密性和唯一性,必須一個一個地配置安裝證書,這樣會浪費大量的時間和精力。
(五)樹狀結(jié)構(gòu)問題:CA證書體系是一個層次分明的樹狀結(jié)構(gòu)。上級CA在多數(shù)情況下以靜態(tài)的方式使用自己的私鑰給下級節(jié)點簽發(fā)證書,而下級節(jié)點卻很難證實它的上級是否可信。不僅如此,上級CA對自己的簽名私鑰的保護力度在很大程度上決定了下層所有節(jié)點的安全程度。因此,受到這種建立信任關(guān)系的方式的影響,為保證系統(tǒng)的安全可信,各級CA對其組織和人員的管理維護成本變得極其高昂。
二、基于區(qū)塊鏈的證書處理方式
區(qū)塊鏈技術(shù)采用了分布式存儲計算、共識機制等方法,提供了一種全新的建立信任的方案,已被應(yīng)用于各類業(yè)務(wù)場景,如跨境支付、保險理賠、慈善公益等。目前已有EMCSSL、CertCoin等基于區(qū)塊鏈的PKI技術(shù)應(yīng)用可以實現(xiàn)去中心化的認證方式,美國科技公司Pomcor也提出基于區(qū)塊鏈的PKI系統(tǒng),該系統(tǒng)仍然采用中心化的認證方式,使用區(qū)塊鏈存儲已發(fā)布或撤銷證書的散列值。
本文提出一個新的構(gòu)想,在保持原來PKI整體系統(tǒng)架構(gòu)不變的基礎(chǔ)上,改變證書的處理方式,將CA所要完成的工作分散化,由所有證書持有者共同完成。數(shù)字證書以區(qū)塊鏈的形式存儲,證書的申請、頒發(fā)、驗證、吊銷等都由系統(tǒng)內(nèi)超過半數(shù)以上的證書持有者共同決定,初步實現(xiàn)PKI去中心化。
系統(tǒng)中的區(qū)塊包含區(qū)塊頭和區(qū)塊體兩個部分,其中區(qū)塊頭中記錄著生成本區(qū)塊的時戳、上一區(qū)塊的哈希值、默克爾樹根等信息,區(qū)塊體中記錄著網(wǎng)絡(luò)中每一份數(shù)字證書和與該證書相關(guān)的動作,以及動作執(zhí)行之后的證書狀態(tài)。在需要CA對證書用戶的操作或請求做出響應(yīng)時,由區(qū)塊鏈網(wǎng)絡(luò)中的超過半數(shù)的其他證書用戶應(yīng)用共識機制批準或禁止系統(tǒng)做出響應(yīng)。本文提出的構(gòu)想與傳統(tǒng)PKI系統(tǒng)處理證書流程相似,涉及證書申請、簽發(fā)、驗證、撤銷的過程。
證書申請:用戶自己生成公私鑰對,私鑰由用戶秘密保存,然后向區(qū)塊鏈網(wǎng)絡(luò)提交需要申請數(shù)字證書的消息,該消息中包括用戶的公鑰和驗證個人身份的信息。
證書簽發(fā):新用戶的證書申請消息將被網(wǎng)絡(luò)中的所有證書用戶收到,之后網(wǎng)絡(luò)中的合法證書用戶會根據(jù)新用戶提交的信息驗證其身份的真實性;驗證通過則用自己的私鑰對新用戶的身份信息和公鑰進行簽名,生成一份數(shù)字證書。然后將當(dāng)前還沒添加到區(qū)塊的合法證書以及證書狀態(tài)作為區(qū)塊體中的數(shù)據(jù)記錄,打包生成一個新區(qū)塊,并采用POW工作量證明來確定誰有權(quán)發(fā)布該區(qū)塊,將其添加在網(wǎng)絡(luò)中最長的區(qū)塊鏈條上;其他證書用戶接收到新區(qū)塊后,就會停止對該消息的處理,轉(zhuǎn)而驗證新區(qū)塊中記錄的正確性,如果正確,那么將該區(qū)塊下載到本地。其本質(zhì)上是將證書記錄到區(qū)塊鏈的過程。
證書驗證:當(dāng)應(yīng)用程序需要驗證用戶的身份時,證書用戶則應(yīng)將證書提交給應(yīng)用,應(yīng)用首先查看用戶提交的數(shù)字證書的序列號和有效期,檢查如果出現(xiàn)錯誤,則向用戶返回證書驗證失敗的消息,并禁止該用戶訪問應(yīng)用,如果沒有問題,再向區(qū)塊鏈網(wǎng)絡(luò)提交證書查詢請求,請求中包含要查詢的證書信息;區(qū)塊鏈中的節(jié)點向應(yīng)用返回該證書目前的狀態(tài)信息。
證書撤銷:證書用戶提出證書撤銷請求,其中包括用戶的證書以及可以證實用戶身份的信息;網(wǎng)絡(luò)中所有用戶均能收到用戶的證書吊銷請求,并根據(jù)用戶提交的信息驗證用戶身份,審核證書撤銷請求通過后,修改該用戶所對應(yīng)證書的狀態(tài)信息并生成一個新區(qū)塊;之后的操作與證書簽發(fā)過程一致。
三、方案可行性
本文利用區(qū)塊鏈去中心化、不可篡改以及分布式存儲處理數(shù)據(jù)等特點,將區(qū)塊鏈技術(shù)融入傳統(tǒng)的PKI系統(tǒng)中,提出了一種新的證書處理方法。該方法繼承了區(qū)塊鏈自身的一些優(yōu)點,并且只需要對現(xiàn)存的PKI系統(tǒng)做出簡單的改變,即可在一定程度上緩解或解決上述問題。
首先,采用基于區(qū)塊鏈技術(shù)的分布式證書處理方法,對于中心失效和性能瓶頸問題做出有效應(yīng)對。傳統(tǒng)PKI的核心——CA機構(gòu)被網(wǎng)絡(luò)中所有證書持有者所取代,因此不存在中心節(jié)點,整個系統(tǒng)的安全性不會因為一個甚至多個用戶出現(xiàn)故障或遭受攻擊而受到影響,且隨著網(wǎng)絡(luò)中合法證書用戶的增多,該系統(tǒng)的處理速度和性能會不斷提高,解決了傳統(tǒng)PKI系統(tǒng)中的中心節(jié)點性能瓶頸問題。
其次,取消了CA中心節(jié)點,使系統(tǒng)結(jié)構(gòu)由樹狀轉(zhuǎn)變?yōu)榫W(wǎng)狀,節(jié)點間不存在上下級關(guān)系。各節(jié)點的安全性不再取決于某一節(jié)點的信息安全程度,而是依賴于網(wǎng)絡(luò)中每個用戶存儲的區(qū)塊鏈中的信息和大家達成的共識,這個共識是所有合法用戶公認的,因此消除了根CA不可信以及樹狀結(jié)構(gòu)維護成本高的問題。
最后,改變了證書簽發(fā)與配置邏輯。在傳統(tǒng)的PKI體系中,CA是唯一具備證書發(fā)布資質(zhì)的節(jié)點,各用戶只能使用證書而不能制作證書,但在本方案中,區(qū)塊鏈網(wǎng)絡(luò)中的任意合法證書用戶都能給新用戶生成證書,并經(jīng)區(qū)塊鏈系統(tǒng)發(fā)布出去。這有利于在某些特殊應(yīng)用場景下批量生成和配置證書,提高工作效率。
四、結(jié)語
本文對現(xiàn)有PKI系統(tǒng)存在的問題和缺陷做了總結(jié)分析,結(jié)合新興的區(qū)塊鏈技術(shù),在原有基礎(chǔ)上對傳統(tǒng)PKI進行創(chuàng)新,改變了數(shù)字證書的處理方式,一定程度上解決了現(xiàn)有的問題,并降低了PKI技術(shù)的應(yīng)用門檻,提高了用戶的使用體驗,同時也降低了向第三方CA申請證書的費用,降低建設(shè)、維護管理系統(tǒng)的成本,為未來數(shù)字信用社會的普及做出貢獻。