本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種基于區(qū)塊鏈的CA認證管理方法、裝置及系統(tǒng)。
背景技術(shù):
數(shù)字證書是一種由權(quán)威機構(gòu)頒發(fā)的、用于在網(wǎng)絡(luò)上證明用戶身份的證明文件,頒發(fā)數(shù)字證書的過程也可以稱為認證授權(quán)(Certification Authority,簡稱CA)過程。傳統(tǒng)的證書頒發(fā)體系包括根CA以及根CA下屬的多級CA,其中,根CA是證書頒發(fā)體系中最受信任的證書頒發(fā)機構(gòu),可以獨立地頒發(fā)證書,根CA通過自簽名生成證書,不需要由其它CA機構(gòu)為其頒發(fā)證書。其他各級CA機構(gòu)可以由其上級CA機構(gòu)為其頒發(fā)證書,也可以為其下級CA機構(gòu)及其客戶頒發(fā)證書,其中,CA機構(gòu)的客戶可以為各種網(wǎng)絡(luò)實體,例如,可以是網(wǎng)站(website)。
由于CA機構(gòu)的數(shù)量眾多,且層級不同,因此,在傳統(tǒng)的CA認證過程中,為了鑒別一個證書的真?zhèn)?,不僅要對該證書進行簽名驗證,而且,還要對簽發(fā)該證書的機構(gòu)進行驗證,并且,如果簽發(fā)該證書的機構(gòu)存在上級CA機構(gòu),還需要進一步對上級CA機構(gòu)進行驗證,直至根CA。為此,需要用戶預(yù)先在瀏覽器中內(nèi)置根CA所對應(yīng)的證書,以便于驗證根CA的真?zhèn)?。但是,用戶?nèi)置在瀏覽器中的根CA證書很容易遭遇黑客的攻擊,因而導致根CA證書的安全性較低,而且一旦根CA證書被惡意篡改,則會影響整個驗證過程的結(jié)果。
由此可見,現(xiàn)有的驗證方式由于需要用戶預(yù)先保存根CA證書,因而不僅增加了用戶的操作量、占用了用戶的本地存儲空間,還導致根CA證書的安全性難以保證,進而導致整個驗證過程的準確性降低。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于區(qū)塊鏈的CA認證管理方法、裝置及系統(tǒng)。
依據(jù)本發(fā)明的一個方面,提供了一種基于區(qū)塊鏈的CA認證管理方法,所述區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且所述創(chuàng)世區(qū)塊用于存儲根CA證書,所述方法包括:接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易;獲取所述申請證書交易中包含的未簽名證書,根據(jù)所述未簽名證書生成已簽名證書;在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易。
可選地,所述在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易的步驟之后進一步包括:將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
可選地,所述未簽名證書中包括驗證信息,則所述根據(jù)所述未簽名證書生成已簽名證書的步驟具體包括:根據(jù)所述驗證信息對所述未簽名證書進行驗證,當驗證通過后,對所述未簽名證書進行數(shù)字簽名。
可選地,所述驗證信息包括以下中的至少一種:待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間。
可選地,所述將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中的步驟之后,進一步包括:從所述常規(guī)區(qū)塊中查找所述第二交易記錄,根據(jù)所述第二交易記錄獲取所述已簽名證書;向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易。
可選地,所述向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易的步驟之后進一步包括:將所述撤銷證書交易對應(yīng)的第三交易記錄寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第三交易記錄的區(qū)塊進行廣播。
可選地,進一步包括:接收用戶終端發(fā)送的證書查詢請求,獲取所述證書查詢請求中包含的證書信息;根據(jù)所述證書信息從所述常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書;向所述用戶終端發(fā)送所述已簽名證書。
可選地,所述向所述用戶終端發(fā)送所述已簽名證書的步驟之后,進一步包括:查詢所述常規(guī)區(qū)塊中存儲的與所述已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息。
可選地,所述判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息的步驟具體包括:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為奇數(shù),則返回證書有效消息;若所述交易次數(shù)為偶數(shù),則返回證書無效消息。
可選地,所述判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息的步驟具體包括:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為1,則返回證書有效消息;反之,則返回證書無效消息。
可選地,所述根CA證書包括:根CA公鑰、根CA信息、根CA地址、證書有效期、證書頒發(fā)時間、以及數(shù)字簽名。
依據(jù)本發(fā)明的另一方面,提供了一種基于區(qū)塊鏈的CA認證管理裝置,所述區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且所述創(chuàng)世區(qū)塊用于存儲根CA證書,所述裝置包括:接收模塊,適于接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易;獲取模塊,適于獲取所述申請證書交易中包含的未簽名證書,根據(jù)所述未簽名證書生成已簽名證書;發(fā)送模塊,適于在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易。
可選地,進一步包括:記錄模塊,適于將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
可選地,所述未簽名證書中包括驗證信息,則所述獲取模塊具體用于:根據(jù)所述驗證信息對所述未簽名證書進行驗證,當驗證通過后,對所述未簽名證書進行數(shù)字簽名。
可選地,所述驗證信息包括以下中的至少一種:待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間。
可選地,進一步包括:撤銷模塊,適于從所述常規(guī)區(qū)塊中查找所述第二交易記錄,根據(jù)所述第二交易記錄獲取所述已簽名證書;向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易。
可選地,所述記錄模塊進一步用于:將所述撤銷證書交易對應(yīng)的第三交易記錄寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第三交易記錄的區(qū)塊進行廣播。
可選地,進一步包括:查詢模塊,適于接收用戶終端發(fā)送的證書查詢請求,獲取所述證書查詢請求中包含的證書信息;根據(jù)所述證書信息從所述常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書;向所述用戶終端發(fā)送所述已簽名證書。
可選地,所述查詢模塊進一步用于:查詢所述常規(guī)區(qū)塊中存儲的與所述已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息。
可選地,所述查詢模塊具體用于:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為奇數(shù),則返回證書有效消息;若所述交易次數(shù)為偶數(shù),則返回證書無效消息。
可選地,所述查詢模塊具體用于:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為1,則返回證書有效消息;反之,則返回證書無效消息。
可選地,所述根CA證書包括:根CA公鑰、根CA信息、根CA地址、證書有效期、證書頒發(fā)時間、以及數(shù)字簽名。
依據(jù)本發(fā)明的再一方面,提供了一種基于區(qū)塊鏈的CA認證管理系統(tǒng),包括上述的CA認證管理裝置,以及待認證節(jié)點。
在本發(fā)明提供的基于區(qū)塊鏈的CA認證管理方法、裝置及系統(tǒng)中,利用區(qū)塊鏈網(wǎng)絡(luò)管理各級CA機構(gòu)的證書以及客戶證書,并且,將根CA證書存儲到區(qū)塊鏈網(wǎng)絡(luò)的創(chuàng)世區(qū)塊中,由于創(chuàng)世區(qū)塊為第一個區(qū)塊,因此,安全性極高,很難被篡改。相應(yīng)地,本發(fā)明將頒發(fā)證書的過程轉(zhuǎn)化為區(qū)塊鏈網(wǎng)絡(luò)中的交易過程,并利用區(qū)塊鏈記錄交易記錄的方式將所有關(guān)于證書的操作過程全部記錄到區(qū)塊鏈中,從而使用戶無需在本地預(yù)存根CA證書,只需根據(jù)區(qū)塊鏈網(wǎng)絡(luò)進行查詢即可,由此不僅簡化了用戶操作、節(jié)約了用戶空間,且大幅提升了根CA證書的安全性以及后續(xù)驗證過程的準確性。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例的區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點分布圖;
圖2示出了本發(fā)明一個實施例提供的基于區(qū)塊鏈的CA認證管理方法的流程圖;
圖3示出了根CA的證書結(jié)構(gòu);
圖4示出了其他CA機構(gòu)的證書生成過程的流程圖;
圖5示出了下級CA機構(gòu)向上級CA機構(gòu)發(fā)送的申請證書交易的交易示意圖;
圖6示出了已簽名證書的格式示意圖;
圖7示出了上級CA機構(gòu)向下級CA機構(gòu)發(fā)送的頒發(fā)證書交易的交易示意圖;
圖8示出了CA機構(gòu)的客戶的證書生成過程的流程圖;
圖9示出了本發(fā)明上述實施例中涉及到的各個環(huán)節(jié)的流程圖;
圖10示出了本發(fā)明另一實施例提供的一種基于區(qū)塊鏈的CA認證管理裝置的結(jié)構(gòu)圖;
圖11示出了本發(fā)明另一實施例提供的一種基于區(qū)塊鏈的CA認證管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供了一種基于區(qū)塊鏈的CA認證管理方法、裝置及系統(tǒng),至少能夠解決現(xiàn)有的CA驗證方式所導致的根CA證書的安全性難以保證,進而導致整個驗證過程的準確性降低的技術(shù)問題。
在本發(fā)明實施例中,區(qū)塊鏈網(wǎng)絡(luò)中具體涉及如下幾類網(wǎng)絡(luò)實體:(1)根CA,是最受信任的證書機構(gòu);(2)其它各級CA(非根CA),需要依靠上級CA機構(gòu)為其頒發(fā)證書來標識其身份;(3)客戶服務(wù)器,向CA機構(gòu)請求頒發(fā)證書的用戶對應(yīng)的服務(wù)器,例如網(wǎng)站服務(wù)器,可理解為CA機構(gòu)的客戶;(4)普通用戶,在網(wǎng)絡(luò)通信過程中需要驗證對方證書的用戶對應(yīng)的用戶終端。其中,在本發(fā)明實施例中,前三類網(wǎng)絡(luò)實體作為區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點接入到區(qū)塊鏈網(wǎng)絡(luò)中,因而可以查詢區(qū)塊鏈中的全部信息,第四類網(wǎng)絡(luò)實體未作為區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點接入到區(qū)塊鏈網(wǎng)絡(luò)中,因而需先連接到區(qū)塊鏈網(wǎng)絡(luò)中的任一節(jié)點進行查詢。當然,在本發(fā)明其他的實施例中,也可以將第四類網(wǎng)絡(luò)實體也作為區(qū)塊鏈網(wǎng)絡(luò)中的輕節(jié)點接入到區(qū)塊鏈網(wǎng)絡(luò)中,以便于查詢。另外,在上述幾類網(wǎng)絡(luò)實體中,CA機構(gòu)屬于區(qū)塊鏈網(wǎng)絡(luò)中的完全節(jié)點,具有打包權(quán),既能夠向區(qū)塊鏈中寫入交易記錄,也能夠讀取區(qū)塊鏈中的交易記錄;客戶服務(wù)器可以為完全節(jié)點或非完全節(jié)點,但是不具有打包權(quán),不能夠向區(qū)塊鏈中寫入交易記錄,只能夠讀取區(qū)塊鏈中的交易記錄。圖1示出了本發(fā)明實施例的區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點分布圖。如圖1所示,第一層為根CA,由于根CA的證書是自簽名證書,因此,預(yù)先通過硬編碼方式寫入創(chuàng)世區(qū)塊中,以實現(xiàn)無法更改的目的,進而提高安全性。CAn為其他CA機構(gòu),該類CA機構(gòu)的證書需由上級CA機構(gòu)頒發(fā)。例如,在圖1中,CA1、CA2和CA3為根CA的下級CA,其需由根CA為其頒發(fā)證書,以證明自己的身份。CA11和CA12為CA1的下級CA,其需由CA1為其頒發(fā)證書以證明身份??蛻舴?wù)器為需要向CA機構(gòu)請求頒發(fā)證書的客戶,其中,客戶角色包括但不僅限于網(wǎng)站服務(wù)器,為了方便理解,在本實施例中以網(wǎng)站服務(wù)器為例進行說明。例如,在圖1中,客戶服務(wù)器1和客戶服務(wù)器2均為CA11的客戶。
圖2示出了本發(fā)明一個實施例提供的基于區(qū)塊鏈的CA認證管理方法的流程圖。圖2所示的方法的執(zhí)行主體既可以是根CA,也可以是其他各級CA。如圖2所示,該方法包括:
步驟S210:接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易。
其中,待認證節(jié)點泛指各類需要由CA機構(gòu)為其頒發(fā)證書的網(wǎng)絡(luò)實體,例如,可以是下級CA機構(gòu),也可以是客戶服務(wù)器。
步驟S220:獲取上述申請證書交易中包含的未簽名證書,根據(jù)該未簽名證書生成已簽名證書。
其中,通過對未簽名證書進行簽名的方式生成已簽名證書。具體地,可以通過各類數(shù)字簽名算法進行簽名,本發(fā)明對具體的簽名算法不做限定。
步驟S230:在區(qū)塊鏈網(wǎng)絡(luò)中向待認證節(jié)點發(fā)送包含已簽名證書的頒發(fā)證書交易。
其中,根據(jù)已簽名證書生成并發(fā)送頒發(fā)證書交易,以通知待認證節(jié)點證書申請成功。
可選地,本發(fā)明實施例中的方法進一步包括下述的步驟S240:將申請證書交易對應(yīng)的第一交易記錄以及頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
具體地,在本發(fā)明中,區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且創(chuàng)世區(qū)塊用于存儲根CA證書,常規(guī)區(qū)塊用于存儲各類證書頒發(fā)操作所對應(yīng)的交易記錄,以便后續(xù)查詢。所謂創(chuàng)世區(qū)塊,是指區(qū)塊鏈中的第一個區(qū)塊,其生成時間最早,安全性最高,后續(xù)其他區(qū)塊均無權(quán)對創(chuàng)世區(qū)塊進行更改,因此,將根CA證書存儲到創(chuàng)世區(qū)塊中能夠顯著提升根CA證書的安全性。區(qū)塊鏈中除創(chuàng)世區(qū)塊之外的其他區(qū)塊統(tǒng)稱為常規(guī)區(qū)塊,用于存儲各次交易記錄,以供查詢。
另外,步驟S240的執(zhí)行主體既可以是上文提到的發(fā)送申請證書交易的待認證節(jié)點,也可以是區(qū)塊鏈網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)節(jié)點,本發(fā)明對步驟S240的執(zhí)行主體不做限定,因此,步驟S240是一個可選的步驟,在本發(fā)明其他的實施例中也可以省略步驟S240。其中,在步驟S240中,申請證書交易和頒發(fā)證書交易既可以由上述的待認證節(jié)點(即廣播上述處理申請證書交易的網(wǎng)絡(luò)節(jié)點)打包進入到區(qū)塊中,也可以由其他的網(wǎng)絡(luò)節(jié)點打包到區(qū)塊中,區(qū)塊隨后會被廣播到區(qū)塊鏈網(wǎng)絡(luò),其他網(wǎng)絡(luò)節(jié)點驗證區(qū)塊通過后會將其中的頒發(fā)證書交易加入自身的區(qū)塊鏈副本,由此區(qū)塊鏈網(wǎng)絡(luò)就對該區(qū)塊中的申請證書交易和頒發(fā)證書交易形成了共識,從而保證區(qū)塊鏈的一致性。
由此可見,在本發(fā)明提供的基于區(qū)塊鏈的CA認證管理方法中,利用區(qū)塊鏈網(wǎng)絡(luò)管理各級CA機構(gòu)的證書以及客戶證書,并且,將根CA證書存儲到區(qū)塊鏈網(wǎng)絡(luò)的創(chuàng)世區(qū)塊中,由于創(chuàng)世區(qū)塊為第一個區(qū)塊,因此,安全性極高,很難被篡改。相應(yīng)地,本發(fā)明將頒發(fā)證書的過程轉(zhuǎn)化為區(qū)塊鏈網(wǎng)絡(luò)中的交易過程,并利用區(qū)塊鏈記錄交易記錄的方式將所有關(guān)于證書的操作過程全部記錄到區(qū)塊鏈中,從而使用戶無需在本地預(yù)存根CA證書,只需根據(jù)區(qū)塊鏈網(wǎng)絡(luò)進行查詢即可,由此不僅簡化了用戶操作、節(jié)約了用戶空間,且大幅提升了根CA證書的安全性以及后續(xù)驗證過程的準確性。
下面結(jié)合具體實例詳細描述本發(fā)明提供的基于區(qū)塊鏈的CA認證管理方法的具體實現(xiàn)細節(jié)。其中,主要涉及三種管理類型,分別為頒發(fā)證書、撤銷證書以及查詢證書,下面通過三個實施例分別介紹每種類型的管理操作的具體流程:
實施例一、
本實施例主要用于實現(xiàn)頒發(fā)證書類管理操作。具體地,頒發(fā)證書涉及根CA證書的生成過程、下級CA向上級CA申請證書的過程以及客戶向CA機構(gòu)申請證書的過程,下面分別加以介紹:
(1)根CA機構(gòu)的證書生成過程:
由于根CA是最受信任的證書機構(gòu),并且根CA的證書是自簽名證書,無上級CA認證,因此,根CA的證書是能夠長期信任的、幾乎不需要更改的。所以,在本發(fā)明實施例中將根CA證書通過硬編碼方式寫入創(chuàng)世區(qū)塊,由于其余區(qū)塊都是建立在創(chuàng)世區(qū)塊之后,所以區(qū)塊鏈上各節(jié)點的操作無法對創(chuàng)世區(qū)塊進行更改,由此保障了即使區(qū)塊鏈中的節(jié)點被惡意攻擊也無法更改根CA的證書。圖3示出了根CA的證書結(jié)構(gòu),由于根CA的證書是自簽名證書,無需上級CA機構(gòu)為其簽名,所以證書中只需記錄根CA自身的信息。如圖3所示,根CA證書中包括:證書機構(gòu)的公鑰、證書機構(gòu)信息、證書機構(gòu)的地址、證書有效期、證書頒發(fā)時間等其他信息以及數(shù)字簽名。其中,證書機構(gòu)的地址是指該機構(gòu)在區(qū)塊鏈網(wǎng)絡(luò)上所對應(yīng)的賬戶地址。
(2)其他CA機構(gòu)的證書生成過程:
圖4示出了其他CA機構(gòu)的證書生成過程的流程圖。如圖4所示,其他CA機構(gòu)的證書生成過程包括如下步驟:
步驟S410:下級CA機構(gòu)在區(qū)塊鏈網(wǎng)絡(luò)中向上級CA機構(gòu)發(fā)送申請證書交易。
這里,下級CA機構(gòu)也可以理解為待認證節(jié)點,上級CA機構(gòu)也可以理解為認證節(jié)點。本發(fā)明可基于公有區(qū)塊鏈的交易格式實現(xiàn),每筆交易可包括輸入和輸出兩部分。圖5示出了該筆交易的示意圖,其中,輸入部分可以為空,輸出部分中包含下級CA機構(gòu)的未簽名證書,即不完整的證書。其中,為了防止區(qū)塊鏈上的其他節(jié)點任意頒發(fā)證書,在未簽名證書中寫入了上級CA機構(gòu)的相關(guān)信息。
步驟S420:上級CA機構(gòu)獲取上述申請證書交易中包含的未簽名證書,根據(jù)未簽名證書生成已簽名證書。
為了提高安全性,可選地,在本步驟中,上級CA機構(gòu)獲取到上述申請證書交易中包含的未簽名證書之后,進一步對該未簽名證書進行驗證,并僅在驗證通過后執(zhí)行后續(xù)操作。為了便于驗證,在上述的未簽名證書中可以進一步包含驗證信息,該驗證信息除上述提到的上級CA機構(gòu)的相關(guān)信息之外,還可以是待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間等信息。具體驗證時,上級CA機構(gòu)根據(jù)上述驗證信息對下級CA機構(gòu)的身份進行驗證,并對未簽名證書的合法性進行驗證。而且,上級CA機構(gòu)還要進一步驗證未簽名證書中包含的證書機構(gòu)地址是否與該上級CA機構(gòu)的地址相匹配,若匹配,則說明下級CA機構(gòu)指定的頒發(fā)證書機構(gòu)為該上級CA機構(gòu),因而繼續(xù)執(zhí)行后續(xù)步驟;若不匹配,則說明下級CA機構(gòu)指定的頒發(fā)證書機構(gòu)并非該上級CA機構(gòu),因而向下級CA機構(gòu)返回錯誤消息,以提示下級CA機構(gòu)重新發(fā)送正確的交易信息。
當上述驗證過程均通過后,上級CA機構(gòu)對未簽名證書進行簽名,即補充完整未簽名證書,得到已簽名證書。圖6示出了已簽名證書的格式示意圖,如圖6所示,已簽名證書中包含:用戶的公鑰、用戶的信息、用戶的地址、證書機構(gòu)信息、證書機構(gòu)的地址、證書有效期、證書頒發(fā)時間等其他信息以及數(shù)字簽名。其中,用戶是指下級CA機構(gòu),證書機構(gòu)是指上級CA機構(gòu),數(shù)字簽名是指上級CA機構(gòu)對圖6所示的證書中除數(shù)字簽名外的其他信息的哈希進行私鑰加密的結(jié)果。
步驟S430:上級CA機構(gòu)在區(qū)塊鏈網(wǎng)絡(luò)中向下級CA機構(gòu)發(fā)送包含已簽名證書的頒發(fā)證書交易。
上級CA機構(gòu)向下級CA機構(gòu)發(fā)起一筆頒發(fā)證書交易,將已簽名證書寫入該筆交易的輸出部分,如圖7所示,其中,sig(cert)表示經(jīng)過簽名的完整格式證書。
步驟S440:上級CA機構(gòu)將上述頒發(fā)證書交易對應(yīng)的交易記錄寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中。
其中,步驟S440的執(zhí)行主體不限于上級CA機構(gòu),也可以是下級CA機構(gòu)或區(qū)塊鏈網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)節(jié)點,本發(fā)明對步驟S440的執(zhí)行主體不做限定,因此,步驟S440是一個可選的步驟。另外,在本實施例中,還可以在區(qū)塊鏈網(wǎng)絡(luò)中進一步對寫入交易記錄的區(qū)塊進行廣播,以便網(wǎng)絡(luò)中的其他節(jié)點迅速獲知對應(yīng)的交易記錄。
(3)客戶的證書生成過程:
圖8示出了CA機構(gòu)的客戶的證書生成過程的流程圖,在本例中,以客戶為網(wǎng)站服務(wù)器為例進行說明,實際上,除網(wǎng)站服務(wù)器外,還可以是其他類型的客戶服務(wù)器。如圖8所示,客戶的證書生成過程包括如下步驟:
步驟S810:網(wǎng)站服務(wù)器在區(qū)塊鏈網(wǎng)絡(luò)中向CA機構(gòu)發(fā)送申請證書交易,并將申請證書交易對應(yīng)的交易記錄寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中。
這里,網(wǎng)站服務(wù)器也可以理解為待認證節(jié)點,CA機構(gòu)也可以理解為認證節(jié)點。該筆交易的輸出部分中包含網(wǎng)站服務(wù)器的未簽名證書,即不完整的證書。其中,為了防止區(qū)塊鏈上的其他節(jié)點任意頒發(fā)證書,在未簽名證書中還寫入了CA機構(gòu)的相關(guān)信息。
步驟S820:CA機構(gòu)獲取上述申請證書交易中包含的未簽名證書,根據(jù)未簽名證書生成已簽名證書。
為了提高安全性,可選地,在本步驟中,CA機構(gòu)獲取到上述申請證書交易中包含的未簽名證書之后,進一步對該未簽名證書進行驗證,并僅在驗證通過后執(zhí)行后續(xù)操作。為了便于驗證,在上述的未簽名證書中可以進一步包含驗證信息,該驗證信息除上述提到的CA機構(gòu)的相關(guān)信息之外,還可以是待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間等信息。具體驗證時,CA機構(gòu)根據(jù)上述驗證信息對網(wǎng)站服務(wù)器的身份進行驗證,并對未簽名證書的合法性進行驗證。而且,CA機構(gòu)還要進一步驗證未簽名證書中包含的證書機構(gòu)地址是否與本CA機構(gòu)的地址相匹配,若匹配,則說明網(wǎng)站服務(wù)器指定的頒發(fā)證書機構(gòu)為本CA機構(gòu),因而繼續(xù)執(zhí)行后續(xù)步驟;若不匹配,則說明網(wǎng)站服務(wù)器指定的頒發(fā)證書機構(gòu)并非本CA機構(gòu),因而向網(wǎng)站服務(wù)器返回錯誤消息,以提示其重新發(fā)送正確的交易信息。
當上述驗證過程均通過后,CA機構(gòu)對未簽名證書進行簽名,即補充完整未簽名證書,得到已簽名證書。
步驟S830:CA機構(gòu)在區(qū)塊鏈網(wǎng)絡(luò)中向網(wǎng)站服務(wù)器發(fā)送包含已簽名證書的頒發(fā)證書交易。
CA機構(gòu)向網(wǎng)站服務(wù)器發(fā)起一筆頒發(fā)證書交易,將已簽名證書寫入該筆交易的輸出部分。
步驟S840:CA機構(gòu)將上述頒發(fā)證書交易對應(yīng)的交易記錄寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中。
其中,步驟S840的執(zhí)行主體不限于上級CA機構(gòu),也可以是網(wǎng)站服務(wù)器或區(qū)塊鏈網(wǎng)絡(luò)中的其他網(wǎng)絡(luò)節(jié)點,本發(fā)明對步驟S840的執(zhí)行主體不做限定,因此,步驟S840是一個可選的步驟。另外,在本實施例中,還可以在區(qū)塊鏈網(wǎng)絡(luò)中進一步對寫入交易記錄的區(qū)塊進行廣播,以便網(wǎng)絡(luò)中的其他節(jié)點迅速獲知對應(yīng)的交易記錄。
實施例二、
本實施例主要用于實現(xiàn)撤銷證書類管理操作。具體地,撤銷證書涉及上級CA機構(gòu)撤銷其為下級CA機構(gòu)頒發(fā)的證書的操作,以及CA機構(gòu)撤銷其為客戶頒發(fā)的證書的操作,由于兩類撤銷操作的流程類似,因此,下面主要介紹第一類撤銷操作:
上級CA機構(gòu)從區(qū)塊鏈上查找該CA機構(gòu)向其下級CA機構(gòu)發(fā)起交易的交易記錄,找到最新的交易并取出其中包含的已簽名證書。其中,若能從最新的交易中取出證書,則說明有可撤銷的證書,否則沒有,直接返回。如果有可撤銷的證書,則該上級CA機構(gòu)向擁有該證書的下級CA機構(gòu)發(fā)起包含該已簽名證書的撤銷證書交易,在交易的輸出部分中寫入已簽名證書。然后,該上級CA機構(gòu)可將本次撤銷證書交易對應(yīng)的交易記錄寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中。
CA機構(gòu)為其客戶撤銷證書的流程與此類似。例如,CA機構(gòu)向客戶發(fā)起一筆撤銷證書交易,以撤銷其為該客戶頒發(fā)的證書,并可將該筆交易對應(yīng)的交易記錄寫入?yún)^(qū)塊鏈的常規(guī)區(qū)塊中。
由于同一個機構(gòu)不會向一個申請者重復(fù)頒發(fā)證書,一次頒發(fā)對應(yīng)一次撤銷,即本發(fā)明中一次交易對應(yīng)一次證書的頒發(fā)或者撤銷的過程。若要審查證書是否被撤銷,只需要統(tǒng)計區(qū)塊鏈上某一張證書的頒發(fā)機構(gòu)向持有證書的客戶發(fā)起的交易的次數(shù)。如果次數(shù)為奇數(shù)(一般情況下為1),則說明證書有效,若為偶數(shù),則說明證書被撤銷。
另外,在本發(fā)明其他的實施例中,還可以在次數(shù)大于或等于2時則確定證書被撤銷。例如,僅在次數(shù)為1時認為證書有效,否則認為證書無效。總之,本領(lǐng)域技術(shù)人員可根據(jù)實際情況確定證書狀態(tài),本發(fā)明對具體確定方式不做限定。
實施例三、
本實施例主要用于實現(xiàn)查詢(驗證)證書類管理操作。其中,證書的驗證通常是由與證書擁有者(例如網(wǎng)站服務(wù)器)存在信息交互的用戶去驗證,驗證過程不僅要驗證證書擁有者本身所擁有的證書是否有效,還要逐層向上驗證證書頒發(fā)機構(gòu)的證書。具體地,驗證過程的主要步驟如下:
步驟一、用戶終端訪問網(wǎng)站服務(wù)器,網(wǎng)站服務(wù)器向用戶終端發(fā)送網(wǎng)站服務(wù)器所擁有的證書。
步驟二、用戶終端向區(qū)塊鏈網(wǎng)絡(luò)中的任一網(wǎng)絡(luò)節(jié)點發(fā)送證書查詢請求,該網(wǎng)絡(luò)節(jié)點接收并處理該證書查詢請求。
其中,接收并處理該證書查詢請求的網(wǎng)絡(luò)節(jié)點既可以是CA機構(gòu),也可以是網(wǎng)站服務(wù)器,由于區(qū)塊鏈網(wǎng)絡(luò)去中心化的分布式存儲特點,在每個網(wǎng)絡(luò)節(jié)點上都保存了完整的區(qū)塊鏈信息。該網(wǎng)絡(luò)節(jié)點根據(jù)證書查詢請求獲取其中包含的證書信息。
步驟三、該網(wǎng)絡(luò)節(jié)點根據(jù)證書信息從常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書,將該已簽名證書發(fā)送給用戶終端。
具體地,該網(wǎng)絡(luò)節(jié)點首先根據(jù)證書中記載的證書頒發(fā)機構(gòu)的地址和證書擁有者(例如網(wǎng)站服務(wù)器)的地址向區(qū)塊鏈查找該證書頒發(fā)機構(gòu)向證書擁有者發(fā)起的交易,查詢出最新的一條交易,并取出其中的已簽名證書。然后,該網(wǎng)絡(luò)節(jié)點將該已簽名證書發(fā)送給用戶終端。
步驟四、用戶終端根據(jù)區(qū)塊鏈上的證書信息審查網(wǎng)站服務(wù)器,若查詢結(jié)果正確,則繼續(xù)執(zhí)行后續(xù)步驟,否則認定證書無效。
步驟五、查詢常規(guī)區(qū)塊中存儲的與已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù)為奇數(shù)或偶數(shù),根據(jù)判斷結(jié)果確定證書有效或無效。其中,根據(jù)交易記錄的次數(shù)確定證書狀態(tài)的具體方式可參照實施例二中相關(guān)部分的描述,另外,在本發(fā)明其他的實施例中,還可以在次數(shù)大于或等于2時則確定證書被撤銷。總之,本領(lǐng)域技術(shù)人員可根據(jù)實際情況確定證書狀態(tài),本發(fā)明對具體確定方式不做限定。
其中,步驟五既可以在用戶終端的請求下觸發(fā),也可以在步驟四執(zhí)行完之后自動觸發(fā)。步驟五的執(zhí)行主體可以是區(qū)塊鏈網(wǎng)絡(luò)中的任一網(wǎng)絡(luò)節(jié)點,例如可以是上述步驟三中的網(wǎng)絡(luò)節(jié)點。該網(wǎng)絡(luò)節(jié)點查詢常規(guī)區(qū)塊中存儲的與已簽名證書對應(yīng)的交易記錄,根據(jù)交易記錄的次數(shù)確定證書狀態(tài)。例如,在一種實現(xiàn)方式中,該網(wǎng)絡(luò)節(jié)點查詢已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若該交易次數(shù)為奇數(shù)(通常為1),說明證書有效,則返回證書有效消息;若該交易次數(shù)為偶數(shù)(通常為2),說明證書被撤銷,則返回證書無效消息。
步驟六、遞歸向上審查證書頒發(fā)機構(gòu)的證書,直到根證書。
其中,步驟六既可以在用戶終端的請求下觸發(fā),也可以在步驟五執(zhí)行完之后自動觸發(fā)。為了確保證書的有效性,需要進一步審查該證書的頒發(fā)機構(gòu)的合法性,即,進一步審查該證書的頒發(fā)機構(gòu)的證書是否有效。該部分的審查過程與對網(wǎng)站服務(wù)器證書的審查類似,主要從證書的正確性和有效性兩方面審查,此處不再贅述。
通過上述流程,就實現(xiàn)了證書的審查過程。另外,為了更深入地理解本發(fā)明,圖9示出了本發(fā)明上述實施例中涉及到的各個環(huán)節(jié)的流程圖。如圖9所示,本發(fā)明上述實施例中主要涉及根CA、CA、區(qū)塊鏈、網(wǎng)站服務(wù)器以及user(即用戶終端)。在步驟1中,根CA生成自簽名證書,寫入創(chuàng)世區(qū)塊。在步驟2中,CA向根CA發(fā)起交易,發(fā)送未簽名證書。在步驟3中,根CA審查CA機構(gòu),生成證書(即已簽名證書)。在步驟4中,根CA向CA發(fā)起交易,將交易及證書寫入?yún)^(qū)塊鏈。在步驟5中,網(wǎng)站服務(wù)器向CA機構(gòu)發(fā)起交易,發(fā)送未簽名證書。在步驟6中,CA機構(gòu)審查網(wǎng)站服務(wù)器,生成已簽名證書。在步驟7中,CA向網(wǎng)站服務(wù)器發(fā)起交易,將交易及證書寫入?yún)^(qū)塊鏈。在步驟8中,根CA向CA發(fā)起一筆交易,撤銷證書,將交易寫入?yún)^(qū)塊鏈。在步驟9中,CA向網(wǎng)站服務(wù)器發(fā)起一筆交易,撤銷證書,將交易寫入?yún)^(qū)塊鏈。在步驟10中,user訪問網(wǎng)站服務(wù)器。在步驟11中,網(wǎng)站服務(wù)器發(fā)送證書給user。在步驟12中,user向區(qū)塊鏈查詢證書。在步驟13中,區(qū)塊鏈返回對應(yīng)證書。在步驟14中,用戶驗證證書是否正確完整。在步驟15中,返回區(qū)塊鏈上該證書頒發(fā)機構(gòu)向持有機構(gòu)發(fā)起交易的次數(shù)。在步驟16中,根據(jù)交易次數(shù)的奇偶驗證證書是否被撤銷。在步驟17中,審查證書頒發(fā)機構(gòu)的證書,并在步驟18中返回審查結(jié)果。
由此可見,本發(fā)明利用區(qū)塊鏈來進行CA證書的頒發(fā)、撤銷和查詢等管理操作,充分利用了區(qū)塊鏈的不易篡改和公開化的特點,彌補了傳統(tǒng)CA認證中的不足,使得CA的頒發(fā)和撤銷信息傳播更快,提高了證書頒發(fā)機構(gòu)的可信度,尤其是根CA,用戶可以通過實時查詢區(qū)塊鏈上的記錄來審查證書,更加可靠。另外,依賴于區(qū)塊鏈的分布式特點,使得即使CA節(jié)點在遭受惡意攻擊的情況下也不會影響整個CA網(wǎng)絡(luò)的安全性,并且區(qū)塊鏈網(wǎng)絡(luò)有可能在短時間內(nèi)感知到問題。
另外,本領(lǐng)域技術(shù)人員可以對上述實施例進行各種改動和變形,例如,本領(lǐng)域技術(shù)人員還可以從以下幾方面進行改動:
(1)在上述實施例中,區(qū)塊鏈上的節(jié)點包含CA機構(gòu)和申請證書的機構(gòu)(如網(wǎng)站服務(wù)器),而普通用戶驗證證書時通過訪問區(qū)塊鏈上的任一節(jié)點進行驗證??蛇x地,可以讓普通用戶也作為區(qū)塊鏈上的一個節(jié)點接入進來,以提高驗證過程的靈活性。
(2)由于根CA的證書是通過硬編碼寫入創(chuàng)世區(qū)塊的,區(qū)塊鏈網(wǎng)絡(luò)上存在多個根CA,一旦某個根CA被攻破,若要更改根CA,將會破壞整個區(qū)塊鏈網(wǎng)絡(luò)??蛇x地,為所有的根CA建立一個上級根,寫入創(chuàng)世區(qū)塊。由上級根來為根CA頒發(fā)證書。
(3)本發(fā)明實施例通過審查區(qū)塊鏈上所有的交易來獲取證書頒發(fā)機構(gòu)向證書申請機構(gòu)發(fā)送的交易的次數(shù)??蛇x地,為了防止某張已經(jīng)無效的證書(如超過證書有效期)未發(fā)送撤銷交易而打亂區(qū)塊鏈上的交易次數(shù),可以只統(tǒng)計交易記錄中保存的證書與當前證書完全一致的交易次數(shù)。并且由于證書的交易被寫入?yún)^(qū)塊鏈的時間一定在證書生成的時間之后,所以只需要去遍歷寫入時間在這個時間之后的區(qū)塊,以提高遍歷的效率。
(4)在本發(fā)明實施例的證書中,包含一個選項是證書頒發(fā)機構(gòu)和申請機構(gòu)的地址,即其在區(qū)塊鏈網(wǎng)絡(luò)上對應(yīng)的賬戶地址??蛇x地,為了保持與傳統(tǒng)證書格式的統(tǒng)一,這部分也可以不放入證書中,而直接寫入每筆交易的輸出部分內(nèi)容里面,如下:
圖10示出了本發(fā)明另一實施例提供的一種基于區(qū)塊鏈的CA認證管理裝置的結(jié)構(gòu)圖。其中,區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且創(chuàng)世區(qū)塊用于存儲根CA證書,所述裝置包括:
接收模塊101,適于接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易;
獲取模塊102,適于獲取所述申請證書交易中包含的未簽名證書,根據(jù)所述未簽名證書生成已簽名證書;
發(fā)送模塊103,適于在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易。
可選地,進一步包括:記錄模塊104,適于將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
可選地,所述未簽名證書中包括驗證信息,則所述獲取模塊具體用于:根據(jù)所述驗證信息對所述未簽名證書進行驗證,當驗證通過后,對所述未簽名證書進行數(shù)字簽名。
可選地,所述驗證信息包括以下中的至少一種:待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間。
可選地,該裝置進一步包括:撤銷模塊,適于從所述常規(guī)區(qū)塊中查找所述第二交易記錄,根據(jù)所述第二交易記錄獲取所述已簽名證書;向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易,并且記錄模塊進一步用于將所述撤銷證書交易對應(yīng)的第三交易記錄寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第三交易記錄的區(qū)塊進行廣播。
可選地,該裝置進一步包括:查詢模塊,適于接收用戶終端發(fā)送的證書查詢請求,獲取所述證書查詢請求中包含的證書信息;根據(jù)所述證書信息從所述常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書;向所述用戶終端發(fā)送所述已簽名證書。
可選地,所述查詢模塊進一步用于:查詢所述常規(guī)區(qū)塊中存儲的與所述已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù)為奇數(shù)或偶數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息。例如,所述查詢模塊具體用于:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為奇數(shù),則返回證書有效消息;若所述交易次數(shù)為偶數(shù),則返回證書無效消息。例如,若交易次數(shù)為1,則返回證書有效消息;反之,則返回證書無效消息。
其中,根CA證書包括:根CA公鑰、根CA信息、根CA地址、證書有效期、證書頒發(fā)時間、以及數(shù)字簽名。
上述各個模塊的具體工作細節(jié)可參照方法實施例中相應(yīng)部分的描述,此處不再贅述。
另外,上述的基于區(qū)塊鏈的CA認證管理裝置通常為上文提到的各級CA機構(gòu)。
圖11示出了本發(fā)明另一實施例提供的一種基于區(qū)塊鏈的CA認證管理系統(tǒng)的結(jié)構(gòu)示意圖,如圖11所示,該系統(tǒng)包括:上述CA認證管理裝置100,以及待認證節(jié)點110。其中,CA認證管理裝置100既可以是根CA,也可以是其他各級CA;待認證節(jié)點110既可以是各級CA機構(gòu),也可以是客戶服務(wù)器。
綜上所述,在本發(fā)明的技術(shù)方案中,主要包括如下幾個技術(shù)關(guān)鍵點:
首先,將證書作為交易的一部分寫入?yún)^(qū)塊鏈上,區(qū)塊鏈的信任由所有節(jié)點共同參與完成。因此保證了證書的正確性。
其次,將根證書寫入創(chuàng)世區(qū)塊中,使得即使區(qū)塊鏈上的某個節(jié)點被惡意攻擊,也無法隨意更改根證書。
再次,利用交易的次數(shù)來判斷證書是否被撤銷。每次驗證的過程實時審查當前區(qū)塊鏈上最新的記錄,解決了用戶無法及時獲知證書是否被撤銷的問題。
最后,結(jié)合區(qū)塊鏈分布式的特點,所有節(jié)點都保存了交易的記錄,因此用戶可以連接到任意節(jié)點去進行審查。使得審查過程不依賴于單個來源,降低了記錄被惡意篡改的風險。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:A1、一種基于區(qū)塊鏈的CA認證管理方法,其中,所述區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且所述創(chuàng)世區(qū)塊用于存儲根CA證書,所述方法包括:
接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易;
獲取所述申請證書交易中包含的未簽名證書,根據(jù)所述未簽名證書生成已簽名證書;
在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易。
A2、根據(jù)A1所述的方法,其中,進一步包括:將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
A3、根據(jù)A1所述的方法,其中,所述未簽名證書中包括驗證信息,則所述根據(jù)所述未簽名證書生成已簽名證書的步驟具體包括:
根據(jù)所述驗證信息對所述未簽名證書進行驗證,當驗證通過后,對所述未簽名證書進行數(shù)字簽名。
A4、根據(jù)A3所述的方法,其中,所述驗證信息包括以下中的至少一種:待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間。
A5、根據(jù)A2所述的方法,其中,所述將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中的步驟之后,進一步包括:
從所述常規(guī)區(qū)塊中查找所述第二交易記錄,根據(jù)所述第二交易記錄獲取所述已簽名證書;
向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易。
A6、根據(jù)A5所述的方法,其中,所述向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易的步驟之后進一步包括:將所述撤銷證書交易對應(yīng)的第三交易記錄寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第三交易記錄的區(qū)塊進行廣播。
A7、根據(jù)A1所述的方法,其中,進一步包括:
接收用戶終端發(fā)送的證書查詢請求,獲取所述證書查詢請求中包含的證書信息;
根據(jù)所述證書信息從所述常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書;
向所述用戶終端發(fā)送所述已簽名證書。
A8、根據(jù)A7所述的方法,其中,所述向所述用戶終端發(fā)送所述已簽名證書的步驟之后,進一步包括:
查詢所述常規(guī)區(qū)塊中存儲的與所述已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息。
A9、根據(jù)A8所述的方法,其中,所述判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息的步驟具體包括:
查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為奇數(shù),則返回證書有效消息;若所述交易次數(shù)為偶數(shù),則返回證書無效消息。
A10、根據(jù)A8所述的方法,其中,所述判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息的步驟具體包括:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為1,則返回證書有效消息;反之,則返回證書無效消息。
A11、根據(jù)A1所述的方法,其中,所述根CA證書包括:根CA公鑰、根CA信息、根CA地址、證書有效期、證書頒發(fā)時間、以及數(shù)字簽名。
本發(fā)明還公開了:B12、一種基于區(qū)塊鏈的CA認證管理裝置,其中,所述區(qū)塊鏈進一步包括創(chuàng)世區(qū)塊以及常規(guī)區(qū)塊,且所述創(chuàng)世區(qū)塊用于存儲根CA證書,所述裝置包括:
接收模塊,適于接收待認證節(jié)點在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)送的包含未簽名證書的申請證書交易;
獲取模塊,適于獲取所述申請證書交易中包含的未簽名證書,根據(jù)所述未簽名證書生成已簽名證書;
發(fā)送模塊,適于在區(qū)塊鏈網(wǎng)絡(luò)中向所述待認證節(jié)點發(fā)送包含所述已簽名證書的頒發(fā)證書交易。
B13、根據(jù)B12所述的裝置,其中,進一步包括:
記錄模塊,適于將所述申請證書交易對應(yīng)的第一交易記錄以及所述頒發(fā)證書交易對應(yīng)的第二交易記錄分別寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第一交易記錄以及所述第二交易記錄的區(qū)塊進行廣播。
B14、根據(jù)B12所述的裝置,其中,所述未簽名證書中包括驗證信息,則所述獲取模塊具體用于:
根據(jù)所述驗證信息對所述未簽名證書進行驗證,當驗證通過后,對所述未簽名證書進行數(shù)字簽名。
B15、根據(jù)B14所述的裝置,其中,所述驗證信息包括以下中的至少一種:待認證節(jié)點公鑰、待認證節(jié)點信息、待認證節(jié)點地址、認證節(jié)點信息、認證節(jié)點地址、證書有效期、以及證書頒發(fā)時間。
B16、根據(jù)B13所述的裝置,其中,進一步包括:
撤銷模塊,適于從所述常規(guī)區(qū)塊中查找所述第二交易記錄,根據(jù)所述第二交易記錄獲取所述已簽名證書;向所述待認證節(jié)點發(fā)送包含所述已簽名證書的撤銷證書交易。
B17、根據(jù)B16所述的裝置,其中,所述記錄模塊進一步用于:將所述撤銷證書交易對應(yīng)的第三交易記錄寫入所述區(qū)塊鏈的常規(guī)區(qū)塊中,并在區(qū)塊鏈網(wǎng)絡(luò)中對包含所述第三交易記錄的區(qū)塊進行廣播。
B18、根據(jù)B12所述的裝置,其中,進一步包括:
查詢模塊,適于接收用戶終端發(fā)送的證書查詢請求,獲取所述證書查詢請求中包含的證書信息;根據(jù)所述證書信息從所述常規(guī)區(qū)塊中查找對應(yīng)的交易記錄,并根據(jù)查找到的交易記錄獲取對應(yīng)的已簽名證書;向所述用戶終端發(fā)送所述已簽名證書。
B19、根據(jù)B18所述的裝置,其中,所述查詢模塊進一步用于:
查詢所述常規(guī)區(qū)塊中存儲的與所述已簽名證書對應(yīng)的交易記錄,判斷所述已簽名證書對應(yīng)的交易記錄的次數(shù),根據(jù)判斷結(jié)果返回證書有效消息或證書無效消息。
B20、根據(jù)B19所述的裝置,其中,所述查詢模塊具體用于:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為奇數(shù),則返回證書有效消息;若所述交易次數(shù)為偶數(shù),則返回證書無效消息。
B21、根據(jù)B19所述的裝置,其中,所述查詢模塊具體用于:查詢所述已簽名證書對應(yīng)的交易記錄中由認證節(jié)點發(fā)送給待認證節(jié)點的交易次數(shù),若所述交易次數(shù)為1,則返回證書有效消息;反之,則返回證書無效消息。
B22、根據(jù)B12所述的裝置,其中,所述根CA證書包括:根CA公鑰、根CA信息、根CA地址、證書有效期、證書頒發(fā)時間、以及數(shù)字簽名。
本發(fā)明進一步公開了:C23、一種基于區(qū)塊鏈的CA認證管理系統(tǒng),其中,包括上述B12-B22任一所述的CA認證管理裝置,以及待認證節(jié)點。