一种与移动终端中程序建立连接的方法及系统与流程

文档序号:12280184阅读:249来源:国知局
一种与移动终端中程序建立连接的方法及系统与流程

本发明属于信息安全技术领域,特别是一种与移动终端中程序建立连接的方法及系统。



背景技术:

在实际应用中可能有这样的需求:用户计算机中的一个程序需要与用户移动终端(如手机、平板电脑等)中的一个程序(如app)建立连接,并与移动终端中的程序交互信息或调用移动终端中的程序提供的功能,如密码功能。针对计算机中的程序调用移动终端中程序提供的密码功能的需求,本专利申请人在其发明专利“一种便携式密码系统”(专利申请号:201510745471.X),“一种基于移动终端的密码系统”(专利申请号:201410407715.9)中提出了相应的技术方案。但这些技术方案也存在一个问题,这就是用户需要采用手工方式输入用于将计算机中的程序和移动终端中的程序进行关联的随机字串,或者,用户需要用手机扫描二维码,二维码中包含有用于将计算机中的程序和移动终端中程序关联的随机字串。从安全性考虑,这个用于两个程序关联的随机字串不能太短,若太短,则在用户计算机中的程序与移动终端中的程序建立连接时,攻击者的程序通过猜测随机字串、从而假冒用户计算机中的程序与用户移动终端中的程序成功建立连接的概率将会较大。无论用手机扫描二维码,还是采用手工方式输入较长的随机字串,都会给用户带来不便,因此,如果能简化程序连接建立过程中的用户操作,将是非常有益的。

除了用户计算机中程序发起与用户移动终端中程序建立连接、使用移动终端中程序提供的功能这种需求外,这样的需求同样存在:用户移动终端中的程序发起与用户计算机中程序建立连接、使用计算机中程序提供的功能(如使用用户计算机中的密码功能),或者用户一个移动终端中程序发起与用户另一个移动终端中程序建立连接、使用用户另一个移动终端中程序提交的功能。



技术实现要素:

本发明的目的是提出一种用于用户移动终端中程序与用户其他计算装置中程序之间相互建立连接的便捷方法以及基于此方法的系统。

为了实现上述目的,本发明提出的技术方案包括一种与移动终端中程序建立连接的方法及基于此方法的系统,其中,与移动终端中程序建立连接的方法如下。

用户一个计算装置中的程序A和用户另一个计算装置中的程序B分别与连接服务器建立连接;

程序A和程序B中的一个程序使用用户身份凭证在连接服务器完成身份鉴别操作(通过身份鉴别),另一个程序将用户在连接服务器的帐户名提交到连接服务器;

程序A通过连接服务器请求与程序B建立连接;

连接服务器利用程序A和程序B两个程序中一个程序在身份鉴别时提交的用户身份凭证和另一程序提交的用户帐户名, 将连接服务器与程序A之间的连接同连接服务器与程序B之间的连接临时关联(将两个连接临时关联),由此将程序A同程序B临时关联;

在程序B与连接服务器建立连接之前或之后,连接服务器向程序B发送程序A请求与程序B建立连接的请求;

接收到连接服务器发送的程序A请求建立连接的请求后,程序B自动或者在用户参与下通过连接服务器向程序A发送信息;

程序B通过用户的确认操作确定程序A是否接收到了程序B所发送的信息;

若通过用户的确认操作确定程序A接收到了程序B所发送的信息,则程序B向连接服务器确认允许程序A与自己(程序B)建立连接,之后,连接服务器将其与程序A的连接、与程序B的连接正式关联,从而在程序A和程序B之间建立连接,在此之后,连接服务器将程序A发送给程序B的消息或数据经此连接发送到程序B,或者反过来,将程序B发送给程序A的消息或数据经此连接发送到程序A;

所述用户计算装置是用户的具有程序执行能力和数据通信能力的电子装置;用户两个计算装置中至少一个是移动终端(一个移动终端或两个都是移动终端);所述移动终端是一个具有程序执行能力和数据通信能力的便携式电子装置(如手机、平板电脑、智能穿戴设备等);

所述连接服务器是一个用于在用户一个计算装置中程序和用户另一个计算装置中程序之间建立连接的系统;

所述连接服务器与程序A之间的连接、连接服务器与程序B之间的连接以及程序A与程序B之间连接指逻辑连接或会话连接;

所述用户身份凭证是证明用户在连接服务器中身份的电子信息,包括身份标识(如帐户名、数字证书等)及证明用户是身份标识拥有者的私密数据(如口令、证书私钥、标识私钥等);用户在连接服务器的身份凭证与用户在连接服务器的帐户名存在对应关系(如身份凭证中的身份标识就是用户在连接服务器中的帐户名,数字证书的主题名中包含帐户名)。

在以上连接建立过程中,程序A与连接服务器建立连接,缺省或默认表示程序A向连接服务器请求与程序B建立连接,或者,程序A使用用户身份凭证在连接服务器完成身份鉴别之前或之后,程序A向连接服务器发出与程序B建立连接的请求,或者,程序A将用户在连接服务器的帐户名提交到连接服务器之前或之后,程序A向连接服务器发出与程序B建立连接的请求。

在以上过程中,若通过用户的确认操作确定程序A没有接收到程序B所发送的信息,则程序B通知连接服务器拒绝程序A与自己(程序B)建立连接的请求,或者继续向程序A发送信息,并继续通过用户的确认操作确定程序A是否接收到程序B发送的信息,直到用户确认程序A接收到程序B发送的信息,或达到最大的尝试次数后(发送消息-用户确认尝试的最大次数,此最大次数预先设定),程序B通知连接服务器拒绝程序A的连接请求。

程序B通过连接服务器向程序A发送信息,并通过用户的确认操作确定程序A是否接收到了程序B所发送的信息有很多种方案,以下是几种可能的方案,但不是全部的方案,实施者在实施过程中可以设计其他的方案。

方案一:

程序B生成一个展示信息(如文字、图片)或从预先生成的展示信息中选择一个展示信息,然后一方面将展示信息提交到连接服务器,另一方面将展示信息通过程序B的人机交互界面显示;

连接服务器根据程序A与程序B之间的临时关联关系将接收到的展示信息发送(返回)到程序A并由程序A通过人机交互界面显示;

用户通过程序B的人机交互界面向程序B确认程序A的人机交互界面上显示的展示信息与程序B的人机交互界面上显示的展示信息是否一致,或者程序A是否显示有展示信息;

若用户确认二者一致,则程序B确定程序A接收到了程序B所发送的信息;若用户确认二者不一致,或者用户确认程序A没有显示展现信息,则程序B确定程序A没有接收到程序B所发送的信息。

方案二:

程序B生成一个展示信息(如文字、图片等)或从预先生成的展示信息中选择一个展示信息,然后一方面将展示信息提交到连接服务器,另一方面将包含程序B提交给连接服务器的展示信息的一组展示信息通过程序B的人机交互界面显示;

连接服务器根据程序A与程序B之间的临时关联关系将接收到的展示信息发送(返回)到程序A并由程序A通过人机交互界面显示;

用户在程序B的人机交互界面显示的一组展示信息中选择与程序A的人机交互界面上显示的展示信息一致的展示信息并确认;

若用户选择并确认的展示信息同程序B之前提交到连接服务器的展示信息一致,则程序B确定程序A接收到了程序B所发送的信息;若用户选择并确认的展示信息同程序B之前提交到连接服务器的展示信息不一致,或者用户确认无法在在程序B的人机交互界面显示的一组展示信息中选择与程序A的人机交互界面显示的展示信息一致的展示信息,或者用户确认程序A没有显示展示信息,则程序B确定程序A没有接收到程序B所发送的信息。

方案三:

程序B提示用户在程序B的人机交互界面输入信息并提示用户查看、确认程序A的人机交互界面是否显示了用户通过程序B的人机交互界面输入的信息;

用户通过程序B的人机交互界面随机地(随便地、任意地)输入信息;

程序B将用户输入的信息发送到连接服务器;

连接服务器根据程序A与程序B之间的临时关联关系将接收到的信息发送(返回)到程序A并由程序A的人机交互界面显示;

用户查看程序A的人机交互界面是否显示了用户通过程序B的人机交互界面输入的信息,并通过程序B的人机交互界面进行确认;

若用户通过程序B的人机交互界面确认程序A的人机交互界面显示了用户通过程序B的人机交互界面输入的信息,则程序B确定程序A接收到了程序B所发送的信息;若用户通过程序B的人机交互界面确认程序A没有显示用户通过程序B的人机交互界面输入的信息,或者用户确认显示的信息与用户输入的信息不一致,则程序B确定程序A没有接收到程序B所发送的信息。

方案四:

程序B生成或选择预先生成的一组展示信息并通过程序B的人机交互界面显示;程序B一方面要求用户从显示的一组展示信息中通过点击任意选择一个或多个信息,另一方面要求用户查看程序A的人机交互界面是否显示了用户选择的展示信息,并通过程序B的人机交互界面确认;

用户在程序B的人机交互界面所显示的一组展示信息中点击选择其中的一个或多个信息;

程序B将用户点击选择的信息发送到连接服务器;

连接服务器根据程序A与程序B之间的临时关联关系将接收到的展示信息发送(返回)到程序A并由程序A通过人机交互界面显示;

用户通过程序B的人机交互界面确认程序A的人机交互界面是否显示了用户在程序B的人机交互界面选择的展示信息;

若用户确认程序A的人机交互界面显示了用户在程序B的人机交互界面中选择的展示信息,则程序B确定程序A接收到了程序B所发送的信息;若用户确认程序A的人机交互界面显示的展示信息与用户在程序B的人机交互界面选择的信息不一致,或者用户确认程序A没有显示展示信息,则程序B确定程序A没有接收到程序B所发送的信息。

基于上述连接建立方法的连接建立系统如下。

连接建立系统使用所述与移动终端中程序建立连接的方法,在用户的一个计算装置中的程序与用户另一个计算装置中的程序之间建立连接;

连接建立系统包括连接服务器,而连接服务器又包括端点处理模块、身份鉴别模块、端到端连接管理模块、数据转发模块,其中:

端点处理模块:与用户计算装置中程序建立连接;调用身份鉴别模块对用户计算装置中的程序进行身份鉴别;接收用户计算装置中的程序提交的帐户名;接收用户计算装置中程序提交的连接建立请求和处理指令,调用端到端连接管理模块进行用户两个计算装置中的两个程序间连接建立的处理(如连接建立请求、确认、拒绝);根据两个程序间临时或正式的关联关系,调用数据转发模块在要建立连接或已建立连接的两个程序间进行数据传送处理;

身份鉴别模块:基于用户身份凭证,对用户计算装置中的程序进行身份鉴别;

端到端连接管理模块:处理用户一个计算装置中程序提交的与用户另一个计算装置中程序建立连接的请求;利用用户一个计算装置中一个程序在身份鉴别时提交的用户身份凭证和另一个计算装置中另一个程序提交的用户帐户名,将连接服务器与用户两个计算装置中的两个程序的分别连接进行临时关联,由此将用户两个计算装置中的两个程序临时关联;在两个程序的临时关联建立后,调用数据转发模块,将用户一个计算装置中程序的连接请求发送到用户的另一计算装置中的程序,或者将用户一个计算装置中程序发送的信息发送到用户的另一个计算装置中的程序;根据被请求连接程序的确认,将连接服务器与用户两个计算装置中两个程序的连接进行正式关联,由此,在用户一个计算装置中的程序和用户另一个计算装置中程序之间建立连接,或者,根据被请求连接程序的通知,拒绝另一程序提出的建立连接的请求;

数据转发模块:在用户一个计算装置中程序同用户另一个计算装置中程序之间在建立连接的过程中和连接建立后,基于连接服务器与两个程序之间的分别连接,以及这两个连接间的临时或正式关联关系,在两个程序之间传送信息、消息或数据。

从以上描述可以看到,基于本发明的方法及系统,当用户一个计算装置中的程序与用户另一计算装置中的程序之间建立连接时, 用户只需在一个程序中使用身份凭证进行身份鉴别,用户无需扫描二维码或者手工输入用于在两个程序之间建立关联的随机字串,用户只需通过简单的查看,点击确认,或输入任意的信息,就能在两个不同计算装置中的程序之间建立连接。这种连接建立方式操作简单,不易出错,达到了既保证安全,又简化用户操作的效果。

上述方法及系统也存在一个弱点,这就是易遭受拒绝服务攻击:攻击者恶意地、不断地重复使用某个用户的帐户名尝试通过连接服务器与用户计算装置中(如移动终端中)的程序建立连接,这虽然不给用户带来实质性的安全损害,但会影响用户自己程序之间的正常连接建立。在内网应用环境下,这不是大问题(这种攻击很容易发现),而在外网环境下,针对这种攻击,可以采用如下应对措施:

当用户一个计算装置中的一个程序(对应前面的程序B)通过连接服务器接收到的其他程序提交的连接建立请求数超过预先设定的数量时,此被请求建立连接的程序(对应前面的程序B)生成一个可显示的随机字串(可以是比较短的随机字串,如4-6个字节的数字),然后一方面将随机字串发送给连接服务器,要求使用随机字串重新进行连接建立处理,另一方面通过此被请求建立连接的程序的人机界面将随机字串向用户显示,并提示用户将显示的随机字串输入到用户其他计算装置中的发起连接建立请求的程序的人机交互界面中;

连接服务器接收到随机字串及使用随机字串重新进行连接操作处理的指令后,向所有发起连接建立请求的程序发出使用随机字串重新进行连接建立处理的指令,并断开所有发起连接建立请求的程序与发出重新进行连接建立处理要求的程序(即用户计算装置中的当前被请求建立连接的程序)的临时关联;

用户将被请求建立连接的程序的人机交互界面显示的随机字串输入到用户的另一个计算装置中的、发起连接建立请求的程序的人机交互界面中,并由此程序提交到连接服务器;

连接服务器通过一个程序提交的帐户名、随机字串和另一个程序在身份鉴别时使用的身份凭证、提交的随机字串,将连接服务器与两个程序之间的分别连接进行临时关联,由此将两个程序临时关联;在此之后,被请求建立连接的程序通过临时关联关系,将信息发送到发起连接建立请求的程序。

以上应对措施虽然也要求用户输入在两个程序之间建立连接关联的随机字串,但由于这个字串可以比较短,而且通常的系统为了防止重播攻击也会要求用户输入随机确认码,故这种方式并不会给用户带来额外的不便。

需要指出的是若用户的两个计算装置都不是移动终端,而是普通的计算机(台式、便携式计算机),本发明的技术方案仍然成立,但对于这种情况(两个计算装置都是普通计算机的情形),在用户两个计算装置的程序之间建立连接的需求或必要性暂时未有,也许未来会有。

附图说明

图1 为本发明实施例1的示意图。

图2 为本发明实施例2的示意图。

图3 为本发明实施例3的示意图。

图4 为本发明实施例4的示意图。

图5 为本发明实施例5的示意图。

图6 为本发明实施例6的示意图。

图7 为本发明连接建立系统的示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

实施例1、

本发明的实施例1(如图1所示)是将本发明的方法用于用户计算机中的一个程序A与用户移动终端中的一个程序B建立连接。在这个实施例中,连接建立发起方程序A向连接服务器提交用户在连接服务器的帐户名,请求与程序B建立连接;程序B使用用户身份凭证在连接服务器完成身份鉴别,然后向程序A发送信息,并在用户确认程序A接收程序B所发送的信息后,向连接服务器确认允许程序A与自己(程序B)建立连接。

实施例2、

本发明的实施例2(如图2所示)与实施例1的差别是将本发明的方法用于用户移动终端中的一个程序A与用户计算机的一个程序B建立连接,连接建立的交互过程与实施例1相同。

实施例3、

本发明的实施例3(如图3所示)是将本发明的方法用于用户计算机的一个程序A与用户移动终端中的一个程序B建立连接。在这个实施例中,连接建立发起方程序A使用用户身份凭证在连接服务器完成身份鉴别,请求与程序B建立连接;程序B将用户在连接服务器的帐户名提交到连接服务器,然后向程序A发送信息,并在用户确认程序A接收程序B所发送的信息后,向连接服务器确认允许程序A与自己(程序B)建立连接。

实施例4、

本发明的实施例4(如图4所示)与实施例3的差别是将本发明的方法用于用户移动终端中的一个程序A与用户计算机的一个程序B建立连接,连接建立的交互过程与实施例3相同。

实施例5、

本发明的实施例5(如图5所示)是将本发明的方法用于用户一个移动终端中的一个程序A与用户另一个移动终端中的一个程序B建立连接。在这个实施例中,连接建立发起方程序A向连接服务器提交用户在连接服务器的帐户名,请求与程序B建立连接;程序B使用用户身份凭证在连接服务器完成身份鉴别,然后向程序A发送信息,并在用户确认程序A接收程序B所发送的信息后,向连接服务器确认允许程序A与自己(程序B)建立连接。

实施例6、

本发明的实施例6(如图6所示)是将本发明的方法用于用户计算机的一个程序A与用户移动终端中的一个程序B建立连接。在这个实施例中,连接建立发起方程序A使用用户身份凭证在连接服务器完成身份鉴别,请求与程序B建立连接;程序B将用户在连接服务器的帐户名提交到连接服务器,然后向程序A发送信息,并在用户确认程序A接收程序B所发送的信息后,向连接服务器确认允许程序A与自己(程序B)建立连接。

关于程序B通过连接服务器向程序A发送信息,并通过用户的确认操作确定程序A是否接收到了程序B所发送的信息的操作,实施者可以用发明内容中给出的方案,实施者也可以用自己设计方案(不限于本发明中给出的方案)。发明内容中给出的、程序B通过连接服务器向程序A发送信息,并通过用户的确认操作确定程序A是否接收到了程序B所发送的信息的四种方案中,方案一、二、四中的展示信息可以是临时或预先生成的一段文字或一个图片;若程序B显示的是一组展示信息,则显示的是几段文字或一组图片。

关于本发明的连接建立系统的具体实施,其系统结构如图7所示。连接服务器的开发可以采用任何成熟信息系统开发技术如C/C++、.NET、J2EE等,以及相应的数据库技术。在具体实施中,端到端连接管理模块可以维护一个连接关联表,用于维护连接服务器与用户两个计算装置中的程序A、程序B的连接的临时和正式关联关系(即程序A与程序B之间的临时和正式关联关系)。

其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1