周 大 伟
(海军工程大学信息安全系 湖北 武汉 430033)
基于广播加密的P2P社交网络方案的设计与实现
周 大 伟
(海军工程大学信息安全系 湖北 武汉 430033)
针对当前社交网络个人隐私信息泄露的问题,面向P2P社交网络提出一种匿名公钥广播加密方案,包括初始化公钥,分发私钥,加密和解密。并在Android平台下设计实现了基于广播加密的P2P社交网络系统,系统主要包括数据存储模块,移动终端模块,安全加密模块以及PKG管理模块。同时对Android平台下的P2P社交网络在恶意用户截获私聊攻击,恶意下载攻击,篡改攻击和重放攻击的安全性进行了分析,分析结果表明该系统安全可靠。
P2P社交网络 个人隐私 广播加密
广播加密是一种采用广播信道来传输加密信息的方法[1]。在加密过程中,信息的发送者可以自由指定目标接收者集合,并产生唯一的一组密文。当且仅当用户属于目标集合时,才能够正确地解密出信息。广播加密通常需要满足公钥特性(任何人都可以加密),无状态的接受者(用户不需要更新私钥),足够的抗共谋性等[2]。广播加密可以看作一个密钥封装机制,首先对广播内容使用对称加密算法进行加密,然后将加密的密钥作为会话密钥进行封装。接收者在收到广播消息后,首先将封装结果进行解密,得到会话密钥后,再使用该会话密钥对广播内容进行解密。由此,广播加密在卫星广播通信、无线传感器网络、付费电视系统、群发电子邮件等这种在不安全的信道上向多个用户发布广播消息的加密系统得到越来越广泛的应用。
第一个广播加密方案是由Naor等人[3]在2000年提出,该方案具备t-抗串谋攻击安全性,随后,一些方案被相继提出。Hu等人[4]提出一种选择密码安全的广播加密方案,但方案的安全性证明是在随机预言模型下,而随机预言模型的安全性一直饱含争议;Waters[5]提出一个双系统加密技术,且在标准模型下证明其安全性,但方案的密文长度呈线性递增;随后Lewko等人[6]又改进了其方案,提出一个短密文安全的广播加密方案,但方案的安全性基于静态假设;Boneh等人[7]提出一个代价较低的方案,方案基于多线性映射的简单假设,且不依赖IO[8];Gentry等人[9]提出了一个官方较短并且适应性安全的方案,但方案公钥存储代价大;为了保护用户隐私,Fazio等人[10]提出一个匿名广播加密方案,方案基于一个弱匿名概念;Libert等人[11]提出一个自适应安全的匿名广播加密方案,但方案的效率不高。
本文结合匿名公钥广播加密模型,设计与实现一个安全可靠的P2P社交网络系统。P2P社交网络中的用户既是客户端又是服务器端,可保证个人隐私的安全。该系统为用户提供了安全的即时聊天、动态选择接收者集合、发表日志及评论等功能。整个系统采用基于加密的访问控制,同时采用广播加密与对称加密的结合,提供高性能的加密与解密,并且不受目标集合大小的影响。
系统的参与者主要分为用户和P2P社交网络平台两个部分,用户使用P2P社交网络平台,同时每个用户又在系统中充当着广播加密信任中心的角色,为自己创建的广播加密系统中的用户生成必要的文件。用户在P2P社交网络平台上可以进行的操作如图1所示,用户使用P2P社交网络平台来进行用户注册、查看个人主页、添加好友、与联系人私聊、在发布及查看状态、发布及看评论等操作。系统中的用户既是广播加密系统中的接收方又是发送方。
图1 用户使用P2P社交网络平台用例图
用户作为广播加密系统中的信任中心可以进行的操作如图2所示,可以看出信任中心可以生成用户私钥和系统公钥,接受用户在其上的注册等操作。
综合采用匿名的公钥广播加密和对称加密技术,设计实现P2P社交网络系统的具体目标如下:① 满足用户权限设置的基本工作需求,即实现信息局部访问,信息图形化和信息加解密等功能;② 保障系统之间均以可靠的UDP通信为载体,实现信息的交互无障碍;③ 实现信息在不同用户权限下透明的安全工作方式,安全模块的添加是自动加载的,而且加载时间短,基本上不影响用户的操作;④ 界面设计友好,系统操作简单,用户使用方便。使用模块化设计,易于修改和后期升级。
1.1 系统设计
由于在P2P的系统中所有的用户都是对等的,每个用户即是资源提供者又是资源获得者。因此在本系统中用户所有的操作都是依靠自己完成的,每个用户都维护一套属于自己的广播加密方案,方案体系结构如图3所示。
图3 P2P社交网络系统的体系结构
为了更好地说明问题,我们定义更新者和接收者。更新者是指某用户产生并更新了关于自己的一条状态,然后此状态会被加密并发送出去;接收者是指可以接收到更新者产生的状态的用户,在接收到状态之后在自己的网页或者客户端进行更新,并且接收者可以对状态进行评论。图3中以用户A作为更新者来进行说明,并且假定图3中显示的所有的用户都已经加入了系统。由此基于匿名广播加密的P2P社交网络系统的具体过程可以描述如下:
(1) 可以向系统中加入用户,用户的基本信息会存储在自己的配置文件中,并且每个用户会维护一个关于自己的广播加密具体方案;
(2) 用户A和用户B、C、D、E已经分别互相加为好友,此时A会颁发相对于自己的私钥给B、C、D、E,并且B、C、D、E也会给A颁发对应的私钥;
(3) 用户B和用户C、D互相加为好友;
(4) 用户A发布了一条状态,并选定用户B、C、E可以阅读此状态,然后此状态经过一些操作之后被广播出去;
(5) 所有的用户都可以获取到此消息,但只有用户B、C、E可以读取此消息,他们会将此消息存储在他们的用户配置文件中,其余的用户丢弃此消息;
(6) 用户B、C、E可以选择对用户A的此条状态进行评论。假设此处B选择评论,评论完成后,此评论只有在用户A和用户C的共同好友处才可以显示。
上面过程都是在所有的用户和联系人都在线的前提下产生的,如果用户发布状态的联系人不在线的话,在用户上线时会提醒用户有消息更新。
1.2 系统功能
基于广播加密的P2P社交网络系统根据功能层次分为四个模块成。其中,数据存储模块主要为上层的模块提供存储空间,以及为上层模块调用数据提供接口;安全加密模块主要包含数据交互过程中的广播加密、对称加密等安全加密方案,以及密钥协商的密钥产生方式;PKG管理模块主要包括初始化系统并生成系统公钥、用户申请加入广播加密系统以及为用户分配广播加密私钥等功能;移动终端模块主要由用户注册、查看个人主页、添加好友、即时聊天、发布状态和评论以及查看状态评论等功能组成。系统主要实现以下功能:① 基本功能—主要实现用户进行私聊,用户发布状态和评论;② 安全功能—主要实现用户信息的隐私保护、用户聊天的安全通信和匿名的可选择接收者功能;③ 管理功能—主要实现与隐私保护功能相配套的辅助管理功能,包括软件登陆权限管理、对软件密钥进行管理、对数据信息管理等功能。
2.1 匿名公钥广播加密方案
匿名公钥广播加密模型通常包括三个实体:信任中心,发送方和接收方。系统中的每一个成员都是同级节点,每一个成员都可以作为接收方,也都可以作为发送方。当系统中的某个成员要选定集合发送消息时,该成员就作为发送方,而被选中的成员就作为接收方。
匿名公钥广播加密中的实体之间相互通信过程,形成了一个简单的通信协议,为了便于描述和理解实体间的通信过程,本文将采用表1的符号进行描述。通信过程如图4所示。
表1 实体间通信的符号描述
协议的执行过程包括以下部分:(1)初始化时,信任中心根据系统中用户的ID长度,运行Setup算法生成系统公钥PK;(2)发送方向信任中心发起请求Request,请求系统公钥和用户私钥;(3)信任中心根据用户的ID运行generate算法生成该用户的私钥di;(4)系统公钥和用户的私钥发送给发送方;(5)接收方向信任中心发起请求Request,请求系统公钥和用户私钥;(6)信任中心根据用户的ID运行generate算法生成该用户的私钥di;(7)系统公钥和用户的私钥发送给发送方;(8)发送方随机选取一个参数t,运行加密密钥生成算法generateEncryptionKey,计算并生成加密密钥K;(9) 发送方运行密文头部生成算法generateHdr,生成密文头Hdr;(10) 发送方使用对称加密算法对明文消息M加密,生成密文CM;(11) 发送方将密文CM,连同密文头Hdr等信息一起发给接收方;(12) 接收方运行解密密钥生成算法generateDecryptionKey,计算并生成解密密钥K′;(13) 接收方对密文CM解密,得到明文M。
图4 实体之间的通信过程
2.2 通信协议与存储结构
2.2.1 网络传输数据包消息格式
P2P社交网络中要传输的数据都需要被分割并封装在一个固定的数据消息格式中,用以区别其他网络传输数据和P2P社交网络的数据。同时整个系统统一使用AllPackage数据包进行数据传输,保证每次固定传输长度为1 024 bits的数据。该网络传输数据包消息格式如表2所示。
在网络传输数据包消息格式AllPackage中前8个字节为特征数据“#P2PSON#”;第9个字节为数据分包标识符flag,当flag为0时代表数据包的第一个子包,flag为1时代表中间的子包;Size代表还有多少数据没有发送;random为标识该条数据包的随机数;data存储的是每次发送的数据,长度为1 008个字节。
表2 网络传输数据包AllPackage消息格式
2.2.2 报头消息格式
每个消息传输格式中都包含一个报头格式,用以区分该传输格式的消息内容是什么数据。该报头格式如表3所示。报头格式PackageHead的前4个字节存储的是nPackageType,用来标识消息格式中存储的是什么类型的内容;nIP存储数据发送源的IP地址,占8个字节。
表3 报头PackageHead消息格式
2.2.3 用户私聊消息格式
用户之间进行即时聊天需要互相传送私聊内容,用户私聊消息格式中存储用户ID和加密后的私聊内容。该消息格式如表4所示。用户私聊消息格式ChatInformation中前8个字节是报头格式的对象;sUserId是用户ID,占20个字节;*data是指向私聊消息内容的指针,占4个字节。
表4 用户私聊ChatInformation消息格式
2.2.4 密钥协商消息格式
用户登陆到系统后就要与其他在线用户进行密钥协商。其中type为0时表示数据是由第一方传给第二方,type为1时表示数据是由第二方传给第一方。密钥协商消息格式如表5所示。
表5 密钥协商KeyConsult消息格式
密钥协商消息格式KeyConsult中前8个字节是报头格式的对象;sUserId是用户的ID,占20个字节;agdata是D-H密钥协商过程中的交换数据,占64个字节;type为0时表示数据是由第一方传给第二方,type为1时表示数据是由第二方传给第一方。
2.2.5 存储结构
由于P2P社交网络没有中央服务提供者,用户可以对自己的信息和数据完全的控制。那么从用户的创建开始,到添加好友以及发布评论等操作,用户都要在自己的本地存储个人信息以及好友的信息。因此,存储结构的设计就显得格外重要。基于广播加密的P2P社交网络采用分层的存储结构。由于每个用户可能同时拥有多个账号,那就需要为每个账号非配一个存储空间。对于每个用户账号存储空间来说需要。
存储密钥管理文件,个人信息管理文件,状态及评论管理文件,好友管理文件及消息通知文件。而每个用户账号都应该为每一个好友创建一个存储空间,存储好友的密钥管理文件,个人信息管理文件,日志及评论管理文件。
2.3 广播加密模块
2.3.1 初始化
初始化的目的是为广播加密体系生成公钥和主密钥。在P2P社交网络中,每一个用户都可以创建一个广播加密体系,该用户即作为广播加密体系中的信任中心,又做为体系中的一员。当用户创建一个广播加密体系时,他会为体系中的所有用户生成广播加密公钥。Pbc和NTL都是开源的库,其中提供了选取椭圆曲线的点,计算椭圆曲线点的幂次方,计算双线性配对以及计算多项式乘积等功能。如图5所示为初始化流程图。
图5 初始化流程图
2.3.2 添加用户到广播加密体系
添加一个好友时,作为信任中心的用户需要根据好友的身份ID为其生成对应的私钥。实现过程中,要求只有双方都是在线情况才能添加对方为好友。当得到好友的ID后,将进行generate操作,生成该好友的私钥。使用be_generate方法,首先要使用binarystring函数将用户的ID转化为二进制;之后选取随机数,分别计算di1、di2。通过判断ID的二进制表示中有哪些位数是1来选取相应的ui。之后根据计算式得到di1、di2。
2.3.3 通过广播加密体系进行加密
当用户想要选择集合S发布状态时,就需要使用广播加密体系中的be_encrypt方法,计算得到对称密钥K和头部Hdr。首先选取随机数,计算得到对称加密密钥。之后根据得到的接收者集合S,根据NTL库提供的计算多项式相乘的方法计算fi(x)。之后通过NTL库中的获取多项式系数的方法得到所有aij,并计算得到Ti。继而得到Hdr=
图6 加密流程图
2.3.4 通过广播加密体系进行解密
当用户想要查看他人通过广播加密处理发送的消息时,需要通过广播加密之解密方法得到对称加密的密钥。首先得到对方传过来的Hdr,PK以及自己的ID和私钥,再将自己的ID转化成二进制形式,接下来计算得到δi,最终得到:
3.1 安全性分析
基于广播加密的P2P社交网络系统主要会受到恶意用户截获私聊攻击,恶意下载攻击,恶意登陆攻击,篡改攻击,重放攻击,UDP通信恶意丢包攻击等几类攻击形式,并提出相应的解决方案。
3.1.1 恶意用户截获私聊攻击
系统提供用户进行即时聊天功能,系统中的用户之间在上线之后通过椭圆曲线上的D-H密钥交换进行密钥协商。当任意两个用户即时聊天时,双方使用协商后的对称密钥通过AES加密算法加密聊天内容。如果有第三方恶意截获发送的聊天内容也不能得到聊天内容得明文,杜绝了恶意用户读取他人聊天的可能性。恶意用户截获私聊流程如图7所示。
图7 恶意用户截获私聊
3.1.2 恶意查看状态攻击
用户选择接收者集合S后发布状态,通过使用广播加密将接收者S隐藏并将状态内容加密。加密后状态内容被广播发送出去,所有人都可能接收到,但匿名公钥广播加密机制提供了只有接收者集合里的用户才能将状态成功解密出来,从而杜绝了非接收者集合的用户恶意查看状态的可能性。恶意查看状态流程如图8所示。
图8 恶意查看状态
3.1.3 恶意登陆攻击
由于终端设备存在遗失和被偷窃的风险,因此在移动终端上添加安全密码解锁机制能够有效保证终端上信息的安全性,在用户首次使用应用时,需要设置手势密码。
在移动终端上,我们实现了图案解锁的机制,每当用户启动或恢复应用时,都需要输入密码使得终端应用能够正常工作。当用户不小心遗失设备且被他人拾获时,在拾获者不知道密码的情况下,被无法使用该用户账号,且当拾获者在连续5次输入错误密码后,系统会被锁住。这样就能有效防止账号被人恶意登陆。
3.1.4 篡改攻击
有恶意用户在用户发送出消息后,将消息截获并进行恶意的篡改,如在消息末尾添加数据等。系统采用了数字签名这种完整性校验机制用来防止恶意篡改攻击。利用数字签名防御恶意篡改的中间人攻击的流程如图9所示。
图9 利用数字签名防御恶意篡改的中间人攻击
3.1.5 重放攻击
防御重放攻击的方法主要有时间戳与挑战应答方式,我们综合使用时间戳、数字签名、随机数等方法来防止重放攻击。利用时间戳技术防御重放攻击流程如10所示。
图10 利用时间戳技术防御重放攻击
3.2 性能分析
3.2.1 目标集合大小对加密时间的影响
选取目标接收者集合大小分别为10、20、30、40、50、60、70、80、90,测试AES加密和匿名公钥广播加密的加密运算的用时,结果如图11所示。
图11 不同大小的目标集合对加密时间的影响
由图11可以看出,在AES加密中,加密所耗费的时间,都是随着接收者集合的增大而增加的,因为算法需要遍历接收者集合中的每一个成员。匿名公钥广播加密方案在接收者集合大小较小时,效率表现与AES加密相仿;但随着接收者集合大小的不断变大,耗费时间要比aes上升缓慢。
3.2.2 目标集合大小对传输成本的影响
选取目标接收者集合大小分别为10、20、30、40、50、60、70、80、90,测试AES加密和匿名公钥广播加密的传输成本,结果如图12所示。
图12 不同大小的目标集合对传输成本的影响
由图12可以看出,AES加密中传输所消耗的成本,是随着接收者集合的增大而增加的,因为算法需要发送每一个不同接收者的密文。而对于匿名公钥广播加密方案来说,不管接收者集合有多大它只需要发送一份数据即可,只是随着接收者集合大小的增加,数据头部Hdr会相应的变大,因此整个趋势趋于平稳。
结合匿名广播加密技术和信息加密技术,设计实现了基于广播加密的P2P社交网络隐私保护方案。方案中包括:设计了适用于P2P社交网络的匿名广播加密系统;实现了P2P社交网络系统,实现了用户的注册、用户查看个人主页、用户即时聊天、用户选择接受者集合发表日志,以及用户对日志进行评论等功能;将基于广播加密的P2P社交网络系统移植到Andriod平台上,实现移动平台的安全可信的社交网络。所提出的基于广播加密的P2P社交网络隐私保护方案能够较好地解决社交网络个人信息隐私泄露问题,具有良好的应用前景。
[1] 张逢喆, 陈进, 陈海波, 等. 云计算中的数据隐私性保护与自我销毁[J]. 计算机研究与发展, 2011, 48(7):1155-1167.
[2] 孙瑾. 标准模型下可证明安全的公钥广播密码研究[D]. 西安:西安电子科技大学, 2012.
[3] Naor M, Pinkas B. Efficient trace and revoke schemes[C]//Proceedings of the 4th International Conference on Financial Cryptography. Springer, 2000:1-20.
[4] Hu L, Liu Z L, Cheng X C. A chosen-ciphertext secure identity-based broadcast encryption scheme[C]//2009 International Conference on Machine Learning and Cybernetics, 2009:3556-3560.
[5] Waters B. Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions[C]//Proceedings of the 29th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2009:619-636.
[6] Lewko A, Waters B. New techniques for dual system encryption and fully secure HIBE with short ciphertexts[C]//Proceedings of the 7th International Conference on Theory of Cryptography. Springer, 2010:445-479.
[7] Boneh D, Waters B, Zhandry M. Low overhead broadcast encryption from multilinear maps[C]//Proceedings of the 34th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2014:206-223.
[8] Boneh D, Zhandry M. Multiparty key exchange, efficient traitor tracing, and more from indistinguishability obfuscation[C]//Proceedings of the 34th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2014:480-449.
[9] Gentry C, Waters B. Adaptive security in broadcast encryption systems (with short ciphertexts)[C]//Proceedings of the 29th Annual International Cryptology Conference on Advances in Cryptology. Springer, 2009:171-188.
[10] Fazio N, Perera I M. Outsider-anonymous broadcast encryption with sublinear ciphertexts[C]//Proceedings of the 15th International Conference on Practice and Theory in Public Key Cryptography. Springer, 2012:225-242.
[11] Libert B, Paterson K G, Quaglia E A. Anonymous broadcast encryption: adaptive security and efficient constructions in the standard model[C]//Proceedings of the 15th International Conference on Practice and Theory in Public Key Cryptography. Springer, 2012:206-224.
DESIGN AND IMPLEMENTATION OF P2P SOCIAL NETWORK SCHEME BASED ON BROADCAST ENCRYPTION
Zhou Dawei
(DepartmentofInformationSecurity,NavalUniversityofEngineering,Wuhan430033,Hubei,China)
Aiming at the problem of personal privacy information disclosure in social network, an anonymous public key encryption scheme is proposed for P2P social network. The scheme includes public key initialization, private key dispensation, encryption and decryption. And the P2P social network system based on broadcast encryption is designed and implemented in the Android platform. The system mainly includes data storage module, mobile terminal module, security encryption module and PKG management module. At the same time, it analyzes the security of P2P social network in the Android platform in the malicious user intercepting the private chat attack, malicious download attack, tamper attack and replay attack, and the results show that the system is safe and reliable.
P2P social network Personal privacy Broadcast encryption
2016-03-29。博士后基金项目(2012M512132);总装预研基金项目(9140A06040313JB11084);信息保障技术重点实验室开放基金项目(KJ-14-104)。周大伟,讲师,主研领域:入侵检测与不确定性推理。
TP393
A
10.3969/j.issn.1000-386x.2017.05.052