本發(fā)明涉及一種公證方法及系統(tǒng),尤其涉及一種基于聯(lián)盟鏈的DNS資源記錄公證方法及系統(tǒng)。
背景技術(shù):
隨著比特幣(Bitcoin)近年來(lái)的快速發(fā)展,其底層支撐架構(gòu)——區(qū)塊鏈(Blockchain)技術(shù)備受矚目,其研究與應(yīng)用熱度也不斷提高。
區(qū)塊鏈技術(shù)起源于2008年由比特幣之父,日裔美國(guó)人中本聰發(fā)表的論文《比特幣:一種點(diǎn)對(duì)點(diǎn)電子現(xiàn)金系統(tǒng)》。文中提到,區(qū)塊鏈?zhǔn)且环N數(shù)據(jù)結(jié)構(gòu),也是該電子現(xiàn)金系統(tǒng)的核心技術(shù)。該系統(tǒng)的實(shí)現(xiàn)原理是,利用區(qū)塊鏈讓系統(tǒng)中的任意多個(gè)節(jié)點(diǎn)把一段時(shí)間內(nèi)系統(tǒng)交互的數(shù)據(jù),通過(guò)密碼學(xué)算法計(jì)算并記錄到一個(gè)區(qū)塊(Block),并且生成該區(qū)塊的指紋以用于驗(yàn)證和鏈接下一個(gè)區(qū)塊,系統(tǒng)所有參與節(jié)點(diǎn)共同認(rèn)定記錄的真實(shí)性。
在區(qū)塊鏈中,一枚電子貨幣是一串?dāng)?shù)字簽名:在進(jìn)行交易時(shí),每一位電子貨幣所有者通過(guò)對(duì)前一次交易和下一位擁有者的公鑰(Public key)簽署一個(gè)隨機(jī)散列的數(shù)字簽名,并將這個(gè)簽名附加在這枚電子貨幣的末尾,電子貨幣就發(fā)送給了下一位所有者。而收款人通過(guò)對(duì)簽名進(jìn)行檢驗(yàn),就能夠驗(yàn)證該鏈條的所有者。
在區(qū)塊鏈中,為了解決交易信息如何寫(xiě)入?yún)^(qū)塊的問(wèn)題,區(qū)塊鏈中引入了工作量證明機(jī)制如圖1所示,通過(guò)區(qū)塊中補(bǔ)增一個(gè)隨機(jī)數(shù),使得該給定區(qū)塊的隨機(jī)散列值滿足所需的數(shù)目的0。而通過(guò)反復(fù)嘗試來(lái)找到該隨機(jī)數(shù)的過(guò)程,即構(gòu)建了一個(gè)工作量證明機(jī)制。只要CPU耗費(fèi)的工作量能夠滿足該工作量證明機(jī)制,那么除非重新完成相當(dāng)?shù)墓ぷ髁?,該區(qū)塊的信息就不可更改。同時(shí),如果要更改該區(qū)塊中的信息,就需要重新完成之后所有區(qū)塊的全部工作量。
工作量證明機(jī)制引入了對(duì)某一個(gè)特定值的掃描工作,比如采用SHA-256算法時(shí),隨機(jī)散列值以一個(gè)或多個(gè)0開(kāi)始。那么隨著0的數(shù)目的上升,找到這個(gè)解所需要的工作量將呈指數(shù)增長(zhǎng),而檢驗(yàn)結(jié)果僅需要一次隨機(jī)散列運(yùn)算。在區(qū)塊鏈中,區(qū)塊的產(chǎn)生過(guò)程主要包括五個(gè)步驟:
1)新的交易向全網(wǎng)進(jìn)行廣播;
2)每一個(gè)節(jié)點(diǎn)都將收到的交易信息納入一個(gè)區(qū)塊中;
3)每個(gè)節(jié)點(diǎn)都嘗試在自己的區(qū)塊中找到一個(gè)具有足夠難度的工作量證明;
4)當(dāng)一個(gè)節(jié)點(diǎn)找到了一個(gè)工作量證明,它就向全網(wǎng)進(jìn)行廣播;
5)當(dāng)且僅當(dāng)包含在該區(qū)塊中的所有交易都是有效的且之前未存在過(guò)的,其他節(jié)點(diǎn)才認(rèn)同該區(qū)塊的有效性;
區(qū)塊鏈技術(shù)的核心優(yōu)勢(shì)是去中心化,能夠通過(guò)運(yùn)用數(shù)據(jù)加密、時(shí)間戳、分布式共識(shí)和經(jīng)濟(jì)激勵(lì)等手段,在節(jié)點(diǎn)無(wú)需互相信任的分布式系統(tǒng)中實(shí)現(xiàn)基于去中心化信用的點(diǎn)對(duì)點(diǎn)交易、協(xié)調(diào)與協(xié)作,從而為解決中心化機(jī)構(gòu)普遍存在的高成本、低效率和數(shù)據(jù)存儲(chǔ)不安全等問(wèn)題提供了解決方案。近年來(lái),區(qū)塊鏈的商業(yè)應(yīng)用呈現(xiàn)出爆發(fā)式增長(zhǎng)態(tài)勢(shì),被認(rèn)為是繼大型機(jī)、個(gè)人電腦、互聯(lián)網(wǎng)、移動(dòng)/社交網(wǎng)絡(luò)之后計(jì)算范式的第五次顛覆式創(chuàng)新。
區(qū)塊鏈技術(shù)中的兩項(xiàng)重要的功能:哈希和安全時(shí)間戳,為文件真實(shí)性的驗(yàn)證和認(rèn)證提供了新的可能。
所謂哈希就是針對(duì)計(jì)算機(jī)上任何內(nèi)容的文件所運(yùn)行的算法(一份文件、一個(gè)基因組文件、一張圖片或者一段視頻等),運(yùn)算結(jié)果將會(huì)根據(jù)內(nèi)容壓縮成一串?dāng)?shù)字字母組成的字符串,而這字符串將不能重新反向推出原來(lái)的內(nèi)容。在任何時(shí)候如果需要重新確認(rèn)內(nèi)容,那么同樣的哈希算法針對(duì)內(nèi)容進(jìn)行計(jì)算,只要文件沒(méi)有任何變化,那么哈希算法所獲得的字符串(簽名)將不會(huì)有任何變化。
由于哈希散列非常短,足夠放在區(qū)塊鏈交易的文本內(nèi),因此當(dāng)交易發(fā)生時(shí)可以把它作為一個(gè)安全時(shí)間戳作為交易證明。通過(guò)哈希,原始文件的內(nèi)容基本可以編碼進(jìn)入?yún)^(qū)塊鏈,則區(qū)塊鏈能夠成為一個(gè)文件登記表。
根據(jù)實(shí)際應(yīng)用場(chǎng)景和需求,區(qū)塊鏈技術(shù)已經(jīng)演化出三種應(yīng)用模式,即公共鏈、聯(lián)盟鏈和私有鏈。其中,公共鏈?zhǔn)峭耆ブ行幕膮^(qū)塊鏈,分布式系統(tǒng)的任何節(jié)點(diǎn)均可參與鏈上數(shù)據(jù)的讀寫(xiě)、驗(yàn)證和共識(shí)過(guò)程,其中比特幣是公共鏈的典型代表。聯(lián)盟鏈則是部分去中心化(或稱多中心化)的區(qū)塊鏈,適用于多個(gè)實(shí)體構(gòu)成的組織或聯(lián)盟,其共識(shí)過(guò)程受到預(yù)定義的一組節(jié)點(diǎn)控制,例如生成區(qū)塊需要獲得10個(gè)預(yù)選的共識(shí)節(jié)點(diǎn)中的5個(gè)節(jié)點(diǎn)確認(rèn)。私有鏈則是完全中心化的區(qū)塊鏈,適用于特定機(jī)構(gòu)的內(nèi)部數(shù)據(jù)管理與審計(jì)等,其寫(xiě)入權(quán)限由中心機(jī)構(gòu)控制,而讀取權(quán)限可視需求有選擇性地對(duì)外開(kāi)放。
作為第一批將區(qū)塊鏈技術(shù)運(yùn)用于非貨幣領(lǐng)域的應(yīng)用之一,Namecoin能夠用于檢驗(yàn)DNS注冊(cè),并能夠免于網(wǎng)絡(luò)審查。其基本思想是將域名注冊(cè)信息永久性的寫(xiě)入?yún)^(qū)塊鏈中,而不會(huì)被任何政府控制域名。Namecoin通過(guò)點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)來(lái)共享一張DNS查詢表,只需運(yùn)行去中心化DNS服務(wù)器軟件,在該系統(tǒng)中注冊(cè)的域名即可以被訪問(wèn)。Namecoin目前只能用作.bit域名的注冊(cè),除此之外在當(dāng)前互聯(lián)網(wǎng)中,瀏覽器默認(rèn)不支持解析.bit網(wǎng)址,需要安裝插件,這個(gè)問(wèn)題會(huì)導(dǎo)致大部分人無(wú)法訪問(wèn).bit網(wǎng)站。另外,根據(jù)工信部發(fā)布的有關(guān)規(guī)定,.bit無(wú)法備案就不能在中國(guó)境內(nèi)機(jī)房托管,進(jìn)一步造成.bit網(wǎng)站無(wú)法使用。由于Namecoin的匿名、低成本、無(wú)法審查的特性,給非法行為也提供了便利。綜合各種因素,Namecoin難以向大眾普及。
作為一種中心化的互聯(lián)網(wǎng)關(guān)鍵基礎(chǔ)設(shè)施,DNS(Domain Name System,域名管理系統(tǒng))是一種實(shí)現(xiàn)域名與IP地址相互映射的分布式數(shù)據(jù)庫(kù),具有較高的查詢和管理效率,是網(wǎng)民訪問(wèn)網(wǎng)絡(luò)應(yīng)用的唯一入口。
在DNS中,每個(gè)區(qū)域數(shù)據(jù)庫(kù)文件都是由資源記錄構(gòu)成的,包括SOA記錄、NS記錄、A記錄、CNAME記錄、MX記錄和PTR記錄。但作為互聯(lián)網(wǎng)中的早期協(xié)議,DNS是建立在互信模型之上的開(kāi)放體系結(jié)構(gòu),缺乏適當(dāng)?shù)腄NS信息的保障和認(rèn)證機(jī)制。因此,攻擊者可發(fā)動(dòng)中間人攻擊注入錯(cuò)誤的響應(yīng)信息,并在檢驗(yàn)其合法的情況下被查詢者接收,該類攻擊被稱作DNS欺騙攻擊(DNS Spoofing)。因此如何保障查詢者接收到的DNS資源記錄的真實(shí)性是保障DNS系統(tǒng)安全的根本。
DNS安全擴(kuò)展(Domain Name System Security Extention,DNSSEC)是互聯(lián)網(wǎng)工程任務(wù)組(Internet Engineering Task Force,IETF)于1997年提出的技術(shù)體系,用來(lái)保障DNS數(shù)據(jù)在傳輸過(guò)程中不被更改。通過(guò)使用公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)在DNS原有的體系結(jié)構(gòu)上添加數(shù)字簽名,對(duì)DNS消息提供權(quán)限認(rèn)證和信息完整性驗(yàn)證。
然而DNSSEC機(jī)制中簽署域名過(guò)程復(fù)雜,通過(guò)DNSSEC簽署的域名可能造成內(nèi)容泄露、題,導(dǎo)致DNSSEC部署代價(jià)高,最終造成全球DNSSEC部署緩慢。因此,亟待提出一種創(chuàng)新的方案,在能保證DNS請(qǐng)求者所接收應(yīng)答報(bào)文的真實(shí)性的同時(shí),又可以免去由于DNSSEC造成的諸如密鑰管理、資源記錄簽名及簽名驗(yàn)證所帶來(lái)的巨大開(kāi)銷。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題,本發(fā)明的目的在于提供一種基于聯(lián)盟鏈的DNS資源記錄公證方法及系統(tǒng),用于DNS資源記錄的存儲(chǔ)和真實(shí)性驗(yàn)證。
本發(fā)明的技術(shù)方案為:
一種基于聯(lián)盟鏈的DNS資源記錄公證方法,其步驟為:
1)選取若干參與實(shí)體構(gòu)建聯(lián)盟鏈;
2)用戶提交一DNS資源記錄給該聯(lián)盟鏈網(wǎng)絡(luò)中的一參與實(shí)體;
3)該參與實(shí)體對(duì)該DNS資源記錄真實(shí)性進(jìn)行驗(yàn)證通過(guò)后,生成該DNS資源記錄的交易信息,并將該交易信息在該聯(lián)盟鏈中進(jìn)行廣播;
4)該聯(lián)盟鏈中的參與實(shí)體將該交易收錄進(jìn)區(qū)塊中,并將區(qū)塊進(jìn)行打包進(jìn)該聯(lián)盟鏈中;
5)當(dāng)DNS權(quán)威服務(wù)器收到DNS解析服務(wù)器的DNS資源記錄請(qǐng)求時(shí),發(fā)送應(yīng)答的DNS資源記錄給該DNS解析服務(wù)器;
6)該DNS解析服務(wù)器對(duì)該DNS資源記錄的真實(shí)性進(jìn)行鑒定:若該聯(lián)盟鏈中存在該DNS資源記錄的相關(guān)信息,則該DNS資源記錄為真,否則該DNS資源記錄發(fā)生了偽造或者篡改。
進(jìn)一步的,生成該DNS資源記錄的交易信息的方法為:首先對(duì)該DNS資源記錄進(jìn)行哈希計(jì)算,得到該DNS資源記錄的哈希值;然后生成該哈希值和安全時(shí)間戳的摘要,然后根據(jù)該摘要生成該DNS資源記錄的交易信息。
進(jìn)一步的,該DNS資源記錄的相關(guān)信息為該DNS資源記錄的哈希值。
進(jìn)一步的,該DNS解析服務(wù)器通過(guò)DNS資源記錄查詢API對(duì)該DNS資源記錄的真實(shí)性進(jìn)行鑒定。
進(jìn)一步的,所述參與實(shí)體為域名注冊(cè)管理機(jī)構(gòu)或者互聯(lián)網(wǎng)管理機(jī)構(gòu)。
進(jìn)一步的,用戶首先提供電子貨幣DNScoin,然后提交該DNS資源記錄給該聯(lián)盟鏈網(wǎng)絡(luò)中的一參與實(shí)體。
一種基于聯(lián)盟鏈的DNS資源記錄公證系統(tǒng),其特征在于,包括用戶層、審核層、DNS資源記錄編碼層和聯(lián)盟鏈;其中,聯(lián)盟鏈由若干參與實(shí)體構(gòu)建;
用戶層,用于用戶提交DNS資源記錄給該聯(lián)盟鏈網(wǎng)絡(luò)中的一參與實(shí)體;
審核層,用于對(duì)DNS資源記錄真實(shí)性進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)將該DNS資源記錄發(fā)送給DNS資源記錄編碼層;
DNS資源記錄編碼層,用于生成該DNS資源記錄的交易信息,并將該交易信息在該聯(lián)盟鏈中進(jìn)行廣播;
聯(lián)盟鏈,用于將該交易收錄進(jìn)參與實(shí)體的區(qū)塊中,并將區(qū)塊進(jìn)行打包進(jìn)該聯(lián)盟鏈中。
如圖2所示,該系統(tǒng)包含用戶層、審核層、DNS資源記錄編碼層和聯(lián)盟鏈四層機(jī)構(gòu),在當(dāng)前DNS系統(tǒng)架構(gòu)不被改變的情形下,既保證DNS請(qǐng)求者所接收應(yīng)答報(bào)文的真實(shí)性,又可以免去由于DNSSEC造成的諸如密鑰管理、資源記錄簽名及簽名驗(yàn)證所帶來(lái)的巨大開(kāi)銷。
(1)用戶層:用戶支付電子貨幣DNScoin,通過(guò)系統(tǒng)接口提交DNS資源記錄;
(2)審核層:審核層對(duì)用戶層中提交的DNS資源記錄信息真實(shí)性進(jìn)行驗(yàn)證,審核通過(guò)后,DNS資源記錄則提交至DNS資源記錄編碼層;
(3)DNS資源記錄編碼層:經(jīng)人工審核系統(tǒng)提交的DNS資源記錄,對(duì)該DNS資源記錄進(jìn)行哈希后添加安全時(shí)間戳,然后生成其摘要信息,然后根據(jù)摘要信息構(gòu)造成“交易”,并將“交易”在聯(lián)盟鏈中進(jìn)行廣播;
(4)聯(lián)盟鏈:聯(lián)盟鏈中的節(jié)點(diǎn)(即參與實(shí)體)將交易收錄進(jìn)區(qū)塊中,并將區(qū)塊進(jìn)行打包進(jìn)聯(lián)盟鏈中,在本系統(tǒng)中聯(lián)盟鏈的參與實(shí)體為國(guó)內(nèi)外的域名注冊(cè)管理機(jī)構(gòu)或者互聯(lián)網(wǎng)管理機(jī)構(gòu)。
基于DNS資源記錄公證系統(tǒng)的域名解析流程如下:
(1)DNS解析服務(wù)器發(fā)送DNS資源記錄請(qǐng)求,;
(2)DNS權(quán)威服務(wù)器發(fā)送DNS資源記錄應(yīng)答;
(3)DNS解析服務(wù)器通過(guò)DNS資源記錄查詢API(Application Programming Interface,應(yīng)用程序編程接口)對(duì)資源記錄的真實(shí)性進(jìn)行鑒定;
鑒定時(shí),DNS解析服務(wù)器將DNS資源記錄發(fā)送給聯(lián)盟鏈;若聯(lián)盟鏈中存在應(yīng)答DNS資源記錄的哈希值,則應(yīng)答DNS資源記錄為真,否則,應(yīng)答DNS資源記錄發(fā)生了偽造或者篡改。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:
(1)本發(fā)明提出了一種去中心化的DNS資源記錄存儲(chǔ)及真實(shí)性驗(yàn)證機(jī)制,在不存在中心化的硬件或管理機(jī)構(gòu)的情況下,防止了黑客對(duì)DNS數(shù)據(jù)的攻擊和篡改;
(2)本發(fā)明通過(guò)調(diào)用DNS資源記錄真實(shí)性查詢API即可驗(yàn)證記錄的真實(shí)性,避免了DNSSEC機(jī)制中簽名、驗(yàn)證簽名交互過(guò)程的造成DNS報(bào)文長(zhǎng)度過(guò)大等一系列問(wèn)題;
(3)本發(fā)明利用聯(lián)盟鏈的機(jī)制實(shí)現(xiàn)DNS資源記錄的存儲(chǔ)和公證,且聯(lián)盟鏈的實(shí)體由國(guó)內(nèi)外域名注冊(cè)管理機(jī)構(gòu)及互聯(lián)網(wǎng)管理機(jī)構(gòu)構(gòu)成。也就是說(shuō),DNS資源記錄的真實(shí)性由相關(guān)互聯(lián)網(wǎng)管理機(jī)構(gòu)共同進(jìn)行公證,對(duì)于互聯(lián)網(wǎng)的治理具有積極作用;
(4)本發(fā)明所提出方法中,由構(gòu)成聯(lián)盟鏈的實(shí)體節(jié)點(diǎn)負(fù)責(zé)完成區(qū)塊的形成(即“挖礦”),并隨著區(qū)塊的產(chǎn)生獲得相應(yīng)的收入。與此同時(shí),用戶需支付相應(yīng)的DNScoin才能提交記錄。因此本發(fā)明對(duì)于域名產(chǎn)業(yè)新經(jīng)濟(jì)體系的形成具有良好的促進(jìn)作用。
附圖說(shuō)明
圖1為工作量證明結(jié)構(gòu)圖;
圖2為本發(fā)明基于聯(lián)盟區(qū)塊鏈的DNS資源記錄公證系統(tǒng)架構(gòu);
圖3為本發(fā)明基于DNS資源記錄公證系統(tǒng)的域名解析流程。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,可以理解的是,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
DNS資源記錄在該系統(tǒng)中的存儲(chǔ)流程:
(1)用戶層:用戶支付0.1個(gè)DNScoin,通過(guò)系統(tǒng)接口提交一條域名blockchain.cn的A記錄;
(2)審核層:審核層對(duì)用戶層中提交的記錄信息真實(shí)性進(jìn)行驗(yàn)證,審核通過(guò)后,該條A記錄則提交至DNS資源記錄編碼層;
(3)DNS資源記錄編碼層:經(jīng)人工審核系統(tǒng)提交的A記錄,經(jīng)過(guò)哈希和安全時(shí)間戳生成該DNS資源記錄的摘要,然后根據(jù)摘要構(gòu)造成“交易”,并將“交易”在聯(lián)盟鏈中進(jìn)行廣播;
(4)聯(lián)盟鏈:聯(lián)盟鏈中的節(jié)點(diǎn)將交易收錄進(jìn)區(qū)塊中,并將區(qū)塊進(jìn)行打包進(jìn)聯(lián)盟鏈中,在本系統(tǒng)中聯(lián)盟鏈的參與實(shí)體為國(guó)內(nèi)外的域名注冊(cè)管理機(jī)構(gòu)或者互聯(lián)網(wǎng)管理機(jī)構(gòu)。
基于DNS資源記錄公證系統(tǒng)的域名解析流程,如圖3所示,其步驟為:
(1)DNS解析服務(wù)器向權(quán)威服務(wù)器發(fā)送域名blockchain.cn的A記錄請(qǐng)求;
(2)DNS權(quán)威服務(wù)器向DNS解析服務(wù)器返回blockchain.cn的A記錄;
(3)DNS解析服務(wù)器通過(guò)DNS資源記錄查詢API對(duì)返回的blockchain.cn的A記錄的真實(shí)性進(jìn)行鑒定;
(4)經(jīng)查詢,聯(lián)盟鏈中存在blockchain.cn的A記錄的哈希值,表明該條記錄沒(méi)有被篡改。