APP下载

使用匿名通信的双通道匿名在线会议方案

2020-10-21相佳佳李晓宇

小型微型计算机系统 2020年10期
关键词:公钥攻击者密钥

相佳佳,李晓宇

(郑州大学 信息工程学院,郑州450000)

1 引 言

近些年随着网络的普及,在线会议在科技时代发展迅猛,应用广泛,获得政府和企业的大力支持.在线会议在提高生产力的同时降低了成本,并提供实时客户支持.对比基于硬件、软件的传统在线会议系统,网页版在线会议使用一种纯网页的会议方式,能够即时通讯.网页版在线会议系统基于Web浏览器,在几乎所有的浏览器上都能使用,不用安装额外的客户端软件和插件.但与此同时,在线会议需要考虑的网络环境也更加复杂,过程中会实时传输文件、视频、语音等机密数据,涉及到通信双方的身份隐私,因此团队研发人员首要考虑的就是数据和信息安全问题.

匿名技术是网络安全领域中一个十分重要的研究领域,通过密码学[1]的编码技术能比较有效地保护网络中通信的消息内容.典型的分组密码体制有DES、3DES和AES,常见的公钥加密体制有RSA、ECC等.混合加密技术[2]是对称加密与非对称加密的混合,它实现了网络的密钥配送与通信加密,但密码技术难以防范敌手在通信链路上的攻击.

匿名通信[3]注重保护网络用户的个人通信隐私,通过某种方法来隐藏通信流中双方的通信关系或通信的一方.文献[4]提出Mix技术,通过每个Mix节点对通信消息进行一定的混淆处理并转发,有效地阻止时间分析和流量分析.文献[5]提出Crowds协议:用户在发送方和接收方之间通过随机转发请求构建一条匿名路径,并用同一路径反向传输应答信息.文献[6]继承PGACS系统的思想,提出一种分层架构的结构化P2P匿名通信系统CACSBSP,利用数据包的加密机制使匿名可取消,同时添加信誉机制对节点的自私行为进行惩罚.文献[7]提出一种基于半可信第三方服务的隐私保护系统结构,设计了一种基于假位置和Stackelberg博弈的位置匿名算法.文献[8]提出一种保护位置隐私的匿名路由策略:在真实源节点的邻节点中随机选择几个作为接收者,用一个代理源节点来隐藏其真正位置,同时通过增加路由分支来干扰敌方.文献[9]提出基于网络编码的匿名通信模型ACM-NC,加大攻击者对窃听信息进行数据包分析的困难,保证了通信消息传输的不可追踪性和抗合谋攻击能力.

近些年来,在线会议系统已被不断的改进和创新.文献[10]设计并实现了一种基于Web的远程医疗视频会议系统,利用WebRTC使用户可以通过web浏览器进行视频/音频通话和数据共享.文献[11]提出一种基于SDN分层组播的视频会议系统架构,通过可伸缩视频编码实现分层视频组播,以达到不同设备能力的会议终端需求.文献[12]设计了一个P2P多党视频会议的覆盖网络CoolConferencing,不用维护复杂的全局结构,可以分布式且快速地适应网络动态.

为了解决在线会议中数据和信息在网络中传输的安全问题,本文将混合加密技术和匿名通信相结合,应用到在线会议中,提出了一种基于匿名通信的双通道匿名在线会议方案.在该方案中,用户收看会议是通过Web访问进入网页会议室,保证会议过程的实时性.用户的发言传输过程使用匿名通信技术,对发言内容使用AES和RSA混合加密,并随机选取中转节点转发.其路径长度和整个路径信息是不确定的,有效防止了流量分析和追踪攻击.用户收看会议时先进行注册登录,拥有自己的观众名和密码.每个合法用户都有唯一的标识符作为发言时的用户ID,该用户ID和观众名无任何对应关系,保证发言者的身份和位置信息不被泄露,实现了发送匿名.系统的每个节点既能作为发言者又能转发消息,不依赖某些特殊节点,不会因为节点负载过重而造成网络阻塞.用户收看会议和发言是两个通道,互不影响,效率较高.

2 相关技术

2.1 混合加密算法

对称加密[1]的算法是开源的,加密密钥和解密密钥比较容易相互推导,加密解密的速度快,但是在密钥分配和管理上存在一定的难度.公钥加密的方式,将密钥安全性进行了提升,但加密解密的处理速度太慢,特别是在数据量较大的情况中尤为明显.

混合加密[2]是结合RSA和AES加密算法来实现数据的加密.首先,发送方采用AES加密信息,AES的对称密钥被RSA的公钥进行加密,组合后进行传输.接收方接收到信息后,先用RSA的私钥解密,获取AES的对称密钥,再用其解密,即可得到发送的消息.这种混合加密方式将对称密码和公钥密码的优势很好地进行了结合.

2.2 匿名通信模型

本文使用一种匿名通信模型,该模型是在熊婉竹等人提出的移动位置隐私保护协议[13]的基础上,进行了改进.模型利用Crowds协议的基本思想建立匿名重路由机制,使用随机策略来选择中转节点进行消息转发,采用对称加密和非对称加密混合算法来保证消息的安全性.服务器在接收到消息后,不必对发送节点进行信息回复.

整个通信系统中,所有的用户节点(包括服务器)都加入一个RSA公开密钥系统,每一个用户所在的节点均分配一对密钥:一个公钥PKi和一个私钥SKi,为服务器分配一对公钥PKs和私钥SKs.发送节点向服务器发送的明文信息为P,系统的中转节点为t.

每一个节点中都存在一个对应的路由表R.路由表中记录了该节点转发的所有消息,表格中的每一项包含<序列号Seq,消息来源节点的IP地址>.路由表的结构如表1所示.

匿名通信模型中节点发送消息给服务器的过程如下:

发送节点获取两个对称密钥K0和K1,用K0加密要发送的信息P得到密文,用服务器的公钥PKs对对称密钥K0进行加密,将它们和序列号组合在一起形成报文c.发送节点随机选择网络中的一个节点作为中转节点t1,用对称密钥K1对报文进行加密,再用中转节点t1的公钥PK1加密K1,将这两部分组合成REQ0发送给中转节点t1.

算法1.发送节点发送消息算法

1.RSA公开密钥系统为系统中每一个节点均分配一对公钥PKi和私钥SKi;

2.AES算法为发送节点生成两个密钥:K0和K1;

3.发送节点t0向服务器申请服务器的公有密钥PKs;

4.用对称密钥K0加密要发送的明文信息P;

5.用服务器的公钥PKs对对称密钥K0进行加密;

6.将其和Seq组合在一起形成报文c=(Seq,K0(P),PKs(K0));

7.m1=K1(c)//K1加密报文c;

8.m2=PK1(K1)//随机选择中转节点t1的PK1加密K1;

9.发送请求信息REQ0=(m1,m2);

中转节点t1接收到请求信息REQ0后,先用自己的私钥SK1进行解密,得到发送节点的对称密钥K1,利用K1解密得到报文,中转节点记录下序列号,并将序列号和发送节点的IP地址存入自己的路由表中,从而更新路由表.然后中转节点以概率P将信息发送给除了发送节点和中转节点t1之外,随机选择的下一个中转节点t2,或者以1-P的概率直接发送给服务器.但不管发送给谁,都要用当前中转节点的对称密钥K2加密报文信息,再用下一跳节点的公钥加密对称密钥K2,将其组合成REQi+1进行发送.

算法2.中转节点转发算法

1.FOR(i=0;i≤N;i++){

2. 中转节点ti收到请求信息REQi=(m1,m2);

3. 用私有密钥SKi解密m2,得到对称密钥Ki;

4. 用对称密钥Ki解密m1,得到报文c;

5. 将Seq和上一个节点的IP地址记录到路由表Ri中;

6. IF(Math.random() < Pf)

7. ti选择发送给中转节点ti+1;

8. ti获取ti+1的公钥PKi+1,并选取对称密钥Ki+1;

9. 用Ki+1加密报文c;

10. 用公钥PKi+1加密公钥PKi+1;

11. 组合成REQi+1发送给中转节点ti+1;

12. ELSE

13. ti选择发送给服务器;

14. ti获取服务器的公钥PKs,并选取对称密钥Ks;

15. 用Ks加密报文c;

16. 用公钥PKs加密公钥Ks;

17. 组合成REQs发送给服务器;

18. END IF

19. END FOR

20. }

服务器收到中转节点发送的信息后,先用自己的私钥SKs进行解密,得到对称密钥Ks,利用Ks解密得到报文信息.然后二次使用私钥解密报文得到发送节点的对称密钥K0,用K0解密密文就可得到发送的明文信息.同样地,服务器将该信息的序列号和上一个中转节点的IP地址存入自己的路由表中,并进行更新.

算法3.服务器接收消息算法

1.服务器收到请求信息REQs;

2.用私有密钥SKs解密,得到对称密钥Ks;

3.用Ks解密,得到报文c=(Seq,K0(P),PKs(K0));

4.将Seq和上一个节点的IP地址记录到路由表Rs中;

5.用私钥SKs解密报文c,得到对称密钥K0;

6.用对称密钥K0解密,得到明文信息.

至此,服务器收到一个来自某节点的请求信息.在整个传送过程中,服务器和其他节点都不知道该消息的最初发送者是哪一个节点,只知道传送消息给自己的上一个节点.即使对于第一个中转节点来说,它的上一个节点恰好是发送节点,但是它并不知道这个事实,因此仍然无法确定发送节点究竟是哪一个节点.每一次转发消息的中转节点都是随机选择的,所以发送节点每一次发送消息给服务器所经过的路径都是随机的.攻击者很难通过流量分析手段来获取消息的传输路径,进一步找到发送节点的IP地址.

3 基于匿名通信的双通道匿名在线会议方案

本文提出了一种基于上述匿名通信技术的双通道匿名在线会议方案.该方案采用“双通道”的方式,用户的发言传送给服务器是一个通道,它使用匿名通信技术来实现,以保证用户的身份和位置信息不被发现.而用户收看会议是另一个通道,它通过普通的web访问,所有注册过的合法观众均可收看会议.

用户收看会议是通过访问服务器网站上的会议室页面实现的.用户需要先在网站上进行注册,填写观众名和密码,该观众名与发言的用户ID完全不同,而且无任何对应关系,另一方面,观众名也不包含任何用户的身份信息和位置信息.在服务器上注册后,用户可以使用注册过的观众名和密码登录服务器并进入会议室页面,收看匿名在线会议.并且在收看过程中可以随时发言,用户的发言内容是利用前述的匿名通信技术发送给服务器.

所有参加会议的用户都有一个唯一的标识符作为用户ID,它与用户的真实身份和地理位置毫无关系,与观众名也无任何关联.用户发言时以ID+内容的形式使用匿名通信算法发送给服务器,服务器和任意其他用户都不知道发言者是谁.每一次发言都是通过新的转发路径,所以攻击者很难通过流量分析手段来获取消息的传输路径,从而进一步找到发言者.在传送过程中,对用户ID和发言内容采用AES和RSA混合加密的方式,使得用户的发言在到达服务器之前是保密的,任何其他用户不能获取,也不能伪造.服务器接收用户的发言内容后,会在网站会议室页面上将其公布出来,从而使其他合法用户得知发言内容.

用户收看会议和发言是相互独立的两个功能,彼此无关,但无论发言过程或者收看过程,均保证用户的身份信息和位置信息不被泄露.在使用“双通道”的情况下,用户收看会议不用借助匿名通信技术,因而能够保证实时收看会议.用户发言时,在匿名通信过程中需要相对较长的时延,但是匿名通信是单向的,它不影响用户收看会议.

3.1 匿名在线会议方案参数

本方案中使用的符号定义如表2所示.

表2 相关符号描述Table 2 Description of related symbols

3.2 注册

所有用户所在的电脑和会议服务器均加入网络上作为某个节点,服务器所在节点是公开的,而用户的节点信息是保密的.所有用户均在服务器上注册,拥有观众名和密码,并同步存储在服务器的数据库上,服务器在数据库中建立用户信息表list,每一项为<观众名Uname,用户密码Password>,用于存储用户注册的观众名和密码,以便验证用户的合法性.其中Uname不包含任何用户的身份信息和位置信息,服务器和任何的节点都不能依据Uname获得任何一个用户的身份信息和位置信息.

算法4.注册算法

1.用户进入注册页面;

2.用户填写注册的观众名Uname和密码Password,并提交发送给服务器进行注册;

3.服务器收到Uname和Password后,查找用户信息表list,确定Uname和Password是否重复;

4.IF(exist(Uname))

5. 查找list中该Uname对应的Passwordlist;

6. IF(Password!=Passwordlist)

7. 服务器在list中新增一项,记录

8. 用户使用新注册的登录网页;

9. ElSE

10. 用户直接用已注册过的Uname和Password登录网页;

11. END IF

12.ElSE

13. 服务器在list中新增一项,记录

14. 用户使用新注册的登录网页;

15.END IF

16.用户登录后收看在线会议;

3.3 用户收看会议

用户收看会议是一个单独的通道,与发言互不影响.会议服务器建立一个网站,有一个会议室网页,用户通过web方式登录该会议室,这无关于用户身份.任一用户只需通过已注册的观众名和密码在web网页上进行登录,就可以进入会议室收看会议,同时可以看到其他合法用户公开的发言.若是新用户,可以先向服务器进行注册,获得新的观众名和密码,登录后进入会议室观收看会议,亦可以与其它已注册的用户共用一个观众名和密码来收看会议.比起发言过程中需要转发消息而导致时延较长,用户通过这种直接访问网站的方式收看会议,速度更快,效率更高.

3.4 用户发言

合法用户收看会议时可以进行发言,但用户发言是单独的一个通道,它与用户收看会议是完全独立的,两者互不影响,可同时进行.每个合法用户都有一个发言用的ID,简称用户ID,它与用户注册时的观众名无任何关系,因此服务器不能从收看会议的观众名追溯到发言的用户.在通信过程中,用户节点sender将用户ID和发言内容UInfo组成二元组,并用AES和RSA混合加密算法对二元组进行加密,之后采用匿名通信算法发送给服务器,服务器收到后进行解密,将用户ID和发言内容UInfo在网页上公布出来,所有合法登录的用户都可以看到.

为了保证用户的身份信息不被泄露,根据用户所参加的会议类型而对发言内容进行保密处理.若为一般的纯文本会议,则用户的发言内容为纯文本文字,可以将其发送给服务器并公开.若为在线视频会议时,在只需要保密位置,不需要保密身份的情况下,用户可以传送自己的视频给服务器,但是视频中无任何与用户位置相关的信息;如果位置和身份都要保密,则发送的视频需要进行如下处理:遮盖发言人,对发言人的声音做变声处理,抹除视频中一切跟发言人身份有关的信息,例如房间里的标志、装饰等.

3.4.1 发言准备

每个合法用户所在的节点以及服务器均加入一个RSA公开密钥系统,RSA公开密钥系统为系统内的每个节点分配一对密钥:一个公钥PK和一个私钥SK.任一合法用户处于系统内的节点时,可使用该节点的密钥对.每个合法登录的用户都有一个用户ID,它与登录时的观众名无关,服务器和其他任何节点都不能根据此用户ID来获取用户的位置信息.发言的用户节点若需保密身份信息,则先对发言内容进行保密处理.之后使用AES算法生成两个密钥K0和K1,用K0加密用户ID和发言内容UInfo,用服务器的公有密钥 PKs加密K0,连接序列号后形成{Seq,E{K0,(ID,UInfo)},E{PKs,K0}}.用K1对{Seq,E{K0,(ID,UInfo)},E{PKs,K0}}进行加密,形成要发送的密文.

算法5.发言准备过程

1.sender CHECK发言内容UInfo;

2.IF(UInfo是纯文字信息)

3. UInfo不作处理等待发送;

4.ELSE

5. IF(UInfo是视频信息&&用户保密身份)

6. 对视频中的发言人、声音以及跟身份有关的信息进行处理;

7. UInfo等待发送;

8. ElSE

9. UInfo不作处理等待发送;

10. END IF

11.END IF

12.RSA公开密钥系统为每一个合法用户所在的节点均分配一对公钥PKi和私钥SKi,包括服务器server的公钥PKs和私钥SKs;

13.sender使用AES算法生成两个对称密钥K0和K1;

14.sender获取服务器server的公开密钥PKs;

15.sender将用户ID和发言内容组成二元组(ID,UInfo);

16.密文 = E{K0,(ID,UInfo)};

17.E{PKs,K0};

18.Data = (Seq,E{K0,(ID,UInfo)},E{PKs,K0});

19.报文 = E{K1,Data};

3.4.2 发送发言

发送节点sender调用匿名通信算法在网络中随机选择一个节点作为中转节点1,中转节点1收到消息后解密得到Data.中转节点1以概率p直接将m发送给服务器;或者在除服务器和自己之外的节点任意选出一个节点,作为中转节点2继续发送,直至发送给服务器.Data每到达一个中转节点时,该中转节点将选取一个新的对称密钥加密Data,进一步提高了报文在网络中传送时的破解难度,其他用户不能获取或伪造.

算法6.发送发言算法

1.sender调用匿名通信算法随机选取一个节点,记为中转节点t1;

2.sender获取t1的公钥PK1;

3.Data1 = (E{K1,Data},E{PK1,K1});

4.t1收到sender发送的消息Data1;

5.K1= D{SK1,E(PK1,K1)};

6.Data = D{K1,E{K1,Data}};

7.FOR i=1 TO i=n

8. IF(Math.random() < Pf)

9. ti选择发送给中转节点ti+1;

10. ti获取ti+1公钥PKi+1,并选取对称密钥Ki+1;

11. Data(i+1)=(E{Ki+1,Data},E{PKi+1,Ki+1});

12. ti+1收到ti发送的消息Data(i+1);

13. Ki+1= D{SKi+1,E{PKi+1,Ki+1}};

14. Data= D{Ki+1,E{Ki+1,Data}};

15. ti+1在路由表中记录

16. ELSE

17. ti选择发送给服务器server;

18. ti获取server公钥PKs,并选取对称密钥Ks;

19. Data(s)=(E{Ks,Data},E{PKs,Ks});

20. ti将Data(s)发送给server;

21. BREAK;

22. END IF

23.END FOR

3.4.3 服务器公开发言内容

服务器收到中转节点ti发送的消息Data(s)后,二次解密得到序列号和对称密钥K0,用K0对密文解密得到明文信息,即二元组(ID,UInfo).之后将二元组(ID,UInfo)公布在会议室网页上,每个观看会议的用户都可以看到发言者的用户ID和发言内容.但该用户ID号和观众名无关联,服务器和其他用户都不能识别发言者的位置和身份信息.即使是同一个发言者,每一次发言时都会随机选择新的转发路径.因此在消息传输过程中,任意的中转节点和攻击者都不能获取消息内容和发送者的位置信息.

算法7.服务器公开发言内容算法

1.server收到中间节点ti发送的消息Data(s) = (E{Ks,Data},E{PKs,Ks});

2.Ks= D{SKs,E{PKs,Ks}};

3.Data=D{Ks,E{Ks,Data}}=(Seq,E{K0,(ID,UInfo)},E{PKs,K0});

4.server在路由表中记录

5.K0= D(SKs,E(PKs,K0));

6.(ID,UInfo)= D{K0,E{K0,(ID,UInfo)}};

7.server获得发言的用户ID和发言内容;

8.server在网页上公布用户ID和发言内容;

4 方案分析

4.1 匿名性分析

定理1.发言者匿名:任意中转节点、会议服务器和攻击者都不能推断出发言用户节点的位置和身份信息.

证明:中转节点接收到报文后,只是对外层的加密报文进行解密处理,发言内容仍被混合加密,中转节点没有会议服务器的私钥,无法对已加密发言内容的报文进行解密操作,并且发言内容中并不包含发言者身份和位置的相关信息.每一次发言所使用的路径是随机的,是中转节点对报文进行加解密处理后,根据转发概率随机选择下一跳中转节点,发送的报文中并不包含有关自身节点的身份信息.每个中转节点只知道其上一跳节点,但并不能由此推断出上一跳节点是否为发言的用户节点.

该匿名通信模型规定,发言的用户节点和会议服务器之间一定存在至少一个中转节点,因此会议服务器只能知道转发消息给自己的最后一个节点(它一定不是发言者),但无法获知发言者的位置和身份信息.

在通信过程中,每一次的发言内容都是通过新的传输路径发送给服务器,该路径并不是提前建立,而是在传输过程中随机选择中转节点而形成的,因此具体的传输路径和路径长度都是随机的.攻击者在进行观察时,很难通过流量分析的手段来追踪报文、分析报文,因此就不能获取发言内容的传输路径,不能进一步推断出发送者是谁.

定理2.通信匿名:任意节点都不能获取整个传输路径的路由成员信息.

证明:在该匿名通信系统中,系统中的每一个节点既可以作为发言的用户节点,也可以作为中转节点.每次发言的转发路径是随机的,即使是同一发言者,每次发言的传输路径也不相同.发言者每进行一次发言,都会产生一条传输路径,但该路径并不是提前制定的,而是在传输时由中转节点采取随机策略随机选择下一跳节点来确定的,即便是发言的用户节点也不能提前获取传输路径上的成员节点信息.在传输过程中,中转节点接收到报文后,根据转发概率,在除自己外的节点中随机选择下一跳节点或者发送给服务器.中转节点只知道其上一跳节点和下一跳节点,并不能获取转发路径上除此之外其他节点的信息,这种随机转发过程决定了中转节点不能获取任意一次的转发路径.因此任意节点都不能获取传输路径上的全部路由成员信息.

定理3.发言内容保密:任意中转节点和攻击者都不能获取用户节点发送的发言内容.

证明:发言者所在的节点发送的发言内容是经过RSA算法和AES算法混合加密的.先将发言内容用对称密钥加密,再用会议服务器的公钥加密对称密钥.并且在每次准备发送给下一跳中转节点时,再次使用新的对称密钥和下一跳中转节点的公钥以相同方法混合加密.中转节点接收到后仅进行一次解密,得到的是用对称密钥加密后的密文和用会议服务器公钥加密后的对称密钥,任一中转节点都没有会议服务器的私钥,因此不能继续解密密文,不能知道真正的发言内容.

发言内容在用户节点处是使用对称密钥和会议服务器的公钥进行了混合加密的,发送前用第一个中转节点的公钥和新的对称密钥二次加密.并且在中转节点间传送时,每次都先解密再用新的对称密钥进行二次混合加密.因此经过双重加密,且攻击者没有各个节点和会议服务器的私钥,是无法知道发送的发言内容.

4.2 匿名度

在匿名通信系统中,所有节点都是对等的,选择固定的转发概率进行重路由路径选择.攻击者在进行攻击时,先使得系统中的部分节点成为自己的合作者,这些节点就变成了恶意节点,其他非恶意节点称为诚实节点.之后恶意节点为攻击者提供系统信息,攻击者从中推断出匿名通信关系.如果系统中存在恶意节点,恶意节点也可能不位于转发路径上,此时攻击者认为系统中所有诚实节点为发送者的概率是相同的.当有恶意节点存在于转发路径上时,则攻击者认为在所有节点中,第一个恶意节点的上一跳节点是发送者的几率最大.

本文基于信息熵对发送者匿名度进行分析.已知系统有N个用户,用户集合U={Ui}={U1,U2,…,Un},系统在一段时间内运行时,节点总数N是不变的.设Y是一个离散随机变量,其概率分布Pi=P(Y=Ui)表示攻击者认为用户Ui是发送者的概率.对于系统中的N个用户,攻击者为每个用户可能是发送者分配一个概率Pi.文献[14]使用信息熵量化匿名度,提出了基于信息模型的匿名度的定义:

(1)

假设转发概率为Pf,路径长度为R,可以计算出路径长度分布为:

P(R=j+1)=1·Pfj-1·(1-Pf) 1<

(2)

那么路径长度的期望值为:

(3)

攻击者攻击系统后,设有M个节点已被攻击者控制,成为攻击者的共谋节点,则剩余的诚实节点数为N-M,恶意节点占总节点的比例为C.令发送者位于第0个位置,Ei(1≤i≤n)表示路径上的第1个共谋节点位于第i个位置的事件, Ei+=Ei∧Ei+1…表示路径上的第1个共谋节点位于第i个位置及之后的事件,F表示路径上第1个共谋节点的前驱节点是发送者的事件,P(F|E1+)表示在路径上有共谋节点时,第1个共谋节点的前驱节点是发送者的概率.对于攻击者自己所在的节点和其控制的恶意节点,它们是发送者的概率为0.

路径上有恶意节点时,第1个共谋节点的前驱节点是发送者的概率为:

(4)

排除第一个共谋节点的前驱节点外,其他所有非恶意节点是发送者的概率为:

(5)

则根据发送者匿名度公式计算得:

(6)

图1是在恶意节点占总节点(N为100)的不同比例下,对比了转发概率f与匿名度之间的关系.从图1可以看出,当恶意节点的比例一定时,随着转发概率f的增大,系统的匿名度也增大.同时,在同一转发概率下,当恶意节点的比例越小,系统的匿名度越大.

图1 转发率f与匿名度的函数关系图Fig.1 Functional relationship between forwarding probability and anonymity degree

图2是在不同的转发概率f下,对比了恶意节点占总节点(N为100)的比例与匿名度之间的关系.从图2中可以看出,随着恶意节点的比例逐渐增大,系统的匿名度不断降低.而且在同一恶意节点占比下,转发概率f越大,匿名度也越大.

图2 恶意节点占总节点的比例M/N与匿名度的函数关系图Fig.2 Functional relationship between maliciousnode and anonymity degree

图3表示(N为100)随着恶意节点的个数变化时,本方案和文献[6]提出的CACSBSP系统的匿名度变化情况.在本方案中,由公式(3)知,当转发概率为0.5时,路径长度期望值为3,当转发概率为0.75时,路径长度期望值为5.CACSBSP系统中,假设自私节点个数为0,节点的信誉度最高为10.从图3可以看出,两个方案的匿名度都随着恶意节点个数的增多大致呈线性下降.当系统中恶意节点个数一定时,无论路径长度是3还是5,本方案的匿名度都比ACSBSP系统要高.由此可以得出,本方案与ACSBSP系统相比较时,本方案的安全性较高,可以有效地实现发送者匿名,保证用户身份位置隐私的安全.

图3 恶意节点个数改变时的匿名度Fig.3 Degree of anonymity when the number of maliciousnodes changes

通过上述分析,本文提出的基于匿名通信的匿名在线会议方案,可以实现较高的匿名度,即在转发概率f=0.75且少量恶意节点存在的情况下,攻击者对节点进行合谋攻击后仍不能推断出发送节点的可能性达到0.8.该结果表明本文所提出的基于匿名通信的双通道匿名在线会议方案可以较好的保障发送者的匿名性.

4.3 安全性分析

在匿名通信领域,随着匿名技术的不断研究和发展,匿名通信系统所可能遭受的攻击也层出不穷.本文提出的双通道匿名在线会议方案中,发言者每次发言都会选取新的转发路径,即使是同一个发言者,其每次发言内容的传输路径也是随机的.在发言的传输过程中,发言内容的转发路径长度也是不确定的.中转节点根据转发概率来确定是否转发给会议服务器或其他中转节点,若继续转发给其他中转节点,则采取随机选择策略.因此,攻击者不能通过流量分析的手段来获取发言内容的传输路径,从而推断出发言用户节点的身份和位置信息,进而识别发言者的真实身份.

发言内容和发言者的身份信息等在发送前就进行了混合加密:用对称密钥加密发言内容,用会议服务器公钥加密对称密钥.在发送给第一个中转节点时,进行二次混合加密:用新的对称密钥加密报文,用第一个中转节点的公钥加密新对称密钥.在传送过程中,中转节点虽然会先进行一层解密,但得到的是用对称密钥和会议服务器公钥混合加密的发言内容,由于没有会议服务器的私钥,中转节点无法解密获取发言内容.即使不在传输路径上的中转节点获取到报文,由于报文是经过两次混合加密的,且任一中转节点都没有会议服务器和其他所有中转节点的私钥.不在传输路径上的中转节点无法进行双重解密,也就无法得到发言内容.因此,任意的中转节点都不能获取会议中发言者的发言内容.同时发言的传输过程中进行多次不同的双重加密,攻击者很难窃听和追踪到报文,更不能轻易破解出发言内容和发言者的身份信息来伪造会议内容.

在一条匿名通信路径中,攻击者很可能会控制其中一些会议用户所在的节点,使其成为恶意节点.攻击者和多数恶意节点一起合谋攻击会议系统,尤其是在发言用户节点的下一中转节点是恶意节点时,攻击者有很大概率能够推断出上一跳的节点信息,从而获取发言者的身份和位置信息.但当系统中恶意节点不多时,系统发送者匿名性被破坏的概率极小.面对合谋攻击时,只要系统中恶意节点的数量保持在一定比例内,系统还是具有很好的匿名性.

4.4 本方案优越性

4.4.1 健壮性

本文提出的双通道匿名在线会议方案是节点对等、完全自组织的,具有较强的健壮性.系统中的每个节点既作为用户节点发起发言,同时也是系统的中转节点,转发其他发言节点的发言内容.在发起发言时,由用户节点随机选择下一跳中转节点,在传输过程中,当前接收到发言内容的中转节点随机选择下一跳中转节点.每次的传输路径都是随机的,不会依靠某些特定节点,当系统中某些节点故障或者离开网络时,也不会影响整个通信过程.

4.4.2 抗攻击性

该方案具有较强的抗攻击性.每次发言内容的传输路径并不是提前构建,而是在传输时由当前节点随机确定下一跳中转节点,因此具体的传输路径和路径长度都是随机的.即使面对合谋攻击,攻击者也很难通过流量分析的手段来获取消息的完整传输路径,也就无法获知发言者的身份.用户的发言在到达服务器之前是保密的,使用AES和RSA算法进行混合双重加密,任何其他用户不能获取,也不能伪造.

4.4.3 高效率性

本方案采取双通道的方式,每次匿名通信是单向的,发言内容通过匿名通信传送到会议服务器,相对耗时较长.但是用户可以直接通过浏览网页的方式收看会议,不需要经过匿名通信过程,因此可以保证实时性.总的来说,该方案比单通道的基于匿名通信协议的匿名在线会议的效率高得多.

5 实验与结果分析

5.1 实验环境及性能指标

为了验证基于匿名通信的双通道匿名在线会议方案的性能,表3列出了实验环境和参数设置.

表3 实验环境及参数设置Table 3 Experimental environment and parameter setting

实验参数定义了用户发言的平均响应时间、平均路径长度和用户收看会议的平均响应时间.用户发言的响应时间定义为,在一段时间内,系统中的用户发送若干个发言,服务器接收到单个发言信息所消耗的时间.用户发言的平均响应时间是指,多个消息的响应时间求取平均值.用户收看会议的平均响应时间定义为,在多个用户随机发言情况下,服务器收到两条发言信息之间的平均间隔.

5.2 实验结果及分析

本实验分别在方案中的“双通道”上进行了试验.在设定转发概率分别为0.25,0.5,0.75的情况下,对由10,20,30,…,100个节点组成的网络系统分别进行100次模拟实验,模拟用户对服务器的消息转发,记录不同节点数构成系统的100次路径长度和响应时间,由此计算出平均路径长度和平均响应时间.同时记录了不同节点数组成的系统中,转发概率为0.5时,服务器收到100次发言信息的间隔,由此计算出两条发言信息之间的平均间隔.

图4 用户发言的平均响应时间Fig.4 Average response time for a user to speak

图4给出了在不同概率下,随着节点数目增加,用户发言的平均响应时间的变化情况.从图4可以看出,在转发概率一定时,随着节点数目的增加,用户发言的平均响应时间近似呈线性增加.这表明即使在节点并发访问量很大的情况下,该方案仍然适用且具有较好的稳定性.且当节点数目一定时,随着转发概率的增加,用户发言的平均响应时间仅出现小幅度的增长.看到自己的发言内容会有一定的延时,只要延时不超过5秒,一般会议中都是可以接受的.当节点数较多时,用户发言的平均响应时间是不超过5秒的,这说明能够保证发言内容的同步.观看其他用户的发言内容和自己的发言内容是不需要同步的,所有用户可以在会议页面实时看到.

图5表示在不同转发概率下,随系统中节点数目变化的平均路径长度的变化情况.从图5可以看出,在一定的概率下,随着节点数目的增加,平均路径长度曲线图整体变化趋势比较平稳,在某个恒定值上下波动,波动范围不超过2.这表明当概率一定时,通信的平均路径长度与网络的节点数目是无关的.这同样也证实了本文所提出的方案在多个节点共同发送消息的过程中,不存在利用历史路径转发信息的情况,节点在每次发送信息时,传输路径都是随机产生的,保证了节点位置的匿名性,具有较好的健壮性.

图5 平均路径长度Fig.5 Average path length

从图5还可以看出,在节点数目一定时,随着转发概率的增加,节点的平均路径长度也随之增加.这与上述路径长度期望值理论公式是相符的.结合图4和图5可以看出,当转发概率为0.25时,系统平均响应时间较短,且平均路径长度较短,大约为2,但路径长度较短时,系统容易受到攻击者的流量分析攻击从而降低发送者的匿名性.当转发概率为0.75时,平均路径长度较长,大约为5,同时平均响应时间也较长,此时用户与服务器的通信时延较大,会影响用户体验,且较长的路径长度也会增加系统负载.当转发概率为0.5时,其平均路径长度适中,大约为3,并且当节点数目增加时,平均响应时间呈小幅度增加.因此,本文所提出的方案中转发概率可以选取为0.5.

图6给出了随着节点数目增加时,本方案和文献[6]提出的CACSBSP系统的系统平均响应时间变化情况.在本方案中,设定节点转发概率为0.5.在CACSBSP系统中,假设自私节点个数为0,节点的信誉度最高为10.从图6可以看出,两个方案的平均响应时间都随着节点个数的增加而增长.当系统中节点个数一定时,本方案的系统平均响应时间比ACSBSP系统要小,且从整体趋势来看,本方案平均响应时间的增长速度较慢.由此得知,在用户发言时,本方案的同步性较好,效率较高,可以保障会议的实时性.

图6 节点个数变化时的系统平均响应时间Fig.6 Average system response time when the number of nodes changes

图7表示在转发概率为0.5时,随着系统节点个数发生改变,用户收看会议的平均响应时间的变化情况.从图7可以看出,随着系统内节点数的增加,用户收看会议的平均响应时间呈现较小幅度的波动,但整体数值保持在6-10毫秒内,未超过10毫秒.相比用户发言的平均响应时间,用户收看会议的平均响应时间要小得多.这表明本方案的双通道,即收看会议通道和发言通道是互不影响的,用户的发言内容经过多次转发,所以时延较长,而用户收看会议的时延很小,基本上是实时的.并且在用户访问量很大时,也能很好地保证会议的实时性.

图7 用户收看会议的平均响应时间Fig.7 Average response time of users listening to a meeting

6 结束语

本文基于一种匿名通信模型,提出了一个双通道匿名在线会议方案.在本方案中,用户收看会议是一个通道,用户通过普通的web访问方式进入网页会议室收看会议,拥有自己的观众名和登录密码.用户发送发言内容使用另一个通道,用户ID和发言内容一起通过匿名通信技术发送给会议服务器,会议服务器接收后将发言内容公布在会议页面上.两个通道单独工作,使得系统效率高,速度快,用户能够实时收看会议,获取会议内容.用户的观众名和用户ID并无任何对应关系,保证了用户的身份和位置信息不会被泄露.发言通道中的匿名通信技术,在选择下一跳中转节点时使用随机选择策略,同时用RSA和AES混合加密算法多次对发言内容进行加密,有效地抵御了攻击者的流量分析和追踪攻击,确保发言者的身份和位置信息是安全的.经过理论分析和多次实验验证,该方案时延小,效率高,健壮性强,在系统用户量较大的情况下,也能稳定运行,保证会议的实时性和较强的匿名性.下一步将研究如何改善本方案,进一步提高方案的通信效率和安全性.

猜你喜欢

公钥攻击者密钥
基于贝叶斯博弈的防御资源调配模型研究
幻中邂逅之金色密钥
幻中邂逅之金色密钥
神奇的公钥密码
正面迎接批判
Android密钥库简析
正面迎接批判
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
一种新的动态批密钥更新算法