首页 能链洞察 区块链百科

区块链百科合集之安全与隐私

区块链百科合集之安全与隐私

发布时间: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)开始层层扩充,对计算资源进行保护,从而确保系统服务安全。