基于区块链的去中心化个人隐私数据保护
2020-03-30仇善梁
梁 昊,吴 鲲,仇善梁
(江苏旅游职业学院 图文信息中心,江苏 扬州 225127)
当前世界的数据数量正在飞速增长,据估计,目前数据总量的20%是在最近几年产生的。根据腾讯公司董事会主席兼首席执行官马化腾在2016年数博会上公布的数据,腾讯数据存储中心的存储总量已经超过1000个PB,相当于15000个世界上最大的图书馆(美国国会图书馆)的存储量。在大数据时代,数据在不断地被收集和分析,引领着经济增长和创新创造。企业通过收集来的数据推出定制化服务、优化决策过程以及预测未来趋势等。数据是当今经济活动中最有价值的一种资产[1]。
在人们享受着大数据带来的便利的同时,对个人隐私的担忧也在逐渐增长。以安装于智能设备中的各类应用为例,尽管智能设备能够通过权限管理控制各类应用的访问权限,但现实中,各类应用又会在应用内集成来自第三方的服务(如信用数据、支付信息等)。在现有的权限管理机制下,第三方服务提供商能够获取其宿主应用相同的用户隐私信息,而同一服务提供商的服务往往集成于多个应用中,搜集同一用户在不同应用中的多维度信息,进而描绘出完整的用户画像。
由于数据的中心化管理,第三方服务提供商拥有大量的用户隐私数据,为了更好地保证用户数据的完整性和私密性,同时降低计算复杂度,杜朝晖等提出了一种基于第三方审计(ThirdParty Auditor,TPA)的数据隐私保护公共审计方案[2]。尽管这样,由于个人几乎无法控制这些信息将如何被使用,近几年,用户隐私数据泄露的事件还是时有发生。
1 相关研究成果
人们已经开始设法从技术角度解决隐私问题。OpenPDS是一个近期被开发出来的框架,它提出了一个基于数据计算返回计算结果而不是原始数据的个人隐私数据存储模型[3]。企业可以通过应用该框架部署各自的基于开放授权协议的授权系统,从而替换过去中心化管理的可信第三方授权。
从安全角度着手,研究人员开发出了多种定位于保护个人数据隐私的技术。数据匿名化方法试图保护个人可辨认信息,如k-anonymity要求每一条隐私数据至少与其他k-1条数据之间不能被区分[4]。k-anonymity方法又可以分为精确求解方法和近似求解方法。前者能保证找到最优k-anonymity方案,但其时间复杂度为指数级,只适用于小规模数据;后者只能找到近似最优k-anonymity方案,但其时间复杂度为线性或近似线性,可应用于大规模数据[5]。与k-anonymity相关联的还有l-diversity和t-closeness。l-diversity能够确保敏感数据被呈现在一个有足够多变化的可能值的集合中[6]。而t-closeness则着眼于对敏感信息的分布算法[7]。最近的研究已经向人们展示了如何破解使用这些技术的匿名数据集[8,9]。其他的隐私保护方法如差分隐私(differential privacy)通过在共享数据前进行数据扰动和增加噪声[10],其加密方案允许对加密数据进行计算和查询。而同态加密(FHE)方案允许对加密数据进行任意计算,但由于运行效率低下,当前未能被广泛使用。
近几年,一类新系统出现在人们眼前,比特币就是其中一种,在区块链技术的支持下,它允许用户在没有中心化监管的情况下安全地完成转账业务。区块链网络中的每个节点都是整个网络的维护者,网络中没有节点拥有绝对优先的权力[11]。区块链中的交易记录具备防篡改的功能。一旦某个交易被篡改,区块链网络中的节点会快速检测出该行为。区块链针对系统的数据校验需求,具备去中心化,不可篡改性,公开透明等优势[12]。
2 关于隐私问题
区块链平台整体上可划分为数据层、网络层、共识层、智能合约层和应用层5个层次[13]。在本文中,我们提出了在使用第三方服务的应用层时对于用户隐私的担心,特别是在移动平台中,服务商会提供应用程序让用户去安装。这些应用程序会持续收集高度敏感的用户数据,而用户却没有被明确告知且无法掌控个人数据。在分析中,我们假定这些服务商“诚实但好奇”(他们能够遵守隐私协议)。这样类似的情况会出现在大部分隐私数据处理系统中,如病人分享自己的医疗数据供研究使用。因此,监管这些数据会如何被使用并能随时取消授权就十分有意义。综上,我们提出的系统与下列普遍的隐私观点有以下三点不同之处:
(1)数据权属。我们的框架聚焦于保障用户持有并掌控自己的个人数据,系统运行时将用户识别为数据所有者,而服务商则是带着授权许可的访客。
(2)数据透明度。用户完全了解哪些数据在被收集并用在何处。
(3)精确访问控制。我们重点关注那些在注册时要求用户进行一系列许可授权的移动应用程序,这些许可被过度授权且改变授权的唯一办法就是不再使用该应用。相反,我们的框架允许用户随时改变授权并撤回之前被收集的数据。运行在这种机制下的移动应用需要对现行的授权会话机制进行提升,在用户界面保持原样的同时,访问控制协议会被安全地存储在区块链中且只能被用户自身修改。
3 解决方案
从图1可以看出,我们的系统包含三个实体:用户、服务商和节点。用户专注于下载和试用应用;服务商提供相关应用,这些应用由于运行或商业需求,需要处理用户个人数据(如推送广告,个性化服务等);而节点则根据激励机制维护区块链和分发隐私键-值存储。既然用户通常希望在系统中保持匿名,我们可以在区块链中存储服务配置信息并验证他们的身份。
图1 去中心化平台
这套系统是这样设计的:区块链接收两种新型的交易:Taccess——用来进行访问控制管理以及Tdata——用来进行数据存储和检索。这些新的网络操作可以被轻松整合进软件发布套件(SDK)中供服务商在开发时使用。
举例说明,当用户安装了使用这个框架保存隐私数据的应用,在用户第一次注册时,一个包含用户和服务商的新的共享身份随着相关授权许可将会通过Taccess交易生成并发送到区块链。而从用户端收集的数据将通过共享密钥加密并通过Tdata交易发送到区块链,随后路由至离链键-值存储,而在公共账本上只保留数据通过SHA-256算法计算得到的哈希值。
至此,用户和服务商都可以通过Tdata交易使用哈希值来查询与之对应的数据。区块链则根据用户或服务商的数字签名来验证其身份,而服务商的数据访问许可也将同时被检查。用户还能通过发起Taccess交易随时改变对于服务商的授权许可,包括撤回对之前存储数据的访问。开发一个基于网页或移动端的控制台来查看数据和管理授权是十分琐碎的,就相当于开发比特币钱包一样。
离链键-值存储是基于Kademilia协议[14],分布式哈希表(DHT)实现的,且需要持续使用LevelDB数据库和区块链接口。DHT通过被核准进行读写交易的节点网络进行维护,数据通过节点被充分随机化并被复制以保证高可用性。因此,离链也可以被考虑作为数据存储的选择方案之一。
4 网络协议
下面将详细阐述系统中使用到的协议。我们利用标准密码来构建区块:由生成、加密和解密算法(Genc,Eenc,Denc)定义的对称加密方案,由生成、签名和验证算法(Gsig,Ssig,Vsig)定义的应用包含secp256k1曲线的椭圆曲线数字签名算法的数字签名方案[15]以及通过SHA-256实例化的加密哈希函数H[16]。
4.1 构建区块
(1)身份:区块链使用了一种伪身份机制,实际上是一个公钥,每个用户可以根据需要生成任意多的伪身份以增强隐私。我们则在系统中使用了混合身份,这是伪身份的一种扩展。混合身份是多方共享身份,至少有一方掌握身份信息(所有者),其他方可以有限访问身份(访客)。表1说明了单个所有者(用户)和单个访客(服务商)的应用。据此说明,这个身份包含为所有者和访客分发的密钥对以及为加密和解密数据使用的对称密钥。形式上,混合身份表示如下:
同样的,包含私钥的整个身份表示如下:
表1 生成混合身份
(2)区块链存储器:我们使用L作为区块链存储空间,在N》256且能存储足够大的文档时代表哈希表L:{0,1}256→{0,1}N。我们假设这个存储器使用与比特币和其他区块链系统一样的对抗模型来进行防篡改。为了直观地解释为什么这个可信数据存储能够在任何区块链系统中被应用,我们考虑出了下面这个简单的应用:区块链是一系列带有时间戳的交易,这些交易包含输出地址的可变数(每个地址是一个160-bit的数)。L应用如下——用前两个交易输出对256-bit的存储地址指针和一些元数据进行编码,用其他输出构建序列文档。当我们查阅L[k]时,只返回最近的一次交易。
(3)方案:用户u授予服务商s的一组权限记作POLICYU,S。例如,如果用户安装了一款需要访问用户位置信息和联系人的应用,那么POLICYU,S={location,contacts}。假设服务商不会破坏协议或者错误地标注数据,那么任何形式的数据都可以用这种方式被安全地存储。同时,在任何时候,由于任何改变都清晰可见,用户便能随时了解服务商是否违约。
表2 区块链的权限检查
4.2 区块链协议
我们将详细描述区块链中执行的核心协议,当收到Taccess交易信息时,网络中的节点将执行表3;类似的,Tdata交易将会触发表4。
表3 访问控制协议
前文中我们提及,Taccess交易允许用户通过POLICYU,S设置改变对服务商的授权。发送一份空白设置可以撤回之前所有的访问授权。而第一次发送带有混合身份的Taccess交易可以理解为用户在服务商的软件中进行了注册。
类似的,Tdata交易控制着读/写操作,在CheckPolicy的帮助下,只有用户或者被授权的服务商才能访问数据。在实践中,这些指令会生成离链网络信息并被发送给分布式哈希表。
表4 存储或载入数据
4.3 隐私和安全分析
我们依靠区块链来防篡改。同时,我们假定用户会使用安全的方式保管密码,例如使用有安全认证的钱包服务。我们将展示系统如何保护不受系统中恶意节点的威胁。尽管当前多数品牌服务商都较为诚信,不会恶意破坏协议或记录之前获取的数据。
基于我们的模型,只有真实用户对自己的数据有控制权,区块链去中心化的特性结合数字签名的交易能够保证恶意用户不能伪装成真实用户、伪造签名或者利用大规模的网络资源获取控制权。同样,恶意用户也不能从公共总账中得到任何信息,因为上面只存储了经过哈希计算的指针值。即使有恶意用户控制了某些节点,也不能从中得到任何原始数据,这些数据都用密钥进行了加密,而且任何节点都不带有密钥。虽然单个节点可以篡改自身的数据副本,但我们在实践中仍可以通过对数据的充分分布和复制来降低风险。
5 结论
一般而言,尽量不要让第三方存储掌握个人数据和敏感数据,因为数据容易受到攻击或被误用。相反,用户需要掌控自己的数据不受安全威胁并且不能被企业或当局限制为其提供个性化服务。本文提出的平台通过结合区块链并引入带离链存储的访问控制来解决这一问题。用户无须信任任何第三方并实时掌握哪些数据将被收集且如何被使用。另外,区块链能够识别用户为数据的所有者。企业则只需要关注如何使用数据而不是保护和划分数据。
此外,运用去中心化的平台,制定收集、存储和分享敏感数据的法规和监管政策将更加简便。而且,法律法规可以被编写进区块链内,这样可以被自动强制执行。另外,区块链账本可以看作是访问或存储数据的合法证据,因为账本本身是防篡改的。