浙江大学学报(工学版), 2024, 58(4): 655-663 doi: 10.3785/j.issn.1008-973X.2024.04.001

计算机与控制工程

基于区块链的用户自定义位置共享方案

申自浩,, 刘梦珂, 王辉,, 刘沛骞, 刘琨

1. 河南理工大学 计算机科学与技术学院,河南 焦作 454000

2. 河南理工大学 软件学院,河南 焦作 454000

User defined location sharing scheme based on blockchain

SHEN Zihao,, LIU Mengke, WANG Hui,, LIU Peiqian, LIU Kun

1. School of Computer Science and Technology, Henan Polytechnic University, Jiaozuo 454000, China

2. School of Software, Henan Polytechnic University, Jiaozuo 454000, China

通讯作者: 王辉,男,教授,博导. orcid.org/0000-0002-4085-9050. E-mail:wanghui_jsj@hpu.edu.cn

收稿日期: 2023-07-14  

基金资助: 国家自然科学基金资助项目(61300216);河南省高等学校重点科研项目(23A520033);河南理工大学博士基金资助项目(B2022-16,B2020-32).

Received: 2023-07-14  

Fund supported: 国家自然科学基金资助项目(61300216);河南省高等学校重点科研项目(23A520033);河南理工大学博士基金资助项目(B2022-16,B2020-32).

作者简介 About authors

申自浩(1980—),男,副教授,硕导,从事隐私安全保护与智能信息处理研究.orcid.org/0000-0003-3541-7888.E-mail:szh@hpu.edu.cn , E-mail:szh@hpu.edu.cn

摘要

针对移动社交网络位置共享服务存在的隐私泄漏问题,提出基于区块链的用户自定义位置共享(BUDLS)方案. 基于区块链实现位置信息分布式管理,防止中央服务器收集大量用户隐私,增强用户位置信息的可控性. 设计基于公钥数字签名和同态加密相结合的加密机制,防止位置信息被攻击者非法获取. 定义灵活的访问控制策略,根据用户需要提供可靠的服务. 安全分析验证结果显示,BUDLS方案满足隐私安全目标. 仿真实验结果表明,相比传统方案,BUDLS方案降低了时间成本,提高了位置查询的准确性,有效保护了移动社交网络平台用户的位置隐私.

关键词: 移动社交网络 ; 区块链 ; 位置共享 ; 位置隐私 ; 同态加密

Abstract

Aiming to address the problem of privacy leakage faced by users of mobile social networks when using location-sharing services, a blockchain-based user-defined location-sharing (BUDLS) scheme was proposed. Firstly, the distributed management of location information was realized based on blockchain to prevent the central server from collecting a large amount of user privacy and to enhance the controllability of user location information. Secondly, an encryption mechanism based on the combination of public key digital signature and homomorphic encryption was designed, effectively preventing the location information from being illegally obtained by attackers. Finally, flexible access control policies were defined according to the actual needs of users to provide users with reliable location-sharing services. The security analysis verified that the BUDLS scheme met the privacy security goal. Simulation results showed that, compared with the traditional scheme, the BUDLS scheme reduced the time cost, improved the accuracy of location queries, and effectively protected the location privacy of users on mobile social network platforms.

Keywords: mobile social networks ; blockchain ; location sharing ; location privacy ; homomorphic encryption

PDF (1140KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

申自浩, 刘梦珂, 王辉, 刘沛骞, 刘琨. 基于区块链的用户自定义位置共享方案. 浙江大学学报(工学版)[J], 2024, 58(4): 655-663 doi:10.3785/j.issn.1008-973X.2024.04.001

SHEN Zihao, LIU Mengke, WANG Hui, LIU Peiqian, LIU Kun. User defined location sharing scheme based on blockchain. Journal of Zhejiang University(Engineering Science)[J], 2024, 58(4): 655-663 doi:10.3785/j.issn.1008-973X.2024.04.001

随着定位技术的快速发展,基于位置的服务(location-based service, LBS)被广泛应用于移动社交网络领域[1-3]. LBS采用GPS、WLAN、蜂窝网络技术获取移动用户的位置信息,向移动社交网络平台用户提供基于位置的服务,例如向好友发送位置信息和共享实时位置[4-5]. 移动社交网络平台用户在使用好友位置共享服务时,伴随着严重的隐私安全隐患[6]. 用户的位置信息中包含用户的隐私,攻击者通过获取用户的位置信息判断出用户的家庭住址、工作地点、兴趣爱好等个人隐私信息.

Sun等[7]设计的位置共享系统UDPLS能够防止位置服务器获取用户完整的社交网络关系,并且支持用户灵活地共享位置信息. Ruan等[8]提出将对称加密和非对称加密结合的方案,只设置一个位置服务器而不使用蜂窝塔来保护位置隐私,并引入虚拟身份来保护用户的身份隐私. Chen等[9]提出新的移动在线社交网络系统架构SAM,有效保护了移动社交网络平台用户的位置隐私、身份隐私和社交关系隐私. 上述位置隐私保护方案都基于集中式第三方位置服务器实现,由集中式第三方位置服务器管理和存储大量用户位置信息[10]. 若攻击者攻破集中式第三方位置服务器,或者集中式第三方位置服务器的内部管理人员滥用用户的位置信息,用户将会失去对集中式第三方位置服务器中存储的位置信息的控制,用户的位置隐私将面临严重的泄漏威胁. 为此,Li等[11]提出使用多个位置服务器保护用户社交网络隐私的方案. Xu等[12]提出带有多个位置服务器的模型PPLS,并使用安全距离比较协议来保护用户的位置隐私. 然而,使用多个位置服务器,仍然存在位置服务器之间可能相互串通的问题,而且通信和计算成本比单一位置服务器更高. 因此,如何实现移动社交平台用户位置信息的分布式管理成为研究热点.

区块链是新的分布式数据存储应用模型,本质上是分散的分布式数据库. 将区块链应用于用户的位置信息存储,其分布式和去中心化特性可以确保用户的位置不会被第三方的集中服务节点单独存储,实现用户位置信息的分布式存储[13]. 现有的基于区块链的位置隐私保护技术大多应用于车联网领域,较少涉及移动社交网络领域[14-15]. Zhu等[16]提出基于区块链的隐私保护位置共享方案B-PPLS,使用保序加密技术实现多层次的隐私保护. 然而,该方案设置的社交网络平台中不存在好友关系,不适于以好友通信为主流的社交网络平台. 此外,区块链全公开的性质可能会将用户的位置隐私公之于众. 因此,如何保证在移动社交网络用户位置数据不发生外泄的情况下,提供安全的位置共享服务,并实现灵活的访问控制,成为当下移动社交网络隐私保护技术研究领域中具有挑战的研究课题之一. 本研究提出基于区块链的用户自定义位置共享(blockchain-based user-defined location-sharing, BUDLS)方案,用以实现安全灵活的社交网络平台好友位置共享服务.

1. 基于区块链的用户自定义位置共享方案

1.1. 基本定义

社交网络平台中用户可能并不信任所有好友,只允许部分好友获得用户的位置信息,本研究基于有向带权社交网络图结构区分用户对好友的信任程度,允许用户在添加好友时根据信任程度选择是否向某个好友分享位置信息,以实现灵活的访问控制策略.

定义1 有向带权社交网络图. 有向带权社交网络图$ G = (v,e) $,其中$ v $为顶点,$ e $为边,顶点$ v $上附加存储用户的相关信息. 顶点$ {v_{\text{A}}} $到顶点$ {v_{\text{B}}} $的边表示为$ \overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} $,用于区分用户间的社交关系;$ {P_{\overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} }} $$ \overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} $的权值,存储好友间的信任程度.

定义2 好友关系. 当且仅当同时存在$ \overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} $$ \overrightarrow {{v_{\text{B}}}{v_{\text{A}}}} $时,用户A和用户B之间存在好友关系.

定义3 信任程度. 当$ {P_{\overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} }}=1 $时,用户A信任好友B;当$ {P_{\overrightarrow {{v_{\text{A}}}{v_{\text{B}}}} }}=0 $时,用户A不信任好友B.

定义4 访问控制策略. 当且仅当用户A和用户B之间存在好友关系且用户A信任好友B时,用户B才可以查询用户A的位置信息.

1.2. 预备知识

1.2.1. RSA数字签名技术

数字签名是对信息的发送者发送信息真实性的有效证明,基于公钥加密技术实现. RSA数字签名技术基于RSA非对称加密算法实现,RSA算法是常见的用于保护数据安全的非对称加密算法. 非对称加密算法需要2个密钥部分:公钥和私钥,公钥用于加密,私钥用于解密. 算法的实现步骤如下.

1)密钥对生成. 选择2个大质数$p$$q$,假设数字$M{\text{ = }}p \times q$,且满足$ \phi (M) = \left( {p - 1} \right) \times \left( {q - 1} \right) $. 选择整数$e$满足

$ \gcd\; (e,\phi (M)) = 1{\text{ }},{\text{ }}1 < e < \phi (M). $

函数$ \gcd \;\left( \cdot \right) $返回输入的最大公约数. 整数$d$满足

$ d = {e^{{{ - 1}}}}(\text{mod} {\text{ }}\phi (M)). $

式中:$\text{mod} $为模运算. 根据式(1)和式(2),计算$e$$d$. 本研究定义$ \left( {e,M} \right) $为公钥,$ \left( {d,{\text{ }}M} \right) $为私钥.

2)消息加密和签名. 用$\chi $表示明文,密文$\kappa $

$ \kappa = {\chi ^e}\left( {{\mathrm{mod}}{\text{ }} M } \right). $

$ \left( {\chi ,\kappa } \right) $表示签名.

3)消息解密和身份验证. 在接收到签名后,密文可以被解密,表示为

$ m = {\kappa ^d}\left( {{\text{ }}{\mathrm{mod}}{\text{ }}M} \right). $

其中m为由密文$\kappa $解密的明文. 如果m与原始消息$\chi $相同,则签名有效;否则为无效签名.

1.2.2. Paillier同态加密技术

Paillier同态加密是无需解密即可在密文数据上进行计算的加密方法,能够保证在密文数据上计算的结果和在原始数据上计算的结果相同. 算法的实现步骤如下.

1)选择2个大素数$ p $$q$,计算$M = p \times q$. 选择随机整数$g$$g \in Z_{{M^2}}^*$,确保$\gcd \;({{L}}\;({g^\lambda }{\mathrm{mod}}\; {M^2}),M) = 1$,其中${{L}}\;(x) = {{(x - 1)}}/{M}$$\lambda = {{\mathrm{lcm}}}\; (p - 1,q - 1)$${{\mathrm{lcm}}} $为最小公倍数. 公钥为$ (M,g) $,私钥为$(p,q)$.

2)加密:假设$\chi $为原始明文,其中$0 \leqslant \chi \leqslant M$. 选择随机数$b < M$,则密文为$\kappa = {g^n} \times {b^M}\times \text{mod} {\text{ }}{M^2}$.

3)解密:设$\kappa $为要解密的密文,其中$\kappa \in Z_{{M^2}}^*$,解密得到的明文为$m = \dfrac{{{L}\; ({\kappa ^\lambda }\text{mod} {M^2})}}{{{L}\; ({g^\lambda }\text{mod} {M^2})}}\text{mod} M$.

Paillier加密满足同态加性质:在不知道明文${m_1}$${m_2}$的情况下,可以通过${{E}}\;({m_1})$${{E}}\;({m_2})$相乘得到${E}\; ({m_1}+{m_2})$的值,即$ {E}\; ({m_1}) \times {E}\; ({m_2}) = {E}\; ({m_1}+{m_2}) $,其中${E} $为加密运算.

1.3. 系统架构

BUDLS方案的系统架构包括用户、社交网络服务器、区块链和云服务器. 如图1所示为BUDLS方案的系统架构. 方案的各组成部分及其功能如下. 1)用户:以满足预先定义的访问控制策略为前提,通过发送位置查询请求获取附近好友的位置. 2)社交网络服务器(social network server,SNS):存储用户个人信息和社交关系;负责用户注册,用户增删好友,根据用户的查询需求提供社交网络服务. 3)区块链:按时间顺序分布式存储用户的位置信息记录. 4)云服务器:具有一定计算能力的第三方服务器. 用户通过与云服务器交互完成位置查询服务. 方案中各功能的工作流程如下. 1)注册:用户向SNS注册. 注册时须提交个人身份信息,并提供有效的真实性证明. 2)位置更新:当用户到达新的地点时,用户需更新位置信息. 用户将新的位置信息加密上传到区块链中,并提供自己的数字签名. 3)添加/删除好友:用户添加或者删除好友时,须向SNS提交添加/删除好友请求信息;SNS收到请求后,更新用户和好友的社交关系. 4)查询附近好友的位置:用户获取附近好友的位置信息时,首先向云服务器提交请求. 云服务器向SNS查询用户所有好友的信息和对应的信任程度. 然后云服务器筛选出符合访问控制策略的好友,即允许用户查询位置信息的好友. 再在区块链上查询这些好友最近一次更新的位置记录,计算出用户和这些好友的距离,筛选出在用户的查询阈值范围内的好友. 将最终筛选出的好友信息和对应的位置信息发送给用户,用户解密获得查询范围内所有好友的位置信息.

图 1

图 1   基于区块链的用户自定义位置共享方案的系统架构

Fig.1   System architecture of blockchain-based user-defined location-sharing scheme


1.4. 安全威胁和安全目标

BUDLS方案面临的安全威胁是指一些恶意用户、SNS和云服务器的管理员,区块链的矿工也可能作为攻击者试图获取超出其访问控制权限的用户身份信息或位置信息,这些攻击者本身具有一定的背景知识,对用户的隐私敏感信息造成威胁. 因此,BUDLS方案应该满足以下安全目标. 1)访问控制:不符合预设访问控制策略条件的好友不能访问用户的位置信息. 2)身份认证:确定发送消息方的身份,以免收到虚假查询请求和虚假响应消息. 3)身份隐私:除SNS和云服务器的管理员外,其他用户或者攻击者不能获取用户的真实身份信息. 4)位置隐私:攻击者不能获取用户的位置信息.

2. 基于区块链的位置共享协议

基于区块链的位置共享协议分别由初始化协议、注册协议、位置更新协议、添加/删除好友协议、位置共享协议5个部分组成.

2.1. 初始化协议

假设用户集为$ {{U}} = \{ {u_{\text{1}}}{\text{,}}{u_{\text{2}}}{{, \cdots ,}}{u_n}\} $,社交网络服务器SNS初始化具有$n$个节点的社交网络图结构$ G = {\text{(}}v,e{\text{)}} $$n$为社交网络平台的用户数量. 用户每次注册,社交网络图$G$都生成1个新节点$v$. 若用户添加好友,SNS会连接社交网络图$G$上对应的用户节点,生成边$e$,并给边$e$赋以权值;若用户删除好友,SNS会移除社交网络图$G$上对应节点间的边,并删除对应的权值. SNS和云服务器各生成唯一标识符$ {s_{{\text{ID}}}} $$ {c_{{\text{ID}}}} $,用于在传输过程中使用数字签名来保证传输数据的真实性. 社交平台的每个用户都初始化1个唯一标识符$ {u_{{\text{ID}}}} $和1个RSA密钥对$ {\text{(}}{u_{{\text{PUK}}}}{\text{,}}{u_{{\text{PRK}}}}{\text{)}} $. SNS初始化1个RSA密钥对$ {\text{(}}{s_{{\text{PUK}}}}{\text{,}}{s_{{\text{PRK}}}}{\text{)}} $,公钥对全平台公开. 同理,云服务器也初始化1个RSA密钥对$ {\text{(}}{c_{{\text{PUK}}}}{\text{,}}{c_{{\text{PRK}}}}{\text{)}} $,公钥对全平台公开. 每个用户初始化1个Paillier公私密钥对$ {\text{(}}{u_{{\text{PK}}}}{\text{,}}{u_{{\text{SK}}}}{\text{)}} $作为朋友密钥,将其中的私钥$ {u_{{\text{SK}}}} $通过安全的传输信道广播给信任的好友.

2.2. 注册协议

当具有唯一标识符$ {u_{{\text{ID}}}} $的用户想要使用社交服务时,用户需要向SNS申请注册. 假设用户的社交网络数据库以{$ {u_{{\text{ID}}}} $,$ {u_{{\text{PID}}}} $,$ G $,$ {u_{{\text{PUK}}}} $}的形式由SNS维护. 用户注册的步骤如下. 1)用户将注册请求以{$ {u_{{\text{ID}}}} $,$ {t_{{\text{TS}}}} $,$ {u_{{\text{PUK}}}} $,$ {u_{{\text{SIG}}}} $}的形式提交给SNS,其中$ {t_{{\text{TS}}}} $为此时的时间戳,$ {u_{{\text{PUK}}}} $为用户的RSA公钥,$ {u_{{\text{SIG}}}} $为用户注册时的数字签名. $ {u_{{\text{SIG}}}} $的生成过程表示为

$ {u_{{\text{SIG}}}} \leftarrow {{{E}}_{{u_{{\text{PRK}}}}}}({u_{{\text{ID}}}},{t_{{\text{TS}}}}). $

2)SNS收到注册请求后,先验证数字签名$ {u_{{\text{SIG}}}} $的正确性,使用$ {u_{{\text{PUK}}}} $解密$ {u_{{\text{SIG}}}} $,获得用户的$ {u_{{\text{ID}}}} $,检验此$ {u_{{\text{ID}}}} $是否与用户发送的注册请求中的$ {u_{{\text{ID}}}} $一致,如果一致,则数字签名验证成功;反之,则验证不成功. 如果数字签名验证成功,则SNS为用户在社交网络图中生成节点,并为用户分配1个唯一的假身份标识$ {u_{{\text{PID}}}} $. 3)SNS以{$ {u_{{\text{ID}}}} $,$ {u_{{\text{PID}}}} $,$ {u_{{\text{PUK}}}} $,$ {N_{{\text{REG}}}} $}的形式将注册通知发送给云服务器,其中$ {N_{{\text{REG}}}} $是注册成功的通知. 4)云服务器收到通知后,存储用户的$ {u_{{\text{ID}}}} $$ {u_{{\text{PID}}}} $$ {u_{{\text{PUK}}}} $. 注册过程结束.

2.3. 位置更新协议

由于区块链的开放性,云服务器、用户、甚至SNS的管理员都可以查询区块链中存储的位置信息,区块链中的位置信息有泄漏的风险. 采用基于Paillier同态加密技术保护用户的位置信息,Paillier同态加密能够保证位置信息在无需解密的前提下进行距离比较,同时Paillier也是公钥加密算法,能够通过只将私钥分享给好友的方式实现访问控制策略.

用户的位置数据表示为经纬度坐标$ (x,y) $,假设区块链上位置记录的存储形式为位置记录${L_{{\text{REC}}}}$. 位置更新的步骤如下. 1)用户定位位置信息时,不同的定位技术可能会有不同的标准坐标系(例如有的用户利用GPS技术定位时,为WGS-84标准;有的用户根据基站定位时,为GCJ-02标准),因此用户先将定位获得的位置坐标$ (x,y) $统一映射为WGS-84标准下的数字坐标$z = ({x_1},{y_1})$,其中${x_1}$为用户的经度坐标,${y_1}$为用户的纬度坐标, $z$用于在同一坐标系标准下计算用户间的距离,防止计算结果出现误差. 用户再分别将位置坐标$ (x,y) $和数字坐标$z = ({x_1},{y_1})$用Paillier朋友公钥$ {u_{{\text{PK}}}} $加密,得到位置密文坐标$Z$和位置数据密文$ l $$ l = ({l_{{\text{LO}}}},{l_{{\text{LA}}}}) $,其中$ {l_{{\text{LO}}}} $为加密后的经度坐标,$ {l_{{\text{LA}}}} $为加密后的纬度坐标. 加密过程表示为

$ \begin{gathered} Z \leftarrow {{{E}}_{{u_{{\text{PK}}}}}}((x,y)), \; l \leftarrow {{{E}}_{{u_{{\text{PK}}}}}}(z). \end{gathered} $

用户将位置密文$Z$和位置数据密文$ l $、用户假名$ {u_{{\text{PID}}}} $、位置生成时间$ t $和数字签名$ {u_{{\text{SIG}}}} $一起生成位置记录${L_{{\text{REC}}}}$,生成过程表示为

$ {L_{{\text{REC}}}}{\text{ = \{ }}{u_{{\text{PID}}}},l,Z,t,{u_{{\text{SIG}}}}{\text{\} }}{\text{.}} $

2)位置记录${L_{{\text{REC}}}}$由区块链矿工根据共识机制上传到区块链. 位置更新操作完成.

2.4. 添加/删除好友协议

2.4.1. 添加好友

用户${u_1}$与用户${u_2}$建立好友联系时,用户$u$将添加好友的请求以{$ {N_{{\text{ADD}}}}, $$ {u_{{\text{I}}{{\text{D}}_{\text{1}}}}}, $$ {u_{{\text{I}}{{\text{D}}_2}}}, $T/F,$ {u_{{\text{SIG}}}} $,$ {t_{{\text{TS}}}} $}的形式发给SNS,其中$ {N_{{\text{ADD}}}} $为消息类型. T/F用于标识是否信任该好友,T表示信任,即允许好友查询自己的位置信息;F表示不信任,即不允许好友查询自己的位置信息. SNS收到请求后,先验证签名的正确性. 如果正确,则找到用户${u_1}$和用户${u_2}$的在社交网络图$G$上对应的节点,根据收到的信息,连接2个节点,若收到的消息中是否信任好友的标识为T,则在用户节点和好友节点之间的边添加权值1,反之则添加权值0. SNS发消息“add”给用户${u_1}$和用户${u_2}$. 用户收到添加成功的通知后,将自己的Paillier私钥通过安全信道发送给好友.

2.4.2. 删除好友

当用户${u_1}$和用户${u_2}$撤销好友关系时,用户${u_1}$将删除好友的请求以{$ {N_{{\text{DEL}}}} $,$ {u_{{\text{I}}{{\text{D}}_{\text{1}}}}} $,$ {u_{{\text{I}}{{\text{D}}_2}}} $,$ {u_{{\text{SIG}}}} $,$ {t_{{\text{TS}}}} $}的形式发给SNS,其中$ {N_{{\text{DEL}}}} $为消息类型. SNS收到请求后,验证签名的正确性,如果正确,则取消社交网络图$G$上节点${V_{{u_1}}}$到节点${V_{{u_2}}}$的边和权值,发消息“drop”给用户${u_1}$.

2.5. 位置共享协议

用户可以请求查询附近好友的位置,如图2所示为查询附近好友位置的过程. 当用户$u$想要查询在阈值距离$\omega $内的好友位置信息时,执行如下步骤. 1)用户$u$以{$ {u_{{\text{ID}}}} $,$\omega $,$ \theta $,$ {t_{{\text{TS}}}} $,$ {u_{{\text{SIG}}}} $}的形式将好友查询发送给云服务器,其中$ \theta $为用Paillier公钥$ {u_{{\text{PK}}}} $加密的查询阈值距离,加密过程表示为

图 2

图 2   位置共享协议的信息交互流程

Fig.2   Information exchange flow of location-sharing protocol


$ \theta \leftarrow {{{E}}_{{u_{{\text{PK}}}}}}(\omega ). $

2)云服务器验证数字签名的正确性,如果正确,云服务器查询到用户$u$的假名$ {u_{{\text{PID}}}} $,根据假名$ {u_{{\text{PID}}}} $在区块链上查询用户$u$最近一次的位置记录,获得用户$u$的位置数据密文${l_u}$,并以$ \{{u_{{\text{ID}}}}, $$ {t_{{\text{TS}}}}, $$ {c_{{\text{SIG}}}} \}$的形式向SNS发送查询请求,其中$ {c_{{\text{SIG}}}} $为云服务器的数字签名,签名的生成过程表示为

$ {c_{{\text{SIG}}}} \leftarrow {{{E}}_{{\text{PRK}}}}{\text{(}}{c_{{\text{ID}}}}{\text{,}}{t_{{\text{TS}}}}{\text{)}}{\text{.}} $

3)SNS收到请求信息后,验证签名的正确性. 如果签名正确,SNS根据用户的$ {u_{{\text{ID}}}} $在社交网络图中查询用户的好友信息,将用户$u$的全部好友整理为集合$ {{{F}}_{\text{1}}}{\text{ = \{ }}{u_{{\text{ID}}}}_{_{\text{1}}}{\text{,}}{u_{{\text{ID}}}}_{_{\text{2}}},\cdots,{u_{{\text{ID}}}}_{_k}{\text{\} }} $,其中$ k $为用户$u$的好友数量. 从集合$ {{{F}}_{\text{1}}} $中筛选出被符合访问控制策略的好友组成集合$ {{{F}}_{\text{2}}}{\text{ = \{ }}{u_{{\text{ID}}}}_{_{\text{1}}}{\text{,}}{u_{{\text{I}}{{\text{D}}_2}}}{\text{,}}\cdots{\text{,}}{u_{{\text{ID}}}}_{_j}\} $,其中$ j $为符合访问控制策略的好友数量. SNS将查询结果以{$ {u_{{\text{ID}}}} $,$ {{{F}}_{\text{2}}} $,$ {s_{{\text{SIG}}}} $,$ {t_{{\text{TS}}}} $}的形式发给云服务器,其中$ {s_{{\text{SIG}}}} $为SNS的数字签名,签名的生成过程表示为

$ {s_{{\text{SIG}}}} \leftarrow {{{E}}_{{s_{{\text{PRK}}}}}}{\text{(}}{s_{{\text{ID}}}}{\text{,}}{t_{{\text{TS}}}}{\text{)}}. $

4)云服务器收到SNS发送的请求后,查询到集合$ {{{F}}_{\text{2}}} $中各个好友的假名集合$ {{W}} = \{ {u_{{\text{PID}}}}_{_{\text{1}}}{\text{,}}{u_{{\text{PID}}}}_{_{\text{2}}}{\text{,}}\cdots{\text{,}} {u_{{\text{PID}}}}_{_j}\} $,根据好友${u_i}$的假名在区块链上查询好友最近一次的位置记录,获得用户好友${u_i}$的位置数据密文${l_{{u_i}}}$和位置坐标密文${Z_u}_{_i}$. 云服务器计算${l_{{u_i}}}$和用户$u$的位置数据${l_u}$的距离D. 取用户$u$的位置数据密文$ {l_{{u}}} = ({l_{{\text{L}}{{\text{O}}_u}}},{l_{{\text{L}}{{\text{A}}_u}}}) $、好友${u_i}$的位置数据密文$ {l_{{u_i}}} = ({l_{{\text{L}}{{\text{O}}_{{u_i}}}}}, {l_{{\text{L}}{{\text{A}}_{{u_i}}}}}) $,用户$u$和好友${u_i}$的距离D计算式为

$ \begin{split} D =& 2{{R}} \times \arcsin \Biggl[{17}\Biggl({15} {{\sin }^2}\left(\frac{{{l_{{\text{L}}{{\text{A}}_{{u_i}}}}} - {l_{{\text{L}}{{\text{A}}_u}}}}}{2}\right)+\Biggl.{17}\Biggl.{15}\\& \left.\left.\cos\; ({l_{{\text{L}}{{\text{A}}_{{u_i}}}}})\cos\; ({l_{{\text{L}}{{\text{A}}_u}}}){{\sin }^2}\left(\frac{{{l_{{\text{L}}{{\text{O}}_{{u_i}}}}} - {l_{{\text{L}}{{\text{O}}_u}}}}}{2}\right) \right)^{0.5}\right]. \end{split} $

其中${{R}}$为地球半径. 判断好友的位置是否在用户$u$的查询范围,即距离D是否小于等于用户的查询阈值,若$D \leqslant \theta $,则好友的位置在用户$u$的查询范围. 如果在用户$u$的查询距离范围内查询到该好友的$ {u_{{\text{I}}{{\text{D}}_i}}} $,将该好友的$ {u_{{\text{I}}{{\text{D}}_i}}} $和位置坐标密文$ \{ {u_{{\text{ID}}}}_{_i},{\text{ }}{Z_u}_{_i}\} $放入集合$ {{{U}}^{'}} $中. 5)云服务器将符合条件的好友$ {u_{{\text{I}}{{\text{D}}_i}}} $及其位置信息以{$ {{{U}}^{'}}, $$ {t_{{\text{TS}}}}, $$ {c_{{\text{SIG}}}} $}发送给用户$u$. 用户$u$收到信息后,验证数字签名$ {c_{{\text{SIG}}}} $的正确性. 如果正确,则用好友的Paillier私钥解密获得好友的位置信息.

3. 安全性分析

3.1. 访问控制

BUDLS方案中的访问控制策略允许用户指定部分好友共享位置. 用户只有在被好友信任的前提下,即获得好友的Paillier私钥时,才能解密获得好友的真实位置信息,否则用户的位置信息将受到保护,查询者无法得知.

3.2. 身份认证

在位置更新阶段,用户须上传自己的数字签名. 在注册、添加好友过程中,用户发送的请求中同样携带签名. 接收方收到数字签名后,使用发送方的RSA公钥${u_{{\text{PUK}}}}$解密数字签名$ {u_{{\text{SIG}}}} $,获得明文信息m,解密过程表示为

$ m = {u_{{\text{SIG}}}}^{{u_{{\text{PUK}}}}}{\text{ mod }}M. $

如果明文m与原始消息相同,则为有效签名,验证成功;否则为无效签名,验证失败. 接收方验证成功才能进行下一步操作,因此用户的身份将不会被冒充,实现了身份认证.

3.3. 身份隐私

BUDLS方案使用假名技术,每个用户都由SNS分配唯一的假名,用户使用自己的假名上传位置记录. 用户的$ {u_{{\text{ID}}}} $与假名的对应关系由SNS存储,不对外公开,并且用户上传位置记录时使用的不是真实身份信息,以此保护用户的身份隐私. 当攻击者获取区块链上存储的用户位置记录时,只能获得用户的假名. 攻击者链接用户真实$ {u_{{\text{ID}}}} $和假名的概率P1

$ {P_1} = {1}/{n}. $

用户总数$ n $是一个很大的数字,因此攻击者将用户真实身份与假名联系起来的概率很小.

3.4. 位置隐私

用户生成位置记录时,使用假名替代真实ID,并将位置信息加密. 假设位置记录总数为r,攻击者推断出用户所在位置的概率

$ {P_2} = \frac{1}{{n \times r}}. $

r是比$ n $大的数,这意味着攻击者获取用户位置信息的概率同样较小. 此外,位置信息经过Paillier加密,Paillier方案满足加密方案的标准安全定义——语义安全,即在选择明文攻击下的密文的不可区分性,Paillier加密方案的安全性被认为相当可靠. 攻击者即使推断出用户位置数据,也是密文数据,很难破解,因此攻击者获取用户真实位置信息的概率极低.

4. 仿真实验分析

4.1. 方案对比

将BUDLS方案与其他支持隐私保护的位置搜索方案进行存储方式和隐私安全目标的对比,比较结果如表1所示. UDPLS方案[7]、文献[8]的方案和SAM方案[9]均基于第三方中央位置服务器实现,不满足用户位置信息的分布式存储方式. 各方案都能实现隐私安全目标,但是设计的访问控制方式各不相同. BUDLS方案定义了有向带权社交网络图结构,允许用户单向删除好友,并且用户可以只向部分信任的好友分享位置信息,访问控制方式比参与对比的其他方案更灵活.

表 1   不同隐私保护方案的存储方式和安全目标对比

Tab.1  Comparison of storage methods and security objectives for different privacy protection schemes

方案隐私保护
方法
分布式
存储
访问
控制
身份
认证
身份
隐私
位置
隐私
UDPLS[7]RSA加密×
文献[8]对称+非对称×
SAM[9]对称+非对称×
BUDLSPaillier

新窗口打开| 下载CSV


4.2. 代价分析

表2所示,从方案实施过程中的存储代价和计算代价分析BUDLS方案的性能,表中$ {s_{{\text{ST}}}} $$ {c_{{\text{ST}}}} $$ {b_{{\text{ST}}}} $$ {u_{{\text{ST}}}} $分别为SNS、云服务器、区块链、用户的存储代价,$ {s_{{\text{CP}}}} $$ {c_{{\text{CP}}}} $$ {b_{{\text{CP}}}} $$ {u_{{\text{CP}}}} $分别为SNS、云服务器、区块链、用户的计算代价. 1)在存储代价方面,设$ k $为每个用户最多添加的好友数量. 用户注册时,SNS存储的图结构增加1个节点,存储代价为$ O(1) $;用户在本地存储私钥以及朋友密钥,存储代价为$ O(1) $;云服务的存储代价为$ O(1) $. 用户位置更新时,区块链存储1次位置记录,存储代价为$ O(1) $. 用户添加$ k $个好友时,SNS存储用户节点和对应好友节点之间的边和权值,用户端存储好友的朋友密钥,用户端和SNS的存储代价为$ O(k) $. 2)在计算代价方面,设$ {f_{\text{1}}} $为Paillier朋友密钥加密的操作,$ {f_{\text{2}}} $为Paillier朋友密钥解密的操作;假设用户的$ k $个好友中仅有$ j $个允许查询位置信息的好友,其中$ h $个好友在查询距离内. 用户位置更新时,用户在本地进行一次Paillier加密操作,用户端的计算代价为$ O({f}_{\text{1}}) $. 用户查询附近好友的位置时,SNS查询到用户的$ j $个符合访问控制策略的好友,云服务器解密这$ j $个符合访问控制策略的好友的位置记录进行距离比较,获得$ h $个查询距离内的好友位置信息,用户在本地解密这$ h $个位置信息,用户端的计算代价为$ O({f}_{\text{1}}+{f}_{\text{2}}j) $,云服务器的计算代价为$ O(j) $,SNS的计算代价为$ O(k) $.

表 2   基于区块链的用户自定义位置共享方案各协议的代价分析

Tab.2  Cost analysis for each protocol in blockchain-based user-defined location-sharing scheme

协议$ {s_{{\text{ST}}}} $$ {c_{{\text{ST}}}} $$ {b_{{\text{ST}}}} $$ {u_{{\text{ST}}}} $$ {s_{{\text{CP}}}} $$ {c_{{\text{CP}}}} $$ {b_{{\text{CP}}}} $$ {u_{{\text{CP}}}} $
注册$ O(1) $$ O(1) $$ O(1) $$ O(1) $$ O(1) $$ O(1) $
位置更新$ O(1) $$ O({f}_{\text{1}}) $
添加好友$ O(k) $$ O(k) $$ O(k) $$ O(k) $
删除好友$ O(1) $$ O(1) $$ O(1) $$ O(1) $
查询附近好友位置$ O(h) $$ O(k) $$ O(j) $$ O({f}_{\text{1}}+{f}_{\text{2}}j) $

新窗口打开| 下载CSV


4.3. 仿真实验结果与分析

通过编程实现UDPLS、文献[8]、SAM和BUDLS方案的实验仿真对比. 在Windows 10操作系统执行实验仿真,社交网络服务器SNS和云服务器均采用Intel Core i5—11320四核处理器,16 GB内存. 实验使用Relic库实现RSA公钥加密和Paillier同态加密. 数据集使用公开数据集-Enron邮件数据集,其中邮件账户作为社交网络平台的用户,邮件的发送方和接收方表示为用户间的社交关系. 在初始化的社交网络图结构中,以每个邮件账户为节点,将每一封邮件作为有向边. 设置3个实验场景来评估不同参数下方案的性能,假设$ n $为社交网络平台的用户总数,$ k $为每个用户的好友数量,j为符合访问控制策略的好友数量. 每个实验场景执行50次查询附近好友位置的过程,计算在不同参数下的平均时间成本和准确率. 场景1:n=1 000~3 000,k=50,j=40,$\omega $=1 km. 场景2:n=1 000,k=50~100,j=k×80%,$\omega $=1 km. 场景3:n=1 000,k=50,j=40,$\omega $=1~5 km.

图3所示为场景1的实验对比结果,其中t为查询时间,a为准确率. SAM方案须查询比较的好友数量固定,查询耗时受用户数量的影响较小,但SAM方案中用户在位置更新时生成了大量用于混淆位置信息的虚假位置,查询过程中过滤大量虚假位置,导致误报率较高. 文献[8]的方案先通过社交网络服务器找出用户的好友,仅对用户的好友位置信息进行比较,因此受用户数量的影响较小. 但文献[8]的方案使用对称加密和非对称加密相结合的加密算法,计算代价较高,且用户好友未进行筛选,因此查询时间较高. 在UDPLS方案中,用户在查询一定范围内好友的位置信息时须先找到查询距离内的所有用户,再从中筛选出用户的好友进行距离比较,用户数量增加时,用户分布密度变小,一定范围内的用户数量增加,须筛选的用户数量随之增加,此过程耗费大量计算时间,也使查询的误报率增加. BUDLS方案的查询耗时受用户数量的影响较小,原因是方案仅对符合用户访问控制策略的好友位置进行距离计算,距离比较的频次最低,并且在距离比较过程中无需解密,降低了计算代价,减少了查询时间和误报率.

图 3

图 3   场景1中基于区块链的用户自定义位置共享方案的性能分析

Fig.3   Performance analysis of blockchain-based user-defined location-sharing scheme under scenario one


图4所示为场景2的实验对比结果. SAM方案中每个好友都发布大量虚假位置信息,随着好友数量的增加,查询过程中须过滤的虚假位置数量显著升高,查询时间和误报率快速增加. 文献[8]的方案须比较每个用户好友位置信息的距离,进行距离比较时须先将好友位置信息解密再计算,然后将符合距离要求的好友位置信息再次加密发送给用户,计算代价较高,因此查询耗时和误报率受好友数量的影响也较大. UDPLS方案受好友数量的影响最小,原因是UDPLS方案主要根据查询距离确定距离比较的频次,用户的好友总量对查询时间和误报率的影响较小. BUDLS方案先通过访问控制策略过滤出部分好友,查询时间随着符合访问控制策略的好友数量的增加而线性增加,误报率也随之提高. BUDLS方案能够在无需解密的前提下进行距离比较,因此查询耗时相对其他方案较低.

图 4

图 4   场景2中基于区块链的用户自定义位置共享方案的性能分析

Fig.4   Performance analysis of blockchain-based user-defined location-sharing scheme under scenario two


图5所示为场景3的实验结果. SAM方案受查询距离的影响较小,查询距离增加时须比较的好友数量和位置数量仍是固定的. 但是SAM方案须先过滤出大部分虚假位置,再对真实位置信息进行比较,准确率变化较大. 文献[8]的方案受查询距离的影响也较小,但由于该方案在查询过程中要对好友的位置信息进行解密计算再加密,增加了计算耗时,对误报率也有一定影响. UDPLS方案随着查询距离增加,查询距离内的用户数快速增加,而方案中的位置服务器须比较查询范围内所有用户的位置信息,使得查询时间和误报率快速增加. BUDLS方案不生成虚假位置,无需对大量假位置进行计算比较,同时可以在不解密位置信息的情况下进行距离比较,因此平均查询耗时最低,准确度受查询距离的影响最小.

图 5

图 5   场景3中基于区块链的用户自定义位置共享方案的性能分析

Fig.5   Performance analysis of blockchain-based user-defined location-sharing scheme under scenario three


5. 结 论

(1)为了避免中央位置服务器收集和管理大量用户位置数据导致的位置隐私泄漏安全威胁,BUDLS方案使用分布式区块链代替传统的中央位置服务器,增强了用户对位置数据的可控性.

(2)设计基于同态加密算法的加密机制,保证位置信息在无需解密的前提下进行计算和比较,并结合数字签名技术,保护位置信息不被服务提供商和恶意攻击者获取.

(3)根据社交网络平台用户的实际需要,设置细粒度的访问控制机制,BUDLS方案基于社交网络服务器管理的有向带权社交网络图结构,有效地提高了社交网络平台的实用性和灵活性.

(4)安全分析证明了BUDLS方案能够满足位置隐私等安全目标. 大量仿真实验对比分析的结果表明,该方案具有良好的性能表现.

(5)聚焦现代社交网络平台好友位置搜索的隐私保护问题,BUDLS方案结合区块链技术实现了用户位置信息的分布式存储. 为了处理区块链信息全公开可能导致的位置隐私泄漏问题,BUDLS方案利用RSA公钥加密和Paillier同态加密算法设计了面向位置加密的位置共享方法,保证位置信息在无需解密的前提下进行计算和比较. 设计细粒度的用户自定义访问控制策略,使用户可以灵活地定义访问控制条件. BUDLS方案在加解密时的计算代价还有提升空间. 未来的研究工作中,会根据移动社交网络平台用户的实际需要,考虑在不降低用户隐私安全性的同时简化数据交互流程或者使用计算效率更高的加密方式,提高位置共享服务的计算效率.

参考文献

HUSSAIN T, YANG B, RAHMAN H U, et al

Improving source location privacy in social Internet of Things using a hybrid phantom routing technique

[J]. Computers and Security, 2022, 123: 102917

DOI:10.1016/j.cose.2022.102917      [本文引用: 1]

赵琳琳, 吴安彪, 袁野, 等

位置社交网络上的图表示学习

[J]. 计算机学报, 2022, 45 (4): 838- 857

DOI:10.11897/SP.J.1016.2022.00838     

ZHAO Linlin, WU Anbiao, YUAN Ye, et al

Graph representation learning on location-based social networks

[J]. Chinese Journal of Computers, 2022, 45 (4): 838- 857

DOI:10.11897/SP.J.1016.2022.00838     

FAN Y, LIU L, ZHANG X, et al

MAPP: an efficient multi-location task allocation framework with personalized location privacy-protecting in spatial crowdsourcing

[J]. Information Sciences, 2023, 619: 654- 678

DOI:10.1016/j.ins.2022.11.075      [本文引用: 1]

宋成, 许标, 贺军义

差分隐私轨迹数据保护方案

[J]. 北京邮电大学学报, 2022, 45 (1): 13- 18

[本文引用: 1]

SONG Cheng, XU Biao, HE Junyi

Differential privacy trajectory data protection scheme

[J]. Journal of Beijing University of Posts and Telecommunications, 2022, 45 (1): 13- 18

[本文引用: 1]

莫梓嘉, 高志鹏, 杨杨, 等

面向车联网数据隐私保护的高效分布式模型共享策略

[J]. 通信学报, 2022, 43 (4): 83- 94

DOI:10.11959/j.issn.1000-436x.2022074      [本文引用: 1]

MO Zijia, GAO Zhipeng, YANG Yang, et al

Efficient distributed model sharing strategy for data privacy protection in Internet of vehicles

[J]. Journal on Communications, 2022, 43 (4): 83- 94

DOI:10.11959/j.issn.1000-436x.2022074      [本文引用: 1]

李宇溪, 周福才, 徐紫枫

支持K-近邻搜索的移动社交网络隐私保护方案

[J]. 计算机学报, 2021, 44 (7): 1481- 1500

DOI:10.11897/SP.J.1016.2021.01481      [本文引用: 1]

LI Yuxi, ZHOU Fucai, XU Zifeng

Privacy-preserving K-nearest-neighbor search over mobile social nework

[J]. Chinese Journal of Computers, 2021, 44 (7): 1481- 1500

DOI:10.11897/SP.J.1016.2021.01481      [本文引用: 1]

SUN G, XIE Y, LIAO D, et al

User-defined privacy location-sharing system in mobile online social networks

[J]. Journal of Network and Computer Applications, 2017, 86: 34- 45

DOI:10.1016/j.jnca.2016.11.024      [本文引用: 3]

RUAN O, ZHANG L, ZHANG Y. Location-sharing protocol for privacy protection in mobile online social networks [J]. EURASIP Journal on Wireless Communications and Networking , 2021: 127.

[本文引用: 8]

CHEN J, SU S, WANG X

Towards privacy-preserving location sharing over mobile online social networks

[J]. IEICE Transactions on Information and Systems, 2019, E102-D (1): 133- 146

DOI:10.1587/transinf.2018EDP7187      [本文引用: 3]

李洪涛, 任晓宇, 王洁, 等

基于差分隐私的连续位置隐私保护机制

[J]. 通信学报, 2021, 42 (8): 164- 175

DOI:10.11959/j.issn.1000-436x.2021123      [本文引用: 1]

LI Hongtao, REN Xiaoyu, WANG Jie, et al

Continuous location privacy protection mechanism based on differential privacy

[J]. Journal on Communications, 2021, 42 (8): 164- 175

DOI:10.11959/j.issn.1000-436x.2021123      [本文引用: 1]

LI J, YAN H, LIU Z, et al

Location-sharing systems with enhanced privacy in mobile online social networks

[J]. IEEE Systems Journal, 2017, 11 (2): 439- 448

DOI:10.1109/JSYST.2015.2415835      [本文引用: 1]

XU C, XIE X, ZHU L, et al

PPLS: a privacy-preserving location-sharing scheme in mobile online social networks

[J]. Science China Information Sciences, 2020, 63: 132105

DOI:10.1007/s11432-019-1508-6      [本文引用: 1]

高胜, 陈秀华, 朱建明, 等

基于区块链的群智感知中任务预算约束的位置隐私保护参与者选择方法

[J]. 计算机学报, 2022, 45 (5): 1052- 1067

DOI:10.11897/SP.J.1016.2022.01052      [本文引用: 1]

GAO Sheng, CHEN Xiuhua, ZHU Jianming, et al

A location privacy-preserving worker selection scheme under limited for blockchain-based crowdsensing

[J]. Chinese Journal of Computers, 2022, 45 (5): 1052- 1067

DOI:10.11897/SP.J.1016.2022.01052      [本文引用: 1]

LI B H, LIANG R, ZHU D, et al

Blockchain-based trust management model for location privacy preserving in VANET

[J]. IEEE Transactions on Intelligent Transportation Systems, 2021, 22 (6): 3765- 3775

DOI:10.1109/TITS.2020.3035869      [本文引用: 1]

ZHANG J X, LOU W, SUN H, et al

Truthful auction mechanisms for resource allocation in the Internet of Vehicles with public blockchain networks

[J]. Future Generation Computer Systems, 2022, 132: 11- 24

DOI:10.1016/j.future.2022.02.002      [本文引用: 1]

ZHU L, LIU X, YU L, et al

Blockchain-enabled privacy-preserving location sharing scheme for LBSNs

[J]. Mobile Information Systems, 2021, 2021: 9997887

[本文引用: 1]

/