科普 | 隐私保护堪忧?加密数据仓库大显身手(中篇)

本文源自于 Rebooting Web of Trust 组织在 RWOT IX — Prague, 2019会议上的论文《Encrypted Data Vaults》的第二部分。继上一部分介绍了当前加密数据仓库的方法和体系结构、派生的要求、设计目标以及开发者在实现数据存储时应意识到的风险之后,本部分将主要讲述数据存储系统的常见用例需求分析以及建设加密数据仓库的一些指导原则和设计目标。下一期我们将带来《Encrypted Data Vaults》的最后一部分,探讨加密数据仓库的架构及一些安全和隐私方面的考虑等问题。

原文:https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/encrypted-data-vaults.md

作者(按字母顺序):Amy Guy、David Lamers、Tobias Looker、Manu Sporny 和 Dmitri Zagidulin

贡献者(按字母顺序):Daniel Bluhm 和 Kim Hamilton Duffy

一、核心用例

以下四个用例是数据存储系统常见的应用模式,但绝不是唯一的用例。

1. 存储和使用数据

用户希望将数据存储在安全的位置,但不希望存储服务提供商能够看到他存储的任何数据,也就是说只有用户本人可以看到并使用数据。

2. 搜索数据

随着时间的推移,用户将会存储大量数据。用户需要搜索数据,但不希望服务提供商知道用户要存储或搜索的内容。

3. 与一个或多个实体共享数据

用户一般会和其它人或服务等多个实体共享其数据。在第一次保存数据时,或在以后的使用过程中,用户可以决定授予其它实体访问其存储区中数据的权限。只有在该用户明确同意的情况下,他的存储空间和数据才允许别人访问。

用户希望能够随时撤消他人的访问权限,且在共享数据时,可以设置第三方访问其数据的有效期限。

4. 将同一数据存储在多个地方

用户需要系统具备跨多个存储位置备份其数据的能力,以防数据丢失。这些位置可以由不同的存储提供商托管,并且可以通过不同的协议访问。这些位置可能是用户的手机,也可能是云存储。另外,这些位置应该能够彼此同步。因此,无论用户如何创建或更新数据,这些位置上的数据都是最新的,并且能够在不需要用户协助的情况下自动进行同步。

二、需求分析

从上述四个核心用例中,我们可以提取出对存储系统的一些需求。

1. 隐私和多方加密

该系统的主要目标之一是确保实体数据的隐私,以防未经授权的人(包括存储提供商)访问该数据。

为此,必须在数据(通过网络)传输和(在存储系统上)保存时对数据进行加密。

由于数据可以与多个实体共享,因此加密机制还必须支持将加密数据分享给多方,允许多方访问。

2. 共享与授权

该系统有必要提供一种授权机制,以允许在一个或多个实体之间共享加密信息。

在系统中,可以指定一种强制性授权方案,也可有其它替代性授权方案。这些授权方案包括 OAuth2.0、Web 访问控制和 ZCAPs 等。

3. 身份标识

该系统应与身份标识无关。通常来说,URN 或 URL 形式的标识符是首选。假定系统要以某种方式使用去中心化身份(DID),但以硬编码实现 DID 不是一种很好的模式。

4. 版本管理和副本

一般来说,我们期望系统可以连续备份信息。基于该原因,系统需支持至少一个强制性的版本管理策略和一个强制性的副本策略,同时还允许其他版本管理和副本策略。

5. 元数据和搜索

系统一般会存储大量数据,用户需要能对数据进行高效且可选择性的检索。为此,加密搜索机制是系统的必要功能。

对于客户端来说,重要的是能够将元数据与数据相关联,以便可以对数据进行搜索。同时,由于数据和元数据的隐私性需要得到保证,因此元数据必须加密存储。另外,服务提供商必须能够以不透明且保护隐私的方式执行那些搜索,而不能查看元数据。

6. 通讯协议

由于该系统需要可以和各种业务环境兼容,因此必须至少强制使用一种通信协议。但有一点也很重要,设计也应允许系统使用其它协议,如HTTP、gRPC、蓝牙和其它一些在线协议。

三、设计目标

本节详细介绍了建设加密数据仓库的一些指导原则和设计目标。

1. 分层和模块化架构

使用分层架构方法,可以确保系统基础功能十分容易实现,同时允许将更复杂的功能层叠加在较低层之上。

例如,系统第1层可能包含一些强制性的最基本功能;第2层可能包含对大多数部署来说十分有用的功能;而第3层可能包含一小部分生态项目所需的高级功能;到了第4层,可能会包含极其复杂的功能,而这些功能只有很小一部分生态项目需要。

2. 优先考虑隐私问题

加密数据仓库的建设首先要保护实体的隐私。在探索实现新功能时,请始终将对隐私的影响纳入考虑。对隐私产生负面影响的新功能将经过严格审查,以确定新功能是否值得实现。

3. 将实现复杂性推给客户端

系统服务器应聚焦于加密数据存储和检索功能的实现。服务器对数据了解得越多,存储数据的实体面临的隐私风险就越大,同时服务提供商就会对托管数据负有更多的责任。将复杂性推给客户端可以使服务提供商提供稳定的服务器端实现,而客户端也可进行一些创新。


未完待续,下一期我们将带来《Encrypted Data Vaults》的最后一部分,探讨加密数据仓库的架构及一些安全和隐私方面的考虑等问题,敬请期待!如果你对数据隐私保护等方面感兴趣,欢迎加入本体技术社区,与我们共同探讨。

发布了125 篇原创文章 · 获赞 38 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ontologycoding/article/details/103037509