一种多设备安全登录的方法与流程

文档序号:17090967发布日期:2019-03-13 23:27阅读:546来源:国知局
一种多设备安全登录的方法与流程

本发明属于信息安全领域,尤其涉及一种多设备安全登录的方法。



背景技术:

随着移动互联网的发展,用户常常需要在多个设备上登录相同的账号,例如在多个智能手机、平板电脑等设备上同时登录相同的账号。现有技术中,用户在登录一个设备时,都需要输入账号和密码,由服务器对账号密码进行校验,校验通过,则服务器允许该设备登录,之后在一定时间内该设备可保持登录状态。但是,在这种方式下,一旦用户的账号密码泄露,或者处于登录状态的设备遗失,就会导致恶意用户可以直接冒充该用户进行操作,可能给用户带来极大损失。



技术实现要素:

为了解决上述问题,本发明提出了一种多设备安全登录的方法。

本发明采用的技术方案如下:

一种多设备安全登录的方法,包括以下步骤:

(1)用户使用一个设备a连接远程服务器,并输入其账号向服务器请求登录,服务器从数据库中获取该账号当前已登录的设备信息,设当前已登录的设备有n台,如果n=0,则服务器要求该设备a输入该账号的密码,用户再通过设备a输入其密码,所述设备a构造一个请求登录消息发送给所述服务器;如果n>0,则转到步骤4;

(2)所述服务器基于接收到的请求登录消息,对用户输入的账号和密码的正确性进行验证,如果验证不通过,则直接拒绝该用户登录,否则继续后续步骤;

(3)服务器在账号密码验证通过后,允许该设备a登录,并将该设备a作为已登录设备,在数据库中记录其相关信息,登录过程结束;

(4)服务器同时向所述n台已登录设备发送询问消息,所述询问消息中包括了所述设备a的相关信息;

(5)每台接收到所述询问消息的已登录设备,在其屏幕上显示所述设备a的相关信息,并询问用户是否允许该设备a登录;

(6)所述已登录设备根据用户的输入,向服务器返回答复消息;

(7)所述服务器在发送询问消息后,等待各个已登录设备的答复消息,根据在预定义的时间内收到的答复消息,决定是否允许设备a的登录。

进一步地,所述步骤7中,根据收到的答复消息,分为三种情况:

情况1:在预定义的时间内,没有收到已登录设备的答复消息,则所述服务器拒绝该设备a的登录;

情况2:在预定义的时间内,收到的第一个答复消息表示允许设备a的登录,则服务器首先允许该设备a的登录;然后服务器继续等待,如果在预定义的时间内,没有收到拒绝设备a登录的答复消息,则方法结束;如果在预定义的时间内,又收到了一个或多个拒绝设备a登录的答复消息,则服务器根据收到的所有答复消息进行综合判断,基于综合判断的结果决定是否中止设备a的登录;

情况3:在预定义的时间内,服务器收到的第一个答复消息表示拒绝设备a的登录,则服务器等待到预定义时间结束,基于收到的所有答复消息进行综合判断,基于综合判断的结果决定是否允许设备a的登录。

进一步地,所述综合判断的具体步骤如下:

假设服务器收到了k个答复消息m1,m2,……,mk,答复消息mi来自于设备si,其中mi中包括resulti(1≤i≤k);如果设备si的用户允许设备a的登录,则resulti=1,否则resulti=0;服务器获取设备si的已登录时间ti,计算综合判断值r,即:

其中

如果r大于预定义的阈值,则允许设备a的登录,否则中止或拒绝设备a的登录。

进一步地,所述阈值为0.3。

进一步地,当服务器允许设备a登录时,其为该设备a生成一个登录令牌token,并将该登录令牌发送给设备a;

所述登录令牌token=e(account,id,endtime);其中,account是用户账号,id是所述设备a的唯一标识符,endtime是该登录令牌的过期时间,函数e是一个加密函数,其使用服务器的私钥进行加密。

进一步地,所述设备a的相关信息包括设备a的名称以及该设备a所在的地理位置。

进一步地,对于一个已登录设备b,其返回答复消息mb={result,id,token};其中,result值表示用户的输入,如果用户在设备b上输入允许该设备a登录,则result=1,否则result=0;id是该已登录设备b的标识符,token是该已登录设备b的登录令牌。

进一步地,对于收到的每一个答复消息,服务器根据其中的标识符和登录令牌来验证该答复消息的合法性,如果不合法则直接忽略该答复消息,否则存储该答复消息。

进一步地,其特征在于,所述预定义的时间为1分钟。

本发明的有益效果为:方便用户登录多个设备,提高了多设备登录的安全性。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明多设备的连接结构图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

参见附图1,其示出了本发明多设备的连接结构,用户使用的多个设备可同时通过互联网连接到远程服务器,用户通过其中任意一个设备都可以登录该服务器。基于这一结构,下面对本发明的方法进行详细说明。

本发明方法的具体步骤如下:

(1)用户使用一个设备a连接远程服务器,并输入其账号向服务器请求登录,服务器从数据库中获取该账号当前已登录的设备信息,设当前已登录的设备有n台,如果n=0,则服务器要求该设备a输入该账号的密码,用户再通过设备a输入其密码,所述设备a构造一个请求登录消息发送给所述服务器;如果n>0,则转到步骤4。

需要说明的是,各个设备和服务器之间的通信都是在安全信道中进行的,例如通过https协议,在这一点上和现有的登录过程一样,在此不再赘述。

所述请求登录消息中包括了所述账号、所述密码的哈希值、所述设备a的名称和设备a的唯一标识符。

设备的名称通常是机器名,以方便用户识别;而设备的唯一标识符是用于唯一标识每个设备的id,例如,对于智能手机而言,所述唯一标识符可以使用其imei码,对于普通计算机而言,可以使用其mac地址。

提供登录界面的可以是设备上的一个app,也可以是设备操作系统,本发明对此不作限制。

(2)所述服务器基于接收到的请求登录消息,对用户输入的账号和密码的正确性进行验证,如果验证不通过,则直接拒绝该用户登录,否则继续后续步骤。

这一步骤中,账号和密码的正确性验证与现有技术相同,即根据账号查询注册数据库,如果能查询到该账号,则判断密码的哈希值与数据库中存储的密码哈希值是否相同,如果相同则验证通过,否则验证不通过。

(3)服务器在账号密码验证通过后,允许该设备a登录,并将该设备a作为已登录设备,在数据库中记录其相关信息,登录过程结束。

具体的,当服务器允许该设备a登录时,其为该设备a生成一个登录令牌token,并将该登录令牌发送给设备a,之后设备a就可以持该登录令牌访问服务器。

所述登录令牌token=e(account,id,endtime);其中,account是所述账号,id是所述设备a的唯一标识符,endtime是该登录令牌的过期时间。函数e是一个加密函数,其使用服务器的私钥进行加密。

服务器在数据库中记录的设备信息也包括了上述account、id和endtime。当到达所述过期时间endtime时,服务器从数据库中删除该设备a的信息,这样设备a就不再作为一个已登录设备。

设备a在登录后,访问服务器时都需要提供该登录令牌,服务器使用其公钥对登录令牌进行解密,将解密信息和数据库中的设备信息进行匹配,只有两者相匹配,才允许该设备a的访问。

(4)服务器同时向所述n台已登录设备发送询问消息,所述询问消息中包括了所述设备a的相关信息。

发送询问消息的目的是为了询问这些已登录设备是否允许该设备a的登录,为此询问消息中的设备a的信息应当尽量明确该设备a是哪台设备。例如,询问消息中可以包括该设备a的名称以及该设备a所在的地理位置。

设备a的地理位置可以根据设备a上的定位装置(例如gps装置)获得,设备a可在步骤1中将其定位信息与账号一起发送给服务器。或者,服务器也可以根据设备a的网络地址来得到其地理位置。

(5)每台接收到所述询问消息的已登录设备,在其屏幕上显示所述设备a的相关信息,并询问用户是否允许该设备a登录。

用户可以根据显示的设备a的相关信息,判断是否允许该设备a登录,从而在所述已登录设备上输入允许或者不允许该设备a登录。

(6)所述已登录设备根据用户的输入,向服务器返回答复消息。

具体的,对于一个已登录设备b,其返回答复消息mb={result,id,token}。其中,result值表示用户的输入,如果用户在设备b上输入允许该设备a登录,则result=1,否则result=0。id是该已登录设备b的标识符,token是该已登录设备b的登录令牌。

对于收到的每一个答复消息,服务器根据其中的标识符和登录令牌来验证该答复消息的合法性,如果不合法则直接忽略该答复消息,否则存储该答复消息,并执行后续步骤(后续步骤所说的答复消息都是已通过验证的答复消息,不再特别说明)。存储的答复消息还可用于未来的追溯和审查。

(7)所述服务器在发送询问消息后,等待各个已登录设备的答复消息,根据在预定义的时间内(例如1分钟)收到的答复消息,决定是否允许设备a的登录。

具体的,根据收到的答复消息,可以分为三种情况:

情况1:在预定义的时间内,没有收到已登录设备的答复消息,则所述服务器拒绝该设备a的登录。

情况2:在预定义的时间内,收到的第一个答复消息表示允许设备a的登录(即该答复消息中的result值为1),则服务器首先允许该设备a的登录,为设备a生成登录令牌,并发送给设备a。然后服务器继续等待,如果在预定义的时间内,没有收到拒绝设备a登录的答复消息(即答复消息中的result值为0),则方法结束;如果在预定义的时间内,又收到了一个或多个拒绝设备a登录的答复消息,则服务器根据收到的所有答复消息执行综合判断方法,基于综合判断方法的结果决定是否中止设备a的登录。

所述综合判断方法是综合所有答复消息的结果进行的判断,具体方法在后面介绍。

情况2是本发明方法最可能出现的情况,即用户在设备a申请登录,然后在另一个已登录设备直接允许该设备a登录。但是,为了避免用户等待时间过长,给用户造成不好的体验,在收到第一个允许登录答复消息后,服务器就首先允许设备a登录,如果后续出现了其他矛盾的答复消息,则服务器再进行进一步的判断。

情况3:在预定义的时间内,服务器收到的第一个答复消息表示拒绝设备a的登录,则服务器等待到预定义时间结束,基于收到的所有答复消息,执行综合判断方法,基于综合判断方法的结果决定是否允许设备a的登录。

下面说明综合判断方法的过程:

综合判断方法是基于服务器在预定义时间内收到的所有答复消息来决定是否允许设备a的登录,假设服务器收到了k个答复消息m1,m2,……,mk,其中mi={resulti,idi,tokeni},(1≤i≤k),mi的含义与上述步骤6中mb的含义一样,即如果mi所对应的设备的用户允许设备a的登录,则resulti=1,否则resulti=0。

设答复消息mi来自于设备si(1≤i≤k),服务器获取设备si的已登录时间ti,所述已登录时间ti指的是设备si最后一次登录距离现在的时间。由于设备的每次登录,服务器在数据库中都有记录,因此服务器可以获取各个已登录设备的已登录时间。

所述服务器计算一个综合判断值r,即

其中

如果r大于预定义的阈值,则应当允许设备a的登录,否则应当中止(在情况2下)或拒绝(在情况3下)设备a的登录。

优选情况下,所述预定义的阈值为0.3。

上述综合判断方法考虑了各个已登录设备的登录时间,基于登录时间赋予了设备不同的可信度。这是因为通常而言,如果一个已登录设备被盗或丢失,用户应当会很快发现,并采取措施清除该设备的登录状态,另一方面登录令牌也具有过期时间,因此登录时间越久的设备其可信度越高。

通过本发明的上述方法,用户在首次登录时,通过账号和密码登录,这一过程与现有的账号密码登录过程基本相同。但是如果用户有了已登录设备,就无需输入密码,只需要已登录设备的授权,从而提高了多设备登录的安全性,在一定程度上也方便了用户。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

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