




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范本里購(gòu)買
- 原料代加工合同范本
- 公司股權(quán)抵押合同范本
- 玻璃供貨合同范本
- 小區(qū)燈具合同范本
- 醫(yī)院物業(yè)租賃合同范本
- 合伙干股合同范本
- 合同范本模板簡(jiǎn)約
- 買牦牛合同范本
- 單位設(shè)計(jì)合同范本
- 美甲基礎(chǔ)理論精品專業(yè)課件
- 監(jiān)護(hù)人考試試題含答案
- 冀教版四年級(jí)下冊(cè)英語(yǔ)全冊(cè)教學(xué)設(shè)計(jì)(經(jīng)典,可直接打印使用)
- 高壓變頻器技術(shù)協(xié)議最終2.3日
- 保潔整改方案計(jì)劃
- 新編地圖學(xué)教程(第三版)毛贊猷_期末復(fù)習(xí)知識(shí)點(diǎn)總結(jié)
- 碘-淀粉比色法測(cè)定淀粉酶課件
- 經(jīng)銷商授權(quán)協(xié)議合同書(中英文對(duì)照)
- 初三化學(xué)公式大全
- 安裝超載限制器方案
- 外科學(xué)總論--創(chuàng)傷ppt
評(píng)論
0/150
提交評(píng)論