专利名称:一种点对点连接安全性检查的方法
技术领域:
本发明涉及计算机即时通信技术,特别是涉及一种对即时消息业务中点对点(P2P,Peer to Peer)连接的安全性进行检查的方法。
背景技术:
在网络中,两个节点之间的连接一般有两种一种是客户端/服务器连接,客户端申请服务,服务器提供服务,这种连接方式是一对多的关系,如图1所示,一个服务器接受来自多个客户端的申请,并向多个客户端提供服务,服务器和客户端之间是非对等关系;另一种是P2P连接,即网络中每两个节点直接连接,如图2所示,多个客户端彼此两两互联,各客户端之间是对等连接的关系。
在上述的客户端/服务器的连接模式下,如果一个客户端需要向另外一个客户端发送数据,假设客户端A需要将数据传输给客户端B,那么,客户端A必须先将数据传送至服务器,由服务器将数据转发给客户端B。这种通信方式的最大缺陷在于数据传输不够即时,因为服务器对数据的处理往往不是简单的转发,还包括信息加密、解密、过滤病毒等一系列复杂的处理操作,因此或多或少存在延时的问题。所以,如果连接在服务器上的客户端达到一定数量,数据传输的延时很长,造成数据传输的即时性差。
在P2P的连接模式下,客户端A与客户端B可以通过直连通道传输数据,一旦两个客户端之间的P2P连接建立成功,数据接收和发送的即时性非常好。而且,这种连接方式对硬件的性能要求不高,可以大大降低成本。所以,这种P2P连接方式逐渐成为网络发展的一个热点。
然而P2P连接方式的安全性还存在一些隐患,由于P2P连接方式缺少服务器对连接安全性的检验,一旦P2P通道建立,两台客户端之间的数据传输没有屏蔽,所以,往往给计算机病毒的传播和黑客侵入以可乘之机。
现有技术中进行P2P连接安全性检查的最常用的方法是在申请建立连接时进行用户应答操作,如图3所示,P2P连接安全性检查的流程如下步骤301发起方向接受方发出连接请求消息,该连接请求消息包括发起方信息;步骤302接受方接收到连接请求消息后,在屏幕上显示发起方信息;步骤303接受方在屏幕上选择接受还是拒绝该连接请求;如果接受,则执行步骤305;如果拒绝,则执行步骤304;步骤304接受方向发起方发送连接拒绝响应,然后结束;步骤305接受方向发起方发送连接接受响应;步骤306发起方和接受方分别初始化设备;步骤307发起方和接受方建立P2P连接,进行P2P数据通信。
从上述技术方案可知,利用接受方的应答操作进行连接安全性检查的作用非常有限,因为接受方在应答连接请求时,有可能由于大意或误操作而接受非法发起方的连接请求。举例说明,假设某非法发起方破解了一条用于文件传送的P2P协议,该非法发起方根据破解的协议模拟出连接请求消息的数据包,比如木马程序的数据包,再通过启动一个批处理程序进行群发操作,将这个木马程序数据包发送给多个接受方,尽管接受方可通过上述应答机制来拒绝连接请求,但是多个接受方中只要有几个不慎选择了接受连接请求,非法发起方的目的就达到了。
发明内容
有鉴于此,本发明的主要目的在于提供一种P2P连接安全性检查的方法,有效地阻止非法用户的P2P连接请求,提高P2P连接的安全性。
根据上述目的,本发明提供了一种P2P连接安全性检查的方法,对即时消息业务中点对点连接的安全性进行检查,该方法预先在提供即时消息业务的中心服务器上保存对用户进行鉴权的身份鉴权信息,然后执行如下步骤A、点对点连接的发起方发送包含其身份信息的连接请求至接受方;B、接受方接收连接请求后,发送包含发起方身份信息的鉴权请求至提供即时消息业务的中心服务器;C、中心服务器利用发起方身份信息和所述身份鉴权信息对发起方进行鉴权,并向接受方返回鉴权结果;D、接受方根据中心服务器的鉴权结果接受或拒绝发起方的连接请求。
优选地,所述发起方的身份信息包括发起方的用户唯一标识和数字签名,所述身份鉴权信息包括发送方的合法用户唯一标识和合法数字签名。
在上述步骤C中,所述中心服务器对发起方进行鉴权的具体步骤为C1、中心服务器判断发起方的用户唯一标识是否为合法的用户唯一标识,如果是,则执行步骤C2;否则,发送鉴权失败响应至接受方;C2、中心服务器判断发起方的数字签名是否为合法的数字签名,如果是,则发送鉴权成功响应至接受方;否则,发送鉴权失败响应至接受方。
在上述步骤A之前,进一步包括所述身份鉴权信息进一步包括接受方的连接请求验证条件;在上述步骤C2中,中心服务器判断发起方的数字签名合法之后,在未发送鉴权成功响应之前,进一步包括中心服务器根据发起方的身份信息判断发起方是否满足接受方的连接请求验证条件,如果是,则发送鉴权成功响应至接受方;否则,发送鉴权失败响应至接受方。
优选地,所述接受方的连接请求验证条件为接受方的好友名单或黑名单,其中,所述好友名单为接受方允许连接的用户列表,所述黑名单为接受方拒绝连接的用户列表。
上述步骤D所述接受方根据鉴权结果接受或拒绝连接请求的具体步骤为如果接受方接收到鉴权成功响应,则向发起方返回连接接受响应;如果接受方接收到鉴权失败响应,则向发起方返回连接拒绝响应。
在上述步骤D中,如果接受方接到鉴权成功响应,在向发起方返回连接接受响应之前,进一步包括接受方选择是否接受所述连接请求,如果是,则向发起方返回连接接受响应;否则,向发起方返回连接拒绝响应。
根据本发明的另一个实施例,提供了一种点对点连接安全性检查的方法,该方法预先在提供即时消息业务的中心服务器上保存对用户进行鉴权的身份鉴权信息,然后执行如下步骤A、点对点连接的接受方获取所述身份鉴权信息;B、点对点连接的发起方发送包含其身份信息的连接请求至接受方;C、接受方根据发起方身份信息和所述身份鉴权信息对发起方进行鉴权,如果鉴权通过,则接受连接请求,向发起方返回连接接受响应;否则,拒绝连接请求,向发起方返回连接拒绝响应。
优选地,所述身份鉴权信息包括接受方的连接请求验证条件,所述发起方的身份信息包括发起方的用户唯一标识,在上述步骤C中,所述接受方对发起方进行鉴权的具体步骤为接受方判断发起方的用户唯一标识是否满足接受方的连接请求验证条件,如果是,则鉴权通过;否则,鉴权失败。
在上述步骤C中,如果对发起方的鉴权通过,在向发起方返回连接接受响应之前,进一步包括接受方选择是否接受所述连接请求,如果是,则接受方向发起方返回连接接受响应;否则,接受方向发起方返回连接拒绝响应。
从上述技术方案可以看出,本发明的方法引入了中心服务器对发起方身份进行鉴权的步骤,如果中心服务器鉴权通过,方可建立P2P连接;如果中心服务器鉴权未通过,则拒绝发起方的连接请求,尤其是在本发明一个较佳实施例中,中心服务器利用发起方的数字签名对其身份进行鉴权,对连接安全性的检查更加严格。在现有技术中,仅由接受方用户选择是否接受发起方的连接请求,而没有对发起方的身份进行鉴权的步骤。从以上的对比来看,本发明的方法能够有效地阻止非法用户的P2P连接申请,从而提高P2P连接的安全性。
图1是网络中的四个主机以客户端/服务器方式连接的示意图;图2是网络中的四个主机以P2P方式连接的示意图;图3是现有技术的P2P连接安全性检查的流程示意图;图4是根据本发明一较佳实施例的P2P连接安全性检查的流程示意图。
具体实施例方式
为了使本发明的目的、技术方案和优点更清楚,下面结合附图和具体实施方式
对本发明作进一步描述。
为了提高P2P连接的安全性,本发明提供的方法是在发起方发起P2P连接请求时,由提供即时消息(IM)业务的中心服务器对发起方的身份进行鉴权,接受方仅接受中心服务器鉴权通过发起方的连接请求。在下文通过参考图4和一个较佳实施例对本发明的方案进行详细说明。
假设客户端A为发起方的客户端,客户端B为接受方的客户端,中心服务器C上预先存储有如下信息(1)所有在线用户的合法用户唯一标识和合法数字签名;用户的数字签名是中心服务器为每个登录用户生成的、并随登录响应返回给用户的一个随机字符串值,中心服务器保存所有在线用户的数字签名,直至用户下线。
(2)接受方预先向中心服务器C提交的验证条件数据,例如,该验证条件数据可以是一份好友列表或者黑名单列表。由于数据保存在中心服务器上,所以数据的唯一性和准确性得到了保证,这样服务器根据接受方预先设置好的验证条件,来验证连接申请。
如图4所示,本发明一较佳实施例的P2P连接安全性检查的流程如下步骤401发起方发送连接请求数据包至接受方,该连接请求数据包中包括连接请求消息,该连接请求消息至少包括发起方的身份信息和传输数据类型。
在连接请求数据包中,身份信息包括发起方的ID和数字签名,其中,发起方ID是发起方身份的唯一标识,例如在QQ中将用户的QQ号码作为用户唯一标识,在MSN中将用户帐号作为用户唯一标识。
传输数据类型是发起方通知接受方其将要发送的数据类型的信息,包括音频类型、视频类型、文字类型等。
步骤402接受方接收到连接申请数据包后,从该数据包中解析出连接发起方的身份信息,然后将该数据包保存在缓存区中,并向中心服务器发送包含发起方身份信息的鉴权请求消息,如上所述,发起方的身份信息包括发起方的ID和数字签名。
步骤403中心服务器接收到鉴权请求消息后,根据鉴权请求消息中的发起方的身份信息判断发起方是否为合法用户,如果是,则执行步骤404;否则,执行步骤405。
在该步骤中,中心服务器判断发起方是否为合法用户是两层判断第一层判断发起方ID是否为合法ID,如果不是,则发起方不是合法用户,执行步骤405;如果是,执行第二层判断;第二层判断数字签名是否与在中心服务器上保存的发起方数字签名一致,如果不是,则发起方不是合法用户,执行步骤405;如果是,则发起方是合法用户,执行步骤404。
步骤404中心服务器判断发起方是否满足接受方的连接请求的验证条件,如果满足验证条件,则执行步骤407;如果不满足验证条件,执行步骤405。
下面举例说明中心服务器判断发起方是否满足验证条件如果接受方预先保存在中心服务器上的验证条件是好友列表,中心服务器判断发起方是否位于接受方的好友列表中,如果是,则满足验证条件;如果不是,则不满足验证条件。
如果接受方预先保存在中心服务器上的验证条件是黑名单,中心服务器判断发起方是否位于接受方的黑名单中,如果是,则不满足验证条件;如果不是,则满足验证条件。
步骤405中心服务器发送鉴权失败消息至接受方。
步骤406接受方接受到鉴权失败消息后,从缓存中删除发起方发送的连接请求数据包,然后发送连接拒绝响应至发起方,退出本流程。
步骤407中心服务器发送鉴权成功消息至接受方。
步骤408接受方接收到鉴权成功消息后,从缓存中取出对应连接请求数据包,将该数据包中的内容显示在屏幕上。
步骤409接受方在屏幕上选择接受或拒绝该连接请求,如果选择接受,则执行步骤410;否则,发送连接拒绝响应至发起方,退出本流程。
步骤410接受方发送连接接受响应至发起方;步骤411发起方和接受方初始化设备。
初始化设备是发起方和接受方双方根据待传输数据类型启动相应客户端软件和硬件,例如,如果待传输数据类型为视频数据,则双方启动摄像头和视频输入/输出应用软件;如果传输数据类型为音频数据,则启动麦克风和音频输入/输出应用软件。
步骤412发起方和接受方之间的P2P连接建立,双方通过P2P连接进行数据传输。
从以上较佳实施例可以看出,通过引入中心服务器对发起方身份的鉴权,可以有效地阻止非法的P2P连接请求。尤其是中心服务器利用数字签名对发起方身份进行鉴权,使得P2P连接安全性的检查更加有效。这是因为,数字签名总是在用户上线的时候重新生成,用户下线的时候自动失效,所以,即使P2P协议遭到破解,申请包的格式暴露了,但非法连接的发起方难以得到一个合法的签名值,一旦该签名值无法通过中心服务器的鉴权,非法连接就很难实现。
在本发明的另一实施例中,接受方在登录中心服务器后,在中心服务器上保存的连接请求的验证条件下载到本地。在接受方接收到发起方的连接请求消息后,由接受方判断是否满足其连接请求的验证条件,如果满足验证条件,则由接受方选择是否接受连接请求;如果不满足验证条件,则接受方清除连接请求数据包,并发送连接拒绝响应至发起方。
这种实施例的方法适用于对P2P连接的安全性要求不高的情况。接受方之所以从中心服务器下载其保存的验证条件,是因为中心服务器比客户端更安全,其上保存的数据不容易被修改,所以可以保证验证条件的正确性。但是,由于这种方法缺少了中心服务器对发起方数字签名的验证,所以对阻止非法发起方的效果不佳。但是,由于这种检查P2P连接安全性的方式无需请求中心服务器对发起方身份进行验证,所以其优点在于连接的等待时间较短,尤其在某些对P2P连接的安全性要求不高,又希望等待时间短的情况来说,这种方法具有突出的效果。
在具体的实施过程中可对根据本发明的方法进行适当的改进,以适应具体情况的具体需要。因此可以理解,根据本发明的具体实施方式
只是起示范作用,并不用以限制本发明的保护范围。
权利要求
1.一种点对点连接安全性检查的方法,对即时消息业务中点对点连接的安全性进行检查,其特征在于,预先在提供即时消息业务的中心服务器上保存对用户进行鉴权的身份鉴权信息,然后执行如下步骤A、点对点连接的发起方发送包含其身份信息的连接请求至接受方;B、接受方接收连接请求后,发送包含发起方身份信息的鉴权请求至提供即时消息业务的中心服务器;C、中心服务器利用发起方身份信息和所述身份鉴权信息对发起方进行鉴权,并向接受方返回鉴权结果;D、接受方根据中心服务器的鉴权结果接受或拒绝发起方的连接请求。
2.根据权利要求1所述的方法,其特征在于,所述发起方的身份信息包括发起方的用户唯一标识和数字签名,所述身份鉴权信息包括发送方的合法用户唯一标识和合法数字签名。
3.根据权利要求2所述的方法,其特征在于,在步骤C中,所述中心服务器对发起方进行鉴权的具体步骤为C1、中心服务器判断发起方的用户唯一标识是否为合法的用户唯一标识,如果是,则执行步骤C2;否则,发送鉴权失败响应至接受方;C2、中心服务器判断发起方的数字签名是否为合法的数字签名,如果是,则发送鉴权成功响应至接受方;否则,发送鉴权失败响应至接受方。
4.根据权利要求3所述的方法,其特征在于,在步骤A之前,进一步包括所述身份鉴权信息进一步包括接受方的连接请求验证条件;在步骤C2中,中心服务器判断发起方的数字签名合法之后,在未发送鉴权成功响应之前,进一步包括中心服务器根据发起方的身份信息判断发起方是否满足接受方的连接请求验证条件,如果是,则发送鉴权成功响应至接受方;否则,发送鉴权失败响应至接受方。
5.根据权利要求4所述的方法,其特征在于,所述接受方的连接请求验证条件为接受方的好友名单或黑名单,其中,所述好友名单为接受方允许连接的用户列表,所述黑名单为接受方拒绝连接的用户列表。
6.根据权利要求3或4所述的方法,其特征在于,步骤D所述接受方根据鉴权结果接受或拒绝连接请求的具体步骤为如果接受方接收到鉴权成功响应,则向发起方返回连接接受响应;如果接受方接收到鉴权失败响应,则向发起方返回连接拒绝响应。
7.根据权利要求6所述的方法,其特征在于,在步骤D中,如果接受方接到鉴权成功响应,在向发起方返回连接接受响应之前,进一步包括接受方选择是否接受所述连接请求,如果是,则向发起方返回连接接受响应;否则,向发起方返回连接拒绝响应。
8.一种点对点连接安全性检查的方法,对即时消息业务中点对点连接的安全性进行检查,其特征在于,预先在提供即时消息业务的中心服务器上保存对用户进行鉴权的身份鉴权信息,然后执行如下步骤A、点对点连接的接受方获取所述身份鉴权信息;B、点对点连接的发起方发送包含其身份信息的连接请求至接受方;C、接受方根据发起方身份信息和所述身份鉴权信息对发起方进行鉴权,如果鉴权通过,则接受连接请求,向发起方返回连接接受响应;否则,拒绝连接请求,向发起方返回连接拒绝响应。
9.根据权利要求8所述的方法,其特征在于,所述身份鉴权信息包括接受方的连接请求验证条件,所述发起方的身份信息包括发起方的用户唯一标识,在步骤C中,所述接受方对发起方进行鉴权的具体步骤为接受方判断发起方的用户唯一标识是否满足接受方的连接请求验证条件,如果是,则鉴权通过;否则,鉴权失败。
10.根据权利要求8所述的方法,其特征在于,在步骤C中,如果对发起方的鉴权通过,在向发起方返回连接接受响应之前,进一步包括接受方选择是否接受所述连接请求,如果是,则接受方向发起方返回连接接受响应;否则,接受方向发起方返回连接拒绝响应。
全文摘要
本发明公开了一种P2P连接安全性检查的方法,对即时消息业务中P2P连接的安全性进行检查,该方法预先在提供即时消息业务的中心服务器上保存对用户进行鉴权的身份鉴权信息,然后执行如下步骤P2P连接的发起方发送包含其身份信息的连接请求至接受方;接受方接收连接请求后,发送鉴权请求至提供即时消息业务的中心服务器;中心服务器利用发起方身份信息和所述身份鉴权信息对发起方进行鉴权,并向接受方返回鉴权响应;接受方根据接收到的鉴权响应接受或拒绝发起方的连接请求。应用本发明的方法,由于中心服务器对点对点连接的发起方身份进行鉴权,所以能够有效地阻止非法连接申请,从而大大提高了点对点连接的安全性。
文档编号H04L9/32GK1859094SQ200510070360
公开日2006年11月8日 申请日期2005年4月30日 优先权日2005年4月30日
发明者卢山, 林友尧 申请人:腾讯科技(深圳)有限公司