YDT 4564-2023區(qū)塊鏈智能合約安全技術(shù)要求_第1頁(yè)
YDT 4564-2023區(qū)塊鏈智能合約安全技術(shù)要求_第2頁(yè)
YDT 4564-2023區(qū)塊鏈智能合約安全技術(shù)要求_第3頁(yè)
YDT 4564-2023區(qū)塊鏈智能合約安全技術(shù)要求_第4頁(yè)
YDT 4564-2023區(qū)塊鏈智能合約安全技術(shù)要求_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ICS35.240

CCSL04

YD

中華人民共和國(guó)通信行業(yè)標(biāo)準(zhǔn)

YD/TXXXX—202X

區(qū)塊鏈智能合約安全技術(shù)要求

Securitytechnicalrequirementsforblockchainsmartcontract

XXXX-XX-XX發(fā)布XXXX-XX-XX實(shí)施

中華人民共和國(guó)工業(yè)和信息化部發(fā)布

YD/TXXXX-202X

前言

本文件按照GB/T1.1-2020《標(biāo)準(zhǔn)化工作導(dǎo)則第1部分:標(biāo)準(zhǔn)化文件的結(jié)構(gòu)和起草規(guī)則》的規(guī)定起

草。

請(qǐng)注意本文件的某些內(nèi)容可能涉及專利。本文件的發(fā)布機(jī)構(gòu)不承擔(dān)識(shí)別專利的責(zé)任。

本文件由中國(guó)通信標(biāo)準(zhǔn)化協(xié)會(huì)提出并歸口。

本文件起草單位:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司、騰訊云計(jì)算(北京)有限責(zé)任公司、成都鏈安

科技有限公司、鄭州信大捷安信息技術(shù)股份有限公司、國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心、中國(guó)移

動(dòng)通信集團(tuán)有限公司、北京奇虎科技有限公司、電子科技大學(xué)、北京理工大學(xué)、西安郵電大學(xué)、螞蟻科

技集團(tuán)股份有限公司、奇安信科技集團(tuán)股份有限公司、北京郵電大學(xué)、中國(guó)信息通信科技集團(tuán)有限公司、

陜西省信息化工程研究院。

本文件主要起草人:李克鵬、武楊、郭鐵濤、劉為華、劉獻(xiàn)倫、劉穎、李力、蘇慶慧、邵兵、郭銳、

蔡慶普、張子劍、楊霞、楊勇、甘祥、張建俊、敖萌、蘇蹦蹦、韓天樂(lè)、代威、梁軍、盧洋、王宗友、

藍(lán)虎、郭文生、孫海泳、岳亮亮、鄧嵐臏、章書、王劍、彭晉、昌文婷、張屹、鮑旭華、黃亮、韓剛、

張勇、尚進(jìn)、于樂(lè)、程渤、趙帥、張祺琪、劉偉麗。

III

YD/TXXXX-202X

區(qū)塊鏈智能合約安全技術(shù)要求

1范圍

本文件規(guī)定了區(qū)塊鏈智能合約安全技術(shù)要求,包括區(qū)塊鏈智能合約的安全技術(shù)框架、設(shè)計(jì)開(kāi)發(fā)安全、

測(cè)試驗(yàn)證安全、編譯部署安全、觸發(fā)運(yùn)行安全、維護(hù)治理安全方面的技術(shù)要求。

本文件適用于指導(dǎo)區(qū)塊鏈智能合約業(yè)務(wù)提供者、智能合約技術(shù)提供者、智能合約審計(jì)者等相關(guān)角色

在區(qū)塊鏈智能合約的設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署和運(yùn)維等過(guò)程中進(jìn)行安全保障,也適用于指導(dǎo)區(qū)塊鏈智能

合約系統(tǒng)的安全性評(píng)估。

2規(guī)范性引用文件

下列文件中的內(nèi)容通過(guò)文中的規(guī)范性引用而構(gòu)成文件必不可少的條款。其中,注日期的引用文件,

僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本

文件。

GB/T25069-2022信息安全技術(shù)術(shù)語(yǔ)

ISO22739:2020區(qū)塊鏈和分布式賬本技術(shù)–術(shù)語(yǔ)(Blockchainanddistributedledger

technologies—Vocabulary)

3術(shù)語(yǔ)和定義

GB/T25069-2022和ISO22739:2020界定的以及下列術(shù)語(yǔ)和定義適用于本文件。

3.1

區(qū)塊block

區(qū)塊鏈的基本組成單元,由區(qū)塊頭和區(qū)塊數(shù)據(jù)組成。

[來(lái)源:ISO22739:2020,3.2,有修改]

3.2

共識(shí)consensus

在共識(shí)節(jié)點(diǎn)間達(dá)成區(qū)塊數(shù)據(jù)一致性的認(rèn)可。

[來(lái)源:ISO22739:2020,3.11,有修改]

3.3

共識(shí)協(xié)議consensusprotocol

區(qū)塊鏈中通過(guò)數(shù)學(xué)算法實(shí)現(xiàn)不同節(jié)點(diǎn)之間對(duì)交易達(dá)成一致的方法。

[來(lái)源:ISO22739:2020,3.12,有修改]

3.4

1

YD/TXXXX-202X

區(qū)塊鏈blockchain

將區(qū)塊順序相連,并通過(guò)共識(shí)協(xié)議、數(shù)字簽名、雜湊函數(shù)等密碼學(xué)方式保證的抗篡改和不可偽造的

分布式賬本。

[來(lái)源:ISO22739:2020,3.6,有修改]

3.5

節(jié)點(diǎn)node

具有特定功能的區(qū)塊鏈組件,可獨(dú)立運(yùn)行。

[來(lái)源:ISO22739:2020,3.27,有修改]

3.6

交易transaction

區(qū)塊鏈雙方或多方參與,并且會(huì)發(fā)生狀態(tài)變更的一種區(qū)塊基本組成單元。

[來(lái)源:ISO22739:2020,3.77,有修改]

3.7

用戶user

參與產(chǎn)生區(qū)塊鏈交易數(shù)據(jù)的個(gè)人、組織或進(jìn)程。

[來(lái)源:ISO22739:2020,3.3,有修改]

3.8

智能合約smartcontract

以運(yùn)行在區(qū)塊鏈中的軟件程序形式存在的合約,合約由區(qū)塊鏈部署、執(zhí)行結(jié)果記錄在區(qū)塊鏈中。

[來(lái)源:ISO22739:2020,3.72]

3.9

執(zhí)行環(huán)境executionenvironment

智能合約的執(zhí)行容器,負(fù)責(zé)根據(jù)合約代碼和用戶發(fā)送的交易指令對(duì)區(qū)塊鏈狀態(tài)進(jìn)行更新。

3.10

鏈上on-chain

在區(qū)塊鏈內(nèi)定位、執(zhí)行或運(yùn)行。

[來(lái)源:ISO22739:2020,3.54,有修改]

4智能合約的安全技術(shù)框架

4.1智能合約安全的整體邏輯架構(gòu)

本文件圍繞智能合約的生命周期,在智能合約的設(shè)計(jì)開(kāi)發(fā)、測(cè)試驗(yàn)證、編譯部署、觸發(fā)運(yùn)行、維護(hù)

治理等各個(gè)階段提出安全要求。

智能合約安全的整體邏輯架構(gòu),如圖1所示。

2

YD/TXXXX-202X

圖1區(qū)塊鏈智能合約安全的整體邏輯架構(gòu)圖

智能合約全生命周期各階段的安全要求,主要包括:

a)智能合約設(shè)計(jì)開(kāi)發(fā)的安全:主要包括智能合約的設(shè)計(jì)安全、編碼安全、邏輯安全等;

b)智能合約測(cè)試驗(yàn)證的安全:主要包括智能合約的靜態(tài)掃描、動(dòng)態(tài)掃描、形式化驗(yàn)證等;

c)智能合約編譯部署的安全:主要包括智能合約編譯安全、部署安全等;

d)智能合約觸發(fā)運(yùn)行的安全:主要包括智能合約觸發(fā)安全、運(yùn)行安全等;

e)智能合約維護(hù)治理的安全:主要包括智能合約凍結(jié)/解凍安全、升級(jí)安全、禁用安全、安全審

計(jì)等。

4.2智能合約的角色定義

參與區(qū)塊鏈智能合約的設(shè)計(jì)開(kāi)發(fā)、驗(yàn)證測(cè)試、編譯部署、運(yùn)行和運(yùn)維等過(guò)程的角色主要包括:

a)智能合約業(yè)務(wù)提供者

智能合約業(yè)務(wù)提供者是指提供區(qū)塊鏈智能合約業(yè)務(wù)的主體,主要負(fù)責(zé)鏈上部署運(yùn)行、管理和維護(hù)區(qū)

塊鏈智能合約等,直接或間接地為區(qū)塊鏈用戶提供服務(wù)。

b)智能合約技術(shù)提供者

3

YD/TXXXX-202X

智能合約技術(shù)提供者是指為智能合約業(yè)務(wù)提供者提供技術(shù)支持的機(jī)構(gòu)或者組織,主要負(fù)責(zé)設(shè)計(jì)、開(kāi)

發(fā)、測(cè)試、配合維護(hù)區(qū)塊鏈智能合約等,并提供相關(guān)技術(shù)支持和服務(wù)。

c)智能合約審計(jì)者

智能合約審計(jì)者負(fù)責(zé)在區(qū)塊鏈智能合約的供應(yīng)和使用過(guò)程中執(zhí)行審計(jì)。區(qū)塊鏈智能合約審計(jì)通常

覆蓋運(yùn)營(yíng)、性能和安全,主要是檢查相關(guān)的審計(jì)準(zhǔn)則是否得到滿足。

4.3智能合約各角色的安全職責(zé)

4.3.1智能合約業(yè)務(wù)提供者的安全職責(zé)

智能合約業(yè)務(wù)提供者的安全職責(zé)主要包括:

a)對(duì)智能合約技術(shù)提供者提出安全需求,并查驗(yàn)安全需求的滿足情況;

b)執(zhí)行智能合約服務(wù)的安全要求并保障智能合約業(yè)務(wù)的穩(wěn)定,為智能合約的正常運(yùn)行提供足夠的

資源;

c)當(dāng)智能合約服務(wù)出現(xiàn)異常時(shí),能夠及時(shí)修復(fù)異常,若自身不能處理,則及時(shí)聯(lián)系智能合約技術(shù)

提供者共同完成修復(fù)。

4.3.2智能合約技術(shù)提供者的安全職責(zé)

智能合約技術(shù)提供者的安全職責(zé)主要包括:

a)為智能合約業(yè)務(wù)提供者提供安全設(shè)計(jì)開(kāi)發(fā)、測(cè)試驗(yàn)證的智能合約,并提供保障智能合約安全的

支撐技術(shù);

b)為智能合約審計(jì)者提供審計(jì)的技術(shù)支撐;

c)為保障智能合約業(yè)務(wù)的穩(wěn)定運(yùn)行提供管理運(yùn)維支撐技術(shù)以及緊急情況下的處置方法。

4.3.3智能合約審計(jì)者的安全職責(zé)

智能合約審計(jì)者的安全職責(zé)主要包括:

a)遵循獨(dú)立性、客觀性原則,運(yùn)用系統(tǒng)化和規(guī)范化的方法,通過(guò)監(jiān)督、評(píng)價(jià)和咨詢等方式,促進(jìn)

業(yè)務(wù)和技術(shù)提供者建立有效并持續(xù)完善的風(fēng)險(xiǎn)管理、內(nèi)控合規(guī)和治理架構(gòu),實(shí)現(xiàn)區(qū)塊鏈智能合

約安全運(yùn)行的業(yè)務(wù)目標(biāo);

b)與智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者明確需要滿足的智能合約審計(jì)服務(wù)和審計(jì)需求;

c)當(dāng)發(fā)現(xiàn)安全問(wèn)題時(shí),及時(shí)通知智能合約業(yè)務(wù)提供者進(jìn)行整改;

d)當(dāng)發(fā)現(xiàn)不合規(guī)信息時(shí),及時(shí)通知智能合約業(yè)務(wù)提供者進(jìn)行屏蔽、訪問(wèn)限制等。

5智能合約設(shè)計(jì)開(kāi)發(fā)的安全技術(shù)要求

5.1智能合約功能設(shè)計(jì)的安全技術(shù)要求

5.1.1智能合約設(shè)計(jì)的安全性

智能合約技術(shù)提供者在智能合約設(shè)計(jì)安全性方面的要求如下:

a)在設(shè)計(jì)智能合約代碼時(shí),應(yīng)對(duì)整個(gè)合約的功能以及對(duì)外的交互進(jìn)行安全設(shè)計(jì),應(yīng)規(guī)避因?yàn)樵O(shè)

計(jì)缺陷所導(dǎo)致的安全問(wèn)題;

b)在智能合約設(shè)計(jì)時(shí),應(yīng)從多個(gè)來(lái)源收集輸入事實(shí),保證需求的可追溯性;

c)在設(shè)計(jì)智能合約時(shí),應(yīng)對(duì)各個(gè)角色及其權(quán)限進(jìn)行合理設(shè)計(jì);

4

YD/TXXXX-202X

d)設(shè)計(jì)的智能合約應(yīng)具備防篡改和抗抵賴性,智能合約應(yīng)完全按照針對(duì)合約約定的條件、事項(xiàng)

和規(guī)則執(zhí)行。

5.1.2智能合約的處理錯(cuò)誤能力

智能合約技術(shù)提供者設(shè)計(jì)的智能合約應(yīng)具備處理或緩解錯(cuò)誤/缺陷的能力,如提前終止能力或線上

更新能力等,避免鏈上一直存在錯(cuò)誤數(shù)據(jù)而不可更改的情況。

5.1.3智能合約的敏感信息規(guī)避要求

智能合約技術(shù)提供者在設(shè)計(jì)智能合約時(shí),為避免隱私或其他敏感數(shù)據(jù)泄露,在敏感信息規(guī)避方面的

安全要求如下:

a)對(duì)于處理隱私數(shù)據(jù)等敏感信息的智能合約,不應(yīng)直接將敏感數(shù)據(jù)存儲(chǔ)在鏈上;

b)代碼本身所包含的隱私數(shù)據(jù)或其他敏感信息,應(yīng)進(jìn)行加密或是將其轉(zhuǎn)移至鏈下;

c)加密算法應(yīng)滿足相關(guān)國(guó)家監(jiān)管合規(guī)要求。

5.1.4智能合約結(jié)果一致性的安全設(shè)計(jì)

智能合約技術(shù)提供者設(shè)計(jì)智能合約時(shí),為保證各節(jié)點(diǎn)智能合約運(yùn)行結(jié)果的一致性安全要求如下:

a)智能合約中運(yùn)行結(jié)果不應(yīng)包含隨機(jī)信息,否則有可能會(huì)導(dǎo)致結(jié)果不一致;

b)在設(shè)計(jì)智能合約時(shí)應(yīng)對(duì)時(shí)序的邏輯進(jìn)行合理設(shè)計(jì),即不同節(jié)點(diǎn)執(zhí)行合約相同部分的先后次序

可能是不同的,應(yīng)避免由此產(chǎn)生的安全風(fēng)險(xiǎn);

c)在設(shè)計(jì)智能合約時(shí),應(yīng)不要有對(duì)先后順序的依賴,如付款先后、申請(qǐng)先后等的依賴,以避免

由于條件競(jìng)爭(zhēng)導(dǎo)致的安全問(wèn)題。

5.1.5區(qū)塊鏈平臺(tái)的兼容能力的設(shè)計(jì)

當(dāng)區(qū)塊鏈平臺(tái)升級(jí)時(shí),智能合約技術(shù)提供者應(yīng)評(píng)估原有智能合約在新升級(jí)平臺(tái)的運(yùn)行差異,并做兼

容性方面的適配、調(diào)整,避免不兼容而導(dǎo)致的安全風(fēng)險(xiǎn)。

5.1.6智能合約安全風(fēng)險(xiǎn)規(guī)避要求

智能合約技術(shù)提供者應(yīng)在設(shè)計(jì)時(shí)考慮:智能合約在整個(gè)生命周期中存在不可更改、代碼公開(kāi)、分布

式計(jì)算、運(yùn)行環(huán)境不安全等情況,制定智能合約安全風(fēng)險(xiǎn)分析與風(fēng)險(xiǎn)管理規(guī)劃,并對(duì)相關(guān)安全風(fēng)險(xiǎn)進(jìn)行

規(guī)避。

5.2智能合約編碼的安全技術(shù)要求

5.2.1開(kāi)發(fā)環(huán)境安全

智能合約技術(shù)提供者在智能合約編碼過(guò)程中,在開(kāi)發(fā)環(huán)境方面的安全要求如下:

a)應(yīng)對(duì)智能合約的開(kāi)發(fā)、編譯等工具定期進(jìn)行更新,修復(fù)所存在的安全缺陷;

b)在使用第三方工具和代碼,以及安全部署更新前,應(yīng)對(duì)其安全性進(jìn)行評(píng)估,防止引入新的安

全缺陷和風(fēng)險(xiǎn)。

5.2.2明確變量定義

智能合約技術(shù)提供者在編寫智能合約時(shí),應(yīng)明確定義變量的類型,以便確定變量的取值范圍,防

止變量溢出。

5

YD/TXXXX-202X

5.2.3盡量避免直接嵌入底層語(yǔ)言

為防止高級(jí)語(yǔ)言的安全特性被繞過(guò),智能合約技術(shù)提供者在編寫智能合約時(shí),應(yīng)盡量避免底層語(yǔ)

言(如匯編語(yǔ)言)的使用。除非智能合約高級(jí)語(yǔ)言無(wú)法實(shí)現(xiàn)的情況下(如對(duì)性能要求高或者運(yùn)行環(huán)境

要求使用底層語(yǔ)言等情況)而只能選擇使用底層語(yǔ)言時(shí),應(yīng)充分知悉此安全風(fēng)險(xiǎn)并做好安全加固措

施。

5.2.4數(shù)學(xué)運(yùn)算的邊界條件

智能合約技術(shù)提供者開(kāi)發(fā)的智能合約在進(jìn)行數(shù)學(xué)運(yùn)算時(shí),應(yīng)注意可能到達(dá)的邊界條件。當(dāng)賦值過(guò)

大或過(guò)小導(dǎo)致可能發(fā)生溢出時(shí),應(yīng)支持對(duì)溢出進(jìn)行正確處理。

5.2.5避免不可靠輸入

智能合約技術(shù)提供者在編寫智能合約實(shí)現(xiàn)預(yù)定的功能或邏輯時(shí),應(yīng)避免引入不可靠輸入。

5.2.6錯(cuò)誤處理

智能合約技術(shù)提供者在智能合約時(shí),應(yīng)使用安全函數(shù)。在智能合約中調(diào)用其他函數(shù)時(shí),應(yīng)對(duì)可能

發(fā)生的錯(cuò)誤進(jìn)行處理以避免程序出錯(cuò)導(dǎo)致安全風(fēng)險(xiǎn),包括捕獲異常、處理錯(cuò)誤返回值等。

5.2.7合約代碼庫(kù)

智能合約技術(shù)提供者在使用智能合約代碼庫(kù)時(shí)的安全要求包括:

a)應(yīng)優(yōu)先使用經(jīng)過(guò)詳細(xì)測(cè)試或第三方安全審計(jì)的可靠合約代碼庫(kù);

b)必須需仔細(xì)閱讀代碼庫(kù)使用說(shuō)明,在正確理解外部代碼的情況下進(jìn)行使用;

c)不應(yīng)使用未知源碼的合約作為依賴。

5.3智能合約的邏輯安全技術(shù)要求

5.3.1身份驗(yàn)證

智能合約技術(shù)提供者開(kāi)發(fā)的智能合約在對(duì)用戶資產(chǎn)進(jìn)行操作時(shí),應(yīng)對(duì)操作者身份進(jìn)行驗(yàn)證,防止惡

意操作。

5.3.2權(quán)限管理

智能合約技術(shù)提供者開(kāi)發(fā)的智能合約,當(dāng)包含多個(gè)用戶或者允許多個(gè)用戶與其交互時(shí),應(yīng)對(duì)各用戶

所擁有的權(quán)限進(jìn)行限制,對(duì)于凍結(jié)、禁用等操作,僅允許特定用戶使用。

5.3.3業(yè)務(wù)邏輯安全

智能合約技術(shù)提供者在智能合約業(yè)務(wù)邏輯的設(shè)計(jì)方面的安全要求包括:

a)使合約代碼實(shí)現(xiàn)與邏輯設(shè)計(jì)相符合,應(yīng)避免歧義或者偏差存在;

b)存在博弈機(jī)制的合約,應(yīng)規(guī)避博弈設(shè)計(jì)中的缺陷;

c)應(yīng)規(guī)避“拒絕服務(wù)”(Denial-of-Service)風(fēng)險(xiǎn);

d)應(yīng)規(guī)避“搶先交易”、“交易順序依賴”的風(fēng)險(xiǎn)。

6智能合約測(cè)試驗(yàn)證的安全技術(shù)要求

6

YD/TXXXX-202X

智能合約測(cè)試驗(yàn)證方面的安全技術(shù)要求如下:

a)智能合約技術(shù)提供者在發(fā)布智能合約之前,應(yīng)進(jìn)行安全評(píng)估和測(cè)試,規(guī)避已知常見(jiàn)安全風(fēng)險(xiǎn)

和隱患;

b)智能合約技術(shù)提供者應(yīng)修復(fù)已知的安全漏洞,并使用規(guī)范的安全測(cè)試,以協(xié)助開(kāi)發(fā)者提高合

約代碼的安全質(zhì)量;

c)智能合約技術(shù)提供者宜進(jìn)行函數(shù)可見(jiàn)性測(cè)試、合約限制繞過(guò)測(cè)試、調(diào)用棧耗盡測(cè)試、拒絕服

務(wù)測(cè)試等;

d)智能合約技術(shù)提供者若發(fā)現(xiàn)智能合約中漏洞,應(yīng)能夠采取恰當(dāng)?shù)姆椒ㄊ蛊浒踩鼗謴?fù);

e)智能合約技術(shù)提供者應(yīng)保證智能合約在測(cè)試環(huán)境中合約運(yùn)行結(jié)果的正確性;

f)智能合約技術(shù)提供者的安全測(cè)試應(yīng)覆蓋對(duì)合約代碼或字節(jié)碼進(jìn)行常規(guī)漏洞檢測(cè)、安全屬性驗(yàn)

證等;

g)智能合約技術(shù)提供者應(yīng)在發(fā)現(xiàn)智能合約漏洞后,及時(shí)修復(fù)和更新智能合約代碼;

h)智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者、智能合約審計(jì)者應(yīng)對(duì)智能合約的業(yè)務(wù)邏輯、業(yè)

務(wù)流程進(jìn)行安全性的測(cè)試和評(píng)估;

i)智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者、智能合約審計(jì)者應(yīng)基于智能合約安全規(guī)則庫(kù)和

問(wèn)題合約模式庫(kù)實(shí)現(xiàn)智能合約的漏洞檢測(cè);

j)智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者、智能合約審計(jì)者應(yīng)支持對(duì)智能合約代碼進(jìn)行靜

態(tài)安全掃描,以便發(fā)現(xiàn)安全風(fēng)險(xiǎn);

k)智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者、智能合約審計(jì)者宜支持動(dòng)態(tài)安全掃描,通過(guò)運(yùn)

行智能合約代碼,根據(jù)運(yùn)行狀態(tài)來(lái)判斷是否存在安全風(fēng)險(xiǎn);

l)智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者、智能合約審計(jì)者宜支持形式化驗(yàn)證,利用數(shù)學(xué)

方法,確定程序的運(yùn)行結(jié)果是否符合預(yù)期,驗(yàn)證智能合約代碼的正確性。

7智能合約編譯部署的安全技術(shù)要求

7.1智能合約編譯的安全技術(shù)要求

智能合約技術(shù)提供者在智能合約編譯時(shí)的安全要求如下:

a)在編譯智能合約時(shí),應(yīng)校驗(yàn)智能合約的編譯實(shí)體和寫入策略;

b)應(yīng)使用安全的共識(shí)算法,并通過(guò)第三方驗(yàn)證;

c)應(yīng)支持智能合約在區(qū)塊鏈平臺(tái)上編譯檢測(cè);

d)應(yīng)使用已知的成熟的編譯器;

e)當(dāng)發(fā)現(xiàn)編譯器中的缺陷時(shí),應(yīng)及時(shí)更新以消除缺陷;

f)編程語(yǔ)言的編譯器應(yīng)具備一致性;

g)智能合約源碼在編譯成字節(jié)碼后前后邏輯應(yīng)一致。

7.2智能合約部署的安全技術(shù)要求

智能合約技術(shù)提供者在智能合約部署方面的安全要求如下:

a)智能合約的部署應(yīng)由鏈上節(jié)點(diǎn)達(dá)成共識(shí),防止產(chǎn)生惡意部署智能合約的行為;

b)宜校驗(yàn)智能合約部署的完整性;

c)應(yīng)校驗(yàn)智能合約的執(zhí)行權(quán)限和簽名。

8智能合約觸發(fā)運(yùn)行安全技術(shù)要求

7

YD/TXXXX-202X

8.1智能合約觸發(fā)的安全技術(shù)要求

8.1.1直接接口調(diào)用安全

智能合約技術(shù)提供者在智能合約直接接口調(diào)用方面的安全要求如下:

a)智能合約在直接接口調(diào)用時(shí)接口名稱應(yīng)明確接口功能,應(yīng)具有可讀性;

b)智能合約的直接接口調(diào)用應(yīng)執(zhí)行規(guī)定的智能合約調(diào)用流程。

8.1.2合約間調(diào)用安全

智能合約技術(shù)提供者在合約間調(diào)用方面的安全要求如下:

a)智能合約的合約間調(diào)用,應(yīng)豐富智能合約的內(nèi)置方法和原生庫(kù)實(shí)現(xiàn);

b)在涉及合約間調(diào)用時(shí),應(yīng)避免合約間調(diào)用可能存在的不確定因素安全風(fēng)險(xiǎn),防止不受信任的

外部合約引發(fā)的風(fēng)險(xiǎn)和錯(cuò)誤出現(xiàn);

c)應(yīng)選用恰當(dāng)?shù)南薅ㄔ~對(duì)智能合約的調(diào)用范圍進(jìn)行強(qiáng)制限制,防止外部調(diào)用,提高安全性;

d)當(dāng)與外部合約進(jìn)行交互時(shí),應(yīng)以變量名稱、方法名稱或者是接口名稱的方式明確標(biāo)記交互是

外部的,并在調(diào)用時(shí)考慮可能存在的不安全風(fēng)險(xiǎn)。

8.1.3預(yù)言機(jī)調(diào)用安全

智能合約技術(shù)提供者在智能合約預(yù)言機(jī)調(diào)用方面的安全要求如下:

a)智能合約在預(yù)言機(jī)調(diào)用時(shí),接口協(xié)議應(yīng)基于安全傳輸協(xié)議;

b)預(yù)言機(jī)本身應(yīng)通過(guò)第三方的安全性和可靠性評(píng)估;

c)預(yù)言機(jī)的安全和可靠性評(píng)估應(yīng)為定期進(jìn)行的持續(xù)行為;

d)如果發(fā)現(xiàn)預(yù)言機(jī)故意提供錯(cuò)誤數(shù)據(jù),應(yīng)及時(shí)更正或者更換預(yù)言機(jī);

e)預(yù)言機(jī)提供的外部數(shù)據(jù)源的影響范圍應(yīng)僅限于智能合約范圍內(nèi),不應(yīng)影響系統(tǒng)的整體運(yùn)行。

8.2智能合約運(yùn)行的安全技術(shù)要求

8.2.1運(yùn)行環(huán)境本身的安全性

智能合約技術(shù)提供者在智能合約的運(yùn)行環(huán)境(執(zhí)行智能合約的軟件及硬件環(huán)境)本身的安全性方面

的要求如下:

a)應(yīng)保證智能合約的運(yùn)行環(huán)境提供確定性的功能執(zhí)行、異常恢復(fù)、常規(guī)錯(cuò)誤運(yùn)行時(shí)監(jiān)測(cè)和恢復(fù)

等機(jī)制;

b)應(yīng)保障智能合約的運(yùn)行環(huán)境滿具備正確處理異常的能力,支持實(shí)時(shí)監(jiān)測(cè)和狀態(tài)回滾,支持合

約正常終止。

8.2.2運(yùn)行環(huán)境依賴性

智能合約技術(shù)提供者在智能合約運(yùn)行環(huán)境依賴性方面的安全要求如下:

a)應(yīng)保證智能合約中的核心邏輯盡量不依賴區(qū)塊鏈系統(tǒng)中的信息作為參數(shù);

b)應(yīng)保障智能合約核心邏輯對(duì)區(qū)塊鏈系統(tǒng)參數(shù)的依賴是安全的。

8.2.3規(guī)避惡意合約代碼對(duì)運(yùn)行環(huán)境底層的影響

智能合約技術(shù)提供者對(duì)運(yùn)行智能合約的底層系統(tǒng)的安全要求如下:

a)應(yīng)保證運(yùn)行智能合約的底層系統(tǒng)具備完備的拒絕服務(wù)防護(hù);

b)應(yīng)保證運(yùn)行智能合約的底層系統(tǒng)具備完備的虛擬機(jī)逃逸防護(hù);

8

YD/TXXXX-202X

c)應(yīng)保證運(yùn)行智能合約的底層系統(tǒng)具備完備的任意代碼執(zhí)行防護(hù);

d)應(yīng)保證運(yùn)行智能合約的底層系統(tǒng)具備完備的權(quán)限提升防護(hù)。

8.2.4運(yùn)行環(huán)境中不同合約的交互安全

智能合約技術(shù)提供者對(duì)于運(yùn)行環(huán)境中不同智能合約的交互安全方面的安全要求如下:

a)應(yīng)提供權(quán)限管理的機(jī)制,以判斷本次合約調(diào)用是否有權(quán)限修改相應(yīng)的數(shù)據(jù),包括提供根據(jù)用戶

信息和交易簽名進(jìn)行身份權(quán)限審查的功能(也可提供基于多密鑰對(duì)的權(quán)限管理)等;

b)對(duì)智能合約的接口應(yīng)進(jìn)行標(biāo)準(zhǔn)化定義并提供詳細(xì)說(shuō)明,并防止攻擊者借用某合約身份對(duì)另一

合約發(fā)起調(diào)用,從而繞過(guò)權(quán)限檢查;

c)智能合約的代碼實(shí)現(xiàn)中,不應(yīng)引入未知程序步數(shù)或執(zhí)行時(shí)間的執(zhí)行體,需支持合約能夠在有限

的程序步數(shù)和時(shí)間內(nèi)完成執(zhí)行;

d)應(yīng)避免使用智能合約中嚴(yán)重消耗資源的操作。

9智能合約的維護(hù)治理安全

9.1智能合約的凍結(jié)/解凍安全

智能合約技術(shù)提供者在智能合約的凍結(jié)和解凍方面安全要求如下:

a)應(yīng)提供智能合約凍結(jié)功能,當(dāng)發(fā)現(xiàn)智能合約存在漏洞時(shí)可及時(shí)停止;

b)在凍結(jié)智能合約時(shí),應(yīng)對(duì)其所能支配的資源進(jìn)行有效限制,防止資源被惡意濫用;

c)應(yīng)提供智能合約解凍功能,當(dāng)智能合約中的漏洞修復(fù)或者消除、轉(zhuǎn)移后可恢復(fù)使用;

d)在調(diào)用智能合約凍結(jié)和解凍功能時(shí),應(yīng)進(jìn)行權(quán)限訪問(wèn)控制。

9.2智能合約的升級(jí)安全

智能合約技術(shù)提供者在智能合約升級(jí)方面安全要求如下:

a)應(yīng)提供智能合約的在線升級(jí)功能,智能合約的每次升級(jí)應(yīng)為獨(dú)立版本;

b)智能合約的升級(jí)操作應(yīng)以接口調(diào)用的方式提交,達(dá)成共識(shí)后生效;

c)對(duì)智能合約的升級(jí)操作應(yīng)記錄在區(qū)塊中;

d)應(yīng)提供智能合約的版本控制功能,在智能合約升級(jí)到新版本后,能向前兼容舊版本合約,并能

調(diào)用和訪問(wèn)舊版本的歷史數(shù)據(jù);

e)應(yīng)保證區(qū)塊鏈平臺(tái)升級(jí)后,智能合約仍能穩(wěn)定運(yùn)行。

9.3智能合約的禁用安全

智能合約技術(shù)提供者在智能合約禁用方面安全要求如下:

a)應(yīng)提供智能合約禁用功能,廢棄已部署的智能合約;

b)調(diào)用智能合約禁用時(shí),應(yīng)進(jìn)行權(quán)限訪問(wèn)控制;

c)智能合約禁用后,可在區(qū)塊鏈中保存被終止版本的智能合約代碼,但不會(huì)再次執(zhí)行;

d)智能合約禁用時(shí),應(yīng)保證合約上的資產(chǎn)安全。

9.4智能合約的安全審計(jì)

智能合約技術(shù)提供者、智能合約業(yè)務(wù)提供者和智能合約審計(jì)者在智能合約安全審計(jì)方面安全要求

如下:

a)智能合約技術(shù)提供者和智能合約審計(jì)者應(yīng)對(duì)源代碼進(jìn)行審計(jì),可通過(guò)人工審閱源代碼和靜態(tài)

9

YD/TXXXX-202X

代碼審計(jì)工具等方式,對(duì)智能合約編碼安全進(jìn)行審計(jì)和分析,并保留審計(jì)記錄;

b)智能合約業(yè)務(wù)提供者對(duì)智能合約設(shè)計(jì)開(kāi)發(fā)、測(cè)試驗(yàn)證、編譯部署等過(guò)程進(jìn)行安全審計(jì)以保證業(yè)

務(wù)邏輯安全,并保留審計(jì)記錄;應(yīng)采取自身與第三方安全機(jī)構(gòu)相結(jié)合的安全審計(jì)方式;

c)智能合約業(yè)務(wù)提供者和智能合約審計(jì)者應(yīng)對(duì)智能合約的編譯環(huán)境進(jìn)行審計(jì),識(shí)別有漏洞的版

本,并保留審計(jì)記錄;

d)智能合約業(yè)務(wù)提供者和智能合約審計(jì)者應(yīng)對(duì)智能合約進(jìn)行合規(guī)性審計(jì),并保留審計(jì)記錄;

e)智能合約業(yè)務(wù)提供者和智能合約審計(jì)者應(yīng)對(duì)智能合約中的個(gè)人隱私和商業(yè)秘密的保護(hù)措施進(jìn)

行審計(jì),并保留審計(jì)記錄;

f)智能合約業(yè)務(wù)提供者和智能合約審計(jì)者應(yīng)對(duì)源代碼安全、二進(jìn)制代碼安全以及執(zhí)行環(huán)境的安

全進(jìn)行審計(jì),并保留審計(jì)記錄。

10

YD/TXXXX-202X

目次

前言................................................................................................................................................................III

1范圍..................................................................................................................................................................1

2規(guī)范性引用文件..............................................................................................................................................1

3術(shù)語(yǔ)和定義......................................................................................................................................................1

4智能合約的安全技術(shù)框架..............................................................................................................................2

4.1智能合約安全的整體邏輯架構(gòu)...............................................................................................................2

4.2智能合約的角色定義...............................................................................................................................3

4.3智能合約各角色的安全職責(zé)...................................................................................................................4

4.3.1智能合約業(yè)務(wù)提供者的安全職責(zé)....................................................................................................4

4.3.2智能合約技術(shù)提供者的安全職責(zé)....................................................................................................4

4.3.3智能合約審計(jì)者的安全職責(zé)............................................................................................................4

5智能合約設(shè)計(jì)開(kāi)發(fā)的安全技術(shù)要求..............................................................................................................4

5.1智能合約功能設(shè)計(jì)的安全技術(shù)要求.......................................................................................................4

5.1.1智能合約設(shè)計(jì)的安全性....................................................................................................................4

5.1.2智能合約的處理錯(cuò)誤能力................................................................................................................5

5.1.3智能合約的敏感信息規(guī)避要求........................................................................................................5

5.1.4智能合約結(jié)果一致性的安全設(shè)計(jì)....................................................................................................5

5.1.5區(qū)塊鏈平臺(tái)的兼容能力的設(shè)計(jì)........................................................................................................5

5.1.6智能合約安全風(fēng)險(xiǎn)規(guī)避要求............................................................................................................5

5.2智能合約編碼的安全技術(shù)要求...............................................................................................................5

5.2.1開(kāi)發(fā)環(huán)境安全....................................................................................................................................5

5.2.2明確變量定義....................................................................................................................................5

5.2.3盡量避免直接嵌入底層語(yǔ)言............................................................................................................6

5.2.4數(shù)學(xué)運(yùn)算的邊界條件........................................................................................................................6

5.2.5避免不可靠輸入................................................................................................................................6

5.2.6錯(cuò)誤處理............................................................................................................................................6

5.2.7合約代碼庫(kù)........................................................................................................................................6

5.3智能合約的邏輯安全技術(shù)要求...............................................................................................................6

5.3.1身份驗(yàn)證............................................................................................................................................6

5.3.2權(quán)限管理............................................................................................................................................6

5.3.3業(yè)務(wù)邏輯安全....................................................................................................................................6

6智能合約測(cè)試驗(yàn)證的安全技術(shù)要求..............................................................................................................6

7智能合約編譯部署的安全技術(shù)要求..............................................................................................................7

7.1智能合約編譯的安全技術(shù)要求...............................................................................................................7

7.2智能合約部署的安全技術(shù)要求...............................................................................................................7

8智能合約觸發(fā)運(yùn)行安全技術(shù)要求..................................................................................................................7

8.1智能合約觸發(fā)的安全技術(shù)要求...............................................................................................................8

I

YD/TXXXX-202X

8.1.1直接接口調(diào)用安全............................................................................................................................8

8.1.2合約間調(diào)用安全................................................................................................................................8

8.1.3預(yù)言機(jī)調(diào)用安全................................................................................................................................8

8.2智能合約運(yùn)行的安全技術(shù)要求...............................................................................................................8

8.2.1運(yùn)行環(huán)境本身的安全性....................................................................................................................8

8.2.2運(yùn)行環(huán)境依賴性................................................................................................................................8

8.2.3規(guī)避惡意合約代碼對(duì)運(yùn)行環(huán)境底層的影響....................................................................................8

8.2.4運(yùn)行環(huán)境中不同合約的交互安全....................................................................................................9

9智能合約的維護(hù)治理安全..............................................................................................................................9

9.1智能合約的凍結(jié)/解凍安全......................................................................................................................9

9.2智能合約的升級(jí)安全...............................................................................................................................9

9.3智能合約的禁用安全...............................................................................................................................9

9.4智能合約的安全審計(jì)...............................................................................................................................9

II

YD/TXXXX-202X

區(qū)塊鏈智能合約安全技術(shù)要求

1范圍

本文件規(guī)定了區(qū)塊鏈智能合約安全技術(shù)要求,包括區(qū)塊鏈智能合約的安全技術(shù)框架、設(shè)計(jì)開(kāi)發(fā)安全、

測(cè)試驗(yàn)證安全、編譯部署安全、觸發(fā)運(yùn)行安全、維護(hù)治理安全方面的技術(shù)要求。

本文件適用于指導(dǎo)區(qū)塊鏈智能合約業(yè)務(wù)提供者、智能合約技術(shù)提供者、智能合約審計(jì)者等相關(guān)角色

在區(qū)塊鏈智能合約的設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署和運(yùn)維等過(guò)程中進(jìn)行安全保障,也適用于指導(dǎo)區(qū)塊鏈智能

合約系統(tǒng)的安全性評(píng)估。

2規(guī)范性引用文件

下列文件中的內(nèi)容通過(guò)文中的規(guī)范性引用而構(gòu)成文件必不可少的條款。其中,注日期的引用文件,

僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本

文件。

GB/T25069-2022信息安全技術(shù)術(shù)語(yǔ)

ISO22739:2020區(qū)塊鏈和分布式賬本技術(shù)–術(shù)語(yǔ)(Blockchainanddistributedledger

technologies—Vocabulary)

3術(shù)語(yǔ)和定義

GB/T25069-2022和ISO22739:2020界定的以及下列術(shù)語(yǔ)和定義適用于本文件。

3.1

區(qū)塊block

區(qū)塊鏈的基本組成單元,由區(qū)塊頭和區(qū)塊數(shù)據(jù)組成。

[來(lái)源:ISO22739:2020,3.2,有修改]

3.2

共識(shí)consensus

在共識(shí)節(jié)點(diǎn)間達(dá)成區(qū)塊數(shù)據(jù)一致性的認(rèn)可。

[來(lái)源:ISO22739:2020,3.11,有修改]

3.3

共識(shí)協(xié)議consensusprotocol

區(qū)塊鏈中通過(guò)數(shù)學(xué)算法實(shí)現(xiàn)不同節(jié)點(diǎn)之間對(duì)交易達(dá)成一致的方法。

[來(lái)源:ISO22739:2020,3.12,有修改]

3.4

1

YD/TXXXX-202X

區(qū)塊鏈blockchain

將區(qū)塊順序相連,并通過(guò)共識(shí)協(xié)議、數(shù)字簽名、雜湊函數(shù)等密碼學(xué)方式保證的抗篡改和不可偽造的

分布式賬本。

[來(lái)源:ISO22739:2020,3.6,有修改]

3.5

節(jié)點(diǎn)node

具有特定功能的區(qū)塊鏈組件,可獨(dú)立運(yùn)行。

[來(lái)源:ISO22739:2020,3.27,有修改]

3.6

交易transaction

區(qū)塊鏈雙方或多方參與,并且會(huì)發(fā)生狀態(tài)變更的一種區(qū)塊基本組成單元。

[來(lái)源:ISO22739:2020,3.77,有修改]

3.7

用戶user

參與產(chǎn)生區(qū)塊鏈交易數(shù)據(jù)的個(gè)人、組織或進(jìn)程。

[來(lái)源:ISO22739:2020,3.3,有修改]

3.8

智能合約smartcontract

以運(yùn)行在區(qū)塊鏈中的軟件程序形式存在的合約,合約由區(qū)塊鏈部署、執(zhí)行結(jié)果記錄在區(qū)塊鏈中。

[來(lái)源:ISO22739:2020,3.72]

3.9

執(zhí)行環(huán)境executionenvironment

智能合約的執(zhí)行容器,負(fù)責(zé)根據(jù)合約代碼和用戶發(fā)送的交易指令對(duì)區(qū)塊鏈狀態(tài)進(jìn)行更新。

3.10

鏈上on-chain

在區(qū)塊鏈內(nèi)定位、執(zhí)行或運(yùn)行。

[來(lái)源:ISO22739:2020,3.54,有修改]

4智能合約的安全技術(shù)框架

4.1智能合約安全的整體邏輯架構(gòu)

本文件圍繞智能合約的生命周期,在智能合約的設(shè)計(jì)開(kāi)發(fā)、測(cè)試驗(yàn)證、編譯部署、觸發(fā)運(yùn)行、維護(hù)

治理等各個(gè)階段提出安全要求。

智能合約安全的整體邏輯架構(gòu),如圖1所示。

2

YD/TXXXX-202X

圖1區(qū)塊鏈智能合約安全的整體邏輯架構(gòu)圖

智能合約全生命周期各階段的安全要求,主要包括:

a)智能合約設(shè)計(jì)開(kāi)發(fā)的安全:主要包括智能合約的設(shè)計(jì)安全、編碼安全、邏輯安全等;

b)智能合約測(cè)試驗(yàn)證的安全:主要包括智能合約的靜態(tài)掃描、動(dòng)態(tài)掃描、形式化驗(yàn)證等;

c)智能合約編譯部署的安全:主要包括智能合約編譯安全、部署安全等;

d)智能合約觸發(fā)運(yùn)行的安全:主要包括智能合約觸發(fā)安全、運(yùn)行安全等;

e)智能合約維護(hù)治理的安全:主要包括智能合約凍結(jié)/解凍安全、升級(jí)安全、禁用安全、安全審

計(jì)等。

4.2智能合約的角色定義

參與區(qū)塊鏈智能合約的設(shè)計(jì)開(kāi)發(fā)、驗(yàn)證測(cè)試、編譯部署、運(yùn)行和運(yùn)維等過(guò)程的角色主要包括:

a)智能合約業(yè)務(wù)提供者

智能合約業(yè)務(wù)提供者是指提供區(qū)塊鏈智能合約業(yè)務(wù)的主體,主要負(fù)責(zé)鏈上部署運(yùn)行、管理和維護(hù)區(qū)

塊鏈智能合約等,直接或間接地為區(qū)塊鏈用戶提供服務(wù)。

b)智能合約技術(shù)提供者

3

YD/TXXXX-202X

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論