亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈和多因子結(jié)合的身份認(rèn)證方案

        2022-06-14 09:49:56繆文豪王健翔鄭朝暉
        計(jì)算機(jī)仿真 2022年5期
        關(guān)鍵詞:拜占庭服務(wù)端人臉識別

        繆文豪,王健翔,鄭朝暉

        (蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)

        1 引言

        近年來,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和普遍應(yīng)用,大規(guī)模分布式系統(tǒng)的數(shù)量急劇增長[1],網(wǎng)絡(luò)安全問題也日益受到關(guān)注。認(rèn)證技術(shù)是保障網(wǎng)絡(luò)安全和隱私信息的關(guān)鍵,傳統(tǒng)的認(rèn)證方案都是基于中心化的模式[2],但這種方式也帶來了許多網(wǎng)絡(luò)安全風(fēng)險(xiǎn),比如單點(diǎn)故障、隱私泄露、易受攻擊等[3]。目前的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)大多采用口令認(rèn)證和密鑰體制認(rèn)證的方案。Hwang[4]提出了前向哈希鏈的動態(tài)口令方案,雖無須重新注冊,但不能抵抗重放攻擊方案。王秦[5]提出一種基于公鑰加密的一次性口令 (One-Time Password, OTP) 移動商務(wù)身份認(rèn)證方案, 引入移動智能終端的唯一標(biāo)識IMEI作為認(rèn)證因素并利用偽隨機(jī)數(shù)實(shí)現(xiàn)雙向身份認(rèn)證。該方案雖然安全性較高但對于密鑰安全太過依賴, 且非對稱密鑰的計(jì)算量較大。文獻(xiàn)[6]基于單鑰體制使用質(zhì)詢設(shè)計(jì)了一個有效的適用于網(wǎng)絡(luò)通信系統(tǒng)的身份認(rèn)證方案, 克服了通常的質(zhì)詢響應(yīng)認(rèn)證方案的弱點(diǎn), 能夠防止重放攻擊和冒充攻擊。

        2008年中本聰就提出了區(qū)塊鏈的概念,但是直到2014年初,區(qū)塊鏈技術(shù)才開始出現(xiàn)在人們的視野中,其被廣泛應(yīng)用于金融、物聯(lián)網(wǎng)、公共服務(wù)、數(shù)字版權(quán)等領(lǐng)域[7]。區(qū)塊鏈技術(shù)利用加密的塊鏈?zhǔn)浇Y(jié)構(gòu)來存儲數(shù)據(jù),利用共識算法來生成和更新數(shù)據(jù),具有去中心化、數(shù)據(jù)防篡改、可追溯等特性。盡管區(qū)塊鏈技術(shù)最初主要應(yīng)用在金融服務(wù)領(lǐng)域,但是近幾年來,已有很多科研人員將區(qū)塊鏈技術(shù)引入到身份認(rèn)證領(lǐng)域中以解決面臨的安全問題[8]。HAMMUDOGLU J S等人將區(qū)塊鏈技術(shù)應(yīng)用于基于生物特征的身份認(rèn)證問題, 使用區(qū)塊鏈技術(shù)存儲指紋形成一個基于區(qū)塊鏈的身份認(rèn)證系統(tǒng), 但是該方案直接將未加密的指紋存儲在區(qū)塊鏈上, 存在安全性與隱私性威脅。FROMKNECHT C等人將區(qū)塊鏈技術(shù)應(yīng)用于傳統(tǒng)PKI身份認(rèn)證領(lǐng)域, 解決了傳統(tǒng)PKI領(lǐng)域存在單一CA (Certifacate Authority)節(jié)點(diǎn)故障和使用CRL (Certificate Revocation List) 造成通信量過大的問題, 但未提及跨PKI信任域的身份認(rèn)證問題的解決方案。

        基于上述研究,本文提出了一種基于區(qū)塊鏈和多因子結(jié)合的身份認(rèn)證方案。一方面,引入?yún)^(qū)塊鏈技術(shù),解決中心化面臨的風(fēng)險(xiǎn);另一方面,引入了人臉識別技術(shù),將口令認(rèn)證,密鑰認(rèn)證和生物特征認(rèn)證三者結(jié)合,大大提高身份認(rèn)證的安全性。同時就目前聯(lián)盟鏈主流的實(shí)用拜占庭容錯機(jī)制網(wǎng)絡(luò)開銷大、不具備擴(kuò)展性的缺點(diǎn),提出了一種分層可擴(kuò)展的實(shí)用拜占庭容錯機(jī)制(Layered and Scalable Practical Byzantine Fault Tolerance Mechanism,LSPBFT)。

        2 技術(shù)概述

        2.1 區(qū)塊鏈

        區(qū)塊鏈?zhǔn)钱?dāng)今互聯(lián)網(wǎng)時代的一種新型技術(shù),其結(jié)合了分布式賬本、非對稱加密、共識機(jī)制、智能合約等技術(shù)。在P2P網(wǎng)絡(luò)下,采用公開透明的準(zhǔn)則,構(gòu)建塊鏈?zhǔn)降臄?shù)據(jù)結(jié)構(gòu),具有去中心化、防篡改、可追溯等特點(diǎn),其獨(dú)有的技術(shù)特征能夠解決身份認(rèn)證中面臨的諸多安全和隱私方面的問題[9]。

        2.2 身份標(biāo)識密碼技術(shù)

        為了降低公鑰系統(tǒng)密鑰和證書管理的復(fù)雜性,以色列密碼學(xué)家Shamir在1984年引入了IBC (Identity-Based Cryptography) 的概念。其設(shè)計(jì)的思想是取代公鑰密碼系統(tǒng)中的數(shù)字證書,將用戶在標(biāo)識密碼系統(tǒng)中的唯一身份標(biāo)識作為用戶的公鑰,用戶的私鑰則由密鑰生成中心通過某種私鑰生成算法計(jì)算產(chǎn)生,這種系統(tǒng)模式本身就具備了密鑰托管的功能。在IBC體系中,用戶的公鑰是代表其在系統(tǒng)中身份的一組字符串,可以是姓名、郵箱、手機(jī)號碼、IP 地址等,這樣極大的減輕了公私鑰的管理[10,11,12]。

        2.2.1 SM9密鑰生成算法

        1)系統(tǒng)主密鑰生成

        KGC產(chǎn)生隨機(jī)數(shù)s∈[1,N-1]作為主私鑰,計(jì)算G2中的元素Ppub=[s]P2作為主公鑰。系統(tǒng)的主密鑰對為(s,Ppub),KGC對外公開Ppub,私自保存s。

        2)用戶密鑰對生成

        KGC選擇一個私鑰生成函數(shù)標(biāo)識符hid,用戶U的標(biāo)識為IDU,KGC首先在有限域FN上計(jì)算t1=H1(IDU‖hid,N)+s,如果計(jì)算出的t1為0,則重新生成主私鑰,并計(jì)算和公開主公鑰,同時更新已有用戶的私鑰。若t1不為0,則計(jì)算t2=s/t1,然后計(jì)算dU=[t2]P1,即dU=[s/(H1(IDU‖hid)+s)]P1,計(jì)算出的dU就是用戶的私鑰,而用戶的公鑰QU=[H1(IDU‖hid)]P+Ppub。

        2.3 人臉識別技術(shù)

        人臉識別是一種依據(jù)人臉特征信息進(jìn)行分析從而得出結(jié)論的生物特征識別技術(shù)[13],其主要基于人的臉部特征,通過檢測圖像中是否存在人臉,進(jìn)一步確定圖像中人臉的大小、位置、角度等信息,并通過對比校驗(yàn)實(shí)現(xiàn)人臉的識別[14]。近年來,基于深度學(xué)習(xí)的人臉識別算法正在迅速發(fā)展,目前處于人臉識別領(lǐng)域的領(lǐng)先地位。深度學(xué)習(xí)算法的創(chuàng)新之處在于網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)、訓(xùn)練數(shù)據(jù)集等方面,并在這些方面做著不斷的優(yōu)化和改進(jìn),因而人臉識別的準(zhǔn)度和效率不斷提高。在眾多基于深度學(xué)習(xí)的人臉識別算法中,Sphereface 是 Weiyang Liu 等人在 2017 年 CVPR (IEEE國際計(jì)算機(jī)視覺與模式識別會議)上提出的人臉識別新算法,該算法僅用 WebFace 作為訓(xùn)練集就在 LFW 上取得了99.42%的成績。Sphereface模型是對open-set進(jìn)行人臉識別,也就是測試的圖像并沒有在訓(xùn)練集中出現(xiàn)過。不同于其他深度學(xué)習(xí)的算法,Sphereface算法提出了新的損失函數(shù)——A-Softmax Loss(angular softmax loss),該損失函數(shù)是基于角度距離的,因此訓(xùn)練出的特征具有角度可分的特點(diǎn)[15]。

        3 LSPBFT算法介紹

        3.1 PBFT算法分析

        實(shí)用拜占庭容錯機(jī)制,簡稱為PBFT,英文全稱為Practical Byzantine Fault Tolerance,是一種基于狀態(tài)機(jī)復(fù)制的共識機(jī)制。在區(qū)塊鏈系統(tǒng)中, 由于某種原因引起的操作錯誤、網(wǎng)絡(luò)延遲、系統(tǒng)崩潰、惡意攻擊等都會引起系統(tǒng)錯誤, 這樣的錯誤被稱為拜占庭錯誤[16]。PBFT的關(guān)鍵在于解決拜占庭錯誤,主要思想是在去中心化的網(wǎng)絡(luò)中,各個分布式節(jié)點(diǎn)通過點(diǎn)對點(diǎn)的傳輸對傳遞的信息達(dá)成共識,最終生成區(qū)塊。實(shí)用拜占庭容錯機(jī)制的優(yōu)點(diǎn)在于改變了原始拜占庭機(jī)制效率不高的缺陷,將機(jī)制的復(fù)雜度由指數(shù)級降到了多項(xiàng)式級,并使得拜占庭容錯算法可以應(yīng)用于實(shí)際的分布式系統(tǒng)中。盡管PBFT機(jī)制是目前聯(lián)盟鏈常用的共識算法,但是其還是存在著很多不足,隨著區(qū)塊鏈技術(shù)的興起,大規(guī)模區(qū)塊鏈系統(tǒng)也隨之出現(xiàn),研究人員逐漸關(guān)注如何簡化實(shí)用性拜占庭機(jī)制的設(shè)計(jì),提高拜占庭協(xié)議的性能。PBFT算法的缺點(diǎn)如下:①PBFT算法是基于C/S架構(gòu), 整個系統(tǒng)中的節(jié)點(diǎn)數(shù)量是固定, 一旦節(jié)點(diǎn)數(shù)量發(fā)生改變系統(tǒng)無法感知, 不具備擴(kuò)展性。如果某個節(jié)點(diǎn)想要加入該系統(tǒng),則這個系統(tǒng)必須重啟,因此會產(chǎn)生不必要的資源浪費(fèi),影響實(shí)用性和用戶體驗(yàn)。②在視圖切換協(xié)議中,沒有對選舉出的主節(jié)點(diǎn)的真?zhèn)涡赃M(jìn)行驗(yàn)證,因此很有可能把惡意節(jié)點(diǎn)選舉作為主節(jié)點(diǎn),惡意節(jié)點(diǎn)可能會給不同的請求編上相同的序號,或者不去分配序號,或者讓相鄰的序號不連續(xù),這樣會給系統(tǒng)帶來極大的危險(xiǎn)性。同時客戶端重復(fù)請求會導(dǎo)致視圖不停變換,從而影響正常的服務(wù),甚至陷入宕機(jī)。③PBFT算法三階段協(xié)議中點(diǎn)對點(diǎn)的通信將產(chǎn)生大量的網(wǎng)絡(luò)開銷,造成大量網(wǎng)絡(luò)資源的消耗。

        3.2 LSPBFT算法模型

        基于3.1節(jié)PBFT算法存在的問題,本文對其進(jìn)行了改進(jìn),提出了一種分層可擴(kuò)展的實(shí)用拜占庭容錯機(jī)制(Layered and Scalable Practical Byzantine Fault Tolerance Mechanism,LSPBFT)。在LSPBFT算法中,將整個網(wǎng)絡(luò)中的節(jié)點(diǎn)分為三類:服務(wù)端節(jié)點(diǎn)、驗(yàn)證節(jié)點(diǎn)和客戶端節(jié)點(diǎn)。其網(wǎng)絡(luò)模型如圖1所示。

        圖1 LSPBFT算法的模型圖

        這三種節(jié)點(diǎn)的數(shù)目分別表示為Ns,Nv,Nc。認(rèn)定服務(wù)端節(jié)點(diǎn)只有一個,驗(yàn)證節(jié)點(diǎn)的個數(shù)為20個,而客戶端節(jié)點(diǎn)的個數(shù)不收限制。那么,整個網(wǎng)絡(luò)的節(jié)點(diǎn)總數(shù)可以由式(1)表示

        Nall=Ns+Nv+Nc

        (1)

        另外, 從式 (1) 可以看出整個網(wǎng)絡(luò)中只有客戶端節(jié)點(diǎn)的個數(shù)可以改變。經(jīng)過驗(yàn)證的節(jié)點(diǎn)自動成為客戶端節(jié)點(diǎn),客戶端節(jié)點(diǎn)可以自由地進(jìn)入和退出系統(tǒng)。驗(yàn)證節(jié)點(diǎn)從客戶端節(jié)點(diǎn)中選舉出來,個數(shù)是固定的20個,而服務(wù)端節(jié)點(diǎn)從驗(yàn)證節(jié)點(diǎn)中選舉出來,個數(shù)為1個。參與整個共識過程的節(jié)點(diǎn)為服務(wù)端節(jié)點(diǎn)和驗(yàn)證節(jié)點(diǎn),共21個節(jié)點(diǎn)。本模型參考EOS選舉出的超級節(jié)點(diǎn)的個數(shù)[17]。正在進(jìn)行共識過程的驗(yàn)證節(jié)點(diǎn)和服務(wù)端節(jié)點(diǎn)不能隨意退出系統(tǒng),只能等整個共識過程結(jié)束,才能退出系統(tǒng)。

        3.3 LSPBFT算法流程

        本方案采用了分階段的共識算法,當(dāng)網(wǎng)絡(luò)條件優(yōu)越并且選舉出的服務(wù)端節(jié)點(diǎn)和驗(yàn)證節(jié)點(diǎn)不是拜占庭節(jié)點(diǎn)時(也就是誠實(shí)節(jié)點(diǎn)),采用本方案提出的快速共識算法FCA(Fast Consensus Algorithm),實(shí)現(xiàn)了優(yōu)于 BFT 算法的吞吐量和共識效率,并且降低了算法的開銷。在網(wǎng)絡(luò)條件差并且共識過程中出現(xiàn)了拜占庭節(jié)點(diǎn),切換到使用 PBFT算法來保證系統(tǒng)基本的容錯能力和可用性。

        3.3.1 第一階段FCA算法

        第一階段的 FCA 算法使用場景為網(wǎng)絡(luò)健壯性較好,參與共識過程中沒有出現(xiàn)拜占庭節(jié)點(diǎn),滿足上述條件能夠成功快速地達(dá)成共識。當(dāng)共識未達(dá)成時,能夠發(fā)現(xiàn)共識失敗。第一階段的 FCA 共識算法的流程圖如圖2所示。

        圖2 FCA算法流程圖

        1)請求階段:客戶端節(jié)點(diǎn)將驗(yàn)證請求發(fā)送給服務(wù)端節(jié)點(diǎn),服務(wù)端節(jié)點(diǎn)校驗(yàn)該節(jié)點(diǎn)是否已注冊過,如果未注冊則返回“未注冊”的提示信息;否則校驗(yàn)通過后,進(jìn)入下一階段。

        2)驗(yàn)證階段:服務(wù)端節(jié)點(diǎn)給請求加上編號,并將編號之后的請求轉(zhuǎn)發(fā)給所有的驗(yàn)證節(jié)點(diǎn)驗(yàn)證節(jié)點(diǎn)收到請求后,直接對請求進(jìn)行本地的處理并得到驗(yàn)證結(jié)果,然后將結(jié)果簽名之后直接返回給客戶端。進(jìn)入下一階段。

        3)響應(yīng)階段:客戶端獨(dú)立地收到來自所有驗(yàn)證節(jié)點(diǎn)和服務(wù)端節(jié)點(diǎn)的響應(yīng),若所有的響應(yīng)相同,則認(rèn)為共識已經(jīng)達(dá)成。

        4)回復(fù)階段:客戶端節(jié)點(diǎn)將收到的簽名響應(yīng)一起返回給所有驗(yàn)證節(jié)點(diǎn)和服務(wù)端節(jié)點(diǎn),服務(wù)端節(jié)點(diǎn)檢查響應(yīng)相同,則此階段共識成功。

        3.3.2 第二階段PBFT算法

        當(dāng)?shù)谝浑A段使用快速共識算法無法達(dá)成共識時,則判定系統(tǒng)中存在拜占庭節(jié)點(diǎn),故系統(tǒng)切換到第二階段共識過程。第二階段共識過程中使用的是 PBFT 實(shí)用拜占庭容錯算法。第二階段的 PBFT 共識算法的流程圖如圖3所示。

        圖3 PBFT算法流程圖

        1)請求階段:客戶端節(jié)點(diǎn)將驗(yàn)證請求發(fā)送給服務(wù)端節(jié)點(diǎn)。

        2)預(yù)準(zhǔn)備階段:服務(wù)端節(jié)點(diǎn)將請求轉(zhuǎn)發(fā)給所有的驗(yàn)證節(jié)點(diǎn)。此階段中,驗(yàn)證節(jié)點(diǎn)確保服務(wù)端節(jié)點(diǎn)不會發(fā)送兩條具有相同的編號,但是內(nèi)容不同的消息。

        3)準(zhǔn)備階段:若驗(yàn)證節(jié)點(diǎn)收到服務(wù)端節(jié)點(diǎn)的請求后,對該請求進(jìn)行簽名并向其它節(jié)點(diǎn)廣播準(zhǔn)備消息,并從其他參與共識的節(jié)點(diǎn)接收準(zhǔn)備消息。若收到至少2 f+1 條來自不同節(jié)點(diǎn)的消息,則進(jìn)入提交階段。如果驗(yàn)證節(jié)點(diǎn)為拜占庭節(jié)點(diǎn),則不執(zhí)行該操作。

        4)提交階段:所有參與共識的節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送提交信息,當(dāng)收到包括自己的一共2f+1條提交消息時,可以認(rèn)為大多數(shù)節(jié)點(diǎn)達(dá)成共識,然后執(zhí)行驗(yàn)證請求。

        5)回復(fù)階段:參與共識的節(jié)點(diǎn)將驗(yàn)證請求的結(jié)果返回給客戶端節(jié)點(diǎn),當(dāng)客戶端節(jié)點(diǎn)收到超過 2f+1條不同節(jié)點(diǎn)的響應(yīng)時,共識過程結(jié)束。

        4 節(jié)點(diǎn)選擇算法

        本文通過采用節(jié)點(diǎn)選擇算法,來挑選出合適的驗(yàn)證節(jié)點(diǎn)。為保證驗(yàn)證節(jié)點(diǎn)能夠提供安全高效的認(rèn)證服務(wù),盡可能的在所有可選的驗(yàn)證節(jié)點(diǎn)中選取節(jié)點(diǎn)質(zhì)量指標(biāo)(Node Quality Index,NQI)較優(yōu)的節(jié)點(diǎn)。假設(shè)所有驗(yàn)證節(jié)點(diǎn)的集合記作VC(Validation Node Collection),依據(jù) VC 內(nèi)節(jié)點(diǎn)的 NQI,選取綜合排名前20的節(jié)點(diǎn)。NQI根據(jù)實(shí)際情況來抉擇,比如平均在線時長,網(wǎng)絡(luò)帶寬,延時,參與共識的次數(shù)等條件。

        VC={VC1,VC2,VC3,VC4,……,VCn}為VC內(nèi)節(jié)點(diǎn)的集合。q={q1,q2,q3,……,qm}為NQI的各項(xiàng)指標(biāo)的集合,每個指標(biāo)用qi表示,i∈[1,m]。由于網(wǎng)絡(luò)情況是實(shí)時變動的,調(diào)度節(jié)點(diǎn)應(yīng)采用動態(tài)測量的方法[18],首先獲取當(dāng)前的驗(yàn)證節(jié)點(diǎn)的數(shù)據(jù)指標(biāo),再結(jié)合以往的數(shù)據(jù)指標(biāo),計(jì)算出新的數(shù)據(jù)指標(biāo)矩陣。M為VC內(nèi)節(jié)點(diǎn)對應(yīng)的NQI的數(shù)據(jù)指標(biāo)矩陣,如式(2)、(3)。

        (2)

        (3)

        Mnow為當(dāng)前的數(shù)據(jù)指標(biāo)矩陣,Mpast為以往的數(shù)據(jù)指標(biāo)矩陣。其中,第i行向量[qi1,qi2,……,qim]是VC中第i個節(jié)點(diǎn)VCi的m個NQI值。因此新的數(shù)據(jù)指標(biāo)矩陣由式(4)計(jì)算得出。

        Mnew=αMnow+βMpast

        (4)

        其中,α和β分別為當(dāng)前數(shù)據(jù)指標(biāo)和以往數(shù)據(jù)指標(biāo)的權(quán)重,同時要滿足α+β=1且0 <β<α<1。由于NQI的各項(xiàng)指標(biāo)的單位不同,比如延遲的單位為ms,帶寬的單位為bps等。為了更方便的處理VC內(nèi)節(jié)點(diǎn)的NQI,需要將矩陣M進(jìn)行歸一化運(yùn)算,將M中的每一行向量映射到[0,1]區(qū)間內(nèi)。本文采用線性函數(shù)如式(5)進(jìn)行計(jì)算。

        (5)

        其中,qij是M中第i行、第j列中的值,qmax和qmin分別為第j列[q1j,q2j,…,qnj]T中的最大值和最小值,qij映射到[0,1]區(qū)間里面的值記作q’ij。

        權(quán)重集合w={w1,w2,…,wm},其中wj∈R+,j∈[1,m]且滿足式(6)。權(quán)重集合w中的每一個元素對應(yīng)為集合q中相應(yīng)位置的指標(biāo)的權(quán)重值。

        (6)

        因此每一個驗(yàn)證節(jié)點(diǎn)VCi的NQI可由式(7)計(jì)算得出

        (7)

        根據(jù)式(7)計(jì)算出每個驗(yàn)證節(jié)點(diǎn)的NQI,然后獲得向量NQI={NQI1,NQI2,……,NQIn}。將向量NQI中的值按照從大到小的順序排列,選取其中前20個節(jié)點(diǎn)最為最終的驗(yàn)證節(jié)點(diǎn)。

        5 認(rèn)證方案設(shè)計(jì)

        用戶個人信息屬于敏感信息,系統(tǒng)有保護(hù)用戶隱私的責(zé)任,但是同時身份管理也需要加強(qiáng)權(quán)威,因此本文采用的系統(tǒng)架構(gòu)并不是完全去中心化的,但也不是完全中心化的,隸屬于聯(lián)盟鏈的框架。聯(lián)盟鏈?zhǔn)遣糠秩ブ行幕?,由各個組織機(jī)構(gòu)共同管理,用戶需要得到認(rèn)可,才可以加入。本文設(shè)計(jì)的認(rèn)證方案,可以理解為有一個權(quán)威的中心,但是其不是負(fù)責(zé)管理整個系統(tǒng),而是把驗(yàn)證的職責(zé)分離出來,交給驗(yàn)證節(jié)點(diǎn)來執(zhí)行。本文設(shè)計(jì)方案里面的角色包括客戶端節(jié)點(diǎn)、服務(wù)端節(jié)點(diǎn)、驗(yàn)證節(jié)點(diǎn)和區(qū)塊鏈。具體的流程,如圖4、5所示。

        5.1 注冊階段

        步驟 1:客戶端用戶向服務(wù)端發(fā)送注冊請求;

        步驟 2:服務(wù)端向客戶端用戶發(fā)送相應(yīng)的注冊要求;

        步驟 3:客戶端用戶向服務(wù)端上傳自己的身份證號和人臉照片;

        步驟 4:服務(wù)端依據(jù)客戶端用戶的身份證號在本地?cái)?shù)據(jù)庫檢索是否已存在,若存在則說明已注冊過,返回給用戶“已注冊過,不可重復(fù)注冊”的提示信息;否則采用SM9密鑰生成算法,依據(jù)用戶的身份證號生成用戶的密鑰對,同時使用人臉識別模型訓(xùn)練出用戶的人臉特征值ID;

        步驟5:服務(wù)端將用戶的密鑰對發(fā)送給客戶端,同時將簽名后的用戶信息UserInfo存入?yún)^(qū)塊鏈中。用戶信息包含用戶的身份證號和ID,UserInfo=s(Hash(HashInfo1-2))。其中s為系統(tǒng)的主私鑰,HashInfo1-2為身份證號和ID的哈希值。

        圖4 注冊流程圖

        5.2 驗(yàn)證階段

        步驟 1:客戶端用戶向服務(wù)端發(fā)送認(rèn)證請求;

        步驟 2:服務(wù)端向客戶端發(fā)送相應(yīng)的認(rèn)證要求(包括一個隨機(jī)口令);

        步驟3:客戶端用戶向服務(wù)端發(fā)送自己的身份證號和隨機(jī)口令,同時通過實(shí)時拍攝自己的人臉照片進(jìn)行上傳;

        步驟4:服務(wù)端收到用戶的認(rèn)證信息后,將用戶實(shí)時拍攝的人臉照片輸入到人臉識別模型并訓(xùn)練出用戶的人臉特征值ID’,將認(rèn)證信息(包括身份證號、隨機(jī)口令和ID’)發(fā)送給通過節(jié)點(diǎn)選擇算法選出的驗(yàn)證節(jié)點(diǎn);

        步驟 5:驗(yàn)證節(jié)點(diǎn)和服務(wù)端通過LSPBFT算法對用戶的認(rèn)證請求進(jìn)行驗(yàn)證并達(dá)成共識;

        步驟 6:檢驗(yàn)隨機(jī)口令是否正確以及是否在有效期限內(nèi),如果隨機(jī)口令不正確則驗(yàn)證失敗,如果隨機(jī)口令的時限不在有效期限內(nèi),則提示重新驗(yàn)證;

        步驟 7:使用用戶的公鑰解密認(rèn)證信息,提取出用戶的身份證號和ID’;

        步驟 8:使用用戶的公鑰在區(qū)塊鏈中查找相應(yīng)的UserInfo,利用系統(tǒng)的主公鑰解密UserInfo,提取出用戶的身份證號和ID;

        步驟 9:比對步驟7 和步驟8中的身份證號和人臉特征值是否相等,如果有一項(xiàng)信息不相等則驗(yàn)證失敗,否則驗(yàn)證成功,并將驗(yàn)證結(jié)果返回給客戶端用戶;

        步驟 10:如果用戶收到所有驗(yàn)證節(jié)點(diǎn)相同的驗(yàn)證結(jié)果,則共識過程結(jié)束,用戶身份驗(yàn)證成功;如果用戶收到驗(yàn)證結(jié)果不完全相同或者沒有收到全部驗(yàn)證節(jié)點(diǎn)的驗(yàn)證結(jié)果,則驗(yàn)證失敗,重新返回步驟5,再次進(jìn)行共識過程。

        圖5 驗(yàn)證流程圖

        6 實(shí)驗(yàn)分析

        本實(shí)驗(yàn)的硬件環(huán)境為Intel(R) Core(TM) i5的CPU,8G的內(nèi)存和932G的硬盤,軟件環(huán)境采用VMware Workstation 15 Player的虛擬機(jī)和Ubuntu 16.04的操作系統(tǒng)。本實(shí)驗(yàn)的開發(fā)語言為go語言,開發(fā)工具為LiteIDE,數(shù)據(jù)庫為MySQL。實(shí)驗(yàn)通過MATLAB 2017a對LSPBFT算法和PBFT算法的運(yùn)行結(jié)果進(jìn)行數(shù)學(xué)計(jì)算仿真。

        6.1 安全性分析

        6.1.1 去中心化

        由于本文的方案把服務(wù)端節(jié)點(diǎn)節(jié)點(diǎn)的認(rèn)證業(yè)務(wù)分離,分配給驗(yàn)證節(jié)點(diǎn)來執(zhí)行,因此認(rèn)證時涉及到多個節(jié)點(diǎn),并不像傳統(tǒng)認(rèn)證的單一服務(wù)器,所有業(yè)務(wù)只有中心服務(wù)器來完成。同時驗(yàn)證時并不知道哪些節(jié)點(diǎn)會成為驗(yàn)證節(jié)點(diǎn),這也提高了攻擊的難度,大大提高了系統(tǒng)的安全性。

        6.1.2 防篡改

        傳統(tǒng)認(rèn)證方式是把用戶的信息存儲在數(shù)據(jù)庫中,而這會遭受黑客的大量攻擊,如果數(shù)據(jù)庫被攻破,那么用戶的隱私也會受到威脅。而本文的方案是將節(jié)點(diǎn)的信息存入?yún)^(qū)塊鏈中,當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)越多,存儲數(shù)據(jù)的副本就越多。因此,一旦數(shù)據(jù)存入?yún)^(qū)塊鏈就很難被篡改,如果想要修改數(shù)據(jù),就需要攻擊全網(wǎng)所有的節(jié)點(diǎn)并更改數(shù)據(jù)。

        6.1.3 抗重放攻擊

        隨機(jī)口令在認(rèn)證時只使用一次, 攻擊者即使截取了消息也無法進(jìn)行重放攻擊。并且隨機(jī)口令附加上時間戳,由于時間戳無法篡改, 若攻擊者重用截獲消息, 因時間戳失效而驗(yàn)證失敗, 因而有效防止重放攻擊。

        6.1.4 防泄漏

        單因子認(rèn)證最大的弊端就是隱私泄露,就比如用戶的公私鑰,隨機(jī)口令或者人臉照片。而本方案將密鑰認(rèn)證,口令認(rèn)證與人臉識別認(rèn)證相結(jié)合,即使數(shù)據(jù)丟失或者被竊取,也不會造成任何影響。本方案認(rèn)證時人臉識別認(rèn)證是通過實(shí)時拍攝人臉照片上傳,而不能通過選擇圖片上傳,就算個人信息泄露,竊取者也無法認(rèn)證成功,這大大提高了認(rèn)證的安全性。

        6.1.5 防暴力破解

        若攻擊者獲取到存儲在區(qū)塊鏈中的用戶信息UserInfo,并通過暴力破解的方式得到用戶的身份證號和人臉特征值。 首先要嘗試找到正確的公鑰將UserInfo解密為HashInfo1-2 (假設(shè)公鑰有m項(xiàng)選擇需要遍歷) ;接著嘗試將HashInfo1-2拆解為HashInfo1和HashInfo2;最后, 暴力破解2個單項(xiàng)哈希加密的信息。但由于哈希加密算法不可逆的特點(diǎn), 攻擊者只能通過暴力破解等遍歷的手段嘗試找到2個單項(xiàng)HashInfo。因此, 其破解難度為n×n=n2(假設(shè)2個單項(xiàng)信息各有n項(xiàng)選擇), 除此之外還要遍歷m個公鑰嘗試解密。單因子認(rèn)證暴力破解單項(xiàng)HashInfo和本方案破解UserInfo的難度對比見表1。

        表1 單因子與多因子認(rèn)證破解難度對比表

        6.2 可擴(kuò)展性分析

        PBFT算法是基于狀態(tài)機(jī)復(fù)制原理的, 采用C/S的請求響應(yīng)模式, 無法動態(tài)地感知節(jié)點(diǎn)加入或離開網(wǎng)絡(luò), 當(dāng)節(jié)點(diǎn)數(shù)目増加時需要重新啟動系統(tǒng), 重新開始計(jì)算、傳輸信息數(shù)據(jù)。一旦節(jié)點(diǎn)數(shù)目發(fā)生變化, 且未重新啟動系統(tǒng), 仍按照之前的節(jié)點(diǎn)數(shù)目進(jìn)行運(yùn)算, 將使得新加入的節(jié)點(diǎn)資源的浪費(fèi)或?yàn)椴淮嬖诠?jié)點(diǎn)占用一定的系統(tǒng)資源。LSPBFT算法在一定程度上解決了動態(tài)性的問題,LSPBFT算法將整個網(wǎng)絡(luò)系統(tǒng)中的節(jié)點(diǎn)劃分為三類,參與共識的節(jié)點(diǎn)只有驗(yàn)證節(jié)點(diǎn)和服務(wù)端節(jié)點(diǎn),而PBFT算法全網(wǎng)所有節(jié)點(diǎn)都需要參與共識。客戶端節(jié)點(diǎn)可以自由地進(jìn)入或者退出系統(tǒng),并不需要其他節(jié)點(diǎn)知道,并且不會影響整個系統(tǒng)的運(yùn)行,但是正在參與共識的節(jié)點(diǎn)不可隨意退出系統(tǒng),若驗(yàn)證節(jié)點(diǎn)或者服務(wù)端節(jié)點(diǎn)要退出系統(tǒng),系統(tǒng)會重新選出相應(yīng)的節(jié)點(diǎn)代替。由此可見, 相對于PBFT算法, LSPBFT算法能夠動態(tài)地感知節(jié)點(diǎn)加入或離開網(wǎng)絡(luò), 當(dāng)節(jié)點(diǎn)數(shù)目増加時, 不需要重新啟動系統(tǒng), 不會出現(xiàn)新加入的節(jié)點(diǎn)資源的浪費(fèi)或?yàn)椴淮嬖诠?jié)點(diǎn)占用一定的系統(tǒng)資源的情況。

        6.3 性能分析

        當(dāng)共識過程不存在拜占庭節(jié)點(diǎn)的情況下,LSPBFT 算法與PBFT 算法的共識時間對比如圖6所示。從圖中可以看出,兩種算法的共識時間都會隨著節(jié)點(diǎn)數(shù)量的增加而增加,且增加速度也越來越快。這是因?yàn)楣?jié)點(diǎn)數(shù)量越多,則確認(rèn)一筆請求所需發(fā)送的消息數(shù)量就越多,自然更耗時間。在節(jié)點(diǎn)數(shù)量較少的情況下,兩種算法的共識完成時間相差不大,但當(dāng)節(jié)點(diǎn)的數(shù)量逐漸增加,尤其是超過50 個節(jié)點(diǎn)以后,LSPBFT算法的共識時間相較 PBFT 算法顯著減少。

        圖6 LSPBFT算法與PBFT算法共識時間對比(無拜占庭節(jié)點(diǎn))

        當(dāng)共識過程存在拜占庭節(jié)點(diǎn)的情況下,LSPBFT 算法與PBFT 算法的共識時間對比如圖7所示。盡管LSPBFT算法在共識過程存在拜占庭節(jié)點(diǎn)的情況下,先執(zhí)行了第一階段FCA算法,但是會迅速切換到第二階段PBFT算法,并且參與共識的節(jié)點(diǎn)個數(shù)只有21個,并不想傳統(tǒng)的PBFT算法需要全網(wǎng)所有節(jié)點(diǎn)參與,這也縮短了節(jié)點(diǎn)之間通信的時間,因此共識時間也會更快。

        圖7 LSPBFT算法與PBFT算法共識時間對比(有拜占庭節(jié)點(diǎn))

        相比于傳統(tǒng)中心化的認(rèn)證方案,只依靠中心服務(wù)器來驗(yàn)證用戶的請求。圖8為本方案與基于靜態(tài)口令和基于PKI機(jī)制的認(rèn)證在響應(yīng)時間上的對比圖??诹钫J(rèn)證較為簡單,常以“賬號+密碼”的形式認(rèn)賬,而PKI機(jī)制較為復(fù)雜,首先要獲取CA證書,并且證書的發(fā)放與校驗(yàn)需要花費(fèi)一定的時間。而本方案通過節(jié)點(diǎn)選擇算法,將選出的認(rèn)證節(jié)點(diǎn)來代替單一中心,并且選出的節(jié)點(diǎn)只會認(rèn)證一個待驗(yàn)證的節(jié)點(diǎn),這樣大大減輕了中心服務(wù)器的認(rèn)證負(fù)擔(dān),提高了認(rèn)證的效率。

        圖8 平均響應(yīng)時間對比

        7 結(jié)語

        隨著分布式系統(tǒng)的不斷增長,系統(tǒng)的安全性尤為重要。但僅僅依賴單一的集權(quán)中心來維護(hù)整個系統(tǒng)的運(yùn)營和安全,這無疑會對其造成巨大的挑戰(zhàn),同時各種各樣的問題也暴露出單一中心的缺陷和弊端。針對傳統(tǒng)身份認(rèn)證方式的不足,本文將區(qū)塊鏈技術(shù)與密鑰機(jī)制、口令認(rèn)證和人臉識別技術(shù)相結(jié)合,提出了多因子結(jié)合的認(rèn)證方案。既保留了集權(quán)中心的權(quán)威,同時通過節(jié)點(diǎn)選擇算法減輕了集權(quán)中心的負(fù)擔(dān)。在提高認(rèn)證安全性的同時,本文提出的方法在龐大的分布式系統(tǒng)中也能提高認(rèn)證的效率。

        猜你喜歡
        拜占庭服務(wù)端人臉識別
        人臉識別 等
        拜占庭帝國的繪畫藝術(shù)及其多樣性特征初探
        揭開人臉識別的神秘面紗
        云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
        新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
        淺談初中歷史教學(xué)中的邏輯補(bǔ)充——從拜占庭帝國滅亡原因談起
        在Windows Server 2008上創(chuàng)建應(yīng)用
        《西方史學(xué)通史》第三卷“拜占庭史學(xué)”部分糾繆
        古代文明(2016年1期)2016-10-21 19:35:20
        拜占庭之光
        鳳凰生活(2016年2期)2016-02-01 12:41:05
        基于類獨(dú)立核稀疏表示的魯棒人臉識別
        色翁荡息又大又硬又粗视频| 无遮挡粉嫩小泬| 蜜桃视频一区二区三区| 亚洲精品在线国产精品| 国产一级黄色录像大片| 亚洲人成电影网站色| 国产无遮挡又黄又爽又色| 99re6久精品国产首页| 亚洲第一大av在线综合| 中国人在线观看免费的视频播放| 亚洲日韩精品无码专区网址| 亚洲av无码专区在线电影| 国产精品av在线一区二区三区| 国产91久久精品成人看网站| 日韩精品人妻中文字幕有码| 久久久精品欧美一区二区免费| 九九99久久精品午夜剧场免费| 亚洲av综合日韩精品久久| 国产精品99精品久久免费| 永久免费不卡在线观看黄网站| 国内精品91久久久久| 亚洲丰满熟女一区二亚洲亚洲| 特黄做受又粗又长又大又硬| 国产精品99久久精品爆乳| 国产偷闻隔壁人妻内裤av| 国产日韩精品中文字幕| 日韩av无码中文无码电影| 麻豆国产人妻欲求不满| 一二三四中文字幕日韩乱码| 亚洲国产av一区二区三区精品| 色妞ww精品视频7777| 日韩AV不卡一区二区三区无码 | 91青青草免费在线视频| 少妇又紧又爽丰满在线视频| 亚洲av成人精品日韩在线播放| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 亚洲人成精品久久久久| 亚洲av大片在线免费观看| 亚洲欧美v国产一区二区| 香蕉人妻av久久久久天天| 国产精品专区一区二区av免费看|