CN112039857B - 一种公用基础模块的调用方法和装置 - Google Patents

一种公用基础模块的调用方法和装置 Download PDF

Info

Publication number
CN112039857B
CN112039857B CN202010818447.5A CN202010818447A CN112039857B CN 112039857 B CN112039857 B CN 112039857B CN 202010818447 A CN202010818447 A CN 202010818447A CN 112039857 B CN112039857 B CN 112039857B
Authority
CN
China
Prior art keywords
request
interface
timestamp
service request
identity authentication
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.)
Active
Application number
CN202010818447.5A
Other languages
English (en)
Other versions
CN112039857A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010818447.5A priority Critical patent/CN112039857B/zh
Publication of CN112039857A publication Critical patent/CN112039857A/zh
Application granted granted Critical
Publication of CN112039857B publication Critical patent/CN112039857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

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)

Abstract

本发明公开了一种公用基础模块的调用方法和装置,方法包括:由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求。本发明能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。

Description

一种公用基础模块的调用方法和装置
技术领域
本发明涉及公用基础模块领域,更具体地,特别是指一种公用基础模块的调用方法和装置。
背景技术
共用基础模块(CBB)是指那些可以在不同产品、系统之间共用的组件、模块、技术、及相关设计成果。在项目研发过程中,通过重用CBB,可以减少重复开发,节约开发资源和成本、缩短开发周期和上市时间,提高产品质量。
CBB的实施对安全性和易用性提出了很高的要求,否则辛苦研发的CBB会给人造成不好用的印象,从而导致无法在企业中推行起来。其中对安全性和易用性影响较大的一个因素就是调用CBB接口时的身份认证和接口鉴权问题,目前常用的CBB接口认证方式是采用传统的基于令牌(Token)的方式,主要分为两步:第一步是发送用户名和密码进行身份认证并获取认证Token;第二步是携带Token访问业务接口。
在这种认证鉴权的方式中,用户不能直接访问某个资源接口,必须首先访问登录接口获取Token,然后才能携带着Token访问资源接口,降低了CBB的易用性。另外Token的有效期不好设置,时间太长容易造成重放攻击的风险,时间太短则需要频繁的进行登录认证,严重影响用户体验。
针对现有技术中CBB运转依赖Token并且容易受到重放攻击的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种公用基础模块的调用方法和装置,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。
基于上述目的,本发明实施例的第一方面提供了一种公用基础模块的调用方法,包括执行以下步骤:
由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;
由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;
由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;
由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。
在一些实施方式中,接口调用端的指令环境为Java、JavaScript、或Python;获取请求时间戳包括以下之一:在Java环境中使用time获取请求时间戳、在JavaScript环境中使用Date().getTime()获取请求时间戳、和在Python环境中使用time.time()获取请求时间戳。
在一些实施方式中,还包括:接口调用端在获取请求时间戳之前,先访问公用基础模块的密钥管理中心以获得由密钥管理中心为接口调用端生成的用户标识和私钥,其中每个接口调用端、分发给接口调用端的用户标识、和分发给接口调用端的私钥均一一对应。
在一些实施方式中,密钥管理中心成对地生成和发放用户标识和私钥,并且私钥的加密和解密均使用SM2国密算法。
在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:
获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;
响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;
基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;
响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;
响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。
在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:
访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;
校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。
在一些实施方式中,还包括:公用基础模块在基于接口访问权限而处理业务请求之后,还将处理结果反馈到接口调用端。
本发明实施例的第二方面提供了一种公用基础模块的调用装置,包括:
公用基础模块;
公用基础模块的接口调用端;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;
由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;
由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;
由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。
在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:
获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;
响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;
基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;
响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;
响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。
在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:
访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;
校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。
本发明具有以下有益技术效果:本发明实施例提供的公用基础模块的调用方法和装置,通过由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求的技术方案,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的公用基础模块的调用方法的流程示意图;
图2为本发明提供的公用基础模块的调用方法的结构示意图;
图3为本发明提供的公用基础模块的调用方法的调用端业务流程图;
图4为本发明提供的公用基础模块的调用方法的CBB接收身份认证流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够基于一次请求同时完成身份认证、接口鉴权和资源访问的公用基础模块的调用方法的一个实施例。图1示出的是本发明提供的公用基础模块的调用方法的流程示意图。
所述的公用基础模块的调用方法,如图1所示,存储过程包括执行以下步骤:
步骤S101:由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;
步骤S103:由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;
步骤S105:由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;
步骤S107:由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。
本发明提出一种用于CBB的身份认证和接口鉴权方法,解决了基于令牌认证方式存在的需要先登录获取token然后才能访问接口资源的问题,实现了一次请求同时完成认证授权和资源访问的目的,提高了CBB的易用性;采用国密算法SM2(非对称加密)对认证信息进行加密,保证了认证信息的安全性,同时每次请求携带的加密信息都不相同,有效避免了重放攻击的风险。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,接口调用端的指令环境为Java、JavaScript、或Python;获取请求时间戳包括以下之一:在Java环境中使用time获取请求时间戳、在JavaScript环境中使用Date().getTime()获取请求时间戳、和在Python环境中使用time.time()获取请求时间戳。
在一些实施方式中,方法还包括:接口调用端在获取请求时间戳之前,先访问公用基础模块的密钥管理中心以获得由密钥管理中心为接口调用端生成的用户标识和私钥,其中每个接口调用端、分发给接口调用端的用户标识、和分发给接口调用端的私钥均一一对应。
在一些实施方式中,密钥管理中心成对地生成和发放用户标识和私钥,并且私钥的加密和解密均使用SM2国密算法。
在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:
获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;
响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;
响应于差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;
基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;
响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;
响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。
在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:
访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;
校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。
在一些实施方式中,还包括:公用基础模块在基于接口访问权限而处理业务请求之后,还将处理结果反馈到接口调用端。
下面根据图2所示的具体实施例来进一步阐述本发明的具体实施方式。本发明提供的公用基础模块的调用方法的一个实施流程如下:
步骤1、接口调用端获取当前请求的时间戳。
在步骤1中,时间戳(Unix timestamp)的获取方式有很多种,可根据项目编程语言选择对应指令,例如Java的time;JavaScript的Date().getTime();Python的time.time()等。
步骤2、接口调用端使用SM2的私钥加密时间戳,得到加密串。
在步骤2中,国密算法SM2的私钥由CBB中的密钥管理中心进行生成和分发,只有系统管理员具有密钥管理的权限,一个CBB接口调用端对应一个密钥。
参见图2,接口调用端发送请求并携带着认证参数到CBB端,CBB端接收到外部请求首先经过认证鉴权中心和密钥管理中心对请求身份进行校验,校验通过后将请求交与CBB业务中心进行请求处理,处理完成后将结果响应回接口调用端。
接口调用端在调用CBB接口之前,首先向系统管理员提出账号申请,系统管理员在密钥管理中心注册新用户后生成安全凭证。安全凭证包括UId和SecretKey,UId用于标识接口调用者的身份;SecretKey为国密算法SM2的私钥。调用端业务流程如图3所示,具体步骤为:
步骤301,获取当前时间戳Timestamp根据项目编程语言选择对应指令,例如Java的time;JavaScript的Date().getTime();Python的time.time()。
步骤302,使用UId对应SM2私钥SecretKey加密Timestamp,得到加密串SecStr。
步骤303,将UId、Timestamp、SecStr添加到请求参数中,封装好请求参数,如下格式:
Figure BDA0002633596160000091
步骤304,向CBB端发送请求等待响应。
步骤3、接口调用端发送请求,请求参数中携带着身份认证参数:用户ID、时间戳、加密串。
在步骤3中,用户ID是与SM2私钥对应的ID,是在生成SM2私钥时同时生成的身份ID,与私钥成对的分发给CBB接口调用端使用。
步骤4、CBB端接收到请求,提取认证参数解密后进行身份认证,并根据用户ID查找对应身份类型。
在步骤4中,CBB端提取到认证参数(用户ID、时间戳、加密串)后的认证过程主要分为以下几步:
(1)获取当前的时间戳;
(2)将获取的时间戳与请求参数中的时间戳进行差值计算,超过预设的过期时间间隔则认为是重放攻击,拒绝请求;
(3)根据用户ID从密钥库中提取SM2私钥对应的公钥;
(4)使用公钥解密加密串得到解密后的时间戳;
(5)对比解密后的时间戳与请求参数中的时间戳是否相同,不同则认为是重放攻击,拒绝请求。
步骤5、身份认证通过后,校验身份类型是否具有业务接口访问权限,如果有则处理请求。
在步骤5中,CBB端鉴权过程主要分2步:
(1)根据用户ID在数据库用户表中查找对应的用户类型;
(2)校验用户类型是否具有该接口资源的访问权限,没有则拒绝请求。
CBB端接收到请求后的身份认证和接口鉴权流程如图3所示,具体步骤为:
步骤301,从请求参数中提取认证参数:UId、Timestamp、SecStr;
步骤302,根据提取的三个认证参数进行身份认证,主要分为以下几步:
(1)获取当前的时间戳TimestampNow;
(2)将获取的时间戳TimestampNow与认证参数的时间戳Timestamp进行差值计算,超过预设的过期时间间隔(例如5秒)则认为是重放攻击,拒绝请求;
(3)根据认证参数UId从密钥库中提取SM2私钥SecretKey对应的公钥PublicKey;
(4)使用公钥PublicKey解密加密串SecStr得到解密后的时间戳TimestampDec;
(5)对比解密后的时间戳TimestampDec与认证参数的时间戳Timestamp是否相同,不同则认为是重放攻击,拒绝请求;
步骤303,根据提取到的UID进行接口鉴权,主要分以下2步:
(1)根据UID在数据库用户表中查找对应的用户类型userType;
(2)对比userType值是否包含在该接口允许的用户访问类型中,没有则拒绝请求;
步骤304,用户认证和鉴权都通过后,处理业务请求;
步骤305,将业务处理结果返回给调用端。
从上述实施例可以看出,本发明实施例提供的公用基础模块的调用方法,通过由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求的技术方案,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。
需要特别指出的是,上述公用基础模块的调用方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于公用基础模块的调用方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够基于一次请求同时完成身份认证、接口鉴权和资源访问的公用基础模块的调用装置的一个实施例。公用基础模块的调用装置包括:
公用基础模块;
公用基础模块的接口调用端;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:
由公用基础模块的接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;
由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;
由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;
由公用基础模块响应于通过身份认证而以非令牌形式来确定接口调用端的接口访问权限,并基于接口访问权限而在公用基础模块中处理业务请求,其中身份认证和接口访问权限均保留在公用基础模块之内。
在一些实施方式中,由公用基础模块从业务请求中提取请求参数以对接口调用端执行身份认证包括:
获取当前时间戳,并确定当前时间戳和请求参数中的请求时间戳之差值;
响应于差值大于预设的过期时间间隔而将业务请求认定为重放攻击并拒绝业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据请求参数中的用户标识从密钥库中获取与用户标识相对应的公钥;
基于公钥反签名请求参数中的加密串以获得解密时间戳,并比较请求时间戳和解密时间戳;
响应于请求时间戳和解密时间戳不一致而将业务请求认定为重放攻击并拒绝业务请求;
响应于业务请求未在上述步骤中被认定为是重放攻击而通过身份认证。
在一些实施方式中,由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限包括:
访问数据库,并根据用户标识在数据库的用户表中查找与用户标识对应的用户类型;
校验用户类型是否具有业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝业务请求。
从上述实施例可以看出,本发明实施例提供的公用基础模块的调用装置,通过由接口调用端获取请求时间戳,并使用接口调用端的私钥对请求时间戳签名以获得加密串;由接口调用端发送包括请求参数的业务请求,其中请求参数包括封装好的接口调用端的用户标识、请求时间戳、和加密串;由公用基础模块接收业务请求,并从业务请求中提取请求参数以对接口调用端执行身份认证;由公用基础模块响应于通过身份认证而确定接口调用端的接口访问权限,并基于接口访问权限而处理业务请求的技术方案,能够基于一次请求同时完成身份认证、接口鉴权和资源访问,降低对Token的依赖并提高了易用性,也有效避免了遭受重放攻击。
需要特别指出的是,上述公用基础模块的调用装置的实施例采用了所述公用基础模块的调用方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述公用基础模块的调用方法的其他实施例中。当然,由于所述公用基础模块的调用方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述公用基础模块的调用装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种公用基础模块的调用方法,其特征在于,包括执行以下步骤:
由公用基础模块的接口调用端获取请求时间戳,并使用所述接口调用端的私钥对所述请求时间戳签名以获得加密串;
由所述接口调用端发送包括请求参数的业务请求,其中所述请求参数包括封装好的所述接口调用端的用户标识、所述请求时间戳、和所述加密串;
由所述公用基础模块接收所述业务请求,并从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证;
由所述公用基础模块响应于通过所述身份认证而以非令牌形式来确定所述接口调用端的接口访问权限,并基于所述接口访问权限而在所述公用基础模块中处理所述业务请求,其中所述身份认证和所述接口访问权限均保留在所述公用基础模块之内。
2.根据权利要求1所述的方法,其特征在于,所述接口调用端的指令环境为Java、JavaScript、或Python;
获取所述请求时间戳包括以下之一:在Java环境中使用time获取所述请求时间戳、在JavaScript环境中使用Date().getTime()获取所述请求时间戳、和在Python环境中使用time.time()获取所述请求时间戳。
3.根据权利要求1所述的方法,其特征在于,还包括:所述接口调用端在获取所述请求时间戳之前,先访问所述公用基础模块的密钥管理中心以获得由所述密钥管理中心为所述接口调用端生成的所述用户标识和所述私钥,其中每个所述接口调用端、分发给所述接口调用端的所述用户标识、和分发给所述接口调用端的所述私钥均一一对应。
4.根据权利要求3所述的方法,其特征在于,所述密钥管理中心成对地生成和发放所述用户标识和所述私钥,并且所述私钥的加密和解密均使用SM2国密算法。
5.根据权利要求1所述的方法,其特征在于,由公用基础模块从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证包括:
获取当前时间戳,并确定所述当前时间戳和所述请求参数中的所述请求时间戳之差值;
响应于所述差值大于预设的过期时间间隔而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据所述请求参数中的所述用户标识从所述密钥库中获取与所述用户标识相对应的公钥;
基于所述公钥反签名所述请求参数中的所述加密串以获得解密时间戳,并比较所述请求时间戳和所述解密时间戳;
响应于所述请求时间戳和所述解密时间戳不一致而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述业务请求未在上述步骤中被认定为是重放攻击而通过所述身份认证。
6.根据权利要求1所述的方法,其特征在于,由所述公用基础模块响应于通过所述身份认证而确定所述接口调用端的接口访问权限包括:
访问数据库,并根据所述用户标识在所述数据库的用户表中查找与所述用户标识对应的用户类型;
校验所述用户类型是否具有所述业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝所述业务请求。
7.根据权利要求1所述的方法,其特征在于,还包括:所述公用基础模块在基于所述接口访问权限而处理所述业务请求之后,还将处理结果反馈到所述接口调用端。
8.一种公用基础模块的调用装置,其特征在于,包括:
公用基础模块;
所述公用基础模块的接口调用端;
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时依次执行以下步骤:
由所述公用基础模块的所述接口调用端获取请求时间戳,并使用所述接口调用端的私钥对所述请求时间戳签名以获得加密串;
由所述接口调用端发送包括请求参数的业务请求,其中所述请求参数包括封装好的所述接口调用端的用户标识、所述请求时间戳、和所述加密串;
由所述公用基础模块接收所述业务请求,并从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证;
由所述公用基础模块响应于通过所述身份认证而以非令牌形式来确定所述接口调用端的接口访问权限,并基于所述接口访问权限而在所述公用基础模块中处理所述业务请求,其中所述身份认证和所述接口访问权限均保留在所述公用基础模块之内。
9.根据权利要求8所述的装置,其特征在于,由所述公用基础模块从所述业务请求中提取所述请求参数以对所述接口调用端执行身份认证包括:
获取当前时间戳,并确定所述当前时间戳和所述请求参数中的所述请求时间戳之差值;
响应于所述差值大于预设的过期时间间隔而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述差值未大于预设的过期时间间隔而访问密钥库,并根据所述请求参数中的所述用户标识从所述密钥库中获取与所述用户标识相对应的公钥;
基于所述公钥反签名所述请求参数中的所述加密串以获得解密时间戳,并比较所述请求时间戳和所述解密时间戳;
响应于所述请求时间戳和所述解密时间戳不一致而将所述业务请求认定为重放攻击并拒绝所述业务请求;
响应于所述业务请求未在上述步骤中被认定为是重放攻击而通过所述身份认证。
10.根据权利要求8所述的装置,其特征在于,由所述公用基础模块响应于通过所述身份认证而确定所述接口调用端的接口访问权限包括:
访问数据库,并根据所述用户标识在所述数据库的用户表中查找与所述用户标识对应的用户类型;
校验所述用户类型是否具有所述业务请求所请求的接口资源的访问权限,并响应于没有权限而拒绝所述业务请求。
CN202010818447.5A 2020-08-14 2020-08-14 一种公用基础模块的调用方法和装置 Active CN112039857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010818447.5A CN112039857B (zh) 2020-08-14 2020-08-14 一种公用基础模块的调用方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010818447.5A CN112039857B (zh) 2020-08-14 2020-08-14 一种公用基础模块的调用方法和装置

Publications (2)

Publication Number Publication Date
CN112039857A CN112039857A (zh) 2020-12-04
CN112039857B true CN112039857B (zh) 2022-05-13

Family

ID=73577299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010818447.5A Active CN112039857B (zh) 2020-08-14 2020-08-14 一种公用基础模块的调用方法和装置

Country Status (1)

Country Link
CN (1) CN112039857B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810367A (zh) * 2021-08-02 2021-12-17 浪潮软件股份有限公司 一种基于动态令牌方式的混合数据验证访问控制方法
CN114760133B (zh) * 2022-04-15 2023-10-03 中国电信股份有限公司 RESTful接口认证方法、装置、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674304A (zh) * 2009-10-15 2010-03-17 浙江师范大学 一种网络身份认证系统及方法
CN104660583A (zh) * 2014-12-29 2015-05-27 国家电网公司 一种基于Web加密服务的加密服务方法
CN109787988A (zh) * 2019-01-30 2019-05-21 杭州恩牛网络技术有限公司 一种身份加强认证和鉴权方法及装置
CN110611564A (zh) * 2019-07-30 2019-12-24 云南昆钢电子信息科技有限公司 一种基于时间戳的api重放攻击的防御系统及方法
CN111212095A (zh) * 2020-04-20 2020-05-29 国网电子商务有限公司 一种身份信息的认证方法、服务器、客户端及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11374767B2 (en) * 2019-01-14 2022-06-28 EMC IP Holding Company LLC Key-based authentication for backup service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674304A (zh) * 2009-10-15 2010-03-17 浙江师范大学 一种网络身份认证系统及方法
CN104660583A (zh) * 2014-12-29 2015-05-27 国家电网公司 一种基于Web加密服务的加密服务方法
CN109787988A (zh) * 2019-01-30 2019-05-21 杭州恩牛网络技术有限公司 一种身份加强认证和鉴权方法及装置
CN110611564A (zh) * 2019-07-30 2019-12-24 云南昆钢电子信息科技有限公司 一种基于时间戳的api重放攻击的防御系统及方法
CN111212095A (zh) * 2020-04-20 2020-05-29 国网电子商务有限公司 一种身份信息的认证方法、服务器、客户端及系统

Also Published As

Publication number Publication date
CN112039857A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN112218294B (zh) 基于5g的物联网设备的接入方法、系统及存储介质
CN108810029B (zh) 一种微服务架构服务间鉴权系统及优化方法
JP6586446B2 (ja) 通信端末および関連システムのユーザーの識別情報を確認するための方法
CN111931144B (zh) 一种操作系统与业务应用统一安全登录认证方法及装置
CN111431719A (zh) 一种移动终端密码保护模块、移动终端及密码保护方法
CN112861089B (zh) 授权认证的方法、资源服务器、资源用户端、设备和介质
US9608971B2 (en) Method and apparatus for using a bootstrapping protocol to secure communication between a terminal and cooperating servers
US20230412399A1 (en) Database Multi-Authentication Method and System, Terminal, and Storage Medium
CN111447220B (zh) 认证信息管理方法、应用系统的服务端及计算机存储介质
WO2021190197A1 (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
CN111800378A (zh) 一种登录认证方法、装置、系统和存储介质
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN112039857B (zh) 一种公用基础模块的调用方法和装置
CN113221128A (zh) 账号和密码的存储方法及注册管理系统
CN115277168A (zh) 一种访问服务器的方法以及装置、系统
CN114143108A (zh) 一种会话加密方法、装置、设备及存储介质
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
CN104901967A (zh) 信任设备的注册方法
WO2014166193A1 (zh) 应用程序加密处理方法、装置和终端
CN116233832A (zh) 验证信息发送方法及装置
CN113722726B (zh) 基于软硬件协同的加解密方法及系统
CN111404680B (zh) 口令管理方法和装置
CN114282254A (zh) 加密、解密方法及装置、电子设备
CN106877996A (zh) Pki域内的用户访问ibc域内的资源的认证密钥协商方法

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