CN116601916A - 作为用于密钥散列消息认证码用户认证和授权的密钥材料的基于属性的加密密钥 - Google Patents
作为用于密钥散列消息认证码用户认证和授权的密钥材料的基于属性的加密密钥 Download PDFInfo
- Publication number
- CN116601916A CN116601916A CN202280008098.8A CN202280008098A CN116601916A CN 116601916 A CN116601916 A CN 116601916A CN 202280008098 A CN202280008098 A CN 202280008098A CN 116601916 A CN116601916 A CN 116601916A
- Authority
- CN
- China
- Prior art keywords
- resource
- computer
- user
- authentication code
- protected resource
- 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.)
- Pending
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 22
- 239000000463 material Substances 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 51
- 238000004891 communication Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 15
- 230000002085 persistent effect Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
- H04L9/3242—Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
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)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
提供了资源用户认证和授权。基于将检索的基于属性的加密用户密钥用作用于经由网络从资源用户的客户端设备接收的受保护资源访问请求的一组标头字段上的密钥‑散列消息认证码数字签名的秘钥来生成认证码。将生成的认证码与在受保护资源访问请求的嵌入标头字段内读取的认证码进行比较。确定在所生成的认证码和在嵌入标头字段内读取的认证码之间是否存在匹配。响应于确定匹配确实存在,资源用户被认证。响应于所述资源用户的认证,使用对应于所述资源用户的所检索的基于属性的加密用户密钥来执行对应于所述受保护资源访问请求的加密的受保护资源的解密。
Description
技术领域
本公开一般地涉及用户认证和授权,并且更具体地涉及在由资源用户做出的用于用户认证和授权的受保护资源访问请求的标头字段集合上将对应于该资源用户的基于属性的加密用户密钥用作用于密钥散列消息认证码数字签名的秘钥。
背景技术
用户认证和授权是网络安全的关键组成部分。例如,认证用户的身份是由用户提供针对访问安全用户账户、执行安全交易、访问安全网络资源等的控制的第一步。认证意味着确认用户的身份,而授权意味着向用户授予许可。换言之,认证是验证用户是谁的过程,而授权是验证用户能够执行或能够访问什么的过程。授权是指定对安全或受保护资源的访问权限或特权的功能,其与访问控制相关。授权由访问控制策略定义。在授权操作期间,计算机系统使用访问控制策略来确定来自认证用户的受保护资源访问请求是被批准(即,授权访问)还是未被批准(即,拒绝访问)。受保护资源可以包括例如包含机密或敏感信息的数据、文件、文档、软件应用和程序、存储、处理器、内存、网络资源等。逻辑上,认证在授权之前。
网络安全性由这些访问控制策略组成,这些访问控制策略被采用来防止和监视网络可访问的受保护资源的未授权访问、滥用、修改或拒绝。通常,用户选择或被分配标识符,诸如用户名和密码或允许用户访问用户权限内的网络可访问受保护资源的其他认证信息。例如,一旦被认证,防火墙就强制执行访问控制策略,该访问控制策略定义相应用户被允许访问网络上的什么受保护资源。
发明内容
根据一个说明性实施例,提供了一种用于资源用户认证和授权的计算机实现的方法。计算机基于使用检索的基于属性的加密用户密钥作为用于经由网络从资源用户的客户端设备接收的受保护资源访问请求的标头字段集合上的密钥散列消息认证码数字签名的秘钥来生成认证码。计算机将生成的认证码与在受保护资源访问请求的嵌入标头字段内读取的认证码进行比较。计算机确定生成的认证码和在嵌入标头字段内读取的认证码之间是否存在匹配。响应于计算机确定在生成的认证码和在嵌入标头字段内读取的认证码之间存在匹配,计算机认证资源用户。计算机响应于资源用户的认证,使用所检索的对应于资源用户的基于属性的加密用户密钥,执行对应于受保护资源访问请求的加密的受保护资源的解密。根据其他说明性实施例,提供了一种用于资源用户认证和授权的计算机系统和计算机程序产品。
附图说明
图1是可以实现说明性实施例的数据处理系统网络的绘图表示;
图2是可以实现说明性实施例的数据处理系统的图;
图3是示出了可以实现说明性实施例的云计算环境的图;
图4是示出根据说明性实施例的云计算环境的抽象层的示例的图;
图5是示出根据说明性实施例的受保护资源访问控制系统的示例的图;
图6是示出根据说明性实施例的受保护资源访问请求标头的示例的图;
图7是示出根据说明性实施例的受保护资源访问控制过程的示例的图;
图8A-8B是示出根据说明性实施例的用于资源服务器的过程的流程图;以及
图9是示出根据说明性实施例的用于客户端资源应用的过程的流程图。
具体实施方式
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
现在参考附图,并且具体参考图1-5,提供了可以实现说明性实施例的数据处理环境的图。应当理解,图1-5仅意味着示例,并且不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描述的环境做出许多修改。
图1示出了可以实现说明性实施例的数据处理系统的网络的绘图表示。网络数据处理系统100是可以实施说明性实施例的计算机、数据处理系统和其他设备的网络。网络数据处理系统100包含网络102,网络102是用于提供计算机、数据处理系统和在网络数据处理系统100内连接在一起的其他设备之间的通信链路的介质。网络102可包括连接,诸如例如有线通信链路、无线通信链路、光纤线缆等。
在所描绘的示例中,服务器104和服务器106连同存储装置108连接到网络102。服务器104和服务器106可以是例如具有到网络102的高速连接的资源服务器计算机。此外,服务器104和服务器106可由客户端设备提供对受保护资源110的访问管理服务。受保护资源110表示由服务器104和服务器106托管的受保护资源的集合。受保护资源110可以表示任何类型的受保护的或保卫的资源免于未经授权的用户访问。例如,受保护资源110包括受限访问数据、文件、文档、软件应用和程序、处理器、存储器、存储装置、网络资源等中的至少一个。进一步,受保护资源110被加密或者对应于受保护资源110的元数据被加密以增加安全性。
此外,应注意,服务器104和服务器106可各自表示由受保护资源访问管理服务提供商管理的一个或多个云环境中的多个计算节点。或者,服务器104和服务器106可各自表示托管服务的一个或多个数据中心中的服务器群集。此外,服务器104和服务器106可以向客户端设备提供信息,诸如例如应用、程序、软件更新、软件修复程序、文件、数据等。
客户端112、客户端114和客户端116也连接到网络102。客户端112、114和116是服务器104和服务器106的客户端设备。在该示例中,客户端112、114和116被示出为具有到网络102的有线通信链路的台式计算机或个人计算机。然而,应当注意,客户端112、114和116仅是示例并且可以表示具有到网络102的有线或无线通信链路的其他类型的数据处理系统,诸如例如膝上型计算机、手持式计算机、智能电话、智能手表、智能电视、智能眼镜、智能电器、游戏设备等。在服务器104和/或服务器106认证用户并随后确定用户是否被授权访问受保护资源110时,客户端112、114和116的用户可利用客户端112、114和116来访问和利用受保护资源110。
存储装置108是能够以结构化格式或非结构化格式存储任何类型的数据的网络存储设备。此外,存储装置108可以表示多个网络存储设备。进一步,存储装置108可以存储多个不同客户端设备的标识符和网络地址、多个不同资源用户的标识符、受保护资源访问控制策略等。
此外,应当注意,网络数据处理系统100可以包括任何数量的附加服务器、客户端、存储设备和未示出的其他设备。位于网络数据处理系统100中的程序代码可以存储在计算机可读存储介质上并且下载到计算机或其他数据处理设备以供使用。例如,程序代码可以存储在服务器104上的计算机可读存储介质上,并且通过网络102下载到客户端112以在客户端112上使用。
在所描绘的示例中,网络数据处理系统100可以被实现为许多不同类型的通信网络,诸如例如互联网、内联网、广域网(WAN)、局域网(LAN)、电信网络或其任何组合。图1旨在仅作为示例,而不是作为对于不同说明性实施例的架构限制。
如本文所使用的,当参考项目使用时,“多个”是指一个或多个项目。例如,“多个不同类型的通信网络”是一种或多种不同类型的通信网络。类似地,当参考项目使用时,“一组”意味着一个或多个项目。
此外,当与项目列表一起使用时,术语“至少一个”表示可以使用所列出的项目中的一个或多个的不同组合,并且可以仅需要列表中的每个项目中的一个。换言之,“至少一个”意味着可以使用列表中的项目和多个项目的任何组合,但是不需要列表中的所有项目。项目可以是特定对象、事物或类别。
例如,但不限于,“项目A、项目B或项目C中的至少一个”可包括项目A、项目A和项目B、或项目B。该示例还可以包括项目A、项目B和项目C或者项目B和项目C。当然,可以存在这些项目的任何组合。在一些说明性示例中,“至少一个”可以是例如但不限于两个项目A;一个项目B;和十个项目C;四个项目B和七个项目C;或其他合适的组合。
现在参见图2,描绘了根据说明性实施例的数据处理系统的图。数据处理系统200是计算机(诸如图1中的服务器104)的示例,实施说明性实施例的受保护资源访问管理过程的计算机可读程序代码或指令可以位于所述计算机中。在该示例中,数据处理系统200包括通信结构202,其提供处理器单元204、存储器206、持久存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
处理器单元204用于执行可以被加载到存储器206中的软件应用和程序的指令。处理器单元204可以是一组一个或多个硬件处理器设备或者可以是多核处理器,这取决于特定的实施方式。
存储器206和持久存储装置208是存储设备216的示例。如本文所使用的,计算机可读存储设备或计算机可读存储介质是能够存储信息的任何硬件,所述信息例如但不限于:数据、功能形式的计算机可读程序代码、和/或在瞬时基础或持久基础上的其他合适的信息。进一步,计算机可读存储设备或计算机可读存储介质不包括传播介质,诸如瞬态信号。在这些示例中,存储器206可为例如随机存取存储器(RAM)或任何其他合适的易失性或非易失性存储装置,例如闪速存储器。持久存储装置208可以采取各种形式,这取决于特定的实施方式。例如,持久存储装置208可包含一个或多个装置。例如,持久存储装置208可以是磁盘驱动器、固态驱动器、可重写光盘、可重写磁带或上述的一些组合。由持久存储装置208使用的介质可以是可移除的。例如,可移动硬盘驱动器可以用于持久存储装置208。
在这个示例中,持久存储装置208存储受保护资源访问管理器218。然而,应注意,即使受保护资源访问管理器218被示为驻留在持久存储装置208中,在替代说明性实施例中,受保护资源访问管理器218可以是数据处理系统200的单独组件。例如,受保护资源访问管理器218可以是耦合到通信结构202的硬件组件或硬件和软件组件的组合。在另一替代说明性实施例中,受保护资源访问管理器218的第一组组件可以位于数据处理系统200中,并且受保护资源访问管理器218的第二组组件可以位于第二数据处理系统(例如图1中的服务器106)中。
受保护资源访问管理器218控制对诸如图1中的受保护资源110的受保护资源集合的资源用户访问。受保护资源访问管理器218利用基于属性的加密用户密钥作为秘密密钥,在由请求访问受保护资源的集合中的特定受保护资源的由资源用户做出的受保护资源访问请求的标头字段集合上生成密钥-散列消息认证码数字签名。受保护资源访问管理器218将所生成的认证码数字签名与在受保护资源访问请求的嵌入标头字段中接收的认证码数字签名进行比较,以认证资源用户。当通过确定在认证码数字签名之间存在匹配而认证资源用户时,受保护资源访问管理器218利用用于生成在受保护资源访问请求的嵌入标头字段中接收的认证码数字签名的相同的基于属性的加密用户密钥,来解密所请求的受保护资源或对应于所请求的受保护资源的元数据。如果使用该特定基于属性的加密用户密钥解密成功,则受保护资源访问管理器218确定该资源用户被授权访问该特定受保护资源并准许访问。
因此,数据处理系统200作为专用计算机系统操作,其中数据处理系统200中的受保护资源访问管理器218能够提高网络上的受保护资源的访问控制和安全性的水平。具体地,与不具有受保护资源访问管理器218的当前可用的通用计算机系统相比,受保护资源访问管理器218将数据处理系统200转换成专用计算机系统。
在此示例中,通信单元210经由网络(例如,图1中的网络102)提供与其他计算机、数据处理系统和装置的通信。通信单元210可通过使用物理和无线通信链路两者提供通信。物理通信链路可以利用例如有线、线缆、通用串行总线、或任何其他物理技术来建立用于数据处理系统200的物理通信链路。无线通信链路可以利用例如短波、高频、超高频、微波、无线保真(Wi-Fi)、技术、全球移动通信系统(GSM)、码分多址(CDMA)、第二代(2G)、第三代(3G)、第四代(4G)、4G长期演进(LTE)、高级LTE、第五代(5G)、或任何其他无线通信技术或标准来建立用于数据处理系统200的无线通信链路。
输入/输出单元212允许与可以连接到数据处理系统200的其他设备进行数据的输入和输出。例如,输入/输出单元212可以通过小键盘、键盘、鼠标、麦克风和/或某其他合适的输入设备为用户输入提供连接。显示器214提供向用户显示信息的机制,并且可以包括允许用户通过例如用户界面或输入数据进行屏上选择的触摸屏能力。
用于操作系统、应用和/或程序的指令可以位于存储设备216中,存储设备216通过通信结构202与处理器单元204通信。在这个说明性的示例中,指令是持久存储装置208上的功能形式。这些指令可以被加载到存储器206中用于由处理器单元204运行。不同实施例的过程可以由处理器单元204使用计算机实现的指令来执行,所述计算机实现的指令可以位于存储器(诸如存储器206)中。这些程序指令被称为可以由处理器单元204中的处理器读取和运行的程序代码、计算机可用程序代码或计算机可读程序代码。在不同的实施例中,程序指令可实施在不同的物理计算机可读存储设备(诸如存储器206或持久存储装置208)上。
程序代码220以功能形式位于选择性可移除的计算机可读介质222上,并且可被加载到或转移到数据处理系统200以供处理器单元204运行。程序代码220和计算机可读介质222形成计算机程序产品224。在一个示例中,计算机可读介质222可以是计算机可读存储介质226或计算机可读信号介质228。
在这些说明性示例中,计算机可读存储介质226是用于存储程序代码220的物理或有形存储设备,而不是传播或传输程序代码220的介质。计算机可读存储介质226可以包括例如光盘或磁盘,光盘或磁盘被插入或放置到作为持久存储装置208的一部分的驱动器或其他设备中,用于转移到作为持久存储装置208的一部分的存储设备(诸如硬盘驱动器)上。计算机可读存储介质226还可以采取持久存储装置的形式,诸如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存。
可替代地,程序代码220可以使用计算机可读信号介质228被传输至数据处理系统200。计算机可读信号介质228可以是例如包含程序代码220的传播的数据信号。例如,计算机可读信号介质228可以是电磁信号、光信号或任何其他合适类型的信号。这些信号可以通过通信链路传输,例如无线通信链路、光纤线缆、同轴线缆、电线或任何其他合适类型的通信链路。
此外,如本文所使用的,“计算机可读介质222”可以是单数或复数。例如,程序代码220可以位于单个存储设备或系统的形式的计算机可读介质222中。在另一示例中,程序代码220可以位于分布在多个数据处理系统中的计算机可读介质222中。换言之,程序代码220中的一些指令可位于一个数据处理系统中,而程序代码220中的其他指令可位于一个或多个其他数据处理系统中。例如,程序代码220的一部分可位于服务器计算机中的计算机可读介质222中,而程序代码220的另一部分可位于位于一组客户端计算机中的计算机可读介质222中。
为数据处理系统200示出的不同组件并不意味着对可以实施不同实施例的方式提供架构限制。在一些说明性示例中,一个或多个组件可以结合在另一个组件中或以其他方式形成另一个组件的一部分。例如,在一些示例性示例中,存储器206或其部分可以结合在处理器单元204中。不同的说明性实施例可以在包括除了或代替为数据处理系统200示出的那些组件的组件的数据处理系统中实现。图2中示出的其他组件可以不同于示出的说明性示例。不同的实施例可以使用能够运行程序代码220的任何硬件设备或系统来实现。
在另一示例中,总线系统可用于实现通信结构202,并且可包括一个或多个总线,诸如系统总线或输入/输出总线。当然,可以使用在附接到总线系统的不同组件或设备之间提供数据传送的任何合适类型的架构来实现总线系统。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所记载的教导的实现不限于云计算环境。相反,说明性实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源的共享池,所述可配置计算资源诸如例如是网络、网络带宽、服务器、处理、内存、存储装置、应用、虚拟机和服务,其可以以最小的管理努力或与服务提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
这些特性可包括例如按需自助服务、广泛网络接入、资源池化、快速弹性和测量的服务。按需自助服务允许云消费者单方面地按需自动供应计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。广泛网络接入提供通过网络可用和通过标准机制访问的能力,该标准机制促进异构瘦客户机平台或厚客户机平台(例如移动电话、膝上型计算机和个人数字助理)的使用。资源池化允许提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需要动态地分配和重新分配。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够在较高抽象层次上指定位置,例如国家、州或数据中心。快速弹性提供能够被快速和弹性地供应(在一些情况下自动地)以快速缩小和快速释放以快速放大的能力。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。测量的服务允许云系统通过在适合于服务类型的某个抽象级别(诸如例如存储、处理、带宽和活跃用户账户)利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型可包括例如软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。软件即服务是提供给消费者使用提供者在云基础设施上运行的应用的能力。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。平台即服务是提供给消费者以将消费者创建或获取的使用由提供者支持的编程语言和工具创建的应用部署到云基础设施上的能力。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。基础架构即服务是提供给消费者供应处理、存储、网络和消费者能够部署并运行任意软件的其他基本计算资源的能力,所述任意软件可包括操作系统和应用。消费者不管理或控制底层云基础设施,但是具有对操作系统、存储、所部署的应用的控制,以及对选择联网组件(诸如例如主机防火墙)的可能有限的控制。
部署模型可以包括例如私有云、社区云、公共云和混合云。私有云是仅为组织操作的云基础设施。私有云可由组织或第三方管理,并且可存在于场所内或场所外。社区云是由若干组织共享的云基础设施,并且支持共享了诸如任务、安全要求、策略和合规性考虑之类的问题的特定社区。社区云可由组织或第三方管理,并且可存在于场所内或场所外。公共云是公众或大型行业组可用的云基础设施,并且由销售云服务的组织拥有。混合云是由两个或更多个云(诸如例如私有云、社区云和公共云)组成的云基础设施,这些云保持为唯一实体,但通过使数据和应用可移植性的标准化或专有技术(诸如例如云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,聚焦于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。
现在参见图3,描绘了图示可以实现说明性实施例的云计算环境的图。在这个说明性示例中,云计算环境300包括云消费者使用的本地计算设备可以与其通信的一组一个或多个云计算节点310,本地计算设备诸如例如个人数字助理或智能电话320A、台式计算机320B、膝上型计算机320C和/或汽车计算机系统320N。云计算节点310可以是例如图1中的服务器104和服务器106。本地计算设备320A-320N可以是例如图1中的客户端112-116。
云计算节点310可彼此通信并且可被物理地或虚拟地分组成一个或多个网络,诸如上文所述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境300提供基础设施、平台和/或软件作为服务,云消费者无需为其维护本地计算设备(诸如本地计算设备320A-320N)上的资源。应当理解,本地计算设备320A-320N的类型仅旨在是说明性的,并且云计算节点310和云计算环境300可以使用例如web浏览器通过任何类型的网络和/或网络可寻址连接与任何类型的计算机化设备通信。
现在参见图4,描绘了根据说明性实施例的说明抽象模型层的图。在这个说明性示例中示出的功能抽象层的集合可以由云计算环境提供,诸如图3中的云计算环境300。应事先理解,图4中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能。
云计算环境400的抽象层包括硬件和软件层402、虚拟化层404、管理层406和工作负载层408。硬件和软件层402包括云计算环境的硬件和软件组件。硬件组件可包括例如主机410、基于RISC(精简指令集计算机)架构的服务器412、服务器414、刀片服务器416、存储设备418以及网络和联网组件420。在一些说明性实施例中,软件组件可包括例如网络应用服务器软件422和数据库软件424。
虚拟化层404提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器426;虚拟存储428;虚拟网络430,包括虚拟专用网络;虚拟应用和操作系统432;以及虚拟客户端434。
在一个示例中,管理层406可以提供以下描述的功能。资源供应436提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价438在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户440为消费者和系统管理员提供对云计算环境的访问。服务水平管理442提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行444提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层408提供可以利用云计算环境的功能的示例。可以由工作负载层408提供的示例工作负载和功能可以包括地图和导航446、软件开发和生命周期管理448、虚拟教室教育交付450、数据分析处理452、事务处理454和受保护资源访问管理456。
目前,在服务提供商和客户(即,资源用户)之间共享受保护资源(例如,机密数据)的计算机系统在互联网上是众多的。该提供商/客户模型的一个挑战性问题是用户认证和授权。存在用于实现用户认证和授权的许多方式。然而,一些较新的方法允许该实现方式通过加密访问控制策略、连同使用功能加密的受保护数据来保护访问控制策略。
这些较新的方法之一是基于属性的加密,其中受保护数据被加密并且可用于任何用户,并且实现依赖于算法的密码强度来将受保护数据和在密文内加密的布尔谓词(例如,访问控制策略)模糊为针对受保护数据的未授权用户访问的保护。基于属性的加密是一种公钥加密,其中用户的秘密密钥和密文取决于用户的属性,例如,用户工作的地理位置、用户的职位、用户的职责、用户是其成员的资源组、用户的安全级别等。在基于属性的加密中,密文的解密仅在用户密钥的该组属性匹配密文的属性时才是可能的。基于属性的加密技术有两种主要类型:1)密钥-策略基于属性的加密;和2)密文-策略基于属性的加密。
然而,网络安全行业的许多人需要对受保护资源的更多控制,即使是以加密的形式。在他们的观点中,被加密或未被加密的受保护资源应该是未被授权访问和使用该特定受保护资源的任何人不可访问的。说明性实施例确保受保护资源在没有授权使用那些受保护资源的情况下不能被任何人访问。
防止未授权的用户以任何形式访问受保护资源引入资源用户向托管那些受保护资源的资源服务器呈现凭证的需要。具体地,用户必须呈现证明用户已经被授予访问特定受保护资源的权限的凭证。随着需要资源用户证明资源用户被授权访问和使用给定的受保护资源而出现许多问题。说明性实施例考虑并解决如何安全地将资源用户的凭证呈现给资源服务器以控制对网络上的受保护资源的访问。
考虑过去已经使用的许多现有认证方法,例如基本auth和OAuth。这些现有的认证方法要求用户的凭证在网络上传递以开始网络会话。因此,这些现有的认证方法在每次用户发起网络会话时将用户的凭证暴露给网络。
然而,已经创建了许多其他方法来保护通过网络的该凭证交换,诸如例如传输层安全。在使用基于属性的加密用于访问控制的系统中,用户可以简单地以多种不同方法之一传递用户密钥,然后使资源服务器使用该用户密钥来尝试解锁特定的受保护资源。如果资源服务器能够使用该特定用户密钥来解锁(例如,解密)受保护资源,则资源服务器知道用户拥有准许访问该特定受保护资源的凭证。然而,基于属性的加密存在一主要缺点。基于属性的加密针对每个网络会话将用户密钥暴露给网络。例如,如果传输层安全协议出现故障,则用户密钥可能在网络上暴露并随后被未授权用户利用。
证明资源用户拥有访问受保护资源的凭证的其他现有方法不要求在网络会话开始时通过网络传递受保护资源。一种这样的方法是密钥-散列消息认证码。密钥散列消息认证码(也被称为基于散列的消息认证码)是涉及密码散列函数和秘密密钥的特定类型的消息认证码。密钥-散列消息认证码可用于同时验证消息的数据完整性和真实性。任何密码散列函数(诸如安全散列算法2或安全散列算法3)可用于计算密钥-散列消息认证码。密钥-散列消息认证码允许也具有秘钥的资源服务器检测消息内容的任何改变。换言之,密钥-散列消息认证码向托管一个或多个受保护资源的资源服务器提供以下手段:通过使对应于资源用户的资源应用在受保护资源访问请求的一组网络标头字段上计算密钥-散列消息认证码,并将该密钥-散列消息认证码(即,密码数字签名)包括在受保护资源访问请求的标头中的嵌入字段中,来测试资源用户是否拥有凭证(即,用户密钥)。
在从资源用户接收到受保护资源访问请求时,托管受保护资源的资源服务器可以使用与资源用户的资源应用相同的用户密钥,在受保护资源访问请求的相同的一组标头字段上计算相同的密钥-散列消息认证码。如果两个密钥-散列消息认证码(即,密码数字签名)匹配,则资源服务器已经在密码学上证明了用户拥有用户密钥(即,有效的用户凭证)并且被授权访问受保护资源。
因此,说明性实施例利用基于属性的加密用户密钥作为用于在受保护资源访问请求的相同标头字段集合上的密钥-散列消息认证码密码数字签名的秘钥,以向资源服务器证明资源用户拥有预先共享的基于属性的加密用户密钥。应当注意,说明性实施例可以利用任何形式的基于属性的加密,例如密钥策略基于属性的加密、密文策略基于属性的加密等。
说明性实施例向资源用户发出带外的基于属性的加密用户密钥以及与该特定用户密钥相对应的唯一用户密钥标识符。说明性实施例也在资源服务器上供应该相同的基于属性的加密用户密钥和唯一用户密钥标识符。应当注意,说明性实施例可以利用任何类型的带外加密密钥共享技术。带外加密密钥共享在通过从将使用密码秘钥的网络内部不可访问的手段传递密码秘钥时发生。换句话说,带外加密密钥共享意味着经由不同于用于交换密文的通信手段的另一通信手段来发送密码秘钥。
在说明性实施例与资源用户和资源服务器共享基于属性的加密用户密钥和对应的唯一用户密钥标识符之后,说明性实施例利用标准的基于属性的加密功能来加密受保护资源或资源元数据,其中访问控制策略被嵌入在密文中并被放置在资源服务器上。一旦资源服务器使用密钥-散列消息认证码认证(即,验证)对应于受保护资源访问请求的用户,资源服务器利用对应的基于属性的加密用户密钥来尝试解密受保护资源或对应于受保护资源的元数据。如果使用该基于属性的加密用户密钥解密成功,则资源服务器知道进行受保护资源访问请求的用户拥有给予该用户访问该特定受保护资源的授权的基于属性的加密用户密钥。
因此,说明性实施例提供了克服与将资源用户凭证安全地呈现给资源服务器以控制对网络上的受保护资源的访问有关的技术问题的一个或多个技术方案。因此,这一个或多个技术方案在网络安全领域提供了技术效果和实际应用。
现在参见图5,根据说明性实施例描绘了示出受保护资源访问控制系统的示例的图。受保护资源访问控制系统500可以在数据处理系统(诸如图1中的网络数据处理系统100)的网络或云计算环境(诸如图3中的云计算环境300)中实现。受保护资源访问控制系统500是用于控制对受保护资源502的访问的硬件和软件组件的系统。受保护资源502表示一组受保护资源,并且可以是例如图1中的受保护资源110。
在这个示例中,受保护资源访问控制系统500包括资源服务器504和客户端设备506。资源服务器504可以是例如图1中的服务器104、图2中的数据处理系统200、或者图3中的云计算节点310中的云计算节点。客户端设备506可以是例如图1中的客户端112或图3中的本地计算设备320B。然而,应当注意,受保护资源访问控制系统500旨在仅作为示例,而不作为对说明性实施例的限制。换言之,受保护资源访问控制系统500可以包括任意数量的受保护资源、资源服务器、客户端设备和未示出的其他设备和组件。
用户密钥供应系统500还示出了一组可能的供应实体和工作流,该工作流允许密钥-散列消息认证码使用基于属性的加密用户密钥来实现受控的受保护资源访问。然而,应当注意,图5的说明性示例不旨在示出启用用户密钥共享的所有方式。换言之,另选的说明性实施例可以利用其他用户密钥共享方法。
在这个示例中,资源服务器504包括受保护资源访问管理器505,诸如例如图2中的受保护资源访问管理器218。受保护资源访问管理器505控制针对由资源服务器504托管的受保护资源502的用户访问。客户端设备506包括客户端资源应用507。资源用户508利用客户端资源应用507来访问和利用受保护资源502中的一个或多个。
资源管理员510负责行政上管理对受保护资源502的访问。在512处,资源管理员510创建访问控制策略定义,其定义哪些资源用户或资源用户组可以访问受保护资源502中的哪些特定受保护资源。此外,资源管理员510使用基于属性的加密协议中的一个来加密受保护资源502或对应于受保护资源502的元数据以安全地控制对受保护资源502的访问。进一步,在514,资源管理员510为资源用户508生成基于属性的加密用户密钥,资源用户508将用它来访问受保护资源502中的一个或多个。此外,资源管理员510生成唯一的用户密钥标识符,其唯一地标识与资源用户508相对应的基于属性的加密用户密钥。
资源管理员510将对应于资源用户508的基于属性的加密用户密钥和唯一用户密钥标识符发送到认证和用户密钥供应服务516。在518,资源管理员510还在资源服务器504上的受保护资源访问管理器505的密钥存储520中供应基于属性的加密用户密钥和唯一用户密钥标识符,以用于测试嵌入在受保护资源访问请求的标头字段中的密钥-散列消息认证码数字签名。
在522,资源用户508从认证和用户密钥供应服务516请求基于属性的加密用户密钥和唯一用户密钥标识符。在524,响应于接收到请求,认证和用户密钥供应服务516在带外向资源用户508发送基于属性的加密用户密钥和唯一用户密钥标识符。在526,资源用户508在客户端设备506上的客户端资源应用507的密钥存储528中供应基于属性的加密用户密钥和唯一用户密钥标识符。
在530处,资源用户508将受保护资源访问请求输入到请求访问受保护资源502中的一个或多个的客户端资源应用507中。响应于接收到受保护资源访问请求输入,客户端资源应用507使用在密钥存储528中提供的基于属性的加密用户密钥和唯一用户密钥标识符来生成包括密钥-散列消息认证码和唯一用户密钥标识符的受保护资源访问请求。在532,客户端资源应用507向资源服务器504发送包括密钥-散列消息认证码和唯一密钥标识符的受保护资源访问请求。
之后,资源服务器504的受保护资源访问管理器505使用包括在受保护资源访问请求中的唯一性用户密钥标识符从受保护资源访问管理器505的密钥存储520检索预先共享的基于属性的加密用户密钥。受保护资源访问管理器505利用从密钥存储520检索的该基于属性的加密用户密钥,在受保护资源访问请求的同一组标头字段上生成其自己的密钥-散列消息认证码。受保护资源访问管理器505然后将由受保护资源访问管理器505生成的密钥-散列消息认证码与包括在由客户端资源应用507发送的受保护资源访问请求中的密钥-散列消息认证码进行比较。
如果密钥-散列消息认证码不匹配,则受保护资源访问管理器505拒绝资源用户508访问受保护资源502中的一个或多个所请求的受保护资源。如果两个密钥-散列消息认证码匹配,则受保护资源访问管理器505认证资源用户508。在受保护资源访问管理器505认证资源用户508之后,受保护资源访问管理器505利用基于属性的加密用户密钥来尝试解密对应于资源用户508的受保护资源访问请求的受保护资源502中的一个或多个受保护资源。如果受保护资源访问管理器505能够使用基于属性的加密用户密钥对所述一个或多个受保护资源进行解密,则受保护资源访问管理器505确定资源用户508被授权访问所述一个或多个受保护资源并且被授予访问权。如果受保护资源访问管理器505不能解密所述一个或多个受保护资源,则受保护资源访问管理器505确定资源用户508未被授权访问那一个或多个受保护资源并且被拒绝访问。
现在参见图6,根据说明性实施例描绘了示出受保护资源访问请求标头的示例的图示。受保护资源访问请求标头600示出受保护资源访问请求中的嵌入字段,受保护资源访问管理器(例如,图2中的受保护资源访问管理器218或图5中的受保护资源管理器505)读取所述嵌入字段以检索基于属性的加密用户密钥602,以在受保护资源访问请求的一组标头字段(其不包括认证码和数字签名)上生成密钥-散列消息认证码数字签名604。
然而,应当注意,受保护资源访问请求标头600仅旨在作为示例。换句话说,受保护资源访问请求标头600不示出所有标头字段,例如抑制恶意用户行为(例如,重放攻击)的字段。未示出的该组其他标头字段不会负面地影响说明性实施例的受保护资源访问管理器的功能。除了嵌入的标头字段之外的这组其他标头字段由用户密钥标识符字段606下面的虚线暗示。此外,标头字段的名称并不重要,而仅仅是字段的内容重要。
受保护资源访问管理器利用用户密钥标识符字段606中包含的唯一标识符608来检索基于属性的加密用户密钥602,该基于属性的加密用户密钥602对应于做出受保护资源访问请求的资源用户(例如,图5中的资源用户508),该基于属性的加密用户密钥602由资源管理员(例如图5中的资源管理员510)供应在受保护资源访问管理器的密钥存储(例如图5中的密钥存储520)中。唯一标识符608唯一地标识密钥存储中的基于属性的加密用户密钥602。受保护资源访问管理器将生成的密钥-散列消息认证码数字签名604与包含在认证码字段612中的具有数字签名的Base64编码字节阵列610进行比较,以对资源用户进行认证。
现在参见图7,根据说明性实施例描绘了示出受保护资源访问控制过程的示例的图。受保护资源访问控制过程700包括资源服务器702和客户端资源应用704。资源服务器702可以是例如图5中的资源服务器504。客户端资源应用704可以是例如加载到图5中的客户端设备506上的客户端资源应用507。
当资源用户(例如,图5中的资源用户508)在客户端资源应用704的密钥存储(例如,图5中的密钥存储528)中提供基于属性的加密用户密钥和唯一用户密钥标识符时,受保护资源访问控制过程700开始。随后,客户端资源应用704从请求访问由资源服务器702托管的受保护资源的资源用户接收受保护资源访问请求。作为响应,在706,客户端资源应用704将用户密钥标识字段和认证码字段嵌入在受保护资源访问请求的标头中,诸如例如嵌入在图6中的受保护资源访问请求标头600中的用户密钥标识字段606和认证码字段612。
进一步,在708,客户端资源应用704从客户端资源应用704的密钥存储中检索基于属性的加密密钥和唯一用户密钥标识符。在710,客户端资源应用704基于使用基于属性的加密密钥作为用于受保护资源访问请求的一组标头字段上的密钥-散列消息认证码数字签名的秘钥来生成认证码。之后,客户端资源应用704将该认证码插入到受保护资源访问请求标头的认证码字段中,并且将唯一用户密钥标识符插入到用户密钥标识字段中。应注意,替代说明性实施例也可将唯一用户密钥标识符放置在数字签名的标头字段中。这将保护该唯一用户密钥标识符并且如果该唯一用户密钥标识符未被包括在未被数字签名的标头字段中则使认证码失败。在712,客户端资源应用704向资源服务器702发送包括认证码和唯一用户密钥标识符的受保护资源访问请求。
在714,响应于资源服务器702接收到受保护资源访问请求,资源服务器702扫描标头字段以找到与基于属性的加密用户密钥相对应的唯一用户密钥标识符。在716,资源服务器702使用唯一用户密钥标识符从资源服务器702的密钥存储(诸如例如图5中的密钥存储520)检索预共享的基于属性的加密用户密钥。在718,资源服务器702将预先共享的基于属性的加密用户密钥用作用于其自身在客户端资源应用704用于生成其自身的认证码的受保护资源访问请求的同一组标头字段上的密钥-散列消息认证码数字签名的秘钥。
在720,资源服务器702将由资源服务器702生成的认证码与从由客户端资源应用704发送的受保护资源访问请求的标头字段读取的认证码进行比较。如果认证码匹配,那么资源服务器702知道该资源用户拥有存储在资源服务器702的密钥存储中的相同的基于属性的加密用户密钥。在资源服务器702通过确定认证码匹配而认证资源用户之后,在722,资源服务器702利用基于属性的加密用户密钥来尝试解密对应于受保护资源访问请求的受保护资源或受保护资源元数据。如果资源服务器702能够解密受保护资源或受保护资源元数据,则在724,资源服务器702知道资源用户被授权访问受保护资源并被准予访问。
应当注意,受保护资源访问控制过程700防止基于属性的加密用户密钥暴露给网络,并且向资源服务器702提供授权受保护资源使用的手段。受保护资源访问控制过程700还可以提供利用下载授权以及查看加密来控制受保护资源访问的手段。
现在参见图8A-8B,根据说明性实施例示出了示出用于资源服务器的过程的流程图。图8A-8B所示的过程可在计算机(例如图1中的服务器104、图2中的数据处理系统200、图3中的云计算节点310中的云计算节点或图5中的资源服务器504)中实现。例如,图8A-8B所示的过程可在图2中的受保护资源访问管理器218或图3中的受保护资源访问管理器534中实现。
当计算机经由网络从对应于资源用户的客户端设备的客户端资源应用接收具有包括认证码和用户密钥标识符的标头字段的受保护资源访问请求时,该过程开始(步骤802)。受保护资源访问请求是请求访问由计算机托管的加密的受保护资源。响应于接收到受保护资源访问请求,计算机读取受保护资源访问请求内的包括认证码和用户密钥标识符的标头字段(步骤804)。
之后,计算机使用在受保护资源访问请求的标头字段内读取的用户密钥标识符,从计算机的密钥存储中检索对应于资源用户的基于属性的加密用户密钥(步骤806)。此外,计算机基于使用检索的基于属性的加密用户密钥作为用于受保护资源访问请求的标头字段上的密钥-散列消息认证码数字签名的秘钥来生成认证码(步骤808)。计算机比较所生成的认证码和在受保护资源访问请求的标头字段内读取的认证码(步骤810)。
随后,计算机确定所生成的认证码和利用标头字段读取的认证码之间是否存在匹配(步骤812)。如果计算机确定在生成的认证码和标头字段内读取的认证码之间不存在匹配(步骤812的否输出),则计算机不认证资源用户并且拒绝资源用户对加密的受保护资源的访问(步骤814)。此后,该过程终止。如果计算机确定在生成的认证码和用标头字段读取的认证码之间存在匹配(步骤812的是输出),则计算机认证资源用户(步骤816)。
之后,计算机响应于资源用户的认证,使用所检索的与资源用户对应的基于属性的加密用户密钥对加密的受保护资源进行解密(步骤818)。计算机确定使用所检索的基于属性的加密用户密钥来解密加密的受保护资源是否成功以形成解密的受保护资源(步骤820)。如果计算机确定使用所检索的基于属性的加密用户密钥对加密的受保护资源的解密不成功(步骤820的否输出),则过程返回到步骤814,在步骤814计算机确定资源用户未被授权并且拒绝资源用户对加密的受保护资源的访问。如果计算机确定使用所检索的基于属性的加密用户密钥对加密的受保护资源的解密成功以形成解密的受保护资源(步骤820的是输出),则计算机确定资源用户被授权并且准许资源用户对解密的受保护资源的访问(步骤822)。此后,该过程终止。
现在参见图9,根据说明性实施例示出了示出用于客户端资源应用的过程的流程图。图9中所示的过程可以在客户端资源应用(例如,图5中的客户端资源应用506或图7中的客户端资源应用704)中实现。客户端资源应用可以在客户端设备(例如,图2中的客户端112或图3中的本地计算设备302A)中实现。
当客户端设备从资源用户接收输入以在对应于资源用户的客户端设备上加载的客户端资源应用的密钥存储内提供基于属性的加密用户密钥和用户密钥标识符时,该过程开始(步骤902)。基于属性的加密用户密钥对应于资源用户。此外,用户密钥标识符唯一地标识基于属性的加密用户密钥。
随后,客户端设备使用客户端资源应用从资源用户接收输入来发送请求访问由资源服务器托管的受保护资源的受保护资源访问请求(步骤904)。响应于接收到用于发送受保护资源访问请求的输入,客户端设备使用客户端资源应用将认证码字段和用户密钥标识符字段嵌入到受保护资源访问请求的标头字段内(步骤906)。此外,客户端设备使用客户端资源应用从客户端资源应用的密钥存储中检索基于属性的加密用户密钥和用户密钥标识符(步骤908)。
之后,客户端设备使用客户端资源应用基于使用检索的基于属性的加密用户密钥作为用于受保护资源访问请求的标头字段上的密钥-散列消息认证码数字签名的秘钥来生成认证码(步骤910)。进一步,客户端设备使用客户端资源应用将生成的认证码插入到认证码字段中并且将用户密钥标识符插入到嵌入在受保护资源访问请求的标头字段内的用户密钥标识符字段中(步骤912)。
客户端设备使用客户端资源应用经由网络向资源服务器发送包括生成的认证码和用户密钥标识符的受保护资源访问请求,以访问由资源服务器托管的受保护资源(步骤914)。随后,客户端设备使用客户端资源应用从资源服务器接收关于是准许还是拒绝对受保护资源的访问的响应(步骤916)。此后,该过程终止。
因此,本发明的说明性实施例提供了用于将对应于资源用户的基于属性的加密用户密钥用作用于由资源用户作出的受保护资源访问请求的一组标头字段上的密钥-散列消息认证码数字签名的秘钥来进行用户认证和授权的计算机实现的方法、计算机系统和计算机程序产品。已经出于说明的目的呈现了本发明的各种实施例的描述,但并不旨在是穷尽的或者限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变型对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
Claims (20)
1.一种用于资源用户认证和授权的计算机实现的方法,所述计算机实现的方法包括:
由计算机基于将检索的基于属性的加密用户密钥用作用于经由网络从资源用户的客户端设备接收的受保护资源访问请求的一组标头字段上的密钥散列消息认证码数字签名的秘钥来生成认证码;
由所述计算机将所生成的认证码与在所述受保护资源访问请求的嵌入标头字段内读取的认证码进行比较;
由所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间是否存在匹配;
响应于所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间存在匹配,由所述计算机认证所述资源用户;以及
响应于所述资源用户的认证,由所述计算机使用对应于所述资源用户的所检索的基于属性的加密用户密钥执行对应于所述受保护资源访问请求的加密的受保护资源的解密。
2.根据权利要求1所述的计算机实现的方法,进一步包括:
由所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密是否成功以形成解密的受保护资源;
响应于所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密成功以形成解密的受保护资源,由所述计算机确定所述资源用户被授权访问所述解密的受保护资源并且准予访问;以及
响应于所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密不成功,由所述计算机确定所述资源用户未被授权访问所述加密的受保护资源并且拒绝访问。
3.根据权利要求1所述的计算机实现的方法,进一步包括:
由所述计算机经由所述网络从对应于所述资源用户的所述客户端设备接收所述受保护资源访问请求,所述受保护资源访问请求包括所述一组标头字段、包含所述认证码的嵌入认证码字段以及包含用户密钥标识符的嵌入用户密钥标识符字段;
由所述计算机读取所述受保护资源访问请求中的包含所述认证码的嵌入认证码字段和包含所述用户密钥标识符的嵌入用户密钥标识符字段;以及
由所述计算机使用在所述受保护资源访问请求的所述嵌入用户密钥标识符字段内读取的所述用户密钥标识符从所述计算机的密钥存储中检索基于属性的加密用户密钥以形成检索的基于属性的加密用户密钥,其中所述用户密钥标识符唯一地标识所述密钥存储中的基于属性的加密用户密钥。
4.根据权利要求3所述的计算机实现的方法,其中除了所述一组标头字段外,所述客户端设备的客户端资源应用还将所述嵌入认证码字段和所述嵌入用户密钥标识符字段嵌入所述受保护资源访问请求中,并且其中所述客户端资源应用在向所述计算机发送所述受保护资源访问请求之前,将所述认证码插入所述嵌入认证码字段中并且将所述用户密钥标识符插入所述嵌入用户密钥标识符字段中,并且其中所述客户端资源应用在所述计算机成功解密后利用所述加密的受保护资源。
5.根据权利要求1所述的计算机实现的方法,其中,所述受保护资源访问请求是请求访问由所述计算机托管的所述加密的受保护资源。
6.根据权利要求1所述的计算机实现的方法,其中,所检索的基于属性的加密用户密钥对应于所述资源用户。
7.根据权利要求1所述的计算机实现的方法,进一步包括:
响应于所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间不存在匹配,由所述计算机确定所述资源用户未被认证并且拒绝所述资源用户对所述加密的受保护资源的访问。
8.一种用于资源用户认证和授权的计算机系统,所述计算机系统包括:
总线系统;
连接至所述总线系统的存储设备,其中所述存储设备存储程序指令;以及
连接至所述总线系统的处理器,其中所述处理器执行所述程序指令以:
基于将检索的基于属性的加密用户密钥用作用于在经由网络从资源用户的客户端设备接收的受保护资源访问请求的一组标头字段上的密钥散列消息认证码数字签名的秘钥来生成认证码;
将所生成的认证码与在所述受保护资源访问请求的嵌入标头字段内读取的认证码进行比较;
确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间是否存在匹配;
响应于确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间存在匹配,认证所述资源用户;以及
响应于所述资源用户的认证,使用对应于所述资源用户的所检索的基于属性的加密用户密钥来执行对应于所述受保护资源访问请求的加密的受保护资源的解密。
9.根据权利要求8所述的计算机系统,其中,所述处理器进一步执行所述程序指令以:
使用所检索的基于属性的加密用户密钥确定对所述加密的受保护资源的解密是否成功以形成解密的受保护资源;
响应于确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密成功以形成所述解密的受保护资源,确定所述资源用户被授权访问所述解密的受保护资源并准许访问;以及
响应于确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密不成功,确定所述资源用户未被授权访问所述加密的受保护资源并且拒绝访问。
10.根据权利要求8所述的计算机系统,其中,所述处理器进一步执行所述程序指令以:
经由所述网络从对应于所述资源用户的所述客户端设备接收所述受保护资源访问请求,所述受保护资源访问请求包括所述一组标头字段、包含所述认证码的嵌入认证码字段、以及包含用户密钥标识符的嵌入用户密钥标识符字段;
读取所述受保护资源访问请求中包含所述认证码的嵌入认证码字段和包含所述用户密钥标识符的嵌入用户密钥标识符字段;以及
使用在所述受保护资源访问请求的所述嵌入用户密钥标识符字段内读取的所述用户密钥标识符从所述计算机系统的密钥存储中检索基于属性的加密用户密钥以形成所述检索的基于属性的加密用户密钥,其中所述用户密钥标识符唯一地标识所述密钥存储中的所述基于属性的加密用户密钥。
11.根据权利要求10所述的计算机系统,其中除了所述一组标头字段以外,所述客户端设备的客户端资源应用还将所述嵌入认证码字段和所述嵌入用户密钥标识符字段嵌入所述受保护资源访问请求中,并且其中所述客户端资源应用在向所述计算机系统发送所述受保护资源访问请求之前,将所述认证码插入所述嵌入认证码字段中并且将所述用户密钥标识符插入所述嵌入用户密钥标识符字段中,并且其中所述客户端资源应用在所述计算机系统成功解密后利用所述加密的受保护资源。
12.根据权利要求8所述的计算机系统,其中,所述受保护资源访问请求是请求访问由所述计算机系统托管的所述加密的受保护资源。
13.根据权利要求8所述的计算机系统,其中,所检索的基于属性的加密用户密钥对应于所述资源用户。
14.一种用于资源用户认证和授权的计算机程序产品,所述计算机程序产品包括其中实施有程序指令的计算机可读存储介质,所述程序指令可由计算机执行以使所述计算机执行以下方法:
由所述计算机基于使用检索的基于属性的加密用户密钥作为用于经由网络从资源用户的客户端设备接收的受保护资源访问请求的一组标头字段上的密钥散列消息认证码数字签名的秘钥来生成认证码;
由所述计算机将所生成的认证码与在所述受保护资源访问请求的嵌入标头字段内读取的认证码进行比较;
由所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间是否存在匹配;
响应于所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间存在匹配,由所述计算机认证所述资源用户;以及
响应于所述资源用户的认证,由所述计算机使用对应于所述资源用户的所检索的基于属性的加密用户密钥来执行对应于所述受保护资源访问请求的加密的受保护资源的解密。
15.根据权利要求14所述的计算机程序产品,进一步包括:
由所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密是否成功以形成解密的受保护资源;
响应于所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密成功以形成解密的受保护资源,由所述计算机确定所述资源用户被授权访问所述解密的受保护资源并且准予访问;以及
响应于所述计算机确定使用所检索的基于属性的加密用户密钥对所述加密的受保护资源的解密不成功,由所述计算机确定所述资源用户未被授权访问所述加密的受保护资源并且拒绝访问。
16.根据权利要求14所述的计算机程序产品,进一步包括:
由所述计算机经由所述网络从对应于所述资源用户的所述客户端设备接收所述受保护资源访问请求,所述受保护资源访问请求包括所述一组标头字段、包含所述认证码的嵌入认证码字段和包含用户密钥标识符的嵌入用户密钥标识符字段;
由所述计算机读取所述受保护资源访问请求中包含所述认证码的嵌入认证码字段和包含所述用户密钥标识符的嵌入用户密钥标识符字段;以及
由所述计算机使用在所述受保护资源访问请求的所述嵌入用户密钥标识符字段内读取的所述用户密钥标识符从所述计算机的密钥存储中检索基于属性的加密用户密钥以形成所述检索的基于属性的加密用户密钥,其中所述用户密钥标识符唯一地标识所述密钥存储中的所述基于属性的加密用户密钥。
17.根据权利要求16所述的计算机程序产品,其中除了所述一组标头字段以外,所述客户端设备的客户端资源应用将所述嵌入认证码字段和所述嵌入用户密钥标识符字段嵌入在所述受保护资源访问请求中,并且其中所述客户端资源应用在向所述计算机发送所述受保护资源访问请求之前,将所述认证码插入所述嵌入认证码字段中并且将所述用户密钥标识符插入所述嵌入用户密钥标识符字段中,并且其中所述客户端资源应用在所述计算机成功解密后利用所述加密的受保护资源。
18.根据权利要求14所述的计算机程序产品,其中,所述受保护资源访问请求是请求访问由所述计算机托管的所述加密的受保护资源。
19.根据权利要求14所述的计算机程序产品,其中,所述检索的基于属性的加密用户密钥对应于所述资源用户。
20.根据权利要求14所述的计算机程序产品,进一步包括:
响应于所述计算机确定在所生成的认证码和在所述嵌入标头字段内读取的认证码之间不存在匹配,由所述计算机确定所述资源用户未被认证并且拒绝所述资源用户对所述加密的受保护资源的访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/140,446 | 2021-01-04 | ||
US17/140,446 US11750397B2 (en) | 2021-01-04 | 2021-01-04 | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization |
PCT/CN2022/070110 WO2022144024A1 (en) | 2021-01-04 | 2022-01-04 | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116601916A true CN116601916A (zh) | 2023-08-15 |
Family
ID=82219095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280008098.8A Pending CN116601916A (zh) | 2021-01-04 | 2022-01-04 | 作为用于密钥散列消息认证码用户认证和授权的密钥材料的基于属性的加密密钥 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11750397B2 (zh) |
JP (1) | JP2024501752A (zh) |
CN (1) | CN116601916A (zh) |
DE (1) | DE112022000340T5 (zh) |
GB (1) | GB2617995A (zh) |
WO (1) | WO2022144024A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4092539B1 (en) * | 2021-05-17 | 2024-09-18 | Elektrobit Automotive GmbH | Re-partitioning of a flash memory device |
JP2023001687A (ja) * | 2021-06-21 | 2023-01-06 | コニカミノルタ株式会社 | 認証システムおよび認証システムの制御方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010689B1 (en) * | 2000-08-21 | 2006-03-07 | International Business Machines Corporation | Secure data storage and retrieval in a client-server environment |
US6823453B1 (en) * | 2000-10-06 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Apparatus and method for implementing spoofing-and replay-attack-resistant virtual zones on storage area networks |
US10079686B2 (en) * | 2015-07-29 | 2018-09-18 | International Business Machines Corporation | Privacy-preserving attribute-based credentials |
WO2017088930A1 (en) * | 2015-11-27 | 2017-06-01 | Hewlett Packard Enterprise Development Lp | Distribution and verification of transaction integrity keys |
US10097544B2 (en) * | 2016-06-01 | 2018-10-09 | International Business Machines Corporation | Protection and verification of user authentication credentials against server compromise |
EP3337120B1 (en) * | 2016-12-14 | 2021-04-21 | Nxp B.V. | Network message authentication and verification |
US11563580B2 (en) * | 2020-11-12 | 2023-01-24 | Sap Se | Security token validation |
-
2021
- 2021-01-04 US US17/140,446 patent/US11750397B2/en active Active
-
2022
- 2022-01-04 CN CN202280008098.8A patent/CN116601916A/zh active Pending
- 2022-01-04 WO PCT/CN2022/070110 patent/WO2022144024A1/en active Application Filing
- 2022-01-04 JP JP2023540846A patent/JP2024501752A/ja active Pending
- 2022-01-04 DE DE112022000340.5T patent/DE112022000340T5/de active Pending
- 2022-01-04 GB GB2311463.0A patent/GB2617995A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220217000A1 (en) | 2022-07-07 |
US11750397B2 (en) | 2023-09-05 |
JP2024501752A (ja) | 2024-01-15 |
DE112022000340T5 (de) | 2023-09-14 |
GB2617995A (en) | 2023-10-25 |
WO2022144024A1 (en) | 2022-07-07 |
GB202311463D0 (en) | 2023-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11997083B2 (en) | Secure authentication of a device through attestation by another device | |
EP3750095B1 (en) | Fast smart card logon | |
CN109558721B (zh) | 客户端应用程序的安全单点登录和条件访问的方法和系统 | |
JP6526181B2 (ja) | スマートカードによるログオンおよび連携されたフルドメインログオン | |
JP6121049B2 (ja) | プロキシを使用したリソースへの安全なアクセス | |
US10097544B2 (en) | Protection and verification of user authentication credentials against server compromise | |
JP6335280B2 (ja) | 企業システムにおけるユーザおよびデバイスの認証 | |
US9992029B1 (en) | Systems and methods for providing authentication to a plurality of devices | |
US20140258711A1 (en) | Application Specific Certificate Management | |
WO2022144024A1 (en) | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization | |
EP4423645A1 (en) | Control of access to computing resources implemented in isolated environments | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
CN117121435A (zh) | 连接弹性多因素认证 | |
Dočár | Bezpečnostní řešení pro cloudové technologie |
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 |