一种身份信息的认证方法、服务器、客户端及系统
技术领域
本发明涉及计算机技术领域,具体涉及一种身份信息的认证方法、服务器、客户端及系统。
背景技术
随着互联网技术的发展,目前市场上涌现出各式各样的应用软件。在使用应用软件的过程中,客户端与服务器之间需要完成身份信息的认证。
目前客户端和服务器之间的认证方式为:当用户使用客户端第一次通过账号和密码向服务器请求登录后,服务器生成一个令牌(Token)并将该令牌反馈给客户端,之后客户端每次向服务器进行数据请求时,只需要携带该令牌而不需要账号信息即可完成数据请求。但是一方面,将令牌作为认证的唯一标识,当攻击者截获到令牌时,可通过令牌伪造数据请求从而窃取服务器的数据。另一方面,当用户由于各种原因泄露账号和密码时,攻击者可利用窃取得到的账号和密码登录和窃取服务器的数据。
因此,目前客户端和服务器之间的认证方式的安全性较差。
发明内容
有鉴于此,本发明实施例提供一种身份信息的认证方法、服务器、客户端及系统,以解决目前认证方式存在的安全性较差的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种身份信息的认证方法,应用于服务器,所述方法包括:
接收客户端发送的登录请求后,生成第一公钥和第一私钥,并将所述第一公钥发送给所述客户端,使所述客户端生成第二公钥和第二私钥;
根据所述客户端反馈的所述第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定所述登录请求是否通过认证,其中,第一短时令牌为服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给所述客户端的,所述第一短时令牌的第一有效期为预先根据所述客户端的安全信任度设置,所述安全信任度根据所述用户身份信息或设备指纹信息确定;
若所述登录请求通过认证,更新所述第一短时令牌对应的所述第一随机数和所述第一有效期,生成第二短时令牌,并将所述第二短时令牌反馈给所述客户端,使所述客户端利用所述第二短时令牌替换所述第一短时令牌;
接收客户端发送的业务请求,并获取所述业务请求中所携带的所述第二短时令牌和第二客户端时间戳;
若所述第二客户端时间戳满足时间条件且所述第二短时令牌未过期,确定所述业务请求通过认证;
根据操作权限表和所述客户端的安全信任度确定所述客户端的操作权限,根据所述操作权限处理所述业务请求,所述操作权限对照表包括安全信任度和操作权限之间的对应关系。
优选的,所述根据所述客户端反馈的所述第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定所述登录请求是否通过认证,包括:
接收所述客户端反馈的第一签名,所述第一签名由所述客户端利用所述第一公钥对所述第二公钥、用户名、第一客户端时间戳和第二签名加密得到,所述第二签名由所述客户端利用预设加密算法对第一短时令牌和所述第一客户端时间戳加密得到;
利用所述第一私钥对所述第一签名进行解密,得到所述第二公钥、所述用户名、所述第一客户端时间戳和所述第二签名;
若第一服务器时间戳与所述第一客户端时间戳的差值大于等于第一时间阈值,确定所述登录请求未通过认证;
若所述第一服务器时间戳与所述第一客户端时间戳的差值小于所述第一时间阈值,根据所述用户名确定对应的密码和设备ID;
利用所述第一公钥对所述第二公钥、所述设备ID、所述第一客户端时间戳和所述第二签名加密,得到第三签名;
若所述第三签名与所述第一签名校验一致,确定所述登录请求通过认证。
优选的,所述将所述第二短时令牌反馈给所述客户端,包括:
利用所述第二公钥对所述第二短时令牌进行加密,得到第四签名;
将所述第四签名反馈给所述客户端,使所述客户端利用所述第二私钥对所述第四签名进行解密得到所述第二短时令牌。
优选的,所述接收客户端发送的业务请求,并获取所述业务请求中所携带的所述第二短时令牌和第二客户端时间戳,包括:
接收所述客户端发送的携带第五签名的业务请求,所述第五签名由所述客户端根据所述第一公钥对第六签名和所述第二客户端时间戳加密得到,所述第六签名由所述客户端根据预设加密算法对所述第二短时令牌和所述第二客户端时间戳加密得到;
利用所述第一私钥对所述第五签名进行解密,得到所述第六签名和所述第二客户端时间戳;
利用所述预设加密算法对所述第六签名进行解密,得到所述第二短时令牌。
优选的,所述若所述第二客户端时间戳满足时间条件且所述第二短时令牌未过期,确定所述业务请求通过认证,包括:
若第二服务器时间戳与所述第二客户端时间戳的差值小于第二时间阈值,且根据第二有效期确定所述第二短时令牌未过期,确定所述业务请求通过认证。
优选的,还包括:
若所述第二客户端时间戳满足时间条件且所述第二短时令牌过期,更新所述第二短时令牌对应的第二随机数和第二有效期,生成第三短时令牌;
将所述第三短时令牌反馈给所述客户端,使所述客户端发送携带所述第三短时令牌和第三客户端时间戳的业务请求,返回执行接收业务请求这一步骤。
本发明实施例第二方面公开一种身份信息的认证方法,应用于客户端,所述方法包括:
向服务器发送登录请求,并接收所述服务器反馈的第一公钥,所述第一公钥和第一私钥由所述服务器生成;
生成第二公钥和第二私钥;
将所述第二公钥、用户名、第一客户端时间戳和第一短时令牌发送给所述服务器,使所述服务器确定所述登录请求是否通过认证,其中,第一短时令牌为所述服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给客户端的,所述第一短时令牌的第一有效期为预先根据所述客户端的安全信任度设置,所述安全信任度根据所述用户身份信息或设备指纹信息确定;
接收所述服务器反馈的第二短时令牌,并利用所述第二短时令牌替换所述第一短时令牌,确定所述登录请求通过认证,所述第二短时令牌由所述服务器更新所述第一短时令牌对应的所述第一随机数和所述第一有效期生成;
向所述服务器发送至少携带所述第二短时令牌和第二客户端时间戳的业务请求,使所述服务器根据所述第二短时令牌和所述第二客户端时间戳,确定所述业务请求是否通过认证,以及使所述服务器根据所述客户端的安全信任度处理所述业务请求。
优选的,所述将所述第二公钥、用户名、第一客户端时间戳和第一短时令牌发送给所述服务器,包括:
利用预设加密算法对第一短时令牌和第一客户端时间戳进行加密,得到第二签名;
利用所述第一公钥,对所述第二公钥、用户名、所述第一客户端时间戳和所述第二签名进行加密,得到第一签名;
将所述第一签名发送给所述服务器,使所述服务器利用所述第一私钥对所述第一签名进行解密,得到所述第二公钥、所述用户名、所述第一客户端时间戳和所述第二签名。
优选的,所述接收所述服务器反馈的第二短时令牌,包括:
接收所述服务器反馈的第四签名,所述第四签名由所述服务器根据所述第二公钥对第二短时令牌加密得到;
利用所述第二私钥对所述第四签名进行解密,得到所述第二短时令牌。
优选的,所述向所述服务器发送至少携带所述第二短时令牌和第二客户端时间戳的业务请求,包括:
利用预设加密算法,对所述第二短时令牌和第二客户端时间戳进行加密,得到第六签名;
利用所述第一公钥对所述第六签名和所述第二客户端时间戳进行加密,得到第五签名;
将携带所述第五签名的业务请求发送给所述服务器,使所述服务器基于所述第一私钥和所述预设加密算法对所述第五签名进行解密,得到所述第二短时令牌和所述第二客户端时间戳。
优选的,向所述服务器发送至少携带所述第二短时令牌和第二客户端时间戳的业务请求之后,还包括:
接收所述服务器反馈的第三短时令牌,所述第三短时令牌由所述服务器更新所述第二短时令牌对应的第二随机数和第二有效期生成;
向所述服务器发送至少携带所述第三短时令牌和第三客户端时间戳的业务请求。
本发明实施例第三方面公开一种服务器,所述服务器包括:
第一处理单元,用于接收客户端发送的登录请求后,生成第一公钥和第一私钥,并将所述第一公钥发送给所述客户端,使所述客户端生成第二公钥和第二私钥;
确定单元,用于根据所述客户端反馈的所述第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定所述登录请求是否通过认证,其中,第一短时令牌为服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给所述客户端的,所述第一短时令牌的第一有效期为预先根据所述客户端的安全信任度设置,所述安全信任度根据所述用户身份信息或设备指纹信息确定;
更新反馈单元,用于若所述登录请求通过认证,更新所述第一短时令牌对应的所述第一随机数和所述第一有效期,生成第二短时令牌,并将所述第二短时令牌反馈给所述客户端,使所述客户端利用所述第二短时令牌替换所述第一短时令牌;
第二处理单元,用于接收客户端发送的业务请求,并获取所述业务请求中所携带的所述第二短时令牌和第二客户端时间戳,若所述第二客户端时间戳满足时间条件且所述第二短时令牌未过期,确定所述业务请求通过认证;
第三处理单元,用于根据操作权限表和所述客户端的安全信任度确定所述客户端的操作权限,根据所述操作权限处理所述业务请求,所述操作权限对照表包括安全信任度和操作权限之间的对应关系。
本发明实施例第四方面公开一种客户端,所述客户端包括:
通信单元,用于向服务器发送登录请求,并接收所述服务器反馈的第一公钥,所述第一公钥和第一私钥由所述服务器生成;
生成单元,用于生成第二公钥和第二私钥;
第一发送单元,用于将所述第二公钥、用户名、第一客户端时间戳和第一短时令牌发送给所述服务器,使所述服务器确定所述登录请求是否通过认证,其中,第一短时令牌为所述服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给客户端的,所述第一短时令牌的第一有效期为预先根据所述客户端的安全信任度设置,所述安全信任度根据所述用户身份信息或设备指纹信息确定;
处理单元,用于接收所述服务器反馈的第二短时令牌,并利用所述第二短时令牌替换所述第一短时令牌,确定所述登录请求通过认证,所述第二短时令牌由所述服务器更新所述第一短时令牌对应的所述第一随机数和所述第一有效期生成;
第二发送单元,用于向所述服务器发送至少携带所述第二短时令牌和第二客户端时间戳的业务请求,使所述服务器根据所述第二短时令牌和所述第二客户端时间戳,确定所述业务请求是否通过认证,以及使所述服务器根据所述客户端的安全信任度处理所述业务请求。
本发明实施例第五方面公开一种身份信息的认证系统,所述系统包括:本发明实施例第三方面公开的服务器和本发明实施例第四方面公开的客户端。
基于上述本发明实施例提供的一种身份信息的认证方法、服务器、客户端及系统,该方法为:服务器接收到客户端的登录请求后,生成第一公钥并将第一公钥发送给客户端。服务器根据客户端的第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定登录请求是否通过认证。若登录请求通过认证,将新生成的第二短时令牌反馈给客户端,第一短时令牌和第二短时令牌根据用户身份信息、设备指纹信息和相应随机数生成。客户端在向服务器发送业务请求时携带该第二短时令牌。若服务器确定业务请求通过认证,服务器根据预先确定的客户端的安全信任度确定客户端的操作权限,并根据操作权限处理业务请求。本方案中,服务器利用设备指纹信息生成短时令牌,在登录认证通过后刷新短时令牌,提高短时令牌的安全性。服务器和客户端之间进行通信时,客户端利用第一公钥对传输信息进行加密,服务器利用第二公钥对传输信息进行加密,防止攻击者截获所传输的信息,提高通信安全性。客户端的业务请求通过认证后,服务器通过安全信任度确定客户端的操作权限,并根据操作权限确定是否响应业务请求,实现动态授信的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种身份信息的认证系统的架构示意图;
图2为本发明实施例提供的一种身份信息的认证方法的流程图;
图3为本发明实施例提供的确定登录请求是否通过认证的流程图;
图4为本发明实施例提供的服务器将第二短时令牌反馈给客户端的流程图;
图5为本发明实施例提供的第二短时令牌和第二客户端时间戳的传输流程图;
图6为本发明实施例提供的一种服务器的结构框图;
图7为本发明实施例提供的一种客户端的结构框图;
图8为本发明实施例提供的一种身份信息的认证系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前客户端和服务器之间的认证方式,将令牌(Token)作为认证的唯一标识,当攻击者截获到令牌时,可通过令牌伪造数据请求从而窃取服务器的数据,并且当用户由于各种原因泄露账号和密码时,攻击者可利用窃取得到的账号和密码登录和窃取服务器的数据,也就是说,目前客户端和服务器之间的认证方式的安全性较差。
因此,本发明实施例提供一种身份信息的认证方法、服务器、客户端及系统,服务器利用设备指纹信息生成短时令牌,在登录认证通过后刷新短时令牌,以提高短时令牌的安全性。服务器和客户端之间进行通信时,客户端利用第一公钥对传输信息进行加密,服务器利用第二公钥对传输信息进行加密,防止攻击者截获所传输的信息,以提高通信安全性。
为更好理解以下本发明实施例中所示出的内容,对本发明实施例中所涉及的部分名词进行解释说明。
零信任安全框架:零信任安全框架是一种安全模型,其核心思想是不信任任何人或物。
设备指纹信息:利用设备指纹技术为每一个操作设备生成的全球唯一的设备ID,用于表示一个操作设备的唯一设备特征。生成设备指纹信息的方式有主动式生成方式、被动式生成方式和混合式生成方式三种方式,其中混合式生成由主动式生成方式的部分内容和被动式生成方式的部分内容混合构成。
安全信任度:是信任程度的定量表示,用于度量信任的大小。
令牌:在客户端和服务器的身份认证过程中,服务器使用一定规则生成的一个字符串,即该字符串为客户端进行业务请求的令牌。
为更好解释客户端和服务器之间的交互,通过图1示出的内容进行举例说明,需要说明的是,图1示出的内容仅用于举例说明。
参见图1,示出了本发明实施例提供的一种身份信息的认证系统的架构示意图,该认证系统中包括客户端和服务器端。
服务器端中包括用户注册装置、身份认证装置、信任度评价装置和动态授信装置,客户端的类别至少为:PC端、移动终端和设备端,服务器端中各个装置的功能如下说明。
用户注册装置:客户端在注册时,客户端将用户身份信息和设备指纹信息发送至用户注册装置,用户注册装置利用哈希加密算法,对用户身份信息和设备指纹信息进行处理得到短时令牌,并将该短时令牌反馈给客户端。
身份认证装置:客户端在向服务器发送登录请求时,服务器需要对客户端进行身份认证,即确定该登录请求是否通过认证。客户端将用户身份信息、自身的短时令牌和客户端时间戳以加密传输的方式发送给身份认证装置,身份认证装置利用前述接收到的信息对客户端进行身份认证。客户端通过身份认证之后,身份认证装置更新短时令牌,并以加密传输的方式将更新后的短时令牌发送给客户端。
同时,身份认证装置在更新短时令牌时,会根据客户端的安全信任度设置短时令牌的有效期。
信任度评价装置:通过用户身份信息和设备指纹信息,建立客户端的用户与设备的安全信任等级,不同安全信任等级对应不同的安全信任度。
动态授信装置:根据零信任安全框架,为在服务器注册的客户端的用户设置最小操作权限。随着用户不断使用客户端的过程中,根据安全信任度的变化来动态调整操作权限。
也就是说,客户端向服务器发送业务请求并且该业务请求通过认证之后,动态授信装置需根据安全信任度确定操作权限,并在操作权限满足业务请求的前提下,响应(执行)业务请求,若操作权限不满足业务请求,则不执行该业务请求。
需要说明的是,上述图1中的内容仅用于举例说明,本发明实施例所提供的一种身份信息的认证方法、服务器、客户端及系统的具体内容,详见以下说明。
参见图2,示出了本发明实施例提供的一种身份信息的认证方法的流程图,该认证方法包括以下步骤:
步骤S201:客户端向服务器发送登录请求。
需要说明的是,客户端预先在服务器完成注册,客户端在注册时,将用户身份信息和设备指纹信息发送给服务器,服务器进行相应审核并且在审核通过后,服务器利用户身份信息、设备指纹信息和随机数生成短时令牌,并将该短时令牌发送给客户端。
服务器生成短时令牌的方式如下:
服务器获取用户身份信息
,服务器从设备指纹信息中提取设备序列号ID或移动设备序列号(Mobile Equipment Identifier,MEID),提取设备国际身份码(International Mobile Equipment Identity,IMEI)和国际用户识别码(InternationalMobile Subscriber Identity,IMSI),将前述获取得到的设备序列号ID、MEID、IMEI和IMSI作为字符串T=Generate(ID/MEID,IMEI,IMSI)。
服务器采集随机数Random,并利用哈希加密算法,计算该随机数的哈希值,如公式(1)。
利用哈希加密算法,计算
,T和
的哈希值,如公式(2)。
利用哈希加密算法计算R的哈希值,R的哈希值即为短时令牌,如公式(3)。
通过上述各个公式中的内容可知,生成短时令牌的过程均由服务器完成,不需要借助其它设备协助,保证了短时令牌的私密性。服务器利用随机数生成短时令牌,保证了短时令牌的随机性。同时,服务器利用用户身份信息、设备指纹信息和随机数生成短时令牌,使短时令牌、用户身份信息和设备之间完全绑定,保证用户和短时令牌的唯一性。
在具体实现步骤S201的过程中,需要说明的是,客户端向服务器发送登录请求时,用户需要输入用户名和密码。
步骤S202:服务器生成第一公钥和第一私钥,服务器将第一公钥发送给客户端。
在具体实现步骤S202的过程中,服务器接收到客户端发送的登录请求后,服务器利用RSA(RSA algorithm)生成第一公钥和第一私钥,服务器将第一私钥保存在服务器本地内存中,并将第一公钥发送给客户端。
需要说明的是,服务器也可采用其它算法生成第一公钥和第一私钥,在此不做具体限定。
步骤S203:客户端生成第二公钥和第二私钥。
在具体实现步骤S203的过程中,客户端接收到服务器发送的第一公钥后,利用RSA算法生成第二公钥和第二私钥,客户端将第二私钥保存在本地内存中。
步骤S204:客户端将第二公钥、用户名、第一客户端时间戳和第一短时令牌发送给服务器。
需要说明的是,服务器预先根据用户身份信息、设备指纹信息和第一随机数生成第一短时令牌,服务器根据客户端的安全信任度设置第一短时令牌的第一有效期,服务器将第一短时令牌发送给客户端。
需要说明的是,服务器生成第一短时令牌的方式可参见上述步骤S201中的内容,在此不再赘述。
进一步需要说明的是,服务器根据用户身份信息或设备指纹信息确定客户端的安全信任度,由前述内容可知,在设置短时令牌的有效期时,不同的安全信任度对应不同的有效期。
例如:第1次生成客户端对应的短时令牌时,将该短时令牌的有效期设置为默认值(7天)。随着使用客户端的用户的安全信任度的提升,在下次设置短时令牌的有效期时,将有效期设置为10天。
可以理解的是,建立客户端的用户和设备的安全信任等级,根据该用户或设备的安全信任等级确定对应的安全信任度。具体建立用户和设备的安全信任等级的方式如下:
建立用户的安全信任等级方式:根据业务场景的使用需求建立用户的安全信任等级。新注册的用户或者业务使用率低于第一使用率阈值的用户定义为新用户,业务使用率在第一使用率阈值至第二使用率阈值之间的用户定义为普通用户,业务使用率在第二使用率阈值至第三使用率阈值之间的用户定义为种子用户,业务使用率大于第三使用率阈值且对业务有功能需求的用户定义为核心用户。
其中,第三使用率阈值大于第二使用率阈值,第二使用率阈值大于第一使用率阈值。
也就是说,为不同安全信任等级的用户设置不同的安全信任度,其中新用户的安全信任度最低,核心用户的安全信任度最高。并且随着用户对于业务的使用率的提升,用户的安全信任等级也会随着变化,例如随着新用户的业务使用率的提升至第一使用率阈值至第二使用率阈值之间,新用户的安全信任等级会提升为普通用户。
建立设备的安全信任等级方式:根据设备的种类和设备破坏后对业务系统的影响,确定设备的安全等级,根据安全等级将设备分为四类,分别为一般设备、主要设备、重点设备和机密设备。其中,对安全无要求且对接非安全业务的设备定义为一般设备,具有普通安全要求的业务系统所使用的设备定义为主要设备,具有高标准安全要求且连接公司重要业务系统的设备定义为重点设备,承载公司核心业务且位于核心关键节点的设备定义为核心设备。
也就是说,不同安全信任等级的设备对应不同的安全信任度,其中一般设备的安全信任度最低,核心设备的安全信任度最高。
可以理解的是,通过采集用户身份信息、用户使用客户端的频率等行为信息,以及采集用户的设备IP和位置特征等用户轨迹信息,建立用户和设备的安全信任等级,当用户或设备的安全信任等级发生变化时,安全信任度也会发生相应的变化。
在具体实现步骤S204的过程中,客户端利用第一公钥和RSA算法,对第二公钥、用户名、第一客户端时间戳和第一短时令牌进行加密,并将加密后的第二公钥、用户名、第一客户端时间戳和第一短时令牌反馈给服务器。
步骤S205:服务器根据第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定登录请求是否通过认证。若登录请求通过认证,执行步骤S206,若登录请求未通过认证,向客户端反馈指示登录请求未通过认证的登录错误信息。
在具体实现步骤S205的过程中,服务器利用第一私钥,对加密后的第二公钥、用户名、第一客户端时间戳和第一短时令牌进行解密,得到第二公钥、用户名、第一客户端时间戳和第一短时令牌。
服务器利用第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定登录请求是否通过认证。
步骤S206:服务器更新第一短时令牌对应的第一随机数和第一有效期,生成第二短时令牌,并将第二短时令牌反馈给客户端。
在具体实现步骤S206的过程中,可以理解的是,服务器是根据用户身份信息、设备指纹信息和随机数生成短时令牌。服务器更新第一短时令牌对应的第一随机数和第一有效期,生成第二短时令牌(refreshToken)。也就是说,服务器根据用户身份信息、设备指纹信息和第二随机数生成第二短时令牌,并设置第二短时令牌的第二有效期。
具体生成第二短时令牌的过程,可参见上述步骤S201中的内容,在此不再进行赘述。
服务器生成第二短时令牌后,将该第二短时令牌反馈给客户端。
步骤S207:客户端利用第二短时令牌替换第一短时令牌。
在具体实现步骤S207的过程中,客户端接收到第二短时令牌时,确定登录请求通过认证。客户端将第二短时令牌保存到本地内存中,替换掉原先保存的第一短时令牌。
步骤S208:客户端向服务器发送至少携带第二短时令牌和第二客户端时间戳的业务请求。
在具体实现步骤S208的过程中,客户端根据第一公钥和RSA算法,对第二短时令牌和第二客户端时间戳进行加密,并将携带加密后的第二短时令牌和第二客户端的业务请求发送至服务器。
步骤S209:服务器获取业务请求中所携带的第二短时令牌和第二客户端时间戳。
在具体实现步骤S209的过程中,服务器利用第一私钥,对加密后的第二短时令牌和第二客户端时间戳进行解密,得到第二短时令牌和第二客户端时间戳。
步骤S210:服务器确定业务请求是否通过认证,若业务请求通过认证,执行步骤S211,若业务请求未通过认证,向客户端反馈指示需重新登录的重新登录信息。
在具体实现步骤S210的过程中,服务器确定第二客户端时间戳是否满足时间条件,若第二客户端时间戳不满足时间条件,服务器向客户端反馈指示需重新登录的重新登录信息。
时间条件是指:第二服务器时间戳与第二客户端时间戳的差值小于第二时间阈值。
若第二服务器时间戳与第二客户端时间戳的差值小于第二时间阈值,且根据第二有效期确定第二短时令牌未过期,服务器确定业务请求通过认证。
优选的,若第二客户端时间戳满足时间条件且第二短时令牌过期,服务器更新第二短时令牌对应的第二随机数和第二有效期,生成第三短时令牌。
服务器将第三短时令牌反馈给客户端,客户端向服务器发送携带第三短时令牌和第三客户端时间戳的业务请求。也就是说,返回执行步骤S209,将步骤S209中的第二短时令牌和第二客户端时间戳替换为第三短时令牌和第三客户端时间戳。
若第三服务器时间戳与第三客户端时间戳的差值小于第二时间阈值,且根据第三短时令牌的第三有效期确定该第三短时令牌过期,服务器向客户端反馈指示需重新登录的重新登录信息。
若第三服务器时间戳与第三客户端时间戳的差值小于第二时间阈值,且根据第三短时令牌的第三有效期确定该第三短时令牌未过期,执行步骤S211。
步骤S211:服务器根据操作权限表和客户端的安全信任度确定客户端的操作权限。
在具体实现步骤S211的过程中,可以理解的是,预先设置安全信任度和操作权限之间的对应关系,得到操作权限对照表,即操作权限表中的安全信任度都有各自对应的操作权限。
服务器根据操作权限表和客户端的安全信任度确定客户端的操作权限。
步骤S212:服务器判断操作权限是否满足业务请求。若操作权限满足业务请求,响应业务请求,若操作权限不满足业务请求,向客户端反馈指示操作失败的操作失败信息。
需要说明的是,不同的操作权限所能满足的业务请求不同,在具体实现步骤S212的过程中,服务器判断操作权限是否满足业务请求。若操作权限满足业务请求,响应业务请求,若操作权限不满足业务请求,向客户端反馈指示操作失败的操作失败信息。
在本发明实施例中,服务器利用设备指纹信息生成短时令牌,在登录认证通过后刷新短时令牌,提高短时令牌的安全性。服务器和客户端之间进行通信时,客户端利用第一公钥对传输信息进行加密,服务器利用第二公钥对传输信息进行加密,防止攻击者截获所传输的信息,提高通信安全性。客户端的业务请求通过认证后,服务器通过安全信任度确定客户端的操作权限,并根据操作权限确定是否响应业务请求,实现动态授信的需求。
上述本发明实施例图2步骤S205中涉及的确定登录请求是否通过认证的过程,参见图3,示出了本发明实施例提供的确定登录请求是否通过认证的流程图,包括以下步骤:
步骤S301:服务器接收客户端反馈的第一签名(sign)。
需要说明的是,客户端在接收到第一公钥时,客户端对第一短时令牌和第一客户端时间戳进行拼接后使用预设加密算法加密,例如利用SHA-1(Secure Hash Algorithm 1)对拼接后的第一短时令牌和第一客户端时间戳进行加密,得到第二签名。
客户端对第二公钥、用户名、第一客户端时间戳和第二签名进行拼接,并利用第一公钥和RSA算法对前述拼接后的结果进行加密,得到第一签名,客户端将第一签名反馈给服务器。
步骤S302:服务器利用第一私钥对第一签名进行解密,得到第二公钥、用户名、第一客户端时间戳和第二签名。
在具体实现步骤S302的过程中,由步骤S301的内容可知,客户端是利用第一公钥对第二公钥、用户名、第一客户端时间戳和第二签名进行加密得到第一签名的。因此,服务器利用第一私钥和RSA算法,对第一签名进行解密,得到第二公钥、用户名、第一客户端时间戳和第二签名。
步骤S303:若第一服务器时间戳与第一客户端时间戳的差值大于等于第一时间阈值,服务器确定登录请求未通过认证。
在具体实现步骤S303的过程中,服务器获取本地时间(第一服务器时间戳),将第一服务器时间戳与第一客户端时间戳进行比较,若第一服务器时间戳与第一客户端时间戳的差值大于等于第一时间阈值,服务器确定登录请求未通过认证。
步骤S304:若第一服务器时间戳与所述第一客户端时间戳的差值小于第一时间阈值,服务器根据用户名确定对应的密码和设备ID。
在具体实现步骤S304的过程中,若第一服务器时间戳与所述第一客户端时间戳的差值小于第一时间阈值,服务器根据用户名查询该用户名对应的密码和设备ID。
步骤S305:服务器利用第一公钥对第二公钥、设备ID、第一客户端时间戳和第二签名加密,得到第三签名。
在具体实现步骤S305的过程中,服务器重复上述步骤S301中客户端的加密过程,即利用第一公钥对第二公钥、设备ID、第一客户端时间戳和第二签名加密,得到第三签名。
可以理解的是,服务器和客户端的加密过程和加密方法一致,服务器比较第三标签和第一标签,若第三标签和第一标签校验一致,即表明第一标签中的内容与第三标签中的内容一致。也就是说,确定第一标签中的内容通过认证,即服务器确定登录请求通过认证。
步骤S306:若第三签名与第一签名校验一致,服务器确定登录请求通过认证。
在本发明实施例中,客户端向服务器传输信息时,客户端利用第一公钥对传输信息进行加密,服务器获取传输信息后利用第一私钥解密,防止攻击者截获所传输的信息,从而提高通信安全性。
本发明实施例图2步骤S206中涉及的服务器将第二短时令牌反馈给客户端的过程,参见图4,示出了本发明实施例提供的服务器将第二短时令牌反馈给客户端的流程图,包括以下步骤:
步骤S401:服务器利用第二公钥对第二短时令牌进行加密,得到第四签名。
由前述内容可知,第二公钥和第二私钥由客户端生成,客户端将第二公钥发送给服务器。
在具体实现步骤S401的过程中,服务器利用第二公钥和RSA算法,对第二短时令牌进行加密,得到第四签名。
步骤S402:服务器将第四签名反馈给客户端。
步骤S403:客户端利用第二私钥对第四签名进行解密,得到第二短时令牌。
在具体实现步骤S403的过程中,客户端利用第二私钥和RSA算法,对第四签名进行解密,得到第二短时令牌,客户端将第二短时令牌保存在本地内存中,替换掉第一短时令牌。
在本发明实施例中,服务器在登录认证通过后刷新第一短时令牌,将得到的第二短时令牌以加密传输的方式反馈给客户端,即提高短时令牌的安全性,又保证信息传输的安全性。
上述本发明实施例图2步骤S208和209中涉及的客户端向服务器发送至少携带第二短时令牌和第二客户端时间戳的业务请求的过程,参见图5,示出了本发明实施例提供的第二短时令牌和第二客户端时间戳的传输流程图,包括以下步骤:
步骤S501:客户端利用预设加密算法,对第二短时令牌和第二客户端时间戳进行加密,得到第六签名。
在具体实现步骤S501的过程中,当登录请求通过认证后,客户端在向服务器发送业务请求时,客户端将第二短时令牌和第二客户端时间戳拼接并利用预设加密算法(例如SHA-1算法)加密,得到第六签名。
步骤S502:客户端利用第一公钥对第六签名和第二客户端时间戳进行加密,得到第五签名。
在具体实现步骤S502的过程中,客户端利用第一公钥和RSA算法,对第六签名和第二客户端时间戳进行加密,得到第五签名。
步骤S503:客户端将携带第五签名的业务请求发送给服务器。
步骤S504:服务器利用第一私钥对第五签名进行解密,得到第六签名和第二客户端时间戳。
在具体实现步骤S504的过程中,服务器利用第一私钥和RSA算法对第五签名进行解密,得到第六签名和第二客户端时间戳。
步骤S505:服务器利用预设加密算法对第六签名进行解密,得到第二短时令牌。
在具体实现步骤S505的过程中,服务器利用预设加密算法(例如SHA-1算法)对第六签名进行解密,得到第二短时令牌。
在本发明实施例中,客户端向服务器传输信息时,客户端利用第一公钥对传输信息进行加密,服务器获取传输信息后利用第一私钥解密,防止攻击者截获所传输的信息,从而提高通信安全性。
与上述本发明实施例提供的一种身份信息的认证方法相对应,参见图6,本发明实施例还提供了一种服务器的结构框图,该服务器包括:第一处理单元601、确定单元602、更新反馈单元603、第二处理单元604和第三处理单元605;
第一处理单元601,用于接收客户端发送的登录请求后,生成第一公钥和第一私钥,并将第一公钥发送给客户端,使客户端生成第二公钥和第二私钥。
确定单元602,用于根据客户端反馈的第二公钥、用户名、第一客户端时间戳和第一短时令牌,确定登录请求是否通过认证,其中,第一短时令牌为服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给客户端的,第一短时令牌的第一有效期为预先根据客户端的安全信任度设置,安全信任度根据用户身份信息或设备指纹信息确定。
更新反馈单元603,用于若登录请求通过认证,更新第一短时令牌对应的第一随机数和第一有效期,生成第二短时令牌,并将第二短时令牌反馈给客户端,使客户端利用第二短时令牌替换第一短时令牌。
在具体实现中,更新反馈单元具体用于:利用第二公钥对第二短时令牌进行加密,得到第四签名,将第四签名反馈给客户端,使客户端利用第二私钥对第四签名进行解密得到第二短时令牌。
第二处理单元604,用于接收客户端发送的业务请求,并获取业务请求中所携带的第二短时令牌和第二客户端时间戳,若第二客户端时间戳满足时间条件且第二短时令牌未过期,确定业务请求通过认证。
在具体实现中,用于确定业务请求通过认证的第二处理单元604具体用于:若第二服务器时间戳与第二客户端时间戳的差值小于第二时间阈值,且根据第二有效期确定第二短时令牌未过期,确定业务请求通过认证。
优选的,第二处理单元604还用于:若第二客户端时间戳满足时间条件且所述第二短时令牌过期,更新第二短时令牌对应的第二随机数和第二有效期,生成第三短时令牌,将第三短时令牌反馈给客户端,使客户端发送携带第三短时令牌和第三客户端时间戳的业务请求,返回执行接收业务请求这一步骤。
第三处理单元605,用于根据操作权限表和客户端的安全信任度确定客户端的操作权限,根据操作权限处理业务请求,操作权限对照表包括安全信任度和操作权限之间的对应关系。
优选的,结合图6,确定单元602包括:接收模块、解密模块、第一处理模块和第二处理模块,各个模块的执行原理如下:
接收模块,用于接收客户端反馈的第一签名,第一签名由客户端利用第一公钥对第二公钥、用户名、第一客户端时间戳和第二签名加密得到,第二签名由客户端利用预设加密算法对第一短时令牌和第一客户端时间戳加密得到。
解密模块,用于利用第一私钥对第一签名进行解密,得到第二公钥、用户名、第一客户端时间戳和第二签名。
第一处理模块,用于若第一服务器时间戳与第一客户端时间戳的差值大于等于第一时间阈值,确定登录请求未通过认证;若第一服务器时间戳与第一客户端时间戳的差值小于第一时间阈值,根据用户名确定对应的密码和设备ID,执行第二处理模块。
第二处理模块,用于利用第一公钥对第二公钥、设备ID、第一客户端时间戳和第二签名加密,得到第三签名,若第三签名与第一签名校验一致,确定登录请求通过认证。
优选的,结合图6,第二处理单元604包括:接收模块和解密模块,各个模块的执行原理如下:
接收模块,用于接收客户端发送的携带第五签名的业务请求,第五签名由客户端根据第一公钥对第六签名和第二客户端时间戳加密得到,第六签名由客户端根据预设加密算法对第二短时令牌和第二客户端时间戳加密得到。
解密模块,用于利用第一私钥对第五签名进行解密,得到第六签名和第二客户端时间戳,利用预设加密算法对第六签名进行解密,得到第二短时令牌。
在本发明实施例中,服务器利用设备指纹信息生成短时令牌,在登录认证通过后刷新短时令牌,提高短时令牌的安全性。服务器和客户端之间进行通信时,客户端利用第一公钥对传输信息进行加密,服务器利用第二公钥对传输信息进行加密,防止攻击者截获所传输的信息,提高通信安全性。客户端的业务请求通过认证后,服务器通过安全信任度确定客户端的操作权限,并根据操作权限确定是否响应业务请求,实现动态授信的需求。
与上述本发明实施例提供的一种身份信息的认证方法相对应,参见图7,本发明实施例还提供一种客户端的结构框图,该客户端包括:通信单元701、生成单元702、第一发送单元703、处理单元704和第二发送单元705;
通信单元701,用于向服务器发送登录请求,并接收服务器反馈的第一公钥,第一公钥和第一私钥由所述服务器生成。
生成单元702,用于生成第二公钥和第二私钥。
第一发送单元703,用于将第二公钥、用户名、第一客户端时间戳和第一短时令牌发送给服务器,使服务器确定登录请求是否通过认证,其中,第一短时令牌为服务器根据用户身份信息、设备指纹信息和第一随机数生成并发送给客户端的,第一短时令牌的第一有效期为预先根据客户端的安全信任度设置,安全信任度根据用户身份信息或设备指纹信息确定。
处理单元704,用于接收服务器反馈的第二短时令牌,并利用第二短时令牌替换第一短时令牌,确定登录请求通过认证,第二短时令牌由服务器更新第一短时令牌对应的第一随机数和第一有效期生成。
在具体实现中,用于接收服务器反馈的第二短时令牌的处理单元704具体用于:接收服务器反馈的第四签名,第四签名由服务器根据第二公钥对第二短时令牌加密得到,利用第二私钥对第四签名进行解密,得到第二短时令牌。
第二发送单元705,用于向服务器发送至少携带第二短时令牌和第二客户端时间戳的业务请求,使服务器根据第二短时令牌和第二客户端时间戳,确定业务请求是否通过认证,以及使服务器根据客户端的安全信任度处理业务请求。
优选的,处理单元704还用于接收服务器反馈的第三短时令牌,第三短时令牌由服务器更新第二短时令牌对应的第二随机数和第二有效期生成。
相应的,第二发送单元705还用于:向服务器发送至少携带第三短时令牌和第三客户端时间戳的业务请求。
优选的,结合图7,第一发送单元703包括:加密模块和发送模块,各个模块的执行原理如下:
加密模块,用于利用预设加密算法对第一短时令牌和第一客户端时间戳进行加密,得到第二签名,利用第一公钥,对第二公钥、用户名、第一客户端时间戳和第二签名进行加密,得到第一签名。
发送模块,用于将第一签名发送给服务器,使服务器利用第一私钥对第一签名进行解密,得到第二公钥、用户名、第一客户端时间戳和第二签名。
优选的,结合图7,第二发送单元705包括:加密模块和发送模块,各个模块的执行原理如下:
加密模块,用于利用预设加密算法,对第二短时令牌和第二客户端时间戳进行加密,得到第六签名,利用第一公钥对第六签名和第二客户端时间戳进行加密,得到第五签名。
发送模块,用于将携带第五签名的业务请求发送给服务器,使服务器基于第一私钥和预设加密算法对第五签名进行解密,得到第二短时令牌和第二客户端时间戳。
在本发明实施例中,服务器利用设备指纹信息生成短时令牌,在登录认证通过后刷新短时令牌,提高短时令牌的安全性。服务器和客户端之间进行通信时,客户端利用第一公钥对传输信息进行加密,服务器利用第二公钥对传输信息进行加密,防止攻击者截获所传输的信息,提高通信安全性。客户端的业务请求通过认证后,服务器通过安全信任度确定客户端的操作权限,并根据操作权限确定是否响应业务请求,实现动态授信的需求。
与上述本发明实施例提供的一种身份信息的认证方法相对应,参见图8,本发明实施例还提供了一种身份信息的认证系统的结构框图,该认证系统包括:服务器801和客户端802。
服务器801的执行原理可参见上述本发明实施例图6中的内容,客户端802的执行原理可参见上述本发明实施例图7中的内容。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。