• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種基于區(qū)塊鏈的物聯(lián)網(wǎng)隱私數(shù)據(jù)保護(hù)方案

    2022-01-27 09:57:02邵懷禹錢俊彥翟仲毅
    關(guān)鍵詞:以太哈希調(diào)用

    邵懷禹,錢俊彥,翟仲毅

    (桂林電子科技大學(xué) 計算機(jī)與信息安全學(xué)院,廣西 桂林 541004)

    物聯(lián)網(wǎng)中的眾多設(shè)備每時每刻都在產(chǎn)生大量數(shù)據(jù),這些數(shù)據(jù)有很大一部分會涉及用戶的隱私。然而,越來越密集和普遍地收集與處理在人們的私人生活中產(chǎn)生的數(shù)據(jù),會引起嚴(yán)重的安全和隱私問題[1-2]。物聯(lián)網(wǎng)的若干固有缺陷加劇了其安全性和隱私挑戰(zhàn),包括缺乏中央控制及設(shè)備資源的異構(gòu)性等。如今,這些數(shù)據(jù)大部分存儲在云數(shù)據(jù)中心,而互聯(lián)網(wǎng)上的云存儲大都依賴于作為受信任的第三方數(shù)據(jù)服務(wù)提供者來傳輸和存儲數(shù)據(jù)。盡管這些系統(tǒng)在大多數(shù)情況下運行良好,但仍受制于傳統(tǒng)中心化管理的固有弱點,因此云存儲會受到各種安全威脅,包括中間人攻擊、惡意軟件及暴露私人消費者和公司敏感數(shù)據(jù)的攻擊等[3]。此外,當(dāng)前的云存儲應(yīng)用程序能夠在數(shù)據(jù)存儲上收取超出其核心成本的高額費用,而可供用戶選擇的物美價廉的數(shù)據(jù)服務(wù)提供商卻很少,用戶也無法參與這些數(shù)據(jù)的監(jiān)管。

    當(dāng)?shù)谌綌?shù)據(jù)服務(wù)提供商出現(xiàn)技術(shù)故障時,可能導(dǎo)致數(shù)據(jù)泄露或不可用,存儲在數(shù)據(jù)中心的數(shù)據(jù)文件極易被偽造,而且由于數(shù)據(jù)中心存儲著海量數(shù)據(jù),當(dāng)部分?jǐn)?shù)據(jù)被偽造或篡改后,很難被察覺,被篡改的數(shù)據(jù)混雜在正常數(shù)據(jù)中,對后續(xù)的學(xué)習(xí)研究產(chǎn)生不利影響。因此,亟需一種解決方案,在保護(hù)用戶隱私免于泄露的情況下,安全高效地存儲數(shù)據(jù)。

    區(qū)塊鏈作為去中心化的數(shù)據(jù)存儲系統(tǒng),有潛力解決有關(guān)用戶隱私保護(hù)的問題。區(qū)塊鏈[4]的核心是位于互聯(lián)網(wǎng)上的系統(tǒng)參與者之間共享的分布式數(shù)字分類帳,該數(shù)字分類帳永遠(yuǎn)保存在互聯(lián)網(wǎng)上,交易或事件經(jīng)過驗證并記錄在分類帳中,為用戶數(shù)據(jù)記錄和共享信息提供了一種方法。在區(qū)塊鏈網(wǎng)絡(luò)中,選定的成員保留其分類帳的副本,且必須在接受新分類帳之前,通過共識過程集體驗證所有新交易。區(qū)塊鏈的匿名性和防篡改性使其在許多需要考慮隱私問題的領(lǐng)域得以應(yīng)用[5-6]。

    基于區(qū)塊鏈存儲物聯(lián)網(wǎng)數(shù)據(jù)[7-8]會增加另一層安全保障,數(shù)據(jù)記錄在去中心化的分類帳中,黑客幾乎不可能篡改分類帳以覆蓋現(xiàn)有的數(shù)據(jù)記錄。區(qū)塊鏈通過允許任何有權(quán)訪問網(wǎng)絡(luò)的人員跟蹤過去發(fā)生的交易來提供透明性,這可為識別數(shù)據(jù)泄露時采取快速的補救措施提供一種可靠的方式。因此,由于區(qū)塊鏈具有去中心化、匿名性和防篡改性,使其成為解決物聯(lián)網(wǎng)隱私數(shù)據(jù)保護(hù)問題的潛在解決方案[9-10]。

    鑒于此,針對物聯(lián)網(wǎng)用戶的身份認(rèn)證,通過鏈上采用基于區(qū)塊鏈公鑰地址的身份認(rèn)證和鏈下采用群簽名[11]的身份認(rèn)證方式,解決基于區(qū)塊鏈應(yīng)用場景下匿名和溯源的矛盾問題。針對數(shù)據(jù)存儲問題,提出基于區(qū)塊鏈的數(shù)據(jù)存儲模型,利用IPFS[12]存儲原數(shù)據(jù),生成原數(shù)據(jù)的數(shù)據(jù)標(biāo)識,進(jìn)行數(shù)據(jù)的版權(quán)證明和完整性驗證,通過設(shè)計的以太坊平臺[13]的智能合約完成數(shù)據(jù)標(biāo)識的上鏈和訪問操作,通過唯一的數(shù)據(jù)標(biāo)識為數(shù)據(jù)完整性提供保證。測試結(jié)果表明,該方案在保護(hù)用戶隱私的前提下能夠安全有效地存儲數(shù)據(jù)。

    1 基于區(qū)塊鏈的物聯(lián)網(wǎng)隱私數(shù)據(jù)保護(hù)方案

    通過對物聯(lián)網(wǎng)用戶隱私數(shù)據(jù)保護(hù)問題的研究,總結(jié)出基于區(qū)塊鏈的物聯(lián)網(wǎng)隱私數(shù)據(jù)保護(hù)方案需要解決的物聯(lián)網(wǎng)用戶身份認(rèn)證問題、物聯(lián)網(wǎng)用戶隱私數(shù)據(jù)的安全存儲問題及物聯(lián)網(wǎng)用戶隱私數(shù)據(jù)的完整性驗證問題3個技術(shù)難點,并利用區(qū)塊鏈不可篡改、去中心化等特性,提出了一種基于區(qū)塊鏈的物聯(lián)網(wǎng)用戶隱私數(shù)據(jù)保護(hù)方案。

    1.1 基于區(qū)塊鏈的用戶身份認(rèn)證

    基于保護(hù)區(qū)塊鏈用戶隱私數(shù)據(jù)的相關(guān)研究[14-17],通過鏈上數(shù)字簽名、鏈下群簽名的方式進(jìn)一步增強匿名性。物聯(lián)網(wǎng)用戶身份認(rèn)證如圖1所示。不同于其他密碼學(xué)算法,群簽名有獨有的特點[18],群內(nèi)的人可以以群組的名義對消息進(jìn)行簽名,群外的人可以通過群密鑰驗證簽名的正確性,卻無法知道簽名者的真實身份,只有群管理者可以對簽名者進(jìn)行追溯??紤]到區(qū)塊鏈的偽匿名性對用戶隱私的保護(hù)所存在的缺陷,攻擊者通過分析大量的交易數(shù)據(jù)可以追溯用戶的真實身份,所以數(shù)據(jù)在存儲之前通過群簽名的方式進(jìn)行處理,即便攻擊者破解了區(qū)塊鏈的偽匿名性,用戶也可以在群簽名的保護(hù)下隱藏真實身份。

    圖1 物聯(lián)網(wǎng)用戶身份認(rèn)證

    基于以太坊區(qū)塊鏈的技術(shù)為物聯(lián)網(wǎng)用戶提供公私鑰對,數(shù)據(jù)只有在有效的區(qū)塊鏈簽名和群簽名的情形下才被認(rèn)為是有效數(shù)據(jù),如果有惡意用戶隨意發(fā)送消息到區(qū)塊鏈來破壞系統(tǒng)穩(wěn)定性,可以通過特定群管理者的私鑰來追蹤簽名者并進(jìn)行懲罰。由于區(qū)塊鏈技術(shù)本身不具有可追溯性,無法有效懲治破壞系統(tǒng)穩(wěn)定性的惡意用戶,群簽名的可追溯特性正好彌補了這一缺陷,為有效管理提供了保障。

    1.2 基于區(qū)塊鏈的數(shù)據(jù)標(biāo)識

    物聯(lián)網(wǎng)用戶的隱私數(shù)據(jù)通常數(shù)量巨大且難以組織管理。在利用IPFS以內(nèi)容尋址、分片的方式存儲原數(shù)據(jù)的前提下,為了高效、安全地組織管理,需要對數(shù)據(jù)的標(biāo)識信息進(jìn)行上鏈。數(shù)據(jù)標(biāo)識就是用固定的標(biāo)識代表數(shù)據(jù),與存儲在IPFS上的數(shù)據(jù)有一一對應(yīng)關(guān)系,方便大量物聯(lián)網(wǎng)用戶數(shù)據(jù)的組織和管理,便于以后對數(shù)據(jù)的訪問。

    在智能合約的存儲中定義了Data_id數(shù)據(jù)結(jié)構(gòu),智能合約通過solidity語言編寫。數(shù)據(jù)標(biāo)識中分別定義了字符串類型的Hash、字節(jié)類型的sig、字符串類型的Groupsig和Groupid以及無符號整型timestamp,分別表示存儲在IPFS上原數(shù)據(jù)返回的哈希值(通過這個哈希值地址可從IPFS上返回完整的原數(shù)據(jù))、以太坊上的橢圓曲線數(shù)字簽名算法(ECDSA)產(chǎn)生的數(shù)字簽名、群簽名算法產(chǎn)生的群簽名、不同群的標(biāo)識和用來維護(hù)不可偽造性的時間戳。Data_id數(shù)據(jù)結(jié)構(gòu)如下:

    struct Data_id{

    string Hash;

    bytes sig;

    string Groupsig;

    string Groupid;

    uint timestamp;

    }

    數(shù)字簽名sig的計算式為

    sig=sign(keccak256(Hash,timestamp),

    privatekey),

    (1)

    其中:sign表示ECDSA;keccak256表示以太坊中使用的SHA-3哈希算法,產(chǎn)生256位哈希;privatekey為用戶私鑰。群簽名Groupsig的計算式為

    Groupsig=groupsig(Hash,groupprivatekey),

    (2)

    其中:groupsig表示群簽名算法;groupprivatekey表示群成員私鑰。

    1.3 基于區(qū)塊鏈的數(shù)據(jù)存儲結(jié)構(gòu)

    以太坊區(qū)塊鏈內(nèi)進(jìn)行的任何交易和計算的傭金都會被礦工收取,網(wǎng)絡(luò)中的礦工對交易進(jìn)行確認(rèn),并確定哪些交易能進(jìn)入新區(qū)塊,交易傭金以gas計算,并以Ether支付。gas是以太坊網(wǎng)絡(luò)的“燃料”,用于進(jìn)行交易,執(zhí)行智能合約并啟動DApps,支付數(shù)據(jù)存儲費用。

    根據(jù)以太坊的特性及部署合約、存儲數(shù)據(jù)的需要,定義了如圖2所示的數(shù)據(jù)存儲模型,將交易類型定義為創(chuàng)建合約的交易、調(diào)用合約的交易2種,其各字段的定義如下。

    圖2 基于區(qū)塊鏈的物聯(lián)網(wǎng)隱私數(shù)據(jù)存儲區(qū)塊結(jié)構(gòu)

    1)賬戶公鑰:發(fā)起創(chuàng)建合約交易或者調(diào)用合約交易的以太坊賬戶的公鑰地址,證明發(fā)送者身份的唯一標(biāo)識。

    2)數(shù)字簽名:以太坊中利用ECDSA產(chǎn)生的數(shù)字簽名,用于驗證交易的合法性。

    3)合約地址:合約在成功部署后,被礦工確認(rèn)寫入?yún)^(qū)塊鏈后產(chǎn)生的智能合約的地址,以太坊中的其他賬戶可以通過訪問合約地址進(jìn)行合約的調(diào)用。

    4)交易哈希:交易在被寫進(jìn)區(qū)塊之前,會產(chǎn)生用以標(biāo)識交易的哈希,便于在以后追蹤每個交易具體執(zhí)行的操作。

    5)gas上限:即gas limit,其值必須大于等于交易需要消耗的gas,多余的gas會原路退回到發(fā)送者的賬戶,若用戶設(shè)置的gas limit太低,則交易會被取消,消耗的gas也不會退回。

    6)gas單價:發(fā)送者愿意為gas付出的單價。

    7)函數(shù)名:智能合約中定義的可供外部賬戶調(diào)用的函數(shù),具體定義了可供調(diào)用的函數(shù)為set(·)和get(·),分別用于數(shù)據(jù)的存儲和獲取。

    1.4 基于區(qū)塊鏈的隱私數(shù)據(jù)完整性驗證

    1)物聯(lián)網(wǎng)用戶加入用戶群,獲取群成員私鑰,將需要上傳的數(shù)據(jù)上傳至IPFS,并獲取返回的數(shù)據(jù)內(nèi)容地址(哈希值)。

    2)物聯(lián)網(wǎng)用戶調(diào)用如式(2)所示的群簽名算法和如式(1)所示的以太坊數(shù)字簽名算法,分別計算群簽名和橢圓曲線數(shù)字簽名。

    3)物聯(lián)網(wǎng)用戶調(diào)用智能合約中的set(·)函數(shù),上傳數(shù)據(jù)標(biāo)識,判斷智能合約驗證數(shù)字簽名是否由發(fā)送方本人簽名。若簽名正確,則將數(shù)據(jù)標(biāo)識上鏈;若簽名不正確,則返回上傳數(shù)據(jù)之前的操作。

    4)系統(tǒng)內(nèi)其他用戶調(diào)用智能合約中的get(·)函數(shù),獲取指定Groupid的用戶數(shù)據(jù)。

    5)根據(jù)獲得的數(shù)據(jù)標(biāo)識中的Groupid和Groupsig,調(diào)用群簽名服務(wù)器,驗證群簽名的正確性。若驗證正確,則進(jìn)行下一步;若驗證失敗,則報告給相應(yīng)的群管理員,對簽名進(jìn)行追蹤,追蹤上傳錯誤信息的群簽名者,并采取相應(yīng)措施。

    6)根據(jù)數(shù)據(jù)標(biāo)識中的數(shù)據(jù)內(nèi)容地址,從IPFS獲取數(shù)據(jù),本地驗證數(shù)據(jù)的哈希正確性。若正確,則完整性的驗證完成;若驗證錯誤,則返回步驟5)中驗證失敗的下一步操作。

    2 實驗結(jié)果與評估

    實驗環(huán)境和配置如下:

    1)運行在Intel?CoreTMi5-9400F CPU 下的Ubuntu 18.04.4 LTS 64位操作系統(tǒng),內(nèi)存為8 GiB;

    2)運行在Intel?CoreTMi5-6300HQ CPU win10操作系統(tǒng)下VMware Workstation 14 Player 14.1.1中的Ubuntu 18.04.3 LTS 64位操作系統(tǒng),內(nèi)存為2 GiB;

    3)在Ubuntu 18.04.4上通過Ganache模擬以太坊私有鏈運行場景,并運行IFPS本地節(jié)點;

    4)Truffle框架用來編譯和部署合約[19],通過MetaMask錢包連接指定的私有網(wǎng)絡(luò),實現(xiàn)交易簽名和發(fā)送交易的確認(rèn);

    5)通過React架構(gòu)[20]設(shè)計實現(xiàn)Web界面,方便用戶與區(qū)塊鏈進(jìn)行交互;

    6)在Ubuntu 18.04.4上通過PBC Library實現(xiàn)并搭建群簽名的服務(wù)器端,通過RPC調(diào)用實現(xiàn)群簽名的各項功能,虛擬機(jī)上的Ubuntu 18.04.3系統(tǒng)用來遠(yuǎn)程調(diào)用群簽名服務(wù),測試服務(wù)器性能。

    2.1 用戶隱私數(shù)據(jù)存儲階段

    啟動本地IPFS節(jié)點,如圖3所示,物聯(lián)網(wǎng)用戶通過Web界面選擇上傳IPFS的數(shù)據(jù),上傳成功后,獲得返回的數(shù)據(jù)哈希值。上傳原數(shù)據(jù)到IPFS的結(jié)果如圖4所示。

    圖3 啟動IPFS

    圖4 上傳文件到IPFS

    利用Truffle實現(xiàn)智能合約的編譯和部署,合約部署成功后,返回合約的地址等信息,合約部署返回的具體信息如圖5所示。從圖5可看出,合約地址為0x05a2C96492be5e9b3C1fC032Fe56414b1afA51fB,后續(xù)通過訪問此合約地址進(jìn)行測試。

    圖5 部署智能合約

    獲得IPFS返回值后,調(diào)用如式(2)所示的Groupsig函數(shù),對哈希值進(jìn)行群簽名,本地生成數(shù)據(jù)標(biāo)識后,點擊用戶界面的上傳數(shù)據(jù)標(biāo)識按鈕,調(diào)用如下智能合約函數(shù):

    set(Hash,sig,Groupsig,Groupid,timestamp)→1/0,

    (3)

    向以太坊發(fā)送交易,Web端調(diào)用MetaMask,對交易進(jìn)行簽名確認(rèn),簽名在以太坊區(qū)塊鏈驗證成功后,數(shù)據(jù)寫入?yún)^(qū)塊鏈。圖6為返回信息。從圖6可看出,數(shù)據(jù)標(biāo)識上傳區(qū)塊鏈成功。

    圖6 返回信息

    通過Ganache可以驗證交易是否成功。圖7為交易詳情截圖。從圖7可看出,區(qū)塊298寫入了一個由創(chuàng)建的賬戶地址‘0xB9D65d4941C2AC75E3467-0Ee7C0651f008Fc9E49’發(fā)送至之前部署的合約地址‘0x05a2C96492be5e9b3C1fC032Fe56414b1afA51fB’的交易,數(shù)據(jù)存儲成功。

    圖7 交易詳情

    2.2 隱私數(shù)據(jù)完整驗證階段

    用戶通過Web界面可以獲取之前上傳的Groupid為shy的數(shù)據(jù)標(biāo)識。調(diào)用智能合約函數(shù):

    get(Groupid)→(Hash,sig,Groupsig,Groupid,timestamp)/0,

    (4)

    若輸入的Groupid錯誤,則獲取失敗,如圖8所示;若輸入的Groupid正確,則獲取成功,如圖9所示。其中:timestamp時間戳表示距離1970年1月1日的毫秒數(shù);blockChainHash表示從區(qū)塊鏈獲取的哈希值。根據(jù)數(shù)據(jù)標(biāo)識中的群簽名,調(diào)用

    圖8 獲取數(shù)據(jù)標(biāo)識失敗

    圖9 獲取數(shù)據(jù)標(biāo)識成

    group_verify(Groupid, Groupsig,Hash)→1/0

    (5)

    進(jìn)行驗證,返回值為true,如圖10所示。從圖10可看出,返回的json數(shù)據(jù)中result的值正確,驗證成功。

    圖10 群簽名驗證

    根據(jù)blockChainHash,可以通過IPFS客戶端獲取原數(shù)據(jù),如圖11所示。從圖11可看出,通過查看和下載數(shù)據(jù)哈希為‘QmSrppdso7r8WynfEZ5th9-ULzDtb8Ay7d6xECnFX35cHpZ’的數(shù)據(jù),即可驗證數(shù)據(jù)的完整性。

    圖11 IPFS數(shù)據(jù)檢索

    2.3 群簽名服務(wù)時間消耗

    在Ubuntu 18.04.4上部署了群簽名的RPC服務(wù),為系統(tǒng)用戶提供群簽名算法的函數(shù)調(diào)用,群簽名服務(wù)的響應(yīng)速度對系統(tǒng)性能有重要影響。通過分別在本地調(diào)用和遠(yuǎn)程Ubuntu 18.04.3虛擬機(jī)調(diào)用,測試各請求函數(shù)的響應(yīng)時間。時間消耗對比如圖12所示,每個函數(shù)的調(diào)用時間消耗都是30次調(diào)用的平均值。從圖12可看出,遠(yuǎn)程虛擬機(jī)均比本地調(diào)用時間消耗多,時間消耗最多的是請求函數(shù)create_group,分別為0.309 3、0.228 9 s,其次為sig_verify、open_cert和group_sig函數(shù),與群簽名實際計算復(fù)雜度相符,總體時間消耗都在可接受范圍內(nèi)。

    圖12 群簽名服務(wù)各函數(shù)時間消耗對比

    3 結(jié)束語

    針對物聯(lián)網(wǎng)用戶的身份認(rèn)證問題,采用鏈上基于區(qū)塊鏈公鑰地址的身份認(rèn)證和鏈下群簽名的身份驗證方式,解決了區(qū)塊鏈中匿名和溯源的矛盾問題。提出了基于區(qū)塊鏈的數(shù)據(jù)存儲模型,利用IPFS存儲原數(shù)據(jù),生成原數(shù)據(jù)的數(shù)據(jù)標(biāo)識,以進(jìn)行數(shù)據(jù)的版權(quán)證明和完整性驗證。設(shè)計了以太坊平臺的智能合約,完成數(shù)據(jù)的上傳、下載等操作,通過唯一的數(shù)據(jù)標(biāo)識,為數(shù)據(jù)完整性提供了保證。仿真實驗結(jié)果表明,該方案在保護(hù)用戶隱私的前提下,能夠安全有效地存儲數(shù)據(jù)。后續(xù)將在智能合約的效率和存儲容量及區(qū)塊產(chǎn)生速度等方面作進(jìn)一步研究。

    猜你喜歡
    以太哈希調(diào)用
    以太極為旗,開啟新時代“黃河大合唱”
    少林與太極(2023年7期)2023-08-25 05:27:52
    核電項目物項調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    車易鏈:做汽車業(yè)的“以太坊”
    汽車觀察(2018年9期)2018-10-23 05:46:24
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
    基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
    基于維度分解的哈希多維快速流分類算法
    百通推出入門級快速工業(yè)以太網(wǎng)絡(luò)交換器系列
    以太互聯(lián) 高效便捷 經(jīng)濟(jì)、可靠、易用的小型可編程控制器
    自動化博覽(2014年6期)2014-05-29 09:40:16
    基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
    濉溪县| 沙坪坝区| 玛纳斯县| 林周县| 轮台县| 承德县| 东光县| 陆良县| 高青县| 惠州市| 色达县| 资中县| 桃园市| 北辰区| 密山市| 榆社县| 金湖县| 东至县| 凤冈县| 泰宁县| 旬邑县| 水富县| 南雄市| 阳信县| 昭苏县| 万盛区| 亚东县| 青龙| 临海市| 封丘县| 泰州市| 元朗区| 柞水县| 兴海县| 平江县| 凯里市| 桐乡市| 茂名市| 隆昌县| 黄骅市| 阿合奇县|