CN108600268A - 一种应用于非授信认证的加密解密方法及非授信认证系统 - Google Patents

一种应用于非授信认证的加密解密方法及非授信认证系统 Download PDF

Info

Publication number
CN108600268A
CN108600268A CN201810439277.2A CN201810439277A CN108600268A CN 108600268 A CN108600268 A CN 108600268A CN 201810439277 A CN201810439277 A CN 201810439277A CN 108600268 A CN108600268 A CN 108600268A
Authority
CN
China
Prior art keywords
parameter
secret key
certification
credit
character string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810439277.2A
Other languages
English (en)
Other versions
CN108600268B (zh
Inventor
柳伟生
曾明
高原
孙强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Julong Co Ltd
Original Assignee
Julong Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Julong Co Ltd filed Critical Julong Co Ltd
Priority to CN201810439277.2A priority Critical patent/CN108600268B/zh
Publication of CN108600268A publication Critical patent/CN108600268A/zh
Application granted granted Critical
Publication of CN108600268B publication Critical patent/CN108600268B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种应用于非授信认证的加密解密方法及非授信认证系统,其特包括:非授信客户端向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;服务客户端收到来自非授信客户端的接口请求;根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败。本发明使用了对称与非对称加密算法混合加密与密文混淆等方式且使用请求参数与随机时间戳作为必须的加密参数,因此密文拥有动态随机的特性,密文不可读,不完全可逆,且不可复制,安全性更高,跨平台支持度高,可用性强能。

Description

一种应用于非授信认证的加密解密方法及非授信认证系统
技术领域
本发明涉及一种加密解密方法,具体地说是一种应用于非授信认证的加密解密方法及非授信认证系统。
背景技术
目前,随着互联网+的深入发展,软件系统已经深入到各个行业的不同场景之中,伴随而来的是不同系统之间的联系越发紧密。因此,各种云平台、组合系统、单点登录服务等应运而生,同平台系统间与系统间的通讯也越发频繁,从而对通讯的安全性和可靠性的要求就越发的高。其中,所述服务是指将原有的单体软件系统拆分为不同的功能组件,通过服务间的契约依赖关系,彼此通讯形成完整的系统应用,统一平台下的服务可以彼此间通信,也可以与平台外的非授信服务进行通讯,例如浏览器软件端、安卓系统软件端、苹果系统软件端、客户机系统软件端等。但是不管是哪种通讯模式,在获取执行通讯请求前,确保请求的安全性、可靠性都是必要的前提。
目前,现有技术中对于跨平台统一认证需求来说,通常使用单点登录解决方案,且认证系统需要一个认证服务端,且该服务端必须是独立部署的浏览器应用;所述服务端主要负责对用户的认证工作,与数据库交互并认证结束后以重定向的方式跳转至对应请求画面。认证客户端与系统客户端应用共同部署,以过滤的方式对受保护的资源进行认证保护。对于访问受保护资源的每个请求,客户端都会分析请求参数中是否包含用户凭证,如果没有,则进行客户端认证或服务端认证;通常在实际应用场景中,单点登录需要和权限控制框架结合使用,以ApacheShiro(JAVA安全框架)为例。安全框架使用用户会话缓存用户认证信息,也就表示客户端需要存储用户状态缓存。客户端安全框架使用缓存信息进行请求认证,同时提供了一组声明接口,可以对接口进行权限验证描述,由拦截器进行权限验证,通过后进行接口访问。
综上可知,对于跨平台统一认证需求来说,需要一个独立部署的认证服务端,那么这对于跨地域的分布式部署方案就存在认证服务端部署方式固定,网络约束性强,负载均衡或分布式方案复杂等弊端。非授信请求,意味着请求客户端与接收服务端并不在一个云平台之上,注册表中无法查询到客户端合法性。在很多实际场景中,很多跨平台应用如微信端、手机端、浏览器端等无法部署到统一的云平台之中。因此,非授信请求需要进行用户权限认证,例如用户基本信息、用户角色、用户资源权限等。而客户端结合权限控制框架,需要保存用户状态,缓存用户权限信息,不支持无状态会话。客户端接口之间通讯,没有对应的安全认证策略,只能将用户信息互相传递,采用用户认证的策略对应。由此衍生的问题就是现有的非授信认证系统的加密算法安全性低,容易被复制,不利于非授信客户端与客户服务端,因此有必要开发一种加密解密方法予以解决上述问题。
发明内容
鉴于现有的跨平台统一认证技术存在的弊端,本发明提供了一种应用于非授信认证的加密解密方法及非授信认证系统,以有效解决背景技术中所提及的技术问题。
一种应用于非授信认证的加密解密方法,其特征在于,包括如下步骤:
S1、非授信客户端向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;S2、服务客户端收到来自非授信客户端的接口请求;S3、根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败。
进一步的,在所述步骤S1中所述用户权限认证的过程包括如下步骤:
S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
进一步的,在所述步骤S13中所述认证秘钥令牌的获取过程包括如下步骤:
S131、调用所设定的第一参数模块获取接口请求动态参数以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其中,所述接口请求动态参数由所述非授信客户端提供即调用者准备并传入,所述用户权限凭证自所述用户权限信息中提取出;S132、在第一参数中添加时间戳;S133、对所述第一参数的属性顺序进行排序并进行字符串转化以得到参数字符串;S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥;S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串;S136、使用所述第一认证秘钥作为加密辅助参数对所述认证信息字符串进行对称加密以获得认证参数;S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串;S138、对所述加密字符串进行非对称加密以获得第二认证秘钥;S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中;S1311、将S1310中的第一参数返回至接口请求动态参数。
进一步的,非授信认证的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签;所述游客认证标签所对应的过滤认证算法包括如下步骤:(11)、获取请求参数中的服务秘钥;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(15)、所述服务编码为空,则获取请求参数中的认证秘钥;(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述已登入认证标签所对应的过滤认证算法包括如下步骤:(21)、获取请求参数中的服务秘钥;(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(25)、所述服务编码为空,则获取请求参数中的认证秘钥;(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述角色认证标签所对应的过滤认证算法包括如下步骤:(301)、获取请求参数中的服务秘钥;(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(305)、所述服务编码为空,则获取请求参数中的认证秘钥;(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(307)、判断认证信息是否为空,是则抛出异常认证失败;(308)、获取认证信息所对应的对象的角色数组的属性;(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;
所述权限认证标签所对应的过滤认证算法包括如下步骤:(401)、获取请求参数中的服务秘钥;(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(405)、所述服务编码为空,则获取请求参数中的认证秘钥;(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(407)、判断认证信息是否为空,是则抛出异常认证失败;(408)、获取认证信息所对应的对象的权限数组属性;(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过。
其中,所述授信服务端令牌解密算法即对秘钥令牌参数进行解密的解密方法包括如下步骤:S311、将预置的动态参数字典作为初始化参数,并获得其所述有序参数字典;S312、对所述有序参数字典进行字符串转换,得到参数字符串;S313、对所述参数字符串进行非对称加密,获得参数密文;S314、对所述参数密文进行字节数组转换,得到参数密文字节数组;S315、对所述秘钥令牌参数进行解码,得到秘钥令牌字节数组;S316、使用所述参数密文字节数组对所述秘钥令牌字节数组进行对称算法解密,得到服务编号字节数组;S317、对服务编号字节数组进行字符串转换,得到服务编号;所述非授信服务端令牌解密算法包括如下步骤:S3201、调用所设定的第三参数模块获取接口请求动态参数以形成第三参数,调用所设定的第四参数模块获取用户权限凭证以形成第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;S3202、在第四参数中添加非授信服务端所对应的当前时间戳;S3203、对所述第三参数的属性顺序进行排序并进行字符串转化以得到参数字符串;S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度至少大于7;
S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组;S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及动态时间戳即根据系统当前时间生成的字符串;S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串;S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
本发明的另一目的是要提供一种非授信认证系统,其特征在于,包括:
非授信客户端,其用于向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;
以及服务客户端,其用于收到来自非授信客户端的接口请求;并根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;并判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败。
进一步的,非授信客户端1中所述用户权限认证的过程包括如下步骤:
S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
进一步的,服务客户端中所述认证秘钥令牌的获取过程包括如下步骤:
S131、调用所设定的第一参数模块获取接口请求动态参数以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;S132、在第一参数中添加时间戳;S133、对所述第一参数的属性顺序进行排序并进行字符串转化以得到参数字符串;S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥;S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串;S136、使用所述第一认证秘钥作为加密辅助参数对所述认证信息字符串进行对称加密以获得认证参数;S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串;S138、对所述加密字符串进行非对称加密以获得第二认证秘钥;S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中。S1311、将S1310中的第一参数返回至接口请求动态参数。
进一步的,服务客户端的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签;进一步的,所述游客认证标签所对应的过滤认证算法包括如下步骤:(11)、获取请求参数中的服务秘钥;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(15)、所述服务编码为空,则获取请求参数中的认证秘钥;(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;所述已登入认证标签所对应的过滤认证算法包括如下步骤:(21)、获取请求参数中的服务秘钥;(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(25)、所述服务编码为空,则获取请求参数中的认证秘钥;(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;所述角色认证标签所对应的过滤认证算法包括如下步骤:(301)、获取请求参数中的服务秘钥;(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(305)、所述服务编码为空,则获取请求参数中的认证秘钥;(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(307)、判断认证信息是否为空,是则抛出异常认证失败;(308)、获取认证信息所对应的对象的角色数组的属性;(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;所述权限认证标签所对应的过滤认证算法包括如下步骤:(401)、获取请求参数中的服务秘钥;(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(405)、所述服务编码为空,则获取请求参数中的认证秘钥;(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(407)、判断认证信息是否为空,是则抛出异常认证失败;(408)、获取认证信息所对应的对象的权限数组属性;(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过;其中,所述授信服务端令牌解密算法即对秘钥令牌参数进行解密的解密方法包括如下步骤:S311、将预置的动态参数字典作为初始化参数,并获得其所述有序参数字典;S312、对所述有序参数字典进行字符串转换,得到参数字符串;S313、对所述参数字符串进行非对称加密,获得参数密文;S314、对所述参数密文进行字节数组转换,得到参数密文字节数组;S315、对所述秘钥令牌参数进行解码,得到秘钥令牌字节数组;S316、使用所述参数密文字节数组对所述秘钥令牌字节数组进行对称算法解密,得到服务编号字节数组;S317、对服务编号字节数组进行字符串转换,得到服务编号;所述非授信服务端令牌解密算法包括如下步骤:S3201、调用所设定的第三参数模块获取接口请求动态参数以形成第三参数,调用所设定的第四参数模块获取用户权限凭证以形成第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;S3202、在第四参数中添加非授信服务端所对应的当前时间戳;S3203、对所述第三参数的属性顺序进行排序并进行字符串转化以得到参数字符串;S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度至少大于7;S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组;S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及动态时间戳即根据系统当前时间生成的字符串;S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串;S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;
S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
本发明的有益效果:
面对互联网的开放性网络,本发明使用了对称与非对称加密算法混合加密与密文混淆等方式且使用请求参数与随机时间戳作为必须的加密参数,因此密文拥有动态随机的特性,密文不可读,不完全可逆,且不可复制,安全性更高,跨平台支持度高,可用性强能,可以提前对加密算法进行不可逆混淆与打包;同时使用注解式的声明过滤认证方式,对于服务端接口开发,认证参数的描述更清晰更简洁,并且与主要业务分离,代码的清晰度更好;其配合接口拦截技术,认证过程对于开发者更透明,简化了开发流程,提高了开发效率;因此,想要通过截取有效请求的密文,修改请求参数的方式,发起恶意的非法请求,是无法通过安全认证的机制的。
基于上述理由本发明可在非授信领域广泛推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明具体实施方式中非授信认证系统流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种应用于非授信认证的加密解密方法,其特征在于,包括如下步骤:
S1、非授信客户端向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;在所述步骤S1中所述用户权限认证的过程包括如下步骤:
S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
S2、服务客户端收到来自非授信客户端的接口请求;
S3、根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败;在所述步骤S13中所述认证秘钥令牌的获取过程包括如下步骤:S131、调用所设定的第一参数模块获取接口请求动态参数,其格式为Json格式以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其格式为Json格式,其中,所述接口请求动态参数由由调用者准备并传入,所述用户权限凭证自所述用户权限信息中提取出;S132、在第一参数中添加当前毫秒级时间戳;S133、对所述第一参数的属性顺序进行排序并进行Json格式字符串转化以得到参数字符串并删除字符串中的“与”字符;S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥,优选采用SHA-1算法;S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串并删除字符串首尾两端的双引号;S136、使用所述第一认证秘钥作为加密辅助参数(加密盐以及加密向量)对所述认证信息字符串进行AES的CBC对称加密以获得认证参数;S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串,优选采用SHA-1算法;S138、对所述加密字符串进行非对称加密以获得16位的第二认证秘钥,优选采用MD5算法;S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围,如11-99,随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中;S1311、将S1310中的Json格式第一参数返回至接口请求动态参数。
进一步优选的,非授信认证的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签;
所述游客认证标签所对应的过滤认证算法包括如下步骤:(11)、获取请求参数中的服务秘钥;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(15)、所述服务编码为空,则获取请求参数中的认证秘钥;(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述已登入认证标签所对应的过滤认证算法包括如下步骤:
(21)、获取请求参数中的服务秘钥;(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(25)、所述服务编码为空,则获取请求参数中的认证秘钥;(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述角色认证标签所对应的过滤认证算法包括如下步骤:
(301)、获取请求参数中的服务秘钥;(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(305)、所述服务编码为空,则获取请求参数中的认证秘钥;(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(307)、判断认证信息是否为空,是则抛出异常认证失败;(308)、获取认证信息所对应的对象的角色数组的属性;(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;
所述权限认证标签所对应的过滤认证算法包括如下步骤:
(401)、获取请求参数中的服务秘钥;(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(405)、所述服务编码为空,则获取请求参数中的认证秘钥;(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(407)、判断认证信息是否为空,是则抛出异常认证失败;(408)、获取认证信息所对应的对象的权限数组属性;(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过。
其中,所述授信服务端令牌解密算法即对秘钥令牌参数进行解密的解密方法包括如下步骤:
S311、将预置的动态参数字典作为初始化参数,并获得其所述有序参数字典;S312、对所述有序参数字典进行字符串转换,得到参数字符串;S313、对所述参数字符串进行非对称加密,获得参数密文;S314、对所述参数密文进行字节数组转换,得到参数密文字节数组;S315、对所述秘钥令牌参数进行解码,得到秘钥令牌字节数组;S316、使用所述参数密文字节数组对所述秘钥令牌字节数组进行对称算法解密,得到服务编号字节数组;S317、对服务编号字节数组进行字符串转换,得到服务编号;
所述非授信服务端令牌解密算法包括如下步骤:
S3201、调用所设定的第三参数模块获取接口请求动态参数以形成Json格式第三参数,调用所设定的第四参数模块获取用户权限凭证以形成Json格式第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;S3202、在第四参数中添加非授信服务端所对应的毫秒级时间戳;S3203、对所述第三参数的属性顺序进行排序并进行Json格式的字符串转化以得到参数字符串并删除字符串中的“与”字符;S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度16,,优选采用SHA-1算法;S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组,,优选采用SHA-1算法;S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及动态时间戳;S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串,优选采用SHA-1算法;S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
实施例2
一种非授信认证系统,其特征在于,包括:
非授信客户端,其用于向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;以及服务客户端,其用于收到来自非授信客户端的接口请求;并根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;并判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败;其中,非授信客户端1中所述用户权限认证的过程包括如下步骤:S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
服务客户端中所述认证秘钥令牌的获取过程包括如下步骤:
S131、调用所设定的第一参数模块获取接口请求动态参数,其格式为Json格式以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其格式为Json格式,其中,所述接口请求动态参数由由调用者准备并传入,所述用户权限凭证自所述用户权限信息中提取出;S132、在第一参数中添加当前毫秒级时间戳;S133、对所述第一参数的属性顺序进行排序并进行Json格式字符串转化以得到参数字符串并删除字符串中的“与”字符;S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥,优选采用SHA-1算法;S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串并删除字符串首尾两端的双引号;S136、使用所述第一认证秘钥作为加密辅助参数(加密盐以及加密向量)对所述认证信息字符串进行AES的CBC对称加密以获得认证参数;S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串,优选采用SHA-1算法;S138、对所述加密字符串进行非对称加密以获得16位的第二认证秘钥,优选采用MD5算法;S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围,如11-99,随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中;S1311、将S1310中的Json格式第一参数返回至接口请求动态参数。
服务客户端的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签。
所述游客认证标签所对应的过滤认证算法包括如下步骤:
(11)、获取请求参数中的服务秘钥;(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(15)、所述服务编码为空,则获取请求参数中的认证秘钥;(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述已登入认证标签所对应的过滤认证算法包括如下步骤:
(21)、获取请求参数中的服务秘钥;(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(25)、所述服务编码为空,则获取请求参数中的认证秘钥;(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述角色认证标签所对应的过滤认证算法包括如下步骤:
(301)、获取请求参数中的服务秘钥;(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(305)、所述服务编码为空,则获取请求参数中的认证秘钥;(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(307)、判断认证信息是否为空,是则抛出异常认证失败;(308)、获取认证信息所对应的对象的角色数组的属性;(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;
所述权限认证标签所对应的过滤认证算法包括如下步骤:
(401)、获取请求参数中的服务秘钥;(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;(405)、所述服务编码为空,则获取请求参数中的认证秘钥;(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;(407)、判断认证信息是否为空,是则抛出异常认证失败;(408)、获取认证信息所对应的对象的权限数组属性;(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过;其中,所述非授信服务端令牌解密算法包括如下步骤:
S3201、调用所设定的第三参数模块获取接口请求动态参数以形成Json格式第三参数,调用所设定的第四参数模块获取用户权限凭证以形成Json格式第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;S3202、在第四参数中添加非授信服务端所对应的毫秒级时间戳;S3203、对所述第三参数的属性顺序进行排序并进行Json格式的字符串转化以得到参数字符串并删除字符串中的“与”字符;S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度16,优选采用SHA-1算法;S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组,优选采用SHA-1算法;S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及根据系统当前时间生成的字符串;S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串,优选采用SHA-1算法;S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种应用于非授信认证的加密解密方法,其特征在于,包括如下步骤:
S1、非授信客户端向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;
S2、服务客户端收到来自非授信客户端的接口请求;
S3、根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败。
2.根据权利要求1所述的一种应用于非授信认证的加密解密方法,其特征在于:
在所述步骤S1中所述用户权限认证的过程包括如下步骤:
S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;
S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;
S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
3.根据权利要求2所述的一种应用于非授信认证的加密解密方法,其特征在于:
在所述步骤S13中所述认证秘钥令牌的获取过程包括如下步骤:
S131、调用所设定的第一参数模块获取接口请求动态参数以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;
S132、在第一参数中添加时间戳;
S133、对所述第一参数的属性顺序进行排序并进行字符串转化以得到参数字符串;
S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥;
S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串;
S136、使用所述第一认证秘钥作为加密辅助参数对所述认证信息字符串进行对称加密以获得认证参数;
S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串;
S138、对所述加密字符串进行非对称加密以获得第二认证秘钥;
S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;
S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中。
S1311、将S1310中的第一参数返回至接口请求动态参数。
4.根据权利要求1所述的一种应用于非授信认证的加密解密方法,其特征在于:
非授信认证的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签;所述游客认证标签所对应的过滤认证算法包括如下步骤:
(11)、获取请求参数中的服务秘钥;
(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;
(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(15)、所述服务编码为空,则获取请求参数中的认证秘钥;
(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述已登入认证标签所对应的过滤认证算法包括如下步骤:
(21)、获取请求参数中的服务秘钥;
(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(25)、所述服务编码为空,则获取请求参数中的认证秘钥;
(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述角色认证标签所对应的过滤认证算法包括如下步骤:
(301)、获取请求参数中的服务秘钥;
(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(305)、所述服务编码为空,则获取请求参数中的认证秘钥;
(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(307)、判断认证信息是否为空,是则抛出异常认证失败;
(308)、获取认证信息所对应的对象的角色数组的属性;
(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;
(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,
(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;
(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;
所述权限认证标签所对应的过滤认证算法包括如下步骤:
(401)、获取请求参数中的服务秘钥;
(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(405)、所述服务编码为空,则获取请求参数中的认证秘钥;
(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(407)、判断认证信息是否为空,是则抛出异常认证失败;
(408)、获取认证信息所对应的对象的权限数组属性;
(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;
(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,
(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;
(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过。
5.根据权利要求4所述的一种应用于非授信认证的加密解密方法,其特征在于:
所述授信服务端令牌解密算法即对秘钥令牌参数进行解密的解密方法包括如下步骤:
S311、将预置的动态参数字典作为初始化参数,并获得其所述有序参数字典;
S312、对所述有序参数字典进行字符串转换,得到参数字符串;
S313、对所述参数字符串进行非对称加密,获得参数密文;
S314、对所述参数密文进行字节数组转换,得到参数密文字节数组;
S315、对所述秘钥令牌参数进行解码,得到秘钥令牌字节数组;
S316、使用所述参数密文字节数组对所述秘钥令牌字节数组进行对称算法解密,得到服务编号字节数组;
S317、对服务编号字节数组进行字符串转换,得到服务编号;
所述非授信服务端令牌解密算法包括如下步骤:
S3201、调用所设定的第三参数模块获取接口请求动态参数以形成第三参数,调用所设定的第四参数模块获取用户权限凭证以形成第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;
S3202、在第四参数中添加非授信服务端所对应的当前时间戳;
S3203、对所述第三参数的属性顺序进行排序并进行字符串转化以得到参数字符串;
S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度至少大于7;
S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;
S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;
S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;
S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;
S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;
S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;
S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组;
S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;
S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及动态时间戳即根据系统当前时间生成的字符串;
S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串;
S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;
S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
6.一种非授信认证系统,其特征在于,包括:
非授信客户端,其用于向服务客户端发送接口请求,所述接口请求是经用户权限认证后所输出的接口请求参数;
以及服务客户端,其用于收到来自非授信客户端的接口请求;并根据所设定的被请求接口所对应的认证注解声明,触发对应的前置过滤器对接口请求进行过滤认证;并判断过滤认证是否成功,是则执行接口并返回结果,否则抛出异常认证失败。
7.根据权利要求6所述的非授信认证系统,其特征在于:
非授信客户端1中所述用户权限认证的过程包括如下步骤:
S11、提取所述非授信客户端所对应的用户认证信息,所述用户认证信息用于确定非授信客户端所对应的用户状态的基础信息,所述基础信息用于提供与所述非授信客户端相匹配的用户基本信息以及用户权限信息;在步骤S11之前还要构建与所述非授信客户端相匹配的用户状态数据结构,其中,所述用户状态数据结构用于为S3中过滤认证过程提供所需的用户状态信息,并与接口请求中的请求参数一起被整合成数据包向接受端发送,所述请求参数被写入有供服务端认证使用的认证秘钥以及服务秘钥;所述用户状态信息至少包括用户权限凭证、用户基本信息以及权限数据,所述用户权限凭证用于在无状态会话条件下获取用户登陆状态唯一标识即用户状态信息的关键词;所述权限数据包括角色编码数据与资源权限编码数据;
S12、验证当前所述接口请求所对应的用户权限是否与用户权限信息匹配,以确定所述非授信客户端是否具有调用当前所述接口请求中所包含被请求的接口的权限;
S13、在匹配的情况下,获取添加了认证秘钥令牌的接口请求参数。
8.根据权利要求6所述的非授信认证系统,其特征在于:
服务客户端中所述认证秘钥令牌的获取过程包括如下步骤:
S131、调用所设定的第一参数模块获取接口请求动态参数以形成第一参数,调用所设定的第二参数模块获取用户权限凭证以形成第二参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;
S132、在第一参数中添加时间戳;
S133、对所述第一参数的属性顺序进行排序并进行字符串转化以得到参数字符串;
S134、对所述参数字符串进行非对称加密并截取出第一认证秘钥;
S135、自所述第二参数中获取用户权限凭证并进行字符串转化以得到认证信息字符串;
S136、使用所述第一认证秘钥作为加密辅助参数对所述认证信息字符串进行对称加密以获得认证参数;
S137、合并所述认证信息字符串以及时间戳并进行非对称加密以获得加密字符串;
S138、对所述加密字符串进行非对称加密以获得第二认证秘钥;
S139、确认第二认证秘钥的秘钥长度并将第二认证秘钥插入到所述认证参数中以获得第一密文字符串,其中第二认证秘钥的插入位置是随机数所表示的索引位置,所述随机数是按照所设定的数值范围随机生成的任意整数值,所述秘钥长度的确认规则为当随机数超过第二认证秘钥的秘钥长度时,随机数设定为第二认证秘钥的秘钥长度;
S1310、将所述随机数与第二认证秘钥的秘钥长度写入到第一密文字符串中以获得第二密文字符串即所述认证秘钥令牌并将所述第二密文字符串写入到第一参数中。
S1311、将S1310中的第一参数返回至接口请求动态参数。
9.根据权利要求6所述的非授信认证系统,其特征在于:
服务客户端的前置过滤器对接口请求进行过滤认证的步骤包括:通过认证注解声明,基于请求接口所对应的注解认证标签确认前置过滤器所需执行的过滤认证算法,所述注解认证标签具有多种标签属性,每一种标签属性对应一种被预置在前置过滤器中的过滤认证算法,且每一所述请求接口均各自对应某一属性的注解认证标签;所述注解认证标签依据接口认证需求被定义为下述几种属性:其包括但不限于游客认证标签、已登入认证标签、角色认证标签以及权限认证标签。
10.根据权利要求9所述的非授信认证系统,其特征在于:
所述游客认证标签所对应的过滤认证算法包括如下步骤:
(11)、获取请求参数中的服务秘钥;
(12)、自所设定的接口参数字典中获取对应的服务编码并删除所述服务秘钥的属性信息;
(13)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(14)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(15)、所述服务编码为空,则获取请求参数中的认证秘钥;
(16)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(17)、判断所述认证信息是否为空或不包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述已登入认证标签所对应的过滤认证算法包括如下步骤:
(21)、获取请求参数中的服务秘钥;
(22)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(23)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(24)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(25)、所述服务编码为空,则获取请求参数中的认证秘钥;
(26)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(27)、判断认证信息是否为空,不空且认证信息包含动态凭证属性,则通过认证并终止;否则,抛出异常认证失败;
所述角色认证标签所对应的过滤认证算法包括如下步骤:
(301)、获取请求参数中的服务秘钥;
(302)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(303)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(304)、判断所述服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(305)、所述服务编码为空,则获取请求参数中的认证秘钥;
(306)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(307)、判断认证信息是否为空,是则抛出异常认证失败;
(308)、获取认证信息所对应的对象的角色数组的属性;
(309)、确定请求接口所对应的注解认证标签的属性,即允许通过的角色编码数组;
(310)、获取请求接口所对应的注解认证标签的逻辑条件属性,
(311)、若所述逻辑条件属性值为“并且”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若任意一个标签角色均不存在于用户角色数组中,则抛出异常认证失败;
(312)、若所述逻辑条件属性值为“或者”,则循环步骤(308)的标签角色数组与步骤(309)的用户角色数组,同时若没有一个标签角色与用户角色数组中的值一致,则抛出异常认证失败;否则,认证通过;
所述权限认证标签所对应的过滤认证算法包括如下步骤:
(401)、获取请求参数中的服务秘钥;
(402)、自所设定的接口参数字典中获取对应的服务编码实例并删除所述认证秘钥的属性信息;
(403)、判断所述服务秘钥是否为空,不空则执行授信服务端令牌解密算法,获得解密后的客户端的服务编码;
(404)、判断所述客户端服务编码是否为空,不空则判断所述服务编码是否存在于所设定的本地授信服务注册表中,若存在,则认证通过并终止;
(405)、所述服务编码为空,则获取请求参数中的认证秘钥;
(406)、基于非授信服务端令牌解密算法,对所述认证秘钥进行解密以获得解密后的认证信息;
(407)、判断认证信息是否为空,是则抛出异常认证失败;
(408)、获取认证信息所对应的对象的权限数组属性;
(409)、确定请求接口所对应的注解认证标签的属性,即允许通过的权限编码数组;
(410)、获取请求接口所对应的注解认证标签的逻辑条件属性,
(411)、若所述逻辑条件属性值为“并且”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若任意一个标签权限与用户权限匹配匹配,则抛出异常认证失败;
(412)、若所述逻辑条件属性值为“或者”,则循环步骤(408)的标签角色数组与步骤(409)的用户角色数组,同时若没有一个标签权限与用户权限匹配匹配,则抛出异常认证失败;否则,认证通过;其中,所述授信服务端令牌解密算法即对秘钥令牌参数进行解密的解密方法包括如下步骤:
S311、将预置的动态参数字典作为初始化参数,并获得其所述有序参数字典;
S312、对所述有序参数字典进行字符串转换,得到参数字符串;
S313、对所述参数字符串进行非对称加密,获得参数密文;
S314、对所述参数密文进行字节数组转换,得到参数密文字节数组;
S315、对所述秘钥令牌参数进行解码,得到秘钥令牌字节数组;
S316、使用所述参数密文字节数组对所述秘钥令牌字节数组进行对称算法解密,得到服务编号字节数组;
S317、对服务编号字节数组进行字符串转换,得到服务编号;
所述非授信服务端令牌解密算法包括如下步骤:
S3201、调用所设定的第三参数模块获取接口请求动态参数以形成第三参数,调用所设定的第四参数模块获取用户权限凭证以形成第四参数,其中,所述接口请求动态参数由所述非授信客户端提供,所述用户权限凭证自所述用户权限信息中提取出;
S3202、在第四参数中添加非授信服务端所对应的当前时间戳;
S3203、对所述第三参数的属性顺序进行排序并进行字符串转化以得到参数字符串;
S3204、对所述参数字符串进行非对称加密并自所述参数字符串中截取一定长度的字符串作为秘钥参数,其字符串长度至少大于7;
S3205、获取秘钥插入位置以及秘钥长度,其中所述秘钥插入位置通过截取第四参数中1至2索引位字符并转换为整数数字获得,所述秘钥长度通过截取第四参数中4至5索引位字符并转换为整数数字获得;
S3206、获取新的秘钥参数即通过截取第四参数中索引位7至字符串最后一位的索引位字符;
S3207、截取S3206中的新的秘钥参数以获得认证秘钥,其对应的截取位置依据所述秘钥插入位置确定,截取长度为S3205中的秘钥长度;
S3208、获得认证参数密文,即自S3206的秘钥参数中删除包含所述认证秘钥所对应的参数;
S3209、对秘钥参数进行字节数组转换以获得认证密文字节数组,对应的转换方法采用字节编码UTF-8;
S3210、对认证秘钥进行Base64解码,获得参数密文字节数组;
S3211、对所述认证密文字节数组进行对称算法解密并使用所述参数密文字节数组作为参数盐以获得认证信息字节数组;
S3212、对所述认证信息字节数组进行字符串转换获得认证信息字符串并进行Json对象实例转换进而获得认证信息,对应的转换方法采用字节编码UTF-8;
S3213、自所述认证信息中获取用户权限凭证参数即用户动态凭证以及动态时间戳即根据系统当前时间生成的字符串;
S3214、合并所述用户动态凭证以及动态时间戳所对应的字符串,并进行非对称加密以获得加密字符串;
S3215、对所述加密字符串再次进行非对称加密并自第一位字符开始截取加密后的一定长度的字符串以获得随机秘钥;
S3216、比较随机秘钥以及认证秘钥是否相同,是则认证通过并删除在第四参数中时间戳并返回更改后的第四参数;否则返回空,表示认证解密失败。
CN201810439277.2A 2018-05-09 2018-05-09 一种应用于非授信认证的加密解密方法及非授信认证系统 Active CN108600268B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810439277.2A CN108600268B (zh) 2018-05-09 2018-05-09 一种应用于非授信认证的加密解密方法及非授信认证系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810439277.2A CN108600268B (zh) 2018-05-09 2018-05-09 一种应用于非授信认证的加密解密方法及非授信认证系统

Publications (2)

Publication Number Publication Date
CN108600268A true CN108600268A (zh) 2018-09-28
CN108600268B CN108600268B (zh) 2020-09-22

Family

ID=63636760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810439277.2A Active CN108600268B (zh) 2018-05-09 2018-05-09 一种应用于非授信认证的加密解密方法及非授信认证系统

Country Status (1)

Country Link
CN (1) CN108600268B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921894A (zh) * 2019-02-13 2019-06-21 平安科技(深圳)有限公司 数据传输加密方法、装置及存储介质、服务器
CN111638467A (zh) * 2020-05-25 2020-09-08 中合动力(北京)新能源科技有限公司 识别可拆卸电池包与外置充电底座连接是否牢靠的方法
CN111740954A (zh) * 2020-05-18 2020-10-02 北京索德电气工业有限公司 电梯主控制器和电梯板卡通信加密方法
CN113553125A (zh) * 2020-04-26 2021-10-26 中移(成都)信息通信科技有限公司 可信应用程序的调用方法、装置、设备及计算机存储介质
CN113891314A (zh) * 2021-10-26 2022-01-04 海澜智云科技有限公司 一种电力预付费系统的安全保护方法
CN116055043A (zh) * 2023-02-06 2023-05-02 国家气象信息中心(中国气象局气象数据中心) 一种数据服务接口鉴权方法及接口网关系统
CN117235708A (zh) * 2023-11-13 2023-12-15 紫光同芯微电子有限公司 应用程序运行时的接口授权调用方法、装置、系统和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505309A (zh) * 2002-11-20 2004-06-16 安全地处理被用于基于web的资源访问的客户证书
US20080104615A1 (en) * 2006-11-01 2008-05-01 Microsoft Corporation Health integration platform api

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505309A (zh) * 2002-11-20 2004-06-16 安全地处理被用于基于web的资源访问的客户证书
US20080104615A1 (en) * 2006-11-01 2008-05-01 Microsoft Corporation Health integration platform api

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
C. PERERA, C. H. LIU, S. JAYAWARDENA AND M. CHEN: ""A Survey on Internet of Things From Industrial Market Perspective"", 《IEEE ACCESS》 *
翁云翔: ""Java安全框架Shiro在Web中的研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921894A (zh) * 2019-02-13 2019-06-21 平安科技(深圳)有限公司 数据传输加密方法、装置及存储介质、服务器
CN113553125A (zh) * 2020-04-26 2021-10-26 中移(成都)信息通信科技有限公司 可信应用程序的调用方法、装置、设备及计算机存储介质
CN113553125B (zh) * 2020-04-26 2024-03-19 中移(成都)信息通信科技有限公司 可信应用程序的调用方法、装置、设备及计算机存储介质
CN111740954A (zh) * 2020-05-18 2020-10-02 北京索德电气工业有限公司 电梯主控制器和电梯板卡通信加密方法
CN111638467A (zh) * 2020-05-25 2020-09-08 中合动力(北京)新能源科技有限公司 识别可拆卸电池包与外置充电底座连接是否牢靠的方法
CN111638467B (zh) * 2020-05-25 2023-09-22 中合动力(北京)新能源科技有限公司 识别可拆卸电池包与外置充电底座连接是否牢靠的方法
CN113891314A (zh) * 2021-10-26 2022-01-04 海澜智云科技有限公司 一种电力预付费系统的安全保护方法
CN113891314B (zh) * 2021-10-26 2024-02-23 海澜智云科技有限公司 一种电力预付费系统的安全保护方法
CN116055043A (zh) * 2023-02-06 2023-05-02 国家气象信息中心(中国气象局气象数据中心) 一种数据服务接口鉴权方法及接口网关系统
CN117235708A (zh) * 2023-11-13 2023-12-15 紫光同芯微电子有限公司 应用程序运行时的接口授权调用方法、装置、系统和介质
CN117235708B (zh) * 2023-11-13 2024-03-26 紫光同芯微电子有限公司 应用程序运行时的接口授权调用方法、装置、系统和介质

Also Published As

Publication number Publication date
CN108600268B (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN108600268A (zh) 一种应用于非授信认证的加密解密方法及非授信认证系统
CN105376216B (zh) 一种远程访问方法、代理服务器及客户端
CN108600203A (zh) 基于Cookie的安全单点登录方法及其统一认证服务系统
CN106304074B (zh) 面向移动用户的身份验证方法和系统
CN109981561A (zh) 单体架构系统迁移到微服务架构的用户认证方法
CN107294916B (zh) 单点登录方法、单点登录终端及单点登录系统
CN108964905A (zh) 一种安全高效的区块链实现方法
CN106850201B (zh) 智能终端多因子认证方法、智能终端、认证服务器及系统
CN111275419B (zh) 一种区块链钱包签名确权方法、装置及系统
CN108810003B (zh) 一种多业务方消息接入的安全验证方案
WO2005114946A1 (en) An apparatus, computer-readable memory and method for authenticating and authorizing a service request sent from a service client to a service provider
CN109672675A (zh) 一种基于OAuth2.0的密码服务中间件的WEB认证方法
CN108616540A (zh) 一种基于跨平台加密算法与声明式过滤认证的平台认证方法及系统
CN112953970A (zh) 一种身份认证方法及身份认证系统
CN109829722B (zh) 一种电子支付系统的用户身份实名认证方法
CN110336788A (zh) 一种物联网设备与移动终端的数据安全交互方法
CN110430065A (zh) 一种应用服务调用方法、装置及系统
CN108183798A (zh) 应用的实名认证方法、服务器、移动终端及可读存储介质
CN109995530A (zh) 一种适用于移动定位系统的安全分布式数据库交互方法
CN1953452B (zh) 一种流媒体的动态认证及授权方法
KR20120093598A (ko) 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법
EP1209577A1 (en) Web page browsing limiting method and server system
CN109862009B (zh) 一种客户端身份校验方法及装置
CN105187417B (zh) 权限获取方法和装置
CN102811369A (zh) 在视频共享时进行安全认证方法及手持设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant