欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于區(qū)塊鏈的身份認(rèn)證方法、裝置、節(jié)點(diǎn)及系統(tǒng)與流程

文檔序號(hào):11532565閱讀:1132來(lái)源:國(guó)知局
基于區(qū)塊鏈的身份認(rèn)證方法、裝置、節(jié)點(diǎn)及系統(tǒng)與流程

本公開(kāi)涉及信息技術(shù)領(lǐng)域,尤其涉及一種基于區(qū)塊鏈的身份認(rèn)證方法、裝置、節(jié)點(diǎn)及系統(tǒng)。



背景技術(shù):

身份認(rèn)證是目前計(jì)算機(jī)及網(wǎng)絡(luò)系統(tǒng)中確認(rèn)操作者身份的基本技術(shù)手段,是判斷被認(rèn)證對(duì)象的身份是否屬實(shí)和有效的一個(gè)過(guò)程。網(wǎng)絡(luò)系統(tǒng)中常用的身份認(rèn)證技術(shù)包括用戶名/口令、kerberos(一種網(wǎng)絡(luò)認(rèn)證協(xié)議)和pki(publickeyinfrastructure,公鑰基礎(chǔ)設(shè)施)等。這些認(rèn)證方法存在一個(gè)共同點(diǎn),即都存在一個(gè)認(rèn)證雙方共同信任的第三方機(jī)構(gòu),通過(guò)這個(gè)第三方機(jī)構(gòu)為認(rèn)證雙方發(fā)布身份信息,并以此身份信息作為認(rèn)證雙方間確認(rèn)對(duì)方身份的基礎(chǔ)。

但是,這樣上述的認(rèn)證機(jī)制容易出現(xiàn)由于單點(diǎn)故障問(wèn)題和安全問(wèn)題而影響整個(gè)系統(tǒng)的可用性和安全性的問(wèn)題,這是由于當(dāng)系統(tǒng)中的某個(gè)或某些節(jié)點(diǎn)(例如認(rèn)證雙方或者可信第三方機(jī)構(gòu))的故障容易導(dǎo)致其他節(jié)點(diǎn)無(wú)法獲取身份認(rèn)證信息,并且可信第三方機(jī)構(gòu)在網(wǎng)絡(luò)中的地址通常是固定的,極易受到各種攻擊,其可信第三方機(jī)構(gòu)自身安全性是整個(gè)系統(tǒng)安全的基礎(chǔ),當(dāng)可信第三方機(jī)構(gòu)的安全出現(xiàn)問(wèn)題時(shí),整個(gè)系統(tǒng)的安全則無(wú)法保證。



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

本公開(kāi)的目的是提供一種基于區(qū)塊鏈的身份認(rèn)證方法、裝置、節(jié)點(diǎn)及系統(tǒng),用于解決現(xiàn)有認(rèn)證機(jī)制由于單點(diǎn)故障問(wèn)題和安全問(wèn)題而影響整個(gè)系統(tǒng)的可用性和安全性的問(wèn)題。

為了實(shí)現(xiàn)上述目的,根據(jù)本公開(kāi)實(shí)施例的第一方面,本公開(kāi)提供一種基于區(qū)塊鏈的身份認(rèn)證方法,應(yīng)用于認(rèn)證方節(jié)點(diǎn),所述方法包括:

接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

在確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證;所述身份證明發(fā)布節(jié)點(diǎn)的公鑰是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的身份信息獲取的;

在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰;所述被認(rèn)證方節(jié)點(diǎn)的公鑰是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的身份信息獲取的;

當(dāng)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),確定所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰,包括:

在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,向所述被認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息;

接收所述被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第二數(shù)字簽名;

根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第二數(shù)字簽名進(jìn)行驗(yàn)證;

當(dāng)所述第二數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,向所述被認(rèn)證方確認(rèn)所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰,包括:

接收所述被認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息,以及被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第三數(shù)字簽名;所述驗(yàn)證信息是所述被認(rèn)證方節(jié)點(diǎn)根據(jù)預(yù)設(shè)的信息生成規(guī)則生成的,所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);

驗(yàn)證所述驗(yàn)證信息是否是按照所述信息生成規(guī)則生成的;

當(dāng)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的時(shí),根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證;

當(dāng)所述第三數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,當(dāng)所述身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),所述根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,包括:

從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的;

在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,所述身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,在驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰之前,還包括:

在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的;

在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種基于區(qū)塊鏈的身份認(rèn)證方法,應(yīng)用于被認(rèn)證方節(jié)點(diǎn),所述方法包括:

向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

在所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中,并且在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證;

當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證,包括:

在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,接收所述認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息;

根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第二數(shù)字簽名;

向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述第二數(shù)字簽名,當(dāng)所述第二數(shù)字簽名通過(guò)所述認(rèn)證方的驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證,包括:

在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,根據(jù)預(yù)設(shè)的信息生成規(guī)則生成驗(yàn)證信息;所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);

根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第三數(shù)字簽名;

向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述驗(yàn)證信息以及所述第三數(shù)字簽名;

當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的,并且所述認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行的驗(yàn)證通過(guò)驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息和所述第一數(shù)字簽名寫(xiě)入所述區(qū)塊鏈的方法包括:

向所述區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求,所述身份證明請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息,用于所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到所述第一數(shù)字簽名,并將所述第一數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

可選的,在所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈寫(xiě)入用于撤銷(xiāo)所述第一數(shù)字簽名的撤銷(xiāo)證明后,所述被認(rèn)證方節(jié)點(diǎn)的所述第一數(shù)字簽名被撤銷(xiāo),所述撤銷(xiāo)證明中包括對(duì)所述第一數(shù)字簽名的撤銷(xiāo)說(shuō)明,以及通過(guò)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述撤銷(xiāo)說(shuō)明進(jìn)行數(shù)字簽名得到第五數(shù)字簽名。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種基于區(qū)塊鏈的身份認(rèn)證裝置,應(yīng)用于認(rèn)證方節(jié)點(diǎn),所述裝置包括:

接收模塊,用于接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

第一驗(yàn)證模塊,用于在確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證;所述身份證明發(fā)布節(jié)點(diǎn)的公鑰是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的身份信息獲取的;

第二驗(yàn)證模塊,用于在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰;所述被認(rèn)證方節(jié)點(diǎn)的公鑰是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的身份信息獲取的;

確定模塊,用于當(dāng)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),確定所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述第二驗(yàn)證模塊包括:

發(fā)送子模塊,用于在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,向所述被認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息;

接收子模塊,用于接收所述被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第二數(shù)字簽名;

驗(yàn)證子模塊,用于根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第二數(shù)字簽名進(jìn)行驗(yàn)證;

確認(rèn)子模塊,用于確定當(dāng)所述第二數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述第二驗(yàn)證模塊包括:

接收子模塊,用于接收所述被認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息,以及被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第三數(shù)字簽名;所述驗(yàn)證信息是所述被認(rèn)證方節(jié)點(diǎn)根據(jù)預(yù)設(shè)的信息生成規(guī)則生成的,所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);

信息驗(yàn)證子模塊,用于驗(yàn)證所述驗(yàn)證信息是否是按照所述信息生成規(guī)則生成的;

簽名驗(yàn)證子模塊,用于當(dāng)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的時(shí),根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證;

確認(rèn)子模塊,用于當(dāng)所述第三數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,當(dāng)所述身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),所述第一驗(yàn)證模塊用于:

從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的;

根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;

在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,所述身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的。

可選的,所述第一驗(yàn)證模塊用于:

在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰是從所述區(qū)塊鏈中獲取的,或者是預(yù)先存儲(chǔ)的;

所述發(fā)送模塊還用于在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,所述第二驗(yàn)證模塊驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

根據(jù)本公開(kāi)實(shí)施例的第四方面,提供一種基于區(qū)塊鏈的身份認(rèn)證裝置,應(yīng)用于被認(rèn)證方節(jié)點(diǎn),所述裝置包括:

認(rèn)證請(qǐng)求模塊,用于向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

驗(yàn)證模塊,用于在所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中,并且在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證;當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述驗(yàn)證模塊包括:

接收子模塊,用于在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,接收所述認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息;

簽名子模塊,用于根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第二數(shù)字簽名;

發(fā)送子模塊,用于向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述第二數(shù)字簽名,當(dāng)所述第二數(shù)字簽名通過(guò)所述認(rèn)證方的驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述驗(yàn)證模塊包括:

信息生成子模塊,用于在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,根據(jù)預(yù)設(shè)的信息生成規(guī)則生成驗(yàn)證信息;所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);

簽名子模塊,用于根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第三數(shù)字簽名;

發(fā)送子模塊,用于向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述驗(yàn)證信息以及所述第三數(shù)字簽名;當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的,并且所述認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行的驗(yàn)證通過(guò)驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述裝置還包括:身份證明請(qǐng)求模塊,用于:

向所述區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求,所述身份證明請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息,用于所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到所述第一數(shù)字簽名,并將所述第一數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

可選的,在所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈寫(xiě)入用于撤銷(xiāo)所述第一數(shù)字簽名的撤銷(xiāo)證明后,所述被認(rèn)證方節(jié)點(diǎn)的所述第一數(shù)字簽名被撤銷(xiāo),所述撤銷(xiāo)證明中包括對(duì)所述第一數(shù)字簽名的撤銷(xiāo)說(shuō)明,以及通過(guò)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述撤銷(xiāo)說(shuō)明進(jìn)行數(shù)字簽名得到第五數(shù)字簽名。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

根據(jù)本公開(kāi)實(shí)施例的第五方面,提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中包括一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序用于第一方面所述的方法。

根據(jù)本公開(kāi)實(shí)施例的第六方面,提供一種用戶節(jié)點(diǎn),所述用戶節(jié)點(diǎn)包括:

第五方面所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及

一個(gè)或者多個(gè)處理器,用于執(zhí)行所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的程序。

根據(jù)本公開(kāi)實(shí)施例的第七方面,提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中包括一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序用于第二方面所述的方法。

根據(jù)本公開(kāi)實(shí)施例的第八方面,提供一種用戶節(jié)點(diǎn),所述用戶節(jié)點(diǎn)包括:

第七方面所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及

一個(gè)或者多個(gè)處理器,用于執(zhí)行所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的程序。

根據(jù)本公開(kāi)實(shí)施例的第九方面,提供一種身份認(rèn)證系統(tǒng),所述系統(tǒng)包括:

區(qū)塊鏈;

至少一個(gè)第六方面所述的用戶節(jié)點(diǎn),作為認(rèn)證方節(jié)點(diǎn);

至少一個(gè)第八方面所述的用戶節(jié)點(diǎn),作為被認(rèn)證方節(jié)點(diǎn);以及

至少一個(gè)身份證明發(fā)布節(jié)點(diǎn);

其中,所述區(qū)塊鏈,所述至少一個(gè)第六方面所述的用戶節(jié)點(diǎn),所述至少一個(gè)第八方面所述的用戶節(jié)點(diǎn)以及所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)屬于同一區(qū)塊鏈網(wǎng)絡(luò)。

可選的,所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)為一個(gè)身份證明發(fā)布節(jié)點(diǎn),所述身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明;所述第一用戶節(jié)點(diǎn)為任一用戶節(jié)點(diǎn);

其中,所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明包括:所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

可選的,所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)至少包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)和所述身份證明發(fā)布節(jié)點(diǎn)的上一級(jí)身份證明發(fā)布節(jié)點(diǎn),所述身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明,所述第一用戶節(jié)點(diǎn)為任一用戶節(jié)點(diǎn),所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布所述身份證明發(fā)布節(jié)點(diǎn)的身份證明;

其中,所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明包括:所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈;

所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈發(fā)布所述身份證明發(fā)布節(jié)點(diǎn)的身份證明包括:所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

可選的,所述系統(tǒng)包括多個(gè)身份證明發(fā)布子系統(tǒng),每個(gè)身份證明發(fā)布子系統(tǒng)中包括至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)和至少一個(gè)用戶節(jié)點(diǎn);

其中,當(dāng)?shù)谝簧矸葑C明發(fā)布子系統(tǒng)中包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)時(shí),所述身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布所述第一身份證明發(fā)布子系統(tǒng)的第一用戶節(jié)點(diǎn)的身份證明,所述第一用戶節(jié)點(diǎn)為所述第一身份證明發(fā)布子系統(tǒng)中的任一用戶節(jié)點(diǎn);所述第一身份證明發(fā)布子系統(tǒng)為所述多個(gè)身份證明發(fā)布子系統(tǒng)中的任一身份證明發(fā)布子系統(tǒng);

當(dāng)?shù)谝簧矸葑C明發(fā)布子系統(tǒng)中至少包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)和所述身份證明發(fā)布節(jié)點(diǎn)的上一級(jí)身份證明發(fā)布節(jié)點(diǎn),所述身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布所述第一身份證明發(fā)布子系統(tǒng)的所述第一用戶節(jié)點(diǎn)的身份證明,所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)用于向所述區(qū)塊鏈發(fā)布所述身份證明發(fā)布節(jié)點(diǎn)的身份證明;

其中,所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈發(fā)布所述第一身份證明發(fā)布子系統(tǒng)的所述第一用戶節(jié)點(diǎn)的身份證明包括:所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈;

所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈發(fā)布所述身份證明發(fā)布節(jié)點(diǎn)的身份證明包括:所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

通過(guò)上述技術(shù)方案,由于被認(rèn)證方的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息均記錄在區(qū)塊鏈中,不會(huì)因?yàn)槟硞€(gè)或某些節(jié)點(diǎn)的故障導(dǎo)致無(wú)法獲取身份信息,因此能夠避免單點(diǎn)故障對(duì)整個(gè)系統(tǒng)的影響,并且在區(qū)塊鏈網(wǎng)絡(luò)中,由于任何一個(gè)節(jié)點(diǎn)只要配置了身份證明發(fā)布節(jié)點(diǎn)的私鑰,其角色就是身份認(rèn)證發(fā)布節(jié)點(diǎn),因此身份證明發(fā)布節(jié)點(diǎn)不是固定的某一節(jié)點(diǎn),攻擊者無(wú)法對(duì)對(duì)身份認(rèn)證信息發(fā)布節(jié)點(diǎn)進(jìn)行定位,從而無(wú)法對(duì)身份認(rèn)證節(jié)點(diǎn)發(fā)起攻擊,從而保證了整個(gè)系統(tǒng)的安全,因此能夠解決由于單點(diǎn)故障問(wèn)題和安全問(wèn)題而影響整個(gè)系統(tǒng)的可用性和安全性的問(wèn)題,保證整個(gè)系統(tǒng)的可用性和安全性。

本公開(kāi)的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。

附圖說(shuō)明

附圖是用來(lái)提供對(duì)本公開(kāi)的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具體實(shí)施方式一起用于解釋本公開(kāi),但并不構(gòu)成對(duì)本公開(kāi)的限制。在附圖中:

圖1是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;

圖2是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;

圖3是根據(jù)一實(shí)施例示出的另一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖;

圖4是根據(jù)圖3所示實(shí)施例示出的一種私鑰驗(yàn)證方法的流程圖;

圖5是根據(jù)圖3所示實(shí)施例示出的另一種私鑰驗(yàn)證方法的流程圖;

圖6是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖;

圖7是根據(jù)圖6所示實(shí)施例示出的一種第二驗(yàn)證模塊框圖;

圖8是根據(jù)圖6所示實(shí)施例示出的另一種第二驗(yàn)證模塊框圖;

圖9是根據(jù)一實(shí)施例示出的另一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖;

圖10是根據(jù)圖9所示實(shí)施例示出的一種驗(yàn)證模塊框圖;

圖11是根據(jù)圖9所示實(shí)施例示出的另一種驗(yàn)證模塊框圖;

圖12是根據(jù)一實(shí)施例示出的又一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖;

圖13是根據(jù)一實(shí)施例示出的一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖;

圖14a是根據(jù)一實(shí)施例示出的另一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖;

圖14b是根據(jù)一實(shí)施例示出的又一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖;

圖15是根據(jù)一實(shí)施例示出的又一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本公開(kāi)的具體實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說(shuō)明和解釋本公開(kāi),并不用于限制本公開(kāi)。

在對(duì)本公開(kāi)提供的基于區(qū)塊鏈的身份認(rèn)證方法進(jìn)行說(shuō)明之前,先對(duì)本公開(kāi)各個(gè)實(shí)施例所涉及的應(yīng)用場(chǎng)景進(jìn)行介紹。

首先,對(duì)區(qū)塊鏈進(jìn)行介紹,區(qū)塊鏈?zhǔn)怯蓞^(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點(diǎn)共同參與維護(hù)的去中心化分布式數(shù)據(jù)庫(kù)系統(tǒng),它是由一系列基于密碼學(xué)方法產(chǎn)生的數(shù)據(jù)塊組成,每個(gè)數(shù)據(jù)塊即為區(qū)塊鏈中的一個(gè)區(qū)塊。根據(jù)產(chǎn)生時(shí)間的先后順序,區(qū)塊被有序地鏈接在一起,形成一個(gè)數(shù)據(jù)鏈條,被形象地稱(chēng)為區(qū)塊鏈。下面對(duì)區(qū)塊鏈網(wǎng)絡(luò)的一些概念進(jìn)行介紹。

區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)可以稱(chēng)為區(qū)塊鏈節(jié)點(diǎn),其中區(qū)塊鏈網(wǎng)絡(luò)基于p2p(peertopeer,對(duì)等網(wǎng)絡(luò))網(wǎng)絡(luò),每個(gè)參與交易和區(qū)塊存儲(chǔ)、驗(yàn)證、轉(zhuǎn)發(fā)的p2p網(wǎng)絡(luò)節(jié)點(diǎn)都是一個(gè)區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)。

區(qū)塊鏈中的用戶身份可以使用公鑰或者是根據(jù)該公鑰生成的賬戶地址表示,并且公鑰和私鑰是成對(duì)出現(xiàn)的,其中私鑰由用戶掌握而不發(fā)布到上述的區(qū)塊鏈網(wǎng)絡(luò)中,公鑰或者上述的賬戶地址可隨意發(fā)布在區(qū)塊鏈網(wǎng)絡(luò)中。其中,公鑰可以通過(guò)特定的哈希和編碼后成為上述的賬戶地址。值得一提的是,用戶身份和區(qū)塊鏈節(jié)點(diǎn)不存在一一對(duì)應(yīng)關(guān)系,用戶可以在任意一個(gè)區(qū)塊鏈節(jié)點(diǎn)上使用自己的私鑰。

關(guān)于區(qū)塊鏈的數(shù)據(jù)寫(xiě)入,是由區(qū)塊鏈節(jié)點(diǎn)通過(guò)向區(qū)塊鏈網(wǎng)絡(luò)發(fā)布交易(transaction)實(shí)現(xiàn)向區(qū)塊鏈寫(xiě)入數(shù)據(jù)。該交易包括:區(qū)塊鏈節(jié)點(diǎn)按照預(yù)設(shè)的交易數(shù)據(jù)格式對(duì)生成的交易數(shù)據(jù)包,以及利用該區(qū)塊鏈節(jié)點(diǎn)自己的私鑰對(duì)該交易數(shù)據(jù)包進(jìn)行的數(shù)字簽名,該數(shù)字簽名用于證明該區(qū)塊鏈節(jié)點(diǎn)的用戶的身份;而后,該交易被區(qū)塊鏈網(wǎng)絡(luò)中的“礦工”(即執(zhí)行pow(proofofwork,工作證明)共識(shí)競(jìng)爭(zhēng)機(jī)制的區(qū)塊鏈節(jié)點(diǎn))記錄入?yún)^(qū)塊鏈中產(chǎn)生的新區(qū)塊,并將該交易發(fā)布到區(qū)塊鏈網(wǎng)絡(luò)中,在該交易被其他區(qū)塊鏈節(jié)點(diǎn)驗(yàn)證通過(guò)(其他節(jié)點(diǎn)可以從該區(qū)塊鏈節(jié)點(diǎn)生成的交易中獲取該區(qū)塊鏈節(jié)點(diǎn)的公鑰,并根據(jù)該區(qū)塊鏈節(jié)點(diǎn)的公鑰對(duì)上述的數(shù)字簽名進(jìn)行驗(yàn)證,除了驗(yàn)證數(shù)字簽名之外還可以驗(yàn)證交易數(shù)據(jù)包是否為規(guī)定的數(shù)據(jù)結(jié)構(gòu))和接受后,該交易即被寫(xiě)入?yún)^(qū)塊鏈。其中,區(qū)塊鏈中的新區(qū)塊是由上述的“礦工”通過(guò)執(zhí)行pow共識(shí)競(jìng)爭(zhēng)機(jī)制(該機(jī)制可以理解為:各個(gè)“礦工”按照區(qū)塊的預(yù)設(shè)技術(shù)要求,例如按照預(yù)設(shè)的隨機(jī)數(shù)要求來(lái)共同計(jì)算隨機(jī)數(shù),哪一個(gè)“礦工”先計(jì)算出符合該隨機(jī)數(shù)要求的隨機(jī)數(shù),該“礦工”產(chǎn)生的區(qū)塊就作為該新區(qū)塊)而定期產(chǎn)生的,因此產(chǎn)生新區(qū)塊的時(shí)間間隔通常和上述的預(yù)設(shè)技術(shù)要求相關(guān),通過(guò)設(shè)置不同的預(yù)設(shè)技術(shù)要求可以改變區(qū)塊鏈產(chǎn)生新區(qū)塊的時(shí)間間隔。

本發(fā)明公開(kāi)的各個(gè)實(shí)施例中,向區(qū)塊鏈中寫(xiě)入數(shù)據(jù)的流程均是采用上述流程。本發(fā)明公開(kāi)各個(gè)實(shí)施例所涉及的應(yīng)用場(chǎng)景可以是一種身份認(rèn)證系統(tǒng),該系統(tǒng)基于區(qū)塊鏈,可以至少包括:區(qū)塊鏈、兩個(gè)以上用戶節(jié)點(diǎn)和一個(gè)身份證明發(fā)布節(jié)點(diǎn),該區(qū)塊鏈、用戶節(jié)點(diǎn)和身份證明發(fā)布節(jié)點(diǎn)均屬于同一區(qū)塊鏈網(wǎng)絡(luò)。其中,用戶節(jié)點(diǎn)是身份證明的需求節(jié)點(diǎn),用于實(shí)際進(jìn)行身份認(rèn)證操作。身份證明發(fā)布節(jié)點(diǎn)是用于為用戶節(jié)點(diǎn)發(fā)布身份證明的節(jié)點(diǎn),這里的“發(fā)布身份證明”,是指對(duì)用戶節(jié)點(diǎn)的身份信息進(jìn)行確認(rèn)、數(shù)字簽名、并將數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈,并且在區(qū)塊鏈網(wǎng)絡(luò)中,身份證明發(fā)布節(jié)點(diǎn)可以不是固定的某一個(gè)節(jié)點(diǎn),任何一個(gè)節(jié)點(diǎn)只要配置了身份證明發(fā)布節(jié)點(diǎn)的私鑰,其角色就是身份認(rèn)證發(fā)布節(jié)點(diǎn)。通常身份證明發(fā)布節(jié)點(diǎn)的身份信息(的賬戶地址或公鑰)已寫(xiě)入?yún)^(qū)塊鏈,并得到用戶節(jié)點(diǎn)的認(rèn)可。

圖1是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該方法應(yīng)用于被認(rèn)證方節(jié)點(diǎn),該被認(rèn)證方節(jié)點(diǎn)可以是上述身份認(rèn)證系統(tǒng)中的任一用戶節(jié)點(diǎn),參見(jiàn)圖1,該方法可以包括以下步驟。

步驟101,向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,認(rèn)證請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息。

其中,認(rèn)證方節(jié)點(diǎn)也是上述系統(tǒng)中除了該被認(rèn)證方節(jié)點(diǎn)外的任一用戶節(jié)點(diǎn),即該身份認(rèn)證方法是兩個(gè)用戶節(jié)點(diǎn)之間進(jìn)行的,并且每個(gè)用戶節(jié)點(diǎn)既可以作為被認(rèn)證方節(jié)點(diǎn)也可以作為認(rèn)證方節(jié)點(diǎn)。另外被認(rèn)證方節(jié)點(diǎn)的身份信息包括被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者被認(rèn)證方節(jié)點(diǎn)的公鑰,被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者身份證明發(fā)布節(jié)點(diǎn)的公鑰,身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。其中,上述各個(gè)節(jié)點(diǎn)的賬戶地址可以是通過(guò)將公鑰進(jìn)行特定的哈希計(jì)算以及編碼后生成的。

步驟102,在認(rèn)證方節(jié)點(diǎn)在確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中,并且在第一數(shù)字簽名通過(guò)認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與認(rèn)證方節(jié)點(diǎn)進(jìn)行被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證。

步驟103,當(dāng)認(rèn)證方節(jié)點(diǎn)確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

圖2是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該方法應(yīng)用于認(rèn)證方節(jié)點(diǎn),該認(rèn)證方節(jié)點(diǎn)可以是上述身份認(rèn)證系統(tǒng)中的任一用戶節(jié)點(diǎn),參見(jiàn)圖2,該方法可以包括以下步驟。

步驟201,接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的認(rèn)證請(qǐng)求,認(rèn)證請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息。

其中,被認(rèn)證方節(jié)點(diǎn)也是上述系統(tǒng)中除了該認(rèn)證方節(jié)點(diǎn)外的任一用戶節(jié)點(diǎn),即該身份認(rèn)證方法是兩個(gè)用戶節(jié)點(diǎn)之間進(jìn)行的,并且每個(gè)用戶節(jié)點(diǎn)既可以作為被認(rèn)證方節(jié)點(diǎn)也可以作為認(rèn)證方節(jié)點(diǎn)。另外被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息所包括的內(nèi)容可參照步驟101,不再贅述。

步驟202,在確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及身份證明發(fā)布節(jié)點(diǎn)對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證;身份證明發(fā)布節(jié)點(diǎn)的公鑰是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的身份信息獲取的。

步驟203,在第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰;被認(rèn)證方節(jié)點(diǎn)的公鑰是根據(jù)被認(rèn)證方節(jié)點(diǎn)的身份信息獲取的。

步驟204,當(dāng)確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),確定被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

圖3是根據(jù)一實(shí)施例示出的另一種基于區(qū)塊鏈的身份認(rèn)證方法的流程圖,該方法應(yīng)用于上述的身份認(rèn)證系統(tǒng),本實(shí)施例中的被認(rèn)證方節(jié)點(diǎn)和認(rèn)證方節(jié)點(diǎn)均為該認(rèn)證系統(tǒng)中的用戶節(jié)點(diǎn),參見(jiàn)圖3,該方法可以包括以下步驟。

步驟301,被認(rèn)證方節(jié)點(diǎn)向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,認(rèn)證請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息。

其中,認(rèn)證方節(jié)點(diǎn)和被認(rèn)證方節(jié)點(diǎn)可以是上述身份認(rèn)證系統(tǒng)中的任意兩個(gè)用戶節(jié)點(diǎn)。被認(rèn)證方節(jié)點(diǎn)的身份信息包括被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者被認(rèn)證方節(jié)點(diǎn)的公鑰,被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者身份證明發(fā)布節(jié)點(diǎn)的公鑰,身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。其中,上述各個(gè)節(jié)點(diǎn)的賬戶地址可以是通過(guò)將公鑰進(jìn)行特定的哈希計(jì)算以及編碼后生成的。

步驟302,認(rèn)證方節(jié)點(diǎn)接收被認(rèn)證方節(jié)點(diǎn)的認(rèn)證請(qǐng)求后,確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及身份證明發(fā)布節(jié)點(diǎn)對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名是否已寫(xiě)入?yún)^(qū)塊鏈中。

其中,由于認(rèn)證方節(jié)點(diǎn)、被認(rèn)證方節(jié)點(diǎn)以及身份證明發(fā)布節(jié)點(diǎn)屬于同一個(gè)區(qū)塊鏈網(wǎng)絡(luò),在被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息以及第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈的情況下,認(rèn)證方節(jié)點(diǎn)是能夠從區(qū)塊鏈中讀取到這些信息的。其中,第一數(shù)字簽名是在身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈中發(fā)布被認(rèn)證方節(jié)點(diǎn)的身份證明后產(chǎn)生的。關(guān)于身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈中發(fā)布被認(rèn)證方節(jié)點(diǎn)的身份證明的方法,可以包括以下步驟:

首先,被認(rèn)證方節(jié)點(diǎn)向區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求,身份證明請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息。其中向區(qū)塊鏈中寫(xiě)入身份證明請(qǐng)求的過(guò)程可以參照前文所述的區(qū)塊鏈的數(shù)據(jù)寫(xiě)入過(guò)程。

其次,身份證明發(fā)布節(jié)點(diǎn)在接收到身份證明請(qǐng)求后,在區(qū)塊鏈中確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息(例如確認(rèn)區(qū)塊鏈中已寫(xiě)入被認(rèn)證方節(jié)點(diǎn)的身份信息),并根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到該第一數(shù)字簽名。

最后,將該第一數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈中,寫(xiě)入?yún)^(qū)塊鏈中后,區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點(diǎn)均可以讀取到該第一數(shù)字簽名,從而完成了對(duì)該被認(rèn)證方節(jié)點(diǎn)的身份證明的發(fā)布。

另外,值得一提的是,身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈中發(fā)布被認(rèn)證方節(jié)點(diǎn)的身份證明的流程應(yīng)當(dāng)在被認(rèn)證方節(jié)點(diǎn)向認(rèn)證方節(jié)點(diǎn)發(fā)起身份認(rèn)證之前。并且,向區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求不限于上述的被認(rèn)證方節(jié)點(diǎn),區(qū)塊鏈網(wǎng)絡(luò)中的任一用戶節(jié)點(diǎn)均可以發(fā)起向區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求。

步驟303,在被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息以及第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),認(rèn)證方節(jié)點(diǎn)根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證。

由于第一數(shù)字簽名是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的,因此可以根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證,以確定該第一數(shù)字簽名的合法性,其中,身份證明發(fā)布節(jié)點(diǎn)的公鑰可以從區(qū)塊鏈中獲取,也可以是預(yù)先存儲(chǔ)在認(rèn)證方節(jié)點(diǎn)上的。其中,由于身份證明發(fā)布節(jié)點(diǎn)的身份信息已經(jīng)寫(xiě)入?yún)^(qū)塊鏈中,因此區(qū)塊鏈網(wǎng)絡(luò)中的任意節(jié)點(diǎn)均可以獲取該身份信息,因此,如果該身份信息是身份證明發(fā)布節(jié)點(diǎn)的公鑰,則認(rèn)證方節(jié)點(diǎn)可以直接得到身份證明發(fā)布節(jié)點(diǎn)的公鑰,如果該身份信息是身份證明發(fā)布節(jié)點(diǎn)的賬戶地址,則認(rèn)證方節(jié)點(diǎn)可以根據(jù)該賬戶地址進(jìn)行計(jì)算得到身份證明發(fā)布節(jié)點(diǎn)的公鑰。

步驟304,在第一數(shù)字簽名通過(guò)驗(yàn)證后,認(rèn)證方節(jié)點(diǎn)驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

示例的,圖4是根據(jù)圖3所示實(shí)施例示出的一種私鑰驗(yàn)證方法的流程圖,如圖4所示,在一種實(shí)現(xiàn)方式中,驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰可以通過(guò)以下步驟:

步驟3041a,在第一數(shù)字簽名通過(guò)驗(yàn)證后,認(rèn)證方節(jié)點(diǎn)生成驗(yàn)證信息。該驗(yàn)證信息可以是挑戰(zhàn)碼(challenge),挑戰(zhàn)碼也稱(chēng)作挑戰(zhàn)口令,是指遵循握手驗(yàn)證協(xié)議(英文:challengehandshakeauthenticationprotocol,簡(jiǎn)稱(chēng):chap)生成的一組加密口令,用于在傳輸過(guò)程中保證用戶的真實(shí)密碼不被泄露。或者驗(yàn)證信息可以是按照預(yù)設(shè)的信息生成規(guī)則生成的信息。

步驟3042a,認(rèn)證方節(jié)點(diǎn)向被認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息。

步驟3043a,被認(rèn)證方節(jié)點(diǎn)根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到第二數(shù)字簽名。

步驟3044a,認(rèn)證方節(jié)點(diǎn)從被認(rèn)證方節(jié)點(diǎn)獲取第二數(shù)字簽名后,根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)第二數(shù)字簽名進(jìn)行驗(yàn)證。其中,被認(rèn)證方節(jié)點(diǎn)的公鑰可以是從區(qū)塊鏈中獲取的,也可以是預(yù)先存儲(chǔ)在認(rèn)證方節(jié)點(diǎn)的。

步驟3045a,當(dāng)?shù)诙?shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

圖5是根據(jù)圖3所示實(shí)施例示出的另一種私鑰驗(yàn)證方法的流程圖,如圖5所示,在另一種實(shí)現(xiàn)方式中,驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰可以通過(guò)以下步驟:

步驟3041b,在第一數(shù)字簽名通過(guò)認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,被認(rèn)證方節(jié)點(diǎn)根據(jù)預(yù)設(shè)的信息生成規(guī)則生成驗(yàn)證信息。

其中,驗(yàn)證信息可以與步驟3041a中所述的驗(yàn)證信息相同,信息生成規(guī)則預(yù)設(shè)置在被認(rèn)證方節(jié)點(diǎn)和認(rèn)證方節(jié)點(diǎn)。

步驟3042b,被認(rèn)證方節(jié)點(diǎn)根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到第三數(shù)字簽名。

步驟3043b,被認(rèn)證方節(jié)點(diǎn)向認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息以及第三數(shù)字簽名。

步驟3044b,認(rèn)證方節(jié)點(diǎn)驗(yàn)證該驗(yàn)證信息是否是按照該信息生成規(guī)則生成的。

步驟3045b,當(dāng)認(rèn)證方節(jié)點(diǎn)確認(rèn)驗(yàn)證信息是按照信息生成規(guī)則生成的時(shí),根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)第三數(shù)字簽名進(jìn)行驗(yàn)證。其中,被認(rèn)證方節(jié)點(diǎn)的公鑰可以是從區(qū)塊鏈中獲取的,也可以是預(yù)先存儲(chǔ)在認(rèn)證方節(jié)點(diǎn)的。

步驟3046b,當(dāng)?shù)谌龜?shù)字簽名通過(guò)驗(yàn)證時(shí),認(rèn)證方節(jié)點(diǎn)確認(rèn)被認(rèn)證方節(jié)點(diǎn)已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

除了上述圖4或圖5所述的實(shí)施方式外,驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰也可以是其他可能的實(shí)施方式,包括但不限于上述的方案。

步驟305,當(dāng)確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),認(rèn)證方節(jié)點(diǎn)確定被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

其中,在上述步驟303和步驟304中有任一個(gè)步驟驗(yàn)證失敗時(shí),被認(rèn)證方節(jié)點(diǎn)的身份認(rèn)證均被確認(rèn)為失敗。

可選的,當(dāng)所述身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),步驟303所述的根據(jù)從區(qū)塊鏈中獲取的身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證的步驟可以包括:

首先,從區(qū)塊鏈中獲取上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

其次,根據(jù)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第四數(shù)字簽名進(jìn)行驗(yàn)證;

再次,在第四數(shù)字簽名通過(guò)驗(yàn)證后,根據(jù)從區(qū)塊鏈中獲取的身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證。

或者,當(dāng)所述身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),在步驟304中所述的在第一數(shù)字簽名通過(guò)驗(yàn)證后,在驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰之前可以包括:

首先,在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,從區(qū)塊鏈中獲取所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

其次,根據(jù)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第四數(shù)字簽名進(jìn)行驗(yàn)證;

再次,在第四數(shù)字簽名通過(guò)驗(yàn)證后,向被認(rèn)證方節(jié)點(diǎn)發(fā)送挑戰(zhàn)碼。

在實(shí)際的應(yīng)用場(chǎng)景中,上述的上一級(jí)身份證明發(fā)布節(jié)點(diǎn)也可能存在更上一級(jí)的身份證明發(fā)布節(jié)點(diǎn),這里稱(chēng)為上上一級(jí)身份證明發(fā)布節(jié)點(diǎn),則在驗(yàn)證了該第四數(shù)字簽名后,還需要驗(yàn)證上上一級(jí)身份證明發(fā)布節(jié)點(diǎn)利用自身私鑰對(duì)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰的數(shù)字簽名。當(dāng)然,還可能存在更高一級(jí)的身份證明發(fā)布節(jié)點(diǎn),其原理與前述方法相同,以此類(lèi)推,不再一一列舉。

另外,可選的,身份證明發(fā)布節(jié)點(diǎn)還可以對(duì)已經(jīng)發(fā)布的身份證明進(jìn)行撤銷(xiāo),示例的,身份證明發(fā)布節(jié)點(diǎn)可以向所述區(qū)塊鏈寫(xiě)入撤銷(xiāo)證明,其寫(xiě)入撤銷(xiāo)證明的過(guò)程可以參照上述的區(qū)塊鏈的數(shù)據(jù)寫(xiě)入過(guò)程。該撤銷(xiāo)證明中可以包括對(duì)之前發(fā)布過(guò)的某一身份證明,例如上述的第一數(shù)字簽名進(jìn)行撤銷(xiāo)的,以及利用身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)撤銷(xiāo)說(shuō)明進(jìn)行數(shù)字簽名得到第五數(shù)字簽名。區(qū)塊鏈網(wǎng)絡(luò)中的其他節(jié)點(diǎn)可以通過(guò)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第五數(shù)字簽名進(jìn)行驗(yàn)證,從而確定撤銷(xiāo)說(shuō)明的合法性。

綜上所述,本公開(kāi)提供的基于區(qū)塊鏈的身份認(rèn)證方法中,由于被認(rèn)證方的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息均記錄在區(qū)塊鏈中,不會(huì)因?yàn)槟硞€(gè)或某些節(jié)點(diǎn)的故障導(dǎo)致無(wú)法獲取身份信息,因此能夠避免單點(diǎn)故障對(duì)整個(gè)系統(tǒng)的影響,并且在區(qū)塊鏈網(wǎng)絡(luò)中,由于任何一個(gè)節(jié)點(diǎn)只要配置了身份證明發(fā)布節(jié)點(diǎn)的私鑰,其角色就是身份認(rèn)證發(fā)布節(jié)點(diǎn),因此身份證明發(fā)布節(jié)點(diǎn)不是固定的某一節(jié)點(diǎn),攻擊者無(wú)法對(duì)對(duì)身份認(rèn)證信息發(fā)布節(jié)點(diǎn)進(jìn)行定位,從而無(wú)法對(duì)身份認(rèn)證節(jié)點(diǎn)發(fā)起攻擊,從而保證了整個(gè)系統(tǒng)的安全,因此能夠解決由于單點(diǎn)故障問(wèn)題和安全問(wèn)題而影響整個(gè)系統(tǒng)的可用性和安全性的問(wèn)題,保證整個(gè)系統(tǒng)的可用性和安全性。

圖6是根據(jù)一實(shí)施例示出的一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖,該裝置600可以應(yīng)用于認(rèn)證方節(jié)點(diǎn),用于執(zhí)行圖2或圖3至圖5任一所示的方法,參見(jiàn)圖6,該裝置600可以包括:接收模塊610、第一驗(yàn)證模塊620、第二驗(yàn)證模塊630以及確定模塊640,其中:

接收模塊610,用于接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的認(rèn)證請(qǐng)求,認(rèn)證請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

第一驗(yàn)證模塊620,用于在確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及身份證明發(fā)布節(jié)點(diǎn)對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證;身份證明發(fā)布節(jié)點(diǎn)的公鑰是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的身份信息獲取的;

第二驗(yàn)證模塊630,用于在第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰;被認(rèn)證方節(jié)點(diǎn)的公鑰是根據(jù)被認(rèn)證方節(jié)點(diǎn)的身份信息獲取的;

確定模塊640,用于當(dāng)確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),確定被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,圖7是根據(jù)圖6所示實(shí)施例示出的一種第二驗(yàn)證模塊框圖,如圖7所示,第二驗(yàn)證模塊630包括:

發(fā)送子模塊631,用于在第一數(shù)字簽名通過(guò)驗(yàn)證后,向被認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息;

接收子模塊632,用于接收被認(rèn)證方節(jié)點(diǎn)根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第二數(shù)字簽名;

驗(yàn)證子模塊633,用于根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)第二數(shù)字簽名進(jìn)行驗(yàn)證;

確認(rèn)子模塊634,用于確定當(dāng)?shù)诙?shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

或者,圖8是根據(jù)圖6所示實(shí)施例示出的另一種第二驗(yàn)證模塊框圖,如圖8所示,第二驗(yàn)證模塊630包括:

接收子模塊635,用于接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息,以及被認(rèn)證方節(jié)點(diǎn)根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第三數(shù)字簽名;驗(yàn)證信息是被認(rèn)證方節(jié)點(diǎn)根據(jù)預(yù)設(shè)的信息生成規(guī)則生成的,信息生成規(guī)則預(yù)設(shè)置在被認(rèn)證方節(jié)點(diǎn)和認(rèn)證方節(jié)點(diǎn);

信息驗(yàn)證子模塊636,用于驗(yàn)證驗(yàn)證信息是否是按照信息生成規(guī)則生成的;

簽名驗(yàn)證子模塊637,用于當(dāng)驗(yàn)證信息是按照信息生成規(guī)則生成的時(shí),根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)第三數(shù)字簽名進(jìn)行驗(yàn)證;

確認(rèn)子模塊638,用于當(dāng)?shù)谌龜?shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,當(dāng)身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),第一驗(yàn)證模塊620用于:

從區(qū)塊鏈中獲取上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;

根據(jù)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第四數(shù)字簽名進(jìn)行驗(yàn)證;

在第四數(shù)字簽名通過(guò)驗(yàn)證后,根據(jù)從區(qū)塊鏈中獲取的身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第一數(shù)字簽名進(jìn)行驗(yàn)證。

或者,第一驗(yàn)證模塊620用于:

在第一數(shù)字簽名通過(guò)驗(yàn)證后,從區(qū)塊鏈中獲取上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;根據(jù)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)第四數(shù)字簽名進(jìn)行驗(yàn)證;

發(fā)送模塊還用于在第四數(shù)字簽名通過(guò)驗(yàn)證后,第二驗(yàn)證模塊630驗(yàn)證被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,被認(rèn)證方節(jié)點(diǎn)的身份信息包括被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者被認(rèn)證方節(jié)點(diǎn)的公鑰,被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者身份證明發(fā)布節(jié)點(diǎn)的公鑰,身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

圖9是根據(jù)一實(shí)施例示出的另一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖,該裝置900應(yīng)用于被認(rèn)證方節(jié)點(diǎn),用于執(zhí)行圖1或圖3至圖5任一所示的方法,參見(jiàn)圖9,該裝置900可以包括:裝置包括:認(rèn)證請(qǐng)求模塊910和驗(yàn)證模塊920,其中:

認(rèn)證請(qǐng)求模塊910,用于向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,認(rèn)證請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;

驗(yàn)證模塊920,用于在認(rèn)證方節(jié)點(diǎn)在確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)的身份信息、身份證明發(fā)布節(jié)點(diǎn)對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中,并且在第一數(shù)字簽名通過(guò)認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與認(rèn)證方節(jié)點(diǎn)進(jìn)行被認(rèn)證方是否掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證;當(dāng)認(rèn)證方節(jié)點(diǎn)確認(rèn)被認(rèn)證方已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,圖10是根據(jù)圖9所示實(shí)施例示出的一種驗(yàn)證模塊框圖,如圖10所示,驗(yàn)證模塊920包括:

接收子模塊921,用于在第一數(shù)字簽名通過(guò)認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,接收認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息;

簽名子模塊922,用于根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到第二數(shù)字簽名;

發(fā)送子模塊923,用于向認(rèn)證方節(jié)點(diǎn)發(fā)送第二數(shù)字簽名,當(dāng)?shù)诙?shù)字簽名通過(guò)認(rèn)證方的驗(yàn)證時(shí),被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,圖11是根據(jù)圖9所示實(shí)施例示出的另一種驗(yàn)證模塊框圖,如圖11所示,驗(yàn)證模塊920包括:

信息生成子模塊923,用于在第一數(shù)字簽名通過(guò)認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,根據(jù)預(yù)設(shè)的信息生成規(guī)則生成驗(yàn)證信息;信息生成規(guī)則預(yù)設(shè)置在被認(rèn)證方節(jié)點(diǎn)和認(rèn)證方節(jié)點(diǎn);

簽名子模塊924,用于根據(jù)被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)驗(yàn)證信息進(jìn)行數(shù)字簽名得到第三數(shù)字簽名;

發(fā)送子模塊925,用于向認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息以及第三數(shù)字簽名;當(dāng)認(rèn)證方節(jié)點(diǎn)確認(rèn)驗(yàn)證信息是按照信息生成規(guī)則生成的,并且認(rèn)證方節(jié)點(diǎn)根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)第三數(shù)字簽名進(jìn)行的驗(yàn)證通過(guò)驗(yàn)證時(shí),被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,圖12是根據(jù)一實(shí)施例示出的又一種基于區(qū)塊鏈的身份認(rèn)證裝置框圖,裝置900還包括:身份證明請(qǐng)求模塊930,用于:

向區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求,身份證明請(qǐng)求中包括被認(rèn)證方節(jié)點(diǎn)的身份信息,用于身份證明發(fā)布節(jié)點(diǎn)在區(qū)塊鏈中確認(rèn)被認(rèn)證方節(jié)點(diǎn)的身份信息,并根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到第一數(shù)字簽名,并將第一數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈。

可選的,在身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈寫(xiě)入用于撤銷(xiāo)第一數(shù)字簽名的撤銷(xiāo)證明后,被認(rèn)證方節(jié)點(diǎn)的第一數(shù)字簽名被撤銷(xiāo),撤銷(xiāo)證明中包括對(duì)第一數(shù)字簽名的撤銷(xiāo)說(shuō)明,以及通過(guò)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)撤銷(xiāo)說(shuō)明進(jìn)行數(shù)字簽名得到第五數(shù)字簽名。

可選的,被認(rèn)證方節(jié)點(diǎn)的身份信息包括被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者被認(rèn)證方節(jié)點(diǎn)的公鑰,被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者身份證明發(fā)布節(jié)點(diǎn)的公鑰,身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

綜上所述,由于被認(rèn)證方的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息均記錄在區(qū)塊鏈中,不會(huì)因?yàn)槟硞€(gè)或某些節(jié)點(diǎn)的故障導(dǎo)致無(wú)法獲取身份信息,因此能夠避免單點(diǎn)故障對(duì)整個(gè)系統(tǒng)的影響,并且在區(qū)塊鏈網(wǎng)絡(luò)中,由于任何一個(gè)節(jié)點(diǎn)只要配置了身份證明發(fā)布節(jié)點(diǎn)的私鑰,其角色就是身份認(rèn)證發(fā)布節(jié)點(diǎn),因此身份證明發(fā)布節(jié)點(diǎn)不是固定的某一節(jié)點(diǎn),攻擊者無(wú)法對(duì)對(duì)身份認(rèn)證信息發(fā)布節(jié)點(diǎn)進(jìn)行定位,從而無(wú)法對(duì)身份認(rèn)證節(jié)點(diǎn)發(fā)起攻擊,從而保證了整個(gè)系統(tǒng)的安全,因此能夠解決由于單點(diǎn)故障問(wèn)題和安全問(wèn)題而影響整個(gè)系統(tǒng)的可用性和安全性的問(wèn)題,保證整個(gè)系統(tǒng)的可用性和安全性。

本公開(kāi)實(shí)施例還提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中包括一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序用于執(zhí)行一種基于區(qū)塊鏈的身份認(rèn)證方法,該基于區(qū)塊鏈的身份認(rèn)證方法應(yīng)用于認(rèn)證方節(jié)點(diǎn),該基于區(qū)塊鏈的身份認(rèn)證方法包括:接收被認(rèn)證方節(jié)點(diǎn)發(fā)送的認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;在確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息,以及所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中時(shí),根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證;所述身份證明發(fā)布節(jié)點(diǎn)的公鑰是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的身份信息獲取的;在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰;所述被認(rèn)證方節(jié)點(diǎn)的公鑰是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的身份信息獲取的;當(dāng)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),確定所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰,包括:在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,向所述被認(rèn)證方節(jié)點(diǎn)發(fā)送驗(yàn)證信息;接收所述被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第二數(shù)字簽名;根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第二數(shù)字簽名進(jìn)行驗(yàn)證;當(dāng)所述第二數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,向所述被認(rèn)證方確認(rèn)所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰,包括:接收所述被認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息,以及被認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到的第三數(shù)字簽名;所述驗(yàn)證信息是所述被認(rèn)證方節(jié)點(diǎn)根據(jù)預(yù)設(shè)的信息生成規(guī)則生成的,所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);驗(yàn)證所述驗(yàn)證信息是否是按照所述信息生成規(guī)則生成的;當(dāng)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的時(shí),根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行驗(yàn)證;當(dāng)所述第三數(shù)字簽名通過(guò)驗(yàn)證時(shí),確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,當(dāng)所述身份證明發(fā)布節(jié)點(diǎn)存在上一級(jí)身份證明發(fā)布節(jié)點(diǎn)時(shí),所述根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證,包括:

從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,根據(jù)從所述區(qū)塊鏈中獲取的所述身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第一數(shù)字簽名進(jìn)行驗(yàn)證。

可選的,所述在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,在驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰之前,還包括:在所述第一數(shù)字簽名通過(guò)驗(yàn)證后,從所述區(qū)塊鏈中獲取所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰,以及所述上一級(jí)身份證明節(jié)點(diǎn)根據(jù)所述上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名得到的第四數(shù)字簽名;根據(jù)所述上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰對(duì)所述第四數(shù)字簽名進(jìn)行驗(yàn)證;在所述第四數(shù)字簽名通過(guò)驗(yàn)證后,驗(yàn)證所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

本公開(kāi)實(shí)施例還提供一種用戶節(jié)點(diǎn)2,所述用戶節(jié)點(diǎn)2包括:

上述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1;以及

一個(gè)或者多個(gè)處理器,用于執(zhí)行上述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1中的程序。

本公開(kāi)實(shí)施例還提供另一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)3,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)3中包括一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序用于執(zhí)行一種基于區(qū)塊鏈的身份認(rèn)證方法,該基于區(qū)塊鏈的身份認(rèn)證方法應(yīng)用于被認(rèn)證方節(jié)點(diǎn),該基于區(qū)塊鏈的身份認(rèn)證方法包括:向認(rèn)證方發(fā)送認(rèn)證請(qǐng)求,所述認(rèn)證請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息和身份證明發(fā)布節(jié)點(diǎn)的身份信息;在所述認(rèn)證方節(jié)點(diǎn)在確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)的身份信息、所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到的第一數(shù)字簽名已寫(xiě)入?yún)^(qū)塊鏈中,并且在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證;當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述被認(rèn)證方已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰時(shí),所述被認(rèn)證方節(jié)點(diǎn)通過(guò)身份認(rèn)證。

可選的,所述在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證,包括:在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,接收所述認(rèn)證方節(jié)點(diǎn)發(fā)送的驗(yàn)證信息;根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第二數(shù)字簽名;向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述第二數(shù)字簽名,當(dāng)所述第二數(shù)字簽名通過(guò)所述認(rèn)證方的驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,與所述認(rèn)證方節(jié)點(diǎn)進(jìn)行所述被認(rèn)證方是否掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰的驗(yàn)證,包括:在所述第一數(shù)字簽名通過(guò)所述認(rèn)證方節(jié)點(diǎn)的驗(yàn)證后,根據(jù)預(yù)設(shè)的信息生成規(guī)則生成驗(yàn)證信息;所述信息生成規(guī)則預(yù)設(shè)置在所述被認(rèn)證方節(jié)點(diǎn)和所述認(rèn)證方節(jié)點(diǎn);根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的私鑰對(duì)所述驗(yàn)證信息進(jìn)行數(shù)字簽名得到第三數(shù)字簽名;向所述認(rèn)證方節(jié)點(diǎn)發(fā)送所述驗(yàn)證信息以及所述第三數(shù)字簽名;當(dāng)所述認(rèn)證方節(jié)點(diǎn)確認(rèn)所述驗(yàn)證信息是按照所述信息生成規(guī)則生成的,并且所述認(rèn)證方節(jié)點(diǎn)根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)所述第三數(shù)字簽名進(jìn)行的驗(yàn)證通過(guò)驗(yàn)證時(shí),所述被認(rèn)證方節(jié)點(diǎn)被確認(rèn)已掌握與所述被認(rèn)證方節(jié)點(diǎn)的公鑰對(duì)應(yīng)的私鑰。

可選的,所述身份證明發(fā)布節(jié)點(diǎn)對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息和所述第一數(shù)字簽名寫(xiě)入所述區(qū)塊鏈的方法包括:向所述區(qū)塊鏈寫(xiě)入身份證明請(qǐng)求,所述身份證明請(qǐng)求中包括所述被認(rèn)證方節(jié)點(diǎn)的身份信息,用于所述身份證明發(fā)布節(jié)點(diǎn)在所述區(qū)塊鏈中確認(rèn)所述被認(rèn)證方節(jié)點(diǎn)的身份信息,并根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述被認(rèn)證方節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名得到所述第一數(shù)字簽名,并將所述第一數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

可選的,在所述身份證明發(fā)布節(jié)點(diǎn)向所述區(qū)塊鏈寫(xiě)入用于撤銷(xiāo)所述第一數(shù)字簽名的撤銷(xiāo)證明后,所述被認(rèn)證方節(jié)點(diǎn)的所述第一數(shù)字簽名被撤銷(xiāo),所述撤銷(xiāo)證明中包括對(duì)所述第一數(shù)字簽名的撤銷(xiāo)說(shuō)明,以及通過(guò)所述身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)所述撤銷(xiāo)說(shuō)明進(jìn)行數(shù)字簽名得到第五數(shù)字簽名。

可選的,所述被認(rèn)證方節(jié)點(diǎn)的身份信息包括所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址或者所述被認(rèn)證方節(jié)點(diǎn)的公鑰,所述被認(rèn)證方節(jié)點(diǎn)的賬戶地址是根據(jù)所述被認(rèn)證方節(jié)點(diǎn)的公鑰獲取的;所述身份證明發(fā)布節(jié)點(diǎn)的身份信息包括:所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址或者所述身份證明發(fā)布節(jié)點(diǎn)的公鑰,所述身份證明發(fā)布節(jié)點(diǎn)的賬戶地址是根據(jù)所述身份證明發(fā)布節(jié)點(diǎn)的公鑰獲取的。

本公開(kāi)實(shí)施例還提供另一種用戶節(jié)點(diǎn)4,所述用戶節(jié)點(diǎn)4包括:

上述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)3;以及

一個(gè)或者多個(gè)處理器,用于執(zhí)行上述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)3中的程序。

本公開(kāi)實(shí)施例還提供一種身份認(rèn)證系統(tǒng),所述系統(tǒng)包括:

區(qū)塊鏈;

至少一個(gè)上述的用戶節(jié)點(diǎn)1,作為認(rèn)證方節(jié)點(diǎn);

至少一個(gè)上述的用戶節(jié)點(diǎn)4,作為被認(rèn)證方節(jié)點(diǎn);以及

至少一個(gè)身份證明發(fā)布節(jié)點(diǎn);

其中,所述區(qū)塊鏈,所述至少一個(gè)上述的用戶節(jié)點(diǎn)1,所述至少一個(gè)上述的用戶節(jié)點(diǎn)4以及所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)屬于同一區(qū)塊鏈網(wǎng)絡(luò)。

可選的,所述系統(tǒng)中身份證明發(fā)布節(jié)點(diǎn)和用戶節(jié)點(diǎn)的關(guān)系可以包括以下三種:

在第一種實(shí)現(xiàn)方式中,如圖13所示,圖13是根據(jù)一實(shí)施例示出的一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖,在圖13中,所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)為一個(gè)身份證明發(fā)布節(jié)點(diǎn),該身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布區(qū)塊鏈網(wǎng)絡(luò)中的每個(gè)用戶節(jié)點(diǎn)的身份證明;

其中,以第一用戶節(jié)點(diǎn)為例,該第一用戶節(jié)點(diǎn)為任一用戶節(jié)點(diǎn),身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明包括:身份證明發(fā)布節(jié)點(diǎn)在區(qū)塊鏈中確認(rèn)第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈。

在第二種實(shí)現(xiàn)方式中,如圖14a所示,圖14a是根據(jù)一實(shí)施例示出的另一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖,在圖14a中,所述至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)至少包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)和該身份證明發(fā)布節(jié)點(diǎn)的上一級(jí)身份證明發(fā)布節(jié)點(diǎn),身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布每個(gè)用戶節(jié)點(diǎn)的身份證明,上一級(jí)身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布身份證明發(fā)布節(jié)點(diǎn)的身份證明;另外,如圖14b所示,圖14b是根據(jù)一實(shí)施例示出的又一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖,在圖14b中,上述的上一級(jí)身份證明發(fā)布節(jié)點(diǎn)也可能存在更上一級(jí)的身份證明發(fā)布節(jié)點(diǎn),這里稱(chēng)為上上一級(jí)身份證明發(fā)布節(jié)點(diǎn),上一級(jí)身份證明發(fā)布節(jié)點(diǎn),用于向區(qū)塊鏈發(fā)布上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的身份證明,并且,身份證明發(fā)布節(jié)點(diǎn)可以不用發(fā)布每個(gè)用戶節(jié)點(diǎn)的身份證明,而是由身份證明發(fā)布節(jié)點(diǎn)、上一級(jí)身份證明發(fā)布節(jié)點(diǎn)以及上一級(jí)身份證明發(fā)布節(jié)點(diǎn)各自負(fù)責(zé)一部分用戶節(jié)點(diǎn)的身份證明的發(fā)布。并且,上上一級(jí)身份證明發(fā)布節(jié)點(diǎn)可以作為另一部分用戶節(jié)點(diǎn)的身份證明發(fā)布節(jié)點(diǎn),當(dāng)然,還可能存在更高一級(jí)的身份證明發(fā)布節(jié)點(diǎn),以此類(lèi)推,不再一一列舉。

其中,以第一用戶節(jié)點(diǎn)為例,該第一用戶節(jié)點(diǎn)為任一用戶節(jié)點(diǎn),身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明包括:身份證明發(fā)布節(jié)點(diǎn)在區(qū)塊鏈中確認(rèn)第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈;上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布身份證明發(fā)布節(jié)點(diǎn)的身份證明包括:上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。上上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的身份證明包括:上上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)上一級(jí)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入所述區(qū)塊鏈。

另外,上上一級(jí)身份證明節(jié)點(diǎn)和上上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布用戶節(jié)點(diǎn)的身份證明的方法與上述的身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布第一用戶節(jié)點(diǎn)的身份證明的方法相同,不在贅述。

在第三種實(shí)現(xiàn)方式中,如圖15所示,圖15是根據(jù)一實(shí)施例示出的又一種身份認(rèn)證系統(tǒng)結(jié)構(gòu)框圖,該身份認(rèn)證系統(tǒng)可以包括多個(gè)身份證明發(fā)布子系統(tǒng),每個(gè)身份證明發(fā)布子系統(tǒng)中可以包括至少一個(gè)身份證明發(fā)布節(jié)點(diǎn)和至少一個(gè)用戶節(jié)點(diǎn);

其中,當(dāng)?shù)谝簧矸葑C明發(fā)布子系統(tǒng)中包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)時(shí),該身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布第一身份證明發(fā)布子系統(tǒng)的第一用戶節(jié)點(diǎn)的身份證明,該第一用戶節(jié)點(diǎn)為第一身份證明發(fā)布子系統(tǒng)中的任一用戶節(jié)點(diǎn);第一身份證明發(fā)布子系統(tǒng)為該多個(gè)身份證明發(fā)布子系統(tǒng)中的任一身份證明發(fā)布子系統(tǒng);

當(dāng)?shù)谝簧矸葑C明發(fā)布子系統(tǒng)中至少包括一個(gè)身份證明發(fā)布節(jié)點(diǎn)和身份證明發(fā)布節(jié)點(diǎn)的上一級(jí)身份證明發(fā)布節(jié)點(diǎn),身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布第一身份證明發(fā)布子系統(tǒng)的第一用戶節(jié)點(diǎn)的身份證明,上一級(jí)身份證明發(fā)布節(jié)點(diǎn)用于向區(qū)塊鏈發(fā)布身份證明發(fā)布節(jié)點(diǎn)的身份證明;

其中,身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布第一身份證明發(fā)布子系統(tǒng)的第一用戶節(jié)點(diǎn)的身份證明包括:身份證明發(fā)布節(jié)點(diǎn)在區(qū)塊鏈中確認(rèn)第一用戶節(jié)點(diǎn)的身份信息,并根據(jù)身份證明發(fā)布節(jié)點(diǎn)的私鑰對(duì)第一用戶節(jié)點(diǎn)的身份信息進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈;

上一級(jí)身份證明發(fā)布節(jié)點(diǎn)向區(qū)塊鏈發(fā)布身份證明發(fā)布節(jié)點(diǎn)的身份證明包括:上一級(jí)身份證明節(jié)點(diǎn)根據(jù)上一級(jí)身份證明節(jié)點(diǎn)的私鑰對(duì)身份證明發(fā)布節(jié)點(diǎn)的公鑰進(jìn)行數(shù)字簽名,并將得到的數(shù)字簽名寫(xiě)入?yún)^(qū)塊鏈。即可以理解為每個(gè)身份證明發(fā)布子系統(tǒng)可以包括如圖13、或圖14a或圖14b所示的結(jié)構(gòu)。

以上結(jié)合附圖詳細(xì)描述了本公開(kāi)的優(yōu)選實(shí)施方式,但是,本公開(kāi)并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本公開(kāi)的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本公開(kāi)的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本公開(kāi)的保護(hù)范圍。

另外需要說(shuō)明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過(guò)任何合適的方式進(jìn)行組合,為了避免不必要的重復(fù),本公開(kāi)對(duì)各種可能的組合方式不再另行說(shuō)明。

此外,本公開(kāi)的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本公開(kāi)的思想,其同樣應(yīng)當(dāng)視為本公開(kāi)所公開(kāi)的內(nèi)容。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
固原市| 保山市| 武陟县| 深水埗区| 静海县| 汽车| 边坝县| 嫩江县| 灵川县| 凌源市| 阿克苏市| 苗栗县| 平陆县| 牡丹江市| 沂南县| 泾川县| 聂荣县| 安岳县| 金阳县| 马山县| 齐齐哈尔市| 蕲春县| 读书| 青神县| 大庆市| 东安县| 江源县| 靖西县| 澜沧| 宁武县| 蓬溪县| 师宗县| 顺平县| 哈尔滨市| 广州市| 信宜市| 思南县| 哈密市| 邢台市| 丹江口市| 河北省|