CN117561508A - 可验证凭证的跨会话颁发 - Google Patents
可验证凭证的跨会话颁发 Download PDFInfo
- Publication number
- CN117561508A CN117561508A CN202280042722.6A CN202280042722A CN117561508A CN 117561508 A CN117561508 A CN 117561508A CN 202280042722 A CN202280042722 A CN 202280042722A CN 117561508 A CN117561508 A CN 117561508A
- Authority
- CN
- China
- Prior art keywords
- user
- computing system
- session
- verifiable
- identity token
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
- G06F21/335—User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
-
- 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/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/3218—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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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/3234—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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
- H04W12/033—Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
可验证凭证的跨会话获取。第一会话包括生成对第一会话和用户已知的用户机密,以及加密身份令牌的生成,加密身份令牌包括关于用户的认证和用户机密的声明。在第二会话中,第二计算系统使用获取到的身份令牌来获得可验证凭证。用户被提示在身份令牌内证明对用户机密的知悉。响应于该知悉的成功证明和身份令牌的验证,颁发方系统颁发依赖于身份令牌内包括的一个或多个声明的可验证凭证,然后向用户提供可验证凭证。
Description
背景技术
现有的计算技术提供了一种被称为“可验证凭证”的数据结构。在这些技术中,声明颁发方对一个主体做出一个或多个声明,并生成可验证凭证。每个声明包括键-值对。可验证凭证包括那些(多个)声明以及证明指令(例如,元数据),以证明(多个)声明没有被篡改,并且确实是由声明颁发方所颁发的。然后,声明颁发方将可验证凭证提供给声明持有方,以便呈现给依赖那些声明的真实性的任何依赖方。依赖方计算系统随后遵循证明指令,从而证明声明是真实的。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述那些环境中操作的实施例。相反,提供本背景技术仅用于说明可以实践本文描述的一些实施例的一个示例性技术领域。
发明内容
本发明内容旨在以简化的形式介绍下面在具体实施方式中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题范围的辅助。
本文描述的原理允许可验证凭证的跨会话获取。在该获取过程中,存在第一会话和第二会话。第一会话在终端用户和第一计算系统之间建立。第一会话包括第一计算系统确定与用户相关联的可验证凭证将被生成。第一计算系统生成对第一会话和用户已知的用户机密。此外,作为第一会话的部分,身份令牌被获取,身份令牌包含关于用户的认证和用户机密的声明。然后,第一计算系统使身份令牌被提供给用户控制的第二计算系统,以在用户还在第二会话中证明对用户机密的知悉的条件下,由第二计算系统在使用第二会话来获取可验证凭证时使用。
在第二会话中,第二计算系统使用所获取的身份令牌来获得可验证凭证。第二会话被建立在第二计算系统(及其用户)和颁发可验证凭证的颁发方系统之间。在第二会话中,第二计算系统将身份令牌以及基于身份令牌来颁发可验证凭证的请求提供给颁发方系统。用户被提示在身份令牌内证明用户机密的知悉。颁发方计算系统验证身份令牌,并接收第二计算系统的终端用户知道用户机密的证明。作为响应,颁发方系统颁发依赖于被包括在身份令牌内的一个或多个声明的可验证凭证。
因此,用户可以在一个会话中发起可验证凭证的创建,并在第二会话中获取可验证凭证。因此,用户可以在自身不能够生成可验证凭证的计算系统上发起可验证凭证创建。
附加的特征和优点将在下面的描述中阐述,并且部分地从描述中显而易见,或者可以通过实践本文的教导而获知。本发明的特征和优点可以通过所附权利要求中特别指出的仪器和组合来实现和获得。本发明的特征将从下面的描述和所附权利要求中变得更加充分明显,或者可以通过实践下文所阐述的本发明而获知。
附图说明
为了描述可以获得上述和其他优点和特征的方式,将通过参考附图中示出的具体实施例来呈现对上述简要描述的主题的更具体的描述。理解到这些附图仅描绘了典型的实施例,因此不被认为是限制范围的,将通过使用附图来描述和解释实施例,其中:
图1图示了可验证凭证,可验证凭证包括多个可验证声明、以及用于证明声明是由颁发方做出的证明指令;
图2图示了可验证凭证(诸如图1的可验证凭证)在其中被创建和使用的环境;
图3图示了多会话环境,在该环境中本文所描述的原理可以操作以向用户颁发可验证凭证;
图4图示了根据本文所描述的原理用于协助用户跨会话获取可验证凭证的方法的流程图;
图5图示了身份令牌的数据结构,其包括关于用户的认证、用户机密以及第一会话的潜在其它会话状态的声明;
图6图示了根据本文所描述的原理的使用在第一会话中生成的身份令牌在第二会话中获得可验证凭证的方法的流程图;
图7图示了根据本文所描述的原理的颁发方系统生成可验证凭证的方法的流程图;以及
图8图示了在其中本文所描述的原理可以被采用的示例计算系统。
具体实施方式
这里描述的原理允许跨会话获取可验证凭证。在该获取过程中,存在第一会话和第二会话。第一会话在终端用户和第一计算系统之间被建立。第一会话包括第一计算系统确定与用户相关联的可验证凭证将被生成。第一计算系统生成对第一会话和用户已知的用户机密。此外,作为第一会话的一部分,身份令牌被获取,该身份令牌包含关于用户的认证和用户机密的声明。然后,第一计算系统使得身份令牌被提供给在用户控制下的第二计算系统,并由第二计算系统在第二会话中使用。
在第二会话中,第二计算系统使用所获取的身份令牌来获得可验证凭证。第二会话被建立在第二计算系统(及其用户)和颁发可验证凭证的颁发方系统之间。在第二会话中,第二计算系统向颁发方系统提供身份令牌、以及基于身份令牌颁发可验证凭证的请求。用户被提示在身份令牌内证明用户机密的知悉。颁发方计算系统验证身份令牌,并接收第二计算系统的终端用户知道用户机密的证明。作为响应,颁发方系统颁发可验证凭证,该可验证凭证依赖于被包括在身份令牌内的一个或多个声明。
因此,用户可以在一个会话中发起可验证凭证的创建,并在第二会话中获取可验证凭证。因此,用户可以在自身无法生成可验证凭证的计算系统上发起可验证凭证的创建。
为了向读者介绍可验证凭证的概念,首先将参照图1描述示例可验证凭证100。此外,随后将参照图2描述在其中可验证凭证被创建和使用的环境200。此后,将参照图3至图8描述本文实施例的原理。
在本文中,“颁发方”是对一个主题做出至少一个断言的实体。该断言在本文中也被称为“声明”。“凭证”是一个或多个声明的集合。如该术语在本文中被使用,“凭证”可以包括由多个颁发方所做出的声明,但该术语也适用于具有单个颁发方的声明集合。“可验证凭证”是一种凭证,在其中密码机制(诸如数字签名)被用来检测自凭证被颁发以来该凭证是否被篡改的,并可以被用于验证凭证颁发方的身份。可验证凭证内的声明不必是关于同一主体的,任何声明的主体不必与可验证凭证的持有方相同。
图1图示了包括多个可验证声明110的可验证凭证100。可验证声明110被示为包括四个可验证声明111至114,尽管省略号115表示可验证凭证100可以包括任何数目(一个或多个)的可验证声明。可验证凭证100还包括证明指令120,证明指令120被用于验证自可验证凭证100由可验证凭证100的颁发方创建以来可验证凭证100未被篡改,并验证可验证声明110的颁发方的身份。证明指令的示例是颁发方的数字签名。证明指令在其中被用于证明声明的可验证凭证在本领域是已知的。
图2图示了可验证凭证(诸如图1的可验证凭证100)在其中被创建和使用的环境200。该环境200包括在颁发方的信任范围内操作的颁发方计算系统210。颁发方的示例包括公司、组织、协会、政府、机构、个人或可以做出可以被其他方依赖的断言的任何其他实体。颁发方执行断言声明的角色,使得颁发方计算系统210针对这些声明创建可验证凭证(诸如图1的可验证凭证100),并且使得颁发方计算系统210将可验证凭证传输给持有方计算系统220,如箭头201所示。颁发方计算系统210在本文中也可以简单地被称为“颁发方系统210”,其用户被称为“颁发方”。如箭头211所示,颁发方系统210还向注册表计算系统240传输验证标识符和使用模式。
同样如箭头201所示,持有方计算系统220获取所传输的可验证凭证。持有方计算系统220代表持有方操作,持有方使用持有方计算系统220来拥有并潜在地存储可验证凭证。如箭头202所示,持有方还使持有方计算系统向验证方计算系统230呈现可验证凭证。持有方计算系统220在本文中也可以简单地被称为“持有方系统220”,并且其用户被称为“持有方”。如箭头212所示,持有方系统220还向注册表计算系统240传输标识符和使用模式。
持有方系统220呈现可验证凭证本身,或者以另一种数据结构的形式呈现来自可验证凭证的数据,这在本文中也可以被称为“可验证呈现”。可验证呈现表达来自一个或多个可验证凭证的数据,并且以使得数据的作者身份可验证的方式进行打包。如果可验证凭证被直接呈现,则它们成为可验证呈现。从可验证凭证导出的、可加密验证但本身不包含可验证凭证的数据格式也被包括在可验证呈现的定义内。除了向依赖方呈现可验证凭证之外,持有方系统还可以向持有方呈现数字钱包221,其呈现了针对由持有方系统220持有的一个或多个可验证凭证中的每一个可验证凭证的可视化。
同样如箭头202所表示的,验证方计算系统230获取所传输的可验证凭证(可选地在可验证呈现内)。验证方计算系统230代表验证方操作,是依赖于在可验证凭证中所做出的一个或多个声明的依赖方。验证方计算系统230评估可验证凭证是否是颁发方的未篡改(且未过期)的声明。这包括遵循存在于可验证凭证(例如,可验证凭证100)内的任何证明指令(例如,证明指令120)。然后,验证方计算系统230可以基于该验证采取动作,诸如将在可验证凭证中做出的(多个)声明视为有效并由颁发方颁发。
验证方计算系统230有时在下文中也被称为“验证方系统230”,并且其用户被称为“验证方”。作为验证的一部分,验证方230将验证标识符和模式发送给注册表计算系统240,如箭头213所示。颁发方系统210、持有方系统220和验证方系统230的用户可以是人、组织或其他实体。例如,颁发方可以是云服务。
注册表计算系统240调解标识符、密钥、可验证凭证模式、撤销注册表、颁发方公钥等的创建和验证。示例可验证数据注册表包括可信数据库、去中心化数据库和分布式帐本。颁发方计算系统210、持有方计算系统220、验证方计算系统230和注册表计算系统240中的每一个计算系统如下面针对图8的计算系统800所描述的那样构造。
图3图示了多会话环境300,在多会话环境300中本文所描述的原理可以操作以便向用户303颁发可验证凭证。多会话环境300包括第一会话301和第二会话302。
第一会话301包括用户303、第一用户设备312和身份令牌提供方311之间的交换。第一会话301使得用户303知晓在用户303和第一会话301之间共享的用户机密332。第一会话301还生成身份令牌331,该身份令牌331与用户机密342一起被提供给第二会话302。第二会话302包括用户303、第二用户设备322和可验证凭证颁发方321之间的交换,使得用户303被颁发可验证凭证346。身份令牌提供方311、第一用户设备312、可验证凭证颁发方系统321和第二用户设备322中的每个可以如下面针对图8的计算系统800所描述的那样构造。
图4图示了根据本文所描述的原理的用于协助用户跨会话获取可验证凭证的方法400的流程图。方法400可以由身份令牌提供方311在第一会话301内与第一用户设备312协作来执行。因此,现在将参考图3的环境300来描述该方法400。由第一用户设备执行的动作在图4的左侧列标题“第一用户设备”下图示。由身份令牌提供方执行的动作在图4的右侧列标题“ID令牌提供方”下列出。
方法400包括建立与第一用户设备的用户相关联的第一会话(动作401)。作为该第一会话的建立的一部分,第一用户设备可以认证该用户(动作411)。作为示例,在图3中,第一用户设备312与第一用户设备312的用户303建立第一会话301。如果在第一会话的建立之前用户303还没有向第一用户设备312认证,则第一用户设备312可以认证用户303。在本文被称为“信息亭示例”的一个示例实现中,第一用户设备312是商店前信息亭内的计算显示器。
然后第一用户设备确定与用户相关联的可验证凭证将被生成(动作402)。在图3的示例环境300中,第一用户设备312确定与用户303相关联的可验证凭证将被生成。该可验证凭证与用户“相关联”,就这个意义而言可验证凭证将包括一个或多个声明,其中用户是那些(多个)声明的主体。
然后,第一用户设备生成对第一会话和用户已知的用户机密(动作403)。在图3的示例环境300中,第一用户设备312生成用户机密332,该用户机密随后被用户303知道。该用户机密的生成可以包括第一用户设备选择用户机密(动作412),然后使得用户机密被绘制(例如,显示)给用户(动作413)。在信息亭示例中,信息亭显示器可以向用户显示用户机密。
用户机密可以是可以由用户识别的任何数据。例如,用户机密可以是字母数字字符序列(例如,PIN),或者可能是图像。用户机密对第一会话是“已知”的,因为用户机密与第一会话301相关联。作为具体示例,从第一会话301生成的加密身份令牌可以包括用户机密。
方法400然后包括获取身份令牌,该身份令牌包括关于用户的认证的声明以及用户机密(动作404)。可选地,身份令牌还可以包括关于第一会话的其他会话信息。在图3的示例中,第一用户设备312与身份令牌提供方311交互(如双向箭头341所示),以使得身份令牌提供方311生成身份令牌331。身份令牌提供方311被可验证凭证颁发方321信任以生成有效身份令牌。备选地,如果第一用户设备312已经与可验证凭证颁发方321建立信任以生成有效身份令牌,则第一用户设备312本身可以是身份令牌提供方。
作为示例,图5图示了身份令牌500的数据结构,其包括关于用户的认证的声明510、用户机密520以及该第一会话的潜在其它会话状态530。这里,关于用户的认证的声明510包括两个声明511和512,在一个实施例中,身份令牌是JSON网络令牌(JWT)。
身份令牌可以被加密为可由可验证凭证颁发方的私钥解密。在图3的示例中,身份令牌331可由可验证凭证颁发方321使用可验证凭证颁发方321的私钥来解密。因此,身份令牌331是由可验证凭证颁发方321的公钥加密的。因此,身份令牌可以是加密的JSON加密对象(“JWE”对象)。尽管第一用户设备312本身可以基于其自身对用户303的认证来生成JWE对象,但第一用户设备312可以是在OATH2.0和OPENID协议中使用的术语“客户端”。备选地,身份令牌提供方311本身可以是作为客户端以使用OPENID协议获取身份令牌的服务。
向用户绘制的用户机密332是也包括在加密身份令牌内的用户机密520的示例。因此,用户303知道身份令牌331内的用户机密不是因为用户303可以在身份令牌331内看到,而是因为第一用户设备312向用户303绘制用户机密332(如箭头342所示)。
返回图4,然后第一用户设备使得身份令牌将被提供给同样在用户控制下的第二计算系统(动作405)。然后该身份令牌在第二会话中被用来帮助可验证凭证颁发方系统为用户颁发可验证凭证。在图3的示例环境300中,第一用户设备312向第二用户设备322提供(如箭头343所示)身份令牌331。在第二会话302中,可验证凭证颁发方系统321将使用身份令牌331为用户303生成可验证凭证346。向第二用户设备提供身份令牌(动作405)可以由第一用户设备执行,使得视觉码将被显示,该视觉码被配置为将由第二用户扫描。作为示例,第一用户设备312可以显示由第二用户设备322扫描的二维码。在信息亭示例中,也许用户使用用户的智能手机扫描显示在信息亭显示器上的二维码,其中智能手机能够参与到与可验证凭证颁发方进行的会话中。
图6图示了根据本文所描述的原理的使用在第一会话中生成的身份令牌在第二会话中获得可验证凭证的方法600的流程图。方法600可以在图3的环境300内执行。作为示例,作为第二会话302的一部分,可验证凭证346可以使用由第一用户设备312提供给(如箭头343所示)第二用户设备322的身份令牌331、以及使用由用户303提供给(如箭头344所示)第二用户设备322的用户机密332来生成。
根据方法600,第二计算系统从第一计算系统获取身份令牌(动作611)。参考图3作为示例,第二用户设备322从第一用户设备312获取(如箭头343所示)身份令牌331。如先前参考图5所述,身份令牌包括关于在第一会话301中做出或验证的用户303的认证的一个或多个声明。附加地,身份令牌331包括作为第一会话301的部分而被用户303知道的用户机密。身份令牌还可以包括第一会话301的其他会话状态。身份令牌可以被加密,使得用户机密不能被除了实际参与第一会话301的用户303之外的任何用户发现,因为用户303是在第一会话301内以明文(如箭头342所示)向其披露用户机密的唯一用户。
此外,第二计算系统与颁发可验证凭证的颁发方系统建立第二会话(动作612)。参考图3,作为示例,第二用户设备322与可验证凭证颁发方321建立第二会话302。箭头345表示第二用户设备322与可验证凭证颁发方321之间的通信,这些通信被执行以建立第二会话302,并且被执行以在第二会话302内通信。
身份令牌的获取(动作611)以及与颁发方系统建立的第二会话(动作612)在图6中被并行地示出。这仅仅是为了表示执行每个动作的精确顺序,其中的每个动作对于本文所描述的原理并不重要。第二会话可以在第二计算系统获取身份令牌时已经被建立、或者第二会话的创建可能由接收身份令牌的第二计算系统触发。根据本文所描述的原理,任意一种方式都是可接受的。
在第二计算系统获取身份令牌(动作611)之后以及在第二会话建立之后(动作612),第二计算系统将身份令牌提供给颁发方系统作为第二会话的部分(动作613)。在图3的示例环境300中,第二用户设备将身份令牌331提供给可验证凭证颁发方321。回想一下,身份令牌331是使用可验证凭证颁发方321的公钥被加密的。因此,可验证凭证颁发方321可以解密并读取身份令牌331的内容。
第二计算系统还请求可验证凭证基于身份令牌颁发可验证凭证(动作614)。身份令牌可以在针对可验证凭证的请求内,或者可能在单独的通信中被提供给颁发方系统。无论如何,颁发方系统接收身份令牌和针对可验证凭证的请求。可验证凭证是“基于”身份令牌的,就这个意义而言可验证凭证包括一个或多个声明,可验证凭证依赖于关于身份令牌内呈现的用户的认证的一个或多个声明。作为示例,身份令牌中关于用户的认证的声明可以简单地与可验证凭证中的声明相同。
第二计算系统还提示第二计算系统的用户来证明用户机密的知悉(动作615)。在图3的示例环境中,第二用户设备提示用户303来证明用户机密332的知悉。表示该证明的用户输入由箭头344表示。如果用户机密332是字符序列,则用户可以在该点输入字符序列。如果用户机密332是图像,则用户303可以通过从由第二用户设备322呈现的各种图像中选择正确的图像来证明秘密的知悉。在信息亭示例中,用户的智能电话可以提示用户输入在信息亭显示器上显示(或正在被显示)的字母数字序列。
第二用户设备322可以被配置为自动提示用户303提供用户机密322。备选地,也许第二用户设备322在提示用户提供证明之前等待可验证凭证颁发方321请求用户知悉的证明。
在第二计算系统接收到表示用户机密的用户知悉的证明的用户输入(动作617)之后,第二计算系统将用户输入提供给颁发方系统(动作618)。在图3的环境300中,第二用户设备322将用户输入提供给可验证凭证颁发方321。然后,颁发方计算系统使用获取的身份令牌和表示用户机密的使用知悉的证明的用户输入,并生成可验证凭证。图7图示了颁发方系统生成可验证凭证的方法700的流程图,下面将进一步描述。
但首先,将对图6进行一些最后的描述。在颁发方系统提供可验证凭证之后,第二计算系统接收可验证凭证(动作619)。从这一点开始,第二用户设备是可验证凭证的持有方计算系统(例如,图2的持有方220)。作为示例,在图3中,第二用户设备322从可验证凭证颁发方321接收可验证凭证,然后持有可验证凭证(例如,在数字钱包中)。然后,第二用户设备322可以向第一用户设备312呈现可验证凭证,然后第一用户设备312可以依赖于在可验证凭证内做出的声明。然后,第一用户设备312将是依赖方,诸如图2的验证方230。备选地,第二用户设备322可以向第一用户设备312传送可验证凭证,从而允许第一用户设备312是持有方(诸如图2的持有方220),并且此后第一用户设备312可以向依赖方呈现可验证凭证。
在信息亭示例中,信息亭显示器以字母数字个人身份识别码的形式显示用户机密。并且,用户扫描了二维码,以便用户的智能手机获取身份令牌。然后,用户的手机可以与在云中运行的可验证凭证服务合作,从而获取具有与身份令牌类似声明的可验证凭证。用户的手机可以在本地或云中的数字钱包中持有可验证凭证。用户的智能手机可以以二维码的形式显示可验证凭证(或相关联的可验证凭证),然后可以由信息亭扫描。如果二维码是可验证的呈现,这允许信息亭依赖正式的可验证凭证中做出的声明。备选地,如果二维码是可验证凭证本身,信息亭可以接收可验证凭证,从而成为可验证凭证的持有方。
图7图示了颁发方系统生成可验证凭证的方法700的流程图,并且将在下面进一步描述。如上文关于图6所提到的,颁发方系统接收针对可验证凭证的请求(动作711),该请求由请求方提供(例如,在图6的动作614中)。附加地,颁发方系统接收与请求相关联的身份令牌(动作712),该身份令牌由请求方提供(例如,在图6的动作613中)。颁发方系统还接收请求计算系统的用户知道在由请求方提供的身份令牌(例如,在图6的动作618中)中指定的用户机密的证明(动作714)。在图3的示例环境300中,可验证凭证颁发方321接收身份令牌331、表示用户机密332的用户知悉的证明的用户输入、以及来自第二用户设备322的针对可验证凭证的请求。
颁发方系统验证接收到的身份令牌(动作713)。例如,颁发方系统解密身份令牌,验证身份令牌提供方的签名,确定身份令牌未过期,并确定身份令牌提供方在可信身份令牌提供方列表中。此时,颁发方系统可以通过读取经解密的身份令牌来确定用户机密是什么。然后,颁发方系统可以通过将用户输入与用户机密进行比较来确定请求计算系统的用户是否具有用户机密的知悉。例如,在图3中,用户303可能已经键入了正确的字符序列,证明第二会话302中的第二用户设备322的用户303确实与身份令牌在其中被生成的第一会话301的用户303相同。
响应于接收到请求计算系统的用户知道用户机密的证明,可验证凭证确定请求计算系统的用户是终端用户,关于该终端用户的认证声明在身份令牌中被做出(动作715)。然后,颁发方系统生成带有声明的可验证凭证,该声明依赖于(或该声明是)在身份令牌中做出的声明的全部或子集(动作716)。然后,颁发方系统向请求计算系统提供可验证凭证(动作717)。
在一个实施例中,无论是在同一机器上还是或许在不同机器上,可验证凭证颁发方321可以使用多个身份令牌来生成可验证凭证,每个身份令牌是在不同会话中针对用户303生成的。可验证凭证颁发方321可以推迟可验证凭证的创建,直到用户已经证明被包括在所有身份令牌中的所有用户机密的知悉。备选地,如果用户可以证明那些用户机密中的一些用户机密的知悉,则可验证凭证颁发方321可以生成具有基于身份令牌的声明的可验证凭证,针对身份令牌用户能够证明相关联的用户机密的知悉。
所描述的是在一个会话中发起可验证凭证的创建,并在第二会话中获取可验证凭证的机制。因此,用户可以在自身不能够生成可验证凭证的会话中发起可验证的创建。第二会话被描述为在与第一会话不同的机器上操作。然而,在一些实施例中,第一用户设备312和第二用户设备322可以是同一个。在那种情况下,单个用户设备参与在会话301和302两者中。因为本文所描述的原理是在计算系统的上下文中执行的,所以将参考图8描述计算系统的一些介绍性讨论。
计算系统现在越来越多地采用各种形式。例如,计算系统可以是手持设备、器具、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心,或者甚至是传统上未被视为计算系统的设备,例如可穿戴设备(例如眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包括至少一个物理和有形处理器,以及能够在其上具有可由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上,并且可以包括多个组成计算系统。
如图8所示,在其最基本的配置中,计算系统800包括至少一个硬件处理单元802和存储器804。处理单元802包括通用处理器。虽然不需要,但处理单元802还可以包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。在一个实施例中,存储器804包括物理系统存储器。该物理系统存储器可以是易失性、非易失性或两者的某种组合。在第二实施例中,存储器是诸如物理存储介质的非易失性大容量存储器。如果计算系统是分布式的,那么处理、存储器和/或存储能力也可以是分布式的。
计算系统800在其上还具有通常被称为“可执行组件”的多个结构。例如,计算系统800的存储器804被示出为包括可执行组件806。术语“可执行组件”是本领域普通技术人员熟知的结构的名称,该结构可以是软件、硬件或其组合。例如,当以软件实现时,本领域普通技术人员将理解,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法(等等)。这样的可执行组件存在于计算系统的堆中、计算机可读存储介质中或其组合中。
本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,使计算系统执行功能。这样的结构可以由处理器直接计算机可读(如果可执行组件是二进制的话也是如此)。备选地,该结构可以被构造为可解释和/或编译(无论是在单个阶段还是在多个阶段),以便生成可由处理器直接解释的二进制。当使用术语“可执行组件”时,对可执行组件的示例结构的这种理解在计算领域普通技术人员的理解范围内。
术语“可执行组件”也被普通技术人员很好地理解为包括诸如硬编码或硬连线逻辑门之类的结构,这些结构专门或几乎专门在硬件中实现,例如在现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路内。因此,术语“可执行组件”是计算领域普通技术人员很好理解的结构的术语,无论是以软件、硬件还是组合实现的。在本说明书中,还可以使用术语“组件”、“代理”、“管理器”、“服务”、“引擎”、“模块”、“虚拟机”等。如本说明书中所使用的,在本案中,这些术语(无论是否使用修改子句表示)也意在与术语“可执行组件”同义,因此也具有计算领域的普通技术人员所熟知的结构。
在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作在软件中实现,则(执行该动作的相关联的计算系统的)一个或多个处理器响应于已经执行了构成可执行组件的计算机可执行指令来指导计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这种操作的一个例子涉及数据的操纵。如果这样的动作在硬件(例如在FPGA或ASIC内)中被排他地或接近排他地实现,则计算机可执行指令可以是硬编码的或硬连线的逻辑门。计算机可执行指令(和操纵的数据)可以存储在计算系统800的存储器804中。计算系统800还可以包含允许计算系统800通过例如网络810与其他计算系统通信的通信信道808。
虽然并非所有计算系统都需要用户接口,但在一些实施例中,计算系统800包括用于与用户接口的用户接口系统812。用户接口系统812可以包括输出机构812A以及输入机构812B。本文描述的原理不限于精确的输出机构812A或输入机构812B,因为这将取决于设备的性质。然而,输出机构812A可以包括例如扬声器、显示器、触觉输出、虚拟或增强现实、全息图等。输入机构812B的示例可以包括例如麦克风、触摸屏、虚拟或增强现实、全息图、相机、键盘、鼠标或其他指针输入、任何类型的传感器等。
本文描述的实施例可以包括或利用包括计算机硬件的专用或通用计算系统,例如一个或多个处理器和系统存储器,如下面更详细讨论的。本文描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这种计算机可读介质可以是可由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种明显不同的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-□ROM或其他光盘存储、磁盘存储或其他磁存储设备,或任何其他物理和有形存储介质,其可用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置,并且可由通用或专用计算系统访问。
“网络”被定义为一个或多个数据链路,这些数据链路能够在计算系统和/或模块和/或其他电子设备之间传送电子数据。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传送或提供给计算系统时,计算系统将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其可以用于以计算机可执行指令或数据结构的形式承载期望的程序代码装置。上述内容的组合也应包括在计算机可读介质的范围内。
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传送到存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算系统RAM和/或计算系统处的非易失性存储介质。因此,应当理解,存储介质可以包括在也(或甚至主要)利用传输介质的计算系统组件中。
计算机可执行指令包括例如指令和数据,指令和数据当在处理器处被执行时使通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组。备选地或附加地,计算机可执行指令可以配置计算系统以执行特定功能或功能组。计算机可执行指令可以是例如二进制文件或甚至在处理器直接执行之前经历一些翻译(例如编译)的指令,例如诸如汇编语言的中间格式指令,或者甚至是源代码。
尽管主题已经以特定于结构特征和/或方法动作的语言描述,但是应当理解,所附权利要求中定义的主题不一定限于上述描述的特征或动作。相反,所描述的特征和动作被公开为实现权利要求的示例形式。
本领域技术人员将理解,本发明可以在具有许多类型的计算系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(如眼镜)等。本发明还可以在分布式系统环境中实践,其中本地和远程计算系统都执行任务,本地和远程计算机系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
本领域技术人员还将理解,本发明可以在云计算环境中实践。云计算环境可以是分布式的,尽管这不是必需的。当分布式时,云计算环境可以在组织内国际分布和/或具有跨多个组织拥有的组件。在本说明书和以下权利要求中,“云计算”被定义为用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义并不局限于在适当部署时可以从这种模型中获得的任何其他众多优势。
对于本文公开的过程和方法,可以以不同的顺序实现在过程和方法中执行的操作。此外,所概述的操作仅作为示例提供,并且一些操作可以是可选的、组合成更少的步骤和操作、补充有进一步的操作或者扩展成额外的操作,而不减损所公开的实施例的本质。
在不脱离本发明的精神或特性的情况下,本发明可以以其他特定形式实施。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前述描述来指示。在权利要求的含义和等效范围内的所有变更都应包含在其范围内。
Claims (10)
1.一种计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,所述一个或多个计算机可读介质上具有计算机可执行指令,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述计算系统通过以下在可验证凭证的跨会话获取中协助用户:
建立与所述计算系统的用户相关联的第一会话,所述第一会话包括:
确定与所述用户相关联的可验证凭证将被生成;
生成对所述第一会话和所述用户已知的用户机密;
获取身份令牌,所述身份令牌包含关于所述用户的认证和所述用户机密的声明;以及
使所述身份令牌被提供给所述用户控制的第二计算系统,以在所述用户还在第二会话中证明对所述用户机密的知悉的条件下,由所述第二计算系统在使用所述第二会话来获取可验证凭证时使用。
2.根据权利要求1所述的计算系统,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述使所述身份令牌被提供给所述第二计算系统包括使视觉码被显示,所述视觉码被配置为由所述第二计算系统扫描。
3.根据权利要求1所述的计算系统,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述生成用户机密包括:
选择用户机密;以及
使所述用户机密被绘制给所述用户。
4.根据权利要求1所述的计算系统,所述用户机密是字符序列。
5.根据权利要求1所述的计算系统,所述用户机密是图像。
6.根据权利要求1所述的计算系统,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述获取所述身份令牌包括请求认证服务器生成具有所述用户机密的所述身份令牌,以及检测所述身份令牌从所述认证服务器的接收。
7.根据权利要求1所述的计算系统,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述计算系统在所述可验证凭证在所述第二会话中被生成之后,在接收到所述可验证凭证的呈现后执行以下:验证被呈现的所述可验证凭证的或多个可验证声明。
8.根据权利要求1所述的计算系统,所述可验证凭证包括声明,所述声明依赖于关于所述身份令牌内呈现的所述用户的所述认证的一个或多个声明。
9.根据权利要求1所述的计算系统,所述身份令牌由与所述第二计算系统相关联的公钥加密。
10.一种第二计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,所述一个或多个计算机可读介质上具有计算机可执行指令,所述计算机可执行指令被构造为使得如果由所述一个或多个处理器执行,所述计算系统通过以下在第二会话中使用在第一会话中生成的身份令牌来获得可验证凭证:
从第一计算系统获取身份令牌,所述身份令牌包含关于所述第二计算系统的用户的认证的声明、以及由所述第一会话和所述第一计算系统的所述用户共享的用户机密;以及
建立与颁发可验证凭证的颁发方系统的第二会话,所述第二会话包括:
将所述身份令牌以及基于所述身份令牌来颁发可验证凭证的请求提供给所述颁发方系统;
提示所述第二计算系统的所述用户证明对所述用户机密的知悉;以及
如果所述第二计算系统的所述用户利用用户输入响应所述提示,则向所述颁发方系统提供表示所述用户输入的信息。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/348,663 | 2021-06-15 | ||
| US17/348,663 US12032663B2 (en) | 2021-06-15 | 2021-06-15 | Cross-session issuance of verifiable credential |
| PCT/US2022/028868 WO2022265740A1 (en) | 2021-06-15 | 2022-05-12 | Cross-session issuance of verifiable credential |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117561508A true CN117561508A (zh) | 2024-02-13 |
Family
ID=82020996
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202280042722.6A Pending CN117561508A (zh) | 2021-06-15 | 2022-05-12 | 可验证凭证的跨会话颁发 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12032663B2 (zh) |
| EP (1) | EP4356268A1 (zh) |
| CN (1) | CN117561508A (zh) |
| WO (1) | WO2022265740A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12028339B2 (en) * | 2021-11-19 | 2024-07-02 | Change Healthcare Holdings, Llc | Systems and methods for providing verifiable credentials |
| WO2023127977A1 (ko) * | 2021-12-27 | 2023-07-06 | (주)이스톰 | 블록체인 기반 인증 및 거래 시스템 |
| US11537700B1 (en) | 2022-07-24 | 2022-12-27 | Uab 360 It | Secure cross-device authentication system |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9853977B1 (en) * | 2015-01-26 | 2017-12-26 | Winklevoss Ip, Llc | System, method, and program product for processing secure transactions within a cloud computing system |
| US9760700B2 (en) | 2015-12-03 | 2017-09-12 | Google Inc. | Image based CAPTCHA challenges |
| US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
| US20180336612A1 (en) * | 2017-05-18 | 2018-11-22 | Walmart Apollo, Llc | System for third-party item pickup authorization |
| CN110278084B (zh) * | 2018-03-16 | 2021-10-15 | 华为技术有限公司 | eID建立方法、相关设备及系统 |
| US11770261B2 (en) * | 2018-03-27 | 2023-09-26 | Workday, Inc. | Digital credentials for user device authentication |
-
2021
- 2021-06-15 US US17/348,663 patent/US12032663B2/en active Active
-
2022
- 2022-05-12 CN CN202280042722.6A patent/CN117561508A/zh active Pending
- 2022-05-12 WO PCT/US2022/028868 patent/WO2022265740A1/en not_active Ceased
- 2022-05-12 EP EP22730338.5A patent/EP4356268A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US12032663B2 (en) | 2024-07-09 |
| WO2022265740A1 (en) | 2022-12-22 |
| US20220398299A1 (en) | 2022-12-15 |
| EP4356268A1 (en) | 2024-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11665006B2 (en) | User authentication with self-signed certificate and identity verification | |
| US20220407720A1 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain | |
| US11159315B2 (en) | Generating or managing linked decentralized identifiers | |
| EP3984161B1 (en) | Cryptographic key generation using external entropy generation | |
| US20190229911A1 (en) | Blockchain-implemented method and system | |
| JP2020528224A (ja) | 信頼できる実行環境におけるスマート契約動作のセキュアな実行 | |
| JP2020527298A (ja) | 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること | |
| WO2020256897A1 (en) | Validation data structure for decentralized identity claim | |
| CN113966597B (zh) | 使用多个解析器解析分散标识符 | |
| KR20200054123A (ko) | 합의 노드와 클라이언트 노드 간의 통신을 관리하는 방법 | |
| EP3957043B1 (en) | Failover between decentralized identity stores | |
| CN117561508A (zh) | 可验证凭证的跨会话颁发 | |
| CN115191104A (zh) | 由去中心化标识符锚定的去中心化标识 | |
| EP4026291B1 (en) | Control of the delegated use of did-related data | |
| USRE49968E1 (en) | Electronic identification verification methods and systems with storage of certification records to a side chain | |
| US10608997B1 (en) | Context-based data access control | |
| CN114742649A (zh) | 交易数据处理方法、装置和服务器 | |
| CN114730333A (zh) | 四个因素认证 | |
| Ajlouni et al. | Secure Mobile Authentication With Blockchain | |
| CN119011181A (zh) | 信息处理方法和装置、存储介质及电子设备 | |
| Radke | Security ceremonies: including humans in cryptographic protocols | |
| CN120631772A (zh) | 业务接口测试方法、装置、电子设备及存储介质 | |
| CN120258974A (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 |