一种单点登录跳转链接的安全保护方法及系统

文档序号:190846 发布日期:2021-11-02 浏览:25次 >En<

阅读说明:本技术 一种单点登录跳转链接的安全保护方法及系统 (Security protection method and system for single sign-on jump link ) 是由 李宪状 颜秉珩 冯振 于 2021-06-24 设计创作,主要内容包括:本发明实施例提供了一种单点登录跳转链接的安全保护方法及系统,在第一软件系统向第二软件系统跳转前,使用usbKey账户认证方式对第一软件系统中的账户名进行校验;若通过所述账户名校验,则第一软件系统将单点登录跳转链接URL发送给第二软件系统;第二软件系统接收所述URL,对所述URL进行校验;若通过所述URL校验,则跳转进入第二软件系统。本发明所述方法和系统通过多个软件系统之间共同协商的校验码,使用共同的加解密方式,传递互信码,再加上时间差校验,将超过时间限制的URL请求过滤掉,再增加usbKey账户认证的方式,从而达到使软件系统免受未授权的非法访问。(The embodiment of the invention provides a security protection method and a security protection system for single sign-on jump links, wherein before a first software system jumps to a second software system, an account name in the first software system is verified in a usbKey account authentication mode; if the account name is verified, the first software system sends the single-point login skip link URL to the second software system; the second software system receives the URL and verifies the URL; and if the URL passes the verification, jumping to a second software system. The method and the system transmit the mutual communication code by using a common encryption and decryption mode through the common negotiated check code among a plurality of software systems, filter the URL request exceeding the time limit by adding the time difference check, and increase the mode of usbKey account authentication, thereby preventing the software systems from unauthorized illegal access.)

一种单点登录跳转链接的安全保护方法及系统

技术领域

本发明涉及软件系统技术领域,具体涉及一种单点登录跳转链接的安全保护方法及系统。

背景技术

在企业信息化发展的初期,企业内部的应用系统较少,单个用户只需记住一两个系统的登录密码即可,但是目前随着企业信息化的飞速发展,由于没有单个系统可以涵盖住企业内部的所有业务场景,用户接触的应用系统必然越来越多,一个企业拥有多套应用系统是非常常见的现象。由于这些不同的应用系统各有着自己独立的认证和授权体系,用户必须同时记住较多的登录密码。从安全的角度考虑,用户的这些密码应该不相同,但是用户的记性有限,设置的多个登录密码又几乎是相同的,这在安全性和方便性方面出现了矛盾。

在这种背景下,单点登录的概念应运而生。所谓单点登录,简单粗暴的解释就是,用户在一个应用系统登录之后,便可以使用这一身份在不同的应用系统中访问。其中一种方式是通过在跳转链接中携带认证信息来达到用户免登录的效果,例如以下两种携带形式:

http://10.89.78.21/sso?account=test&passwd=XXXXXXX

http://10.89.78.21/sso?token=XXXXXXX

第一种链接是在URL中传递用户名和密码的形式,目的系统在接收到上述两个参数之后,校验两个参数的合法性,若合法,则允许免登录进入目的系统。

第二种链接是在URL中传递令牌token,该令牌是目的系统颁发的,目的系统在接收到上述token后,校验token的合法性,若合法,则允许免登录进入目的系统。

但是,上述两种形式,如果链接泄露出去之后,任何人都可以拿着此链接不限时间无限次跳转系统。这对单点登录跳转链接的安全性造成很大隐患,使系统存在未授权的非法访问的风险。

发明内容

本发明实施例中提供了一种单点登录跳转链接的安全保护方法及系统,可以防止软件系统之间单点登录链接泄露出去之后不限时间无限次跳转的安全问题,保护了软件系统免受未授权的非法访问。

本发明实施例公开了如下技术方案:

本发明第一方面提供了一种单点登录跳转链接的安全保护方法,用户首先登录第一软件系统,所述方法包括:

在第一软件系统向第二软件系统跳转前,使用usbKey账户认证方式对第一软件系统中的账户名进行校验;

若通过所述账户名校验,则第一软件系统将单点登录跳转链接URL发送给第二软件系统;

第二软件系统接收所述URL,对所述URL进行校验;

若通过所述URL校验,则跳转进入第二软件系统。

进一步地,所述使用usbKey账户认证方式对第一软件系统中的账户名进行校验,具体为:

第一软件系统读取usbKey账户认证设备中的账户名,与第一软件系统的登录账户名比对是否相同。

进一步地,所述URL中包含三个参数,分别为第二软件系统的登录账户名、第二软件系统的登录密码密文和校验码,所述校验码中包含三个参数,分别为互信码incloudos、校验时间差Δt_max和第一软件系统生成URL时的时间戳。

进一步地,所述第二软件系统对所述URL进行校验,具体为:

对所述URL中的校验码进行一次校验;

若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

进一步地,对所述URL中的校验码进行一次校验,具体为:

使用加解密算法将校验码密文转化为校验码明文;

将校验码明文中的互信码incloudos发送到后台进行互信码校验;

若通过互信码校验,则读取校验码明文中第一软件系统生成URL时的时间戳,将所述时间戳与第二软件系统的当前时间做差值得出实际时间差Δt;

若Δt<=Δt_max,则通过所述一次校验。

进一步地,所述第一软件系统、第二软件系统和校验码使用的加解密算法为AES128位加解密算法,加解密算法中使用的加解密key为第一软件系统和第二软件系统预设的。

进一步地,所述第一软件系统和第二软件系统同时接入NTP服务器。

进一步地,当所述第一软件系统和第二软件系统的客户端所在的硬件设备连接usbKey账户认证设备时,用户才能登录第一软件系统和/或第二软件系统。

本发明第二方面提供了一种单点登录跳转链接的安全保护系统,包括:

第一软件系统,用于提供第一软件系统的登录账户名和登录密码;

usbKey账户认证设备,用于存储用户的账户名;

第一验证模块,通过usbKey账户认证设备对第一软件系统中的账户名进行校验;

跳转链接生成模块,用于生成单点登录跳转链接URL;

第二软件系统,用于接收所述URL;

第二验证模块,用于第二软件系统对所述URL进行校验。

进一步地,所述跳转链接生成模块生成单点登录跳转链接URL,具体包括:

账户生成单元,生成第二软件系统的登录账户名;

密码生成单元,生成第二软件系统的登录密码密文;

校验码生成单元,生成校验码密文,校验码密文中包含互信码incloudos、校验时间差Δt_max和第一软件系统生成URL时的时间戳。

进一步地,所述第二验证模块对所述URL进行校验的具体过程为:

对所述URL中的校验码进行一次校验;

若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

进一步地,对所述URL中的校验码进行一次校验,具体为:

使用加解密算法将校验码密文转化为校验码明文;

将校验码明文中的互信码incloudos发送到后台进行互信码校验;

若通过互信码校验,则读取校验码明文中第一软件系统生成URL时的时间戳,将所述时间戳与第二软件系统的当前时间做差值得出实际时间差Δt;

若Δt<=Δt_max,则通过所述一次校验。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明提供的单点登录跳转链接的安全保护方法,在第一软件系统向第二软件系统跳转前,通过第一软件系统读取usbKey账户认证设备中的账户名,与第一软件系统的登录账户名比对是否相同,来进行账户名校验。若通过账户名校验,第一软件系统将单点登录跳转链接URL发送给第二软件系统,第二软件系统接收所述URL,对所述URL进行校验。对所述URL进行校验包括:对所述URL中的校验码进行一次校验;若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。若通过所述URL校验,则跳转进入第二软件系统。本发明所述方法通过多个软件系统之间共同协商的校验码,使用共同的加解密方式,传递互信码,再加上时间差校验,将超过时间限制的URL请求过滤掉,再增加usbKey账户认证的方式,从而达到使软件系统免受未授权的非法访问。

本发明提供的单点登录跳转链接的安全保护系统,usbKey账户认证设备用于存储用户的账户名,第一验证模块通过usbKey账户认证设备对第一软件系统中的账户名进行校验;账户名校验通过后,第一软件系统将单点登录跳转链接URL发送给第二软件系统,第二验证模块对第二软件系统接收到的URL进行校验。第二验证模块对对所述URL进行校验包括:对所述URL中的校验码进行一次校验;若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。若通过所述URL校验,则跳转进入第二软件系统。本发明所述系统通过多个软件系统之间共同协商的校验码,使用共同的加解密方式,传递互信码,再加上时间差校验,将超过时间限制的URL请求过滤掉,再增加usbKey账户认证的方式,从而达到使软件系统免受未授权的非法访问。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一所述方法流程图;

图2为本发明实施例一对所述URL中的校验码进行一次校验的流程图;

图3为本发明实施例二所述系统结构框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

URL,Uniform Resource Locator,统一资源定位符,用来标识万维网上的某个资源。

AES加密算法,是一种国际上通用的对称加密算法,加密和解密都是用同一个key,key是任意自定义的字符串。

NTP服务器,网络时间协议(Network Time Protocol)服务器,被广泛应用于计算机时间同步领域,使不同的计算机保持时间的统一。

实施例一

如图1所示,为本发明实施例一所述方法流程图。

用户首先登录第一软件系统,方法包括:

在第一软件系统向第二软件系统跳转前,使用usbKey账户认证方式对第一软件系统中的账户名进行校验;

若通过账户名校验,则第一软件系统将单点登录跳转链接URL发送给第二软件系统;

第二软件系统接收URL,对URL进行校验;

若通过URL校验,则跳转进入第二软件系统。

第一软件系统和第二软件系统在登录前,必须同时接入NTP服务器,以保证系统时间一致。

当第一软件系统和第二软件系统的客户端所在的硬件设备连接usbKey账户认证设备时,用户才能登录第一软件系统和/或第二软件系统。

第一软件系统、第二软件系统和校验码使用的加解密算法为AES128位加解密算法,加解密算法中使用的加解密key为第一软件系统和第二软件系统预设的。

使用usbKey账户认证方式对第一软件系统中的账户名进行校验,具体为:

第一软件系统读取usbKey账户认证设备中的账户名,与第一软件系统的登录账户名比对是否相同。

第一软件系统读取当前usbKey账户认证设备中的账户名account,账户名account包含用户唯一标识,如果第一软件系统的登录账户名account与usbKey中的账户名account不一致,则限制A系统往B系统的跳转,如果一致,则通过账户名校验。

通过账户名校验后,第一软件系统将单点登录跳转链接URL发送给第二软件系统。

当从第一软件系统跳转到第二软件系统时,单点登录跳转链接URL需要携带校验码validator,该校验码validator是双方协商加密过的,URL示例如下:

http://10.89.78.21/sso?account=test&passwd=NFefsgJBqLx3rmxrEAZb0A==&validator=hdOY9wDG/Gl6Drt2oAF71C6ZoO14dCmPr5mTnORhm1g=

上述URL中包含三个参数,分别为第二软件系统的登录账户名、第二软件系统的登录密码密文和校验码validator。

第二软件系统的登录账户名在示例中为“test”,第二软件系统的登录密码密文使用AES128位加密算法进行加密,加密的key为第一软件系统和第二软件系统事先协商好的,例如登录密码密文为NFefsgJBqLx3rmxrEAZb0A==,登录密码明文为asdfghjkl,key为123456。

校验码validator中包含三个参数,分别为互信码incloudos、校验时间差Δt_max和第一软件系统生成URL时的时间戳。校验码validator,作为URL的一个参数,用来辅助性提升URL的安全性。

校验码validator使用AES128位加密算法进行加密,加解密key为第一软件系统和第二软件系统事先协商好的。例如示例中,校验码validator的密文为hdOY9wDG/Gl6Drt2oAF71C6ZoO14dCmPr5mTnORhm1g=,校验码validator的明文为incloudos+1622107256391+10min。validator由三部分组成:incloudos为互信码,由第一软件系统和第二软件系统事先协商好,1622107256391为第一软件系统生成URL时的时间戳,10min为校验时间差Δt_max,Δt_max也是第一软件系统和第二软件系统事先协商好的。

第二软件系统接收URL后,首先判断URL是否携带第二软件系统的登录账户名、第二软件系统的登录密码密文和校验码validator。这三个参数缺一不可,如果缺少参数,则直接重定向到第二软件系统的登录页面。

第二软件系统对URL进行校验,具体为:

对URL中的校验码validator进行一次校验;

若没有通过一次校验,则直接重定向到第二软件系统的登录页面;

若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

第二软件系统校验validator参数,使第一软件系统和第二软件系统事先协商好的AES128解密算法,加解密key为123456,例如解密出的validator为incloudos+1622107256391+10min。

如图2所示,为本发明实施例一对所述URL中的校验码validator进行一次校验的流程图,具体为:

使用AES128加解密算法将校验码密文转化为校验码明文;

将校验码明文中的互信码incloudos发送到后台进行互信码校验;判断incloudos是否与之前协商好的互信码一致,若不一致则直接重定向到第二软件系统的登录页面;

若通过互信码校验,则读取校验码明文中第一软件系统生成URL时的时间戳1622107256391,计算为2021-05-2717:20:56:391,将时间戳与第二软件系统的当前时间2021-05-2717:27:59:527做差值,得出实际时间差Δtt=7min3s136ms;

若Δt>Δt_max,则直接重定向到B系统的登录页面,若Δt<=Δt_max,则通过一次校验。

若通过一次校验,则使用第一软件系统和第二软件系统事先协商好的AES128解密算法,将第二软件系统的登录密码密文解密为登录密码明文,如示例解密出的登录密码明文为asdfghjkl。将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

如果没有通过校验,则直接重定向到第二软件系统的登录页面。如果通过校验,则顺利跳转进入第二软件系统,

本发明提供的单点登录跳转链接的安全保护方法,在第一软件系统向第二软件系统跳转前,通过第一软件系统读取usbKey账户认证设备中的账户名,与第一软件系统的登录账户名比对是否相同,来进行账户名校验。若通过账户名校验,第一软件系统将单点登录跳转链接URL发送给第二软件系统,第二软件系统接收所述URL,对所述URL进行校验。对所述URL进行校验包括:对所述URL中的校验码进行一次校验;若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。若通过所述URL校验,则跳转进入第二软件系统。本发明所述方法通过多个软件系统之间共同协商的校验码,使用共同的加解密方式,传递互信码,再加上时间差校验,将超过时间限制的URL请求过滤掉,再增加usbKey账户认证的方式,从而达到使软件系统免受未授权的非法访问。

实施例二

如图3所示,为本发明实施例二所述系统结构框图,所述系统包括:

第一软件系统,用于提供第一软件系统的登录账户名和登录密码;

usbKey账户认证设备,用于存储用户的账户名;

第一验证模块,通过usbKey账户认证设备对第一软件系统中的账户名进行校验;

跳转链接生成模块,用于生成单点登录跳转链接URL;

第二软件系统,用于接收URL;

第二验证模块,用于第二软件系统对URL进行校验。

第一软件系统和第二软件系统在登录前,必须同时接入NTP服务器,以保证系统时间一致。

当第一软件系统和第二软件系统的客户端所在的硬件设备连接usbKey账户认证设备时,用户才能登录第一软件系统和/或第二软件系统。

第一软件系统、第二软件系统和校验码使用的加解密算法为AES128位加解密算法,加解密算法中使用的加解密key为第一软件系统和第二软件系统预设的。

第一验证模块对第一软件系统中的账户名进行校验,具体为:

第一软件系统读取usbKey账户认证设备中的账户名,与第一软件系统的登录账户名比对是否相同。

第一软件系统读取当前usbKey账户认证设备中的账户名account,账户名account包含用户唯一标识,如果第一软件系统的登录账户名account与usbKey中的账户名account不一致,则限制A系统往B系统的跳转,如果一致,则通过账户名校验。

通过账户名校验后,第一软件系统将单点登录跳转链接URL发送给第二软件系统。

跳转链接生成模块生成单点登录跳转链接URL,具体包括:

账户生成单元,生成第二软件系统的登录账户名;

密码生成单元,生成第二软件系统的登录密码密文;

校验码生成单元,生成校验码密文,校验码密文中包含互信码incloudos、校验时间差Δt_max和第一软件系统生成URL时的时间戳。

当从第一软件系统跳转到第二软件系统时,单点登录跳转链接URL需要携带校验码validator,该校验码validator是双方协商加密过的,URL示例如下:

http://10.89.78.21/sso?account=test&passwd=NFefsgJBqLx3rmxrEAZb0A==&validator=hdOY9wDG/Gl6Drt2oAF71C6ZoO14dCmPr5mTnORhm1g=

上述URL中包含三个参数,分别为第二软件系统的登录账户名、第二软件系统的登录密码密文和校验码validator。

第二软件系统的登录账户名在示例中为“test”,第二软件系统的登录密码密文使用AES128位加密算法进行加密,加密的key为第一软件系统和第二软件系统事先协商好的,例如登录密码密文为NFefsgJBqLx3rmxrEAZb0A==,登录密码明文为asdfghjkl,key为123456。

校验码validator中包含三个参数,分别为互信码incloudos、校验时间差Δt_max和第一软件系统生成URL时的时间戳。校验码validator,作为URL的一个参数,用来辅助性提升URL的安全性。

校验码validator使用AES128位加密算法进行加密,加解密key为第一软件系统和第二软件系统事先协商好的。例如示例中,校验码validator的密文为hdOY9wDG/Gl6Drt2oAF71C6ZoO14dCmPr5mTnORhm1g=,校验码validator的明文为incloudos+1622107256391+10min。validator由三部分组成:incloudos为互信码,由第一软件系统和第二软件系统事先协商好,1622107256391为第一软件系统生成URL时的时间戳,10min为校验时间差Δt_max,Δt_max也是第一软件系统和第二软件系统事先协商好的。

第二软件系统接收URL后,首先判断URL是否携带第二软件系统的登录账户名、第二软件系统的登录密码密文和校验码validator。这三个参数缺一不可,如果缺少参数,则直接重定向到第二软件系统的登录页面。

第二验证模块对URL进行校验的具体过程为:

对URL中的校验码validator进行一次校验;

若没有通过一次校验,则直接重定向到第二软件系统的登录页面;

若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

第二软件系统校验validator参数,使第一软件系统和第二软件系统事先协商好的AES128解密算法,加解密key为123456,例如解密出的validator为incloudos+1622107256391+10min。

对URL中的校验码进行一次校验,具体为:

使用AES128加解密算法将校验码密文转化为校验码明文;

将校验码明文中的互信码incloudos发送到后台进行互信码校验;判断incloudos是否与之前协商好的互信码一致,若不一致则直接重定向到第二软件系统的登录页面;

若通过互信码校验,则读取校验码明文中第一软件系统生成URL时的时间戳1622107256391,计算为2021-05-2717:20:56:391,将时间戳与第二软件系统的当前时间2021-05-2717:27:59:527做差值,得出实际时间差Δtt=7min3s136ms;

若Δt>Δt_max,则直接重定向到B系统的登录页面,若Δt<=Δt_max,则通过一次校验。

若通过一次校验,则使用第一软件系统和第二软件系统事先协商好的AES128解密算法,将第二软件系统的登录密码密文解密为登录密码明文,如示例解密出的登录密码明文为asdfghjkl。将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。

如果没有通过校验,则直接重定向到第二软件系统的登录页面。如果通过校验,则顺利跳转进入第二软件系统,

本发明提供的单点登录跳转链接的安全保护系统,usbKey账户认证设备用于存储用户的账户名,第一验证模块通过usbKey账户认证设备对第一软件系统中的账户名进行校验;账户名校验通过后,第一软件系统将单点登录跳转链接URL发送给第二软件系统,第二验证模块对第二软件系统接收到的URL进行校验。第二验证模块对对所述URL进行校验包括:对所述URL中的校验码进行一次校验;若通过一次校验,则使用加解密算法将第二软件系统的登录密码密文解密为登录密码明文,将第二软件系统的登录账户名和登录密码明文发送到后台进行二次校验。若通过所述URL校验,则跳转进入第二软件系统。本发明所述系统通过多个软件系统之间共同协商的校验码,使用共同的加解密方式,传递互信码,再加上时间差校验,将超过时间限制的URL请求过滤掉,再增加usbKey账户认证的方式,从而达到使软件系统免受未授权的非法访问。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:互联网服务的用户再认证方法、系统和计算机设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类