李海寧 呂少杰
(陜西理工大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西漢中 723000)
在電子商務(wù)中經(jīng)常通過(guò)第三方進(jìn)行支付。第三方支付在買賣雙方中起著中間人仲裁者的角色。圖1 以支付寶為例來(lái)描述第三方交易流程圖。
1.1 買家在網(wǎng)上商城選購(gòu)商品并加入購(gòu)入車。
1.2 買家利用個(gè)人事先和銀行卡關(guān)聯(lián)的支付寶進(jìn)行購(gòu)物車結(jié)算。
1.3 買家的支付寶賬號(hào)向關(guān)聯(lián)的銀行卡發(fā)起扣款請(qǐng)求。
1.4 銀聯(lián)卡通知銀行給賣家進(jìn)行轉(zhuǎn)賬。
1.5 銀行向第三方支付寶進(jìn)行轉(zhuǎn)賬。
1.6 支付寶(第三方)通知賣家已經(jīng)代收貨款,可以發(fā)貨。
1.7 賣家收到到款通知后給買家發(fā)貨
1.8 買家收到貨后如果對(duì)商品不滿意,或認(rèn)為與商家承諾有出入,可申請(qǐng)退貨退款(是否能退貨需要第三方進(jìn)行裁定)。
1.9 買家確認(rèn)收貨后,支付寶(第三方)支付給賣家,完成交易。
依靠第三方支付可能會(huì)暴露用戶的姓名、身份證號(hào)、銀行卡號(hào)等個(gè)人信息,用戶通過(guò)第三方泄露隱私的事件時(shí)有發(fā)生,另一方面依靠第三方進(jìn)行裁決往往帶有一定的主觀性,交易的公平性得不到充分保障。
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,越來(lái)越多的用戶把自己的數(shù)據(jù)放到云服務(wù)器上,為了保護(hù)用戶和數(shù)據(jù)的隱私安全,用戶通常在云服務(wù)器上存放的數(shù)據(jù)的密文,可搜索加密技術(shù)也應(yīng)運(yùn)而生了。
依靠第三方的密文搜索系統(tǒng)通常包括數(shù)據(jù)擁有者、用戶和云服務(wù)器三個(gè)主體,如圖2 所示?;谠品?wù)器(第三方)的密文搜索方案中,數(shù)據(jù)擁有者使用可搜索加密算法對(duì)文件進(jìn)行加密,同時(shí)提取文件中的關(guān)鍵詞加密并建立安全索引表,將文件密文和索引一起發(fā)送給云服務(wù)器。當(dāng)用戶需要訪問(wèn)包含有某個(gè)關(guān)鍵詞的文件時(shí),將獲得的關(guān)鍵詞的搜索憑證發(fā)送給云服務(wù)器,云服務(wù)器將搜索憑證與每個(gè)文件進(jìn)行匹配,最后將匹配成功的文件返回給用戶。用戶解密密文即可獲得所需文件。
圖2 基于云服務(wù)器的的密文搜索方案
服務(wù)器在整個(gè)過(guò)程是誠(chéng)實(shí)且好奇的,用戶在檢索前需要先向服務(wù)器支付服務(wù)費(fèi),服務(wù)器誠(chéng)實(shí)地執(zhí)行搜索任務(wù)并返回給用戶檢索結(jié)果。但是服務(wù)器返回的搜索結(jié)果有可能不正確,或者未能按照要求返回搜索結(jié)果,這時(shí)候就需要權(quán)威機(jī)構(gòu)進(jìn)行判定和仲裁,就算給用戶退回已經(jīng)支付的費(fèi)用,但是整個(gè)過(guò)程也是復(fù)雜和漫長(zhǎng)的,這對(duì)用戶是不公平的,這也是傳統(tǒng)基于第三方云服務(wù)器進(jìn)行密文的缺陷,研究帶有驗(yàn)證功能且保證各方利益的公平的的密文搜索方案顯得非常必要。
智能合約可以自動(dòng)執(zhí)行檢索、驗(yàn)證和支付功能[1-3],本文利用智能合約解決傳統(tǒng)密文搜索中的驗(yàn)證和公平支付問(wèn)題基于智能合約的密文搜索和公平支付方案包含五個(gè)角色:數(shù)據(jù)擁有者,服務(wù)器,用戶和智能合約。如圖3 所示,為了解決一對(duì)多搜索場(chǎng)景采用密鑰策略的屬性加密,數(shù)據(jù)擁有者可以在密文中預(yù)先設(shè)定訪問(wèn)策略,只有當(dāng)用戶的屬性集滿足訪問(wèn)策略才能得到解密密鑰,從而獲得通過(guò)智能合約搜索驗(yàn)證后的密文的原始密文。智能合約可以讀寫(xiě)存儲(chǔ)文件、給用戶或服務(wù)器發(fā)送消息、可以在合約賬戶中暫存押金、在合約賬戶暫存服務(wù)費(fèi)、在合約賬戶中暫存查詢費(fèi),智能合約可以對(duì)搜索結(jié)果進(jìn)行驗(yàn)證。
圖3 基于智能合約的密文搜索和公平支付方案框架圖
本文主要利用以太坊的去中心化、安全可靠和支持智能合約的特點(diǎn),保證用戶和服務(wù)器之間交易的公平性:第一,云服務(wù)器通過(guò)以太坊區(qū)塊鏈發(fā)布一筆交易來(lái)創(chuàng)建智能合約,利用智能合約暫存價(jià)值,搜索用戶需要提交搜索押金和進(jìn)一步的搜索服務(wù)費(fèi),服務(wù)器需要提交搜索查詢費(fèi),基于智能合約完成云服務(wù)器和用戶之間的搜索交易,若用戶在執(zhí)行搜索協(xié)議支取服務(wù)費(fèi)前有放棄行為智能合約將返還服務(wù)器的查詢費(fèi),同時(shí)將用戶的搜索押金一起發(fā)給服務(wù)器作為補(bǔ)償;第二,通過(guò)智能合約自動(dòng)驗(yàn)證服務(wù)器返回的搜索結(jié)果是否正確;第三,若服務(wù)器返回的搜索結(jié)果不正確,用戶可以從智能合約取回已支付的服務(wù)費(fèi)和搜索押金連同服務(wù)器的查詢費(fèi)一起作為補(bǔ)償,維護(hù)自己的權(quán)益,從而保證檢索的公平性[4-5]。
數(shù)據(jù)擁有者通過(guò)加密密鑰加密數(shù)據(jù)明文,得到密文C,同時(shí)提取明文關(guān)鍵詞集并生成索引I。然后把加密后的文件集合C連同索引I 存儲(chǔ)在云服務(wù)器上。只有屬性集和滿足數(shù)據(jù)擁有者事先設(shè)定好的訪問(wèn)策略的用戶才能從可信權(quán)威獲取密鑰K。
用戶對(duì)包含關(guān)鍵詞的文件進(jìn)行檢索,為關(guān)鍵詞生成陷門(mén)信息,把陷門(mén)信息發(fā)送給智能合約,同時(shí),為防止用戶中途率先終止檢索協(xié)議,用戶向智能合約支付押金。
服務(wù)器執(zhí)行檢索任務(wù),向智能合約請(qǐng)求陷門(mén)信息。為了防止服務(wù)器有任何欺騙檢索行為。服務(wù)器需要給智能合約支付查詢費(fèi),暫存于智能合約。智能合約收到查詢費(fèi)后返陷門(mén)給服務(wù)器,服務(wù)器根據(jù)陷門(mén)檢索,將檢索結(jié)果返回給智能合約。
用戶、服務(wù)器與智能合約交互請(qǐng)求檢索結(jié)果,用戶將服務(wù)費(fèi)暫存于智能合約。智能合約驗(yàn)證服務(wù)器返回的搜索結(jié)果是否正確,若正確,智能合約將查詢費(fèi)+服務(wù)費(fèi)轉(zhuǎn)移至服務(wù)器,將押金返回給用戶,并將檢索結(jié)果發(fā)給用戶;若不正確,智能合約將查詢費(fèi)+服務(wù)費(fèi)+押金轉(zhuǎn)移給用戶;若用戶中途放棄檢索任務(wù),智能合約將查詢費(fèi)+押金轉(zhuǎn)移給服務(wù)器。方案的流程圖如圖4 所示。
圖4 基于智能合約的密文搜索和公平支付流程圖
數(shù)據(jù)擁有者給云上放的是通過(guò)密文策略屬性加密的密文形式。數(shù)據(jù)擁有者可以在密文中預(yù)先設(shè)定訪問(wèn)策略,只有當(dāng)用戶的屬性集滿足訪問(wèn)策略才能得到解密密鑰,因此,文件的隱私性得到了保證。
方案中索引和關(guān)鍵詞陷門(mén)也都是經(jīng)過(guò)加密過(guò)的,云服務(wù)器不能從索引和陷門(mén)得到任何有用的信息。
本方案中,用戶把服務(wù)費(fèi)先暫存在智能合約上,服務(wù)器在執(zhí)行檢索任務(wù)前為了取得搜索陷門(mén)需要向智能合約支付查詢費(fèi),執(zhí)行檢索任務(wù)后,向智能合約返回檢索結(jié)果,智能合約自動(dòng)驗(yàn)證檢索結(jié)果是否正確,若正確,智能合約會(huì)把服務(wù)費(fèi)和查詢費(fèi)一起轉(zhuǎn)移到服務(wù)器的賬戶;若不正確,服務(wù)器得不到服務(wù)費(fèi),查詢費(fèi)將由智能支付給用戶。同時(shí),為了防止用戶中途放棄檢索任務(wù),單方面終止檢索協(xié)議,用戶請(qǐng)求檢索任務(wù)前需要給智能合約支付檢索押金,如果用戶誠(chéng)信的完成檢索流程,智能合約原額退回用戶檢索押金,否則,這筆檢索押金將由智能合約連同查詢費(fèi)一起支付給云服務(wù)器。這樣對(duì)服務(wù)器和用戶都有一定的約束作用,從而保證了檢索服務(wù)的公平性。