一、文章内容
1. 摘要&简介
Implement a protocol that turns a blockchain into an automated access-control manager that does not require trust in a third party.
- (1)We combine blockchain and off blockchain storage to construct a personal data management platform focused on privacy.
- (2)We illustrate through our platform and a discussion of future improvements to the technology, how blockchains could become a vital resource in trusted-computing.
2. 挑战(隐私问题)
- Data Ownership(数据拥有者):确保用户私有信息的所有和支配
- Data Transparency and Auditability(数据透明性和可审计性):被收集的数据和访问方式对用户是完全的透明的
- Fine-grained Access Control(细粒度访问控制):在任何给定的时间,用户可以更改权限集并撤销对以前收集的数据的访问
3. 提出方法
系统图
系统介绍
(1)系统实体
- Users(用户):对下载数据和使用应用感兴趣
- Services(服务):出于运维和商业相关的原因需要对个人数据进行处理的应用提供者
- Nodes(节点):为得到奖励而维护区块链和分布式私有键值对数据存储的实体
(2)交易类型
- T a c c e s s T_{access} Taccess:用于访问控制管理
- T d a t a T_{data} Tdata:用于数据存储和检索
(3)交易流程
- User安装应用并首次注册,生成 ( u s e r , s e r v i c e ) (user,service) (user,service)身份并与相应的 权 限 权限 权限通过 T a c c e s s T_{access} Taccess发送到区块链
- User的智能手机将收集的数据(包括传感数据和位置信息等)用共享的 对 称 密 钥 对称密钥 对称密钥加密后通过 T d a t a T_{data} Tdata发送到区块链,区块链将这些数据随后以 键 − 值 对 键-值对 键−值对的方式存储在off-blockchain,只保留一个指向此公共账单上数据的指针(此指针为数据的SHA-256哈希值)
- 此时 u s e r user user和 s e r v i c e service service通过 T d a t a T_{data} Tdata交易使用指针(即“键”)访问数据。区块链会验证数字签名属于 u s e r user user或 s e r v i c e service service,如果是 s e r v i c e service service,需要同时检查其 权 限 权限 权限
- 最后, u s e r user user可以通过 T a c c e s s T_{access} Taccess交易和新的 权 限 权限 权限为 s e r v i c e service service重新授权或者撤销数据的访问
PS:off-blcokchain的键-值对存储是用分布式哈希表(DHT)来实现的
4. 网络协议
- 对称加密机制3元组 ( G e n c , ε e n c , D e n c ) (G_{enc},\varepsilon_{enc},D_{enc} ) (Genc,εenc,Denc):生成器、加密、解密算法
- 数字签名3元组 ( G s i g , S s i g , V s i g ) (G_{sig},S_{sig},V_{sig}) (Gsig,Ssig,Vsig):生成器、签名、验证算法
系统构建模块
(1)身份
- 复合身份(Compound identities): C o m p o u n d u , s ( p u b l i c ) = ( p k s i g u , s , p k s i g s , u ) Compound_{u,s}^{(public)}=(pk_{sig}^{u,s},pk_{sig}^{s,u}) Compoundu,s(public)=(pksigu,s,pksigs,u)
- 完整身份: C o m p o u n d u , s = ( p k s i g u , s , s k s i g u , s , p k s i g s , u , , s k s i g s , u , , s k e n c u , s ) Compound_{u,s}=(pk_{sig}^{u,s},sk_{sig}^{u,s},pk_{sig}^{s,u},,sk_{sig}^{s,u},,sk_{enc}^{u,s}) Compoundu,s=(pksigu,s,sksigu,s,pksigs,u,,sksigs,u,,skencu,s)
- 复合身份生成协议:
- user执行 G s i g ( ) G_{sig}() Gsig()生成相应的公/私钥对,执行 g e n c ( ) g_{enc}() genc()生成对称密钥
- service执行 G s i g ( ) G_{sig}() Gsig()生成相应公/私钥对
- 双方互换公钥,user多分享一个对称密钥给service,最终双方都拥有
(
p
k
s
i
g
u
,
s
,
p
k
s
i
g
s
,
u
,
s
k
e
n
c
u
,
s
)
(pk_{sig}^{u,s},pk_{sig}^{s,u},sk_{enc}^{u,s})
(pksigu,s,pksigs,u,skencu,s)
(2)区块链存储
- L L L代表区块链内存空间,哈希表 L : { 0 , 1 } 256 → { 0 , 1 } N L:\{0,1\}^{256} \rightarrow\{0,1\}^N L:{0,1}256→{0,1}N
- 交易的输出地址用于编码256比特的内存地址指针以及其他附属元数据
- 当作查询 L [ k ] L[k] L[k]时返回最近的交易
(3)访问策略
- 用户u授予服务s的权限表示为 P O L I C Y u , s POLICY_{u,s} POLICYu,s
- P O L I C Y u , s = { l o c a t i o n , c o n t a c t s } POLICY_{u,s} = \{location, contacts\} POLICYu,s={location,contacts}表示具有位置和联系人的访问权限
(4)附属函数
- P a r s e ( x ) Parse(x) Parse(x)用于反序列化发送到交易的信息,包含参数、 C h e c k P o l i c y ( p k s i g k , x p ) CheckPolicy(pk_{sig}^k,x_p) CheckPolicy(pksigk,xp)
-
C
h
e
c
k
P
o
l
i
c
y
(
p
k
s
i
g
k
,
x
p
)
CheckPolicy(pk_{sig}^k,x_p)
CheckPolicy(pksigk,xp)协议如下:
- 输入当前签名公钥 p k s i g k pk_{sig}^k pksigk和要检查的权限 x p x_p xp
- 区块链检查签名公钥,若签名公钥属于用户即
p
k
s
i
g
k
=
p
k
s
i
g
u
,
s
pk_{sig}^k=pk_{sig}^{u,s}
pksigk=pksigu,s,则直接返回1(表示拥有权限);若签名公钥属于服务方即
p
k
s
i
g
k
=
p
k
s
i
g
s
,
u
pk_{sig}^k=pk_{sig}^{s,u}
pksigk=pksigs,u则需进一步验证当前权限是否与用户授予的权限吻合,若
x
p
∈
P
O
L
I
C
Y
u
,
s
x_p \in POLICY_{u,s}
xp∈POLICYu,s则返回1,否则返回0
区块链协议
(1)访问控制协议
- T a c c e s s T_{access} Taccess交易只能由用户发起,因此需要对用户的身份进行审计,采取一定的访问控制策略
- 具体协议如下图:
- 输入用户签名公钥 p k s i g k pk_{sig}^k pksigk和消息 m m m
- 对消息进行解析得到用户和服务分别的公钥以及用户对服务的权限
- 然后区块链检查用户签名公钥是否和解析出的用户签名公钥相同,即判断 p k s i g k = p k s i g u , s pk_{sig}^k=pk_{sig}^{u,s} pksigk=pksigu,s是否成立
- 若成立将当前用户签名公钥的哈希值作为L的地址,并在当前地址存储信息m,最后返回1(表示访问成功)
(2)存储或加载协议
- 输入用户/服务签名公钥 p k s i g k pk_{sig}^k pksigk和消息 m m m
- 对当前信息进行解析,得到 c , x p , r w c,x_p,rw c,xp,rw分别代表 “存储数据”、“访问权限”、“读写权限”
- 判断当前用户/服务是否具有访问权限,是则进入下一步
- 如果读写权限为写,表示存储操作 ,如果权限为写,表示加载操作
二、文章术语
- K-匿名
- l-diversity
- t-closeness
- Fully Homomorphic Encryption(全同态加密)
- Distributed Hashtable- DHT(分布式哈希表)
- ECDSA (Elliptic Curve Discrete Signature Scheme椭圆曲线离散签名机制)
- Shamir’s Secret Sharing (虾米尔密钥分享)
- Multiparty Computation(MPC 安全多方计算)
三、生词
1. 写作助手
- In the sequel 结果,后来
- To illustrate, consider the following example
- albeit 尽管;虽然;即使
- In light of this 鉴于此
- state-of-the-art systems 先进的系统
2. 生僻词
- well-rounded adj. 良好的;健康的;适宜的 adv. 很好地;充分地;满意地
- surveillance n.监督;监视
- opt-out 撤退;退出;辞职
- entrust 委托;托管
- storage and retrieval 存取
- harness vt. 利用;驾驭
- subvert 颠覆;暗中破坏;使背叛;搅乱
- mitigate 减轻;缓和