一种分布式系统及其登录验证方法与流程

文档序号:11778373阅读:843来源:国知局
一种分布式系统及其登录验证方法与流程

本发明涉及分布式系统技术领域,特别涉及一种分布式系统及其登录验证方法。



背景技术:

随着网络的蓬勃发展,分布式系统已经成为大型系统网站的必要手段,将复杂的业务系统进行拆分,拆分成若干个功能系统,形成大规模的分布式系统应用。这样,就涉及到若干个功能系统的统一登录问题,即单点登录。即从登录系统登录后,访问其他业务系统时可以不再登录,即可访问对应的功能。

现有技术方案是用户每次通过单点登录系统,输入账号密码进行登录验证,验证成功后登录系统会通过唯一的密钥生成加密信息(登录cookie值),同时,将加密信息放置到cookie中返回给用户客户端浏览器。之后,用户再通过浏览器访问各个业务系统时,每个业务系统都会从用户的请求中获取登录cookie值,用与单点登录系统相同的密钥进行cookie值解密,并校验解密结果是否合法。如果不合法,则跳回登录页面重新登录;如果合法,则正常处理用户的请求。

现有技术方案存在密钥被人窃取的风险,即当业务系统的开发人员能够拿到登录cookie解密的客户端代码和解密密钥。这样,就可以破解用户的登录cookie信息,或逆向模拟加密流程进行登录cookie伪造,对业务系统的安全造成威胁。



技术实现要素:

本发明的目的在于提供一种分布式系统及其登录验证方法,能够确保系统的登录安全。

为实现上述发明目的,本发明提供了一种分布式系统的登录验证方法,该方法包括:登录系统在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端;业务系统接收到客户端携带有所述登录cookie值的业务请求后,获取登录cookie值的密钥版本,通过所述密钥版本在自身保存的密钥列表中查询对应的密钥;利用该密钥解密登录cookie值,在校验解密结果合法后,处理正常的业务请求。

为实现上述发明目的,本发明还提供了一种分布式系统,包括:登录系统,在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端;业务系统,接收到客户端携带有所述登录cookie值的业务请求后,获取登录cookie值的密钥版本,通过所述密钥版本在自身保存的密钥列表中查询对应的密钥;利用该密钥解密登录cookie值,在校验解密结果合法后,处理正常的业务请求。

综上所述,本发明实施例的分布式系统及其登录验证方法,登录系统的管理人员维护着密钥列表,该密钥列表中至少存在一个有效密钥,当客户端进行登录操作时,登录系统采用版本号最高的有效密钥生成登录cookie值。当客户端访问业务系统时,业务系统获取登录cookie值的密钥版本,通过所述密钥版本在自身保存的密钥列表中查询对应的密钥;利用该密钥解密登录cookie值。本方案既可以防止恶意人员获取密钥进行cookie破解、伪造等操作,又可以进行系统安全的提升,可以定时进行cookie过期、失效操作,对老的cookie进行失效操作,保持系统的登录安全。

附图说明

图1为本发明实施例分布式系统的登录验证方法的流程示意图。

图2为本发明优选实施例分布式系统登录验证方法的流程示意图。

图3为本发明实施例分布式系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。

本发明针对现有分布式系统中存在的缺陷,采用密钥列表、动态管理密钥的方法,进行密钥的新增、失效,来定期对密钥进行替换处理。防止密钥泄露引起的一系列问题。

本发明实施例分布式系统的登录验证方法的流程示意图如图1所示,包括以下步骤:

步骤11、登录系统在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端;

其中,登录系统采用了实时修改的密钥列表,该密钥列表包括多个密钥值,每个密钥值对应有密钥状态和密钥版本。也就是说,登录系统管理人员维护密钥列表,因此密钥列表可以实时修改,可以对现有的密钥进行失效处理等,也可以新增密钥。

步骤12、业务系统接收到客户端携带有所述登录cookie值的业务请求后,获取登录cookie值的密钥版本,通过所述密钥版本在自身保存的密钥列表中查询对应的密钥;利用该密钥解密登录cookie值,在校验解密结果合法后,处理正常的业务请求。

其中,业务系统自身保存的密钥列表是在业务系统启动后,定时同步登录系统当前密钥列表得到的。

进一步地,所述业务系统通过所述密钥版本在自身保存的密钥列表中查询对应的密钥,如果查找不到对应的密钥,则向登录系统同步当前密钥列表。

进一步地,业务系统在启动后还加载有用于对登录cookie值进行解密的cookie解密程序包,所述业务系统利用密钥和所述cookie解密程序包解密登录cookie值。

综上,本发明由登录系统管理人员动态管理密钥列表,业务系统定时获取到登录系统的密钥列表,而业务系统的开发人员并不会知晓,因此提高了业务系统的安全性。

为清楚说明本发明,下面列举具体场景进行说明。

图2为本发明优选实施例分布式系统登录验证方法的流程示意图,如图2所示。

步骤20、登录系统在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端。

本发明实施例中登录系统中由登录系统管理人员维护的密钥列表如表1所示。由表1可以看出,密钥值为1a2b的密钥版本最高,且密钥状态为有效,所以采用该密钥值1a2b生成登录cookie值,具体生成方法为现有技术,在此不再赘述。因此,返回给客户端的响应内容为v12-********,其中,v12为密钥版本,********为根据密钥值1a2b加密后的登录cookie值。

表1

步骤21、业务系统接收到客户端的业务请求后,获取业务请求中的登录cookie值。

步骤22、业务系统判断业务请求中是否存在登录cookie值,如果不存在,则返回执行步骤20;如果存在,则执行步骤23。

需要说明的是,如果客户端不登录登录系统,而是直接访问业务系统的情况下,业务请求中就可能无法携带登录cookie值。

步骤23、业务系统获取登录cookie值的密钥版本。

本实施例中,密钥版本为v12。

步骤24、业务系统通过所述密钥版本在自身保存的密钥列表中查询对应的密钥。

本实施例中查询的是v12对应的密钥值1a2b。

步骤25、业务系统判断是否查询到对应的密钥,如果不存在,则执行步骤26;如果存在,则执行步骤27。

步骤26、业务系统向登录系统同步当前密钥列表。

需要说明的是,业务系统自身保存的密钥列表是在业务系统启动后,定时同步登录系统当前密钥列表得到的,可以如表1所示。如果时间上有延迟,只通过定时同步,业务系统有可能无法查询到最新的有效密钥,因此,业务系统在查询不到对应密钥的情况下,需要向登录系统同步当前密钥列表,以获得最新有效密钥。这时,返回执行步骤25,重新判断是否查询到对应的密钥。

步骤27、业务系统利用该密钥和cookie解密程序包解密登录cookie值。

其中,接入登录系统的业务系统,都需要将cookie解密程序包依赖进本业务系统中,该cookie解密程序包包括对cookie解密的程序。

步骤28、业务系统校验解密结果。

步骤29、业务系统判断是否通过校验,如果通过,则执行步骤30、业务系统处理正常的业务请求。如果不通过,则返回执行步骤20。

由此,完成了本发明优选实施例的登录验证方法。

基于同样的发明构思,本发明公开了一种分布式系统,结构示意图如图3所示。该分布式系统包括:

登录系统301,在验证客户端的账号密码成功后,采用密钥列表中最高版本的有效密钥生成带有该最高版本号的登录cookie值,并将所述登录cookie值返回给客户端;

业务系统302,接收到客户端携带有所述登录cookie值的业务请求后,获取登录cookie值的密钥版本,通过所述密钥版本在自身保存的密钥列表中 查询对应的密钥;利用该密钥解密登录cookie值,在校验解密结果合法后,处理正常的业务请求。

所述登录系统301采用了实时修改的密钥列表,该密钥列表包括多个密钥值,每个密钥值对应有密钥状态和密钥版本。

所述业务系统302启动后,还用于定时同步登录系统当前密钥列表。

所述业务系统302通过所述密钥版本在自身保存的密钥列表中查询对应的密钥,如果查找不到对应的密钥,还用于:向登录系统同步当前密钥列表。

所述业务系统302在启动后还加载有用于对登录cookie值进行解密的cookie解密程序包,所述业务系统利用密钥和所述cookie解密程序包解密登录cookie值。

本发明的有益效果在于:

一、本方案既可以防止恶意人员获取密钥进行cookie破解、伪造等操作,又可以进行系统安全的提升,可以定时进行cookie过期、失效操作,对老的cookie进行失效操作,保持系统的登录安全。

二、采用业务系统定时获取密钥列表、密钥版本管理、密钥过期失效等方式。对登录密钥进行有效的管理,保证登录系统的安全性和可控性。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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