首頁 能鏈洞察 區塊鏈百科

區塊鏈百科合集之安全與隱私

區塊鏈百科合集之安全與隱私

發布時間:2021.02.27
“數據的共享開放”是科學和技術進步的基礎,也是研究和開發新應用的必要條件。然而,無論是個人還是企業用戶,數據的共享需要適當的保護措施,特別是涉及隱私數據

而安全和隱私是兩個不同但又相關的概念。安全問題,就像是信用卡出現安全漏洞被盜錢,人們可通過一些措施來阻止并要求退款。而隱私問題,在于當個人隱私受到侵犯時,我們無法采取同樣的措施。隱私信息一旦被公開,就無法再次收回。因此,需要設計一種安全協議,在不泄露隱私的前提下實現數據價值。

本期《區塊鏈百科》專欄將與你一起回顧安全與隱私關鍵問題,各技術方案如何實現數據“可用但不可見”?以及在不泄露隱私數據的情況下實現數據協作分析?區塊鏈為數據要素帶來哪些新的機遇?以下點擊標題即可閱讀全文。

如何理解非對稱加密

無論是比特幣、以太坊,還是各種區塊鏈應用,都繞不開安全的問題。實際上,早在20世紀80年代,“密碼朋克”的技術潮流就已經出現,聚集了一波天才極客和IT精英,討論如何使用強大的加密算法來保護個人信息和隱私免受攻擊。而后,中本聰在密碼學基礎之上用代碼創造了比特幣,并將非對稱加密推向了一個嶄新的高潮。

在對稱加密算法中,使用的密鑰只有一個,雙方都可使用這個密鑰對數據進行加密和解密。而非對稱加密則不同,一把鑰匙鎖住的門,可以由另一把鑰匙打開。非對稱加密算法是由兩個不同密鑰來進行加密和解密:公鑰(public key)和私鑰(private key)。更為關鍵的是,通過公鑰無法演算出對應的私鑰。正是基于這種非對稱加密算法,區塊鏈技術增強了點對點之間交易的安全與可信。

哈希算法

哈希、哈希值、哈希算法等概念經常在區塊鏈中被提及,似乎是無處不在的安全保證。但嚴格意義上,哈希算法并不是一種加密算法,加密總是相對于解密而言,而哈希是一種單向密碼體制,即它是一個從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。

哈希算法可理解為一種消息摘要算法,將消息或數據壓縮變小并擁有固定格式。由于其單向運算具有一定的不可逆性,哈希算法已成為加密算法中一個構成部分,但完整的加密機制不能僅僅依賴哈希算法。

如何理解“默克爾樹”

在區塊鏈詞條的必知項中,默克爾樹當屬其中之一。我們知道,“樹”是計算機領域的一個專有術語,特指一種具有分支的數據結構。與現實中的樹不一樣的是,默克爾樹(Merkle Tree)就像是一棵倒置的“樹”,由一個根節點、一組中間節點和一組葉節點構成,但“根”在上部,“葉子”在下部。

默克爾樹最早由美國密碼學家Ralph C.Merkle在1980年提出,并以其名字命名,是一種高效和安全的組織數據的方法,可被用來快速查詢驗證特定交易是否存在。從默克爾樹的結構可以看出,任意一個原始的交易數據被修改,葉子節點哈希值就會變更,最終根節點的哈希值就會改變。通過將默克爾樹的思想在區塊鏈中應用,使各類數據在生成和流轉時,環環相扣且可追溯,實現海量分布式數據的不可篡改、透明與可信。

零知識證明

在隱私越來越受關注的今天,零知識證明在隱私數據保護的應用中大放異彩。簡單來說,零知識證明描述了這樣一個過程:即證明者能夠在不向驗證者提供任何有用信息的前提下,使驗證者相信某個論斷(Statement)是正確的。

零知識證明所依托的是一系列數學與計算機基礎理論,如果我們信任數學,信任邏輯,信任這些基礎理論,那么我們就能理解零知識證明是一種實現了密碼學理論的技術,并基于安全假設「模擬」出了一個虛擬的可信第三方。

安全多方計算

今天,數據可以用來分析復雜問題,提供解決方案,甚至解決無法回答的問題。但是,當涉及到利用數據為公眾服務時,數據共享和數據保護之間往往存在著許多矛盾。就像兩個百萬富翁在街頭邂逅,他們都想比比看誰更有錢。但是出于隱私,誰都不想讓對方知道自己到底擁有多少財富。在不借助第三方的情況下,如何得出誰的財富更多呢?

在這個著名的“姚式百萬富翁問題”問題之下,誕生了安全多方計算(MPC)這門密碼學分支。MPC技術能夠在不泄露數據的情況下,聯合多方數據進行計算并得到明文結果,最終實現數據的所有權和數據使用權的分離。在此之后,該領域出現了一系列基礎結果,用來解決分布式計算問題,同時保證輸入信息的隱私性和安全性。

隱私計算,多方計算,可信計算

隱私計算為信息隱私保護提供了重要的理論基礎。也正因此,隱私計算與區塊鏈的結合,滿足了更復雜多變的商業需求,特別是面向數據存證/確權/共享/交易的各類場景,實現從信息互聯網到價值互聯網的轉變。由于隱私計算中所包含的技術多樣性,不同的企業或者項目根據技術優勢,會采用不同的技術路線來實現其應用目的。

基于密碼學的技術應用便是其中一類。安全多方計算、同態加密、零知識證明等技術都是屬于這一范疇。其核心思想是設計特殊的加密算法和協議,從而支持在加密數據之上直接進行計算,得到所需的計算結果。

隱私計算的第二條路徑,便是基于可信執行環境技術的可信計算,以Intel的SGX,AMD的SEV,ARM的Trust Zone等技術作為代表。其核心思想是以可信硬件為載體,提供硬件級強安全隔離和通用計算環境,在完善的密碼服務加持下形成“密室”,數據僅在“密室”內才進行解密并計算,除此之外任何其他方法都無法接觸到數據明文內容。

隱私計算發展的另外一個重要技術方向是聯邦學習。聯邦學習本質上是一種分布式機器學習技術,或機器學習框架,其目標是在保證數據隱私安全及合法合規的基礎上,進行數據聯合訓練,建立共享的機器學習模型。

區塊鏈同態加密

2009年,斯坦福大學的博士生Craig Gentry,描述了完全同態加密方案的第一個可能的結構。論文的一個關鍵用例,影響了人們對這一問題的看法:即珠寶制造商需要設計師制造珠寶,但又要防止材料被偷取,于是將所有必要的貴金屬放入上鎖的容器中,任何人都可以把手伸進手套箱,操縱里面的東西,但他們被禁止從手套箱中提取任何東西。

這個被上鎖的手套箱的類比,幫助人們重新燃起了尋找潛在解決方案的興趣:
珠寶商>終端用戶
原材料>原始數據
關鍵>網絡
鎖手套箱>加密
工人>計算過程
成品首飾>操作效果
由此,人們可在保護數據隱私的情況下,對密文數據進行任意計算,并確保結果的準確性。

區塊鏈安全與隱私

通過上鎖手套箱的類比,人們看到了同態加密的巨大潛力。每個人都可伸進手套操作盒子里的東西,但只有盒子的主人才能打開并取回物品。與之類似,同態加密使分析或操作加密數據而不向任何人透露數據成為可能。如果沒有同態加密,數據庫必須先解密數據,然后才能執行相應的計算需求。

這種方法可以在“傳輸過程中”保護數據。但一旦被解密,數據就會立即暴露出來,給偵聽數據的人留下了缺口,以便攔截信息。由此,人們開始倡議:“隱私問題可以通過不同隱私技術或同態加密等技術來改進”。但要注意,安全和隱私是兩個不同但又相關的概念。為了理解同態加密的適合場景,我們需要從理解安全和隱私重疊與不重疊開始。

區塊鏈同態加密

與其他加密形式類似,同態加密也是使用公鑰加密數據,并且只允許具有匹配私鑰的個人訪問其未加密的數據;但區別于其他加密形式,同態加密允許在數據加密后,對密文執行函數,由于對加法或乘法具有同態性,可使得密文執行運算的密文結果等同于明文執行相應的運算,并且只有擁有私鑰方才能訪問數據結果,從而保障數據安全和隱私。

K匿名算法

大數據時代,人們對隱私的定義仍然缺乏共識。這一事實導致了許多完全不同保護隱私的數據挖掘方法的激增,所有這些方法都有一個共同的目標:在不公開隱私數據的情況下生成一個有效的挖掘模型。

K匿名算法便是通過數據匿名化的處理方式來保護個人數據的隱私。所謂“匿名化”就是在共享數據集內容之前先將其中的隱私信息進行剔除或脫敏處理,以降低數據敏感度和減少個人隱私風險的技術措施。

K匿名算法(Ⅱ)

從表面上看,匿名只需要實現數據主體的匿名性;但仔細觀察就會明白,僅僅從數據集中刪除名字是不足以實現匿名的。匿名數據可以通過連接當前數據與另一個數據集來重新識別。

因此,在配置k-匿名前,我們需要知道數據集中的哪些字段包含敏感、識別或準識別信息。其次,泛化是實現k-匿名的主要策略。它通過將個人記錄隱藏在一組相似的記錄中來匿名數據,從而大大降低了個人被識別的可能性。如果每個人都是大群體的一部分,那么這個群體中的任何記錄都可能對應一個人,從而實現“隱藏”于人群中。

K匿名算法(Ⅲ)

k-匿名作為一種數據隱私保護模型,通過將個人信息隱藏在一組相似的記錄中實現匿名化,從而大大降低個人被重新識別的可能性。

但生成匿名數據并以合理的效用來平衡它,仍然是一個非常復雜的過程。就其本身而言,由于泛化過程會引入不同類型和不同程度的失真;另一方面,K-匿名技術雖然可以阻止身份信息的公開,但無法防止屬性信息的公開,導致其無法抵抗同質化攻擊、背景知識攻擊、未排序攻擊、補充數據攻擊等情況。

直至2006年,游戲規則稍有改變,微軟研究院的Cynthia Dwork發表了一篇關于“差分隱私”概念的論文。與k-匿名相似,差異隱私并不是一種匿名化方法,而是隱私的數學模型。更具突破性的是,差異隱私保護方法定義了一個極其嚴格的攻擊模型,并對隱私泄露風險進行了嚴謹的數學證明和定量化表示。

 SGX(Ⅰ)| 基于可信硬件的安全計算

過去的十年,為了保護敏感代碼和數據,可信執行環境(TEE)發展迅速。各類CPU供應商都推出了他們的TEE方案,例如ARM TrustZone、Intel SGX和AMD SEV,以創建一個安全的執行環境。其中,Intel SGX可以說是目前TEE商用方案中使用最廣泛的子集之一。

相較于前文介紹過的零知識證明/同態加密等方式,SGX取決于打破硬件的困難程度,而不是打破一道數學題的困難程度。在特性方面,依托于可信計算基,SGX幾乎支持多維度數據的絕大部分運算范式。

SGX(Ⅱ)| 安全存放數據的“黑匣”

創建一個啟用SGX的應用程序,離不開三個關鍵環節:飛地,認證和密封。從用戶和應用程序開發人員的角度來看,SGX芯片就像安全存放數據的“黑匣”,軟件代碼、數據和堆棧被存儲在Enclave(飛地/安全容器)中,并受到硬件強制訪問控制策略的保護,使其免受惡意實體的攻擊。

其次,基于SGX的認證協議,多個Enclave間可以相互驗證身份進行協作,保證“在正確的平臺上執行的正確的應用程序”;最后,SGX通過“密封”功能,將機密數據保存到不可信的介質中并保證數據的隱私性。

 SGX(Ⅲ):區塊鏈技術的一把安全鎖

英特爾的Software Guard Extensions(SGX)作為一系列可信計算的最新迭代,旨在通過可信硬件解決安全的遠程計算問題,為用戶的隱私數據提供更高級別的保護。受益于此,區塊鏈結合SGX可信硬件技術可為諸如金融、零售、醫療保健等行業實現安全的解決方案,讓數據在安全環境下進行存證、確權、共享和交易,為賦能產業鏈合作打下堅實的基礎。

能鏈科技作為區塊鏈研發創新企業,較早深耕該領域并持續耕耘,DTFN開放許可鏈通過支持SGX,已具備可靠且高效的隱私保護能力。在apache開源社區中,能鏈科技代碼貢獻量保持全球領先。關于這項技術創新的應用案例,可登錄官網查詢。

可信計算基TCB

可信并不等同于安全,但它是安全的基礎。因為安全的方案、策略只有運行在未被篡改的環境下才能進一步確保安全目的。“可信計算基”便是計算機系統的保護機制,也是數據庫安全中的一個基本概念。

對于計算機系統,可信計算基(TCB)是實現數據安全的所有實施策略和機制的集合,其包括硬件、軟件以及固件等組件,它們共同執行計算機安全策略并提高系統的安全性。通常,TCB由一個操作系統及其所有內置的安全控制、單獨的系統硬件、網絡硬件和軟件、已檢測的安全過程和協議,以及系統本身的實際物理位置組成。整體來說,計算機對信息系統安全可信的要求,便是從可信計算基(TCB)開始層層擴充,對計算資源進行保護,從而確保系統服務安全。
婷婷五月基地