大数据时代如何保护我们的信息
并且随着物联网技术的发展,我们身边会出现越来越多的传感器,比如接入家居的电子监控系统,接入水表电表的自动抄表系统,和正在发展之中的智能驾驶技术等等。许多的传感器设备孜孜不倦地采集着数据,并且利用这些数据来改善我们的生活。工业方面也是如此。机器与机器的交互(M2M)让智能制造成为可能,自动排期系统可以让工厂最大化产能,同时智能传感器实时监控机器的生产状态,节省了管理机器设备的大量人力资源。
大数据、云计算、人工智能,这些热门的词汇正在不断创造新的产业,为人们的生活带来更多的便利和活力。数据成为了一种资产,可以带来价值和收益。相比传统的实体资产而言,数据这种虚拟资产还有一大特点,那就是共享带来更多的好处。分享数据的边际成本为0,但是边际收益巨大,如果能够促进全球各个方面的数据共享,可以为所有人带来更大的好处。那么何乐而不为呢?
之所以数据共享没有达到我们想象的效果,是因为还存在对敏感数据泄露的担忧。在分享数据的时候,有些涉及商业机密的数据可能流入别人的手中,知识产权的泄露对于许多企业来说是致命的,这种威胁让许多企业仍然对数字化系统、数据共享持怀疑态度。
在使用云计算服务的时候,用户不可避免的需要将原始数据上传到平台处,无论平台方宣称在上传后数据会经过怎样的加密处理来防止数据泄露,在上传数据这一步的时候,用户仍暴露在隐私泄露的风险之中。同时,在数据使用环节,在云计算服务器分析数据的时候,用户数据对于计算机和服务提供商来说也是完全透明的。
此外,生活在众多传感器中间的我们,许多个人资料、隐私都将受到威胁。这些智能系统一旦遭到入侵,我们的生活隐私都将可能受到侵犯。对于企业来说更是如此,数字化改造确实方便了企业的管理,但是出于的商业机密信息的安全的考虑,更别提持有大量公民个人敏感信息的政府系统和医疗系统了。近年来,Facebook,Uber的数据泄露丑闻也让人反思数据保护的重要性。
我们想要享受云计算、信息共享带来的好处,但是又不想因此将我们的敏感信息置于风险之中。这种对于数据处理和隐私保护的需求,催生了隐私计算技术的诞生。
隐私计算技术是现在密码学的前沿方向。传统的密码学关注如何将明文转化为密文,注重信息的加密和读取过程,但是在信息使用环节仍存在空白。(可以参考这篇文章) 隐私计算则瞄准了大数据时代的痛点,在保护本地隐私的前提下,促进更多的信息共享和合作。
隐私计算,是一类数据或计算方法保持加密状态,不泄露给其他合作方的前提下,进行计算合作的技术,其出现填补了密码学出现以来在信息的处理和使用环节的空白。
隐私计算计算的价值已经体现在其在区块链上的应用。对于正与金融、医疗、物联网等众多领域快速融合的区块链技术而言,保证交易的匿名性和真实性已经不再是关注的重点。区块链也更加需要保证原生数据的所有权、隐私权和数据保护。因此区块链率先引入了隐私计算技术。因此,了解区块链所使用的隐私计算技术可以为其他云计算、云服务平台的信息安全保护措施带来借鉴意义。
隐私计算技术
目前,隐私计算的技术方向包括全同态加密、安全多方计算、不可区分混淆和零知识证明。
全同态加密
全同态加密的目的是在数据加密的同时,保证数据的计算性。在之前的密码学中,无论是对称加密还是非对称加密,在使用环节都需要对数据进行解密。这样的加密虽然可以预防传输过程中的信息泄露,但是无法防止在云计算平台上的泄露。
所谓同态,就是加密后的密文经过加法、乘法等运算后,仍能得到相对应明文经过同样计算之后的结果。
段没有意义的字符串而已。因此可以避免在计算环节的信息泄露。
而全同态加密,则是给定任意一种运算规则,都可以通过算法构造出对加密数据的对应运算规则,来满足同态的需要。
全同态加密问题从2009年提出,并且经过了三个发展阶段。第一代全同态加密始于2009年Gentry的论文《Fully Homomorphic EncryptionUsing Ideal Lattices》,但是这种基于理想格的全同态加密算法意味着大量的算力消耗,虽然满足了同态的要求但是没能满足大数据计算的应用的需求。第二代全同态加密算法是2011年Brakerski和Vaikuntanathan的BGV算法,减少了计算需要的时间,但是仍没有摆脱“计算密钥”的束缚。2013年Gentry等人的GSW算法是最新的第三代全同态加密方案,是一个不需要计算密钥的相对高效的方案。
全同态加密目前还存在一定的局限性。 虽然GSW算法已经相对高校,但是从消耗的算力和获得的加密效果上来看,成本仍大于收益,因此还缺少大规模商业应用的前提。
安全多方计算
安全多方计算问题始于图灵奖得主姚期智院士1982年提出的“百万富翁问题”:两个百万富翁,如何在不公开自己的真实财产数字的前提下,比较谁更富有,而且这个结果是可信的?
安全多方计算为密码学的一个子领域,旨在解决相互不信任的数据提供方进行协同计算的问题。即让多个数据持有者在互不信任的前提下进行协同计算和输出计算结果,且所有人除了得到计算结果之外,无法得到更多关于原始数据的信息。
安全多方计算还有别的应用场景:将一个需要加密的密钥拆分为n份,保管在不同的人手中,各方都不知道其他人保管的部分。利用这n份中至少t份就可以恢复密钥的内容,而且这些密钥持有者都无法得知别人保管的密钥的内容。
在区块链中,安全多方计算解决两个问题:
1.公开数据带来的隐私问题:区块链中记录着个人所有的交易信息,一旦数字钱包地址和拥有者个人信息对应,那么这个人的所有交易信息都会在公开的网络中一览无余;
2.链上无法进行高效计算处理的性能问题。:区块链需要大量的节点同时对数据进行运算,以保证数据的准确和不被修改,这样会导致资源的浪费和效率的低下。
可信执行环境
可信执行环境(trusted execution environment, TEE)旨在从硬件角度解决信息安全问题。2009年,OMTP(Open Mobile Terminal Platform)定义了TEE为“一组软硬件组件,可以为应用程序提供必要的设施”,需要满足两种定义的安全级别中的一种。第一个安全级别目标是应对软件攻击,第二个安全级别目标是同时应对软件和硬件攻击。
可信执行环境最初是为了解决REE(Rich Execution Environment),也就是我们现在常用的移动设备,上的信息安全问题所提出来的。由于REE上的系统Rich OS很容易遭到攻击,所以我们希望在更加可信的环境下存储我们的关键信息。可信执行环境TEE就是CPU上的一块区域,与REE相隔离,为数据和代码提供一个更加安全的空间。如今大多数基于TEE技术的Trust OS都遵循了GlobalPlatform(全球最主要的智能卡多应用管理规范的组织)的标准规范。
TEE标准特征有:
1. 软硬件协同的安全机制:软件,硬件的隔离
2. 算力共享:能使用CPU同等的算力和硬件资源
3. 开放性:有对应的REE侧
2013年,英特尔推出了基于TEE的指令集扩展:SGX(全称Intel Software Guard Extension),通过保障硬件安全,在不依赖固件和软件的安全前提下构造可信执行环境。SGX将合法软件的安全操作封装起来,保护其不受其他软件和操作系统的影响。
在区块链中,可信执行环境担任一个“可信中介”的作用。在密码学的加密算法还不能带来能覆盖过成本的收益之前,使用硬件设计的方案寻找一个硬件的可信第三方成为区块链隐私计算的一个备选方案。这个可信执行环境能够接受来自多方的数据输入,同时能够诚实执行既定的运算,并反馈结果。
不可区分混淆
很多桌面端的软件都会进行代码混淆来保护自己的代码。代码混淆的思路很简单,将程序中的变量名等转换为随机的,无意义的字符串,这样如果软件被破解,代码逻辑也不会泄露。
但是这种基础的代码混淆并不会完全阻止入侵者,只是一种“减速路障”,因为熟练的入侵者只要多花一些时间,破译混淆的代码也不是不可能。
一个理想的混淆器叫“黑箱混淆器”。一个具有黑箱的软件,除了输入和输出之外,任何人无法得知中间的信息。但是,2001年,加州大学洛杉矶分校的计算机学家Sahai团队证明了,完美的“黑箱”是不可能实现的。
有一种退而求其次的方法,叫做不可区分混淆。不可取分混淆的含义是,如果两个软件输入输出性质相同,那么经过代码混淆之后,就无法判断是哪个软件。也就是说,存在两个程序A和B,如果输入相同的数据,则A和B的输出是相同的。把A,B放入混淆器中,会得到P和Q。对于使用者而言,不能判断P来自A还是B。
2013年,Sahai团队提出了一个混淆器的实现手段,这种混淆建立在“多线性拼图”(multilinear jigsaw puzzle) 上,想要破解这个混淆需要动用巨大的计算资源,是一种相对可信的混淆器方案。但是由于算法成本较高,会降低代码运行的速度,因此还有一定的发展空间。
不可区分混淆技术可以在公开链上保护用户的隐私信息。比如在以太坊智能合约上,合约设置了在达成某一个条件时,自动使用某个中间节点登录用户账户进行交易。同时这个合约使用混淆器进行了混淆,因此合约的内容和账户密码等信息都无法被这个节点获取到,这个节点只能看到进行了交易这样的输出值。
零知识证明
零知识证明的核心是“在不透露这个论断的任何信息的情况下,向第三方证明这个论断是对的”。放在区块链中,可以说是“不透露这笔交易的对象和金额,证明这笔交易是合法的”。
这个条件看起来匪夷所思,但是这篇文章中有很生动形象的例子,可以进行参考,便于理解。
零知识证明需要具有三个特征:
- 完备性: 如果证明方和验证方都是诚实的,证明方确实是正确的,那么验证一定可以通过;
- 稳定性: 如果证明方式错误的,那么验证几乎不可能通过;
- 零知识: 在证明完成后,验证方除了证明结果以外不会得到任何信息。
但是零知识证明仍存在问题:如果证明方和验证方想要对第三方证明,那么如何保证证明方和验证方没有进行串通合谋呢?
非交互式零知识证明(zk-SNARK)可以解决这个问题。zk-SNARK除了满足零知识证明的几个特征之外,还多一个特征:零交互。在零知识证明中,证明方和验证方需要进行交互才可以给出判断的结果,但是在zk-SNARK中,证明方和验证方不需要进行交互,即可完成证明。
ZCash是对zk-SNARK的一个应用。在ZCash上,交易双方,交易金额均未隐秘,账本唯一公开的记录就是交易的存在性。
参考
隐私计算:动态的加密技术——区块链技术引卷之八
3分钟让你了解隐私计算+区块链带来的革命
如何使用区块链保护数据隐私?
区块链与分布式隐私计算行业报告
全同态加密的发展与应用
安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案
可信执行环境TEE介绍及在区块链领域的应用_区块链_triaslab的博客-CSDN博客
如何用区块链保护互联网用户隐私 - 链闻 ChainNews
起源故事:瓮城、沙盒与可信计算