本申請(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ò)驗(yàn)證后對(duì)應(yīng)用服務(wù)器A要求的信息進(jìn)行簽名,然后將簽名后的認(rèn)證信息返回給用戶B,該認(rèn)證信息包含對(duì)應(yīng)用服務(wù)器A要求的信息進(jìn)行的簽名;1.3、用戶B向應(yīng)用服務(wù)器A發(fā)送認(rèn)證信息,該認(rèn)證信息中包含第三方認(rèn)證服務(wù)器C對(duì)應(yīng)用服務(wù)器A要求的信息進(jìn)行的簽名;1.4、應(yīng)用服務(wù)器A根據(jù)簽名,驗(yàn)證用戶B的身份,并將驗(yàn)證結(jié)果返回給用戶B。
但是,發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)中的方式至少存在下述問(wèn)題:因?yàn)榈谌秸J(rèn)證服務(wù)器C將收到用戶B登錄應(yīng)用服務(wù)器A的信息,如果第三方認(rèn)證服務(wù)器C出現(xiàn)信息泄露,將會(huì)對(duì)用戶B和應(yīng)用服務(wù)器A造成重大風(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)證方法,包括:根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子;根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;將智能合約廣播到區(qū)塊鏈中,以及將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端;根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種基于區(qū)塊鏈的身份認(rèn)證方法,包括:向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供認(rèn)證服務(wù)器根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;利用認(rèn)證因子執(zhí)行智能合約,以供認(rèn)證服務(wù)器根據(jù)智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種認(rèn)證服務(wù)器,包括:認(rèn)證因子模塊,用于根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子;智能合約模塊,用于根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;廣播模塊,用于將智能合約廣播到區(qū)塊鏈中;反饋模塊,用于將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端;身份認(rèn)證模塊,用于根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
依據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,提供了一種用戶終端,包括:請(qǐng)求發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供認(rèn)證服務(wù)器根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;執(zhí)行模塊,用于利用認(rèn)證因子執(zhí)行智能合約,以供認(rèn)證服務(wù)器根據(jù)智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
在本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法、認(rèn)證服務(wù)器及用戶終端中,能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
上述說(shuō)明僅是本申請(qǐng)實(shí)施例技術(shù)方案的概述,為了能夠更清楚了解本申請(qǐng)實(shí)施例的技術(shù)手段,而可依照說(shuō)明書的內(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)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(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)證方法中認(rèn)證因子獲取流程圖;
圖9是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法的流程交互序列圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
實(shí)施例一
圖2是本申請(qǐng)實(shí)施例一提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖。如圖2所示,該方法包括:
步驟S210:根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子。
在本申請(qǐng)實(shí)施例中,在接收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,從該身份認(rèn)證請(qǐng)求中獲取用戶終端的認(rèn)證因子。其中,該請(qǐng)求信息中包含的認(rèn)證因子可以是單個(gè),也可以是多個(gè)。認(rèn)證因子的類型可以是用戶名類型,可以是用戶密碼類型,可以是設(shè)備指紋類型,可以是動(dòng)態(tài)碼類型,也可以是行為習(xí)慣類型,還可以是上述類型中多個(gè)的組合類型。本申請(qǐng)實(shí)施例對(duì)此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況靈活設(shè)置。
步驟S220:根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
該智能合約的結(jié)構(gòu)分成三個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、數(shù)據(jù)部分和程序部分,該程序部分是根據(jù)身份認(rèn)證請(qǐng)求的內(nèi)容生成的程序腳本。該腳本的輸入?yún)?shù)是上述認(rèn)證因子,輸出結(jié)果為對(duì)上述認(rèn)證因子進(jìn)行預(yù)設(shè)數(shù)學(xué)變換的結(jié)果。其中,該數(shù)學(xué)變換包括但不限于加、減、與、異或和哈希變換等。
步驟S230:將智能合約廣播到區(qū)塊鏈中,以及將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端。
步驟S230的作用在于將智能合約的區(qū)塊鏈賬戶地址提供給用戶終端,以使該智能合約得到網(wǎng)絡(luò)中各節(jié)點(diǎn)上用戶終端的認(rèn)可,方便后續(xù)步驟的執(zhí)行。該步驟的具體實(shí)施方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況靈活設(shè)置,只要能夠達(dá)到上述目的即可,本發(fā)明對(duì)此不作具體限定。
步驟S240:根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證。
將步驟S210中獲取到的認(rèn)證因子輸入到智能合約中程序部分的腳本程序中,將獲得的執(zhí)行結(jié)果與預(yù)存的運(yùn)算結(jié)果進(jìn)行比較。當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
實(shí)施例二
圖3是本申請(qǐng)實(shí)施例二提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該實(shí)施例的執(zhí)行主體優(yōu)選為認(rèn)證服務(wù)器。如圖3所示,該方法包括:
步驟S310:根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子。
在本申請(qǐng)實(shí)施例中,在接收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,從該身份認(rèn)證請(qǐng)求中獲取用戶終端的認(rèn)證因子。其中,該請(qǐng)求信息中包含的認(rèn)證因子可以是單個(gè),也可以是多個(gè)。認(rèn)證因子的類型可以是用戶名類型,可以是用戶密碼類型,可以是設(shè)備指紋類型,可以是動(dòng)態(tài)碼類型,也可以是行為習(xí)慣類型,還可以是上述類型中多個(gè)的組合類型。本申請(qǐng)實(shí)施例對(duì)此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況靈活設(shè)置。
其中,根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子的步驟具體是:根據(jù)身份認(rèn)證請(qǐng)求中包含的用戶終端類型標(biāo)識(shí)確定認(rèn)證因子的類型;向用戶終端發(fā)送包含認(rèn)證因子類型的響應(yīng)消息;接收用戶終端根據(jù)響應(yīng)消息返回的與認(rèn)證因子類型相匹配的認(rèn)證因子。
為了便于理解本步驟,下面結(jié)合一幅流程交互圖進(jìn)一步詳細(xì)闡述步驟S310的具體實(shí)現(xiàn)細(xì)節(jié)。圖8是本申請(qǐng)實(shí)施例提供的身份認(rèn)證方法中認(rèn)證因子獲取流程圖,如圖所示:8.1、用戶終端向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求;8.2、認(rèn)證服務(wù)器根據(jù)用戶終端的類型和認(rèn)證服務(wù)器本身的參數(shù),選擇所需的認(rèn)證因子類型,該認(rèn)證因子類型包括但不限于用戶名、用戶密碼、設(shè)備指紋、動(dòng)態(tài)碼和行為習(xí)慣等。之后,認(rèn)證服務(wù)器向用戶終端發(fā)送所需要的認(rèn)證因子類型要求;8.3、用戶終端根據(jù)認(rèn)證服務(wù)器的要求,向認(rèn)證服務(wù)器回復(fù)認(rèn)證服務(wù)器所需要的認(rèn)證因子。
步驟S320:根據(jù)認(rèn)證因子創(chuàng)建智能合約。
其中,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。該智能合約的結(jié)構(gòu)分成三個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、數(shù)據(jù)部分和程序部分,該程序部分是根據(jù)身份認(rèn)證請(qǐng)求的內(nèi)容生成的程序腳本。該腳本的輸入?yún)?shù)是上述認(rèn)證因子,輸出結(jié)果為對(duì)上述認(rèn)證因子進(jìn)行預(yù)設(shè)數(shù)學(xué)變換的結(jié)果。其中,該數(shù)學(xué)變換包括但不限于加、減、與、異或和哈希變換等。
步驟S330:將智能合約廣播到區(qū)塊鏈中,以及將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端。
具體的,將智能合約作為第一交易廣播到區(qū)塊鏈中,其中,第一交易的輸出包括智能合約的區(qū)塊鏈賬戶地址、智能合約的哈希值以及進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。這樣的智能合約運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)中,是一套以數(shù)字形式定義的承諾,區(qū)塊鏈成為合約的參與方,負(fù)責(zé)維護(hù)保存合約,并自動(dòng)執(zhí)行。同時(shí),在智能合約生成后,將該智能合約的區(qū)塊鏈賬戶地址發(fā)送給用戶終端,方便后續(xù)步驟的執(zhí)行。步驟S330的作用在于將智能合約的區(qū)塊鏈賬戶地址提供給用戶終端,該步驟的具體實(shí)施方式可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況靈活設(shè)置,只要能夠達(dá)到上述目的即可,本發(fā)明對(duì)此不作具體限定。
步驟S340:根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
其中,用戶終端利用認(rèn)證因子執(zhí)行智能合約的具體步驟為:用戶終端通過(guò)第二交易來(lái)執(zhí)行智能合約,該第二交易的輸入包括用戶終端的區(qū)塊鏈賬戶地址,該第二交易的輸出包括智能合約的區(qū)塊鏈賬戶地址和認(rèn)證因子。
在本實(shí)施例中,根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證的步驟具體為:獲取智能合約根據(jù)用戶終端提供的認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果以及執(zhí)行結(jié)果與運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果,根據(jù)該匹配結(jié)果進(jìn)行身份認(rèn)證。其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
實(shí)施例三
圖4是本申請(qǐng)實(shí)施例三提供的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該實(shí)施例的執(zhí)行主體優(yōu)選為用戶終端。如圖4所示,該方法包括:
步驟S410:向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供認(rèn)證服務(wù)器根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
其中,用戶終端主動(dòng)向認(rèn)證服務(wù)器發(fā)送包含認(rèn)證因子的身份認(rèn)證請(qǐng)求,該認(rèn)證請(qǐng)求包括單個(gè)或多個(gè)認(rèn)證因子,該認(rèn)證因子包括但不限于用戶名、用戶密碼、設(shè)備指紋、動(dòng)態(tài)碼和行為習(xí)慣等。
在其他實(shí)施例中,向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求的步驟還可以是:根據(jù)認(rèn)證服務(wù)器發(fā)送的認(rèn)證因子類型,向該認(rèn)證服務(wù)器發(fā)送包含與認(rèn)證因子類型向匹配的認(rèn)證因子的身份認(rèn)證請(qǐng)求。在該步驟中,用戶終端向認(rèn)證服務(wù)器發(fā)送不包含認(rèn)證因子的身份認(rèn)證請(qǐng)求,認(rèn)證服務(wù)器在收到請(qǐng)求后,根據(jù)用戶終端類型和認(rèn)證服務(wù)器本身參數(shù)決定所需認(rèn)證因子的類型,然后向用戶終端發(fā)送所需認(rèn)證因子類型要求,最后用戶終端根據(jù)類型要求回復(fù)所需的認(rèn)證因子。
步驟S420:利用認(rèn)證因子執(zhí)行智能合約,以供認(rèn)證服務(wù)器根據(jù)智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
其中,利用認(rèn)證因子執(zhí)行智能合約的步驟具體為通過(guò)第二交易來(lái)執(zhí)行智能合約,該第二交易的輸入包括用戶終端區(qū)塊鏈賬戶地址,該第二交易的輸出包括智能合約的區(qū)塊鏈賬戶地址和認(rèn)證因子。
在本實(shí)施例中,根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證的步驟具體為:獲取智能合約根據(jù)用戶終端提供的認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果以及執(zhí)行結(jié)果與運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果,根據(jù)該匹配結(jié)果進(jìn)行身份認(rèn)證。其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
綜上所述,本申請(qǐng)實(shí)施例提供的一種基于區(qū)塊鏈的身份認(rèn)證方法能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
為了便于理解本發(fā)明,下面結(jié)合圖9的流程交互圖進(jìn)一步詳細(xì)闡述上述方法的具體實(shí)現(xiàn)細(xì)節(jié):9.1、用戶終端向認(rèn)證服務(wù)器發(fā)送身份認(rèn)證請(qǐng)求;9.2、認(rèn)證服務(wù)器根據(jù)請(qǐng)求內(nèi)容生成智能合約程序部分的程序腳本;9.3、認(rèn)證服務(wù)器以區(qū)塊鏈的交易形式向區(qū)塊鏈廣播該智能合約;9.4、認(rèn)證服務(wù)器將該智能合約的區(qū)塊鏈賬戶地址發(fā)送給用戶終端;9.5、用戶終端以區(qū)塊鏈的交易形式來(lái)執(zhí)行區(qū)塊鏈的智能合約;9.6、智能合約將認(rèn)證請(qǐng)求中的認(rèn)證因子輸入程序部分的程序腳本得出執(zhí)行結(jié)果,與智能合約中的數(shù)學(xué)變換結(jié)果比較,如果兩個(gè)結(jié)果一致,則通過(guò)校驗(yàn),區(qū)塊鏈中的各節(jié)點(diǎn)驗(yàn)證智能合約,通過(guò)后在區(qū)塊鏈網(wǎng)絡(luò)中廣播該智能合約,當(dāng)區(qū)塊鏈網(wǎng)絡(luò)中達(dá)成共識(shí)后寫入?yún)^(qū)塊鏈,因?yàn)樯鲜鲋悄芎霞s的輸出中包括認(rèn)證服務(wù)器的區(qū)塊鏈賬戶地址,所以認(rèn)證服務(wù)器能夠收到認(rèn)證結(jié)果,如果結(jié)果為認(rèn)證通過(guò),則身份認(rèn)證成功。
實(shí)施例四
圖5是本申請(qǐng)實(shí)施例四提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,該認(rèn)證服務(wù)器包括:認(rèn)證因子模塊510、智能合約模塊520、身份認(rèn)證模塊530、廣播模塊540以及反饋模塊550。
認(rèn)證因子模塊510,用于根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子。
在本申請(qǐng)實(shí)施例中,認(rèn)證因子模塊510在接收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,從該身份認(rèn)證請(qǐng)求中獲取用戶終端的認(rèn)證因子。其中,該請(qǐng)求信息中包含的認(rèn)證因子可以是單個(gè),也可以是多個(gè)。認(rèn)證因子的類型可以是用戶名類型,可以是用戶密碼類型,可以是設(shè)備指紋類型,可以是動(dòng)態(tài)碼類型,也可以是行為習(xí)慣類型,還可以是上述類型中多個(gè)的組合類型。本申請(qǐng)實(shí)施例對(duì)此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況靈活設(shè)置。
智能合約模塊520,用于根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
該智能合約的結(jié)構(gòu)分成三個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、數(shù)據(jù)部分和程序部分,該程序部分是根據(jù)身份認(rèn)證請(qǐng)求的內(nèi)容生成的程序腳本。該腳本的輸入?yún)?shù)是上述認(rèn)證因子,輸出結(jié)果為對(duì)上述認(rèn)證因子進(jìn)行預(yù)設(shè)數(shù)學(xué)變換的結(jié)果。其中,該數(shù)學(xué)變換包括但不限于加、減、與、異或和哈希變換等。
智能合約模塊520還與廣播模塊540和反饋模塊550相連接。
其中,廣播模塊540,用于將智能合約廣播到區(qū)塊鏈中。反饋模塊550,用于將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端。廣播模塊540和反饋模塊550的作用都在于將智能合約的區(qū)塊鏈賬戶地址提供給用戶終端,以使該智能合約得到網(wǎng)絡(luò)中各節(jié)點(diǎn)上用戶終端的認(rèn)可,方便后續(xù)操作。
身份認(rèn)證模塊530,用于根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
身份認(rèn)證模塊530將認(rèn)證因子模塊510中獲取到的認(rèn)證因子輸入到智能合約中程序部分的腳本程序中,將獲得的執(zhí)行結(jié)果與預(yù)存的運(yùn)算結(jié)果進(jìn)行比較。當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
綜上所述,本申請(qǐng)實(shí)施例提供的一種認(rèn)證服務(wù)器,能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
實(shí)施例五
圖6是本申請(qǐng)實(shí)施例五提供的一種認(rèn)證服務(wù)器的結(jié)構(gòu)示意圖。如圖6所示,該認(rèn)證服務(wù)器包括:認(rèn)證因子模塊610、智能合約模塊620、身份認(rèn)證模塊630、廣播模塊640以及反饋模塊650。
認(rèn)證因子模塊610,用于根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取用戶終端的認(rèn)證因子。
在本申請(qǐng)實(shí)施例中,認(rèn)證因子模塊610在接收到用戶終端發(fā)送的身份認(rèn)證請(qǐng)求后,從該身份認(rèn)證請(qǐng)求中獲取用戶終端的認(rèn)證因子。其中,該請(qǐng)求信息中包含的認(rèn)證因子可以是單個(gè),也可以是多個(gè)。認(rèn)證因子的類型可以是用戶名類型,可以是用戶密碼類型,可以是設(shè)備指紋類型,可以是動(dòng)態(tài)碼類型,也可以是行為習(xí)慣類型,還可以是上述類型中多個(gè)的組合類型。本申請(qǐng)實(shí)施例對(duì)此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況靈活設(shè)置。
其中,認(rèn)證因子模塊610具體用于:根據(jù)身份認(rèn)證請(qǐng)求中包含的用戶終端類型標(biāo)識(shí)確定認(rèn)證因子的類型;向用戶終端發(fā)送包含認(rèn)證因子類型的響應(yīng)消息;接收用戶終端根據(jù)響應(yīng)消息返回的與認(rèn)證因子類型相匹配的認(rèn)證因子。
智能合約模塊620,用于根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
該智能合約的結(jié)構(gòu)分成三個(gè)部分,分別是智能合約區(qū)塊鏈賬戶地址、數(shù)據(jù)部分和程序部分,該程序部分是根據(jù)身份認(rèn)證請(qǐng)求的內(nèi)容生成的程序腳本。該腳本的輸入?yún)?shù)是上述認(rèn)證因子,輸出結(jié)果為對(duì)上述認(rèn)證因子進(jìn)行預(yù)設(shè)數(shù)學(xué)變換的結(jié)果。其中,該數(shù)學(xué)變換包括但不限于加、減、與、異或和哈希變換等。
智能合約模塊620與廣播模塊640相連接。廣播模塊640,用于將智能合約廣播到區(qū)塊鏈中。具體的,廣播模塊640將智能合約作為第一交易廣播到區(qū)塊鏈中,其中,第一交易的輸出包括智能合約的區(qū)塊鏈賬戶地址、智能合約的哈希值以及進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。這樣的智能合約運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)中,是一套以數(shù)字形式定義的承諾,區(qū)塊鏈成為合約的參與方,負(fù)責(zé)維護(hù)保存合約,并自動(dòng)執(zhí)行。
與此同時(shí),智能合約模塊620還與反饋模塊650相連接。反饋模塊650,用于將智能合約區(qū)塊鏈賬戶地址發(fā)送給用戶終端。在智能合約生成后,反饋模塊將該智能合約的區(qū)塊鏈賬戶地址發(fā)送給用戶終端,方便后續(xù)操作。
身份認(rèn)證模塊630,用于根據(jù)用戶終端利用認(rèn)證因子執(zhí)行智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
在本申請(qǐng)實(shí)施例中,身份認(rèn)證模塊630具體包括:獲取子模塊631,用于獲取智能合約根據(jù)用戶終端提供的認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果以及執(zhí)行結(jié)果與運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果;認(rèn)證子模塊632,用于根據(jù)該匹配結(jié)果進(jìn)行身份認(rèn)證。其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
上述各個(gè)模塊的具體工作原理可參照方法實(shí)施例中相應(yīng)步驟的描述,此處不再贅述。
綜上所述,本申請(qǐng)實(shí)施例提供的一種認(rèn)證服務(wù)器,能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
實(shí)施例六
圖7是本申請(qǐng)實(shí)施例六提供的一種用戶終端的結(jié)構(gòu)示意圖。如圖7所示,該用戶終端包括:請(qǐng)求發(fā)送模塊710和執(zhí)行模塊720。
請(qǐng)求發(fā)送模塊710,用于向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供認(rèn)證服務(wù)器根據(jù)認(rèn)證因子創(chuàng)建智能合約,智能合約中預(yù)存有對(duì)認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
其中,請(qǐng)求發(fā)送模塊710主動(dòng)向認(rèn)證服務(wù)器發(fā)送包含認(rèn)證因子的身份認(rèn)證請(qǐng)求,該認(rèn)證請(qǐng)求包括單個(gè)或多個(gè)認(rèn)證因子,該認(rèn)證因子包括但不限于用戶名、用戶密碼、設(shè)備指紋、動(dòng)態(tài)碼和行為習(xí)慣等。
在其他實(shí)施例中,請(qǐng)求發(fā)送模塊710還可以具體用于:根據(jù)認(rèn)證服務(wù)器發(fā)送的認(rèn)證因子類型,向該認(rèn)證服務(wù)器發(fā)送包含與認(rèn)證因子類型向匹配的認(rèn)證因子的身份認(rèn)證請(qǐng)求。在該步驟中,請(qǐng)求發(fā)送模塊710向認(rèn)證服務(wù)器發(fā)送不包含認(rèn)證因子的身份認(rèn)證請(qǐng)求,認(rèn)證服務(wù)器在收到請(qǐng)求后,根據(jù)用戶終端類型和認(rèn)證服務(wù)器本身參數(shù)決定所需認(rèn)證因子的類型,然后向請(qǐng)求發(fā)送模塊710發(fā)送所需認(rèn)證因子類型要求,最后請(qǐng)求發(fā)送模塊710根據(jù)類型要求回復(fù)所需的認(rèn)證因子。
執(zhí)行模塊720,用于利用認(rèn)證因子執(zhí)行智能合約,以供認(rèn)證服務(wù)器根據(jù)智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
其中,執(zhí)行模塊720具體用于:通過(guò)第二交易來(lái)執(zhí)行智能合約,該第二交易的輸入包括用戶終端區(qū)塊鏈賬戶地址,該第二交易的輸出包括智能合約的區(qū)塊鏈賬戶地址和認(rèn)證因子。
在本實(shí)施例中,執(zhí)行模塊720還具體用于:獲取智能合約根據(jù)用戶終端提供的認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果以及執(zhí)行結(jié)果與運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果,根據(jù)該匹配結(jié)果進(jìn)行身份認(rèn)證。其中,當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)執(zhí)行結(jié)果與運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
上述各個(gè)模塊的具體工作原理可參照方法實(shí)施例中相應(yīng)步驟的描述,此處不再贅述。
綜上所述,本申請(qǐng)實(shí)施例提供的一種用戶終端,能夠?qū)⒄J(rèn)證信息存儲(chǔ)到區(qū)塊鏈中的智能合約中。由此一來(lái),一方面,能夠利用區(qū)塊鏈網(wǎng)絡(luò)中的智能合約本身的特性,保證認(rèn)證信息無(wú)法被篡改;另一方面,利用智能合約內(nèi)部程序執(zhí)行驗(yàn)證認(rèn)證信息的操作,從而進(jìn)一步提升了身份認(rèn)證時(shí)的安全性。由此可見,本申請(qǐng)實(shí)施例中的身份認(rèn)證方式具備極佳的安全性。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本申請(qǐng)實(shí)施例的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(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)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發(fā)明公開了:A1、一種基于區(qū)塊鏈的身份認(rèn)證方法,其中,包括:
根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取所述用戶終端的認(rèn)證因子;
根據(jù)所述認(rèn)證因子創(chuàng)建智能合約,所述智能合約中預(yù)存有對(duì)所述認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;
將所述智能合約廣播到區(qū)塊鏈中,以及將所述智能合約區(qū)塊鏈賬戶地址發(fā)送給所述用戶終端;
根據(jù)所述用戶終端利用所述認(rèn)證因子執(zhí)行所述智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;
其中,當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
A2、根據(jù)A1所述的方法,其中,所述將所述智能合約廣播到區(qū)塊鏈中的步驟具體包括:
將所述智能合約作為第一交易廣播到區(qū)塊鏈中,所述第一交易的輸出包括:智能合約區(qū)塊鏈賬戶地址、智能合約哈希值、以及進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
A3、根據(jù)A1所述的方法,其中,所述根據(jù)所述用戶終端利用所述認(rèn)證因子執(zhí)行所述智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證的步驟具體包括:
獲取所述智能合約根據(jù)用戶終端提供的所述認(rèn)證因子進(jìn)行所述預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果,以及所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果,根據(jù)所述匹配結(jié)果進(jìn)行身份認(rèn)證。
A4、根據(jù)A1所述的方法,其中,所述用戶終端利用所述認(rèn)證因子執(zhí)行所述智能合約的步驟具體包括:
所述用戶終端通過(guò)第二交易來(lái)執(zhí)行所述智能合約,所述第二交易的輸入包括:用戶終端區(qū)塊鏈賬戶地址;所述第二交易的輸出包括:智能合約區(qū)塊鏈賬戶地址、認(rèn)證因子。
A5、根據(jù)A1所述的方法,其中,所述根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取所述用戶終端的認(rèn)證因子的步驟具體包括:
根據(jù)所述身份認(rèn)證請(qǐng)求中包含的用戶終端類型標(biāo)識(shí)確定認(rèn)證因子類型;
向所述用戶終端發(fā)送包含所述認(rèn)證因子類型的響應(yīng)消息;
接收所述用戶終端根據(jù)所述響應(yīng)消息返回的與所述認(rèn)證因子類型相匹配的認(rèn)證因子。
A6、根據(jù)A5所述的方法,其中,所述認(rèn)證因子類型包括以下中的至少一個(gè):用戶名類型、用戶密碼類型、設(shè)備指紋類型、動(dòng)態(tài)碼類型以及行為習(xí)慣類型。
本發(fā)明還公開了:B7、一種基于區(qū)塊鏈的身份認(rèn)證方法,其中,包括:
向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供所述認(rèn)證服務(wù)器根據(jù)所述認(rèn)證因子創(chuàng)建智能合約,所述智能合約中預(yù)存有對(duì)所述認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;
利用所述認(rèn)證因子執(zhí)行所述智能合約,以供所述認(rèn)證服務(wù)器根據(jù)所述智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
B8、根據(jù)B7所述的方法,其中,所述利用所述認(rèn)證因子執(zhí)行所述智能合約,以供所述認(rèn)證服務(wù)器根據(jù)所述智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證的步驟具體包括:
將所述認(rèn)證因子提供給所述智能合約,以供所述智能合約根據(jù)所述認(rèn)證因子進(jìn)行所述預(yù)設(shè)運(yùn)算后得到執(zhí)行結(jié)果,并將所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果提供給所述認(rèn)證服務(wù)器。
B9、根據(jù)B8所述的方法,其中,所述利用所述認(rèn)證因子執(zhí)行所述智能合約的步驟具體包括:
通過(guò)第二交易來(lái)執(zhí)行所述智能合約,所述第二交易的輸入包括:用戶終端區(qū)塊鏈賬戶地址;所述第二交易的輸出包括:智能合約區(qū)塊鏈賬戶地址、認(rèn)證因子。
B10、根據(jù)B7所述的方法,其中,所述向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求的步驟具體包括:
根據(jù)認(rèn)證服務(wù)器發(fā)送的認(rèn)證因子類型,向所述認(rèn)證服務(wù)器發(fā)送包含與所述認(rèn)證因子類型相匹配的認(rèn)證因子的身份認(rèn)證請(qǐng)求。
本發(fā)明還公開了:C11、一種認(rèn)證服務(wù)器,其中,包括:
認(rèn)證因子模塊,用于根據(jù)用戶終端發(fā)送的身份認(rèn)證請(qǐng)求獲取所述用戶終端的認(rèn)證因子;
智能合約模塊,用于根據(jù)所述認(rèn)證因子創(chuàng)建智能合約,所述智能合約中預(yù)存有對(duì)所述認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;
廣播模塊,用于將所述智能合約廣播到區(qū)塊鏈中;
反饋模塊,用于將所述智能合約區(qū)塊鏈賬戶地址發(fā)送給所述用戶終端;
身份認(rèn)證模塊,用于根據(jù)所述用戶終端利用所述認(rèn)證因子執(zhí)行所述智能合約后得到的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果匹配時(shí),確認(rèn)身份認(rèn)證成功;當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果不匹配時(shí),確認(rèn)身份認(rèn)證失敗。
C12、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述廣播模塊具體用于:
將所述智能合約作為第一交易廣播到區(qū)塊鏈中,所述第一交易的輸出包括:智能合約區(qū)塊鏈賬戶地址、智能合約哈希值、以及進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果。
C13、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述身份認(rèn)證模塊具體用于:
獲取所述智能合約根據(jù)用戶終端提供的所述認(rèn)證因子進(jìn)行所述預(yù)設(shè)運(yùn)算后得到的執(zhí)行結(jié)果,以及所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果,根據(jù)所述匹配結(jié)果進(jìn)行身份認(rèn)證。
C14、根據(jù)C11所述的認(rèn)證服務(wù)器,其中,所述認(rèn)證因子模塊具體用于:
根據(jù)所述身份認(rèn)證請(qǐng)求中包含的用戶終端類型標(biāo)識(shí)確定認(rèn)證因子類型;
向所述用戶終端發(fā)送包含所述認(rèn)證因子類型的響應(yīng)消息;
接收所述用戶終端根據(jù)所述響應(yīng)消息返回的與所述認(rèn)證因子類型相匹配的認(rèn)證因子。
C15、根據(jù)C14所述的方法,其中,所述認(rèn)證因子類型包括以下中的至少一個(gè):用戶名類型、用戶密碼類型、設(shè)備指紋類型、動(dòng)態(tài)碼類型以及行為習(xí)慣類型。
本發(fā)明還公開了:D16、一種用戶終端,其中,包括:
請(qǐng)求發(fā)送模塊,用于向認(rèn)證服務(wù)器發(fā)送包含用戶終端的認(rèn)證因子的身份認(rèn)證請(qǐng)求,以供所述認(rèn)證服務(wù)器根據(jù)所述認(rèn)證因子創(chuàng)建智能合約,所述智能合約中預(yù)存有對(duì)所述認(rèn)證因子進(jìn)行預(yù)設(shè)運(yùn)算后的運(yùn)算結(jié)果;
執(zhí)行模塊,用于利用所述認(rèn)證因子執(zhí)行所述智能合約,以供所述認(rèn)證服務(wù)器根據(jù)所述智能合約的執(zhí)行結(jié)果進(jìn)行身份認(rèn)證;其中,當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果匹配時(shí)身份認(rèn)證成功;當(dāng)所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果不匹配時(shí)身份認(rèn)證失敗。
D17、根據(jù)D16所述的用戶終端,其中,所述執(zhí)行模塊具體用于:
將所述認(rèn)證因子提供給所述智能合約,以供所述智能合約根據(jù)所述認(rèn)證因子進(jìn)行所述預(yù)設(shè)運(yùn)算后得到執(zhí)行結(jié)果,并將所述執(zhí)行結(jié)果與所述運(yùn)算結(jié)果進(jìn)行匹配后的匹配結(jié)果提供給所述認(rèn)證服務(wù)器。
D18、根據(jù)D17所述的用戶終端,其中,執(zhí)行模塊具體用于:
通過(guò)第二交易來(lái)執(zhí)行所述智能合約,所述第二交易的輸入包括:用戶終端區(qū)塊鏈賬戶地址;所述第二交易的輸出包括:智能合約區(qū)塊鏈賬戶地址、認(rèn)證因子。
D19、根據(jù)D16所述的用戶終端,其中,請(qǐng)求發(fā)送模塊具體用于:
根據(jù)認(rèn)證服務(wù)器發(fā)送的認(rèn)證因子類型,向所述認(rèn)證服務(wù)器發(fā)送包含與所述認(rèn)證因子類型相匹配的認(rèn)證因子的身份認(rèn)證請(qǐng)求。