999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區(qū)塊鏈的智能門禁可信監(jiān)控系統(tǒng)

2022-05-23 04:03:24胡志鋼田翠華張一平高靜敏洪定旋
關(guān)鍵詞:用戶信息

胡志鋼,田翠華,張一平,高靜敏,洪定旋

(廈門理工學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,福建 廈門 361024)

0 引 言

家居安防系統(tǒng)作為一種通過(guò)營(yíng)造安全環(huán)境來(lái)提升居民生活質(zhì)量的重要手段,越來(lái)越受到大家的重視。其中智能門禁的生物識(shí)別技術(shù)與遠(yuǎn)程控制技術(shù)極大方便了人們的出行與管理,但暴力破壞、惡意篡改以及單點(diǎn)故障造成的數(shù)據(jù)丟失等問(wèn)題,給用戶對(duì)家居安全的監(jiān)控帶來(lái)極大的不便。

區(qū)塊鏈技術(shù)[1]的崛起,為解決智能家居數(shù)據(jù)隱私、安全和完整性等問(wèn)題鋪平了道路。史錦山等[2]通過(guò)智能合約[3]將訪問(wèn)控制策略存儲(chǔ)到區(qū)塊鏈上,以實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)設(shè)備的安全訪問(wèn)。但無(wú)法避免通過(guò)暴力獲取用戶鏈下生物特征以及試圖繞過(guò)門禁入侵室內(nèi)等問(wèn)題的發(fā)生。同時(shí),研究人員提出多種通過(guò)區(qū)塊鏈實(shí)現(xiàn)對(duì)物聯(lián)網(wǎng)異構(gòu)數(shù)據(jù)的安全共享方案。葛琳等[4]通過(guò)數(shù)據(jù)區(qū)塊鏈和交易區(qū)塊鏈的雙鏈模式,滿足數(shù)據(jù)采集與數(shù)據(jù)共享不同時(shí)效與安全需求。Nasonov等[5]提出了一種基于區(qū)塊鏈的智能家居數(shù)據(jù)市場(chǎng)的框架,保證了獲取數(shù)據(jù)的可靠性以及交易效率。此外研究人員通過(guò)將數(shù)據(jù)摘要寫入?yún)^(qū)塊鏈,利用智能合約實(shí)現(xiàn)對(duì)數(shù)據(jù)完整性的自動(dòng)校驗(yàn)[6,7]。通過(guò)與區(qū)塊鏈的結(jié)合能夠有效確保數(shù)據(jù)共享以及交易過(guò)程中用戶隱私的安全性和數(shù)據(jù)的完整性,但是對(duì)于通過(guò)鏈下實(shí)施的非法行為很難做出有效防范,同時(shí)智能合約一旦部署就不可修改的缺陷導(dǎo)致了應(yīng)用出現(xiàn)漏洞將很難彌補(bǔ)。

針對(duì)上述問(wèn)題,本文構(gòu)建了一種基于以太坊區(qū)塊鏈的門禁監(jiān)控系統(tǒng),主要工作是利用以太坊平臺(tái)構(gòu)建圖靈完備的智能合約,實(shí)現(xiàn)數(shù)據(jù)的上鏈、用戶的訪問(wèn)以及指令的下達(dá),并且通過(guò)代理合約實(shí)現(xiàn)合約的升級(jí),提升了系統(tǒng)的擴(kuò)展性。而且,通過(guò)鏈下存儲(chǔ)和鏈上備份,以及鏈下鏈上的多身份識(shí)別方式,確保了門禁身份識(shí)別的效率以及安全性。同時(shí),入侵檢測(cè)模塊的設(shè)計(jì),有效預(yù)防鏈下暴力獲取用戶身份特征的事件發(fā)生。

1 相關(guān)工作

區(qū)塊鏈其本質(zhì)是一種去中心化的數(shù)據(jù)結(jié)構(gòu),每個(gè)數(shù)據(jù)塊使用SHA-256(哈希算法)加密方法與前一個(gè)區(qū)塊相關(guān)聯(lián),并且利用共識(shí)算法與P2P網(wǎng)絡(luò)極大地保證了信息的有效性、完整性和不可篡改的特性。因此,區(qū)塊鏈通過(guò)數(shù)據(jù)一致性分發(fā)和冗余存儲(chǔ),極大保證了各節(jié)點(diǎn)數(shù)據(jù)的對(duì)稱性,并讓互不信任環(huán)境下的各節(jié)點(diǎn)在此基礎(chǔ)上通過(guò)智能合約實(shí)現(xiàn)自主性,有效保障數(shù)據(jù)的完整和不可篡改。

區(qū)塊鏈的強(qiáng)大優(yōu)勢(shì)使得區(qū)塊鏈解決方案在不同類型的家居應(yīng)用中取得了卓越的表現(xiàn)[5]。根據(jù)對(duì)現(xiàn)有的多篇關(guān)于區(qū)塊鏈在智能家居中應(yīng)用的總結(jié),見(jiàn)表1。由表可知,現(xiàn)階段區(qū)塊鏈技術(shù)在智能家居中應(yīng)用的側(cè)重點(diǎn),主要包括共識(shí)算法、第三方訪問(wèn)、家庭護(hù)理、自動(dòng)化支付、共享經(jīng)濟(jì)、數(shù)據(jù)市場(chǎng)等服務(wù)及應(yīng)用,而將區(qū)塊鏈應(yīng)用于家居安防的國(guó)內(nèi)外研究才剛剛起步。因此本文主要針對(duì)家居安防中的智能門禁展開(kāi)研究。

表1 現(xiàn)有的基于區(qū)塊鏈的智能家居應(yīng)用綜述比較總結(jié)[12]

2 門禁監(jiān)控系統(tǒng)整體設(shè)計(jì)

2.1 門禁系統(tǒng)硬件設(shè)計(jì)

隨著當(dāng)前先進(jìn)的硬件支持,物聯(lián)網(wǎng)設(shè)備已強(qiáng)大到足以支持相對(duì)復(fù)雜的智能系統(tǒng)。本文提出的門禁設(shè)備主要包含身份識(shí)別單元(IVU)、入侵檢測(cè)單元(IDU)、區(qū)塊鏈網(wǎng)關(guān)單元(BGU)。

IVU:身份識(shí)別單元主要由控制芯片、指紋識(shí)別、密碼按鍵、電機(jī)驅(qū)動(dòng)、聲音提示、OLED顯示器和無(wú)線通信模塊組成。使用Atmega2560(8位AVR微控制器)的Arduino作為門禁的中央控制器,并通過(guò)串口通信連接WIFI模塊ESP-01,采用TCP/IP協(xié)議與BGU實(shí)現(xiàn)通信。而且采用的光學(xué)指紋模塊可以完成鏈下指紋存儲(chǔ)和識(shí)別,配合區(qū)塊鏈實(shí)現(xiàn)鏈上備份,很好地兼具了識(shí)別度高、速度快、安全性好的特點(diǎn)。同時(shí)密碼識(shí)別模塊作為備用開(kāi)鎖,利用虛偽密碼(按照預(yù)設(shè)的密碼長(zhǎng)度,在正確密碼前后輸入任意數(shù))和鏈上存儲(chǔ)極大增加了非法獲取密碼的難度。然后配合聲音與顯示模塊的互動(dòng),控制電機(jī)開(kāi)啟門禁。

IDU:該單元在身份識(shí)別單元的基礎(chǔ)上增加了人體紅外感應(yīng)模塊、超聲波測(cè)距模塊、運(yùn)動(dòng)感知模塊,主要用于對(duì)門外及室內(nèi)的環(huán)境感知。其中人體紅外感應(yīng)和超聲波測(cè)距用于檢測(cè)門禁外入侵,預(yù)防從門禁外入侵或破壞門禁以獲取指紋的發(fā)生,而運(yùn)動(dòng)感知模塊用于檢測(cè)試圖繞過(guò)門禁入侵室內(nèi)的非法者。

BGU:本文采用Raspberry Pi作為BGU,可以視為區(qū)塊鏈與傳感器之間的中間組件,主要用于實(shí)現(xiàn)傳感器等底層設(shè)備與以太坊區(qū)塊鏈之間的交互。在本文的系統(tǒng)中,BGU擁有獨(dú)立的以太坊賬戶,并且設(shè)備中嵌入了智能合約。具體地說(shuō),BGU是任何智能門禁系統(tǒng)的重要組成部分,主要負(fù)責(zé)鏈上鏈下身份數(shù)據(jù)的同步、訪問(wèn)記錄的上鏈等任務(wù),以及區(qū)塊鏈網(wǎng)絡(luò)各節(jié)點(diǎn)與傳感器之間的數(shù)據(jù)收發(fā)器,同時(shí)也為每個(gè)數(shù)據(jù)源(傳感器)之間提供相對(duì)穩(wěn)定的網(wǎng)絡(luò)連接。

門禁設(shè)備使用控制芯片為Atmega2560的單片機(jī),用于通過(guò)程序控制門禁設(shè)備各模塊的工作。通過(guò)通信端口,接收身份識(shí)別單元發(fā)送的身份信息,處理器根據(jù)實(shí)際情況進(jìn)行鏈下處理或通過(guò)BGU進(jìn)行鏈上識(shí)別判斷身份是否認(rèn)證,并且通過(guò)聲音與顯示器的提示信息進(jìn)行交互,然后電機(jī)根據(jù)相應(yīng)的控制信號(hào)做出反應(yīng)。同時(shí),用戶通過(guò)客戶端在區(qū)塊鏈中存儲(chǔ)的管理員密碼,利用密碼按鍵管理用戶的指紋注冊(cè)或注銷。并且,BGU將接收到的入侵檢測(cè)信息與訪問(wèn)信息進(jìn)行廣播上鏈。

2.2 系統(tǒng)體系框架

區(qū)塊鏈技術(shù)因其具有與智能家居設(shè)備易于集成的靈活性和適應(yīng)性,正在迅速塑造著智能家居信息生態(tài)系統(tǒng)。圖1展示了基于區(qū)塊鏈的智能門禁生態(tài)系統(tǒng),它是一個(gè)由感知層、服務(wù)與支撐層、應(yīng)用層組成的框架。

圖1 系統(tǒng)架構(gòu)及實(shí)現(xiàn)

感知層:通過(guò)物聯(lián)網(wǎng)實(shí)體(例如各類傳感器、BGU等硬件設(shè)施)進(jìn)行數(shù)據(jù)采集與上鏈。其中門禁系統(tǒng)主動(dòng)從指紋模塊、密碼模塊、運(yùn)動(dòng)感知模塊等外設(shè)采集信息,例如指紋、密碼的輸入信息、門禁周邊環(huán)境信息等。此外,部分實(shí)時(shí)采集的數(shù)據(jù)初步分析是在門禁控制器中進(jìn)行的。而作為整個(gè)設(shè)計(jì)好的區(qū)塊鏈系統(tǒng)的一部分,BGU作為可信節(jié)點(diǎn)硬件級(jí)別的共識(shí)算法支持者,起著重要作用。同時(shí),與各實(shí)體在去中心化的模式下相互協(xié)作,并將從門禁接收到的報(bào)警信息等進(jìn)行上鏈存儲(chǔ),全程可追溯,實(shí)現(xiàn)信息不可篡改,通過(guò)點(diǎn)對(duì)點(diǎn)的分布式連接進(jìn)行信息的傳遞。

服務(wù)與支撐層:該層主要包含區(qū)塊鏈服務(wù)以及相關(guān)技術(shù)支撐,其中區(qū)塊鏈服務(wù)包含分布式存儲(chǔ)系統(tǒng)、共識(shí)算法、智能合約。其中分布式存儲(chǔ)系統(tǒng)作為區(qū)塊鏈的核心系統(tǒng),將本文提出的系統(tǒng)內(nèi)所有節(jié)點(diǎn)歸為一個(gè)統(tǒng)一的分布式系統(tǒng)。并且采用基于PoA(proof-of-authority)的共識(shí)算法保證了各節(jié)點(diǎn)的運(yùn)行和同步。同時(shí),智能合約作為運(yùn)行在區(qū)塊鏈上并遵循預(yù)定規(guī)則自動(dòng)執(zhí)行的代碼,方便了去中心化交易的執(zhí)行,避免了在沒(méi)有可信第三方下出現(xiàn)不必要的糾紛。同時(shí),密碼學(xué)、P2P等技術(shù)為區(qū)塊鏈的穩(wěn)定提供了支撐,如SHA-256加密算法保證了包含交易的區(qū)塊通過(guò)散列值連接成鏈不可篡改。

應(yīng)用層:本系統(tǒng)基于Truffle框架,采用HTML、CSS等前端技術(shù),通過(guò)Web3.js與合約進(jìn)行交互,實(shí)現(xiàn)了用戶可以通過(guò)應(yīng)用層提供的服務(wù)與智能家居實(shí)體進(jìn)行通信與協(xié)作,從而實(shí)現(xiàn)信息的進(jìn)一步處理并提供智能化服務(wù)。例如,用戶可以通過(guò)客戶端獲取真實(shí)可信的門禁訪問(wèn)記錄或發(fā)布門禁臨時(shí)密碼等可視化操作。

2.3 系統(tǒng)工作流程

如圖1所示,系統(tǒng)的工作流程為:

(1)用戶注冊(cè)是通過(guò)客戶端調(diào)用合約將身份信息與以太坊賬戶綁定的過(guò)程。用戶利用本地生成的隨機(jī)對(duì)稱密鑰sk_u對(duì)身份證明信息InfoID進(jìn)行加密得到[InfoID]sk_u, 并使用公鑰pk_u加密sk_u得到 [sk_u]pk_u。 同時(shí),合約設(shè)置用戶注冊(cè)狀態(tài)為queue并將審核節(jié)點(diǎn)加入審核名單中,方便審核節(jié)點(diǎn)直接調(diào)用密鑰,其中審核節(jié)點(diǎn)由服務(wù)提供商擔(dān)任。

(2)用戶提交注冊(cè)信息后,合約調(diào)用函數(shù)向?qū)徍斯?jié)點(diǎn)發(fā)出驗(yàn)證請(qǐng)求,并觸發(fā)請(qǐng)求事件(監(jiān)聽(tīng)此事件的審核節(jié)點(diǎn)可以及時(shí)做出響應(yīng))。審核節(jié)點(diǎn)驗(yàn)證用戶身份并調(diào)用合約將用戶狀態(tài)修改為pass。

(3)完成驗(yàn)證的用戶,可以調(diào)用合約對(duì)房屋進(jìn)行登記,將必要的信息上鏈存儲(chǔ)。同時(shí),合約為該房屋初始化一個(gè)成員名單,然后將登記者變?yōu)閼糁鹘巧⒓尤肫渲小4藭r(shí)戶主可以調(diào)用合約添加成員信息,并設(shè)置系統(tǒng)的訪問(wèn)控制策略,詳見(jiàn)3.2.1節(jié)。

(4)門禁身份的錄入:戶主通過(guò)客戶端設(shè)置開(kāi)鎖密碼和管理員密碼,合約將密碼的hash值pwd_hash以及admin_hash進(jìn)行上鏈。同時(shí),通過(guò)門禁的密碼按鍵輸入管理員密碼,錄入指紋進(jìn)行鏈下存儲(chǔ)以及通過(guò)BGU進(jìn)行鏈上備份,詳見(jiàn)3.2.2節(jié)。

(5)訪問(wèn)及報(bào)警信息的上鏈:當(dāng)用戶開(kāi)鎖或觸發(fā)入侵警報(bào)時(shí),BGU發(fā)布包含訪問(wèn)或報(bào)警信息的交易,詳見(jiàn)3.2.3節(jié)。

(6)家庭成員通過(guò)客戶端對(duì)門禁進(jìn)行操作,合約根據(jù)鏈上存儲(chǔ)的訪問(wèn)控制策略判別用戶是否具有相應(yīng)權(quán)限,詳見(jiàn)3.2.4節(jié)。

(7)服務(wù)提供商在維護(hù)與檢測(cè)中發(fā)現(xiàn)系統(tǒng)存在漏洞或業(yè)務(wù)需求的增加時(shí),需對(duì)合約進(jìn)行升級(jí),合約所有者將新合約進(jìn)行云存儲(chǔ),并返回索引nc_url。同時(shí),合約觸發(fā)投票事件通知審核節(jié)點(diǎn)進(jìn)行鏈下審核。審核節(jié)點(diǎn)調(diào)用合約進(jìn)行投票,當(dāng)票數(shù)超過(guò)閾值,所有者獲得升級(jí)許可并完成升級(jí),詳見(jiàn)3.2.5節(jié)。

3 監(jiān)控系統(tǒng)功能與算法設(shè)計(jì)

在上文提出的基本框架以及大致工作流程的基礎(chǔ)上,本節(jié)詳細(xì)設(shè)計(jì)了門禁監(jiān)控系統(tǒng),主要目的是利用硬件模塊和智能合約實(shí)現(xiàn)門禁訪問(wèn)以及入侵的可信監(jiān)控平臺(tái)。

3.1 智能門禁設(shè)計(jì)

指紋識(shí)別子程序用于接收指紋識(shí)別模塊讀取的指紋特征,并判斷指紋是否注冊(cè),工作流程如圖2所示。指紋識(shí)別模塊通過(guò)USART1與Arduino相連,當(dāng)USART1串口出現(xiàn)中斷,系統(tǒng)接收串口信息,并判斷用戶身份是否注冊(cè),如果與鏈下指紋庫(kù)中的指紋比對(duì)成功則開(kāi)啟門禁,同時(shí)BGU接收到發(fā)送來(lái)的訪問(wèn)信息后,調(diào)用合約發(fā)布包含門禁訪問(wèn)信息的交易;如果指紋比對(duì)失敗且失敗次數(shù)超過(guò)閾值n,則BGU發(fā)布包含門禁訪問(wèn)報(bào)警信息的交易。此外,當(dāng)系統(tǒng)檢測(cè)到鏈下指紋庫(kù)為空時(shí),提示用戶使用其它方式開(kāi)啟門禁,并且當(dāng)用戶成功使用其它方式開(kāi)啟門禁后BGU調(diào)用合約完成鏈下指紋庫(kù)同步。

圖2 指紋身份識(shí)別流程

密碼識(shí)別子程序用于實(shí)現(xiàn)用戶使用密碼開(kāi)啟門禁和注冊(cè)指紋信息,工作流程如圖3所示。當(dāng)密碼按鍵模塊檢測(cè)到密碼輸入時(shí),首先進(jìn)行鏈下驗(yàn)證,若鏈下沒(méi)有驗(yàn)證信息,則通過(guò)BGU調(diào)用合約驗(yàn)證輸入的密碼與鏈上存儲(chǔ)的密碼hash值是否一致,若檢測(cè)到是管理員密碼,則提示選擇注冊(cè)還是注銷指紋模板,若注冊(cè)則通過(guò)指紋模塊讀取指紋,當(dāng)兩次指紋一致則存儲(chǔ)指紋模板,同時(shí)BGU調(diào)用合約將加密后的指紋模板進(jìn)行上鏈存儲(chǔ);若注銷則提示通過(guò)客戶端操作。但是當(dāng)檢測(cè)到是正確密碼或臨時(shí)密碼則開(kāi)啟門禁,并通過(guò)BGU發(fā)布包含訪問(wèn)信息的交易,而臨時(shí)密碼則會(huì)在使用后被立即刪除。當(dāng)輸錯(cuò)次數(shù)超過(guò)閾值n則發(fā)出報(bào)警提示,并發(fā)布包含訪問(wèn)報(bào)警信息的交易。

圖3 密碼身份識(shí)別流程

入侵檢測(cè)子程序如圖4所示。當(dāng)人體紅外傳感器感應(yīng)到人員出現(xiàn)則開(kāi)啟超聲波測(cè)距,若測(cè)量到人與門禁之間的距離≤閾值d時(shí),開(kāi)始計(jì)時(shí)。若操作者在設(shè)定時(shí)間t內(nèi)未對(duì)門禁做出正確操作,則門禁判定發(fā)生室外入侵,廣播包含室外報(bào)警信息的交易。

圖4 入侵檢測(cè)流程

當(dāng)入侵者試圖繞過(guò)門禁入侵室內(nèi)時(shí),若門禁處于鎖定狀態(tài),設(shè)置在室內(nèi)多處的運(yùn)動(dòng)傳感器會(huì)檢測(cè)到室內(nèi)入侵,當(dāng)相鄰時(shí)間內(nèi)接收到多處運(yùn)動(dòng)傳感器發(fā)送的數(shù)據(jù),則判斷為室內(nèi)入侵,BGU將包含室內(nèi)入侵報(bào)警信息的交易進(jìn)行廣播。

而當(dāng)系統(tǒng)判定為入侵時(shí),在將報(bào)警信息上鏈的同時(shí)自動(dòng)刪除鏈下用戶身份特征,只有當(dāng)用戶通過(guò)密碼身份完成鏈上識(shí)別開(kāi)啟門禁時(shí),鏈下才會(huì)重新同步用戶身份特征,一定程度上避免了暴力獲取鏈下數(shù)據(jù)的事件發(fā)生。

3.2 智能合約設(shè)計(jì)

在基于區(qū)塊鏈和智能合約的智能門禁體系結(jié)構(gòu)中,智能合約設(shè)計(jì)了所有交易的處理邏輯。客戶端以及BGU通過(guò)Web3調(diào)用合約接口。下面對(duì)系統(tǒng)中的房屋登記、身份錄入、訪問(wèn)與入侵檢測(cè)、客戶端訪問(wèn)監(jiān)控、合約升級(jí)5個(gè)過(guò)程進(jìn)行闡述。

3.2.1 房屋登記

房屋登記是指用戶身份驗(yàn)證成功后用戶提交一個(gè)包含房屋相關(guān)信息的記賬交易,將必要的房屋信息上鏈存儲(chǔ),防止外部網(wǎng)關(guān)對(duì)數(shù)據(jù)的惡意修改,具體過(guò)程見(jiàn)算法1。該算法由注冊(cè)用戶執(zhí)行,輸入?yún)?shù)為用戶以太坊公鑰地址user_addr、房屋識(shí)別號(hào)homeID、網(wǎng)關(guān)設(shè)備標(biāo)識(shí)號(hào)gateID、網(wǎng)關(guān)的以太坊公鑰pk_g、登記者的私鑰簽名sig_r。交易返回響應(yīng)信息true/false。

算法1:房屋登記算法

Input:user_addr,homeID,gateID,pk_g,sig_r

Output: 響應(yīng)信息true/false

(1)調(diào)用合約home_register(homeID,gateID,pk_g,sig_r)函數(shù), 將房屋信息加入home[homeID] 變量

(2)if verify_user(user_addr) &&homeID&&gateIDthen

(3) 合約通過(guò)personHome和gateHome變量記錄房屋與用戶以及房屋與網(wǎng)關(guān)之間的關(guān)系

(4) 初始化成員名單,將登記者加入到成員名單中,并將角色變量修改為戶主

(5) return true

(6)else return false

(7)end if

用戶注冊(cè)身份通過(guò)后,可以調(diào)用合約home_register()函數(shù)將房屋信息寫入?yún)^(qū)塊鏈,合約通過(guò)verify_user()驗(yàn)證用戶是否完成認(rèn)證,驗(yàn)證后合約判斷homeID和gateID的登記狀況,若未登記則調(diào)用home_register()將信息記錄到home[homeID]指向的Home結(jié)構(gòu)體中,并將房屋與用戶以及網(wǎng)關(guān)之間的映射關(guān)系分別記錄到personHome[user_addr]和gateHome[gateID]變量中。同時(shí),合約初始化一個(gè)成員名單member[homeID]并將登記者加入其中,然后合約修改member[homeID][user_addr].role變量,將登記者的角色變?yōu)閼糁鳌kS后戶主可以調(diào)用合約添加成員,方便成員訪問(wèn)房屋信息。

3.2.2 身份錄入

在執(zhí)行該過(guò)程的前提是房屋已完成登記,房屋與BGU綁定后就可以實(shí)現(xiàn)門禁密碼及指紋的存儲(chǔ),該過(guò)程見(jiàn)算法2。該算法由戶主執(zhí)行,輸入?yún)?shù)為用戶以太坊地址user_addr、房屋識(shí)別號(hào)homeID、網(wǎng)關(guān)設(shè)備唯一標(biāo)識(shí)號(hào)gateID、管理員密碼的hash值admin_hash、門禁密碼的hash值pwd_hash、對(duì)稱加密后的指紋特征 [finger_tmp]sk_g、 網(wǎng)關(guān)以太坊公鑰加密后的密鑰[sk_g]pk_g。

算法2:身份錄入

Input:user_addr,homeID,gateID,admin_hash,pwd_hash,[finger_tmp]sk_g,[sk_g]pk_g

(1)戶主調(diào)用合約接口set_pwd(homeID,admin_hash,pwd_hash)

(2)if verify_role(user_addr,homeID)=UserRole.admin then

(3) 合約將門禁的admin_hash以及pwd_hash存入acc_admin[homeID]和acc_pwd[homeID]變量中

(4)end if

(5)通過(guò)指紋模塊錄入指紋特征, 網(wǎng)關(guān)調(diào)用合約addFinger(gateID,[finger_tmp]sk_g,[sk_g]pk_g)函數(shù), 將指紋特征記錄到變量temporaryFinger[homeID]中

(6)if verify_gate(gateID) then

(7) 觸發(fā)合約綁定事件bind(homeID,[finger_tmp]sk_g)

(8) 戶主調(diào)用合約bindFinger(homeID,user_addr,[finger_tmp]sk_g)函數(shù)綁定成員與指紋之間的關(guān)系, 記錄到成員結(jié)構(gòu)信息中

(9)end if

在完成房屋登記后,戶主調(diào)用合約set_pwd()函數(shù)創(chuàng)建門禁管理員密碼和開(kāi)鎖密碼。合約內(nèi)部執(zhí)行vertify_role()函數(shù)驗(yàn)證用戶戶主角色,通過(guò)后密碼的hash值分別存入acc_pwd[homeID]和acc_admin[homeID]變量中。戶主在密碼按鍵識(shí)別模塊上通過(guò)管理員密碼錄入用戶指紋模板,網(wǎng)關(guān)將加密后的指紋模板上鏈并觸發(fā)綁定事件,同時(shí)合約驗(yàn)證該網(wǎng)關(guān)是否登記。監(jiān)聽(tīng)該事件的戶主通過(guò)客戶端調(diào)用合約bingFinger()將指紋模板與用戶進(jìn)行綁定。

3.2.3 訪問(wèn)與入侵檢測(cè)

算法3由區(qū)塊鏈網(wǎng)關(guān)執(zhí)行,輸入?yún)?shù)為設(shè)備標(biāo)識(shí)gateID、門禁訪問(wèn)或報(bào)警類型typeacc、信息Infoacc及其hash值Infoacc_hash、網(wǎng)關(guān)的簽名sig_g。

算法3:訪問(wèn)與入侵記錄

Input:gateID,typeacc,Infoacc,Infoacc_hash,sig_g

(1)網(wǎng)關(guān)調(diào)用合約up_data(gateID,typeacc,Infoacc,Infoacc_hash,sig_g)上傳記錄的相關(guān)信息

(2)if verify_gate(gateID) then

(3) iftypeacc為訪問(wèn) then

(4) 合約將訪問(wèn)信息存入Access[gateHome[gateID]]變量中

(5) else

(6) 合約將報(bào)警相關(guān)信息存入Alarm[gateHome[gateID]]變量中

(7) end if

(8)end if

網(wǎng)關(guān)通過(guò)門禁的身份識(shí)別模塊或入侵檢測(cè)模塊獲得相應(yīng)的參數(shù)后,調(diào)用合約up_data()接口創(chuàng)建包含門禁訪問(wèn)或報(bào)警信息的交易。合約內(nèi)部利用verify_gate()驗(yàn)證網(wǎng)關(guān)身份,通過(guò)后合約根據(jù)typeacc將門禁信息存入相應(yīng)的變量中。

3.2.4 訪問(wèn)監(jiān)控

該過(guò)程為用戶通過(guò)客戶端實(shí)現(xiàn)對(duì)門禁訪問(wèn)記錄的查詢以及發(fā)布門禁臨時(shí)密碼等操作。本文采用基于角色的訪問(wèn)控制(RBAC)機(jī)制實(shí)現(xiàn)用戶的訪問(wèn)控制,當(dāng)用戶調(diào)用合約obtain_msg(user_addr,homeID,param) 對(duì)門禁記錄進(jìn)行查詢,合約內(nèi)部調(diào)用verify_role()驗(yàn)證用戶角色是否具有與檢索信息相對(duì)應(yīng)的權(quán)限,若通過(guò)則返回查詢信息。而當(dāng)用戶發(fā)布臨時(shí)密碼時(shí),調(diào)用合約publish_tpwd(user_addr,homeID,tpwd_hash,time) 創(chuàng)建發(fā)布臨時(shí)密碼的交易,合約內(nèi)部調(diào)用verify_role()驗(yàn)證是否具有戶主角色,若是戶主則將臨時(shí)密碼的hash值tpwd_hash與有效時(shí)長(zhǎng)time存儲(chǔ)到變量homeTep[homeID]指向的TempPwd結(jié)構(gòu)體中。

3.2.5 合約升級(jí)

智能合約作為運(yùn)行在區(qū)塊鏈上的代碼,具有不可篡改的特點(diǎn),這使數(shù)據(jù)的安全性得到有效保障的同時(shí)使得合約一旦部署就不可修改,這就給修復(fù)系統(tǒng)bug或引入新功能帶來(lái)了困難[13]。因此本文利用Zeppelin社區(qū)提出的一種代理合約實(shí)現(xiàn)新合約的部署,以實(shí)現(xiàn)合約升級(jí)的目的。該合約引入了代理所有權(quán)(本文就是合約所有者)的概念,只有所有者有權(quán)將新版本合約寫入代理合約中。當(dāng)所有者獲取升級(jí)許可時(shí),調(diào)用合約updateTo(new_implementaddr) 函數(shù)傳入新合約部署后的合約地址new_implementaddr,合約內(nèi)部驗(yàn)證new_implementaddr與storage[position]變量存儲(chǔ)的舊合約地址是否重合,其中position為一個(gè)常量,通過(guò)keccak256提供一個(gè)足夠隨機(jī)的存儲(chǔ)位置。驗(yàn)證通過(guò)后,設(shè)置新的合約地址存儲(chǔ)到storage[position]變量中,從而實(shí)現(xiàn)用戶通過(guò)代理合約對(duì)新邏輯合約的調(diào)用。

通過(guò)代理合約調(diào)用函數(shù)來(lái)返回邏輯合約的值,該操作通過(guò)solidity的匯編操作碼實(shí)現(xiàn),當(dāng)調(diào)用的函數(shù)在合約中不存在時(shí),合約調(diào)用fallback回退函數(shù)將請(qǐng)求重定向到其它合約中。而fallback函數(shù)通過(guò)calldatasize將收到的msg.data傳遞給目標(biāo)合約,然后通過(guò)delegatecalls操作碼返回調(diào)用結(jié)果。然而,所有者在實(shí)現(xiàn)合約升級(jí)的同時(shí)也為去中心化環(huán)境帶來(lái)了風(fēng)險(xiǎn),因此本系統(tǒng)通過(guò)投票機(jī)制限制所有對(duì)合約升級(jí)的許可,見(jiàn)算法4。輸入?yún)?shù)為合約所有者的以太坊地址owner_addr、合約索引nc_url、索引的hash值url_hash、新合約的hash值nc_hash、審核節(jié)點(diǎn)的地址user_addr。

算法4:升級(jí)許可

Input:owner_addr,nc_url,url_hash,nc_hash,user_addr

(1)合約所有者調(diào)用合約release_nc(owner_addr,nc_url,url_hash,nc_hash)函數(shù)

(2)ifowner_addr不是所有者 then

(3) 拋出異常

(4)end if

(5)將新合約的信息存入nc[nc_hash]變量中

(6)觸發(fā)投票事件vote(nc_url,url_hash), 審核節(jié)點(diǎn)鏈下審計(jì)新的合約代碼

(7) while(rel_nc[url_hash].voteNum

(8) if 審核通過(guò) then

(9) 審核節(jié)點(diǎn)調(diào)用vote_nc(user_addr,url_hash)函數(shù)投票

(10) ifuser_addr是審核節(jié)點(diǎn)&&vote_status[user_addr][url_hash]=false

(11)rel_nc[url_hash].voteNum++,vote_status[user_addr][url_hash]=true

(12) end if

(13) end if

(14)end while

(15)ifrel_nc[url_hash].voteNum≥preset_numthen

(16)upgrade_status=true

(17)end if

為避免合約所有者惡意行為的發(fā)生,合約所有者owner在升級(jí)新合約前需要將合約發(fā)送到云端進(jìn)行審核。然后owner調(diào)用release_nc()發(fā)布合約審核請(qǐng)求,并觸發(fā)合約的投票事件。監(jiān)聽(tīng)該事件的審核節(jié)點(diǎn)鏈下審計(jì)合約,通過(guò)后調(diào)用合約vote_nc()函數(shù)增加rel_nc[url_hash].voteNum的票數(shù),vote_status[user_addr][url_hash]限制了節(jié)點(diǎn)不可重復(fù)投票,并且當(dāng)在preset_time時(shí)間內(nèi)票數(shù)達(dá)到預(yù)設(shè)值preset_num,則合約修改升級(jí)許可的狀態(tài)變量upgrade_status。

4 測(cè)試分析

本文使用運(yùn)行Ubuntu20.04系統(tǒng)的PC以及Raspbian系統(tǒng)的樹(shù)莓派4B進(jìn)行實(shí)驗(yàn)。同時(shí),該系統(tǒng)基于Truffle框架進(jìn)行開(kāi)發(fā),采用Solidity編寫智能合約,運(yùn)行在利用Geth(go-ethereum)搭建的基于PoA共識(shí)的以太坊私有網(wǎng)絡(luò)中,并在私有網(wǎng)絡(luò)中設(shè)置5個(gè)節(jié)點(diǎn),其中本地PC上通過(guò)不同端口模擬3個(gè)用戶訪問(wèn)的測(cè)試節(jié)點(diǎn)和1個(gè)挖礦節(jié)點(diǎn),此外樹(shù)莓派上同樣部署Geth作為網(wǎng)關(guān)測(cè)試節(jié)點(diǎn),然后通過(guò)Geth控制終端將網(wǎng)關(guān)的節(jié)點(diǎn)信息加入到本地跟蹤的節(jié)點(diǎn)列表,本地節(jié)點(diǎn)將保持與這些節(jié)點(diǎn)連接,實(shí)現(xiàn)局部的P2P私有網(wǎng)絡(luò),保證網(wǎng)絡(luò)中的各節(jié)點(diǎn)進(jìn)行同步與驗(yàn)證。

4.1 對(duì)比分析

本實(shí)驗(yàn)針對(duì)上述門禁監(jiān)控系統(tǒng)中指紋模板的存儲(chǔ)、同步以及密碼的識(shí)別效率進(jìn)行測(cè)試。在指紋模板存儲(chǔ)與同步測(cè)試中采用10個(gè)指紋模板,模板鏈上存儲(chǔ)與鏈下同步的結(jié)果如圖5所示。其中指紋模板每次錄入一個(gè)就會(huì)直接上鏈存儲(chǔ),而鏈下同步模板數(shù)由一個(gè)逐次遞增,同步數(shù)最多為10個(gè),符合實(shí)際需求。從圖中可以看出存儲(chǔ)的平均處理時(shí)間基本穩(wěn)定在某一范圍,而同步的延時(shí)與同步的模板數(shù)呈正比,二者的處理效率用戶完全可以接受。而且隨著節(jié)點(diǎn)增加也不會(huì)導(dǎo)致處理效率的下降,這完全得益于PoA共識(shí)算法只需事先選取部分權(quán)威節(jié)點(diǎn)處理交易的特點(diǎn),而傳統(tǒng)的PoW(Proof-of-Work)共識(shí)算法需要將交易信息廣播到所有節(jié)點(diǎn),并且隨著節(jié)點(diǎn)的增加耗時(shí)更久,這就使得PoA的處理效率要遠(yuǎn)優(yōu)于PoW,同時(shí)基于PoA的私有網(wǎng)絡(luò)更有利于及時(shí)向用戶反饋結(jié)果。

由于智能合約的局限性很難實(shí)現(xiàn)鏈上指紋的身份識(shí)別,因此在實(shí)際情況中,當(dāng)鏈下身份數(shù)據(jù)被刪除時(shí),就可以使用密碼身份識(shí)別進(jìn)行鏈上驗(yàn)證,圖6展示了鏈上鏈下密碼身份識(shí)別的效率,其中左側(cè)縱坐標(biāo)為鏈上驗(yàn)證的響應(yīng)時(shí)間,右側(cè)縱坐標(biāo)為鏈下驗(yàn)證的響應(yīng)時(shí)間。從圖中可知,鏈下識(shí)別的效率要明顯優(yōu)于鏈上識(shí)別,但是鏈上密碼身份識(shí)別的效率穩(wěn)定而且也基本滿足實(shí)際需求。

圖5 指紋模板存儲(chǔ)與同步效率

圖6 密碼身份識(shí)別效率

4.2 合約升級(jí)測(cè)試

本文通過(guò)Remix對(duì)合約的升級(jí)功能進(jìn)行測(cè)試,在保證原有數(shù)據(jù)不變的情況下實(shí)現(xiàn)原始合約的升級(jí)。實(shí)驗(yàn)設(shè)計(jì)了一個(gè)邏輯合約EGSystem.sol,通過(guò)房屋登記功能測(cè)試合約的升級(jí)效果。首先分別部署升級(jí)合約Upgradeability.sol和邏輯合約EGSystem.sol,然后調(diào)用Upgradeability.sol中的upgradeTo()函數(shù)傳入原始邏輯合約地址,接著重新載入U(xiǎn)pgradeabilidy.sol的合約地址,最后利用Upgradeablidity.sol調(diào)用EGSystem.sol中的home_register()函數(shù)登記房屋信息。

經(jīng)測(cè)試,在重新登記已登記過(guò)的房屋信息時(shí),提示當(dāng)前房屋信息以登記,如圖7所示,說(shuō)明房屋登記功能可以正常調(diào)用。

圖7 房屋登記功能測(cè)試

當(dāng)原始合約已無(wú)法滿足當(dāng)前系統(tǒng)的需求時(shí),假設(shè)所有者已獲得升級(jí)許可,部署新的邏輯合約EGSystemV2.sol,然后調(diào)用Upgradeability.sol的upgradeTo()函數(shù)傳入新合約的地址并重新載入升級(jí)合約的地址完成升級(jí)。

測(cè)試如圖8所示,合約成功的由原始邏輯合約升級(jí)為新的合約,在保證合約功能和數(shù)據(jù)續(xù)用的前提下,實(shí)現(xiàn)了合約的升級(jí)。

圖8 合約升級(jí)測(cè)試

4.3 系統(tǒng)實(shí)現(xiàn)

智能門禁監(jiān)控系統(tǒng)旨在于用戶通過(guò)客戶端實(shí)現(xiàn)對(duì)智能門禁的監(jiān)測(cè)以及控制,本系統(tǒng)采用Web3.js以及JavaScript等技術(shù)實(shí)現(xiàn)客戶端界面。如圖9所示為用戶通過(guò)檢索參數(shù)查詢到的某天門禁訪問(wèn)的信息,其中包含訪問(wèn)時(shí)間、開(kāi)鎖方式、相應(yīng)用戶等信息。

圖9 門禁記錄查詢界面

5 結(jié)束語(yǔ)

本文針對(duì)智能門禁系統(tǒng)中用戶生物特征易被盜取、監(jiān)控?cái)?shù)據(jù)易被外部篡改等問(wèn)題,設(shè)計(jì)了一個(gè)基于以太坊區(qū)塊鏈的智能門禁監(jiān)控系統(tǒng)。該系統(tǒng)利用智能合約實(shí)現(xiàn)門禁訪問(wèn)身份的可信存儲(chǔ)與識(shí)別以及監(jiān)控?cái)?shù)據(jù)的固化,并且配合鏈下鏈上的多方式身份識(shí)別有效提升用戶的訪問(wèn)效率,同時(shí)入侵檢測(cè)單元確保了室內(nèi)外入侵能夠被立即檢測(cè)到,而且合約的可升級(jí)保證了對(duì)系統(tǒng)漏洞的及時(shí)修復(fù)以及提升系統(tǒng)的可擴(kuò)展性,實(shí)現(xiàn)用戶對(duì)監(jiān)測(cè)數(shù)據(jù)的有效管理。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)性能可以達(dá)到實(shí)際應(yīng)用所需效果。

猜你喜歡
用戶信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
100萬(wàn)用戶
如何獲取一億海外用戶
展會(huì)信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产精欧美一区二区三区| 日韩AV无码一区| 中国一级特黄视频| 久久国产毛片| 国产最新无码专区在线| 日本午夜在线视频| 亚洲精品无码久久久久苍井空| 国产高清国内精品福利| 日韩无码黄色网站| 国产又黄又硬又粗| 精品视频第一页| 午夜精品久久久久久久无码软件 | 国产精品美女免费视频大全| 色老头综合网| 中文字幕调教一区二区视频| 亚洲精品无码AV电影在线播放| 亚洲V日韩V无码一区二区 | 岛国精品一区免费视频在线观看| 日本a∨在线观看| 2019年国产精品自拍不卡| 国产精品护士| 国产尹人香蕉综合在线电影| 久久午夜夜伦鲁鲁片不卡| 一区二区三区成人| 91色爱欧美精品www| 亚洲精品第五页| 欧美不卡视频在线| 亚洲视屏在线观看| 欧美国产菊爆免费观看| 日韩二区三区| 青青草原国产精品啪啪视频| 欧美亚洲第一页| 尤物国产在线| 99精品一区二区免费视频| 国产精品蜜臀| 在线国产91| 国产在线日本| 亚洲综合色在线| 色哟哟国产精品一区二区| 国产亚洲精品91| 一级做a爰片久久毛片毛片| 国产精品30p| 在线无码私拍| 操操操综合网| 一本大道无码日韩精品影视| 国产九九精品视频| 99视频在线观看免费| 国产午夜无码片在线观看网站| 午夜福利免费视频| 亚洲av片在线免费观看| 国产精品专区第1页| 久996视频精品免费观看| 国产一区免费在线观看| 亚洲无码视频喷水| 波多野结衣一二三| 99色亚洲国产精品11p| 亚洲日韩精品综合在线一区二区| 日韩一二三区视频精品| 亚洲欧州色色免费AV| 国产视频入口| 怡红院美国分院一区二区| 成人免费视频一区二区三区| 伊人久热这里只有精品视频99| 天天干天天色综合网| 国产丝袜啪啪| 香蕉视频在线观看www| 国产成人AV男人的天堂| 成人午夜福利视频| 天天色综网| 毛片卡一卡二| 日韩性网站| 亚洲欧美色中文字幕| 欧美激情福利| av大片在线无码免费| 成年人国产网站| 国产美女视频黄a视频全免费网站| 国产成人狂喷潮在线观看2345| 四虎在线观看视频高清无码 | 99一级毛片| 日韩在线1| 国产综合无码一区二区色蜜蜜| 国产精品9|