亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種PKI中證書(shū)透明化的方法與流程

文檔序號(hào):11693060閱讀:222來(lái)源:國(guó)知局
一種PKI中證書(shū)透明化的方法與流程

本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,特別涉及一種在pki中使用區(qū)塊鏈實(shí)現(xiàn)證書(shū)透明化的方法。



背景技術(shù):

公鑰密碼學(xué)是一類(lèi)使用非對(duì)稱(chēng)密鑰的密碼學(xué)方法。公鑰密碼學(xué)使用一對(duì)不同的密鑰,由其中一個(gè)密鑰加密的信息,需要使用另一個(gè)密鑰解密。通常在一對(duì)非對(duì)稱(chēng)密鑰中,一個(gè)密鑰對(duì)外公開(kāi),稱(chēng)之為公鑰,而另一個(gè)密鑰保持秘密,稱(chēng)之為私鑰。數(shù)字簽名是一種使用公鑰密碼學(xué)的密碼技術(shù)。簽名者使用自己的私鑰對(duì)一個(gè)消息的摘要進(jìn)行加密(即簽名)。簽名驗(yàn)證者使用簽名者的公鑰解密簽名結(jié)果,并檢查解密結(jié)果與收到消息的摘要是否一致(即驗(yàn)簽)。如果驗(yàn)簽通過(guò),則說(shuō)明簽名來(lái)自于公鑰對(duì)應(yīng)的私鑰的持有者,并且收到的消息與簽名的消息一致。

數(shù)字簽名可以被用來(lái)進(jìn)行數(shù)據(jù)源或身份認(rèn)證,其前提是需要解決密鑰與身份的對(duì)應(yīng)問(wèn)題,即驗(yàn)簽公鑰的對(duì)應(yīng)私鑰持有者的身份認(rèn)證問(wèn)題。公鑰基礎(chǔ)設(shè)施(pki,publickeyinfrastructure)建立在公鑰密碼學(xué)的基礎(chǔ)上,主要解決了密鑰屬于誰(shuí)的問(wèn)題。公鑰基礎(chǔ)設(shè)施的出現(xiàn)使得網(wǎng)絡(luò)上的數(shù)字簽名有了理論上的安全保障。

在pki中,ca機(jī)構(gòu)(即第三方證書(shū)認(rèn)證中心)是各方都信任的實(shí)體。ca機(jī)構(gòu)的公鑰是廣泛所知的,它通過(guò)簽發(fā)數(shù)字證書(shū)提供密鑰持有者認(rèn)證服務(wù)。數(shù)字證書(shū)(以下簡(jiǎn)稱(chēng)證書(shū))綁定了公鑰數(shù)據(jù)和對(duì)應(yīng)私鑰的持有者(以下簡(jiǎn)稱(chēng)為證書(shū)訂戶/證書(shū)主體)的身份信息,并由ca機(jī)構(gòu)進(jìn)行數(shù)字簽名。數(shù)字證書(shū)中的信息,是經(jīng)過(guò)ca機(jī)構(gòu)嚴(yán)格審核的,保證其真實(shí)性。ca機(jī)構(gòu)的簽名,表明了證書(shū)文件的來(lái)源,也保證了證書(shū)文件的完整性。ca機(jī)構(gòu)對(duì)證書(shū)信息的嚴(yán)格審核和對(duì)簽名密鑰的安全管理,是pki體系安全運(yùn)行的基礎(chǔ)。

然而,已經(jīng)發(fā)生的一些ca機(jī)構(gòu)的誤操作事件和對(duì)ca機(jī)構(gòu)的攻擊事件表明,ca機(jī)構(gòu)可能簽發(fā)“虛假證書(shū)”。虛假證書(shū)可以被驗(yàn)證通過(guò),但是證書(shū)中密鑰的實(shí)際持有者并非證書(shū)宣稱(chēng)的訂戶。一個(gè)虛假證書(shū)可以被敵手用來(lái)發(fā)動(dòng)身份冒用攻擊,侵入服務(wù)器和用戶之間的通信,破壞站點(diǎn)和用戶的數(shù)據(jù)安全。更嚴(yán)重的是,由于ca機(jī)構(gòu)是被所有人共同信任的,任何一個(gè)頒發(fā)虛假證書(shū)的ca機(jī)構(gòu)都會(huì)造成對(duì)整個(gè)pki系統(tǒng)安全性的威脅。

為了緩解上述由于ca機(jī)構(gòu)發(fā)布虛假證書(shū)造成的可能的攻擊,業(yè)界提出了證書(shū)透明化(certificatetransparency)方案。證書(shū)透明化方案中,所有合法的證書(shū)都是對(duì)所有人公開(kāi)可見(jiàn)的。在以往的證書(shū)透明化方案中,ca機(jī)構(gòu)和證書(shū)的訂戶將自己所頒發(fā)或擁有的證書(shū)提交到一個(gè)公開(kāi)日志服務(wù)器。證書(shū)用戶在驗(yàn)證證書(shū)時(shí),需要額外地要求該證書(shū)出現(xiàn)在公開(kāi)日志服務(wù)器中;如果該證書(shū)沒(méi)有出現(xiàn)在公開(kāi)日志服務(wù)器中,則證書(shū)用戶拒絕接受該證書(shū)。同時(shí),一旦公開(kāi)日志中出現(xiàn)虛假證書(shū),該虛假證書(shū)的利益相關(guān)方就能觀察到該證書(shū),并采取其他措施減少該證書(shū)可能帶來(lái)的攻擊(如要求ca機(jī)構(gòu)撤銷(xiāo)虛假證書(shū))。

已有的證書(shū)透明化技術(shù),依賴(lài)于公開(kāi)日志服務(wù)器的可用性和正確性。尤其地,應(yīng)要求記錄證書(shū)的日志具有append-only特性,即服務(wù)器只可以向日志中添加新的內(nèi)容,而不可修改日志中已有的內(nèi)容。否則,惡意的公開(kāi)日志服務(wù)器可以私下刪除已經(jīng)公布的虛假證書(shū),使得虛假證書(shū)不被利益相關(guān)方發(fā)現(xiàn)。所以在已有的證書(shū)透明化方案中,將記錄證書(shū)的日志設(shè)計(jì)成merkletree的形式,并且公開(kāi)日志服務(wù)器需要提供一系列證據(jù)證明自身的append-only特性。這些要求提高了日志的維護(hù)、審計(jì)過(guò)程中的開(kāi)銷(xiāo)。

區(qū)塊鏈(blockchain)技術(shù)是一種去中心化的分布式數(shù)據(jù)存儲(chǔ)技術(shù)。在區(qū)塊鏈中,數(shù)據(jù)以區(qū)塊的形式組織;區(qū)塊根據(jù)產(chǎn)生時(shí)間的先后,順序地鏈接起來(lái)形成區(qū)塊鏈。區(qū)塊由區(qū)塊鏈網(wǎng)絡(luò)中的礦工通過(guò)計(jì)算工作量證明(proof-of-work,pow)產(chǎn)生。這個(gè)過(guò)程可被視作所有礦工以計(jì)算能力為權(quán)重進(jìn)行投票。只要誠(chéng)實(shí)的礦工的權(quán)重占多數(shù),最終的區(qū)塊鏈(概率上)一定是正確的。區(qū)塊鏈技術(shù)通過(guò)密碼學(xué)手段保證,一旦產(chǎn)生的信息添加至區(qū)塊鏈中就不能再被篡改或偽造,除非敵手能夠同時(shí)控制區(qū)塊鏈系統(tǒng)中超過(guò)51%的權(quán)重。

區(qū)塊鏈技術(shù)的特點(diǎn)使其可以用以實(shí)現(xiàn)證書(shū)透明化。區(qū)塊鏈中的所有信息都是公開(kāi)的。任何人都可以通過(guò)公開(kāi)的接口查詢區(qū)塊鏈數(shù)據(jù)和開(kāi)發(fā)相關(guān)應(yīng)用,因此整個(gè)系統(tǒng)信息是透明的。進(jìn)一步地,區(qū)塊鏈中的數(shù)據(jù)在網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都有備份,具有很好的可用性。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種pki中證書(shū)透明化的方法,借助區(qū)塊鏈技術(shù),在區(qū)塊鏈中實(shí)現(xiàn)證書(shū)的透明化,防止虛假證書(shū)帶來(lái)的威脅。

為解決上述技術(shù)問(wèn)題,本發(fā)明采用如下技術(shù)方案:

一種pki中證書(shū)透明化的方法,步驟包括:

1)設(shè)置一條公開(kāi)的證書(shū)區(qū)塊鏈,證書(shū)訂戶在該證書(shū)區(qū)塊鏈中發(fā)布ca為其簽發(fā)的數(shù)字證書(shū)的信息,以聲明目前在用的所有合法證書(shū);

2)上述發(fā)布的關(guān)于證書(shū)的信息由該證書(shū)訂戶簽名,簽名所用的發(fā)布密鑰對(duì)由該證書(shū)訂戶產(chǎn)生和維護(hù);

3)證書(shū)用戶驗(yàn)證證書(shū)時(shí),通過(guò)從證書(shū)區(qū)塊鏈中獲取該證書(shū)的證書(shū)訂戶發(fā)布的關(guān)于證書(shū)的信息來(lái)檢查該待驗(yàn)證證書(shū)是否有效。

進(jìn)一步地,證書(shū)區(qū)塊鏈包括多個(gè)區(qū)塊,每一區(qū)塊包含區(qū)塊產(chǎn)生的時(shí)間、上一區(qū)塊的散列值、一用以產(chǎn)生工作量證明的任意數(shù)字段、若干證書(shū)交易以及這些證書(shū)交易組成的merkle樹(shù)的樹(shù)根值。

包含在區(qū)塊中的,由證書(shū)訂戶發(fā)布的數(shù)據(jù)結(jié)構(gòu)稱(chēng)為證書(shū)交易。一個(gè)區(qū)塊可以同時(shí)包含多個(gè)證書(shū)交易,但是對(duì)于同一證書(shū)訂戶只能包含一個(gè)證書(shū)交易。證書(shū)交易需要被其發(fā)布者,也就是證書(shū)訂戶簽名,由此其他人無(wú)法冒充該證書(shū)訂戶發(fā)布證書(shū)信息。簽名所用的非對(duì)稱(chēng)密鑰對(duì),稱(chēng)為發(fā)布密鑰對(duì),其公鑰部分稱(chēng)為發(fā)布公鑰。

進(jìn)一步地,證書(shū)交易包括i型證書(shū)交易和ii型證書(shū)交易,其中,i型證書(shū)交易主要用來(lái)發(fā)布關(guān)于證書(shū)的信息,ii型證書(shū)交易主要用來(lái)維護(hù)發(fā)布密鑰對(duì)。

進(jìn)一步地,所述檢查該待驗(yàn)證證書(shū)是否有效是指檢查待驗(yàn)證的證書(shū)是否存在于相應(yīng)證書(shū)交易所包含的關(guān)于有效證書(shū)的信息中。

進(jìn)一步地,證書(shū)訂戶在證書(shū)區(qū)塊鏈中周期性地發(fā)布i型證書(shū)交易,其中包含ca為證書(shū)訂戶簽發(fā)的證書(shū),以此聲明自己目前在用的證書(shū);或者當(dāng)證書(shū)狀態(tài)發(fā)生變動(dòng)時(shí),可以隨時(shí)發(fā)布新的i型證書(shū)交易以更新自己的證書(shū)信息;其中,所述的證書(shū)狀態(tài)發(fā)生變動(dòng),是指i型證書(shū)交易中的證書(shū)被撤銷(xiāo),或者證書(shū)訂戶獲得新的數(shù)字證書(shū)。

進(jìn)一步地,證書(shū)訂戶使用ii型證書(shū)交易維護(hù)發(fā)布密鑰對(duì),具體為:首次發(fā)布證書(shū)信息前證書(shū)訂戶需要發(fā)布ii型證書(shū)交易,以初始化自己的發(fā)布密鑰對(duì);當(dāng)發(fā)布密鑰對(duì)的私鑰因?yàn)槿魏卧騺G失或者泄露時(shí),證書(shū)訂戶可以通過(guò)發(fā)布ii型證書(shū)交易重置自己的發(fā)布密鑰對(duì)。

進(jìn)一步地,i型證書(shū)交易包含的信息有:證書(shū)訂戶的標(biāo)識(shí)、證書(shū)訂戶的上一證書(shū)交易的散列值、本證書(shū)交易的有效期起止時(shí)間、證書(shū)列表、驗(yàn)證下一i型證書(shū)交易應(yīng)使用的發(fā)布公鑰、證書(shū)訂戶使用發(fā)布密鑰對(duì)的私鑰對(duì)證書(shū)交易的簽名,i型證書(shū)交易具有有限的有效期。

進(jìn)一步地,i型證書(shū)交易的證書(shū)列表包含證書(shū)訂戶所有在用的有效證書(shū),并滿足如下條件:

1)列表中證書(shū)的訂戶須與證書(shū)交易中證書(shū)訂戶的標(biāo)識(shí)一致;

2)證書(shū)應(yīng)包含完整的證書(shū)鏈,且在假設(shè)信任其根證書(shū)的前提下可驗(yàn)證通過(guò);

3)證書(shū)列表可添加上一i型證書(shū)交易的證書(shū)列表中沒(méi)有出現(xiàn)過(guò)的證書(shū);

4)上一i型證書(shū)交易的證書(shū)列表中的證書(shū)除其自然過(guò)期或者被撤銷(xiāo)外應(yīng)繼續(xù)出現(xiàn),其中,證書(shū)被撤銷(xiāo)時(shí),證書(shū)列表中應(yīng)包含相應(yīng)的crl文件,該crl文件應(yīng)包含用以驗(yàn)證此crl的完整信息(通常是一個(gè)證書(shū)鏈)。

進(jìn)一步地,ii型證書(shū)交易包含的信息有:證書(shū)訂戶的標(biāo)識(shí)、證書(shū)訂戶的上一證書(shū)交易的散列值、驗(yàn)證下一i型證書(shū)交易應(yīng)使用的發(fā)布公鑰;還包含ca機(jī)構(gòu)為證書(shū)訂戶簽發(fā)的一有效證書(shū)、該證書(shū)對(duì)應(yīng)的私鑰對(duì)該ii型證書(shū)交易的簽名,用來(lái)證明發(fā)布該證書(shū)交易的正是證書(shū)訂戶本身;還包含一證明者列表,證明者來(lái)自該證書(shū)訂戶信任的、在證書(shū)區(qū)塊鏈中已經(jīng)發(fā)布過(guò)ii型證書(shū)交易的、無(wú)不良?xì)v史記錄的其他證書(shū)訂戶,該證明者列表用來(lái)指明下一ii型交易證書(shū)的證明者的范圍;還包含一系列證明者的簽名,其中簽名的證明者應(yīng)來(lái)自上一ii型證書(shū)交易中的證明者列表,且簽名的證明者數(shù)量不小于一系統(tǒng)預(yù)設(shè)的閾值;證明者使用自己當(dāng)前的發(fā)布密鑰對(duì)的私鑰進(jìn)行簽名,在簽名之前,證明者應(yīng)檢查ii型證書(shū)交易的正確性,并使用傳統(tǒng)方法驗(yàn)證ii型證書(shū)交易中證書(shū)訂戶的證書(shū)。

進(jìn)一步地,區(qū)塊的產(chǎn)生由礦工完成;礦工是區(qū)塊鏈網(wǎng)絡(luò)中的挖礦服務(wù)器,收集并驗(yàn)證網(wǎng)絡(luò)中新出現(xiàn)的證書(shū)交易,并將合法的證書(shū)交易包含在擬發(fā)布的新的區(qū)塊當(dāng)中。

進(jìn)一步地,礦工在驗(yàn)證證書(shū)交易時(shí),需遵循i型和ii型證書(shū)交易的要求,具體包括:

對(duì)于i型證書(shū)交易,礦工需驗(yàn)證:

1)證書(shū)訂戶的上一證書(shū)交易的散列值是否符合證書(shū)區(qū)塊鏈的歷史記錄;

2)證書(shū)交易是否在有效期內(nèi);

3)證書(shū)列表包含的證書(shū)是否屬于發(fā)布該證書(shū)交易的證書(shū)訂戶;包含的crl文件是否對(duì)應(yīng)于被撤銷(xiāo)的證書(shū);證書(shū)和crl文件是否為包含完整的、可驗(yàn)證通過(guò)的、證書(shū)狀態(tài)正常的證書(shū)鏈;與前一個(gè)i型證書(shū)交易的證書(shū)列表相比,本次證書(shū)交易是否滿足證書(shū)增減要求;

4)證書(shū)交易的簽名是否正確,驗(yàn)證簽名是否正確時(shí),礦工應(yīng)使用發(fā)布交易的訂戶的上一個(gè)證書(shū)交易中公布的發(fā)布公鑰;

對(duì)于ii型證書(shū)交易,如果該交易不是發(fā)布交易的訂戶的首個(gè)證書(shū)交易,礦工需驗(yàn)證:

1)證書(shū)訂戶的上一證書(shū)交易的散列值是否符合證書(shū)區(qū)塊鏈的歷史記錄;

2)交易的證明者是否在上一ii型證書(shū)交易的證明者列表中,且數(shù)量是否不小于系統(tǒng)預(yù)設(shè)的最小值;

3)證明者使用各自的發(fā)布密鑰對(duì)的私鑰對(duì)交易的簽名是否正確;

4)發(fā)布交易的證書(shū)訂戶的證書(shū)完整且可驗(yàn)證通過(guò);

5)發(fā)布交易的證書(shū)訂戶使用4)中的證書(shū)對(duì)應(yīng)的私鑰簽名,且簽名正確;

對(duì)于ii型證書(shū)交易,如果該交易是發(fā)布交易的訂戶的首個(gè)證書(shū)交易,礦工需驗(yàn)證:

1)證書(shū)訂戶的上一證書(shū)交易的散列值為0;

2)交易的證明者的數(shù)量不小于系統(tǒng)預(yù)設(shè)的最小值;

3)證明者使用各自的發(fā)布密鑰對(duì)的私鑰簽名且簽名正確;

4)發(fā)布交易的證書(shū)訂戶的證書(shū)完整且可驗(yàn)證通過(guò);

5)發(fā)布交易的證書(shū)訂戶使用4)中證書(shū)對(duì)應(yīng)的私鑰簽名,且簽名正確。

進(jìn)一步地,礦工為擬發(fā)布的區(qū)塊計(jì)算工作量證明,并將得出的解記錄在區(qū)塊中的“任意數(shù)”字段;其他礦工收到一個(gè)新發(fā)布的區(qū)塊時(shí),首先驗(yàn)證區(qū)塊中包含的證書(shū)交易,再驗(yàn)證區(qū)塊中工作量證明的解是否正確及merkle樹(shù)的樹(shù)根取值是否正確;如果均正確,收到該區(qū)塊的礦工將這個(gè)區(qū)塊添加到自己的證書(shū)區(qū)塊鏈副本上;每個(gè)礦工都會(huì)與其它礦工交互,同步目前最長(zhǎng)的證書(shū)區(qū)塊鏈副本,并且在最長(zhǎng)的證書(shū)區(qū)塊鏈副本的基礎(chǔ)上繼續(xù)生成新的區(qū)塊。

進(jìn)一步地,驗(yàn)證證書(shū)的證書(shū)用戶應(yīng)與最長(zhǎng)的證書(shū)區(qū)塊鏈副本保持同步,證書(shū)用戶將目前得到的最長(zhǎng)的證書(shū)區(qū)塊鏈副本備份到自己的計(jì)算機(jī)中,作為證書(shū)驗(yàn)證的依據(jù);當(dāng)證書(shū)用戶收到一個(gè)證書(shū)時(shí),需要在證書(shū)區(qū)塊鏈中尋找證書(shū)訂戶發(fā)布的證書(shū)交易;當(dāng)滿足以下條件時(shí),證書(shū)驗(yàn)證通過(guò):

1)存在一有效期內(nèi)的證書(shū)交易,其證書(shū)列表中包含待驗(yàn)證的證書(shū),且距離證書(shū)區(qū)塊鏈末尾若干個(gè)區(qū)塊以上;

2)上述證書(shū)交易之后的所有屬于證書(shū)訂戶的證書(shū)交易,其證書(shū)列表中都包含待驗(yàn)證的證書(shū);

3)待驗(yàn)證的證書(shū)的根證書(shū)被證書(shū)用戶信任。

驗(yàn)證證書(shū)時(shí),證書(shū)用戶不再需要使用傳統(tǒng)的方式驗(yàn)證證書(shū)。這是因?yàn)樵谙鄳?yīng)的證書(shū)交易被加入到證書(shū)區(qū)塊鏈之前,證書(shū)列表中的所有證書(shū)鏈都已經(jīng)由礦工使用傳統(tǒng)方法驗(yàn)證通過(guò)。

本發(fā)明涉及的方案,具有以下優(yōu)點(diǎn):

1)可以增強(qiáng)pki體系的安全性。本發(fā)明提出的方案中,合法的證書(shū)被發(fā)布在證書(shū)區(qū)塊鏈中,并對(duì)所有人公開(kāi)。此時(shí),即使ca機(jī)構(gòu)簽發(fā)了虛假證書(shū),證書(shū)用戶也不會(huì)錯(cuò)誤地接受虛假證書(shū)。這是因?yàn)樘摷僮C書(shū)不會(huì)被真正的證書(shū)訂戶發(fā)布到證書(shū)區(qū)塊鏈中,也就不會(huì)被證書(shū)用戶驗(yàn)證通過(guò)。

2)和現(xiàn)有的pki體系完全兼容。在本發(fā)明提出的方案中,ca機(jī)構(gòu)的功能和現(xiàn)有的pki系統(tǒng)一致,ca不需要做任何操作上、商業(yè)模式上的改變。這也有利于本發(fā)明提出的方案的部署。

3)相比傳統(tǒng)的pki系統(tǒng),證書(shū)訂戶擁有更多的管理證書(shū)的權(quán)利。在傳統(tǒng)的pki體系中,證書(shū)的簽發(fā)與撤銷(xiāo)管理完全由ca機(jī)構(gòu)完成。而在本發(fā)明提出的方案中,證書(shū)訂戶通過(guò)發(fā)布證書(shū)交易,可以自主且顯式地限定應(yīng)該被用戶接受的證書(shū)的范圍。

4)證書(shū)依賴(lài)方不需要進(jìn)行傳統(tǒng)的證書(shū)驗(yàn)證工作。研究表明,在pki實(shí)際應(yīng)用中,一些ssl工具中對(duì)于證書(shū)驗(yàn)證的實(shí)現(xiàn)存在安全漏洞,也對(duì)數(shù)字證書(shū)應(yīng)用的安全性產(chǎn)生威脅。在本發(fā)明提出的方案中,證書(shū)依賴(lài)方不需要自己進(jìn)行傳統(tǒng)的證書(shū)驗(yàn)證,僅需要檢查證書(shū)鏈的根證書(shū)是否在信任列表中。相應(yīng)的傳統(tǒng)的證書(shū)驗(yàn)證工作,由礦工在區(qū)塊鏈產(chǎn)生階段完成。礦工使用的證書(shū)驗(yàn)證方法是公開(kāi)的、被廣泛認(rèn)可的,杜絕了不正確的證書(shū)驗(yàn)證過(guò)程可能帶來(lái)的安全威脅。

5)本發(fā)明提出的方案可用性高。由于區(qū)塊鏈?zhǔn)侨ブ行幕?、分布式的?shù)據(jù)庫(kù),網(wǎng)絡(luò)中的每一個(gè)礦工都獨(dú)立地保存區(qū)塊鏈的歷史信息。任何一個(gè)礦工的失效,都不會(huì)影響整個(gè)網(wǎng)絡(luò)中證書(shū)區(qū)塊鏈的可用性。相反,傳統(tǒng)的使用公開(kāi)日志服務(wù)器的證書(shū)透明化方案中,一旦公開(kāi)日志服務(wù)器失效或者執(zhí)行非法操作,則證書(shū)透明化方案失效。

6)本發(fā)明提出的方案具有天然的append-only特性。區(qū)塊鏈技術(shù)通過(guò)密碼學(xué)手段保證,一旦產(chǎn)生的信息添加至區(qū)塊鏈中就不能再被篡改或偽造。因此,被記錄到區(qū)塊鏈中的證書(shū)信息是append-only的。而在傳統(tǒng)的證書(shū)透明化方案中,證書(shū)日志需要設(shè)計(jì)成merkle樹(shù),并額外地設(shè)計(jì)一系列證明機(jī)制以實(shí)現(xiàn)append-only。

附圖說(shuō)明

圖1是證書(shū)用戶驗(yàn)證證書(shū)的流程示意圖。

圖2是各方數(shù)據(jù)交互示意圖。

圖3是i型證書(shū)交易的結(jié)構(gòu)示意圖。

圖4是ii型證書(shū)交易的結(jié)構(gòu)示意圖。

圖5是區(qū)塊的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖作詳細(xì)說(shuō)明如下。

針對(duì)本發(fā)明公開(kāi)的一種pki中證書(shū)透明化的方法,圖1是證書(shū)用戶采用本方法驗(yàn)證證書(shū)的流程示意圖,圖2為采用本方法各方數(shù)據(jù)交互示意圖。在此列舉一實(shí)施例,本實(shí)施例中的證書(shū)訂戶的標(biāo)識(shí)使用dns域名,相應(yīng)地,ca簽發(fā)的證書(shū)中,證書(shū)訂戶的名稱(chēng)也使用dns域名。

圖3是采用本方法實(shí)現(xiàn)證書(shū)透明化的i型證書(shū)交易的結(jié)構(gòu)示意圖。其中dnsname、type、validity分別表示證書(shū)訂戶的標(biāo)識(shí)、證書(shū)交易的類(lèi)型和有效期。type應(yīng)為類(lèi)型i。prevhash是該證書(shū)訂戶所發(fā)布的上一個(gè)證書(shū)交易的散列值。listofcertchains包含證書(shū)訂戶在用的所有有效證書(shū)。證書(shū)使用x.509標(biāo)準(zhǔn),采用der編碼。nextpublishingkey為驗(yàn)證以后的i型證書(shū)交易中簽名所使用的發(fā)布公鑰。

圖4是采用本方法實(shí)現(xiàn)證書(shū)透明化的ii型證書(shū)交易的結(jié)構(gòu)示意圖。其中dnsname、type分別表示證書(shū)訂戶的名稱(chēng)、證書(shū)交易的類(lèi)型。type應(yīng)為類(lèi)型ii。prevhash是該證書(shū)訂戶所發(fā)布的上一個(gè)證書(shū)交易的散列值。publishingkey為驗(yàn)證以后的i型證書(shū)交易簽名的發(fā)布公鑰。certifergroup限定了下一個(gè)ii型證書(shū)交易中簽名的證明者的范圍。listofcertifiers表示為當(dāng)前ii型證書(shū)交易簽名的證明者,sigbycertifiers為證明者的簽名。cert是一個(gè)證書(shū)訂戶為該證書(shū)交易發(fā)布者的有效證書(shū),sigbyowner是使用cert的私鑰對(duì)該證書(shū)交易的簽名。

圖5是采用本方法實(shí)現(xiàn)證書(shū)透明化的區(qū)塊的結(jié)構(gòu)示意圖。prevhash是區(qū)塊鏈中上一個(gè)區(qū)塊的散列值,nonce存放工作量證明的計(jì)算結(jié)果,timestamp為該區(qū)塊開(kāi)始進(jìn)行計(jì)算工作量證明的解的時(shí)間。merkletreeroot是該區(qū)塊所包含的所有證書(shū)交易組成的merkle樹(shù)的根。該區(qū)塊所有證書(shū)交易的dnsname組成listofdnsnames。以上所有字段組成區(qū)塊頭。所包含的所有證書(shū)交易,即listoftransactions組成區(qū)塊體。

本實(shí)施例中的證書(shū)用戶、證書(shū)訂戶和礦工使用p2p網(wǎng)絡(luò)實(shí)時(shí)地同步最新的區(qū)塊鏈信息。具體地,證書(shū)訂戶向p2p網(wǎng)絡(luò)中發(fā)布自己的證書(shū)交易并獲取最長(zhǎng)的證書(shū)區(qū)塊副本。礦工從p2p網(wǎng)絡(luò)中獲取最新的區(qū)塊和證書(shū)交易,以及發(fā)布新產(chǎn)生的區(qū)塊。證書(shū)用戶從p2p網(wǎng)絡(luò)中獲得最長(zhǎng)的證書(shū)區(qū)塊鏈副本的區(qū)塊頭部分。在本實(shí)施例中,p2p網(wǎng)絡(luò)采用由libjingle+stun服務(wù)器的架構(gòu),在證書(shū)訂戶端和用戶端,使用libjingle搭建p2p客戶端。

本實(shí)施例中的證書(shū)訂戶是以https服務(wù)器的形式實(shí)現(xiàn)的。在本實(shí)施例中,采用apache服務(wù)器軟件搭建https服務(wù)器,并配置服務(wù)器證書(shū)。同時(shí),對(duì)apache軟件的ssl協(xié)議進(jìn)行修改,使其支持在ssl鏈接協(xié)商階段加入關(guān)于證書(shū)交易的擴(kuò)展字段。具體地,在ssl協(xié)商過(guò)程中的serverhello階段,加入新的擴(kuò)展字段,根據(jù)自己發(fā)布的證書(shū)交易包含以下內(nèi)容:

1)一系列https服務(wù)器發(fā)布的i型證書(shū)交易(均應(yīng)包含此ssl鏈接中使用的證書(shū)),使得證書(shū)用戶可以根據(jù)證書(shū)交易驗(yàn)證證書(shū);2)上一條中的每個(gè)i型證書(shū)交易對(duì)應(yīng)的merkle樹(shù)認(rèn)證路徑,使得可以根據(jù)認(rèn)證路徑和對(duì)應(yīng)區(qū)塊頭中的merkle樹(shù)根驗(yàn)證證書(shū)交易在區(qū)塊中的存在性。

本實(shí)施例中的證書(shū)用戶是以web瀏覽器的形式實(shí)現(xiàn)的。在本實(shí)施例中,采用了chromium瀏覽器,并對(duì)證書(shū)驗(yàn)證的過(guò)程進(jìn)行了修改,實(shí)現(xiàn)了使用區(qū)塊鏈驗(yàn)證證書(shū)的功能。具體地,新的驗(yàn)證方式中,瀏覽器需要:

1)檢查收到的證書(shū)鏈的根證書(shū)是否在自身的根證書(shū)列表中;2)根據(jù)訪問(wèn)的https網(wǎng)站的域名,遍歷證書(shū)區(qū)塊鏈的區(qū)塊頭結(jié)構(gòu),尋找由訪問(wèn)的https服務(wù)器發(fā)布的、距離區(qū)塊鏈末尾6個(gè)區(qū)塊以上的、最近的i型證書(shū)交易所在的區(qū)塊,以及上述證書(shū)交易之后的、所有由訪問(wèn)的https服務(wù)器發(fā)布的i型證書(shū)交易所在的區(qū)塊;3)根據(jù)ssl握手過(guò)程中從https服務(wù)器收到的證書(shū)交易具體內(nèi)容和驗(yàn)證路徑,結(jié)合區(qū)塊頭結(jié)構(gòu)中的merkle樹(shù)根,檢查收到的證書(shū)交易是否確實(shí)被包含在對(duì)應(yīng)區(qū)塊中;4)檢查收到的證書(shū)交易是否在有效期內(nèi);5)檢查收到的ssl證書(shū)是否在證書(shū)交易所包含的證書(shū)列表中。若上述過(guò)程均通過(guò),則證書(shū)驗(yàn)證通過(guò)。

以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1