本申請(qǐng)實(shí)施例涉及身份識(shí)別技術(shù)領(lǐng)域,尤其涉及基基于區(qū)塊鏈的身份認(rèn)證方法、認(rèn)證服務(wù)器及用戶終端。
背景技術(shù):
身份認(rèn)證,是指在計(jì)算機(jī)及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中確認(rèn)操作者身份的過(guò)程,從而確定該用戶是否具有對(duì)某種資源的訪問(wèn)和使用權(quán)限,進(jìn)而使計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)的訪問(wèn)策略能夠可靠、有效地執(zhí)行,防止攻擊者假冒合法用戶獲得資源的訪問(wèn)權(quán)限,保證系統(tǒng)和數(shù)據(jù)的安全,以及授權(quán)訪問(wèn)者的合法利益。
如圖1所示,在傳統(tǒng)第三方身份認(rèn)證系統(tǒng)中,假設(shè)應(yīng)用服務(wù)器A需要確認(rèn)用戶B的身份,主要流程如下:1.1、用戶B向第三方認(rèn)證服務(wù)器C發(fā)送身份認(rèn)證請(qǐng)求,請(qǐng)求中包含應(yīng)用服務(wù)器A要求的信息;1.2、第三方認(rèn)證服務(wù)器C對(duì)收到的請(qǐng)求進(jìn)行驗(yàn)證,通過(guò)后對(duì)應(yīng)用服務(wù)器A要求的信息進(jìn)行簽名,然后將認(rèn)證信息返回給用戶B,認(rèn)證信息包含上述的簽名;1.3、用戶B向應(yīng)用服務(wù)器A發(fā)送認(rèn)證信息,認(rèn)證信息中包含上述的簽名;1.4、應(yīng)用服務(wù)器A根據(jù)簽名對(duì)用戶B的身份進(jìn)行驗(yàn)證,最后向用戶B返回認(rèn)證結(jié)果。
但是,發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)中的方式至少存在下述問(wèn)題:在傳統(tǒng)第三方身份認(rèn)證系統(tǒng)中,第三方認(rèn)證服務(wù)器將收到用戶登錄應(yīng)用服務(wù)器的信息,如果第三方認(rèn)證服務(wù)器出現(xiàn)信息泄露將會(huì)對(duì)用戶和應(yīng)用服務(wù)器造成重大風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問(wèn)題,提出了本申請(qǐng)實(shí)施例以便提供一種解決上述問(wèn)題的基于區(qū)塊鏈的身份認(rèn)證方法、認(rèn)證服務(wù)器及用戶終端。
依據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種基于區(qū)塊鏈的身份認(rèn)證方法,包括:對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給用戶終端;接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求;根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息;接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種基于區(qū)塊鏈的身份認(rèn)證方法,包括:向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收認(rèn)證服務(wù)器對(duì)身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息;根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè);注冊(cè)成功后向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息;將身份認(rèn)證信息提供給智能合約,以供智能合約根據(jù)身份認(rèn)證信息生成程序運(yùn)行結(jié)果,程序運(yùn)行結(jié)果用于提供給認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種認(rèn)證服務(wù)器,包括:簽名模塊,用于對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給用戶終端;接收模塊,用于接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求;認(rèn)證模塊,用于根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息;驗(yàn)證模塊,用于接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種用戶終端,包括:簽名接收模塊,用于向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收認(rèn)證服務(wù)器對(duì)身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息;身份注冊(cè)模塊,用于根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè);認(rèn)證請(qǐng)求模塊,用于注冊(cè)成功后向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息;認(rèn)證信息傳遞模塊,用于將身份認(rèn)證信息提供給智能合約,以供智能合約根據(jù)身份認(rèn)證信息生成程序運(yùn)行結(jié)果,程序運(yùn)行結(jié)果用于提供給認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
在本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法、認(rèn)證服務(wù)器及用戶終端中,能夠?qū)⒂脩羯矸菡J(rèn)證信息寫(xiě)入智能合約中,并利用區(qū)塊鏈的智能合約來(lái)校驗(yàn)用戶信息。由此一來(lái),一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
上述說(shuō)明僅是本申請(qǐng)實(shí)施例技術(shù)方案的概述,為了能夠更清楚了解本申請(qǐng)實(shí)施例的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本申請(qǐng)實(shí)施例的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本申請(qǐng)的具體實(shí)施方式。
附圖說(shuō)明
一個(gè)或多個(gè)實(shí)施例通過(guò)與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說(shuō)明,這些示例性說(shuō)明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類(lèi)似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1是現(xiàn)有技術(shù)中身份認(rèn)證方法的交互序列圖;
圖2是本申請(qǐng)實(shí)施例一提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;
圖3是本申請(qǐng)實(shí)施例二提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;
圖4是本申請(qǐng)實(shí)施例三提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;
圖5是本申請(qǐng)實(shí)施例四提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖;
圖6是本申請(qǐng)實(shí)施例五提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖;
圖7是本申請(qǐng)實(shí)施例六提供的一種用戶終端的結(jié)構(gòu)示意圖;
圖8是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法中身份注冊(cè)流程的交互序列圖;
圖9是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法中身份認(rèn)證流程的交互序列圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
實(shí)施例一
圖2是本申請(qǐng)實(shí)施例一提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖。如圖2所示,該方法包括:
步驟S210:對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給用戶終端。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,需要對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性,然后將簽名后的身份注冊(cè)信息提供給用戶終端,方便其將簽名后的身份注冊(cè)信息發(fā)送給區(qū)塊鏈中的智能合約。
步驟S220:接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求。
在步驟S220中,僅接收完成了身份注冊(cè)的用戶終端發(fā)送的身份認(rèn)證請(qǐng)求,由此可以保證發(fā)送身份認(rèn)證請(qǐng)求的用戶終端是真實(shí)正確的用戶終端,而非假冒偽裝的用戶終端。
其中,智能合約是指一套以數(shù)字形式定義的承諾,包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。其中,承諾指的是合約參與方同意的(經(jīng)常是相互的)權(quán)利和義務(wù)。這些承諾定義了合約的本質(zhì)和目的;而數(shù)字形式表明智能合約建立的權(quán)利和義務(wù),是由一臺(tái)計(jì)算機(jī)或者計(jì)算機(jī)網(wǎng)絡(luò)執(zhí)行的。而區(qū)塊鏈技術(shù)是比特幣的底層技術(shù),實(shí)質(zhì)上是一個(gè)分布式的數(shù)據(jù)庫(kù)賬本,記載了所有的交易記錄。區(qū)塊鏈?zhǔn)且淮褂妹艽a學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊。這項(xiàng)技術(shù)也因其安全、便捷的特性逐漸得到了銀行與金融業(yè)的關(guān)注。目前越來(lái)越多的領(lǐng)域嘗試使用區(qū)塊鏈技術(shù)來(lái)解決現(xiàn)有的問(wèn)題和不足。
相應(yīng)的,與區(qū)塊鏈結(jié)合的智能合約是一段代碼和數(shù)據(jù)的集合,部署在區(qū)塊鏈網(wǎng)絡(luò)上運(yùn)行。同時(shí)智能合約有自己的區(qū)塊鏈賬戶,在時(shí)間或事件的驅(qū)動(dòng)下能自動(dòng)執(zhí)行一些功能,如可以在相互之間傳遞信息,修改區(qū)塊鏈的狀態(tài)比如賬戶信息等。與區(qū)塊鏈結(jié)合的智能合約最大的特點(diǎn)是圖靈完備,通俗來(lái)說(shuō)可以完全模擬一臺(tái)計(jì)算機(jī)所能做的所有事情。
步驟S230:根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息。
在收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,根據(jù)身份認(rèn)證請(qǐng)求中的相關(guān)信息生成對(duì)應(yīng)的身份認(rèn)證信息,并將該身份認(rèn)證信息返回給發(fā)送請(qǐng)求的用戶終端。
步驟S240:接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
用戶終端將上述身份認(rèn)證信息發(fā)送到區(qū)塊鏈中的智能合約中后,智能合約將執(zhí)行寫(xiě)入數(shù)據(jù)操作,將上述身份認(rèn)證信息寫(xiě)入到智能合約中。在智能合約完成寫(xiě)入數(shù)據(jù)操作后,接收其發(fā)送的程序運(yùn)行結(jié)果,對(duì)上述程序運(yùn)行結(jié)果進(jìn)行比對(duì)驗(yàn)證,最后將身份驗(yàn)證結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份認(rèn)證過(guò)程。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法,一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
實(shí)施例二
圖3是本申請(qǐng)實(shí)施例二提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該方法的執(zhí)行主體優(yōu)選為認(rèn)證服務(wù)器。如圖3所示,該方法包括:
步驟S310:將預(yù)設(shè)的智能合約廣播到區(qū)塊鏈中。
具體地,將預(yù)設(shè)的智能合約以區(qū)塊鏈交易的形式廣播到區(qū)塊鏈網(wǎng)絡(luò)上,經(jīng)過(guò)多數(shù)節(jié)點(diǎn)的驗(yàn)證,使該智能合約達(dá)成區(qū)塊鏈網(wǎng)絡(luò)上的共識(shí),然后該智能合約便可以運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)上。其中,上述智能合約的結(jié)構(gòu)分為四個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、預(yù)存的認(rèn)證服務(wù)器公鑰、數(shù)據(jù)部分和程序部分,且該智能合約的程序部分能夠?qū)崿F(xiàn)兩個(gè)功能,一是向數(shù)據(jù)部分寫(xiě)入數(shù)據(jù),即用于對(duì)接收到的數(shù)據(jù)執(zhí)行數(shù)據(jù)寫(xiě)入操作;二是校驗(yàn)已寫(xiě)入數(shù)據(jù)部分中的數(shù)據(jù),即根據(jù)預(yù)存的認(rèn)證服務(wù)器的公鑰與接收到的簽名內(nèi)容和簽名來(lái)校驗(yàn)簽名真?zhèn)巍?/p>
步驟S320:對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給用戶終端。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,需要對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性,然后將簽名后的身份注冊(cè)信息提供給用戶終端,方便其將簽名后的身份注冊(cè)信息發(fā)送給區(qū)塊鏈中的智能合約。其中,上述身份注冊(cè)信息包括但不限于用戶終端的區(qū)塊鏈賬戶或用戶名。
步驟S330:接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求。
其中,用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)的步驟具體包括:用戶終端將簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及智能合約的區(qū)塊鏈賬戶地址發(fā)送給智能合約;智能合約根據(jù)認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定認(rèn)證服務(wù)器的公鑰,根據(jù)公鑰對(duì)簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給用戶終端以及認(rèn)證服務(wù)器。
在步驟S330中,僅接收完成了身份注冊(cè)的用戶終端發(fā)送的身份認(rèn)證請(qǐng)求,由此可以保證發(fā)送身份認(rèn)證請(qǐng)求的用戶終端是真實(shí)正確的用戶終端,而非假冒偽裝的用戶終端。其中,身份認(rèn)證請(qǐng)求包括登錄類(lèi)型的身份認(rèn)證請(qǐng)求以及注銷(xiāo)類(lèi)型的身份認(rèn)證請(qǐng)求。
步驟S340:根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息。
具體地,在收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,隨機(jī)生成身份認(rèn)證信息,將身份認(rèn)證信息返回給用戶終端。其中,所述身份認(rèn)證信息包括:隨機(jī)數(shù)和/或隨機(jī)序列。
步驟S350:接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
用戶終端將上述身份認(rèn)證信息發(fā)送到區(qū)塊鏈中的智能合約中后,智能合約將執(zhí)行寫(xiě)入數(shù)據(jù)操作,將上述身份認(rèn)證信息寫(xiě)入到智能合約中。在智能合約完成寫(xiě)入數(shù)據(jù)操作后,接收其發(fā)送的程序運(yùn)行結(jié)果,對(duì)上述程序運(yùn)行結(jié)果進(jìn)行比對(duì)驗(yàn)證,最后將身份驗(yàn)證結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份認(rèn)證過(guò)程。
其中,程序運(yùn)行結(jié)果具體包括:智能合約根據(jù)身份認(rèn)證信息執(zhí)行寫(xiě)入操作后的寫(xiě)入操作結(jié)果,以及智能合約根據(jù)身份認(rèn)證信息以及預(yù)存的認(rèn)證服務(wù)器的公鑰進(jìn)行校驗(yàn)后的校驗(yàn)操作結(jié)果。對(duì)應(yīng)地,上述根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證的步驟具體包括:當(dāng)程序運(yùn)行結(jié)果與身份認(rèn)證信息匹配時(shí),確定用戶終端的身份驗(yàn)證結(jié)果為成功;當(dāng)程序運(yùn)行結(jié)果與身份認(rèn)證信息不匹配時(shí),確定用戶終端的身份驗(yàn)證結(jié)果為失敗。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法能夠?qū)⒂脩羯矸菡J(rèn)證信息寫(xiě)入智能合約中,并利用區(qū)塊鏈的智能合約來(lái)校驗(yàn)用戶信息。由此一來(lái),一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
實(shí)施例三
圖4是本申請(qǐng)實(shí)施例三提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,圖4所示的方法的執(zhí)行主體可以為用戶終端。如圖4所示,該方法包括:
步驟S410:向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收認(rèn)證服務(wù)器對(duì)身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,用戶終端需要向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,并接收經(jīng)過(guò)認(rèn)證服務(wù)器簽名后的身份注冊(cè)信息。通過(guò)認(rèn)證服務(wù)器的簽名可以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性。
步驟S420:根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)。
具體地,將簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及智能合約的區(qū)塊鏈賬戶地址發(fā)送給智能合約;則智能合約根據(jù)認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定認(rèn)證服務(wù)器的公鑰,根據(jù)公鑰對(duì)簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給用戶終端以及認(rèn)證服務(wù)器。
步驟S430:注冊(cè)成功后向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息。
在注冊(cè)成功后,用戶終端向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,該請(qǐng)求包括但不限于登錄類(lèi)型的請(qǐng)求和注銷(xiāo)類(lèi)型的請(qǐng)求。接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息,該信息中包含了認(rèn)證服務(wù)器隨機(jī)生成的隨機(jī)數(shù)和/或隨機(jī)序列。
步驟S440:將身份認(rèn)證信息提供給智能合約,以供智能合約根據(jù)身份認(rèn)證信息生成程序運(yùn)行結(jié)果,程序運(yùn)行結(jié)果用于提供給認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
具體地,用戶終端將身份認(rèn)證信息發(fā)送給區(qū)塊鏈網(wǎng)絡(luò)中的智能合約,智能合約的程序部分根據(jù)該身份認(rèn)證信息執(zhí)行寫(xiě)入數(shù)據(jù)功能,將認(rèn)證隨機(jī)信息寫(xiě)入智能合約的數(shù)據(jù)部分,之后認(rèn)證服務(wù)器將根據(jù)智能合約的程序運(yùn)行結(jié)果對(duì)認(rèn)證信息進(jìn)行驗(yàn)證,最后將驗(yàn)證結(jié)果發(fā)送給用戶終端。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法能夠?qū)⒂脩羯矸菡J(rèn)證信息寫(xiě)入智能合約中,并利用區(qū)塊鏈的智能合約來(lái)校驗(yàn)用戶信息。由此一來(lái),一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
為了便于理解本發(fā)明,下面結(jié)合兩幅流程交互圖進(jìn)一步詳細(xì)闡述上述方法的具體實(shí)現(xiàn)細(xì)節(jié):
圖8是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法中身份注冊(cè)流程的交互序列圖,具體流程為:8.1、用戶終端向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)請(qǐng)求,該請(qǐng)求包含身份注冊(cè)信息,該身份注冊(cè)信息中包括但不限于用戶終端的區(qū)塊鏈賬戶地址或用戶名;8.2、認(rèn)證服務(wù)器對(duì)身份注冊(cè)信息中的信息進(jìn)行簽名,并將簽名后的身份注冊(cè)信息回復(fù)給用戶終端;8.3、用戶終端將注冊(cè)所需的信息發(fā)送給區(qū)塊鏈網(wǎng)絡(luò)中的智能合約,該信息包括認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址、簽名、所簽名的內(nèi)容和智能合約的區(qū)塊鏈賬戶地址;8.4、智能合約的程序部分執(zhí)行校驗(yàn)數(shù)據(jù)功能,將簽名、所簽名的內(nèi)容和智能合約中預(yù)存的認(rèn)證服務(wù)器公鑰進(jìn)行校驗(yàn),最后將校驗(yàn)結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份注冊(cè)流程。
圖9是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法中身份認(rèn)證流程的交互序列圖,具體流程為:9.1、用戶終端向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,該請(qǐng)求包括但不限于登錄和注銷(xiāo)等類(lèi)型,請(qǐng)求內(nèi)容中包括用戶終端的區(qū)塊鏈賬戶地址;9.2、認(rèn)證服務(wù)器收到認(rèn)證請(qǐng)求后隨即生成認(rèn)證信息,并將隨即生成的認(rèn)證信息回復(fù)給用戶終端,該認(rèn)證信息可以是隨機(jī)數(shù)或隨即序列;9.3、用戶終端將認(rèn)證信息發(fā)送給區(qū)塊鏈網(wǎng)絡(luò)中的智能合約,此時(shí)智能合約的程序部分會(huì)執(zhí)行數(shù)據(jù)寫(xiě)入功能,將認(rèn)證信息寫(xiě)入智能合約的數(shù)據(jù)部分,該認(rèn)證信息包括用戶終端的區(qū)塊鏈賬戶地址、隨即生成的認(rèn)證信息和智能合約的區(qū)塊鏈賬戶地址;9.4、一旦智能合約的數(shù)據(jù)部分發(fā)生變化,認(rèn)證服務(wù)器就會(huì)接收到由智能合約發(fā)送的認(rèn)證結(jié)果(即數(shù)據(jù)信息和程序執(zhí)行結(jié)果);9.5、認(rèn)證服務(wù)器根據(jù)接收到的數(shù)據(jù)信息和程序執(zhí)行結(jié)果與認(rèn)證服務(wù)器本地存儲(chǔ)的認(rèn)證信息進(jìn)行對(duì)比驗(yàn)證,最后將認(rèn)證結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份認(rèn)證流程。
實(shí)施例四
圖5是本申請(qǐng)實(shí)施例四提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,該認(rèn)證服務(wù)器包括:簽名模塊510、接收模塊520、認(rèn)證模塊530和驗(yàn)證模塊540。
簽名模塊510,用于對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給所述用戶終端。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,簽名模塊510需要對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性,然后將簽名后的身份注冊(cè)信息提供給用戶終端,方便其將簽名后的身份注冊(cè)信息發(fā)送給區(qū)塊鏈中的智能合約。
接收模塊520,用于接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求。
接收模塊520僅接收完成了身份注冊(cè)的用戶終端發(fā)送的身份認(rèn)證請(qǐng)求,由此可以保證發(fā)送身份認(rèn)證請(qǐng)求的用戶終端是真實(shí)正確的用戶終端,而非假冒偽裝的用戶終端。
認(rèn)證模塊530,用于根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息。
認(rèn)證模塊530在收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,根據(jù)身份認(rèn)證請(qǐng)求中的相關(guān)信息生成對(duì)應(yīng)的身份認(rèn)證信息,并將該身份認(rèn)證信息返回給發(fā)送請(qǐng)求的用戶終端。
驗(yàn)證模塊540,用于接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
用戶終端將上述身份認(rèn)證信息發(fā)送到區(qū)塊鏈中的智能合約中后,智能合約將執(zhí)行寫(xiě)入數(shù)據(jù)操作,將上述身份認(rèn)證信息寫(xiě)入到智能合約中。在智能合約完成寫(xiě)入數(shù)據(jù)操作后,驗(yàn)證模塊540接收智能合約發(fā)送的程序運(yùn)行結(jié)果,對(duì)上述程序運(yùn)行結(jié)果進(jìn)行比對(duì)驗(yàn)證,最后將身份驗(yàn)證結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份認(rèn)證過(guò)程。
由此可見(jiàn),本申請(qǐng)實(shí)施例提供的一種身份認(rèn)證服務(wù)器,一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
實(shí)施例五
圖6是本申請(qǐng)實(shí)施例五提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖。如圖6所示,該認(rèn)證服務(wù)器包括:廣播模塊610、簽名模塊620、接收模塊630、認(rèn)證模塊640和驗(yàn)證模塊650。
廣播模塊610,用于將預(yù)設(shè)的智能合約廣播到區(qū)塊鏈中。
具體地,廣播模塊610將預(yù)設(shè)的智能合約以區(qū)塊鏈交易的形式廣播到區(qū)塊鏈網(wǎng)絡(luò)上,經(jīng)過(guò)多數(shù)節(jié)點(diǎn)的驗(yàn)證,使該智能合約搭乘區(qū)塊鏈網(wǎng)絡(luò)上的共識(shí),然后該智能合約便可以運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)上。其中,上述智能合約的結(jié)構(gòu)分為四個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、預(yù)存的認(rèn)證服務(wù)器公鑰、數(shù)據(jù)部分和程序部分,且該智能合約的程序部分能夠?qū)崿F(xiàn)兩個(gè)功能,一是向數(shù)據(jù)部分寫(xiě)入數(shù)據(jù),即用于對(duì)接收到的數(shù)據(jù)執(zhí)行數(shù)據(jù)寫(xiě)入操作;二是校驗(yàn)已寫(xiě)入數(shù)據(jù)部分中的數(shù)據(jù),即根據(jù)預(yù)存的認(rèn)證服務(wù)器的公鑰與接收到的簽名內(nèi)容和簽名來(lái)校驗(yàn)簽名真?zhèn)巍?/p>
簽名模塊620,用于對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給用戶終端。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,簽名模塊620需要對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性,然后將簽名后的身份注冊(cè)信息提供給用戶終端,方便其將簽名后的身份注冊(cè)信息發(fā)送給區(qū)塊鏈中的智能合約。其中,上述身份注冊(cè)信息包括但不限于用戶終端的區(qū)塊鏈賬戶或用戶名。
接收模塊630,用于接收用戶終端根據(jù)簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求。
接收模塊630僅接收完成了身份注冊(cè)的用戶終端發(fā)送的身份認(rèn)證請(qǐng)求,由此可以保證發(fā)送身份認(rèn)證請(qǐng)求的用戶終端是真實(shí)正確的用戶終端,而非假冒偽裝的用戶終端。其中,身份認(rèn)證請(qǐng)求包括登錄類(lèi)型的身份認(rèn)證請(qǐng)求以及注銷(xiāo)類(lèi)型的身份認(rèn)證請(qǐng)求。
認(rèn)證模塊640,用于根據(jù)身份認(rèn)證請(qǐng)求向用戶終端返回身份認(rèn)證信息。
具體地,認(rèn)證模塊640在收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,隨機(jī)生成身份認(rèn)證信息,將身份認(rèn)證信息返回給用戶終端。其中,所述身份認(rèn)證信息包括:隨機(jī)數(shù)和/或隨機(jī)序列。
驗(yàn)證模塊650,用于接收智能合約根據(jù)用戶終端提供的身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)程序運(yùn)行結(jié)果對(duì)用戶終端的身份進(jìn)行驗(yàn)證。
用戶終端將上述身份認(rèn)證信息發(fā)送到區(qū)塊鏈中的智能合約中后,智能合約將執(zhí)行寫(xiě)入數(shù)據(jù)操作,將上述身份認(rèn)證信息寫(xiě)入到智能合約中。在智能合約完成寫(xiě)入數(shù)據(jù)操作后,驗(yàn)證模塊650接收其發(fā)送的程序運(yùn)行結(jié)果,對(duì)上述程序運(yùn)行結(jié)果進(jìn)行比對(duì)驗(yàn)證,最后將身份驗(yàn)證結(jié)果發(fā)送給用戶終端。由此完成整個(gè)身份認(rèn)證過(guò)程。
其中,程序運(yùn)行結(jié)果具體包括:智能合約根據(jù)身份認(rèn)證信息執(zhí)行寫(xiě)入操作后的寫(xiě)入操作結(jié)果,以及智能合約根據(jù)身份認(rèn)證信息以及預(yù)存的認(rèn)證服務(wù)器的公鑰進(jìn)行校驗(yàn)后的校驗(yàn)操作結(jié)果。對(duì)應(yīng)地,驗(yàn)證模塊650具體用于當(dāng)程序運(yùn)行結(jié)果與身份認(rèn)證信息匹配時(shí),確定用戶終端的身份驗(yàn)證結(jié)果為成功;當(dāng)程序運(yùn)行結(jié)果與身份認(rèn)證信息不匹配時(shí),確定用戶終端的身份驗(yàn)證結(jié)果為失敗。
上述各個(gè)模塊的具體工作原理可參照方法實(shí)施例中相應(yīng)步驟的描述,此處不再贅述。
由此可見(jiàn),本申請(qǐng)實(shí)施例提供的一種認(rèn)證服務(wù)器能夠?qū)⒂脩羯矸菡J(rèn)證信息寫(xiě)入智能合約中,并利用區(qū)塊鏈的智能合約來(lái)校驗(yàn)用戶信息。由此一來(lái),一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
實(shí)施例六
圖7是本申請(qǐng)實(shí)施例六提供的一種用戶終端的結(jié)構(gòu)示意圖。如圖7所示,該用戶終端包括:簽名接收模塊710、身份注冊(cè)模塊720、認(rèn)證請(qǐng)求模塊730和認(rèn)證信息傳遞模塊740。
簽名接收模塊710,用于向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收認(rèn)證服務(wù)器對(duì)身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息。
在本實(shí)施例中,為了避免用戶終端的身份認(rèn)證請(qǐng)求被劫持或者被冒名頂替,在進(jìn)行認(rèn)證操作前,需要將用戶終端注冊(cè)到區(qū)塊鏈中的智能合約中。因此,簽名接收模塊710需要向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,并接收經(jīng)過(guò)認(rèn)證服務(wù)器簽名后的身份注冊(cè)信息。通過(guò)認(rèn)證服務(wù)器的簽名可以保證身份注冊(cè)信息的準(zhǔn)確性和真實(shí)性。
身份注冊(cè)模塊720,用于根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)。
具體地,身份注冊(cè)模塊720將簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及智能合約的區(qū)塊鏈賬戶地址發(fā)送給智能合約;則智能合約根據(jù)認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定認(rèn)證服務(wù)器的公鑰,根據(jù)公鑰對(duì)簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給用戶終端以及認(rèn)證服務(wù)器。
認(rèn)證請(qǐng)求模塊730,用于注冊(cè)成功后向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息。
在注冊(cè)成功后,認(rèn)證請(qǐng)求模塊730向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,該請(qǐng)求包括但不限于登錄類(lèi)型的請(qǐng)求和注銷(xiāo)類(lèi)型的請(qǐng)求。認(rèn)證請(qǐng)求模塊730接收認(rèn)證服務(wù)器返回的身份認(rèn)證信息,該信息中包含了認(rèn)證服務(wù)器隨機(jī)生成的隨機(jī)數(shù)和/或隨機(jī)序列。
認(rèn)證信息傳遞模塊740,用于將身份認(rèn)證信息提供給智能合約,以供智能合約根據(jù)身份認(rèn)證信息生成程序運(yùn)行結(jié)果,程序運(yùn)行結(jié)果用于提供給認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
具體地,認(rèn)證信息傳遞模塊740將身份認(rèn)證信息發(fā)送給區(qū)塊鏈網(wǎng)絡(luò)中的智能合約,智能合約的程序部分根據(jù)該身份認(rèn)證信息執(zhí)行寫(xiě)入數(shù)據(jù)功能,將認(rèn)證隨機(jī)信息寫(xiě)入智能合約的數(shù)據(jù)部分,之后認(rèn)證服務(wù)器將根據(jù)智能合約的程序運(yùn)行結(jié)果對(duì)認(rèn)證信息進(jìn)行驗(yàn)證,最后將驗(yàn)證結(jié)果發(fā)送給用戶終端。
上述各個(gè)模塊的具體工作原理可參照方法實(shí)施例中相應(yīng)步驟的描述,此處不再贅述。
綜上所述,本申請(qǐng)實(shí)施例提供的一種用戶終端能夠?qū)⒂脩羯矸菡J(rèn)證信息寫(xiě)入智能合約中,并利用區(qū)塊鏈的智能合約來(lái)校驗(yàn)用戶信息。由此一來(lái),一方面,將認(rèn)證信息上傳區(qū)塊鏈中的智能合約,能夠有效利用區(qū)塊鏈不易篡改、安全性高的優(yōu)勢(shì);另一方面,由于區(qū)塊鏈中的智能合約本身是一段可以自動(dòng)運(yùn)行的程序,可以根據(jù)輸入?yún)?shù)自動(dòng)驗(yàn)證合約中的信息,利用智能合約驗(yàn)證用戶信息使得驗(yàn)證結(jié)構(gòu)更為簡(jiǎn)單高效。由此可見(jiàn),本申請(qǐng)實(shí)施例中的身份認(rèn)證方式能夠兼顧信息的安全性與高效性。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本申請(qǐng)實(shí)施例的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本申請(qǐng)實(shí)施例的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本申請(qǐng)實(shí)施例的裝置中的一些或者全部部件的一些或者全部功能。本申請(qǐng)實(shí)施例還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本申請(qǐng)實(shí)施例的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本申請(qǐng)實(shí)施例進(jìn)行說(shuō)明而不是對(duì)本申請(qǐng)實(shí)施例進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本申請(qǐng)實(shí)施例可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱(chēng)。
本發(fā)明公開(kāi)了:A1、一種基于區(qū)塊鏈的身份認(rèn)證方法,包括:
對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給所述用戶終端;
接收所述用戶終端根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求;
根據(jù)所述身份認(rèn)證請(qǐng)求向所述用戶終端返回身份認(rèn)證信息;
接收所述智能合約根據(jù)所述用戶終端提供的所述身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)所述程序運(yùn)行結(jié)果對(duì)所述用戶終端的身份進(jìn)行驗(yàn)證。
A2、根據(jù)A1所述的方法,其中,所述根據(jù)所述身份認(rèn)證請(qǐng)求向所述用戶終端返回身份認(rèn)證信息的步驟具體包括:
隨機(jī)生成所述身份認(rèn)證信息,將所述身份認(rèn)證信息返回給所述用戶終端;其中,所述身份認(rèn)證信息包括:隨機(jī)數(shù)和/或隨機(jī)序列。
A3、根據(jù)A2所述的方法,其中,所述智能合約根據(jù)所述用戶終端提供的所述身份認(rèn)證信息生成的程序運(yùn)行結(jié)果具體包括:
智能合約根據(jù)所述身份認(rèn)證信息執(zhí)行寫(xiě)入操作后的寫(xiě)入操作結(jié)果,以及所述智能合約根據(jù)所述身份認(rèn)證信息以及預(yù)存的認(rèn)證服務(wù)器的公鑰進(jìn)行校驗(yàn)后的校驗(yàn)操作結(jié)果;
則所述根據(jù)所述程序運(yùn)行結(jié)果對(duì)所述用戶終端的身份進(jìn)行驗(yàn)證的步驟具體包括:
當(dāng)所述程序運(yùn)行結(jié)果與所述身份認(rèn)證信息匹配時(shí),確定所述用戶終端的身份驗(yàn)證結(jié)果為成功;
當(dāng)所述程序運(yùn)行結(jié)果與所述身份認(rèn)證信息不匹配時(shí),確定所述用戶終端的身份驗(yàn)證結(jié)果為失敗。
A4、根據(jù)A3所述的方法,其中,所述根據(jù)所述程序運(yùn)行結(jié)果對(duì)所述用戶終端的身份進(jìn)行驗(yàn)證的步驟之后,進(jìn)一步包括步驟:將身份驗(yàn)證結(jié)果發(fā)送給所述用戶終端。
A5、根據(jù)A1所述的方法,其中,所述對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名的步驟之前,進(jìn)一步包括步驟:
將所述預(yù)設(shè)的智能合約廣播到所述區(qū)塊鏈中;其中,所述智能合約中預(yù)存有認(rèn)證服務(wù)器的公鑰,且所述智能合約用于對(duì)接收到的數(shù)據(jù)執(zhí)行數(shù)據(jù)寫(xiě)入操作,并根據(jù)預(yù)存的認(rèn)證服務(wù)器的公鑰對(duì)已寫(xiě)入的數(shù)據(jù)執(zhí)行數(shù)據(jù)校驗(yàn)操作。
A6、根據(jù)A1所述的方法,其中,所述用戶終端根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)的步驟具體包括:
用戶終端將所述簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及所述智能合約的區(qū)塊鏈賬戶地址發(fā)送給所述智能合約;
所述智能合約根據(jù)所述認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定所述認(rèn)證服務(wù)器的公鑰,根據(jù)所述公鑰對(duì)所述簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給所述用戶終端以及所述認(rèn)證服務(wù)器。
A7、根據(jù)A1所述的方法,其中,所述身份認(rèn)證請(qǐng)求包括:登錄類(lèi)型的身份認(rèn)證請(qǐng)求以及注銷(xiāo)類(lèi)型的身份認(rèn)證請(qǐng)求。
A8、根據(jù)A1所述的方法,其中,所述身份注冊(cè)信息包括:用戶終端的區(qū)塊鏈賬戶地址或用戶名。
本發(fā)明還公開(kāi)了:B9、一種基于區(qū)塊鏈的身份認(rèn)證方法,包括:
向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收所述認(rèn)證服務(wù)器對(duì)所述身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息;
根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè);
注冊(cè)成功后向所述認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收所述認(rèn)證服務(wù)器返回的身份認(rèn)證信息;
將所述身份認(rèn)證信息提供給所述智能合約,以供所述智能合約根據(jù)所述身份認(rèn)證信息生成程序運(yùn)行結(jié)果,所述程序運(yùn)行結(jié)果用于提供給所述認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
B10、根據(jù)B9所述的方法,其中,所述根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)的步驟具體包括:
將所述簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及所述智能合約的區(qū)塊鏈賬戶地址發(fā)送給所述智能合約;
所述智能合約根據(jù)所述認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定所述認(rèn)證服務(wù)器的公鑰,根據(jù)所述公鑰對(duì)所述簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給所述用戶終端以及所述認(rèn)證服務(wù)器。
本發(fā)明還公開(kāi)了:C11、一種認(rèn)證服務(wù)器,包括:
簽名模塊,用于對(duì)用戶終端發(fā)送的身份注冊(cè)信息進(jìn)行簽名,將簽名后的身份注冊(cè)信息提供給所述用戶終端;
接收模塊,用于接收所述用戶終端根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè)后發(fā)送的身份認(rèn)證請(qǐng)求;
認(rèn)證模塊,用于根據(jù)所述身份認(rèn)證請(qǐng)求向所述用戶終端返回身份認(rèn)證信息;
驗(yàn)證模塊,用于接收所述智能合約根據(jù)所述用戶終端提供的所述身份認(rèn)證信息生成的程序運(yùn)行結(jié)果,根據(jù)所述程序運(yùn)行結(jié)果對(duì)所述用戶終端的身份進(jìn)行驗(yàn)證。
C12、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述認(rèn)證模塊具體用于:
隨機(jī)生成所述身份認(rèn)證信息,將所述身份認(rèn)證信息返回給所述用戶終端;其中,所述身份認(rèn)證信息包括:隨機(jī)數(shù)和/或隨機(jī)序列。
C13、根據(jù)C12所述的認(rèn)證服務(wù)器,其中,所述智能合約根據(jù)所述用戶終端提供的所述身份認(rèn)證信息生成的程序運(yùn)行結(jié)果具體包括:
智能合約根據(jù)所述身份認(rèn)證信息執(zhí)行寫(xiě)入操作后的寫(xiě)入操作結(jié)果,以及所述智能合約根據(jù)所述身份認(rèn)證信息以及預(yù)存的認(rèn)證服務(wù)器的公鑰進(jìn)行校驗(yàn)后的校驗(yàn)操作結(jié)果;
則所述驗(yàn)證模塊具體用于:
當(dāng)所述程序運(yùn)行結(jié)果與所述身份認(rèn)證信息匹配時(shí),確定所述用戶終端的身份驗(yàn)證結(jié)果為成功;
當(dāng)所述程序運(yùn)行結(jié)果與所述身份認(rèn)證信息不匹配時(shí),確定所述用戶終端的身份驗(yàn)證結(jié)果為失敗。
C14、根據(jù)C13所述的認(rèn)證服務(wù)器,其中,所述驗(yàn)證模塊進(jìn)一步用于:將身份驗(yàn)證結(jié)果發(fā)送給所述用戶終端。
C15、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述認(rèn)證服務(wù)器進(jìn)一步包括:
廣播模塊,用于將所述預(yù)設(shè)的智能合約廣播到所述區(qū)塊鏈中;其中,所述智能合約中預(yù)存有認(rèn)證服務(wù)器的公鑰,且所述智能合約用于對(duì)接收到的數(shù)據(jù)執(zhí)行數(shù)據(jù)寫(xiě)入操作,并根據(jù)預(yù)存的認(rèn)證服務(wù)器的公鑰對(duì)已寫(xiě)入的數(shù)據(jù)執(zhí)行數(shù)據(jù)校驗(yàn)操作。
C16、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述身份認(rèn)證請(qǐng)求包括:登錄類(lèi)型的身份認(rèn)證請(qǐng)求以及注銷(xiāo)類(lèi)型的身份認(rèn)證請(qǐng)求。
C17、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述身份注冊(cè)信息包括:用戶終端的區(qū)塊鏈賬戶地址或用戶名。
本發(fā)明還公開(kāi)了:D18、一種用戶終端,包括:
簽名接收模塊,用于向認(rèn)證服務(wù)器發(fā)送身份注冊(cè)信息,接收所述認(rèn)證服務(wù)器對(duì)所述身份注冊(cè)信息進(jìn)行簽名后返回的簽名后的身份注冊(cè)信息;
身份注冊(cè)模塊,用于根據(jù)所述簽名后的身份注冊(cè)信息向區(qū)塊鏈中預(yù)設(shè)的智能合約進(jìn)行身份注冊(cè);
認(rèn)證請(qǐng)求模塊,用于注冊(cè)成功后向所述認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求,接收所述認(rèn)證服務(wù)器返回的身份認(rèn)證信息;
認(rèn)證信息傳遞模塊,用于將所述身份認(rèn)證信息提供給所述智能合約,以供所述智能合約根據(jù)所述身份認(rèn)證信息生成程序運(yùn)行結(jié)果,所述程序運(yùn)行結(jié)果用于提供給所述認(rèn)證服務(wù)器進(jìn)行身份驗(yàn)證。
D19、根據(jù)D18所述的用戶終端,其中,所述身份注冊(cè)模塊具體用于:
將所述簽名后的身份注冊(cè)信息、認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址以及所述智能合約的區(qū)塊鏈賬戶地址發(fā)送給所述智能合約;
所述智能合約根據(jù)所述認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址確定所述認(rèn)證服務(wù)器的公鑰,根據(jù)所述公鑰對(duì)所述簽名后的身份注冊(cè)信息進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果提供給所述用戶終端以及所述認(rèn)證服務(wù)器。