CN116170238B - 一种基于服务身份标识密钥的认证方法 - Google Patents

一种基于服务身份标识密钥的认证方法 Download PDF

Info

Publication number
CN116170238B
CN116170238B CN202310456743.9A CN202310456743A CN116170238B CN 116170238 B CN116170238 B CN 116170238B CN 202310456743 A CN202310456743 A CN 202310456743A CN 116170238 B CN116170238 B CN 116170238B
Authority
CN
China
Prior art keywords
service
authentication
visitor
token
identity
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
CN202310456743.9A
Other languages
English (en)
Other versions
CN116170238A (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.)
Beijing Lida Xin'an Technology Co ltd
Beijing Leadal Technology Development Co ltd
Original Assignee
Beijing Lida Xin'an Technology Co ltd
Beijing Leadal Technology Development 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 Beijing Lida Xin'an Technology Co ltd, Beijing Leadal Technology Development Co ltd filed Critical Beijing Lida Xin'an Technology Co ltd
Priority to CN202310456743.9A priority Critical patent/CN116170238B/zh
Publication of CN116170238A publication Critical patent/CN116170238A/zh
Application granted granted Critical
Publication of CN116170238B publication Critical patent/CN116170238B/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/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/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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3247Cryptographic 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 digital signatures
    • 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/3271Cryptographic 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 using challenge-response

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)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于服务身份标识密钥的认证方法,属于信息安全技术领域。方法包括:拦截器拦截访问者服务对资源服务的调用请求,并检查其中是否包含有效的认证授权令牌,如果没有,拦截器将调用请求重定向至认证中心请求服务身份认证;认证中心发送认证挑战信息给访问者服务;访问者服务生成签名数据包作为挑战响应;认证中心验证签名数据包中的服务身份签名,在验证通过后生成授权令牌返回给访问者服务。其中服务身份签名是由访问者服务调用事先申请的服务身份标识私钥进行数字签名得到的,服务身份标识私钥是基于访问者服务的服务身份标识得到的。本发明实现了微服务架构下对服务身份的安全认证和服务调用关系的认证。

Description

一种基于服务身份标识密钥的认证方法
技术领域
本发明属于信息安全技术领域,尤其涉及一种基于服务身份标识密钥的认证方法。
背景技术
现有的微服务架构中主要的认证架构有中心认证服务(Central AuthenticationService ,缩写为CAS)、OAuth2、Spring Security和SAML2.0等四种主流认证架构,将认证服务从业务中分离出来实现用户的统一安全认证,并通过票据和令牌作为认证凭证。微服务间调用对令牌的检查通常采用拦截器或网关实现集中检查和校验授权令牌,若校验不通过或没有授权令牌则跳转到认证中心进行认证。
目前主流的微服务认证技术中,安全的重点在于对访问用户的安全认证,这种认证思想在早期的架构中是安全的;而微服务架构中一个功能需要多个服务协同工作,一个入口服务通常需要调用一个或多个其它服务,而被调用的服务也经常需要另外的服务提供支持,因此对访问用户的安全认证无法满足微服务的安全认证需求。
首先,传统的认证架构中只强调了入口服务的安全认证,而对服务间的调用缺乏相应的认证机制,这就为微服务架构的安全性埋下了巨大隐患,一旦入口服务被攻破,则其它服务就沦陷;其次,现有的微服务认证中服务的标识只是一个标识字符串,与服务本身并无实质性绑定关系,攻击者可以开发一个黑客服务假冒正常的服务也不易被检测和发现;最后,虽然部分企业也认识到了微服务调用的认证问题,但采用的认证方式多采用“用户名和口令”的方式,安全性低,且用户名与口令与服务身份及服务所运行的上下文环境并无关联,依然没能有效解决微服务的安全认证问题。
发明内容
鉴于上述的分析,本发明旨在提供一种基于服务身份标识密钥的认证方法,具体包括如下步骤:
拦截器拦截访问者服务对资源服务的调用请求,并检查调用请求中是否包含有效的认证授权令牌:若包含,则放行所述调用请求;否则,所述拦截器将所述调用请求重定向至认证中心请求服务身份认证;
所述认证中心收到服务身份认证请求后,产生随机数作为认证挑战信息发送给所述访问者服务;
所述访问者服务基于所述认证挑战信息生成签名数据包作为挑战响应发送给所述认证中心;
所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌返回给所述访问者服务。
进一步的,所述访问者服务基于所述认证挑战信息生成签名数据包,包括:
所述访问者服务基于所述认证挑战信息,调用事先申请的服务身份标识私钥对所述随机数和时间戳进行数字签名得到签名值;其中,所述服务身份标识私钥基于所述访问者服务的第一服务身份标识得到;
所述访问者服务基于所述签名值、所述时间戳和所述访问者服务的第一服务身份标识打包生成签名数据包。
进一步的,所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌包括:
所述认证中心基于所述签名数据包获取所述访问者服务的第一服务身份标识;
基于所述访问者服务的第一服务身份标识获取所述访问者的服务标识;
基于所述访问者服务的服务标识检索所述访问者服务的上下文环境信息;
基于所述访问者服务的上下文环境信息动态构建所述访问者服务的第二服务身份标识;
比较所述访问者服务的第一服务身份标识与第二服务身份标识是否一致,若否,则验证失败;若是,则继续下一步的签名值验证;
所述签名值验证包括,基于所述访问者服务的第一服务身份标识计算得到对应的服务身份标识公钥,使用所述服务身份标识公钥验证所述签名数据包的签名值是否正确,若否,则验证失败,若是,则继续下一步的签名有效性验证;
所述签名有效性验证包括,基于所述签名数据包的所述时间戳验证签名是否有效,若否,则验证失败,若是,则验证通过;
所述认证中心基于验证通过的所述访问者服务的第一服务身份标识生成授权令牌。
进一步的,所述第一/第二服务身份标识的生成方法包括:
基于该访问者服务的硬件环境指纹信息和虚拟环境指纹信息得到服务上下文的第一信任链节点;
基于所述第一信任链节点和该服务的运行环境指纹信息得到服务上下文的第二信任链节点;
基于所述第二信任链节点和该服务的服务关联指纹信息得到第三信任链节点;
基于所述第三信任链节点和该服务的标识信息生成第一/第二服务身份标识。
进一步的,所述硬件环境指纹信息、虚拟环境指纹信息、运行环境指纹信息和服务关联指纹信息分别基于采集的所述访问者服务所运行的硬件环境信息、虚拟环境信息、运行环境信息和服务关联信息通过Hash算法计算得到。
进一步的,所述第一信任链节点、第二信任链节点和第三信任链节点,分别通过HMAC算法计算得到。
进一步的,所述基于所述第三信任链节点和所述服务标识信息生成服务身份标识,包括:
将所述第三信任链节点的数据分为两个分组;
将两个所述分组的数据进行异或得到服务上下文指纹数据;
将所述服务上下文指纹数据进行编码后与所述服务标识拼接,得到所述服务身份标识。
进一步的,所述分为两个分组采用16字节分组;所述编码采用Base64编码算法。
进一步的,所述认证中心基于验证通过的所述访问者服务的第一服务身份标识生成授权令牌包括:
所述认证中心基于所述访问者服务的第一服务身份标识生成令牌头;
所述认证中心基于所述访问者服务的第一服务身份标识获得对应的可访问服务列表,基于所述可访问服务列表和令牌有效期限得到令牌体;
所述认证中心基于所述令牌头和令牌体计算得到令牌指纹;
所述认证中心对所述令牌指纹签名得到签名值,基于令牌头、令牌体和签名值生成授权令牌。
进一步的,所述检查调用请求中是否包含有效的认证授权令牌包括:
所述拦截器基于所述访问者服务对资源服务的调用请求获取令牌;
所述拦截器解析令牌得到令牌的所有者的服务身份标识,与所述调用请求中的服务身份标识比较,标识一致则继续校验,否则令牌无效;
所述拦截器解析令牌得到有效期限,若当前时间符合有效期限则继续校验,否则令牌无效;
所述拦截器解析令牌得到访问权限列表,若所述调用请求中的资源服务身份标识在所述访问权限列表中则继续校验,否则令牌无效;
所述拦截器解析令牌得到令牌的签名,验证该签名有效性则令牌有效,否则令牌无效。
本发明至少可以实现下述之一的有益效果:
1、本发明方法对服务间的调用进行基于服务身份标识密钥的认证,确保每个资源服务对访问者服务均进行认证与授权的验证,防止非认证授权的服务对资源服务的访问,有效地保障了对资源服务的安全访问,解决了现有技术的安全体系中服务间调用无有效安全认证的问题;
2、通过采用基于标识密钥的服务身份标识认证技术,并在认证中心认证时根据服务运行的上下文信息动态构建服务身份标识,确保被认证的服务与服务身份标识密钥的一致性,防止服务身份标识密钥分发后服务已发生变更;
3、本发明的认证授权令牌是经过认证中心标识密钥签名的,令牌具有不可伪造性,也不可篡改,令牌与所属的服务身份标识基于数字签名技术绑定,具有非常高的安全性;
4、本发明的认证授权令牌是基于认证中心标识密钥签名的,服务拦截器可各自独立校验,不依赖于认证中心,减轻了认证中心的压力,也解决了认证中心的性能瓶颈与单点故障问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书、权利要求书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件;
图1为基于服务身份标识密钥的认证方法流程图;
图2为认证授权令牌有效的校验流程图;
图3为服务身份认证流程图;
图4为认证授权令牌的生成流程图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
实施例1
本发明的一个具体实施例,公开了一种基于服务身份标识密钥的认证方法,具体包括如下步骤:
步骤S1、拦截器拦截访问者服务对资源服务的调用请求,并检查调用请求中是否包含有效的认证授权令牌:若包含,则放行所述调用请求;否则,所述拦截器将所述调用请求重定向至认证中心请求服务身份认证;
步骤S2、所述认证中心收到服务身份认证请求后,产生随机数作为认证挑战信息发送给所述访问者服务;
步骤S3、所述访问者服务基于所述认证挑战信息生成签名数据包作为挑战响应发送给所述认证中心;
步骤S4、所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌返回给所述访问者服务。
具体的,在步骤S1中,所述检查调用请求中是否包含有效的认证授权令牌包括如下步骤:
步骤S11、所述拦截器基于所述访问者服务对资源服务的调用请求获取令牌。
具体的,所述访问者服务调用资源服务时,调用请求通过资源服务拦截器,拦截器检查所述调用请求中是否包含认证授权令牌,如果否,则拒绝调用请求并将所述调用请求重定向至认证中心请求服务身份认证,如果是,则进入步骤S12验证所述认证授权令牌是否有效。
步骤S12、所述拦截器解析令牌得到令牌的所有者的服务身份标识,与所述调用请求中的服务身份标识比较,标识一致则继续校验,否则令牌无效。
具体的,如果无效,则拒绝调用请求并将所述调用请求重定向至认证中心请求服务身份认证,如果标识一致则进入步骤S13。
步骤S13、所述拦截器解析令牌得到有效期限,若当前时间符合有效期限则进入步骤S14继续校验,否则令牌无效,拦截器拒绝调用请求并将所述调用请求重定向至认证中心请求服务身份认证。
步骤S14、所述拦截器解析令牌得到访问权限列表,若所述调用请求中的资源服务身份标识在所述访问权限列表中则进入步骤S15继续校验,否则令牌无效,拦截器拒绝调用请求并将所述调用请求重定向至认证中心请求服务身份认证。
步骤S15、所述拦截器解析令牌得到令牌的签名,验证该签名有效性则令牌有效,否则令牌无效,拦截器拒绝调用请求并将所述调用请求重定向至认证中心请求服务身份认证。
具体的,拦截器解析令牌获得令牌的签名,并从签名中得到签名者(即认证中心)的声明公钥和签名者标识(即认证中心标识),与预置的标识密钥中心的主公钥计算生成认证中心标识所对应的公钥,并用此公钥验证令牌的签名以确定令牌的真实性和完整性,验证通过则说明令牌有效。如图2所示为认证授权令牌有效的校验流程图。
具体的,在步骤S2中,所述认证中心收到服务身份认证请求后,产生一个随机数R1作为认证挑战信息发送给所述访问者服务。
具体的,在步骤S3中,所述访问者服务基于所述认证挑战信息生成签名数据包,包括:
步骤S31、所述访问者服务基于所述认证挑战信息,调用事先申请的服务身份标识私钥对所述随机数和时间戳进行数字签名得到签名值;其中,所述服务身份标识私钥基于所述访问者服务的第一服务身份标识得到;其中的时间戳为签名时当前时间。
步骤S32、所述访问者服务基于所述签名值、所述时间戳和所述访问者服务的第一服务身份标识打包生成签名数据包。
具体的,在步骤S31中,所述第一服务身份标识的生成方法包括:
基于该访问者服务的硬件环境指纹信息和虚拟环境指纹信息得到服务上下文的第一信任链节点;
基于所述第一信任链节点和该服务的运行环境指纹信息得到服务上下文的第二信任链节点;
基于所述第二信任链节点和该服务的服务关联指纹信息得到第三信任链节点;
基于所述第三信任链节点和该服务的标识信息生成第一服务身份标识。
进一步的,通过Hash算法,基于该访问者服务的硬件环境信息、虚拟环境信息、运行环境信息和服务关联信息,计算得到硬件环境指纹信息、虚拟环境指纹信息、运行环境指纹信息和服务关联指纹信息。
具体的,硬件环境信息包括硬件服务器信息、硬件安全设备信息和硬件网络设备信息;其中,硬件服务器信息包括服务器的CPU信息、磁盘信息、内存信息、操作系统信息等;硬件安全设备信息包括密码机或密码模块信息、防火墙信息及其它安全设备信息等;网络设备信息包括服务运行的交换机、路由器、网关等设备信息。
具体的,将所硬件环境信息依次拼接为字符串,并计算硬件环境信息的数字摘要作为硬件环境指纹数据,即
Figure SMS_1
其中Hash为数字摘要算法,可选的,使用SM3算法或SHA256算法;
Figure SMS_2
为硬件环境指纹信息;“||”为数据连接符号;“…”表示硬件环境相关的其它信息;
Figure SMS_3
为硬件环境信息拼接的字符串;示例性的,硬件服务器信息的字符串选取包括CPU序列号、磁盘序列号、内存型号参数、操作系统的版本号,硬件安全设备信息包括密码机的公司产品型号或密码模块的版本号、防火墙的产品型号和批号、其他安全设备的产品批号,网络设备信息包括服务运行的交换机、路由器和网关各设备的型号和产品批号。
具体的,虚拟环境信息指部署服务的虚拟化环境相关的信息,包括虚拟化软件信息(示例性的,如OpenStack、KVM、Ovirt或Kubernetes)与虚拟主机信息(示例性的,如操作系统信息、CPU资源信息、分配的虚拟内存信息、虚拟磁盘信息、网络设置信息等)等。
具体的,将虚拟环境信息依次拼接成字符串作为数据,通过Hash算法得到虚拟环境指纹数据,计算公式为:
Figure SMS_4
其中,
Figure SMS_5
为虚拟环境指纹数据;/>
Figure SMS_6
为虚拟环境信息拼接的字符串;示例性的,虚拟化软件信息的字符串采用各虚拟化软件的发布日期和版本号,操作系统信息采用操作系统版本号,CPU资源信息用CPU核数和主频拼接字符串,虚拟内存和虚拟磁盘分别使用大小拼接字符串,网络设置信息使用IP号和MAC地址拼接字符串。
进一步的,将硬件环境指纹数据作为HMAC算法的密钥,虚拟环境指纹数据作为HMAC算法的数据,计算HMAC值并作为服务上下文纵向第一信任链节点,表示为:
Figure SMS_7
;其中,HMAC为基于密钥的数字摘要算法;/>
Figure SMS_8
表示第一信任链节点。
具体的,运行环境信息指服务运行所依赖的基础软件环境信息,示例性的,包括JRE环境信息、数据库信息(如MySQL)、数据缓存中间件(如Redis)、服务注册中间件(如Nacos)和负载均衡(如Ngnix)等。
具体的,将运行环境信息依次拼接为字符串作为源数据,通过Hash算法计算得到运行环境指纹数据,计算公式为:
Figure SMS_9
其中,
Figure SMS_10
为运行环境指纹数据;/>
Figure SMS_11
为服务运行环境信息的拼接字符串;示例性的,运行环境信息使用各软件的名称和版本号拼接字符串。
进一步的,将第一信任链节点作为HMAC算法的密钥,运行环境指纹信息作为HMAC算法的数据,计算HMAC值,作为服务上下文纵向第二信任链节点,表示为:
Figure SMS_12
;其中,/>
Figure SMS_13
表示第二信任链节点。
具体的,服务关联指在微服务架构中一个业务功能需要调用一个或多个服务以及各服务间相互调用的情况;服务关联信息包括服务的标识信息和服务间的调用关系。
具体的,将服务关联信息依次拼接为字符串作为源数据,通过Hash算法计算得到服务关联指纹数据,计算公式为:
Figure SMS_14
其中,
Figure SMS_15
为服务关联指纹数据;/>
Figure SMS_16
是服务关联信息拼接成的字符串;示例性的,与运行服务a存在相互调用关系的服务有b、c,其中a调用b,c调用a,则字符串表示分别为a->b和c->a。
进一步的,将第二信任链节点作为HMAC算法的密钥,运行环境指纹信息作为HMAC算法的数据,计算HMAC值,作为服务上下文纵向第二信任链节点,表示为:
Figure SMS_17
;其中,/>
Figure SMS_18
表示第三信任链节点。
进一步的,将所述第三信任链节点的数据采用16字节分组分为两个分组
Figure SMS_19
Figure SMS_20
;将两个分组的数据进行异或得到服务上下文指纹数据;采用Base64编码后与所述服务标识拼接,得到第一/第二服务身份标识,表示为:
Figure SMS_21
;其中,Base64编码算法将二进制数据编码为可显示字符串,“_”为服务标识与服务上下文间的连接分隔符,“^”为异或运算操作符。
具体的,在步骤S31中,所述服务身份标识私钥基于所述访问者服务的第一服务身份标识得到包括:
S311、访问者服务向标识密钥分发中心提交标识密钥申请和第一服务身份标识。
具体的,第一服务身份标识动态构建完成后,需要将第一服务身份标识提交给标识密钥分发中心申请第一服务身份标识所对应的服务私钥,并通过服务私钥实现访问者服务的可信认证,确保访问者服务的真实性与完整性。
S312、标识密钥分发中心基于第一服务身份标识生成与服务身份标识关联的随机公钥和与第一服务身份标识对应的服务私钥,并将服务私钥回传给申请的访问者服务。具体包括以下步骤:
S312-1、标识密钥分发中心随机生成密钥对,包括与所述第一服务身份标识关联的随机公钥和随机私钥。
具体的,标识密钥分发中心收到访问者服务的标识密钥申请后,采用标识密钥分发中心预设的椭圆曲线参数在安全密码设备内随机生成椭圆曲线密钥对
Figure SMS_22
,其中rsk为随机私钥,缓存于标识密钥分发中心的安全密码设备;RPK为随机公钥,输出至标识密钥分发中心。
S312-2、标识密钥分发中心基于所述随机公钥和所述第一服务身份标识计算得到关联系数。
具体的,标识密钥分发中心基于公钥RPK与所收到的第一服务身份标识
Figure SMS_23
分别作为HMAC算法的密钥和数据,计算得到第一服务身份标识与随机公钥RPK的关联系数a,计算公式为:/>
Figure SMS_24
S312-3、标识密钥分发中心基于关联系数生成服务第一身份标识对应的服务身份标识私钥并回传给申请的访问者服务。
具体的,标识密钥分发中心将关联系数a发送给标识密钥中心的安全密码设备,并在安全密码设备内计算生成第一服务身份标识所对应的服务身份标识私钥ssk,表示为:
Figure SMS_25
其中,msk为标识密钥中心的主私钥,即标识密钥中心初始化时所生成随机密钥对(msk,MPK)中的私钥,是标识密钥中心的根私钥;
rsk为标识密钥中心为服务身份标识所生成的随机密钥对(rsk,RPK)中的私钥,用于保护msk防止逆向攻击;
“×”为大数的模乘运算;
n为椭圆曲线参数,是椭圆曲线基点G的阶。
标识密钥分发中心通过安全协议通道将服务身份标识私钥回传给申请的访问者服务,用于访问者服务后续的安全认证。
具体的,在步骤S31中,所述访问者服务基于所述认证挑战信息,调用事先申请的服务身份标识私钥对所述随机数和时间戳进行数字签名得到签名值包括:
Figure SMS_26
;其中,/>
Figure SMS_27
为公钥签名算法函数,可选的包括SM2、ECDSA等;R1为步骤S2中认证中心返回的认证挑战信息即所述随机数;time为签名时当前时间即时间戳;“||”为字符连接符;sigval为签名值。
具体的,在步骤S32中,所述访问者服务基于所述签名值、所述时间戳和所述访问者服务的第一服务身份标识打包生成签名数据包,包括:
所述访问者服务将所述签名值、所述时间戳、所述访问者服务的第一服务身份标识、签名算法、访问者服务所在的域标识和声明公钥等数据打包为签名数据包,并将签名数据包作为挑战响应发送给认证中心;其中,声明公钥即指步骤S312-1中的随机公钥RPK;所述域标识用于标识密钥中心的范围。
具体的,在步骤S4中,所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌包括:
步骤S41、所述认证中心基于所述签名数据包获取所述访问者服务的第一服务身份标识;
步骤S42、基于所述访问者服务的第一服务身份标识获取所述访问者的服务标识;
步骤S43、基于所述访问者服务的服务标识检索所述访问者服务当前的上下文环境信息;
步骤S44、基于所述访问者服务的上下文环境信息动态构建所述访问者服务的第二服务身份标识;
步骤S45、比较所述访问者服务的第一服务身份标识与第二服务身份标识是否一致,若否,则验证失败;若是,则继续下一步的签名值验证;
步骤S46、所述签名值验证包括,基于所述访问者服务的第一服务身份标识计算得到对应的服务身份标识公钥,使用所述服务身份标识公钥验证所述签名数据包的签名值是否正确,若否,则验证失败,若是,则继续下一步的签名有效性验证;
步骤S47、基于所述签名数据包的所述时间戳验证签名是否有效,若否,则验证失败,若是,则验证通过;
步骤S48、所述认证中心基于验证通过的所述访问者服务的第一服务身份标识生成授权令牌。
具体的,在步骤S44中,所述第二服务身份标识的生成方法与步骤S31中所述第一服务身份标识的生成方法一样,第一/第二服务身份标识中的第一/第二仅用于区分不同场景下生成的该服务的身份标识。当访问者服务的上下文环境信息未发生变化时,两者一致;当访问者服务的上下文环境信息发生变化时,两者不一致。
具体的,在步骤S46中,基于所述访问者服务的第一服务身份标识计算得到对应的服务身份标识公钥包括:
在步骤S312-1中,已经得到与所述第一服务身份标识关联的随机公钥RPK即所述声明公钥;
在步骤S312-2中,标识密钥分发中心基于所述随机公钥RPK和所述第一服务身份标识计算得到关联系数a;
对应的服务身份标识公钥SPK的生成方法为:
Figure SMS_28
其中,MPK为标识密钥中心的主公钥;“
Figure SMS_29
”为椭圆曲线的倍点运算;“+”为椭圆曲线上两个点的加法运算。
具体的,在步骤S46中,使用所述服务身份标识公钥验证所述签名数据包的签名值是否正确包括:
Figure SMS_30
;其中,/>
Figure SMS_31
为签名验证算法函数,SPK为所述服务身份标识公钥。
具体的,在步骤S47中,比较所述时间戳和当前时间的差是否小于设定的范围,小于则说明签名有效,否则说明签名已经失效。具体的,步骤S47的时效性验证用于防止重放攻击。
具体的,步骤S48包括如下步骤(如图4所示):
S481、所述认证中心基于所述访问者服务的第一服务身份标识生成令牌头。
具体的,所述认证中心生成一个随机数作为令牌标识TokenID;根据预置的参数将所述访问者服务的第一服务身份标识、令牌的版本号、令牌类型、签名算法标识以及令牌标识生成令牌头TokenHeader。
S482、所述认证中心基于所述访问者服务的第一服务身份标识获得对应的可访问服务列表,基于所述可访问服务列表和令牌有效期限得到令牌体。
具体的,所述认证中心基于所述访问者服务的第一服务身份标识查询得到该服务身份标识所对应的可访问服务列表,将可访问服务列表的服务身份标识作为列表对象填入令牌体中对应的权限列表;然后根据预先配置的令牌策略设置令牌的有效期限,最后将权限列表与有效期限合并打包为令牌体(TokenBody)。
S483、所述认证中心基于所述令牌头和令牌体计算得到令牌指纹。
具体的,将所述令牌头和令牌体拼接为一个字符串,将这个拼接后的字符串作为待签名数据,计算待签名数据的Hash值为令牌指纹。
S484、所述认证中心对所述令牌指纹签名得到签名值,基于令牌头、令牌体和签名值生成授权令牌。
具体的,所述认证中心用预先配置的中心私钥对所述令牌指纹签名得到签名值,所述签名值经Base64编码后填入令牌的签名数据区(即Signature),由令牌头、令牌体和所述签名值构成了服务的认证授权令牌。
本实施例,公开了一种基于服务身份标识密钥的认证方法,通过明对服务间的调用使用基于服务身份标识密钥的认证,确保每个资源服务对访问者服务均进行认证与授权的验证,防止非认证授权的服务对资源服务的访问,有效地保障了对资源服务的安全访问,解决了现有技术的安全体系中服务间调用无有效安全认证的问题;通过在认证中心认证时根据服务运行的上下文信息动态构建服务身份标识,确保被认证的服务与服务身份标识密钥的一致性,防止服务身份标识密钥分发后服务已发生变更。
本实施例方法的认证授权令牌是经过认证中心标识密钥签名的,令牌具有不可伪造性,也不可篡改,令牌与所属的服务身份标识基于数字签名技术绑定,具有非常高的安全性;本实施例方法的认证授权令牌是基于认证中心标识密钥签名的,服务拦截器可各自独立校验,不依赖于认证中心,减轻了认证中心的压力,也解决了认证中心的性能瓶颈与单点故障问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种基于服务身份标识密钥的认证方法,其特征在于,包括如下步骤:
拦截器拦截访问者服务对资源服务的调用请求,并检查调用请求中是否包含有效的认证授权令牌:若包含,则放行所述调用请求;否则,所述拦截器将所述调用请求重定向至认证中心请求服务身份认证;
所述认证中心收到服务身份认证请求后,产生随机数作为认证挑战信息发送给所述访问者服务;
所述访问者服务基于所述认证挑战信息生成签名数据包作为挑战响应发送给所述认证中心,包括:所述访问者服务基于所述认证挑战信息,调用事先申请的服务身份标识私钥对所述随机数和时间戳进行数字签名得到签名值;其中,所述服务身份标识私钥基于所述访问者服务的第一服务身份标识得到;所述访问者服务基于所述签名值、所述时间戳和所述访问者服务的第一服务身份标识打包生成签名数据包;所述第一服务身份标识的生成方法包括:基于该访问者服务的硬件环境指纹信息和虚拟环境指纹信息得到服务上下文的第一信任链节点;基于所述第一信任链节点和该服务的运行环境指纹信息得到服务上下文的第二信任链节点;基于所述第二信任链节点和该服务的服务关联指纹信息得到第三信任链节点;基于所述第三信任链节点和该服务的标识信息生成第一服务身份标识;
所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌返回给所述访问者服务。
2.根据权利要求1所述的认证方法,其特征在于,所述认证中心基于所述签名数据包验证服务身份签名,在验证通过后生成授权令牌包括:
所述认证中心基于所述签名数据包获取所述访问者服务的第一服务身份标识;
基于所述访问者服务的第一服务身份标识获取所述访问者的服务标识;
基于所述访问者服务的服务标识检索所述访问者服务的上下文环境信息;
基于所述访问者服务的上下文环境信息动态构建所述访问者服务的第二服务身份标识;所述第二服务身份标识的生成方法与所述第一服务身份标识的生成方法一样;
比较所述访问者服务的第一服务身份标识与第二服务身份标识是否一致,若否,则验证失败;若是,则继续下一步的签名值验证;
所述签名值验证包括,基于所述访问者服务的第一服务身份标识计算得到对应的服务身份标识公钥,使用所述服务身份标识公钥验证所述签名数据包的签名值是否正确,若否,则验证失败,若是,则继续下一步的签名有效性验证;
所述签名有效性验证包括,基于所述签名数据包的所述时间戳验证签名是否有效,若否,则验证失败,若是,则验证通过;
所述认证中心基于验证通过的所述访问者服务的第一服务身份标识生成授权令牌。
3.根据权利要求2所述的认证方法,其特征在于,所述硬件环境指纹信息、虚拟环境指纹信息、运行环境指纹信息和服务关联指纹信息分别基于采集的所述访问者服务所运行的硬件环境信息、虚拟环境信息、运行环境信息和服务关联信息通过Hash算法计算得到。
4.根据权利要求3所述的认证方法,其特征在于,所述第一信任链节点、第二信任链节点和第三信任链节点,分别通过HMAC算法计算得到。
5.根据权利要求4所述的认证方法,其特征在于,所述基于所述第三信任链节点和所述服务标识信息生成服务身份标识,包括:
将所述第三信任链节点的数据分为两个分组;
将两个所述分组的数据进行异或得到服务上下文指纹数据;
将所述服务上下文指纹数据进行编码后与所述服务标识拼接,得到所述服务身份标识。
6.根据权利要求5所述的认证方法,其特征在于,所述分为两个分组采用16字节分组;所述编码采用Base64编码算法。
7.根据权利要求2所述的认证方法,其特征在于,所述认证中心基于验证通过的所述访问者服务的第一服务身份标识生成授权令牌包括:
所述认证中心基于所述访问者服务的第一服务身份标识生成令牌头;
所述认证中心基于所述访问者服务的第一服务身份标识获得对应的可访问服务列表,基于所述可访问服务列表和令牌有效期限得到令牌体;
所述认证中心基于所述令牌头和令牌体计算得到令牌指纹;
所述认证中心对所述令牌指纹签名得到签名值,基于令牌头、令牌体和签名值生成授权令牌。
8.基于权利要求1所述的认证方法,其特征在于,所述检查调用请求中是否包含有效的认证授权令牌包括:
所述拦截器基于所述访问者服务对资源服务的调用请求获取令牌;
所述拦截器解析令牌得到令牌的所有者的服务身份标识,与所述调用请求中的服务身份标识比较,标识一致则继续校验,否则令牌无效;
所述拦截器解析令牌得到有效期限,若当前时间符合有效期限则继续校验,否则令牌无效;
所述拦截器解析令牌得到访问权限列表,若所述调用请求中的资源服务身份标识在所述访问权限列表中则继续校验,否则令牌无效;
所述拦截器解析令牌得到令牌的签名,验证该签名有效,则令牌有效,否则令牌无效。
CN202310456743.9A 2023-04-26 2023-04-26 一种基于服务身份标识密钥的认证方法 Active CN116170238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310456743.9A CN116170238B (zh) 2023-04-26 2023-04-26 一种基于服务身份标识密钥的认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310456743.9A CN116170238B (zh) 2023-04-26 2023-04-26 一种基于服务身份标识密钥的认证方法

Publications (2)

Publication Number Publication Date
CN116170238A CN116170238A (zh) 2023-05-26
CN116170238B true CN116170238B (zh) 2023-07-07

Family

ID=86413603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310456743.9A Active CN116170238B (zh) 2023-04-26 2023-04-26 一种基于服务身份标识密钥的认证方法

Country Status (1)

Country Link
CN (1) CN116170238B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969231A (zh) * 2013-03-05 2015-10-07 英特尔公司 安全挑战辅助的密码代理
CN111478910A (zh) * 2020-04-09 2020-07-31 北京金堤科技有限公司 用户身份验证方法和装置、电子设备以及存储介质
CN113783695A (zh) * 2021-08-03 2021-12-10 西北大学 一种微服务架构的客户端信息认证方法及系统
CN114679293A (zh) * 2021-06-15 2022-06-28 腾讯云计算(北京)有限责任公司 基于零信任安全的访问控制方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218481B2 (en) * 2020-06-04 2022-01-04 Verizon Patent And Licensing Inc. Personal identity system
US11533309B2 (en) * 2020-12-28 2022-12-20 Okta, Inc. Digital signature injection for user authentication across multiple independent systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104969231A (zh) * 2013-03-05 2015-10-07 英特尔公司 安全挑战辅助的密码代理
CN111478910A (zh) * 2020-04-09 2020-07-31 北京金堤科技有限公司 用户身份验证方法和装置、电子设备以及存储介质
CN114679293A (zh) * 2021-06-15 2022-06-28 腾讯云计算(北京)有限责任公司 基于零信任安全的访问控制方法、设备及存储介质
CN113783695A (zh) * 2021-08-03 2021-12-10 西北大学 一种微服务架构的客户端信息认证方法及系统

Also Published As

Publication number Publication date
CN116170238A (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
US11757635B2 (en) Client authentication and access token ownership validation
KR101434769B1 (ko) 신뢰적인 연합 아이덴티티 관리 및 데이터 액세스 인가를 위한 방법 및 장치
CN102378170B (zh) 一种鉴权及业务调用方法、装置和系统
FI115098B (fi) Todentaminen dataviestinnässä
KR20190114434A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN113301022B (zh) 基于区块链和雾计算的物联网设备身份安全认证方法
KR102192370B1 (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
US20110213959A1 (en) Methods, apparatuses, system and related computer program product for privacy-enhanced identity management
Dewanta et al. A mutual authentication scheme for secure fog computing service handover in vehicular network environment
KR20190114432A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN111800378A (zh) 一种登录认证方法、装置、系统和存储介质
CN115118489B (zh) 用户、设备、IPv6网络地址绑定的网络接入认证系统及方法
CN114422106B (zh) 一种多服务器环境下的物联网系统安全认证方法及系统
US7073062B2 (en) Method and apparatus to mutually authentication software modules
Riad et al. A blockchain‐based key‐revocation access control for open banking
CN114781006A (zh) 基于区块链和sgx的外包数据完整性审计方法及系统
CN117456646B (zh) 一种基于物联网的智能木屋门禁验证方法及系统
CN117370952A (zh) 基于区块链的多重节点身份验证方法及装置
Pampori et al. Securely eradicating cellular dependency for e-banking applications
CN116707983A (zh) 授权认证方法及装置、接入认证方法及装置、设备、介质
Aiash A formal analysis of authentication protocols for mobile devices in next generation networks
CN116170238B (zh) 一种基于服务身份标识密钥的认证方法
KR20200112771A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
KR20200112770A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN116192387B (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