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

基于聯(lián)盟鏈的行程溯源校驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)分析

2023-05-09 05:03:47蔡超萍康曉鳳王可張百川王宇
軟件工程 2023年5期

蔡超萍 康曉鳳 王可 張百川 王宇

關(guān)鍵詞:區(qū)塊鏈;聯(lián)盟鏈;行程溯源;數(shù)字簽名

中圖分類號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:A

1 引言(Introduction)

行程碼對(duì)防控病毒傳播起到了至關(guān)重要的作用。一些不法分子惡意偽造行程碼,給疾病管控部門的傳染病防控工作帶來(lái)了巨大的困難,也給社會(huì)衛(wèi)生安全帶來(lái)了嚴(yán)重威脅。為了避免類似事件的發(fā)生,行程碼的數(shù)據(jù)防偽就成為行程溯源工作中亟待解決的問(wèn)題。

本系統(tǒng)通過(guò)提供請(qǐng)求者IP(Internet Protocol,網(wǎng)際互聯(lián)協(xié)議)位置的API(Application Programming Interface, 應(yīng)用程序編程接口),返回json格式的地理位置(精確到區(qū))信息,后端通過(guò)工具類JsonUtil處理此信息,再結(jié)合打卡時(shí)間和用戶姓名生成行程對(duì)象,行程對(duì)象上傳到區(qū)塊鏈后,根據(jù)返回的哈希值生成公鑰和私鑰,使用私鑰對(duì)json字符串加密,并把加密結(jié)果和公鑰寫入數(shù)字二維碼,達(dá)到防止偽造行程碼的目的。由于區(qū)塊鏈具有信息不可篡改的特點(diǎn),所以可以根據(jù)區(qū)塊的哈希值對(duì)用戶的行程溯源。Web應(yīng)用前后端分離,前端使用VUE和Element-UI技術(shù)實(shí)現(xiàn)圖形化用戶界面,后端使用Spring身份控制技術(shù)分離權(quán)限,同時(shí)采用ECDSA算法進(jìn)行簽名,實(shí)現(xiàn)防篡改和數(shù)據(jù)保護(hù)功能。對(duì)比RSA(Rivest-Shamir-Adleman)算法,ECDSA(Elliptic Curve Digital SignatureAlgorithm,橢圓曲線數(shù)字簽名算法)既保障了信息安全,又降低了算法復(fù)雜度[1]。

2 聯(lián)盟鏈和ECDSA簡(jiǎn)介(Introduction to consortiumblockchain and ECDSA)

聯(lián)盟鏈?zhǔn)且环N基于區(qū)塊鏈技術(shù)的分布式賬本技術(shù),也是一種特殊的區(qū)塊鏈[2],由一組受信任的參與者組成,能安全地共享數(shù)據(jù)和信息,同時(shí)具有如下優(yōu)勢(shì):可以防止未經(jīng)授權(quán)的訪問(wèn)和篡改,提供更高的安全性;可以減少交易的確認(rèn)時(shí)間,提供更快的交易速度;其成本相較于公共區(qū)塊鏈更低,能夠減少網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量,減少硬件需求;可以提供高擴(kuò)展性,支持更多的參與者和應(yīng)用程序。

ECDSA是一種基于橢圓曲線密碼學(xué)的數(shù)字簽名算法,也是一種公鑰密碼體制[3],用于確保數(shù)據(jù)的完整性和可靠性。ECDSA使用橢圓曲線算法生成公鑰和私鑰,其安全性取決于橢圓曲線的安全性即階的選擇,因?yàn)樗褂酶俚挠?jì)算量生成公鑰和私鑰,并且可以提供更高的安全性,所以安全性比RSA更高[3]。ECDSA的簽名過(guò)程非常簡(jiǎn)單,首先對(duì)消息進(jìn)行哈希計(jì)算,其次使用私鑰對(duì)哈希值加密形成簽名,最后使用公鑰對(duì)簽名進(jìn)行驗(yàn)證。

3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(System design and implementation)

本系統(tǒng)的核心技術(shù)為ECDSA算法和Hyperledger Fabric聯(lián)盟鏈技術(shù),核心模塊包括Web端和聯(lián)盟鏈。Web端分前后兩個(gè)部分,Web前端采用廣泛使用的JavaScript庫(kù)VUE3結(jié)合Element-UI構(gòu)建網(wǎng)頁(yè),后端采用Spring-Boot搭建控制層,并采用Redis緩存數(shù)據(jù)。聯(lián)盟鏈部分在前端加載FabricClient庫(kù)與Fabric Ca Client,通過(guò)RPC(Remote ProcedureCall,遠(yuǎn)程過(guò)程調(diào)用協(xié)議)服務(wù)與另一臺(tái)服務(wù)器上的聯(lián)盟鏈的Order和Peer節(jié)點(diǎn)進(jìn)行通信,并在本地SQL(Structured QueryLanguage)數(shù)據(jù)庫(kù)保存一份與上傳數(shù)據(jù)相同的備份[4]。綜合使用以上技術(shù)設(shè)計(jì)實(shí)現(xiàn)了本系統(tǒng),包括用戶管理、行程生成、行程校驗(yàn)和行程溯源四大模塊,系統(tǒng)模塊如圖1所示。

3.1 用戶管理模塊

本系統(tǒng)沒(méi)有直接提供注冊(cè)功能,通過(guò)直接添加數(shù)據(jù)庫(kù)的特權(quán)用戶分別管理低級(jí)權(quán)限的用戶。在Spring中使用@PreAuthorize注解控制用戶權(quán)限[5],規(guī)定只有擁有某項(xiàng)權(quán)限的用戶才可以調(diào)用某項(xiàng)函數(shù)。Spring Security的訪問(wèn)控制原理是基于角色的訪問(wèn)控制(Role-Based Access Control,RBAC),它將用戶分配到不同的角色,并為每個(gè)角色分配不同的權(quán)限,從而實(shí)現(xiàn)訪問(wèn)控制。同時(shí),在目錄API中定義后端Controller層中對(duì)應(yīng)的響應(yīng)所需的路由,在后端使用@RequestController等注解指定相應(yīng)的方法。在SQL數(shù)據(jù)庫(kù)創(chuàng)建用戶時(shí),使用role字段賦予操作函數(shù)的具體權(quán)限,在具體函數(shù)中為超級(jí)管理員添加對(duì)用戶進(jìn)行“增、刪、改、查”的權(quán)限,具體實(shí)現(xiàn)界面如圖2所示,超級(jí)管理員可以管理普通用戶。

3.2 行程生成模塊

Web端的前端使用VUE加載地圖插件vue-amap,并且向百度、高德、谷歌等廠商申請(qǐng)用于定位API所需的密鑰,如圖3所示。本系統(tǒng)在前端使用Axois技術(shù)通過(guò)用戶IP向路由請(qǐng)求獲取地理位置,邏輯代碼再根據(jù)地理位置信息生成行程對(duì)象,通過(guò)工具類TimeToString獲得實(shí)時(shí)時(shí)間寫入行程對(duì)象,前端通過(guò)文本框獲取用戶輸入的姓名等詳細(xì)信息,并返回給后端寫入對(duì)象,再將數(shù)據(jù)寫入Peer節(jié)點(diǎn)。本系統(tǒng)有兩個(gè)Peer節(jié)點(diǎn),一個(gè)用于存儲(chǔ)地址的隨機(jī)編號(hào),另一個(gè)用于存儲(chǔ)用戶的行程信息。Hyperledger Fabric提供了兩種創(chuàng)建數(shù)據(jù)庫(kù)的選擇,即goleveldb(默認(rèn))與CouchDB,本系統(tǒng)使用-s參數(shù)創(chuàng)建了兩個(gè)CouchDB數(shù)據(jù)庫(kù)。

Hyperledger Fabric架構(gòu)的通信過(guò)程如圖4所示,應(yīng)用向CA(Certificate Authority,證書授權(quán))服務(wù)器發(fā)起注冊(cè),在提交行程的業(yè)務(wù)流程中向Peer節(jié)點(diǎn)發(fā)出提交交易的申請(qǐng),同時(shí)Orderer節(jié)點(diǎn)對(duì)交易進(jìn)行排序。區(qū)塊鏈采用Docker搭建,通過(guò)編寫配置文件生成證書等文件,創(chuàng)建TraceChannel通道,在服務(wù)器中開放17051端口為交互式CLI(Command Line Interface,命令行接口),開放17050端口為Order節(jié)點(diǎn),開放兩個(gè)數(shù)據(jù)庫(kù)端口為Peer節(jié)點(diǎn)的交互接口,具體端口與節(jié)點(diǎn)域名如圖5所示。系統(tǒng)采用Go語(yǔ)言編寫鏈碼,完成后將部署智能合約部署到聯(lián)盟鏈,使用Hyperledger Fabric shim包實(shí)現(xiàn)鏈上數(shù)據(jù)的“增、刪、改、查”業(yè)務(wù),由于區(qū)塊鏈具有防篡改特性,因此此業(yè)務(wù)并不是真實(shí)意義上的“增、刪、改”操作,而是覆寫。

3.3 行程校驗(yàn)?zāi)K

行程校驗(yàn)部分的主要算法為ECDSA公鑰簽名算法[6]。ECDSA是基于橢圓曲線上的離散對(duì)數(shù)問(wèn)題, 可分解為EC( Elliptic Curve,橢圓曲線) 上的DSA(DigitalSignature Algorithm, 數(shù)字簽名算法)問(wèn)題。在本系統(tǒng)中,主要采用基于蒙哥馬利曲線的一種橢圓曲線加密算法,即secp256r1[7]。該算法利用蒙哥馬利曲線的特性實(shí)現(xiàn)安全加密,從而保護(hù)數(shù)據(jù)的安全性。Web端的后端定義了HEX編碼、ECDSA簽名、json處理、QRCode生成等工具類,并在控制類的邏輯代碼中直接調(diào)用,降低了代碼復(fù)用率。在ECDSA工具類中,系統(tǒng)利用java.security包中的KeyPairGenerator類獲得的實(shí)體與隨機(jī)數(shù)生成方法SecureRandom生成的隨機(jī)數(shù)一起生成密鑰對(duì),其中私鑰用于簽名,公鑰用于驗(yàn)證簽名[8]。將簽名所生成的哈希值寫入行程對(duì)象的屬性,并重寫toString方法,將對(duì)象轉(zhuǎn)換成json格式之后寫入QRCode(QuickResponseCode,快速響應(yīng)碼),QRCode的內(nèi)容如圖6所示。生成的QRCode保存在D own l o a d目錄中,前端可以通過(guò)請(qǐng)求/Download路由調(diào)用后臺(tái)的Download方法下載二維碼。雖然行程碼中的明文信息可以偽造,但是目前的計(jì)算能力還無(wú)法偽造數(shù)字簽名。

本系統(tǒng)支持用戶上傳行程碼,大型企業(yè)機(jī)構(gòu)可以通過(guò)上傳ZIP壓縮文件的方式批量校驗(yàn)行程碼。Web應(yīng)用的前端使用Axios與后端Java程序進(jìn)行交互,實(shí)現(xiàn)文件上傳、行程新增等功能。Web端的后端接收到上傳文件后,通過(guò)文件類型調(diào)用重載的兩個(gè)analyse函數(shù)。ZIP文件解壓后,將文件名存入數(shù)組,再利用循環(huán)調(diào)用校驗(yàn)函數(shù)調(diào)用QRCode中的analyseQR方法返回二維碼的具體信息。系統(tǒng)會(huì)將其反序列化還原為對(duì)象,并根據(jù)對(duì)象的時(shí)間、姓名與編號(hào)等屬性在數(shù)據(jù)庫(kù)內(nèi)綜合查詢得到私鑰[9],然后調(diào)用ECDSA工具類中的verifyECDSA進(jìn)行檢驗(yàn)簽名,ECDSA驗(yàn)簽邏輯如圖7所示,驗(yàn)簽的結(jié)果以布爾值的形式通過(guò)/verify路由響應(yīng)給Web應(yīng)用的前端進(jìn)行判斷,并以彈窗的形式返回校驗(yàn)結(jié)果。

3.4 行程溯源模塊

本系統(tǒng)使用Hyperledger Fabric在服務(wù)端搭建區(qū)塊鏈,使用kafka共識(shí)機(jī)制,提高容錯(cuò)能力[10],共識(shí)模式如圖8所示。首先使用Fabric框架生成網(wǎng)絡(luò)證書與節(jié)點(diǎn)證書,證書包括網(wǎng)絡(luò)連接使用的TLS(Transport Layer Security, 傳輸層安全性協(xié)議)證書與用于用戶鑒權(quán)的CA證書,其中TLS證書也會(huì)被fabric-ca-client使用,然后使用CA創(chuàng)建授權(quán)用戶身份與成員關(guān)系服務(wù)提供者M(jìn)SP(Membership Service Providers)。使用TLS證書與MSP配置Peer和Order節(jié)點(diǎn)信息,Peer節(jié)點(diǎn)既可以保存并驗(yàn)證賬本,又能運(yùn)行智能合約,實(shí)現(xiàn)業(yè)務(wù)邏輯;Order節(jié)點(diǎn)用于驗(yàn)證交易并在驗(yàn)證成功之后提交交易至賬本。本系統(tǒng)中的數(shù)據(jù)庫(kù)為couchDB,couchDB可以對(duì)json數(shù)據(jù)進(jìn)行富文本查詢,使用Fabric2.4編寫鏈碼,在區(qū)塊鏈中將鏈碼作為外部服務(wù),添加索引到鏈碼之后啟動(dòng)網(wǎng)絡(luò),創(chuàng)建通道后啟動(dòng)鏈碼。

4 結(jié)論(Conclusion)

在科技飛速發(fā)展的今天,使用區(qū)塊鏈技術(shù)可以為生物醫(yī)學(xué)研究提供一個(gè)安全的、去中心化的數(shù)據(jù)存儲(chǔ)和共享平臺(tái),促進(jìn)傳染病的研究與防治。使用行程碼幫助傳染病溯源工作精確定位患者,降低了病毒的傳染速度與規(guī)模,但惡意偽造行程碼的開源項(xiàng)目給溯源工作的開展造成了巨大的困難。本系統(tǒng)采用Hyperledger Fabric聯(lián)盟鏈技術(shù)與ECDSA公鑰簽名算法結(jié)合傳統(tǒng)的JavaWeb技術(shù)實(shí)現(xiàn)了權(quán)限管理、區(qū)塊溯源、數(shù)字簽名等功能,同時(shí)具有行程溯源和校驗(yàn)的功能,使用本系統(tǒng)可以有效預(yù)防行程碼的偽造行為。

作者簡(jiǎn)介:

蔡超萍(2002-),女,本科生.研究領(lǐng)域:信息安全.

康曉鳳(1978-),女,碩士,副教授.研究領(lǐng)域:信息安全.

王可(2001-),男,本科生.研究領(lǐng)域:信息安全.

張百川(2002-),男,本科生.研究領(lǐng)域:信息安全.

王宇(2003-),男,本科生.研究領(lǐng)域:信息安全.

主站蜘蛛池模板: 亚洲精品色AV无码看| 色婷婷在线影院| 久久视精品| 天天激情综合| 白浆免费视频国产精品视频| 国产一区二区三区夜色| 一级黄色网站在线免费看| 亚洲首页在线观看| 亚洲国产成人在线| 国产日韩欧美中文| 98精品全国免费观看视频| 91在线精品免费免费播放| 国内丰满少妇猛烈精品播| 亚洲无码免费黄色网址| 国产成人精品视频一区视频二区| 亚洲欧美成aⅴ人在线观看| 免费女人18毛片a级毛片视频| 久久综合色天堂av| 亚洲人成网18禁| 国产视频你懂得| 国产欧美精品一区二区| 精品久久久久久中文字幕女| 国产99视频精品免费视频7| 久久精品人妻中文系列| 欧美日韩在线成人| 国产免费人成视频网| 婷婷激情五月网| 欧美一级大片在线观看| 国产成人综合日韩精品无码不卡| av手机版在线播放| 免费人成网站在线观看欧美| 久久99热66这里只有精品一| 国精品91人妻无码一区二区三区| 97视频在线观看免费视频| 成人午夜视频免费看欧美| 色网站在线视频| 国产中文在线亚洲精品官网| 亚洲成人一区在线| 国产成人资源| аⅴ资源中文在线天堂| 色噜噜久久| 亚洲色图欧美视频| 精品亚洲国产成人AV| 国产成人喷潮在线观看| AV无码无在线观看免费| 少妇精品在线| 精品人妻无码区在线视频| 国产精品美女在线| 999精品免费视频| 亚洲精品免费网站| 久久毛片免费基地| 欧美成人二区| 精品一区二区无码av| 亚洲va欧美va国产综合下载| 精品天海翼一区二区| 无码'专区第一页| 18禁高潮出水呻吟娇喘蜜芽| 91成人在线免费观看| 婷婷色一区二区三区| 欧美日韩中文字幕在线| 欧美日韩精品综合在线一区| 亚洲欧洲一区二区三区| 天堂中文在线资源| 18禁黄无遮挡免费动漫网站| 亚洲国产综合自在线另类| 日韩午夜伦| 岛国精品一区免费视频在线观看| 日韩一区精品视频一区二区| 制服丝袜无码每日更新| 玖玖精品视频在线观看| 精品人妻系列无码专区久久| 日本草草视频在线观看| 女人18一级毛片免费观看| 国产又色又刺激高潮免费看| 黄色国产在线| 欧美国产菊爆免费观看| 中文字幕永久视频| 五月婷婷伊人网| 日韩无码白| 亚洲综合极品香蕉久久网| 欧美人与性动交a欧美精品| 欧洲av毛片|