《CSA GCR:2023區塊鏈數據層安全與隱私保護設計指南(65頁).pdf》由會員分享,可在線閱讀,更多相關《CSA GCR:2023區塊鏈數據層安全與隱私保護設計指南(65頁).pdf(65頁珍藏版)》請在三個皮匠報告上搜索。
1、2023 云安全聯盟大中華區-版權所有12023 云安全聯盟大中華區-版權所有22023 云安全聯盟大中華區-保留所有權利。你可以在你的電腦上下載、儲存、展示、查看及打印,或 者訪問云安全聯盟大中華區官網(https:/www.c-)。須遵守以下:(a)本文只可作個人、信息獲取、非商業用途;(b)本文內容不得篡改;(c)本文不得轉發;(d)該商標、版權或其他聲明不得刪除。在遵循 中華人民共和國著作權法相關條款情況下合理使用本文內容,使用時請注明引用于云安全聯盟大中華區。2023 云安全聯盟大中華區-版權所有3序言序言在數字化變革的今天,隨著新冠疫情仍在全球蔓延,大國間戰略博弈塑造了現今百年未有
2、之國際變局,包含數據安全的數字安全成為了保障國家安全的重要組成部分。各國間的戰略博弈帶來了全新挑戰,威脅形式層出不窮,鑄劍亮劍刻不容緩,各國通過立法、技術升級等各種措施積極應對挑戰是國際共識。隨著新興技術如區塊鏈、人工智能等飛速發展,區塊鏈逐漸成為“價值互聯網”的重要基礎設施,各國都開始積極擁抱區塊鏈技術,開辟國際產業競爭的新賽道。區塊鏈自身有著分布式、點對點傳輸、透明、可追蹤、不可篡改、數據安全等特點,在某種程度上解決了數據的完整性、真實性及唯一性等問題,使得用區塊鏈技術解決數據安全與隱私的問題成為人們競相關注的焦點。區塊鏈數據安全與隱私保護能解決哪些問題?本文檔從區塊鏈數據概念與范疇、數據
3、格式入手,分析區塊鏈數據安全與隱私保護的需求,從接入層、處理層及展示層的設計指南全面呈現數據安全與隱私保護總體框架,并提供測試指南,最后以區塊鏈數據安全應用場景收尾。文章內容深入淺出,是研究區塊鏈數據安全與隱私保護領域很好的參考材料。李雨航 Yale LiCSA 大中華區主席兼研究院院長2023 云安全聯盟大中華區-版權所有4致謝致謝云安全聯盟大中華區(簡稱:CSA GCR)區塊鏈安全工作組在 2020 年 2 月份成立。由黃連金擔任工作組組長,9 位領軍人分別擔任 9 個項目小組組長,分別有:知道創宇創始人&CEO 趙偉領銜數字錢包安全小組,北大信息科學技術學院區塊鏈研究中心主任陳鐘領銜共識
4、算法安全小組,賽博英杰創始人&董事長譚曉生領銜交易所安全小組,安比實驗室創始人郭宇領銜智能合約安全小組,世界銀行首席信息安全架構師張志軍領銜 Dapp 安全小組,中國移動集團信安中心高工于樂博士領銜去中心化數字身份安全小組,北理工教授祝烈煌領銜網絡層安全小組,武漢大學教授陳晶領銜數據層安全小組,零時科技 CEO 鄧永凱領銜 AML 技術與安全小組。區塊鏈安全工作組現有 100 多位安全專家們,分別來自中國電子學會、耶魯大學、北京大學、北京理工大學、世界銀行、中國金融認證中心、華為、騰訊、知道創宇、慢霧科技、啟明星辰、天融信、聯想、OPPO、零時科技、普華永道、安永、阿斯利康等六十多家單位。本白
5、皮書主要由區塊鏈數據安全小組專家撰寫,感謝以下專家的貢獻:原創作者:原創作者:陳晶何琨杜瑞穎劉鰲粟栗劉斐王東暉趙勇賀志生劉虎張書東徐麗華董喆審核專家:審核專家:黃連金陳鐘祝烈煌王安宇高巍姚凱郭鵬程貢獻單位:貢獻單位:華為技術有限公司OPPO 廣東移動通信有限公司北京奇虎科技有限公司在此感謝以上專家。如譯文有不妥當之處,敬請讀者聯系 CSA GCR 秘書處給與雅正!聯系郵箱:researchc-;國際云安全聯盟 CSA 公眾號:2023 云安全聯盟大中華區-版權所有5目錄目錄序言.3致謝.41 區塊鏈數據概念和范疇.81.1 區塊鏈發展趨勢.81.2 區塊鏈數據概念.101.3 區塊鏈數據范疇.
6、102 區塊鏈數據安全與隱私需求.112.1 區塊鏈數據保護安全需求.112.2 區塊鏈數據隱私保護需求.122.3 區塊鏈數據安全與隱私保護的聯系.133 區塊鏈數據格式.143.1 區塊鏈業務數據.173.1.1 區塊鏈頭數據.183.1.2 區塊鏈塊數據.193.1.3 特殊區塊鏈數據結構.203.2 區塊鏈支撐數據.223.2.1 業務支撐數據.223.2.2 網絡支撐數據.223.2.3 存儲支撐數據.223.2.4 應用支撐數據.233.3 區塊鏈身份數據.234 數據層安全與隱私保護.264.1 數據安全與隱私保護總體框架.264.2 接入層設計指南.264.3 處理層設計指南.
7、274.3.1 數據加密.274.3.2 匿名簽名.294.3.3 多重簽名.312023 云安全聯盟大中華區-版權所有64.3.4 安全多方計算.314.3.5 可驗證計算.324.3.6 零知識證明.344.3.7 不經意訪問.354.4 展示層設計指南.384.4.1 數據發布.384.4.2 安全審計技術.395 區塊鏈數據層測試指南.405.1 性能測試.405.1.1 數據處理吞吐量測試.405.1.2 數據處理響應時間測試.405.2 算法安全性測試.415.2.1 密碼算法安全性測試.415.2.2 哈希算法安全性測試.425.3 協議一致性測試.425.3.1 主動測試.43
8、5.3.2 被動測試.445.4 協議安全性測試.445.4.1 隨機擾動測試(fuzzing testing).465.4.2 協議語法變異測試.465.4.3 基于有限狀態機模型的錯誤注入測試.475.5 匿名性測試.475.5.1 輸入輸出關聯分析.485.5.2 IP 地址關聯分析.495.5.3 業務流分析.496 區塊鏈數據安全應用場景(舉例).506.1 變色龍哈希函數構建可編輯區塊鏈.506.1.1 可編輯區塊鏈的現實需求.506.1.2 可編輯區塊鏈的實現框架.506.1.3 基于變色龍哈希函數的可編輯區塊鏈方案.526.1.4 可編輯區塊鏈應用技術.546.2 基于區塊鏈+
9、大數據風控的城市金融綜合服務平臺.572023 云安全聯盟大中華區-版權所有76.2.1 城市金融綜合服務平臺.576.2.2 城市金融綜合服務平臺功能架構.586.2.3 區塊鏈數據安全保護技術.596.3 基于區塊鏈的司法存證方案.626.3.1 區塊鏈存證技術背景.626.3.2 e 簽寶區塊鏈司法存證方案.636.3.3 司法存證中的數據安全保護.642023 云安全聯盟大中華區-版權所有81 區塊鏈數據概念和范疇區塊鏈數據概念和范疇1.1區塊鏈發展趨勢區塊鏈發展趨勢隨著互聯網技術的發展,計算機、大數據、人工智能、物聯網和信息安全等技術對人們的工作和生活產生了深遠的影響?;ヂ摼W的快速普
10、及促進了社會進步和國家經濟發展。區塊鏈技術于 2008 年由中本聰在比特幣中首次提出之后,這十多年間處于快速發展的階段。全球調查顯示,有 39%的企業高管表示已將區塊鏈投入生產當中。區塊鏈的應用正在跨行業蔓延,遠遠超出了其最初的金融科技應用范圍,技術、媒體、電信、生命科學、健康醫療和政務等更多領域正在擴展和豐富各自的區塊鏈計劃。區塊鏈作為數字時代的前沿技術,近年來逐漸成為中央和地方政府關注的重點,被視作具有國家戰略意義的新興產業,在 2019 年的全國兩會上也被頻繁提及。早在 2016年,中國政府就開始了對于區塊鏈技術的探索。區塊鏈與 5G、物聯網、人工智能都成為了未來科技發展的重中之重。20
11、16 年 12 月,在國務院印發的十三五國家信息化規劃中,就提出要強化戰略性前沿技術超前布局,首次提及區塊鏈技術。2017-2018 年,國務院發布的指導意見中,有 6 份文件提及要明確發展及利用區塊鏈技術。2019 年,中央各部委出臺區塊鏈相關政策更是緊鑼密鼓,在 2019 年 10 月 24 日,中共中央政治局第十八次集體學習時,習近平在主持學習時強調,把區塊鏈作為核心技術自主創新的重要突破口,明確主攻方向,加大投入力度,著力攻克一批關鍵核心技術,加快推動區塊鏈技術和產業創新發展。2020 年 2 月 5 日中央一號文件更是將區塊鏈放在了人工智能、第五代移動通信網絡、智慧氣象等前列,體現了
12、區塊鏈產業在國家戰略中的地位,也意味著中央對區塊鏈產業的重視。此外,我國在此領域的專利申請比重由 2014 年的33.33%上漲到 2018 年的 82.1%。以全球視野來看,我國在區塊鏈技術領域占據了領先優勢。2023 云安全聯盟大中華區-版權所有9區塊鏈作為分布式數據存儲、點對點傳輸、共識機制、加密算法等技術的集成應用,近年來已成為聯合國、國際貨幣基金組織等國際組織以及許多國家政府研究討論的熱點,產業界也紛紛加大投入力度。目前,區塊鏈的應用已延伸到物聯網、智能制造、供應鏈管理、數字資產交易等多個領域,將為云計算、大數據、移動互聯網等新一代信息技術的發展帶來新的機遇,有能力引發新一輪的技術創
13、新和產業變革。,可以用來解決現有業務的一些痛點,實現業務模式的創新。在一定程度目前,區塊鏈逐漸成為“價值互聯網”的重要基礎措施,各國都開始積極擁抱區塊鏈技術,開辟國際產業競爭的新賽道,搶占新一輪產業創新的制高點,以強化國際競爭力。區塊鏈有著分布式、點對點傳輸、透明、可追蹤、不可篡改、數據安全等特點上解決了價值傳輸過程中完整性、真實性、唯一性的問題。區塊鏈技術將繼續加快在產業場景中的廣泛應用,與實體經濟產業深度融合,形成一批“產業區塊鏈”項目,將會成為區塊鏈技術的應用趨勢。同時,企業應用將成為區塊鏈的主戰場,聯盟鏈/私有鏈將成為主流方向。例如:阿里將區塊鏈應用到了電子票據、醫療信息存證、公積金存
14、繳證明等生活場景上;騰訊將區塊鏈的應用更側重于金融方面,區塊鏈電子發票、區塊鏈游戲等;百度作為互聯網三大巨頭,也有百度區塊鏈引擎 BBE、超級鏈等區塊鏈產品。相比大企業,實際上中小企業更需要應用區塊鏈來進行產業升級轉型,以此來降低資金、時間、人工等成本并更快的獲得市場認可取得更大的收益。目前,網絡安全問題越發突出,而隨著區塊鏈的快速發展,也會讓區塊鏈的數據安全問題成為人們關注的焦點。在區塊鏈迅速發展的背景下,中國順應全球化需求,緊跟國際步伐,積極推動國內區塊鏈的相關領域研究、標準化制定以及產業化發展。與對比特幣等數字貨幣監管日益趨嚴的背景相比,針對區塊鏈技術的支持與鼓勵已在全球范圍內達成共識,
15、國內區塊鏈技術也將在未來數年內得到國家與地方的政策支持。在政策與市場的雙層驅動下,區塊鏈相關產業有望脫虛入實,區塊鏈技術加速探索可能的應用場2023 云安全聯盟大中華區-版權所有10景。1.2區塊鏈數據概念區塊鏈數據概念區塊鏈數據是指對區塊鏈中的事件進行記錄并可以識別的抽象符號。主要包括區塊、事務、實體、合約、賬戶、配置等數據對象。不同類別的數據對象功能不相同。這些區塊鏈數據可以通過數標識符、中文名稱、英文名稱、數據類型、數據長度、數據說明、數據備注等屬性來描述,且具有一定的格式規范。1.3區塊鏈數據范疇區塊鏈數據范疇區塊鏈數據主要包含以下數據對象:1)區塊數據:區塊數據:區塊鏈網絡的底層鏈式
16、數據,用于把一段時間內發生的事務處理結果持久化為成塊鏈式數據結構。通常區塊由區塊頭和區塊體構成。區塊頭包含相關控制信息,區塊體包含具體事務數據。2)事務數據:事務數據:區塊鏈系統上承載的具體業務動作的數據。事務包含非交易類型事務和交易類型事務。3)實體數據:實體數據:描述事務靜態屬性的數據。包含發起方地址、接收方地址、交易額、交易費用、存儲數據及實體數據備注。4)合約數據:合約數據:描述事務動態處理邏輯的數據。是一套以計算機代碼形式定義的承諾,以及合約參與方可執行承諾的協議。5)賬戶數據:賬戶數據:描述區塊鏈事務的發起者和相關方的數據。區塊中記錄的事務信息均被關聯到相關賬戶上,每個區塊鏈服務客
17、戶擁有多個賬戶使用區塊鏈服務。6)配置數據:配置數據:區塊鏈系統正常運行過程中所需要的配置信息。包含共識協議版本號,軟件版本號和網絡通信底層對等節點配置信息等。2023 云安全聯盟大中華區-版權所有112 區塊鏈數據安全與隱私需求區塊鏈數據安全與隱私需求2.1 區塊鏈數據保護安全需求區塊鏈數據保護安全需求數據安全是區塊鏈的基本安全目標。區塊鏈作為一種分布式存儲系統,需要存儲包括交易、用戶信息、智能合約代碼和執行中間狀態等數據。這些數據至關重要,是區塊鏈安全保護的首要實體,主要包含以下五點基本需求:1)保密性:保密性:規定了不同用戶對不同數據的訪問控制權限,僅有權限的用戶才可以對數據進行相應的操
18、作,信息不能被未授權的用戶知曉和使用。具體要求區塊鏈設置相應的認證規則、訪問控制和審計機制。認證規則規定了每個節點加入區塊鏈的方式和有效的身份識別方式。訪問控制規定了訪問控制的技術方法和每個用戶的訪問權限。審計監管是指區塊鏈能夠提供有效的安全事件監測、追蹤、分析等一整套監管方案。2)完整性:完整性:指區塊鏈中的任何書籍不能被未經過授權的用戶實施偽造、修改、刪除等非法操作。具體指用戶發布的交易信息不可偽造,經過全網共識的區塊不可篡改偽造,智能合約的狀態變量、中間結果和最終輸出不可偽造。區塊鏈系統中一切行為不可抵賴。完整性在交易底層需要數字簽名,哈希函數等密碼組件支持,在共識層面上,數據的完整性依
19、賴于共識安全。3)可用性:可用性:指數據可以在任何時間被有權限的用戶訪問和使用。區塊鏈中的可用性包含以下四方面:首先,可用性要求區塊鏈具備在遭受攻擊時仍然具備能夠提供可靠服務的能力。其次,可用性要求區塊鏈受到攻擊導致部分功能受損的情況下,具備短時間內修復和重構的能力。另外,可用性要求區塊鏈可以提供無差別服務。最后,可用性需要保證用戶的訪問請求可以在有限時間內得到區塊鏈網絡響應,即需要區塊鏈具有高吞吐量,低響應時延,可以提供穩定服務。4)不可抵賴性:不可抵賴性:指區塊鏈協議通信雙方在信息交互過程中,確信參與者本身,以2023 云安全聯盟大中華區-版權所有12及參與者所提供的信息的真實同一性,即所
20、有參與者都不可能否認或抵賴本人的真實身份,以及提供信息、執行操作的真實痕跡。5)可控性:可控性:指對流通在區塊鏈系統中的信息傳播及具體內容能夠實現有效控制的特性,即區塊鏈系統中的任何數據信息要在一定傳輸范圍和存放空間內可控。2.2 區塊鏈數據隱私保護需求區塊鏈數據隱私保護需求在信息系統中,隱私是指數據擁有方不想透露的初始數據或者數據隱含的特征。而區塊鏈技術為了維護分布式節點之間的數據同步實并達成全網共識,需要公開全網的交易信息,這樣會給用戶帶來嚴重的隱私問題,因此,為了保護用戶隱私以及降低隱私泄露的風險,必須對一些敏感數據進行相應的處理。在區塊鏈中,隱私保護主要是針對用戶身份信息和交易信息兩部
21、分內容,區塊鏈的其余信息(如配置數據,合約數據等)對于隱私保護的需求相對而言并不高。因此,區塊鏈的隱私保護主要可以劃分為身份隱私保護和交易隱私保護。1)身份隱私保護:身份隱私保護:身份隱私是指區塊鏈地址關聯于用戶身份的隱私關系。區塊鏈地址是用戶在區塊鏈系統匯總使用的昵稱。無論用戶身份信息是怎樣的,用戶都不需要第三方參與來創建和使用地址。而當用戶使用區塊鏈地址參與區塊鏈服務時,個人的敏感信息存在被泄露的可能。因此,區塊鏈身份隱私保護要求用戶的身份信息、物理地址、IP 地址與區塊鏈上的用戶公鑰、地址等公開信息之間是不關聯的。任何未授權節點僅僅依靠區塊鏈上公開的數據無法獲取有關用戶身份的任何信息,也
22、不能通過網絡監聽,流量分析等網絡技術對用戶的身份和交易進行追蹤。2)交易隱私保護:交易隱私保護:交易隱私是指保存在區塊鏈中的交易記錄以及其背后隱藏的信息。在金融領域中,各種業務往來會產生大量的交易記錄,這些交易記錄是十分隱私且重要的數據,通過用戶消費的交易記錄很有可能推斷出用戶的收入水平、生活狀態等隱2023 云安全聯盟大中華區-版權所有13私信息,這會導致用戶個人的敏感信息泄露。因此,交易隱私保護要求交易本身的數據信息對非授權節點匿名。在比特幣中特指交易金額,交易的發送方公鑰,接受地址等其他交易信息。任何未授權節點無法通過有效的技術手段獲取交易相關的知識,在一些需要高隱私保護強度的區塊鏈,還
23、要求割裂交易與交易之間的關聯性,即非授權節點無法有效推斷出兩個交易是否具有前后連續性,是否屬于同一個用戶等關聯關系。2.3 區塊鏈數據安全與隱私保護的聯系區塊鏈數據安全與隱私保護的聯系區塊鏈數據安全,是指在區塊鏈中承載信息的數據的安全,保護區塊鏈中數據安全就是需要保護包含區塊數據、事務數據、交易數據、賬戶數據等采取不同的數據保障措施保證數據的安全。而目前,區塊鏈發展迅速,區塊鏈中的數據量逐步變大,數據的交互需求增多,數據安全與數據的使用呈現相伴相生的,只要有數據使用,就存在數據安全問題,而數據的使用是由業務所驅動。區塊鏈隱私保護是更關注某些特定的數據元素,如身份隱私,是指用戶身份信息和區塊鏈地
24、址間的關聯關系,用戶在使用區塊鏈地址參與區塊鏈業務時可能會泄露敏感信息導致被用于推測區塊鏈地址對應的真實身份;又如交易隱私,是指區塊鏈中存儲的交易記錄等信息,通常交易記錄也能反映出一些敏感知識,泄露用戶的隱私。2023 云安全聯盟大中華區-版權所有143 區塊鏈數據格式區塊鏈數據格式區塊鏈發展至今,按照區塊鏈的開放程度主要分為公有鏈,聯盟鏈,私有鏈三類,也是目前大眾普遍接受的一個分類。在不同類型的區塊鏈系統中,區塊鏈的數據結構在細節上會存在差異,但在整體功能上基本是一致的。一般情況下,區塊鏈體系架構由自下而上的數據層、網絡層、共識層、激勵層、合約層和應用層六層組成。其中,網絡層包括分布式組網機
25、制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點的各類共識機制算法,是區塊鏈系統的核心技術;合約層主要封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和實例,如搭建在以太坊上的各類區塊鏈應用就是部署在應用層;而數據層主要描述區塊鏈的物理存在形式,包含了區塊鏈上從創世區塊起始的區塊數據、鏈式結構以及區塊上的隨機數、時間戳、公鑰、私鑰數據等,是整個區塊鏈技術中最底層的數據結構。本章將從區塊鏈數據服務的實體和面向的對象的角度,將區塊鏈數據分為區塊鏈業務數據、區塊鏈支撐數據、區塊鏈身份數據三大類,并進一步闡述區塊鏈體系架構中數據層與其他各層的關聯關系。
26、區塊鏈業務數據、區塊鏈支撐數據和區塊鏈身份數據之間的關系視圖如圖 3.1 所示。其中,業務數據和身份數據主要為區塊鏈鏈上數據,而區塊鏈支撐數據主要為區塊鏈鏈下數據,部分數據由區塊鏈鏈上數據提供完整性保障。2023 云安全聯盟大中華區-版權所有15圖 3.1 區塊鏈業務數據、支撐數據與身份數據區塊鏈業務數據按具體的業務服務目標主要分為賬本數據、共識數據、合約數據、應用數據。(1)區塊鏈賬本數據負責區塊鏈系統的信息存儲,包括收集交易數據,生成數據區塊,對本地數據進行合法性校驗,以及將校驗通過的區塊加到鏈上,將上一個區塊的Hash 簽名嵌入到下一個區塊中組成塊鏈式數據結構,使數據完整性和真實性得到保
27、障,這正是區塊鏈系統防篡改、可追溯特性的來源。賬本數據有兩種數據記錄方式:基于資產和基于賬戶?;谫Y產的模型中,首先以資產為核心進行建模,然后記錄資產的所有權,即所有權是資產的一個字段?;谫~戶的模型中,建立賬戶作為資產和交易的對象,資產是賬戶下的一個字段。(2)區塊鏈共識數據服務于協調保障全網各個節點數據記錄的一致性,區塊鏈系統中的數據由所有節點獨立存儲,在共識機制的協調下,共識層同步各節點的賬本,從而實現節點選舉、數據一致性驗證和數據同步控制等功能。(3)區塊鏈合約數據服務于將區塊鏈系統的業務邏輯以代碼的形式實現、編譯并部2023 云安全聯盟大中華區-版權所有16署,完成既定規則的條件觸發
28、和自動執行,最大限度的減少人工干預,主要內容包括智能合約代碼、智能合約賬戶地址和數字資產描述等。(4)區塊鏈應用數據服務于最終呈現給用戶的部分,主要作用是調用智能合約層的接口,適配區塊鏈的各類應用場景,為用戶提供各種服務和應用。區塊鏈支撐數據主要服務于實現區塊鏈系統中信息的記錄、驗證和傳播的基礎組件部分。(1)網絡發現網絡發現:區塊鏈網絡系統由眾多分散節點通過網絡連接構成,網絡發現支撐數據使得每個節點通過網絡發現協議發現鄰居節點,并與鄰居節點建立鏈路。(2)數據收發:數據收發:節點通過網絡通信協議連接到鄰居節點后,數據收發支撐數據協助節點完成數據交換、區塊廣播,消息共識以及數據同步等。(3)消
29、息通知:消息通知:消息通知相關數據為區塊鏈中不同組件之間以及不同節點之間提供消息通知服務。交易成功之后,客戶通常需要跟蹤交易執行期間的記錄和獲取交易執行的結果,消息通知模塊中消息的生成、分發、存儲和其他功能都與消息通知數據密切相關。(4)數據存儲:數據存儲:根據數據類型和系統結構設計,區塊鏈系統中的數據使用不同的數據存儲模式,存儲模式包括關系型數據庫(比如 MySQL)和非關系型數據庫(比如LevelDB)。通常,需要保存的數據包括公共數據(例如:交易數據、事務數據、狀態數據等)和本地的私有數據等。(5)密碼庫:密碼庫:區塊鏈的多個環節都涉及到密碼學算法。密碼庫數據為上層組件提供基本的密碼學算
30、法支持,包括各種常用的編碼算法、哈希算法、簽名算法、隱私保護算法等等。與此同時,密碼庫數據還涉及諸如密鑰的維護和存儲等方面的功能。區塊鏈身份數據主要服務于系統管理、權限管理和節點管理三大類功能。權限管理權限管理是區塊鏈技術的關鍵部分,尤其對于數據訪問有更多要求的許可鏈而言,通過權限管理,2023 云安全聯盟大中華區-版權所有17可以確保數據和函數調用只能由相應的操作員操作。通過將權限列表提交給賬本層,可以實現分散權限控制,如實現可編輯的區塊鏈功能。節點管理節點管理的核心是對節點標識的識別,通常由以下技術實現:(1)CA 認證,集中式頒發 CA 證書給系統中的各個應用程序,身份和權限由這些證書進
31、行認證和確認;(2)PKI 認證,身份由基于 PKI 的公私密鑰對確認;(3)第三方身份驗證,身份由第三方提供的認證信息確認。由于各種區塊鏈具有不同的應用場景,因此節點管理各有差異,但是區塊鏈身份數據的存儲、管理、維護和更新是區塊鏈系統管理、權限管理和節點管理最根本和最重要的組成部分。3.1 區塊鏈業務數據區塊鏈業務數據一般的區塊鏈數據結構可以分為區塊頭數據和區塊塊數據兩部分內容。圖 3.2 描述了區塊鏈塊數據與區塊頭結構之間的關系。圖 3.2 區塊鏈塊數據與區塊頭數據關系2023 云安全聯盟大中華區-版權所有183.1.1 區塊鏈頭數據區塊鏈頭數據在一般的區塊鏈系統中,區塊頭數據按照不同功能
32、可以劃分為以下三組數據,如表3.1 所示。第一組是用于連接前面區塊、索引父區塊哈希值的數據。第二組主要是描述區塊信息以及顯示區塊狀態信息的重要數據,如版本、區塊序號、時間戳、區塊生成時間、額外附加數據和難度等數據。第三組是與默克爾樹相關的數據,用于快速歸納校驗區塊中的所有交易信息。區塊鏈的大部分功能都由區塊頭實現。表 3.1 區塊頭功能數據分組以比特幣區塊鏈系統和以太坊區塊鏈系統為例,表 3.2 和表 3.3 分別描述了比特幣區塊頭和以太坊區塊頭的數據結構。表 3.2 比特幣區塊頭數據結構功能數據分組描述第一組連接前面區塊、索引父區塊哈希值的數據第二組描述區塊信息以及顯示區塊狀態信息的重要數據
33、第三組與默克爾樹相關的數據,用于歸納校驗區塊中的所有交易信息功能數據分組字段描述第一組父區塊哈希值引用區塊鏈中父區塊的哈希值第二組版本版本號,用于跟蹤軟件/協議的更新時間戳該區塊產生的近似時間難度目標該區塊工作量證明算法的難度目標Nonce用于工作量證明算法的計數器第三組Merkle 根該區塊中交易的默克爾樹根的哈希值功能數據分組字段描述第一組ParentHash父區塊的哈希值UncleHash叔區塊列表哈希值Coinbase礦工接受獎勵的地址Difficulty區塊難度目標Number區塊號,從 0 號開始算起2023 云安全聯盟大中華區-版權所有19表 3.3 以太坊區塊頭數據結構3.1.
34、2 區塊鏈塊數據區塊鏈塊數據區塊鏈塊數據,也被稱為區塊鏈體數據,其中主要的部分是該區塊打包的所有交易記錄。這些所有的交易將通過 Merkle 樹的 Hash 過程產生一個唯一 Merkle 根值記入區塊頭。對于一般的區塊鏈系統而言,一個區塊鏈塊數據中的交易可以分為五類數據,詳情參照表 3.4。表 3.4 區塊鏈塊數據內容以比特幣系統為例,每筆交易的詳細信息如表 3.5 所示。第二組GasLimit理論 Gas 上限GasUsed區塊內所有交易執行產生的 gas 總和Nonce隨機數,工作量證明算法的計數器Time區塊創建的時間Bloom交易收據日志組成的布隆過濾器Extra區塊的附加數據第三組
35、Root狀態樹的根哈希值TxHash交易樹的根哈希值ReceiptHash收據樹的根哈希值字段描述版本/類型交易的類屬或參照的版本規則輸入信息交易輸入的數量,哈希值,序號,交易單價、數量等輸出信息交易的接收方地址,交易費用總量等附加數據與區塊鏈交易相關的額外數據其他數據不同類型區塊鏈支持功能的數據參照字段描述版本/類型版本比特幣交易參照規則輸入信息輸入計數器包含交易的輸入數量輸出位置索引被花費的 UTXO 的索引號,第一個為 02023 云安全聯盟大中華區-版權所有20表 3.5 比特幣塊數據內容在以太坊系統中,塊數據交易詳情如表 3.6 所示。表 3.6 以太坊塊數據內容3.1.3 特殊區塊
36、鏈數據結構特殊區塊鏈數據結構上述描述的比特幣區塊鏈系統和以太坊區塊系統,這類公有鏈的區塊結構一般分為區塊頭數據和區塊塊數據,而在聯盟鏈的 Fabric 區塊鏈系統中,區塊的數據結構分為三部分,區塊頭(Header),區塊數據(Data)和與當前區塊相關的元數據(MetaData)。由于在聯盟鏈中,各項交易的需求和面向的對象與私有鏈不同,因此 Fabric 區塊鏈在數據結構上會存在差異。Fabric 區塊數據結構如表 3.7。交易哈希值指向被花費的 UTXO 所在的交易的哈希序列號固定值 0 xFFFFFFFF解鎖腳本相關解鎖腳本大小,需要滿足的條件等輸出信息總量用“聰”表示的比特值鎖定腳本相關
37、鎖定腳本大小,需要滿足的條件等其他數據鎖定時間一個區塊號或 UNIX 時間戳參照字段描述版本/類型Type交易類型,創建合約還是調用合約輸入信息Nonce交易次數Value需要交易的以太坊數量Gasprice交易的 gas 價格GasLimit執行交易可使用的最大 gas 量輸出信息R_Address交易接收方地址Gas交易付出的 gas 總量附加數據Data交易的附加數據其他數據VRS交易簽名Init合約創建時的初始化代碼附加數據Data與交易相關的附加數據2023 云安全聯盟大中華區-版權所有21表 3.7 Fabric 區塊結構內容Fabric 區塊頭包含三個字段,當前區塊號(numbe
38、r)、前一個區塊頭哈希(previous_hash)和當前區塊的數據哈希(data_hash),其中 data_hash 字段并非當前區塊的哈希值,而只是當前區塊數據體的哈希值。Fabric 區塊塊數據 Data 包含展示交易信息的數據結構 Envelope 數據,此數據類型主要用于存儲區塊中的交易信息,交易信息主要包括兩個字段,交易發送者的簽名(signature)以及數據載荷(payload)。Fabric 區塊元數據部分包含與當前區塊相關的元數據內容,用于描述 Data 的相關信息,包含排序節點的 MspId(Fabric 區塊鏈以發放證書的方式進行節點身份管理,Msp為成員管理服務提供
39、商),最新的配置塊信息,消息創建者的證書、公鑰以及簽名值。區塊結構字段描述HeaderNumber區塊編號PreviousHash上一個區塊頭的哈希值DataHash上一個區塊數據的哈希值DataType交易類型Version交易版本Timestamp時間戳Channel交易的通道TxId交易編號Chaincode Info鏈碼信息Read Set讀取集Write Set寫入集Endorser_nodeInfo背書節點信息MetaDataCreator消息創建者身份Signature簽名Configuration配置TxFlag交易標記2023 云安全聯盟大中華區-版權所有223.2 區塊鏈支
40、撐數據區塊鏈支撐數據3.2.1 業務支撐數據業務支撐數據支撐區塊鏈協議執行的數據內容,如交易緩存池、狀態前綴樹、轉賬前綴樹、回執前綴樹等。業務支撐數據遭受安全威脅時,將破壞區塊鏈協議的正常執行,降低區塊鏈運行效率。3.2.2 網絡支撐數據網絡支撐數據支撐區塊鏈網絡發現與節點連接的數據內容,如目錄服務器地址,可連通節點地址和候選節點地址。例如比特幣區塊鏈中的 tri 表數據包和 new 表數據包,以太坊區塊鏈中的網絡狀態前綴樹。網絡支撐數據遭受安全威脅時,將破壞區塊鏈節點的連通能力,導致可能遭受隔離攻擊和延時攻擊等攻擊。3.2.3 存儲支撐數據存儲支撐數據支撐區塊鏈臨時信息存儲和永久信息存儲的組
41、件數據內容,如以太坊保存著三種樹,分別為狀態樹、交易樹和收據樹。狀態數據存儲:整個以太坊系統中只有一棵狀態樹,記錄整個以太坊系統的所有賬戶狀態。每個區塊保存著一棵交易樹,記錄該區塊的交易情況,一棵收據樹用來記錄該區塊的交易收據。狀態樹采用 Merkel-Patrica(MPT)樹,而交易樹和狀態樹采用 Merkel樹。底層數據存儲:以太坊中共有三個 LevelDB 數據庫,分別是 BlockDB、StateDB 和ExtrasDB。BlockDB 保存了塊的主體內容,包括塊頭和交易;StateDB 保存了賬戶的狀態數據;ExtrasDB 保存了收據信息和其他輔助信息。2023 云安全聯盟大中華
42、區-版權所有23存儲支撐數據遭受安全威脅時,將破壞所存儲信息的真實性和完整性,降低各類交易驗證和身份驗證速度。3.2.4 應用支撐數據應用支撐數據支撐區塊鏈各類具體應用服務的組件,如可用的 API 接口,合約調用指向的地址等。應用支撐數據遭受安全威脅時,將影響區塊鏈應用服務的效果,甚至導致數字資產流失等后果。3.3 區塊鏈身份數據區塊鏈身份數據在現實世界或者網絡世界要證明自己身份需要提供政府出具的身份證或者是個人的社交賬號,而在區塊鏈中,要證明自己的身份需要依靠加密算法、數字簽名和數字證書所形成的一個體系來證明身份。區塊鏈的身份數據就是指在區塊鏈中這類帶有身份標識屬性的數據。區塊鏈身份的證明讓
43、區塊鏈滿足了公信力的需求,信任不是由政府或者第三方組織等掌控,而是建立在區塊鏈上。區塊鏈對身份數據的管理不是放在中央數據庫中,而是利用用戶的設備來存儲和加密數據,并使用加密來連接多個虛擬網絡中的數據塊。這確保每個信息塊存儲所有記錄的完整并確保副本準確,這些記錄被更改或誤用會被網絡發現。區塊鏈身份數據往往是跟用戶的信息數據和交易轉賬等直接關聯,區塊鏈身份數據的一個體現是交易額存儲的地址,就比如在比特幣系統中的比特幣地址;以太坊中的合約賬戶等提供了區塊鏈交易額存儲的地址。比特幣地址是由公鑰經過 SHA-256 哈希運算后,再通過 RIPEMD-160 哈希運算得到的,定長為 160bit 的地址。
44、用戶通過鎖定腳本的方式將比特幣鎖定到某個比特幣地址,持有該地址私鑰的用戶則相當于擁有拿到這些比特幣的鑰匙。比特幣地址就相當于用戶2023 云安全聯盟大中華區-版權所有24的錢包。通過圖3.3來舉例描述比特幣地址的身份屬性。用戶A需要向用戶B轉賬50BTC,其做法是將 50BTC 放入區塊鏈并用鎖定腳本將這筆錢鎖定到用戶 B 的比特幣地址。用戶 B 通過提供簽名和公鑰來獲取和使用該比特幣地址里面的比特幣。圖 3.3 比特幣地址示例同樣,在以太坊智能合約里,先要構建數字身份認證服務,如以生物學信息或密碼學標識的特有特征信息去構建的數字身份概念。有了數字身份才可以構建合約主體。智能合約里需要去除掉現
45、實世界中如銀行、房管所一類的中心化的登記機構,設法讓合約里的權益和資產數字化。有了數字身份和資產數字化后,就可以構建兩者的映射關系,也就可以使用數字身份去綁定數字化的資產,然后才可以使用代碼的形式來執行。以太坊合約賬戶是在在以太坊區塊鏈中,部署智能合約時生成由代碼控制的賬戶。合約賬戶可以通過設置多重簽名來體現合約賬戶的身份屬性,如圖 3.4。合約賬戶要求一筆轉賬需要轉賬人用戶 A 與用戶 C 的簽名,當用戶 A 需要向用戶 B 轉賬 20 個 ETH時,合約會通知用戶 C 簽名,批準簽名后,用戶 B 則可以得到這 20 個 ETH。2023 云安全聯盟大中華區-版權所有25圖 3.4 以太坊合
46、約賬戶示例區塊賬戶數據主要包括由 PKI 體系為賬戶生成的賬戶公私鑰信息,賬戶擁有的資產說明以及數字證書等。區塊鏈一系列交易的進行離不開賬戶,各個賬戶通過公私鑰機制以及數字簽名方式完成交易并通告全網。保證賬戶數據信息安全是區塊鏈應用需要格外關注的。2023 云安全聯盟大中華區-版權所有264 數據層安全與隱私保護數據層安全與隱私保護4.1 數據安全與隱私保護總體框架數據安全與隱私保護總體框架區塊鏈隱私保護架構可以根據隱私保護的范疇分為區塊鏈內容隱私保護、區塊鏈身份隱私保護和區塊鏈行為隱私保護。1)區塊鏈內容隱私保護:區塊鏈內容隱私保護:個人、機構等實體不愿意被外部世界知曉的信息,包括敏感數據以
47、及數據所表征的特性。2)區塊鏈身份隱私保護:區塊鏈身份隱私保護:可識別的個人數據,以及可以直接定位到具體自然人的信息都屬于隱私保護的范疇。3)區塊鏈行為隱私保護:區塊鏈行為隱私保護:不會直接泄露用戶隱私,但可以據此間接推斷出個人行為軌跡、趨勢或行為特征的信息內容也在區塊鏈隱私保護架構之下。4.2 接入層設計指南接入層設計指南接入層需要確保終端在接入區塊鏈平臺時經過嚴格的標識和認證,防止偽造和假冒,實現接入安全需要具有可靠的密鑰管理機制,從而對實現并支持用戶、節點接入過程中安全傳輸的能力,并能夠阻斷異常的接入;需考慮:1)身份認證:身份認證:需考慮應用用戶的身份認證,防止身份偽造,確保用戶僅訪問
48、其授權的資源;2)訪問控制:訪問控制:需考慮用戶與系統資源的訪問策略,嚴格限制用戶訪問的系統權限;3)WEB 應用攻擊防護:應用攻擊防護:需考慮 WEB 應用可能面臨的 SQL 注入、跨站腳本、信息泄露、惡意代碼等攻擊行為;4)APP 安全:安全:需綜合考慮 APP 面臨的移動安全問題,包括不安全傳輸、信息泄露、反編譯等攻擊行為。2023 云安全聯盟大中華區-版權所有274.3 處理層設計指南處理層設計指南4.3.1 數據加密數據加密要保證在公開信道上傳輸或在公共可訪問區域內存儲的消息不泄露給非目標用戶,通常應采用數據加密技術。簡單來說,數據加密技術是將要保護的消息,又稱為明文,變換為非目標用
49、戶無法理解的形式,又稱為密文。這一過程稱為加密,加密過程中需要使用加密密鑰。密文可由擁有解密密鑰的目標用戶還原為明文,非目標用戶因為沒有解密密鑰,所以無法獲得明文,從而保障了消息的機密性。根據加密密鑰與解密密鑰是否相同,數據加密算法可分為對稱加密和非對稱加密兩類。對稱加密中的兩種密鑰相同,而非對稱加密密鑰中的兩種密鑰不同,并且很難通過加密密鑰計算出解密密鑰。一般來說,對稱加密的速度較快,適合加密大量數據。但是對稱加密面臨著密鑰共享的困難,即消息的收發雙方如何安全地共享加密/解密密鑰。這一困難在互聯網環境中尤為突出,用戶無法在互聯網的開放環境中直接秘密地傳輸加密/解密密鑰。相對的,非對稱加密速度
50、較慢,但是不需要擔心密鑰共享的問題,因此通常用于在互聯網環境中傳輸對稱加密的密鑰。1)對稱加密對稱加密a)對稱加密算法流程:進行對稱加密時,首先要生成密鑰。加密時,加密方使用密鑰對明文加密,得到密文;解密時,解密方使用密鑰對密文解密,得到明文。b)分組模式:一般來說,對稱加密使用的加密算法只能加密一定長度(稱為分組大?。┑拿魑模ǚQ為分組)。實際情況中,明文長度往往遠大于分組大小。需要使用分組模式加密多個分組。2023 云安全聯盟大中華區-版權所有28c)CTR 模式:加密過程:CTR 模式為每個分組生成相應的掩碼,每個分組再與相應的掩碼進行異或操作,實現將明文加密成密文。生成掩碼時,首先生成隨
51、機初始化向量 ctr,對(ctr+i)加密的結果作為第 i 個分組的掩碼,以此實現對所有分組加密。解密過程:解密方首先計算每個分組相應的掩碼,再將掩碼與密文異或即可得到明文。d)CBC 模式:加密過程:CBC 模式加密將明文從前向后加密。加密第 i(i 1)個明文分組時,首先將第 i 個明文分組與第 i-1 個明文分組的加密密文異或,再使用加密算法將異或結果加密,作為密文。加密第 1 個明文分組時,首先將其與一個隨機生成的初始化向量異或,再使用加密算法將異或結果加密,作為密文。解密過程:CBC 模式將分組從后向前依次解密,解密第 i(i 1)個密文分組時,首先使用密鑰將其解密,再將解密結果與第
52、 i-1 個密文分組異或,即可得到明文。解密第1 個密文分組時,首先使用密鑰將其解密,再將解密結果與初始化向量異或,即可得到第 1 個明文分組。e)OFB 模式:加密過程:OFB 模式與 CTR 模式類似。首先為每個分組生成相應的掩碼,每個分組再與相應的掩碼進行異或操作,實現將明文加密成密文。生成掩碼時,首先生成隨機初始化向量,以遞歸方式對其加密,遞歸加密 i 次作為第 i 個分組的掩碼。以此實現對所有分組加密。解密過程:如加密過程,依次求出各分組對應的掩碼,將掩碼與對應密文異或,即可得到對應明文。2)非對稱加密非對稱加密非對稱加密中,加密密鑰與解密密鑰不同。加密密鑰稱為公鑰,是公開的。解密密
53、2023 云安全聯盟大中華區-版權所有29鑰稱為私鑰,一般來說只有目標用戶持有。這一特性使得通信雙方不用秘密共享密鑰。消息發送方可以使用公開可見的公鑰加密明文。加密得到的密文只有持有私鑰的接收方可以解密。進行非對稱加密時,首先生成加密、解密所需密鑰,即公鑰 pk 和私鑰 sk;加密時,加密方使用公鑰 pk 將明文加密成密文;解密時,解密方使用私鑰 sk 將密文解密成明文。4.3.2 匿名簽名匿名簽名在隱私敏感安全應用中,用戶既希望通過簽名操作驗證身份的合法性,使用簽名操作的可追溯和不可抵賴功能,同時又希望在簽名及驗證過程中不泄露身份信息,讓自己的身份既真實又不可公開。匿名簽名機制是實現網絡環境
54、下隱私保護的主要技術途徑。群簽名和環簽名可以給數字簽名增加匿名性。在群簽名和環簽名中,成員可以以匿名的方式代表整個群體對消息簽名,這個簽名是可公開驗證的。1)群簽名群簽名在一個群簽名方案中,一個群體中的任意一個成員可以以匿名的方式代表整個群體對消息進行簽名。與其他數字簽名一樣,群簽名是可以公開驗證的,且可以只用單個群公鑰來驗證。當簽名存在爭議時,群管理者可以確定簽名者的身份。一個好的群簽名方案應滿足以下的安全性要求:a)匿名性:給定一個群簽名后,對除了唯一的群管理員以外的任何人來說,確定簽名者的身份是不可行的,至少在計算上是困難的。b)不關聯性:在不打開簽名的情況下,確定兩個不同的簽名是否為同
55、一個群成員所簽的是不可行的,至少在計算上是困難的。c)不可偽造性:只有群成員才能產生有效的群簽名。其他任何人包括群管理員也不能偽造一個合法的簽名。d)可跟蹤性:群管理員在發生糾紛的情況下可以打開一個簽名來確定出簽名者的2023 云安全聯盟大中華區-版權所有30身份,而且任何人都不能阻止一個合法簽名的打開。e)防陷害性:不論是群成員,還是管理員,都不能代表其他群成員對消息簽名。f)抵抗聯合攻擊:即使一些群成員串通在一起也不能產生一個合法的不能被跟蹤的群簽名。群簽名通常包含以下過程:在系統初始化時,生成群公鑰和群私鑰;當一個用戶加入系統時,用戶和群管理員使用規定的交互式協議,產生群員的私鑰和成員證
56、書,并使群管理員得到群成員的私有密鑰;當群成員簽名時,群成員使用自己的私鑰對消息進行簽名;驗證簽名時,驗證者使用群公鑰驗證簽名是否由群成員所生成;在需要時,群管理員可以根據簽名和群私鑰確定簽名者的合法身份。2)環簽名環簽名環簽名和群簽名相似,但相比于群簽名,環簽名中只有環成員,沒有管理者。好的環簽名方案應滿足以下安全性要求:a)正確性:如果按照正確的簽名步驟對消息進行簽名,并且在傳播過程中簽名沒被篡改,那么環簽名滿足簽名驗證等式。b)無條件匿名性:攻擊者即使非法獲取了所有可能簽名者的私鑰,他能確定出真正的簽名者的概率不超過 1/N,這里 N 為所有可能簽名者的個數。c)不可偽造性:外部攻擊在不
57、知道任何成員私鑰的情況下,即使能從一個產生環簽名的隨機預言者那里得到任何消息 m 的簽名,他成功偽造一個合法簽名的概率也是可以忽略的。一般環簽名主要有以下過程:在系統初始化時,根據安全參數生成公鑰和私鑰。為每一個成員iu,產生一個公鑰iy和私鑰ix;成員進行簽名時,成員根據自己的私鑰ix、環成員的公鑰 L=,.,2,1nyyy對消息產生簽名 R,其中 R 中的某個參數根據一定的規則呈環狀;驗證時,驗證者根據2023 云安全聯盟大中華區-版權所有31環成員的公鑰對簽名進行驗證。4.3.3 多重簽名多重簽名在數字簽名應用中,有時需要多個用戶對同一個文件進行簽名和認證,這就需要多重簽名。簡單來說,多
58、重簽名是多個用戶對同一個消息進行數字簽名。多重數字簽名可分為有序多重數字簽名和廣播多重數字簽名。它們都有三個過程:系統初始化、產生簽名和驗證簽名;它們應用場景中都有三種角色:消息發送者、消息簽名者和簽名驗證者。在廣播多重數字簽名方案中還包含有簽名收集者。1)有序多重數字簽名有序多重數字簽名在有序多重數字簽名中,消息發送者sU預先給消息簽名者規定好一個簽名順序,記為,.,21nUUU,iU代表第 i 個消息簽名者。將此順序發送給每一位簽名者和消息驗證者vU。簽名者按照此順序進行簽名。簽名結束后,消息驗證者vU對簽名進行驗證。2)廣播多重數字簽名廣播多重數字簽名廣播多重數字簽名與有序多重數字簽名不
59、同,消息發送者sU將 m 同時發送給所有消息簽名者進行簽名,消息簽名者將簽名的結果發送到簽名收集者cU,cU收到簽名信息后進行計算整理,再發送給消息驗證者vU進行驗證。4.3.4 安全多方計算安全多方計算安全多方計算協議要解決的問題可以描述如下:一組參與者希望共同計算某個約定的函數,每個參與者提供函數的一個輸入,這個輸入要對其他人保密。如果存在安全可信第三方,則安全多方協議所要解決的問題可以輕易地得到解決:只需各參與者將各自的輸入交給安全可信第三方,由安全可信第三方計算出函數值,再將函數值公布給各參與者。但現實中很難找到這樣的安全可信第三方,安全多方計算協議的研究應運而生。2023 云安全聯盟
60、大中華區-版權所有32目前安全多方計算已得到許多學者的研究,其在密碼學上的地位也日益重要,它是電子選舉、電子拍賣等密碼學協議的基礎。1)數學描述及算法流程:數學描述及算法流程:有 n 個參與者 P1,P2,.,Pn,要以一種安全(安全意味著輸出結果的正確性以及輸入信息、輸出信息的保密性)的方式共同計算一個函數。每個參與者 Pi(0 i (Y1,Y2,Yn),計算結束時,參與者 Pi 只能了解 Yi,不能了解其他方的任何信息。大多數情況下 Y1=Y2=.=Yn=Y,此時 F:(X1,X2,Xn)-Y。2)安全多方計算主要特點:安全多方計算主要特點:安全多方計算理論主要研究參與者間協同計算及隱私信
61、息保護問題,其特點包括輸入隱私性、計算正確性及去中心化等特性。輸入隱私性:安全多方計算研究的是各參與方在協作計算時如何對各方隱私數據進行保護,重點關注各參與方之間的隱私安全性問題,即在安全多方計算過程中必須保證各方私密輸入獨立,計算時不泄露任何本地數據。計算正確性:多方計算參與各方就某一約定計算任務,通過約定安全多方計算協議進行協同計算,計算結束后,各方得到正確的數據反饋。去中心化:傳統的分布式計算由中心節點協調各用戶的計算進程,收集各用戶的輸入信息,而安全多方計算中,各參與方地位平等,不存在任何有特權的參與方或第三方,提供一種去中心化的計算模式。4.3.5 可驗證計算可驗證計算外包計算使得具
62、有有限計算資源的用戶可以將大規模的計算任務外包給擁有強大計算能力的服務提供者,例如云計算場景中用戶將負載較大的計算任務外包給云服務的提供者。然而外包計算場景中用戶面臨著一定的風險:對于外包給服務提供者的計算任2023 云安全聯盟大中華區-版權所有33務,用戶無法確認其是否得到正確的執行??沈炞C計算協議可檢測出遠程服務器返回的程序執行結果是否正確,且不需要將遠程服務器所執行的程序再重新執行一遍。使用可驗證計算協議是解決外包計算的結果正確性驗證問題的有效途徑。在可驗證計算模型中,客戶端將計算外包給服務器端;服務器端運行這些繁重的計算,并返回計算結果和證明;驗證者可以根據計算結果和證明驗證服務器端返
63、回的結果的正確性。根據驗證者的身份,可以將可驗證計算方案分為私有可驗證計算和公開可驗證計算。私有可驗證性約束了驗證者的身份必須是將任務外包出去的客戶端本身。相對于私有可驗證性,具有公開可驗證性的可驗證計算方案應用更為廣泛,它不僅支持客戶端本身驗證結果,同時支持任何擁有相關公開參數的第三方驗證結果。1)可驗證計算的基本條件可驗證計算的基本條件a)正確性:服務器按照方案誠實運算得到的結果,返回給客戶端一定能夠通過驗證結果。b)安全性或可靠性:安全或者可靠的可驗證計算方案保證客戶端不會接受服務器返回的錯誤。c)高效性:方案中規定的客戶端對函數和輸入預處理所花費的時間,連同隨后進行的可靠性驗證所花費的
64、時間,要遠小于直接計算函數所需要的時間,否則也就失去了委托計算的意義。除了以上 3 個基本要求外,數據的隱私性也是可驗證計算中考慮的主要因素之一??沈炞C計算所涉及的隱私性主要有兩種,一種是客戶端的數據相對于服務器的隱私保護,另一種是最終計算結果相對于非授權用戶的隱私保護。2)常用可驗證計算常用可驗證計算a)可私自驗證計算2023 云安全聯盟大中華區-版權所有34可私自驗證計算是指客戶端委托服務器計算函數 F 關于 x 點的值,客戶端會對函數F 和 x 進行預處理,得到可以公開的信息和自己保存的私密信息??蛻舳藢⒐_信息傳給服務器,而不泄漏私密信息。服務器使用公開信息進行計算,將結果返回給客戶端
65、。對于返回的計算結果,客戶端利用前面保存的私密信息,對服務器返回的結果進行驗證。b)可公開驗證計算可私自驗證計算協議執行過程中產生的信息不對外公開。上述可私自驗證方案中,客戶端一般每委托服務器計算一個新的函數,就得預處理一次,因此只有客戶端委托服務器計算同一函數關于多個不同輸入的值時,算法才更有意義??晒_驗證計算可以使客戶端不一定對函數進行預處理,可以利用其他客戶端的預處理結果進行委托計算??晒_驗證計算有兩個性質:公開代理和公開驗證。公開代理是指一個客戶端對函數 F 作預處理之后將信息公布,其他客戶端可以直接利用這些信息,只需要對函數的輸入作處理便可將計算任務委托給服務器;公開驗證是指任何
66、人都可以驗證服務器返回的結果??晒_驗證計算過程相比于可私自驗證計算的過程,客戶端預處理的結果是一組公開值,其他客戶端可以使用這些公開值委托服務器計算并驗證。4.3.6 零知識證明零知識證明零知識證明指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。零知識證明實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需采取的一系列步驟。證明者向驗證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關于被證明消息的信息。零知識證明并不是數學意義上的證明,因為它存在小概率的誤差,欺騙者有可能通過虛假陳述騙過證明者。換句話來說,零知識證明
67、是概率證明而不是確定性證明。但是也存在有技術能將誤差降低到可以忽略的值。2023 云安全聯盟大中華區-版權所有351)零知識證明的性質零知識證明的性質a)正確性:證明者無法欺騙驗證者。換言之,若證明者不知道一個定理的證明方法,則證明者使驗證者相信他會證明定理的概率很低。b)完備性:驗證者無法欺騙證明者。若證明者知道一個定理的證明方法,則證明者使驗證者以絕對優勢的概率相信他能證明。c)零知識性:驗證者無法獲取任何額外的知識。2)零知識證明的過程零知識證明的過程零知識證明本質上是一種涉及兩方的協議,其中的一方稱為證明者,一般用 P 表示,另一方稱為驗證者,一般用 V 表示。在協議的執行過程中,證明
68、者 P 向驗證者 V 聲稱其已經掌握了某種信息,證明者 P 根據公共數據 u 和隱私數據 w,生成驗證結果 y 和證明 Ty,并將 y 和 Ty 發送給驗證者 V。驗證者 V 根據 y、Ty 和 u 進行驗證,或者相信證明者 P 的聲稱,或者拒絕證明者 P 的聲稱。在這個過程中,驗證者 V 沒有獲得證明者 P聲稱的所掌握信息的具體內容。4.3.7 不經意訪問不經意訪問1)不經意隨機不經意隨機訪問的產生背景訪問的產生背景隨著大數據與云計算技術的發展,越來越多的數據可以在云端進行存儲、計算以及共享。但是這也帶來了一系列安全問題。加密只能保證數據內容的機密性,卻不能保證其他的隱私信息不被泄露。在云存
69、儲場景中,用戶需要查詢某一個數據塊的內容。為了保證數據隱私性,通常會對數據庫中的數據進行加密。但是在執行查詢請求的過程中,數據塊的索引并不能加密,這就泄露了用戶訪問數據庫元素的位置。這使得攻擊者可以通過用戶的訪問模式來2023 云安全聯盟大中華區-版權所有36推斷存儲數據的重要性。同時,攻擊者還可以通過匹配前后兩個連續的訪問模式來推斷數據查詢之間的關聯關系,甚至是加密數據的內容。在實際場景中,這些信息潛在性地暴露了用戶的行為特征、興趣愛好、社交范圍等,另一方面,在安全計算領域,當用戶將隱私數據和任務以加密方式存儲在內存中,如果暴露了處理器對內存的訪問模式,就可能泄露數據和任務本身的信息。2)不
70、經意隨機訪問的概念不經意隨機訪問的概念不經意隨機訪問機是一種重要的保護訪問模式的手段,它通過混淆每一次訪問過程,使其與隨機訪問不可區分,從而保護真實訪問中的訪問操作、訪問位置等信息。不經意隨機訪問機在安全云存儲系統以及安全計算領域有著非常重要的作用。利用不經意隨機訪問機可以降低攻擊者通過訪問模式推測隱私信息的可能性,減小系統受到的攻擊面,從而提供更安全更完整的服務。3)不經意隨機訪問特性不經意隨機訪問特性a)低效性:相比于正常的訪問,不經意隨機訪問機需要執行額外的操作來保護訪問模式的隱私性,這種訪問模式往往帶來昂貴的開銷,包括帶寬以及本地存儲等,這嚴重的限制了不經意隨機訪問機的實用性;b)安全
71、性:不經意隨機訪問機提供了保護訪問模式的可證明安全性,相比于傳統的加密手段,該技術可以很大程度上減少攻擊者利用訪問模式推斷隱私信息的可能性;c)用途廣:不經意隨機訪問機可以廣泛地應用于安全存儲以及安全計算領域,對于存在數據訪問的應用,都可以利用 ORAM 提供訪問模式的保護。4)不經意隨機訪問幾種模型不經意隨機訪問幾種模型a)簡單模型:服務器以數組的方式連續存儲客戶端的數據塊。為了隱藏客戶端訪2023 云安全聯盟大中華區-版權所有37問了哪一個數據塊,客戶端每一次訪問需要遍歷所有數據塊。對于不需要的數據塊,客戶端讀取之后再寫回相同的數據塊;對于目標數據塊,客戶端讀取后在本地更新,再寫回更新后的
72、數據塊。同時,即使客戶端找到目標數據塊,依然繼續訪問;b)平方根模型:將服務器劃分成兩部分:排列數組(permuted array)與緩沖區(shelter)。排列數組中包含N個真實數據塊(real block)和N個無效數據塊(dummy block)??蛻舳嗣看卧L問之前需要將排列數組中的所有的數據塊混洗。在每一次訪問中,客戶端先查找目標數據塊是否在緩沖區中:如果在緩沖區中,就從排列數組中讀取一個無效數據塊;如果沒有在緩沖區中,就從排列數組中讀取目標數據塊。為了混淆數據塊的訪問位置,每一個訪問周期(N次訪問)需要重新混洗排列數組;c)層次模型:將服務器的存儲劃分為層,第 i 層包含i2個數據
73、塊集合(bucket),對于每一層而言,當一個訪問周期(i2次訪問)結束后,需要將當前層的數據塊和下一層的數據塊合并并且混洗后放入下一層。每一層實際上都是一個 hash 表,并且包含一個 hash函數。每一層的訪問周期結束后,需要更換 hash 函數。當客戶端訪問一個數據塊時,從最頂層到最底層依次查找,通過計算 hash 函數來判斷目標數據塊是否在當前層:如果在,則根據 hash 函數計算所得的偏移量獲得對應數據塊;如果不在,則繼續查找下一層。與簡單模型類似,為了保護訪問模式的隱私,即使找到了目標數據塊也會繼續查找下一層,之后,每一層會隨機訪問一個無效數據塊,直到所有層都被訪問。當客戶端更新完
74、數據塊后,將其寫入服務器最頂層。由于頂層的訪問周期短,其中的數據塊會頻繁地混洗到下一層,因此不用擔心頂層數據塊溢出的問題;d)分區模型:將數據存儲在N個服務器(partitions)中,每一個服務器利用平方根模型或者層次模型構建,同時,客戶端存儲數據塊索引到數據塊在服務器位置之間的映射表以及每一個服務器的緩存(cache slots)。對于客戶端每一次訪問,先根據映射表查找數據塊所在的服務器,然后使用對應不經意隨機訪問機模型的訪問方式獲取數據塊。2023 云安全聯盟大中華區-版權所有38當獲得數據塊之后,將其重新分配一個新的服務器,并寫入對應服務器的緩存中。緩存滿之前執行將數據寫回對應的服務器
75、;e)樹狀模型:在層次模型上進行改進,將每一個數據塊集合分配到樹的節點上,客戶端本地存儲每一個數據對應樹的葉子節點的映射關系(position map)。每一次訪問先查詢數據塊所在的葉子節點,將從根節點至這個葉子節點上所有的數據塊集合取回本地。更新完之后,將目標數據塊寫入根節點。每一次訪問結束之后,在每一層隨機選擇 v 個數據塊集合執行驅逐操作,將一個真實數據塊寫入它對應葉子節點那條路徑上的子節點數據塊集合中。同時,再選出一個無效數據塊寫入它另一個子節點的數據塊集合中。4.4 展示層設計指南展示層設計指南4.4.1 數據發布數據發布與傳統針對隱私保護進行的數據發布手段相比,區塊鏈數據發布面臨的
76、風險是區塊鏈的發布是動態的,且針對同一用戶的數據來源眾多,總量巨大。需要解決的問題是在數據發布時,保證用戶數據可用的情況下,高效、可靠地去掉可能泄露用戶隱私的內容。傳統針對數據的匿名發布技術,包括 k-匿名、l-diversity 匿名、t-closeness 匿名、個性化匿名、m-invariance 匿名、基于“角色構成”的匿名方法等,可以實現對發布數據時的匿名保護。在區塊鏈應用環境下,需要對這些數據進行改進和發展。匿名技術:數據持有方在公開發布數據時,這些數據通常會包含一定的用戶信息,服務方在數據發布之前需要對數據進行處理使用戶隱私免遭泄露。一般的,用戶更希望攻擊者無法從數據中識別出自身
77、,更無法竊取自身的隱私信息。數據發布匿名:在確保所發布的信息數據公開可用的前提下,隱藏公開數據記錄與特定個人之間的對應聯系,從而保護個人隱私。實踐表明,僅刪除數據表中有關用戶身2023 云安全聯盟大中華區-版權所有39份的屬性作為匿名實現方案是無法達到預期效果的?,F有的方案是靜態匿名技術、個性化匿名、帶權重的匿名等。后兩類給予每條數據記錄以不同程度的匿名保護,減少了非必要的信息損失4.4.2 安全審計技術安全審計技術當用戶將數據存儲在區塊鏈分布式服務器中時,就喪失了對數據的控制權。為了防止數據在用戶不知情的情況下被修改,可以采用類似于云存儲中的審計技術。安全審計指的是數據擁有者或第三方機構對存
78、儲結構中的數據完整性進行審計。通過對數據進行審計,確保數據不會被服務提供商篡改、丟棄,并且在審計的過程中用戶的隱私不會被泄露。區塊鏈環境下可用的安全審計技術主要有:可證明的數據持有模型(PDP):該模型可以對服務器上的數據進行完整性驗證,該模型中挑戰應答協議傳輸的數據量非常少,因此所耗費的網絡帶寬較小??苫謴妥C明模型(POR):利用糾錯碼技術和消息認證機制來保證遠程數據文件的完整性和可恢復性。該模型面臨的挑戰在于需要構建一個高效和安全的系統來應對用戶的請求。2023 云安全聯盟大中華區-版權所有405 區塊鏈數據層測試指南區塊鏈數據層測試指南5.1 性能測試性能測試5.1.1 數據處理吞吐量測
79、試數據處理吞吐量測試測試對象測試對象:吞吐量指一次性能測試過程中在區塊鏈上傳輸的數據量總和,而單位時間內鏈上傳輸的數據量稱為吞吐率,這個指標是衡量區塊鏈網絡性能的重要指標,也可表示為是區塊鏈系統每秒能處理的數據量。測試方法測試方法:通過模擬多客戶端并行向區塊鏈中發送交易,每筆交易中帶有不等的數據量,統計發送的總交易數 T,發送的交易中成功處理的交易數量 S,完成所有交易花費的時間 t。交易處理的吞吐量 tps=S/t,成功率 S_rate=S/T.測試目的:測試目的:吞吐量指標反映的是區塊鏈服務器承受的壓力,能夠說明系統的負載能力。通過測試區塊鏈的數據處理吞吐量,測試區塊鏈系統單位時間內的承壓
80、能力,可以為抵御分布式拒絕服務攻擊等攻擊提供依據。5.1.2 數據處理響應時間測試數據處理響應時間測試測試對象測試對象:區塊鏈系統對交易請求作出響應所需要的時間,一般分為兩部分:數據傳輸時間和系統處理時間。測試方法測試方法:響應時間一般取數據處理的平均響應時間,基本思想是記錄延時的起止時間,多次對相同數據的處理測試取平均值??梢酝ㄟ^模擬多用戶并發請求,計算用戶得到響應的時間。統計發送的總交易數 T,完成花費的所有交易的時間 t.那么區塊鏈系統處理數據的平均響應時間為 tavg=t/T.測試目的:測試目的:評測區塊鏈系統在不同工作量條件下的性能行為,衡量系統的可用性。2023 云安全聯盟大中華區
81、-版權所有415.2 算法安全性測試算法安全性測試5.2.1 密碼算法安全性測試密碼算法安全性測試測試對象:測試對象:區塊鏈應用在落地時,都使用了密碼運算、密鑰操作等密碼服務。針對區塊鏈系統中所涉及的密碼算法,最基本要求就是保證算法是安全的。算法的安全主要體現在用已知的統計檢測原理來檢測隨機算法輸出序列是否隨機??梢园衙艽a算法看成是一個黑盒子,只關心密碼算法輸出序列的隨機特性。測試標準:測試標準:(以最新版本為準)GM/T 0028-2014 密碼模塊安全技術要求GM/T 0019-2012 通用密碼服務接口規范GM/T 0018-2012 密碼設備應用接口規范GM/Z 4001-2014 密
82、碼術語GM/T 0006-2012 密碼應用標識規范GM/T 0030-2014 服務器密碼機技術規范GM/T 0054-2018 信息系統密碼應用基本要求測試方法:測試方法:1)偽隨機數發生器測試:產生一定數量序列長度為 n 比特的檢測樣本,選擇一定數量的檢測項目中序列對每一個 n 比特序列串進行檢測,并記錄通過的百分比。通過率若小于某個臨界值,則被測算法通過檢測2)分組頻數檢測:檢測密文分組的“0”,“1”平衡性,若輸出的密文分組是隨機2023 云安全聯盟大中華區-版權所有42的,則應該有較好的“0”,“1”平衡性。3)明密文獨立性檢測:檢測密文是否有不依賴與明文統計特性的性質。5.2.2
83、 哈希算法安全性測試哈希算法安全性測試測試對象:測試對象:除了加解密操作,區塊鏈系統中最常見的密碼學操作是哈希處理。多數哈希算法是通過多次迭代混亂和擴散兩種基本技術的組合來達到安全性目的?;靵y性和擴散性的檢測是哈希算法檢測的主要內容。測試方法:測試方法:1)局部碰撞測試:假設 y0,y1,.,yN為數據中的哈希值 Y,對于任意固定的 s個比特位,兩兩比較,記錄相等的概率 p,計算 T 漸近服從標準正態分布,在給定的顯著水平下,若|T|。則認為發生局部碰撞,說明算法不安全。2)均勻性測試:測試 Y 的單比特的分布,統計整體的 0,1 頻次,計算“1”率;測試 Y 的 m 個分位各自的 0,1 分
84、布;測試 Y 的半字節分布,統計 Y 的半字節分布排列。5.3 協議一致性測試協議一致性測試測試對象:測試對象:協議一致性測試是協議測試中最重要的測試,目的是測試通信協議軟件的實現是否與通信協議規范一致。區塊鏈協議一致性指協議的實現與相應的區塊鏈功能標準相一致,具體來說是區塊鏈系統自身的行為和它與其他實際系統的通信行為都符合協議標準。測試步驟:測試步驟:1)明確測試需求:根據區塊鏈功能文檔閱讀需求,深入理解需求。2)制定測試計劃:根據需求估算測試所需資源,安排功能點劃分。2023 云安全聯盟大中華區-版權所有433)編寫測試用例:測試人員根據需求設計編寫測試用例。4)執行測試用例:測試人員根據
85、測試用例的詳細步驟,執行測試用例,提交缺陷,跟蹤缺陷至缺陷關閉。5)生成測試報告:對每個用例記錄測試的結果,分類統計 bug 級別,評估區塊鏈已實現的功能和未實現的功能,通過不斷測試追蹤,直到被測系統達到測試需求。測試方法:測試方法:協議一致性測試通過檢查被測實現 IUT(Implementation Under Test)輸入輸出行為是否與相應的協議規范相一致,按照測試器是否向 IUT 發送數據可以把一致性測試分為兩類:主動測試和被動測試。5.3.1 主動測試主動測試由測試器向 IUT 施加輸入事件序列,接收 IUT 向測試器反饋的輸出事件序列,并判斷輸出事件序列是否符合預期結果,然后檢查狀
86、態轉換后到達的新狀態是否符合協議規范。Upper Tester 是集成在被測件中的一個應用模塊,與外部測試儀相互配合,執行對被測區塊鏈系統的測試。整個測試環境包含三個成員,分別是上測試器(Upper Tester,簡稱 UT)、下測試器(Lower Tester,簡稱 LT)和測試系統(Test system,簡稱 TS)。其中 LT 和 TS 合并做為外部測試儀,而 UT 需要被集成到被測件(Device Under Test,簡稱 DUT)中,操作被測模塊(Implementation Under Test,簡稱 IUT)來執行測試。圖 5.1 展示了具體的測試環境方案。測試過程中,由 T
87、S 構建測試命令,然后 LS 將命令封裝成 UDP 數據包,發送給 UT。UT 根據收到的命令,操作 IUT 執行對應的測試行為。DUT 發出的報文,由 LT 負責監聽。下面的時序圖簡單展示了與數據發送相關的測試項的執行過程。TS 下達了發送數據“1,2,3”的測試命令,LT 將這個命令打包成一2023 云安全聯盟大中華區-版權所有44條 UDP 數據包,發送給 UT,UT 根據數據包中的命令,操作 IUT 發送這些數據。LT負責監聽 DUT 實際發出的數據,LT 收到 DUT 發出的數據之后,將接收到的結果提交給 TS,TS 通過比對命令數據和收到的數據是否一致,來判定這個測試用例是否通過。
88、圖 5.1 測試用例時序圖5.3.2 被動測試被動測試被動測試中,測試器監控并采集處于運行狀態的被測區塊鏈系統的輸入輸出數據,然后通過消息比較來發現協議實現的行為是否有誤,判斷被測實現的狀態轉換是否正確。被動測試是一種監控診斷方法,由于被動測試不對 IUT 施加信息,只是被動地檢測 IUT與周圍網絡環境的交互,實現了在線測試。5.4 協議安全性測試協議安全性測試測試對象:測試對象:區塊鏈安全漏洞指的是在區塊鏈網絡硬件、軟件或協議中,其系統安全策略在設計或應用時潛藏的安全隱患,這些隱患可能導致網絡系統在受到惡意攻擊時發生安全問題,導致系統癱瘓或重要數據丟失。任何一種新興技術的應用都可能產生網絡安
89、全漏洞,因此對區塊鏈協議進行安全性測試是有必要的。網絡協議是指存在于區塊鏈系統兩個或多個通信實體間的網絡行為規范,規定了兩者或多者之間的相關責任和義務,對網絡系統交互做出保障,一份網絡協議的制定需要對協議規范、協議編址和尋址以及協議數據包進行重點把握。2023 云安全聯盟大中華區-版權所有45協議安全性測試是指驗證協議的安全等級和識別潛在安全性缺陷的過程。安全測試的主要目的是查找協議自身設計中存在的安全隱患,并檢查協議對非法侵入的防范能力,根據安全指標不同測試策略也不同。測試步驟:測試步驟:1)測試準備;2)測試執行;3)測試結果采集;4)測試結果分析;5)測試報告生成。測試內容:測試內容:1
90、)區塊鏈骨干協議安全性測試:針對區塊鏈協議容錯能力、異常處理能力、信息保障能力和通信活躍性進行測試。2)SSL 協議安全性測試:針對區塊鏈系統中包含 SSL 實現的模塊的主要功能和性能進行測試,測試集應能覆蓋 SSL 協議的認證、保密、完整性保護等功能,對 SSL 上的各種典型應用如安全超文本傳輸協議(SHTTP)等也應該覆蓋,主要測試 SSL 協議的身份鑒別功能、數據加密功能、數據完整性保護功能。3)IPSec 協議安全性測試:針對區塊鏈系統中包含 IPSec 實現的模塊的主要功能和性能進行測試,測試集應能覆蓋 IPSec 協議的認證、保密、完整性保護等功能,對 IPSec上的各種典型應用如
91、 VPN 等也應該覆蓋,主要測試 IPSec 協議的身份鑒別功能、數據加密功能、數據完整性保護功能。4)Kerberos 協議安全性測試:針對區塊鏈系統中包含 Kerberos 實現的模塊的主要功能和性能進行測試,測試集應能覆蓋 Kerberos 協議的身份認證等功能,主要測試Kerberos 協議的票據分發功能、數據加密功能、票據驗證功能。2023 云安全聯盟大中華區-版權所有465)TCP/IP 協議安全性測試:針對區塊鏈系統中包含 TCP/IP 實現的模塊的安全脆弱性進行測試,測試集應能覆蓋 TCP/IP 協議簇中各協議的安全脆弱問題,主要測試TCP/IP 協議的抗 IP 地址欺騙能力、
92、抗 TCP 序列號攻擊能力、抗極小數據段攻擊能力和抗源路由攻擊能力。針對某些特定攻擊的測試:例如對 DDOS 攻擊、ARP 類攻擊的測試。測試方法:測試方法:針對區塊鏈系統實現的協議安全性測試分為以下三種測試方法。5.4.1 隨機擾動測試(隨機擾動測試(fuzzing testing)隨機擾動測試方法主要思想是產生大量的隨機輸入參數傳遞給被測系統,并觀察被測系統能否正確處理這些隨機輸入而不出現錯誤或可利用的漏洞。Fuzzing 測試對系統的相關協議進行無規律的嘗試,以制造半有效數據,之后將這些數據輸入到需要進行測試的協議中,根據該協議對其處理的過程,分析系統中是否存在安全漏洞。一個典型的 Fu
93、zzing 的工作流程如下:首先,確定需要進行測試的網絡協議;其次,挑選進行測試的交互接口;第三,編寫 Fuzzing 相關測試數據;第四,將得到的有效數據傳輸到交互接口中;第五,對測試協議的狀態進行實時監測,收集有異?,F象的信息;最后對安全漏洞進行評估,完成整個網絡安全協議的安全性測試過程。5.4.2 協議語法變異測試協議語法變異測試語法變異測試是使用最廣泛的協議安全測試方法,這類方法基于協議本身的語法特點,通過設計變異算子對相關語法元素進行變異而產生安全測試例。將變異分析用于尋找錯誤的一般做法是利用變異分析對區塊鏈軟件的外界接口參數進行變異,產生隨機的或事先設計的惡意參數發送給被測區塊鏈軟
94、件,觀測它做出的反映。在區塊鏈協議安全測試中,一般的方法是通過基于語法測試的變異,向協議提供異常的 PDUs(Protocol DataUnit,協議數據單元),并觀察其反應和行為。2023 云安全聯盟大中華區-版權所有475.4.3 基于有限狀態機模型的錯誤注入測試基于有限狀態機模型的錯誤注入測試這種方法提出“客戶端/服務器行為模型化(CSB Modeling)”,即首先建立一個有限狀態機來描述區塊鏈中客戶端和服務器之間的正確通訊,再使用圖遍歷算法來產生模板(test pattern,即一個轉換序列,表示了某個正確的消息交換序列)。得到模板之后,再利用 SPIKE 技術模型化客戶端和服務器之
95、間交換的消息的語法,從而在錯誤注入時能靈活的產生測試數據。在客戶端和服務端測試模式中,模糊器和被測對象分別為測試過程的兩個端點。此時,模糊器可充當客戶端的角色,用來測試服務端程序的安全性。同時,模糊器也可以充當服務端的角色,用來測試客戶端程序的安全性。模糊器中的監控模塊用來對被測對象的行為進行收集、分析以判斷是否存在異常情況。5.5 匿名性測試匿名性測試測試對象:測試對象:匿名性是互聯網應用的重要情境特點,也是影響互聯網上行為的重要因素。匿名性一般被定義為在一定的情境下,行為者對于自身是否被他人所知覺情況的感知,是行為者自己區分于他人的一種關系特征。區塊鏈技術是典型的互聯網應用,本節匿名性測試
96、主要關注于區塊鏈使用者,即對區塊鏈用戶的匿名保護。與前文對區塊鏈隱私保護框架的描述類似,所考量的匿名屬性包括數據內容匿名、用戶身份匿名、和行為方式匿名。測試內容:測試內容:以下給出描述區塊鏈系統不可觀測性的定義。1)匿名性(anonymity):指區塊鏈通信主體在一組匿名集合中不可識別的狀態。如果攻擊者能夠從獲取到的信息中關聯到匿名集合中的某一個發送者,如該發送者發送消息的 IP 地址,則認為該用戶是可識別的。2)不可檢測性(undetectability):從攻擊者的角度,攻擊者不能夠區分感興趣的區塊鏈通信客體是否存在。匿名性是研究通信主體的通信關系,保護的是通信主體的身2023 云安全聯盟
97、大中華區-版權所有48份信息,而不可檢測性研究對象為感興趣的通信客體,保護的是通信行為和通信客體。3)完美不可檢測性(perfect undetectability):當感興趣的區塊鏈通信客體存在與否是完全不可區分的,則認為該通信客體具有完美不可檢測性4)不可觀測性(unobservabi1ity):不可觀測性是指感興趣的區塊鏈通信客體在任何其他相同類型的通信客體集合中不可區分的狀態,不可觀測性包括兩個方面的含義:通信主體的匿名性和通信客體的不可檢測性。本節考慮對區塊鏈系統匿名屬性的度量和評估,測試內容是基 于某一特定消息出現的概率,即攻擊者監視匿名通信系統一段時間 后,攻擊者給每一個通信主體
98、在通信過程中出現的消息的外顯行為特征賦予一個概率值,用以表征該消息可能出現程度。測試方法:測試方法:目前對匿名通信系統的匿名性屬性度量和評估缺乏統一的工具和測試方法,因此考慮從敵手的威脅模型出發,將區塊鏈系統的輸入輸出狀態映射到一個交互式圖靈機,采用網絡流量分析技術等手段研究協議在通信行為上是否具有統計意義上的不可區分性,即計算區塊鏈協議通信過程中數據包的外顯行為特征的相對熵值,用以量化評估協議的匿名性程度。分析手段主要包括輸入輸出關聯分析、IP 地址關聯分析和業務流分析。5.5.1 輸入輸出關聯分析輸入輸出關聯分析為了更具體的評估區塊鏈系統匿名能力,從攻擊方式、可見性、敵手擁有的計算資源三個
99、方面定義敵手的攻擊能力,每次測試采取控制變量法執行測試用例。攻擊方式攻擊方式1)被動攻擊。敵手能夠在區塊鏈網絡邊界部署流分析系統,以監視、分析網絡流以及通信主體的通信行為。2)介入攻擊。敵手能夠操縱區塊鏈通信網絡流,如加時延、丟包、修改包內容、2023 云安全聯盟大中華區-版權所有49注入攻擊等。3)主動攻擊。敵手能夠模擬區塊鏈系統的客戶端發包,以主動探測網絡狀態、節點行為特征等??梢娦钥梢娦?)局部可見。敵手僅僅能夠監視區塊鏈網絡邊界(節點加入和離開網絡)或者部分網絡節點。2)全局可見。敵手能夠監視整個區塊鏈通信網絡節點以及流量。資源資源1)有限。敵手具有有限的計算和存儲資源。2)充分。敵手
100、具有充分的計算和存儲資源,支持從不同網絡位置同時收集到大規模的網絡流量進行分析處理。在輸入輸出關聯分析中,對于給定的區塊鏈輸入輸出測試用例,測試模塊將嘗試恢復輸入和輸出的關聯關系,構造輸入輸出交易關聯拓撲圖。其中恢復成功的概率與被測區塊鏈數據內容匿名能力成反比。5.5.2 IP 地址關聯分析地址關聯分析在 IP 地址關聯分析中,對于給定的區塊鏈數據包測試用例,測試模塊將在發送者匿名集中找出通信過程中該消息是否出現、來自于哪個發送者,在此發送者定義為所有可能的用戶 IP 地址集合。其中 IP 地址關聯成功的概率與被測區塊鏈用戶身份匿名能力成反比。5.5.3 業務流分析業務流分析在業務流分析中,對
101、于給定的區塊鏈數據流量測試用例,測試模塊將通過推斷為數2023 云安全聯盟大中華區-版權所有50據流添加業務標簽,并將區塊鏈數據流分類為若干類業務。其中業務流推斷成功的概率與被測區塊鏈行為方式匿名能力成反比。6 區塊鏈數據安全應用場景(舉例)區塊鏈數據安全應用場景(舉例)6.1 變色龍哈希函數構建可編輯區塊鏈變色龍哈希函數構建可編輯區塊鏈6.1.1 可編輯區塊鏈的現實需求可編輯區塊鏈的現實需求可編輯區塊鏈是區塊鏈領域新興的熱點課題,致力于在保障區塊鏈安全可信等良好性質的前提下實現鏈上數據的可控編輯操作。從區塊鏈應用實踐來看,目前區塊鏈技術在信息監管、隱私保護、數據更新、可擴展性等四個方面都存在
102、切實的數據編輯需求,迫切需要研究和應用可編輯區塊鏈技術。首先,從信息內容安全的角度,由于一些區塊鏈缺乏必要的上鏈信息審核與評估機制,為了防止不良信息帶來持續的、永久性的負面影響,設計數據修改的渠道是有必要的;其次,從隱私保護的角度,用戶個人具有要求責任方隱藏或者刪除與自己有關的隱私數據記錄的權利;最后,合適的可編輯手段可以用來修改區塊鏈上由于主觀故意或者客觀疏忽而導致的錯誤數據,更新陳舊數據,精簡歷史數據,節省全節點存儲空間,能夠有效實現區塊鏈數據更新提升區塊鏈可擴展性。由此可見,可編輯區塊鏈具有明確而迫切的現實需求。同時,對區塊鏈上數據的安全可控編輯操作也是實現區塊鏈數據安全的重要范疇。6.
103、1.2 可編輯區塊鏈的實現框架可編輯區塊鏈的實現框架可編輯區塊鏈通常從編輯類型、編輯對象、編輯模態、編輯架構和控制策略五個方面來進行設計。如圖 6.1 所示。2023 云安全聯盟大中華區-版權所有51按照對區塊鏈數據的操作類型,可以分為修改、刪除、插入、過濾和隱藏共五類編輯操作,其中修改、刪除、插入和隱藏是面向鏈上數據的操作,數據過濾是面向上鏈前數據的篩選和凈化過程,最大限度阻止不良信息的寫入。按照按照數據編輯對象,可以分為區塊級、交易級和數據項級編輯操作。區塊級編輯技術粒度最大,只可以替換完整的區塊而無法精準定位和修改區塊中的特定數據;交易級和數據項級編輯技術粒度相對較小,前者重點針對區塊中
104、的交易數據(例如交易金額和接收方地址等),而后者則側重于文本數據(例如 OP_RETURN 類交易附言或其他文本數據)。通常來說,交易級編輯技術將會改變區塊鏈內部的交易邏輯流和價值分配體系,是強上下文相關的編輯操作,因而難度更高。圖6.1 可編輯區塊鏈的實現框架按照數據編輯模態,可以分為中心化、多中心化和去中心化的數據編輯,表示數據編輯權限(包括請求發起權、數據驗證權和數據修改權)是否屬于特定的中心化機構或者實體??删庉媴^塊鏈中,面向記賬權競爭的共識過程與面向編輯權競爭的共識過程可能是同一階段進行的,也可能是相對獨立的,因此數據編輯模態結構并不一定與私有鏈、2023 云安全聯盟大中華區-版權所
105、有52聯盟鏈和公有鏈一一對應。公有鏈中也可能發生由中心化實體主導的區塊鏈數據修改操作,例如由比特幣社區主導的硬分叉行為。按照數據編輯架構,可以分為單鏈架構和平行鏈架構。前者仍然維護單一的線性區塊鏈條,通過變色龍哈希函數等特定的技術手段實現區塊數據的定點物理修改、或者在后續區塊中追加修改后的新數據;后者則是維護獨立運行的兩條或多條平行鏈實現數據修改,例如兩條平行的區塊鏈或者兩條平行的哈希鏈等。按照數據編輯控制策略,需要詳細規定涉及的數據范圍(區塊鏈數據的哪些數據內容、數據字段可以被編輯)、編輯權限(如何確定有請求編輯權限的實體、如何確定有驗證新數據正確性權限的實體、以及如何確定有最終實施編輯操作
106、權限的實體)、編輯流程(實施數據編輯操作有哪些具體步驟,操作執行的步驟是否需要序列化、原子化)、約束規則(區塊鏈數據編輯過程中涉及哪些規則與約束條件)等要素??删庉媴^塊鏈編輯控制策略的設計與實施一般取決于實際場景的需求。6.1.3 基于變色龍哈希函數的可編輯區塊鏈方案基于變色龍哈希函數的可編輯區塊鏈方案基于哈希運算生成的區塊之間的哈希鏈路是區塊鏈數據極難篡改的重要原因。常見的哈希函數具有抗碰撞性,即無法尋找到不同的數據替換使得區塊間哈希關系仍然存在。同時,哈希函數具有高靈敏度,即使輸入數據發生一個比特位的微小修改,輸出哈希值也會發生明顯的改變。因此,現有研究的基本思路是采用變色龍哈希函數,在不
107、改變哈希函數輸出結果的前提下實現區塊數據的任意修改。變色龍哈希函數是一種帶陷門的單向哈希函數。如果掌握陷門信息,則可以輕易地計算任意輸入數據的哈希碰撞,從而可以在不改變哈希函數輸出的情況下,任意地改變哈希函數的輸入。如果不掌握陷門信息,則變色龍哈希函數與傳統的哈希函數一樣具有抗碰撞性。因此,如果將區塊鏈的哈希函數替換為變色龍哈希函數,并且人為地設置陷2023 云安全聯盟大中華區-版權所有53門,則可以由陷門秘鑰擁有者任意修改區塊數據而不會破壞哈希鏈路的完整性。變色龍哈希函數可以定義為:對于任意數據 x 和隨機選擇的參數 r,給定一個陷門tk,可以找到消息對(x,r)和(x,r)使得 CH(x,
108、r)=CH(x,r),此處 CH 為變色龍哈希函數。在可編輯區塊鏈應用中,x 和 x分別對應原區塊數據和修改后的區塊數據,且 x x。變色龍哈希函數通常有如下四個算法,即密鑰生成算法 HG、哈希生成算法 CH、哈希驗證算法 HV 以及哈希碰撞算法 HC,方案實現步驟如下:1)執行密鑰生成算法 HG(1n)=(hk,tk):生成變色龍哈希的公鑰 hk 和私鑰(陷門)tk,其中 n 為安全性參數;2)執行哈希生成算法 CH(hk,x;r)=(h,):給定公鑰 hk、任意數據 x 和隨機數 r,生成哈希值 h 和隨機數;3)執行哈希驗證算法 HV(hk,x,(h,):給定公鑰 hk、任意數據 x、哈
109、希值 h 和隨機數,如果(h,)是正確的哈希值,則輸出 1,否則輸出 0。4)執行哈希碰撞算法 HC(tk,(h,x,),x):給定陷門 tk、三元組(h,x,)和修改后的新數據 x,輸出新隨機數,使得驗證時 HV(hk,x,(h,)=HV(hk,x,(h,)=1,保持區塊哈希鏈路的連續性。顯然,掌握變色龍哈希陷門密鑰就意味著擁有區塊鏈的修改權,因此陷門密鑰的管理對于變色龍哈希函數來說至關重要。在私有鏈結構中,陷門密鑰一般由可信的中心化驗證者掌握,可以實現任意鏈上數據的修改操作;而對于多中心和去中心化的聯盟鏈和公有鏈來說,陷門密鑰則必須在多個(固定的或者可變的)驗證者之間共享,由驗證者之間的共
110、識過程決定是否參與和決策如何修改區塊數據,這種針對修改權的共識過程可以與驗證區塊數據的共識過程相互獨立。從安全角度考慮,掌握陷門密鑰和數據修改權的驗證者必須是事前不可預測的,通過共識過程選舉出擁有修改權的節點同樣應該是不可預測的,以避免針對性的安全攻擊。2023 云安全聯盟大中華區-版權所有546.1.4 可編輯區塊鏈應用技術可編輯區塊鏈應用技術1)數據修改技術數據修改技術2017 年,Ateniese 等學者最早提出了基于變色龍哈希函數的區塊鏈數據修改方案,具有兼容性強、適合目前主流的區塊鏈架構等優良特點,特別適用于帶有少數可信驗證者的授權區塊鏈。該方案的思路是將區塊鏈的內哈希函數G 替換為
111、變色龍哈希函數 CH,從而可以在不改變外哈希函數 H、不破壞哈希鏈路完整性的情況下,實現區塊鏈上數據的物理修改。對于中心化的私有鏈,存在唯一的中心化驗證者集合 V 掌握變色龍哈希的陷門密鑰tk。對區塊鏈上每個待修改的區塊 Bi,將變色龍哈希值(hi,i)增加到 Bi中,驗證者集合 V將基于新數據 xi計算內哈希函數的哈希碰撞,將舊數據 xi修改為新數據 xi并生成新區塊 Bi。所有區塊修改完畢后,V 將新鏈 C廣播至區塊鏈系統中,其他節點必須同步到新鏈 C。對于多中心或者去中心化區塊鏈,可以通過秘密共享技術將陷門密鑰安全地分發給預定義的驗證者集合。該集合對于聯盟鏈來說可以是固定的“聯盟驗證者”
112、集合,對于公有鏈來說既可以是全部驗證者(礦工)集合,也可以是按照特定規則選出的驗證者集合(例如算力時間窗口內的礦工集合)。需要修改鏈上數據時,驗證者將會啟動安全多方計算協議,以分布式方式共同執行類似于私有鏈中的數據修改協議算法,從而實現鏈上數據修改。2)數據刪除技術數據刪除技術鏈上數據刪除技術主要包括本地數據刪除和全局數據刪除兩種類型,前者是指分布式節點可以獨立地刪除其本地部分數據,以解決持續增長的區塊鏈數據規模導致的存儲瓶頸問題;而后者則是指分 布式節點通過共識算法來共同刪除某些鏈上數據,主要致2023 云安全聯盟大中華區-版權所有55力于解決清除鏈上不良信息的問題。本地數據刪除技術包括回收
113、磁盤空間(RDS)、簡化支付驗證(SPV)和區塊鏈剪枝技術。RDS 是指當區塊鏈的最近一筆交易得到足夠多的區塊確認之后,在其之前的歷史交易可以被刪除以節省磁盤空間;SPV 技術則允許輕節點不必存儲全部數據,當其驗證交易信息時,可以通過區塊鏈網絡向其他全節點發起查詢請求獲得所需數據。區塊鏈剪枝(Blockchain pruning)技術,致力于使驗證者在其本地區塊鏈賬本中刪除單個交易或數據項、或者是刪除特定時間點之前的全部歷史數據,例如選擇性交易剪枝技術可以根據區塊的狀態可達性選擇特定的不重要交易并刪除。全局數據刪除必須通過驗證者的共識過程才能實現,實際上是將全局數據的刪除操作視為一種修改操作,
114、采用區塊鏈鏈上數據修改技術來實現。3)數據插入技術數據插入技術區塊鏈數據插入技術的重點和難點是如何在去中心化的公有鏈中插入任意類型的數據。以比特幣和以太坊等為代表的公有鏈主要存儲以加密貨幣交易為核心的金融數據,其數據結構和語法相對固定、數據上下文相關性強、數據插入空間和規模有限,這些特點為插入任意類型的數據帶來較高的難度?,F有的研究工作大多以比特幣為原型來研究面向公有鏈的數據插入技術,其他加密貨幣的技術原理相近,只是在具體的數據插入位置和字段各有不同。以比特幣系統為例,目前通常有四類數據插入手段,分別將任意數據插入到 Coinbase 交易、OP_RETURN腳本、P2X 類型交易腳本以及非標
115、準交易腳本中。比特幣 Coinbase 交易沒有 ScriptSig 字段,可以由該區塊的礦工在 Coinbase 交易中插入自定義的任意數據,最小 2 字節,最大 100 字節,該方法的局限性在于只能由礦工執行插入操作。OP_RETURN 是比特幣交易的腳本操作碼,是專門設計用來存儲額外的2023 云安全聯盟大中華區-版權所有56非金融數據的字段。OP_RETURN 腳本特別適合在比特幣區塊鏈上插入少量非金融數據,比特幣用戶和礦工均可以通過創建新交易實現方便快捷的數據插入操作。P2X(Pay to X)腳本是比特幣系統的 P2PKH(Pay to public key Hash)、P2PK(
116、Pay to public key)、MultiSig(多重簽名)和 P2SH(Pay to script Hash)等標準交易腳本的統稱,是將交易輸出中鎖定的比特幣發送給由公鑰、公鑰哈?;蛘吣_本等形式表示的接收者。P2X 方式是通過修改比特幣交易輸入(解鎖腳本)或輸出(鎖定腳本)中的公鑰、公鑰哈希、贖回腳本或其他腳本數據為自定義內容來插入任意數據。4)數據過濾技術數據過濾技術區塊鏈數據過濾技術是指在數據實際寫入到區塊鏈之前,通過技術手段使得共識節點在共識過程中有效地檢測和識別不良信息,或者通過經濟手段提高不良信息上鏈的成本,以達到過濾和凈化上鏈數據的目的。由于被過濾的數據并沒有實際上鏈,因此
117、不會涉及鏈上數據修改,也不會破壞區塊之間哈希鏈路的完整性。針對以金融交易數據為主的公有鏈,可以采取基于經濟成本的數據過濾方法,通過調節交易費來限制帶有大量數據的交易,從而提高任意數據上鏈的成本。針對聯盟鏈和私有鏈,可以采取基于文本檢測的數據過濾方法,在交易驗證過程中展開語法檢查,或者制定過濾策略執行語義檢查,以阻止不良信息寫入區塊鏈。目前,評價數據過濾技術的標準主要有四點,包括a.過濾質量:不良信息上鏈在計算開銷和經濟成本上都是難以承受的,可有效實現最大限度的數據過濾;b.可配置性:實施數據過濾技術不需要改變運行中的區塊鏈系統,或者只有較低程度的協議改變;c.高可用性:數據過濾過程不會妨礙區塊
118、鏈的正常運行;2023 云安全聯盟大中華區-版權所有57d.低負載性:數據過濾不會使得區塊鏈系統的性能發生嚴重下降。5)數據隱藏技術數據隱藏技術為了保護用戶隱私,在特定場景下鏈上數據也存在明顯的數據隱藏的需求。例如不良信息上鏈后在一些特定場景下需要加以隱藏,使其不可讀取,以避免產生負面影響。第一種技術思路是以加密方式在鏈上存儲數據的密文,并向授權用戶或者 DAPP 開放解密密鑰。這種方式相對靈活,但缺點是難以在多個實體之間有效地管理密鑰,可能會出現由于密鑰丟失或者泄露。第二種技術思路是利用上述的鏈上數據修改技術,將需要隱藏的數據替換為適合公開的其他數據。然而,這種方式通常需要修改區塊鏈協議來配
119、置變色龍哈希、秘密共享等較為復雜的密碼學工具,因而在大規模區塊鏈應用場景下可能存在性能瓶頸。第三種技術思路是鏈下存儲實際數據、鏈上僅存儲時間戳和指向鏈下數據的哈希指針。當鏈下數據需要修改或者刪除時,該數據在特定時間點存在的事實將會保留在區塊鏈中,而且僅利用鏈上哈希數據 無法重構原始數據。這種方案的優勢是較好地解決了區塊鏈不可篡改性與數據隱藏需求的沖突,然而其缺陷是可能會降低區塊鏈安全性并引入更多的受攻擊面。6.2 基于區塊鏈基于區塊鏈+大數據風控的城市金融綜合服務平臺大數據風控的城市金融綜合服務平臺6.2.1 城市金融綜合服務平臺城市金融綜合服務平臺城市金融綜合服務平臺以“破解中小微企業融資難
120、融資貴”為建設目標,堅持服務中小微企業的功能定位,實施“融資暢通工程”,推動提升金融服務實體經濟質效。按照“統分結合、供需對接、信息共享、服務高效”的原則,圍繞當前中小微企業融資對接過程中的難點、堵點、痛點,打造覆蓋廣泛、功能完備、產品豐富、過程監管的金融數據綜2023 云安全聯盟大中華區-版權所有58合服務產品,賦能中小微金融業務,最終建立可信、安全、實惠、高效的金融生態圈,實現可復制、可推廣的中小微融資創新模式。城市金融綜合服務平臺的最大優勢,是可以整合金融資源,打破信息孤島壁壘,降低金融信息驗證成本,同時提供統一的、可靠的、可追溯的數據采集、數據存儲和數據處理方式。6.2.2 城市金融綜
121、合服務平臺功能架構城市金融綜合服務平臺功能架構城市金融綜合服務平臺由以下五個層面的內容構成,如圖 6.3 所示。其中,服務層面向用戶提供服務,風控層面向各子平臺和子系統提供一體化綜合處理功能,可信層面向區塊鏈事務,是數據安全可信的核心保障部分,數據層面向數據實體分為數據采集、數據存儲和數據處理三個方面的內容,數據源是接口層,承接第三方征信、政府數據、企業數據等信息的輸入。圖6.3 城市金融綜合服務平臺功能架構2023 云安全聯盟大中華區-版權所有596.2.3 區塊鏈數據安全保護技術區塊鏈數據安全保護技術城市金融綜合服務平臺采用金融級別的安全標準。通過分級授權、確權機制、多重數據加密、數據脫敏
122、、多重簽名技術、防篡改技術,保證數據的完整性、保密性和可用性。主要通過以下五種方式結合區塊鏈來保護數據的安全。1)分級授權原則分級授權原則城市金融綜合服務平臺通過線上授權的方式授權信息上鏈,智能合約執行前將檢查鏈上授權信息,得到授權則執行,沒有授權則拒絕。合約根據用戶角色進行分級授權機制,使得不同用戶對鏈上數據訪問的權限不同。授權流程如圖 6.4 所示。圖 6.4 分級授權流程示意圖2)數據加密技術數據加密技術2023 云安全聯盟大中華區-版權所有60城市金融綜合服務平臺采取非對稱加密算法(詳細參見 4.3.1),采用一戶一密,將密鑰保存到密鑰管理服務器 KMS。每個用戶使用自身的密鑰加密敏感
123、數據,將加密后的密文保存到區塊鏈上進行存儲,對共享給具體某一方的數據,使用對方的公鑰進行加密,保存到鏈上并共享給對方。數據加密技術流程圖如圖 6.5 所示。圖 6.5 數據加密技術流程示意圖3)多重簽名技術多重簽名技術對關聯多方的數據采用多重簽名機制,多重簽名機制是多方用戶合作對同一個消息進行的簽名,簽名的長度與簽名的人數無關。在這種數字簽名中,每個用戶用自己的私鑰對消息簽名,簽名的驗證者只需要用群體唯一的公鑰就能驗證簽名的有效性。在城市金融綜合服務平臺中,采用有序多重簽名機制(詳情參見 4.3.3),對于某些重要的數據按規則只有得到多方用戶的簽名才認為是真實有效的。4)數據透明處理技術數據透
124、明處理技術以電子政務網的應用場景為例,風控引擎和鏈企銀平臺均部署在電子政務網,企業使用 APP/WEB 通過互聯網訪問部署在電子政務網的鏈企銀平臺,這樣數據就始終在電子政務網內,滿足數據可用不可見的要求。其中數據處理模塊為每個部門提供單獨接口,接收部門的原始數據,然后根據風控規則將原始數據進行處理,保存到 mysql 數據庫,2023 云安全聯盟大中華區-版權所有61將原始數據 hash 值上鏈存儲,作為數據驗證使用。風控引擎模塊則負責接收鏈企銀平臺的調用請求,在 IDC 中進行計算,只將計算結果返回鏈企銀平臺。如圖 6.6 所示。圖6.6 數據透明處理1)數據驗證和溯源技術數據驗證和溯源技術
125、城市金融綜合服務平臺中所有的數據真實性、完整性都可以進行鏈上驗證,同時也可以在需要時對數據進行溯源追蹤,保證數據沒有被篡改,數據驗證和溯源流程如圖6.7 所示。2023 云安全聯盟大中華區-版權所有62圖 6.7 數據驗證和數據追溯6.3 基于區塊鏈的司法存證方案基于區塊鏈的司法存證方案6.3.1 區塊鏈存證技術背景區塊鏈存證技術背景眾所周知,區塊鏈具有時間戳特性和不可篡改特性,這兩個特性尤其適合用于數據存證。區塊鏈存證的技術原理很簡單,在用戶簽名和發送交易前,用戶將要存證的數據(如果數據量小,而且不用擔心隱私問題,可以直接存儲正文(一般采取加密處理),如果數據量大,則計算該數據的 Hash)
126、附加到交易中,然后再進行簽名廣播。記賬節點在驗證了交易的合法性后,將該交易打包到區塊中,并在區塊中附加上時間戳信息。使用區塊鏈進行數據存證,需要滿足以下幾點基本要求:1)在存證所在區塊的時間戳之前,該數據已經存在;2)拿到數據的內容,可以判斷該數據在存證后是否更改;3)存證數據是由持有某私鑰的人存證的,該人不可抵賴,別人也不可冒充。2023 云安全聯盟大中華區-版權所有63雖然區塊鏈存證具有以上的優勢,但是比特幣、以太坊等公有鏈畢竟不是為數據存證而設計的區塊鏈,所以在存證上只有一個字段,對索引、擴展、引用功能都缺乏相應支持,需要第三方應用來實現。6.3.2 e 簽寶區塊鏈司法存證方案簽寶區塊鏈
127、司法存證方案e 簽寶是一家電子簽名公司,提供全鏈路的電子簽名服務,其中就包含存證服務,也就是客戶簽署完的合同備案。為了能保證證據鏈不被篡改,e 簽寶使用了基于區塊鏈的存證方法,主要是利用了區塊鏈的不可篡改特性和時間戳特性。如果存證數據是保存在一個私有鏈、聯盟鏈或者是 DPOS 公鏈上,那么從理論上來說,該區塊鏈沒有完全的去中心化,一旦區塊鏈節點聯合作惡,仍然存在歷史數據被篡改的風險。為了進一步加強存證所在鏈的安全性,e 簽寶采用聯盟鏈的方案,接入互聯網法院,螞蟻區塊鏈等構建的包含“網通法鏈、可信電子證據平臺、司法信用共治平臺一鏈兩平臺”在內的智慧信用生態體系。鏈上的節點全部都是法院、檢察院、司
128、法局、公證處、仲裁委等司法機構,由他們作為權威機構來證明本存證鏈沒有被篡改,從而證明該鏈上的所有存證數據沒有被聯合作惡而篡改,e 簽寶就是采用了此方式保證了本鏈數據的安全性。圖 6.8 是 e 簽寶進行電子存證的示例。2023 云安全聯盟大中華區-版權所有64圖6.8e簽寶電子存證示例6.3.3 司法存證中的數據安全保護司法存證中的數據安全保護該架構的區塊鏈數據安全主要包含:應用系統的安全、數據的網絡傳輸安全、數據存儲的安全、數據的訪問留痕、數據的隱私保護等。1)應用系統安全應用系統安全區塊鏈司法存證應用系統都應該具有較強的安全能力,構建先進、主動的企業級安全威脅和漏洞檢測體系,能夠發現安全漏洞和安全事件,在系統遭到破壞后,可以快速恢復。2)網絡傳輸安全網絡傳輸安全區塊鏈跨機構網絡傳輸過程應采用業內通用達到司法安全級別的加密方式,并且能驗證數據來源,擁有抵御常規主動攻擊或被動攻擊的能力,保障數據傳輸過程中的真實性、完整性。3)數據存儲安全數據存儲安全2023 云安全聯盟大中華區-版權所有65區塊鏈司法存證應用系統中的機密數據應該加密存儲,并且對密鑰進行必要的保護;還需要保障用戶數據隱私,只有被授權方才可以訪問數據;通過聯盟鏈保障數據不可以篡改,所有數據訪問留痕。建立智能、全面的監控審計體系,全方位監控數據的存儲和流動,保障數據安全。