一种不需可信第三方的匿名提交系统的制作方法

文档序号:9618711阅读:622来源:国知局
一种不需可信第三方的匿名提交系统的制作方法
【专利说明】—种不需可信第三方的匿名提交系统
[0001]
技术领域
[0002]本发明涉及匿名通信和数据匿名技术领域,具体是一种不需可信第三方的匿名提交系统。
【背景技术】
[0003]匿名提交或者匿名发布是人们一贯以来的一个需求。在现实环境下,人们通过传递小纸条和投信入信箱(如部门的举报箱)的方式来匿名的表达和传递信息。在数字世界中,匿名做起来难的多,因为数字通信总是有迹可循。随着互联网的兴起,各商业公司和国防机构也在探索这个领域。由于对匿名强度的需求不同,所以在不同的应用场景下产生了不同的匿名方案。
[0004]现有的技术方案总体上分两类。一类是通过可信的第三方的参与,由可信的第三方转交通信内容而不泄露消息来源信息。现在普通民众所使用的商业机构提供的服务都属于这类。如“秘密”app、QQ的匿名聊天、人人的树洞等。此类应用隐去了通信人的身份信息,其他通信过程不变。效果上,只是一种非严格的匿名,因为他人有多种办法可以使得客户端的身份信息被泄露,诸如提供服务的第三方被黑客利用了漏洞,客户端的网络路由被黑客监听,甚至第三方主动泄露。使用此类方法,依赖于对第三方的信任,并且第三方除了不主动泄露信息外而且还要提供的是确实安全的服务。
[0005]第二类是技术手段上的匿名,不依靠可信第三方的参与。目前投入实用的有TOR系统和I2P系统(后者是前者的一个升级)。安装有tor软件的全球所有客户端连接成为一个宏大的匿名网络。客户端通过tor匿名网络连接到任何网站,而不会暴露自己的实际IP地址。tor软件的关键技术是访问路由选择,由客户端端自动选择路由,每个tor节点只知道某个数据包的上一节点和下一节点,不知道数据包的源地址和目的地址。从而做到了不需信任第三方的匿名。技术效果上,安全性很高,也是比较出色的一个方案。安全的条件是安装有tor软件的各个客户端是不合谋攻击的。除非某个机构掌握了很多个tor客户端,才能获得来源?目息。

【发明内容】

[0006]本发明要解决的技术问题是提供一种不需可信第三方的匿名提交系统,即使在客户端的所有出入流量都被监听的情况下仍然是安全的,且本发明能够在用户数量不是太多小型网络环境下适用。
[0007]本发明的技术方案为:
一种不需可信第三方的匿名提交系统,包括有一个用于接收消息的服务器端和若干个用于发送匿名消息的客户端,所述的若干个客户端围成一个逻辑上的圈,即任一客户端均有两个相邻的客户端;所述的圈内相邻的两个客户端共享一个秘密随机序列,即每个客户端享有两个秘密随机序列;当任一客户端需要发送匿名消息时,分别在自身的两个秘密随机序列中取一段与需要发送的匿名消息进行异或运算,最后将异或的结果发送给服务器端,其它不需要发送匿名消息的客户端也从自身两个秘密随机序列中各选取一段进行异或运算,并将异或结果发送给服务器端,服务器端把若干个客户端发送过来的消息进行异或运算后,即得到发送的匿名消息;其中,共享一个秘密随机序列的两个客户端选取的一段相同。
[0008]所述的秘密随机序列为一个足够长的二进制比特序列,每次选取定长的一段参与异或运算,使用后则抛弃用过的一段。
[0009]所述的任一客户端的两个序列生成的步骤为:首先若干个客户端均向服务器端发起TCP连接,以服务端为中介,相邻的两个客户端之间进行密钥交换,每个客户端得到两个秘密数,以这两个秘密数作种子,使用密码学安全的伪随机数生成算法分别生成对应的两个秘密随机序列。
[0010]密钥交换即服务器端接收若干个客户端的公钥,任一客户端接收服务器发送的相邻的两个客户端的公钥并与自己的私钥通过运算得到两个与对应的特定客户端共享的秘密数。
[0011]所述的匿名消息以ASIIC码的形式构成第三个比特序列,与客户端两个秘密随机序列的一段进行异或运算,得到一个最终的二进制比特序列,作为发送给服务器端的报文。
[0012]所述的客户端发送的报文的开头均维护一个递增的序列号,服务器端对相同序列号的所有客户端发送的报文进行异或运算,得到此次通讯的最终结果一如果异或结果是0,表示没有客户端传递了消息,结果非0则进行译码,写入日志,供服务器端使用者查看。
[0013]所述的服务器返回得到的所有消息的摘要值给各个客户端,当客户端发现自己发送出去的消息没有体现在返回的摘要中,则证明由于冲突等原因没有发送成功,等待随机的时间片间隔后再次发送。
[0014]本发明的有益效果为:
在互联网络中的匿名不可能做到绝对的,都是基于一定的条件下。本方案着重于尽可能的减少条件的依赖,强调匿名的可靠性和安全性。
[0015]现有各种匿名手段安全性依赖的条件有以下几种:(1)、可信的第三方(托管方不会主动或被动泄露客户端的信息);(2)、服务提供方不被黑客攻击(即使不完全相关的诸如服务日志之类也能得到部分信息);(3)、客户端出入流量不被监控(现有几乎所有用于匿名的技术都不能不依赖这点,而在局域网环境下的管理员或者攻入了家庭路由器的黑客很容易能够不被发觉的做到这点);(4)、软件的其他使用者是可信的(诸如TOR网络和I2P网络,使用多个假的节点可以获取到一部分信息)
本发明在所有客户端服务端的出入流量被监控情况下,攻击者也无法得到关于消息来源的有用信息。在任意多个客户端合谋的情况下,本发明亦能保证匿名的可靠性。只有在服务端与某客户端A逻辑上相邻的两个客户端合谋的情况下,客户端A的信息才会泄露。而客户端使用者是知道并且通过数字签名验证了自己的“邻居”是谁的,从而他能在相信这两个人不会是间谍的情况下再发送敏感的匿名消息。
【具体实施方式】
[0016]—种Perl编程实现的本发明的【具体实施方式】,部署在一个服务端和若干个客户端的小型网络中,以后台进程的形式存在于各个客户端和服务端。流程主要分为两部分,初始化过程和工作过程。其中初始化用来唤醒进程执行并协商出执行的参数,工作过程在初始化之后开始在后台定期执行。整体的通讯支持上,使用Perl强大的用于事件驱动编程的库AnyEvent,具有非常优异的性能,使得本发明可靠且易于维护。
[0017](1)、客户端初始化:
a、若干个客户端分别向服务器端发起TCP连接,通过使用10:: Socket模块;
b、客户端之间执行Diffie-Hellman密钥交换,得到的秘密数作为伪随机算法的种子; 其中,Diffie-Hellman算法所需的p和g (模数和原根)作为参数在协议中公有,此参数手动生成,采用512
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1