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

Hyperledger Fabric平臺的國密算法嵌入研究

2021-02-26 12:46:28曹琪阮樹驊陳興蜀蘭曉張紅霞金泓鍵
網絡與信息安全學報 2021年1期

曹琪,阮樹驊,陳興蜀,蘭曉,張紅霞,金泓鍵

Hyperledger Fabric平臺的國密算法嵌入研究

曹琪,阮樹驊,陳興蜀,蘭曉,張紅霞,金泓鍵

(1. 四川大學網絡空間安全學院,四川 成都 610065;2. 四川大學網絡空間安全研究院,四川 成都 610065)

Hyperledger Fabric是為企業級商用區塊鏈項目提供支撐的且可擴展的聯盟鏈平臺,密碼算法為該平臺的核心,保證上鏈數據的安全和不可篡改,但原始Fabric平臺缺乏對國密算法的支持。因此,設計并實現了Fabric平臺的國密算法的嵌入和支持。首先,通過分析Fabric平臺中組件間交互邏輯和密碼算法的調用場景,提出了在該平臺嵌入國密支持的設計思路;其次,基于同濟開源國密實現源碼,為Fabric平臺BCCSP添加SM2、SM3和SM4算法模塊與接口;再次,將Fabric平臺的各組件上層應用的密碼算法調用接口與對應國密算法接口相關聯,實現上層應用對國密算法調用的支持;最后,通過創建fabric-gm聯盟鏈測試實例驗證Fabric平臺中嵌入的國密算法模塊和接口的正確性及有效性,并與原生Fabric平臺鏡像構建的測試實例進行了性能比較。實驗結果表明,嵌入的國密算法模塊和接口可用、正確且生成的國密證書有效,與原生Fabric平臺鏡像相比,網絡啟動時間增加3%,毫秒級單位下的交易時間開銷增加1倍,動態證書生成時間增加9%,各項性能指標均在可接受范圍內。

區塊鏈;Hyperledger Fabric;SM2;SM3;SM4

1 引言

Hyperledger Fabric[1](簡稱Fabric平臺)是由IBM牽頭、旨在為企業級商用區塊鏈應用場景打造的許可分布式賬本支撐平臺,也是目前聯盟鏈[2]的典型代表。在克服了公有鏈吞吐量低[3]、交易公開而導致的無隱私性和私有鏈[4]的強中心化等問題的同時,它以模塊化和可插拔的特性,可向上提供高度的機密性、靈活性及可擴展性[5],使Fabric平臺滿足廣泛行業的商業應用訴求。密碼技術是Fabric平臺實現的核心技術之一,是Fabric上層應用開發的基礎支撐技術。基于密碼技術,Fabric實現了一種基于證書的身份管理與一種“執行?排序?驗證”并行執行的新交易模式,保證了對鏈上的每一步操作進行嚴格的身份與權限驗證,進而保證該平臺上數據的安全與不可篡改。但目前原生的Fabric平臺僅支持通用的國際密碼算法,缺乏對國家密碼算法(簡稱國密算法)支持。同時,我國政府在技術監管和自主可控方面對從事區塊鏈系統建設、服務運營的機構提出了國密算法規范要求[6],因此,將我國自主研發的國產密碼算法嵌入Fabric平臺顯得尤為必要。

目前,已有國內學者或機構主要針對Hyperledger Fabric 1.0開展了SM2[7-8]、SM3[9-10]等國密算法的嵌入工作。其中,具有代表性的是蘇州同濟區塊鏈研究院[11]開源的Fabric 1.0的國密嵌入代碼。在此基礎上,張青禾[12]基于支持國密的Fabric1.0提出了一種隱私保護方案。張夢一[13]基于支持國密的Fabric1.0實現了一種通用積分管理系統。但上述工作僅針對Fabric平臺的部分組件進行了針對性應用的國密嵌入支持,不具有通用性,且未實現整個平臺的國密算法支持,無法支持廣泛的商用應用。

本文通過分析Fabric平臺組件間交互邏輯與密碼算法的調用場景,提出了Fabric平臺國密算法嵌入的設計思路,對Fabric平臺核心組件區塊鏈密碼服務提供者[1](BCCSP,blockchain cryptographic service provider)嵌入國密SM2、SM3及SM4[14]算法模塊與接口,并將Fabric平臺各組件的上層密碼調用關聯到國密算法接口,進而實現了Fabric平臺的國密算法支持。

2 相關工作

2.1 Fabric平臺架構及組件間交互邏輯

Fabric平臺由Fabric聯盟鏈網絡[15]、Fabric-CA[16]以及Fabric-SDK[17]3部分組成,組件間交互邏輯如圖1所示,展示了Fabric聯盟鏈網絡典型的交易流程。

1) Fabric聯盟鏈網絡[1,15]是Fabric平臺的核心組成部分,依賴于底層密碼算法為上鏈數據提供不可篡改等特性。

2) Fabric-CA[16]是Fabric平臺的證書頒發機構,用于網絡成員身份證書的動態管理,包括證書的動態頒發與吊銷等。

圖1 Fabric平臺組件間交互邏輯圖

Figure 1 The interaction logic between components in the Fabric

3) Fabric-SDK[17]是為開發人員編寫和測試鏈碼應用程序提供的一個結構化、可配置的庫環境,并作為Fabric平臺的客戶端。

從圖1可以看出,Fabric-SDK向Fabric-CA進行網絡成員動態身份證書的注冊,并向Fabric聯盟鏈網絡發起交易等操作。在交易處理的每個環節上都會進行簽名驗簽操作,并對交易信息進行權限與格式檢查,需要大量調用密碼算法。因此,為了實現Fabric平臺對國密算法的支持,需要分別實現Fabric聯盟鏈網絡、Fabric-CA及Fabric-SDK對國密算法的支持。

這里需要強調的是關于網絡成員身份證書的動態管理問題,Fabric本身維護了一個在網絡啟動時用于靜態生成節點證書的二進制證書生成工具cryptogen,通過該工具可生成各節點證書,從而實現對任何上鏈操作的身份驗證,但是在系統要求動態添加節點用戶時,該方式存在反復修改配置文件并重啟網絡更新配置的問題。故在實際應用中,可使用Fabric-CA代替cryptogen證書生成方式,實現動態管理Fabric聯盟鏈網絡中節點身份證書,進而為Fabric平臺提供可動態頒發與吊銷的動態成員管理功能。

2.2 Fabric聯盟鏈網絡的安全與密碼服務

Fabric聯盟鏈網絡技術架構如圖2所示,與本文研究工作關系最為密切的是區塊鏈密碼服務提供者BCCSP[1]模塊,基于BCCSP可實現Fabric聯盟鏈網絡共同的安全與密碼服務,為上層應用提供安全的、可插拔的成員身份管理(MSP,membership service provider)、共識服務和鏈碼服務[18]。

圖2 Fabric聯盟鏈網絡技術架構

Figure 2 The technology architecture of the Fabric alliance chain network

BCCSP模塊封裝了基于軟件實現的SW和基于硬件實現的PCAS11兩類BCCSP實例,每類實例提供包括密鑰的生命周期管理、哈希、簽名驗證及加解密等4大類功能接口供上層服務調用。BCCSP模塊支持的密碼算法主要有哈希密碼算法、對稱密碼算法和非對稱密碼算法3類,各類密碼算法支持的應用場景如圖3所示,可通過CSP選項來指定BCCSP選取的實例,如國密算法實例,從而為上層應用提供相應的國密算法調用的支持。為了在Fabric聯盟鏈網絡中嵌入國密支持,首先需要在BCCSP底層實現中嵌入基于國密的BCCSP實例,并提供國密SM3、SM2和SM4的功能接口,其次需要將上層應用的密碼算法調用接口與國密接口關聯,從而最終實現基于國密的Fabric聯盟鏈網絡共同的安全與密碼服務。

圖3 Fabric平臺支持的密碼算法及使用場景

Figure 3 Cryptographic algorithms support and usage scenarios in the Fabric

3 Fabric平臺國密算法嵌入設計思路

本文將嵌入了國密支持的Fabric平臺稱為Fabric-gm,具體的Fabric-gm平臺實現過程同時考慮了Fabric-gm聯盟鏈網絡、Fabric-CA-gm和Fabric-SDK-gm三類組件的國密嵌入實現,國密算法嵌入設計思路如圖4所示,主要工作有以下4個部分。

圖4 Fabric平臺國密算法嵌入設計思路

Figure 4 The embedding scheme of the GM in the Fabric

1) 基于Go標準的底層國密算法嵌入:可依據SM系列國密算法的標準規范文件,設計并實現基于Go標準的國密算法,包括常用的加解密算法(SM4、SM2)、哈希算法(SM3)以及簽名驗簽算法(SM2)等。在這部分工作中,本文對開源實現(指同濟區塊鏈研究院對國密SM2、SM3和SM4算法的開源實現)的底層國密算法實例[19]進行了正確性驗證,并在BCCSP模塊的國密實例中采用了該算法實例。

2) BCCSP模塊的國密算法接口嵌入:分別在BCCSP模塊的哈希算法子模塊、對稱密碼算法子模塊和非對稱密碼算法子模塊下,添加相關的國密SM3模塊、SM4模塊和SM2模塊的調用接口。

3) 上層應用的國密算法接口嵌入:在上層程序與應用中,添加相關的國密算法接口調用,將原哈希、簽名驗簽等密碼算法接口與國密SM3、SM2算法接口關聯,以實現上層應用對國密算法調用的支持。

4) 對嵌入國密算法及相關調用接口后的Fabric平臺源碼進行編譯,形成支持國密算法的可執行文件,并打包成Fabric-gm鏡像文件,部署支持國密算法的Fabric-gm平臺,通過基于國密接口的加解密、簽名驗簽及哈希對比等實驗驗證所嵌入的國密算法的正確性、可用性和有效性。

4 Fabric平臺國密算法嵌入實現

4.1 Fabric聯盟鏈網絡國密算法嵌入實現

4.1.1 BCCSP國密算法相關接口實現

Fabric聯盟鏈網絡BCCSP模塊國密算法相關接口實現如圖5所示。將基于同濟實現的底層國密算法GMSM代碼封裝成支持國密算法的BCCSP實例,即在CSP選項添加GM軟件實現選項并在該選項下添加bccsp-gm實例,提供SM2非對稱加密算法選項(用于數字簽名及驗證)、SM3哈希算法選項、SM4對稱加密算法選項以及與X.509證書相關的各類國密算法與服務支持的接口,如圖5所示。特別地,國密證書生成和國密證書與密鑰轉換接口,不僅提供了已封裝的國密證書生成接口,還提供了將X.509證書和密鑰轉換成SM2國密證書和密鑰的接口。

4.1.2 Fabric聯盟鏈網絡上層應用國密算法調用支持

Fabric聯盟鏈網絡上層應用的國密算法支持主要分為網絡啟動過程和交易流程的國密算法調用支持兩個部分。

網絡啟動過程要求證書生成工具cryptogen能夠為對應的網絡節點生成國密身份證書與密鑰。因此,相關的國密算法調用支持主要包括以下內容:

圖5 BCCSP國密算法接口實現示意

Figure 5 The GM interface implementation for BCCSP

1) 修改example和sampleconfig文件下的網絡結構配置參數,保證其BCCSP實例指向BCCSP-gm實例;

2) 修改common文件下CA結構體、證書生成與加載及MSP證書鏈,保證能夠生成支持國密的cryptogen,進而為各網絡節點生成對應的國密身份證書與密鑰。

交易流程要求對一次完整交易中涉及的交易發起、執行、不同類型網絡節點簽名與驗簽、通道管理、賬本管理、區塊生成、基于Gossip的區塊分發、鏈碼調用等處理操作都進行基于國密的身份與權限驗證。因此,相關的國密算法調用支持主要包括以下內容。

1) Common模塊:在channel.go中添加國密SM3算法的調用支持,在csp.go中添加SM2的密鑰獲取方法,保證默認密鑰加載選項指向國密SM2接口。

2) Core模塊:在server.go中添加國密X.509格式的證書解析方法。

3) MSP模塊:在cert.go中添加國密X.509格式的證書反序列化方法,在identities.go添加指向SM3哈希算法的實現。

4) Common、Core、MSP、Peer、Orderer、Gossip等模塊的密碼算法調用修改指向bccsp-gm提供的國密接口,從而實現各上層應用的國密算法調用支持。

將4.1.1節和4.1.2節修改后的源碼重新編譯,生成支持國密的二進制文件,并打包生成用于環境部署的Fabric-gm鏡像文件,從而實現國密支持嵌入。

4.2 Fabric-CA國密算法嵌入實現

4.2.1 Fabric-CA的國密算法接口實現

首先,在Fabric-CA組件的lib文件下添加國密CA驗證方法,新添gmca.go文件,該文件封裝了基于國密算法的簽名、證書生成、證書請求與轉換等國密GM實現方法與接口。

同時,修改Fabric-CA客戶端和服務端的config.go配置文件的BCCSP的default和CSR選項字段需要指向國密GM實例和新國密接口。

此外,在Fabric-CA組件中的util文件下添加基于國密算法的證書與密鑰管理方法,添加的方法如圖6所示,并修改令牌創建與驗證代碼,為Fabric-CA上層應用對國密算法接口的調用提供支持。

圖6 fabric-CA組件下util文件新添方法示意

Figure 6 The new methods added to the util file

4.2.2 Fabric-CA上層應用國密算法調用支持

Fabric-CA動態證書申請流程如圖7所示,上層應用的國密算法調用支持主要包括以下4個階段。

圖7 Fabric-CA動態證書申請流程

Figure 7 The flowchart of dynamic certificate application for the Fabric-CA

1) Fabric-CA服務器初始化啟動階段的國密算法調用支持。

2) Enroll(注冊)管理員注冊階段的國密算法調用支持。

3) Register(用戶登記)階段的國密算法調用支持。

4) Enroll(注冊)普通用戶注冊階段的國密算法調用支持。

Fabric-CA服務器初始化啟動階段國密調用流程如圖8所示,圖上虛線箭頭表示間接調用,實線箭頭表示直接調用,灰色背景部分為新添的國密算法調用支持,以CA服務器初始化部分為例,通過修改證書有效性檢測、根密鑰生成以及添加CA部分調用的接口或方法,可實現將該CA指向BCCSP-gm及新添的國密證書與密鑰處理方法,進而實現該部分對國密算法的調用支持。通過對注冊處理程序和監聽與服務部分進行類似的操作,最終可實現該階段的國密調用支持。

Enroll(注冊)階段的國密算法調用流程如圖9的Enroll操作部分所示,該階段主要涉及管理員注冊和用戶注冊。因此,該階段的操作主要有:①實例化支持國密的Fabric-CA客戶端;②修改CSR的生成代碼和基于MSP的證書存儲代碼;③修改圖9中注冊階段所涉及的函數以及相關函數中的子調用,添加對國密算法相關接口的調用,從而實現對國密密鑰/證書請求與生成的支持。

圖8 Fabric-CA服務器初始化啟動階段的國密調用流程

Figure 8 The invoking flowchart of the GM during the Fabric-CA initial phase

圖9 Enroll與Register國密調用流程

Figure 9 The invoking flowchart of the GM during the enroll and register phase

Register(用戶登記)階段的國密算法調用流程如圖9的Register操作部分所示,該階段僅在管理員身份驗證部分存在密碼算法的調用,因此,直接修改圖9中Register操作下調用函數及其子調用,添加對國密算法相關接口的調用,就能夠實現基于國密的通信憑證token創建、簽名及證書驗證等操作。

5 功能測試與性能分析

本文所有實驗均在虛擬化環境下進行。宿主機配置:Win10 x86_64、Intel Core i5-8400 CPU @ 2.80 GHz 2.81 GHz。虛擬機配置:Ubuntu 16.04.05 x86_64,CPU可用核數為1,內存4 GB。

5.1 Fabric聯盟鏈網絡國密算法嵌入實現

5.1.1 國密算法接口測試

國密算法接口測試對Fabric-gm平臺上BCCSP下添加的國密SM3、SM4及SM2接口的可用性和有效性進行評估,測試實驗如下。

(1)SM3哈希算法接口測試

首先,進行Fabric-gm平臺上SM3哈希算法接口調用可用性驗證,驗證上層應用調用的哈希算法指向國密SM3哈希算法接口。圖10的長方形框內顯示了Fabric-gm平臺默認的哈希選項為國密SM3哈希算法接口,即Fabric-gm平臺上層應用調用的哈希算法指向了國密SM3哈希算法接口,使用國密SM3哈希算法進行簽名驗簽及標識ID值計算等操作過程。

圖10 Fabric-gm上的SM3哈希接口調用可用性驗證

Figure 10 The verification of usability for SM3 interface

其次,進行Fabric-gm平臺上SM3哈希算法接口有效性驗證,驗證上層應用調用的國密SM3哈希算法計算的正確性。將測試消息設定為“Hello World”,分別使用GmSSL[20]函數庫和Fabric-gm平臺的SM3哈希算法接口計算測試消息的哈希值,比較計算結果。圖11(a)為基于GmSSL的SM3哈希函數計算得到的結果,圖11(b)為基于Go test測試調用BCCSP下哈希算法接口的哈希計算結果,由計算結果可知,兩者對同一測試消息計算的哈希結果一致,因此,Fabric-gm平臺的SM3哈希算法接口是可用且有效的,可被正確使用。

圖11 Fabric-gm上的SM3哈希接口有效性驗證

Figure 11 The verification of validity for SM3 in the Fabric-gm

(2)SM4算法接口測試

驗證Fabric-gm平臺上BCCSP下添加的國密SM4算法接口的可用性和有效性。調用BCCSP下的KeyGen接口生成SM4算法密鑰,再調用SM4的Encrypt接口和Decrypt接口進行數據的加解密操作。測試結果如圖12所示,首先,SM4密鑰生成成功,其次,基于該SM4密鑰對明文數據進行加解密操作,解密后數據與明文數據一致,因此,驗證了Fabric-gm平臺的SM4算法相關接口是可用且有效的,可被正確使用。

圖12 Fabric-gm/BCCSP上的SM4算法接口可用性和有效性驗證結果

Figure 12 The verification of availability and validity for SM4 in the Fabric-gm/BCCSP

(3)SM2算法接口測試

驗證Fabric-gm平臺上BCCSP下添加的國密SM2算法接口的可用性和有效性。調用BCCSP下KeyGen生成SM2算法密鑰,再調用signGMSM2和verifyGMSM2接口進行簽名驗簽操作。測試結果如圖13所示,簽名過程中的值與驗簽過程中的值相等,表明BCCSP下SM2算法相關接口被成功使用,因此,驗證了Fabric-gm平臺的SM2算法相關接口是可用且有效的,可被正確使用。

圖13 Fabric-gm/BCCSP上的SM2算法接口有用性和有效性驗證結果

Figure 13 The verification of availability and validity for SM2 in the Fabric-gm/BCCSP

5.1.2 國密算法證書有效性測試

測試驗證是否能夠成功生成國密證書,包含兩方面的內容。

(1)證書生成工具cryptogen對國密算法支持的驗證

如圖14所示,證書生成工具cryptogen中的簽名與哈希算法分別指向SM2和SM3算法,表明基于cryptogen工具生成節點證書的Fabric-gm聯盟鏈網絡實現了對國密證書生成操作的支持。

圖14 fabric-gm/cryptogen支持國密證書生成

Figure 14 The GM certificate in the fabric-gm/cryptogen

(2)Fabric-CA-gm動態證書生成測試

在Fabric-CA-gm容器內,首先,通過fabric-ca-client命令注冊名為JimTest新用戶;其次,將該新用戶的證書信息復制至容器外,利用Gmssl命令展示此證書信息。如圖15所示,該證書的簽名與哈希算法指向國密SM2和SM3算法,表明Fabric-CA-gm實現了對國密動態證書生成操作的支持。

綜上所述,Fabric-gm和Fabric-CA-gm基于國密算法的證書鏈成功建立。

圖15 Fabric-CA-gm支持國密證書生成

Figure 15 The GM certificate supported by the Fabric-CA-gm

5.1.3 Fabric-gm聯盟鏈測試網絡正常啟動驗證

通過命令./byfn.sh up -a依次執行Fabric-gm聯盟鏈測試網絡啟動時的節點容器(包括CA容器)創建、節點密鑰證書生成驗證、鏈碼實例化及一次完整的交易等過程。執行結果如圖16所示,表明Fabric-gm聯盟鏈測試網絡能夠正常啟動。

圖16 Fabric-gm聯盟鏈測試網絡正常啟動驗證

Figure 16 The normal startup verification for the Fabric-gm testing network

5.2 國密嵌入性能對比測試

5.2.1 系統時間開銷對比測試

基于聯盟鏈測試網絡啟動時間探索系統時間開銷在國密嵌入前后的變化。

聯盟鏈測試網絡啟動時間定義:從byfn.sh開始執行開始,經歷證書生成、容器創建、通道創建、節點配置以及鏈碼安裝實例化等過程,直至完成一次鏈碼查詢為止,被稱為聯盟鏈測試網絡的啟動時間。

在虛擬環境下分別部署基于國密算法的Fabric-gm平臺和原生Fabric平臺開發環境,保證兩種環境下聯盟鏈測試網絡的結構配置信息和鏈碼不變。基于每種環境重復啟動聯盟鏈測試網絡10次,求均值。測試結果顯示:① Fabric-gm環境下的聯盟鏈測試網絡啟動時間均值為109.6 s;②原生Fabric環境下聯盟鏈測試網絡啟動時間均值為106.1s。綜上,Fabric-gm平臺環境下聯盟鏈測試網絡的啟動時間相較于原生Fabric平臺環境下增加3%,因此,Fabric-gm平臺的系統時間開銷在可接受范圍內。

5.2.2 系統運算性能開銷對比測試

SM2和SM3算法主要用于Fabric-gm平臺中的交易發起、執行和證書生成階段,因此,基于SDK客戶端發起交易與證書動態生成時間來探索系統運算性能開銷在國密嵌入前后的變化。針對同樣的交易內容和用戶證書信息進行時間開銷測試,每項測試各進行1 000次,分別求得測試均值,測試結果如表1所示,Fabric-gm平臺相較于原生Fabric平臺其平均交易時間開銷增加1倍,管理員用戶證書動態生成時間增加10%,普通用戶證書動態生成時間增加8%,平均動態證書生成時間增加9%,但增加的時間量級為毫秒級,因此,Fabric-gm平臺的運算性能開銷在可接受范圍內。

表1 系統運算性能開銷結果

5.2.3 系統性能影響原因分析

支持國密的Fabric-gm平臺性能提升或減損可能的原因有以下兩方面:① SM2和SM3國密算法效率本身與對應的ECDSA和SHA256算法效率存在差異;② 不同版本的SM2和SM3國密算法實現存在算法效率差異。

Fabric平臺原生密碼算法與同濟實現的國密算法的效率對比分析實驗結果如圖17所示,分析有如下發現。

圖17 密碼算法時間開銷對比

Figure 17 The comparison of cryptographic algorithm time overhead

1) 各密碼算法簽名、驗簽以及哈希操作的時間開銷基本保持在毫秒級。

2) 圖17(a)表明,在基于ECDSA和SM2的不同字節數規模的數據的簽名驗簽實驗中,兩者的時間開銷均不隨著字節數的增加而增加;基于SM2簽名操作的效率優于ECDSA簽名,但ECDSA的驗簽操作效率略高于SM2的驗簽操作。

3) 圖17(b)表明,SM3和SHA256哈希操作時間開銷均隨著字節數的增加而近線性增長,SM3時間開銷高于SHA256,同等條件下,SM3哈希時間開銷約為SHA256的4倍;圖17(c)表明,哈希調用的次數增加其時間開銷近線性增長。Fabric平臺中單個交易哈希計算次數和區塊大小規模有限,因此不會出現系統時間開銷無限增加的情況。

Fabric平臺中密碼算法調用場景如節2.2所述,哈希算法在多應用場景中被頻繁調用,哈希算法調用不僅發生在所有基于SM2和ECDSA的簽名驗簽過程中,還存在于區塊鏈的鏈式結構形成和特殊ID值計算的過程中,遠大于ECDSA和SM2算法調用頻率。由圖17的分析結果可知,SM2與ECDSA的算法效率差異較小,而SM3與SHA256在同等條件下算法差異近4倍左右。因此,在時間開銷單位為毫秒級別的基礎上,同濟實現的SM3哈希算法可能是導致Fabric-gm性能減損的主要原因之一。此外,文獻[21]中結果表明,不同版本的SM3實現具有不同的算法效率,因此后期可嘗試優化SM3的實現,以使Fabric-gm平臺獲得更接近或略優于原生Fabric平臺的系統性能。

6 結束語

本文提出了對Fabric平臺實現國密嵌入的思路,并基于該思路針對長期穩定版本Fabric release1.4開展了國密算法的嵌入工作:①基于同濟開源國密實現源碼,在Fabric平臺的BCCSP下添加SM2、SM3和SM4算法模塊與接口;②將Fabric平臺的各組件上層調用的密碼算法接口與對應國密算法接口相關聯,實現上層應用對國密算法調用的支持。實驗結果表明,Fabric平臺國密嵌入后,測試網絡啟動、交易以及動態證書生成等過程都成功調用了基于國密算法實現的加解密、簽名驗簽及哈希接口,與原系統相比,改造后的系統時間開銷和系統運算性能開銷均在可接受范圍。此外,本文對系統性能影響的原因進行對比實驗分析,國密算法本身效率和原生Fabric平臺的密碼算法之間存在差異性,且不同版本的國密算法實現同樣存在差異性,從而可能對平臺的性能造成一定的影響。未來,將已嵌入國密的Fabric-gm平臺與產業應用相結合,加速產業應用落地并提升生產效益。

[1] hyperledger-fabricdocs documentation[EB].

[2] 董友康,張大偉,韓臻,等. 基于聯盟區塊鏈的董事會電子投票系統[J]. 網絡與信息安全學報, 2017, 3(12): 31-37.

DONG Y K, ZHANG D W, HAN Z, et al. Board voting system based on the consortium blockchains[J]. Chinese Journal of Network and Information Security, 2017, 3(12): 31-37.

[3] 潘晨, 劉志強, 劉振, 等. 區塊鏈可擴展性研究:問題與方法[J]. 計算機研究與發展, 2018, 55(10):7-18.

PAN C, LIU Z Q, LIU Z, et al. Research on scalability of blockchain technology:problems and methods[J]. Journal of Computer Research and Development, 2018, 55(10):7-18.

[4] GUEGAN D. Public blockchain versus private blockhain[J]. documents de travail du centre deconomie de la sorbonne, 2017.

[5] An introduction to hyperledger[EB].

[6] 中華人民共和國金融行業標準. 金融分布式賬本技術安全規范[EB].

Financial industry standard of the people's Republic of China. Security specification for financial distributed ledger technology[EB].

[7] 國家密碼管理局. SM2橢圓曲線公鑰密碼算法[EB].

State Cryptography Administration. Public key cryptographic algorithm sm2 based on elliptic curves[EB].

[8] 郭青霄,張大偉,常亮,等. 基于SM2的代理保護代理簽名的設計與實現[J]. 網絡與信息安全學報, 2017, 3(9): 47-54.

GUO Q X, ZHANG D W, CHANG L, et al. Design and implementation of proxy-protected proxy signature based on SM2[J]. Chinese Journal of Network and Information Security, 2017, 3(9): 47-54.

[9] 國家密碼管理局. SM3密碼雜湊算法[EB].

State Cryptography Administration. SM3 Cryptographic hash algorithm[EB].

[10] 邵夢麗,殷新春,李艷梅. SM3雜湊算法的SoPC組件實現[J]. 網絡與信息安全學報, 2017, 3(5): 47-53.

SHAO M L, YIN X C, LI Y M. Implementation of SM3 algorithm based on SoPC component[J]. Chinese Journal of Network and Information Security, 2017, 3(5): 47-53.

[11] Tongji blockchain Research Institute. Hyperledger-Fabric-gm[EB].

[12] 張青禾. 區塊鏈中的身份識別和訪問控制技術研究[D]. 北京:北京交通大學,2018.

ZHANG Q H. Research on identification and acess control in blockchain[D]. Beijing: Beijing Jiaotong University, 2018.

[13] 張夢一. 基于區塊鏈的通用積分管理系統[D]. 濟南: 山東大學, 2019.

ZHANG M Y. General integration management system based on blockchain[D]. Jinan: Shandong University, 2019.

[14] 國家密碼管理局. SM4分組密碼算法[EB].

State Cryptography Administration. SM4 Block cipher algorithm[EB].

[15] ANDROULAKI E, BARGER A, BORTNIKOV V, et al. Hyperledger Fabric: a distributed operating system for permissioned blockchains[C]//Proceedings of the Thirteenth EuroSys Conference (EuroSys '18). Association for Computing Machinery.2018: 1-15.

[16] hyperledger-fabric-ca documentation[EB].

[17] Hyperledger Fabric SDKs[EB].

[18] 陳劍雄, 張董朱, 深度探索區塊鏈Hyperledger技術與應用[M]. 北京: 機械工業出版社, 2018.

CHEN J X, ZHANG D Z. In-depth exploration of blockchain Hyperledger technology and application[M],BeiJing:China Machine Press,2018.

[19] 同濟區塊鏈研究院. 國密SM2、SM3和SM4算法實現[EB].

Suzhou Tongji blockchain Research Institute. Implementation of SM2, SM3 and SM4 algorithms[EB].

[20] GUAN Z. GmSSL[EB].

[21] SM2算法與原生RSA、ECDSA算法的比較[EB].

Comparison of SM2 algorithm with RSA and ECDSA[EB].

Embedding of national cryptographic algorithm in Hyperledger Fabric

CAO Qi, RUAN Shuhua, CHEN Xingshu, LAN Xiao, ZHANG Hongxia, JIN Hongjian

1. School of Cyber Science and Engineering, Sichuan University, Chengdu 610065, China 2. Cybersecurity Research Institute, Sichuan University, Chengdu 610065, China

Hyperledger Fabric is an extensible alliance blockchain platform and provides support for enterprise-level commercial blockchain projects. The cryptographic algorithm is the core technologies of the platform, ensuring the security and non-tampering of the data on the chain. But the original Fabric platform lacks the national cryptographic algorithm support. The embedding and support of the national cryptographic algorithm of the Fabric platform was designed and implemented. Firstly, the interaction logic of between components and the invocation scenario of each type of cryptographic algorithm in the Fabric platform were analyzed, an idea of embedding national cryptographic algorithm support for the platform was proposed. Secondly, the modules and interfaces for SM2, SM3 and SM4 were added to BCCSP of the Fabric platform based on the open source code of national cryptographic algorithm implementation. Thirdly, the interface of cryptographic algorithm invoked by the upper layer of each component is associated to the interface of corresponding national cryptographic algorithms, which realized the invocation support of national cryptographic algorithm for the upper layer applications. Finally, the correctness and effectiveness of the embedded national cryptographic algorithm were verified by creating a fabric-gm test instance. And compared with the performances of the test instance built by the mirror of the native Fabric platform. The experimental results show that the embedded national cryptographic algorithm interfaces are corrected and the generated national cryptographic certificates are effective. Moreover, compared with the native Fabric platform, the network start up time increases by about 3%. In the millisecond unit, the transaction time cost increases by about one time, the dynamic certificate generation time increases by about 9%, and all the performance are within the acceptable range.

blockchain, Hyperledger Fabric, SM2, SM3, SM4

TP309.2

A

10.11959/j.issn.2096?109x.2021007

2020?05?24;

2020?09?18

阮樹驊,ruanshuhua@scu.edu.cn

國家自然科學基金(61802270);中央高校基礎研究經費(SCU2018D018, 2019SCU12069)

The National Natural Science Foundation of China(61802270), The Fundamental Research Funds for the Central Universities (SCU2018D018, 2019SCU12069)

曹琪, 阮樹驊, 陳興蜀, 等. Hyperledger Fabric平臺的國密算法嵌入研究[J]. 網絡與信息安全學報, 2021, 7(1): 65-75.

CAO Q, RUAN S H, CHEN X S, et al. Embedding of national cryptographic algorithm in Hyperledger Fabric[J]. Chinese Journal of Network and Information Security, 2021, 7(1): 65-75.

曹琪(1996? ),女,四川廣安人,四川大學碩士生,主要研究方向為區塊鏈安全及應用、網絡行為分析。

阮樹驊(1966? ),女,浙江紹興人,四川大學副教授、碩士生導師,主要研究方向為云計算與大數據安全、區塊鏈安全。

陳興蜀(1968? ),女,貴州六枝人,博士,四川大學教授、博士生導師,主要研究方向為云計算與大數據安全、可信計算與信息保障。

蘭曉(1990? ),女, 四川自貢人,博士,四川大學助理研究員,主要研究方向為應用密碼學、安全多方計算、認證密鑰協商協議、區塊鏈安全。

張紅霞(1996? ),女,河北邢臺人,四川大學碩士生,主要研究方向為區塊鏈安全及應用、網絡行為分析。

金泓鍵(1996? ),男,重慶人,四川大學碩士生,主要研究方向為區塊鏈安全及應用、大數據分析。

主站蜘蛛池模板: 国内精品91| 58av国产精品| 亚洲成人福利网站| 亚洲看片网| 国产手机在线ΑⅤ片无码观看| 亚洲欧美成aⅴ人在线观看| 伊人丁香五月天久久综合| 国产在线观看一区精品| 日韩亚洲综合在线| 一级爱做片免费观看久久| 国产原创自拍不卡第一页| 亚洲视频四区| 日本午夜三级| 欧洲一区二区三区无码| 热99精品视频| 91日本在线观看亚洲精品| 亚洲AV电影不卡在线观看| 综合网久久| 亚洲va视频| 国产av色站网站| 99爱视频精品免视看| 国产人成网线在线播放va| 亚洲日本一本dvd高清| 天天激情综合| 久久 午夜福利 张柏芝| 亚洲人人视频| 中文字幕在线观看日本| 国产精品亚洲精品爽爽| 91国内在线观看| 人妻丰满熟妇av五码区| 亚洲天堂在线免费| 日本在线欧美在线| 超薄丝袜足j国产在线视频| 国产99在线| 91精品免费高清在线| 亚洲欧美在线综合一区二区三区| 欧美性猛交一区二区三区| 欧美另类视频一区二区三区| 亚洲成年人片| 久青草国产高清在线视频| 99在线观看视频免费| 国产不卡国语在线| 色哟哟国产成人精品| 久久a级片| 丁香六月综合网| 波多野结衣中文字幕一区二区| 国产黄色视频综合| 免费jjzz在在线播放国产| 欧美亚洲日韩不卡在线在线观看| 日本人又色又爽的视频| 色婷婷成人| 无码aaa视频| 日韩精品专区免费无码aⅴ| 五月激情婷婷综合| 男女男免费视频网站国产| 久久久精品久久久久三级| 91小视频在线观看免费版高清| 亚洲乱伦视频| 国产在线精品美女观看| 呦女亚洲一区精品| 91小视频在线观看免费版高清| 又爽又大又光又色的午夜视频| 久久婷婷五月综合色一区二区| 久久婷婷色综合老司机| 精品国产免费观看| 九色91在线视频| 亚洲欧美不卡视频| 老色鬼欧美精品| 久久伊人操| 国产美女在线免费观看| 亚洲天堂网站在线| 国产导航在线| 2048国产精品原创综合在线| 国产精品亚洲一区二区三区z| 国产麻豆精品手机在线观看| 99精品热视频这里只有精品7 | 欧美成人免费午夜全| 国产精品专区第一页在线观看| 69av在线| 久久婷婷人人澡人人爱91| 亚洲第一黄色网址| 99久久精品美女高潮喷水|