CN115867910A - 使用策略令牌的隐私保护身份属性验证 - Google Patents
使用策略令牌的隐私保护身份属性验证 Download PDFInfo
- Publication number
- CN115867910A CN115867910A CN202180049517.8A CN202180049517A CN115867910A CN 115867910 A CN115867910 A CN 115867910A CN 202180049517 A CN202180049517 A CN 202180049517A CN 115867910 A CN115867910 A CN 115867910A
- Authority
- CN
- China
- Prior art keywords
- identity
- token
- computer
- user device
- user
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 claims abstract description 97
- 230000003993 interaction Effects 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 45
- 238000010200 validation analysis Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 61
- 230000008569 process Effects 0.000 description 44
- 235000013334 alcoholic beverage Nutrition 0.000 description 25
- 239000000463 material Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000015654 memory Effects 0.000 description 13
- 241001147458 Dasheen mosaic virus Species 0.000 description 11
- 230000008520 organization Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 239000003814 drug Substances 0.000 description 5
- 229940079593 drug Drugs 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013524 data verification Methods 0.000 description 4
- 230000035622 drinking Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- FMFKNGWZEQOWNK-UHFFFAOYSA-N 1-butoxypropan-2-yl 2-(2,4,5-trichlorophenoxy)propanoate Chemical compound CCCCOCC(C)OC(=O)C(C)OC1=CC(Cl)=C(Cl)C=C1Cl FMFKNGWZEQOWNK-UHFFFAOYSA-N 0.000 description 1
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical group CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000037308 hair color Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 239000013259 porous coordination polymer Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/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/321—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 a third party or a trusted authority
- H04L9/3213—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 a third party or a trusted authority using tickets or tokens, 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/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
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/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
- H04L9/3221—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 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/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/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
Abstract
本发明提出了用于隐私保护身份属性验证的方法和系统。在信赖实体与用户之间的交互期间,信赖实体计算机可以向用户设备传输策略令牌。策略令牌可以指示信赖实体执行交互所需的信息。用户设备可以验证策略令牌,然后结合身份令牌使用策略令牌来生成零知识证明。用户设备可以将零知识证明传输到身份服务提供者计算机。身份服务提供者计算机能够验证零知识证明,然后生成验证消息。身份服务提供者计算机能够对验证消息进行签名,并将经签名的验证消息传输到信赖实体计算机。信赖实体计算机能够验证验证消息并完成与用户的交互。
Description
相关申请的交叉引用
本申请是2020年7月14日提交的美国专利申请第16/928,367号的PCT申请,其全部内容通过引用并入本文。
背景技术
实体或组织有时需要收集或验证与其交互的其他实体的信息。例如,管理机动车辆的政府机构可能需要在颁发驾驶执照之前验证一个人的公民身份或年龄。通常,一个人会通过提供身份证件(诸如出生证明)来验证他们的年龄。同样,作为“客户身份认证”要求的一部分,商业企业通常需要验证信息。例如,酒类商店可以在向客户出售含酒精饮料之前验证客户达到了法定年龄。在美国,客户通常会向酒类商店的雇员出示身份证件(诸如驾驶执照)以验证他们的年龄。
但是,在一些常见的情况下,这种身份验证模式会给被验证的人(例如,进行年龄限制购买的客户)带来挑战或不便。一个这样的问题是与携带各种形式的身份证明相关的不便。在任何给定的时刻,用户都可能需要随身携带大量的身份证件,诸如驾驶执照、医疗保险卡、借书证、工作证明(诸如记者证)、通行卡等。管理这些多个ID证件可能会令人沮丧,并且如果有任何证件丢失或被盗,可能会带来严重的不便。
此外,身份验证过程对用户来说可能非常耗时或不方便。一个这样的示例是当为了验证用户的身份而中断自助结账过程(在超市)时。通过自助结账,用户可以快速有效地支付食品杂货,而无需店员参与。但是,如果用户试图购买诸如含酒精饮料的有年龄限制的产品,自助结账过程将会停止。自助结账亭会叫来一名店员,店员会在自助结账过程继续之前验证客户的年龄。因此,自助结账过程会大大减慢,这可能会让客户感到沮丧。
身份验证的另一个问题涉及保护用户隐私。通常,一个实体或组织只需要验证身份证件上呈现的一小部分信息。例如,驾驶执照可能包括驾驶执照号码、有效期、名字、姓氏、地址、出生日期、性别信息、头发颜色、眼睛颜色、身高、体重、颁发日期、器官捐献者身份和车辆限制。然而,诸如酒类商店的企业只需要验证客户达到法定年龄就可以买含酒精饮料。因此,酒类商店最需要知道的是客户是否超过了为此目的的法定年龄(例如,超过21岁)。但是,当客户向酒类商店的店员出示他们的驾驶执照时,他们就泄露了大量不必要的个人信息。此外,用户使用的每个实体或组织可能需要不同部分的信息来执行该实体或组织的预期动作。同样,实体、机构或组织可能需要派生信息,而不是身份证件中呈现的原始信息。年龄验证是派生信息的示例,因为确定用户是大于还是小于某个年龄可以从用户的出生日期和当前日期派生。
实施方案单独地以及共同地解决了这些和其他问题。
发明内容
实施方案涉及可用于以高效、隐私保护的方式验证身份属性的方法和系统。身份属性指的是对应于诸如人类用户的实体的身份的信息。例如,身份属性可包括用户的年龄、用户的身高、用户的体重、用户的地址、用户的出生日期、与用户相关联的账号等。身份属性可以从诸如护照、驾驶执照、医疗保险卡的身份证件中收集或派生。身份属性也可以从身份提供者处收集。这些身份提供者可包括政府机构,诸如机动车辆管理局、社会保障管理局等。身份提供者还可包括与用户建立了关系的实体或组织,诸如与用户有金融关系(例如,代表用户维护支票账户或信用账户)的金融机构(例如,银行)。
在一些实施方案中,用户可以出示对应于这些身份属性的一个或多个零知识证明,而不是在身份验证过程中出示身份证件或身份属性。例如,用户可以使用非交互式零知识证明(NIZK证明)来证明用户已达到购买含酒精饮料的法定年龄,而不是向酒类商店出示驾驶执照。因此,用户不再需要出示身份证件,诸如他们的驾驶执照,也不需要向酒类商店提供任何不需要的个人信息。此外,用户仅提供所需的最少量的信息(即,声明他们已达到法定年龄,而不是提供出生日期)。因此,最大限度地保护了用户的隐私。
用户可能拥有诸如智能电话的用户设备。用户设备可以安全地存储“身份令牌”。此身份令牌可以包含对应于用户的身份属性,诸如用户的出生日期、用户的地址等。这些身份属性可以由身份提供者(诸如政府机构或发行银行)密码签名。密码签名可以证明身份提供者已经确认、验证或以其他方式批准了存储在身份令牌中的身份属性。用户设备可以使用身份令牌和存储在其中的身份属性来生成对应于那些身份属性的零知识证明(例如,证明用户大于某个年龄、证明用户小于某个年龄、证明用户生活在特定地区内、证明用户拥有信誉良好的账户等)。
同样,信赖实体(即,执行身份验证的实体,诸如销售诸如含酒精饮料的年龄限制产品的企业)可拥有信赖实体计算机。信赖实体计算机可存储策略令牌。策略令牌可包括指示信赖实体想要或需要验证的身份信息的谓词。例如,酒类商店计算机可能拥有带有对应于年龄验证的单个谓词的策略令牌。具有更严格要求的信赖实体可以拥有包括更大量谓词的策略令牌。例如,汽车租赁机构可以拥有包括年龄验证谓词、汽车保险验证谓词和就业状态验证谓词的策略令牌。这些谓词可被密码签名,以便指示或证明它们的真实性。
身份令牌和策略令牌可能都是由令牌服务器计算机和/或身份服务提供者计算机发布的(在一些实施方案中,令牌服务器计算机和身份服务提供者计算机可包括单个计算机系统)。此外,令牌服务器计算机可能已经对策略令牌进行了密码签名,以指示策略令牌是合法的。身份服务提供者可以操作验证由用户设备生成的零知识证明的身份服务提供者计算机。
在信赖实体与用户设备之间的交互期间(例如,经由用户的智能电话进行的商家与用户之间的交易),信赖实体计算机可以将其策略令牌传输到用户设备。用户设备可以使用策略令牌的密码签名来验证策略令牌的合法性。之后,用户设备可以使用策略令牌和用户的身份令牌来生成零知识证明。用户设备可以将零知识证明传输到身份服务提供者计算机。身份服务提供者计算机可以验证零知识证明。在验证零知识证明后,身份服务提供者计算机可以生成证明零知识证明的真实性的验证消息。身份服务提供者计算机可对验证消息进行密码签名,并将验证消息发送给信赖实体计算机。信赖实体计算机可使用包括在验证消息中的密码签名来验证验证消息。在验证了验证消息后,信赖实体计算机可以继续与用户设备的交互(例如,交易)。
例如,用户可能正试图在杂货店执行自助结账。用户可以拥有诸如智能电话的用户设备,该用户设备可以与杂货店的自助结账亭(信赖实体计算机)连接。自助结账亭可以经由例如近场通信(NFC)或通过显示可以由智能电话使用内置相机扫描的QR码,将策略令牌传输到用户的智能电话。智能电话可以使用密码签名来验证策略令牌,以便确认它是由合法的身份服务提供者生成的。此策略令牌可包括单个谓词:验证用户达到了购买含酒精饮料所需的法定年龄。智能电话可以将此谓词与“年龄”身份属性一起使用,以生成合法允许用户购买含酒精饮料的零知识证明。智能电话可以通过诸如蜂窝网络或互联网的网络将此密码证明传输到身份服务提供者计算机。
在一些实施方案中,身份服务提供者计算机可以通过验证组成零知识证明的一个或多个子证明来验证零知识证明。身份服务提供者计算机可以使用一个或多个子验证者来验证这些子证明,每个子验证者对应于特定的零知识证明。通常,子证明中的一些子证明对应于谓词,并且子证明中的一些子证明对应于身份属性本身。同样,子验证者中的一些子验证者对应于谓词,而其他子验证者对应于身份属性。
使用对应于谓词的子验证者允许身份服务提供者计算机确定用户是否满足由策略令牌定义的要求。例如,这可包括验证用户超过21岁,以便验证允许用户购买含酒精饮料。使用对应于身份属性的子验证者允许身份服务提供者计算机验证身份属性本身是合法的。这防止了恶意用户简单地生成他们自己的任意身份属性来欺骗身份验证系统(例如,18岁的用户生成声明他们是55岁的年龄身份属性)。在这两种情况下,身份服务提供者计算机都可以执行子验证者,而无需了解用户的身份属性,从而保护用户的隐私。在(通过验证所有子证明)验证零知识证明后,身份服务提供者计算机可以生成验证消息。验证消息可向信赖实体计算机(在此示例中是自助结账亭)指示合法允许用户购买含酒精饮料。身份服务提供者计算机可以对验证消息进行密码签名。身份服务提供者随后可以将验证消息传输到自助结账亭。
自助结账亭可以使用由身份服务提供者计算机产生的密码签名来验证验证消息。这向信赖实体表明合法的身份服务提供者计算机已经验证了零知识证明。随后,自助结账亭可以完成与用户的交易。
如此示例所示,客户可以完成购买年龄限制产品(含酒精饮料),而无需店员参与,无需出示任何身份证件,同时提供验证他们已达到法定饮酒年龄所需的最少量信息。对于用户来说,这在方便性和私密性方面是一种改进。
使用策略令牌具有技术优势。例如,它们保护用户的隐私,因为它们允许发布这些策略令牌的令牌服务器计算机进行监督。令牌服务器计算机没有动机向信赖实体计算机提供比信赖实体计算机所需更多的身份信息。因此,令牌服务器计算机可以发布仅包含满足信赖实体的验证要求所必需的谓词的最少策略令牌。这为用户提供了额外的隐私和数据安全性。
此外,常规零知识身份验证通常只涉及两个实体:证明实体(例如,客户)和验证实体(例如,杂货店)。因此,它们不提供涉及第三方实体(身份服务提供者)的系统。身份服务提供者和身份服务提供者计算机的使用极大地减轻了信赖实体的系统集成负担。信赖实体不需要实现复杂的密码过程来验证零知识证明,相反,信赖实体仅需要存储策略令牌并使用基本公钥签名基础设施来验证验证消息。因此,本发明的实施方案具有可扩展的附加技术优势。
一个实施方案涉及一种方法,所述方法包括:由用户设备从信赖实体计算机接收策略令牌,其中所述策略令牌是从令牌服务器计算机发布给所述信赖实体计算机的;由所述用户设备基于所述策略令牌和对应于用户的身份令牌,从所述身份令牌中确定身份属性集,其中所述身份令牌是由所述令牌服务器计算机发布给所述用户设备的;以及由所述用户设备使用所述策略令牌和来自所述身份令牌的所述身份属性集来发起对所述用户的验证。另一实施方案可包括被编程来执行上述方法的用户设备。
另一实施方案涉及一种用户设备,所述用户设备包括:处理器;以及耦合到所述处理器的非暂时性计算机可读介质,所述非暂时性计算机可读介质包括能够由所述处理器执行以实现方法的代码,所述方法包括:从信赖实体计算机接收策略令牌,其中所述策略令牌是从令牌服务器计算机发布给所述信赖实体计算机的,其中所述策略令牌包括一个或多个谓词,其中每个谓词对应于来自对应于用户的身份令牌的一个或多个身份属性;基于所述策略令牌和所述身份令牌,从所述身份令牌中确定身份属性集,其中所述身份令牌是由所述令牌服务器计算机发布给所述用户设备的;基于所述一个或多个谓词和所述身份属性集生成零知识证明;以及将所述零知识证明传输到身份服务提供者计算机,其中所述身份服务提供者计算机验证所述零知识证明以验证所述用户。
另一实施方案涉及一种方法,所述方法包括:由身份服务提供者计算机向信赖实体计算机提供策略令牌;由所述身份服务提供者计算机从用户设备接收至少部分使用所述策略令牌和存储在所述用户设备上的身份属性集来生成的零知识证明;由所述身份服务提供者计算机验证所述零知识证明;由所述身份服务提供者计算机基于所述零知识证明的验证来生成验证消息;由所述身份服务提供者计算机使用对应于所述身份服务提供者计算机的私钥对所述验证消息进行密码签名;以及由所述身份服务提供者计算机向所述信赖实体计算机传输所述验证消息,其中所述信赖实体计算机此后基于所述验证消息执行与所述用户设备的交互。
下文进一步详细描述本发明的这些和其他实施方案。
术语
在讨论本发明的实施方案之前,一些术语的一些描述可能是有帮助的。
“服务器计算机”可包括功能强大的计算机或计算机集群。例如,服务器计算机可包括大型主机、小型计算机集群或作为一个单元运作的一组服务器。在一个示例中,服务器计算机可包括耦合到网络服务器的数据库服务器。服务器计算机可包括一个或多个计算设备,并且可使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“存储器”可包括可存储电子数据的任何合适的一个或多个设备。合适的存储器可包括非暂时性计算机可读介质,其存储可由处理器执行以实现所要方法的指令。存储器的示例包括一个或多个存储芯片、磁盘驱动器等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。
“处理器”可包括任何合适的一个或多个数据计算设备。处理器可包括一起工作以实现期望的功能的一个或多个微处理器。处理器可包括CPU,该CPU包括至少一个高速数据处理器,该高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序部件。CPU可以是微处理器,例如AMD的Athlon、Duron和/或Opteron;IBM和/或Motorola的PowerPC;IBM和Sony的Cell处理器;Intel的Celeron、Itanium、Pentium、Xenon和/或XScale;和/或类似的处理器。
“用户”可包括某个对象或服务的任何用户。这可包括例如诸如智能电话的“用户设备”的用户,或者支付卡(例如,信用卡或借记卡)的用户。用户可以与一个或多个个人账户(例如,支付账户)或用户设备相关联。用户可被称为“持卡人”(当拥有或使用支付卡时)、账户持有人(当拥有或使用账户时)或消费者(当使用信赖实体和资源提供者提供的商品或服务时)。
“用户设备”可包括由用户携带和/或操作的任何设备。用户设备的示例包括智能电话、PDA、平板电脑、上网本、膝上型电脑、个人音乐播放器、手持式专用阅读器、可穿戴设备(例如,手表)、交通工具(例如,汽车)等。用户设备可以提供远程通信能力,包括通过移动电话(无线)网络、无线数据网络(例如,3G、4G、5G或类似网络、Wi-Fi、Wi-Max)或可以提供对诸如互联网或专用网络的网络的访问的任何其他通信介质进行通信。移动设备可包括用于执行这些功能的任何合适的硬件和软件,并且还可包括多个设备或部件(例如,当一个设备使用另一个设备作为中继来获得对网络的远程访问时,两个设备合起来可被认为是单个用户设备)。用户设备可包括生物特征接口,并且可以通过生物特征接口捕获生物特征样本。用户设备可包括存储元件,并且可以在存储元件上存储数据,诸如生物特征模板。
“信赖实体”可包括可接收断言(例如,验证消息)、数字标识(DI)和/或身份属性的实体。信赖实体可以接收这些数据,以便验证用户被授权或允许获取特定资源或使用特定服务。例如,信赖实体可包括需要确定是否合法允许用户购买含酒精饮料的酒吧。信赖实体可以是“资源提供者”,即向用户提供资源(包括商品、服务和访问)的组织。资源提供者包括企业、政府、非政府组织等。信赖实体可操作信赖实体计算机,即代表信赖实体执行操作的计算机系统。例如,信赖实体计算机可代表信赖实体接收和分析验证消息。
“商家类别代码”(或MCC)可包括用于对企业进行分类或归类的数据。商家类别代码可包括ISO 18245标准中列出的四位数。商家类别代码的示例包括“1731”(电气承包商)、“5309”(免税店)和“5169”(商业鞋类)。
“发行者”、“发行实体”或“授权实体”可包括能够授权或批准交互的实体。这些交互可包括用户与信赖实体或资源提供者之间的交易。发行者可包括为用户维护账户并且能够授权诸如支付交易的交互的商业实体(例如,银行)。发行者可能已经向用户“发行”了支付凭证,例如信用卡或借记卡。发行者可以拥有对应于用户的身份信息或身份属性,并且可以充当“身份提供者”。发行者可以操作“发行者计算机”,即由发行者操作的计算机系统。
“身份提供者”可包括提供身份信息或身份属性的任何实体。身份提供者的示例包括政府机构(诸如社会保障管理局、机动车辆管理局(DMV)等)、企业和发行者。身份提供者可与用户建立关系。例如,DMV可能已经向用户颁发了驾驶执照。由于这种建立的关系,身份提供者可以拥有身份信息或身份属性,例如,DMV可以拥有身份信息或身份属性,因为当用户注册驾驶执照时,用户向DMV提供了身份证件(诸如出生证明)。身份提供者计算机可包括由身份提供者操作的计算机系统。
“密码密钥”可包括在加密或解密中使用的数据。例如,密码密钥可以指两个大素数的乘积。密码密钥可用在诸如RSA(Rivest、Shamir、Adleman)或AES(高级加密标准)的密码系统中,并且可用于加密明文并产生密文输出,或解密密文并产生明文输出。密码密钥可以是对称的,在这种情况下,同一密钥用于加密和解密,或密码密钥可以是不对称的,在这种情况下,不同密钥用于加密和解密。
“非对称密钥对”或“公钥-私钥对”可包括用于加密和解密数据的两个密码密钥。这些密码密钥可包括“公钥”和“私钥”或“秘密密钥”。通常,实体可以分发或发布公钥,并将私钥保密。该实体可以使用私钥来解密用公钥加密的消息,以便解密来自其他实体的加密通信。公钥-私钥对也可用于实现密码签名方案。
“签名”、“数字签名”或“密码签名”包括使用密码术来验证其他数据的真实性的加密数据。实体可通过使用只有该计算机知晓的密码密钥(即,私钥)密码数据来对该数据进行数字签名。其他计算机可通过使用对应于该计算机的公开已知密码密钥(即,公钥)解密该数据来验证签名。Camenisch-Lysyanskaya签名是可用于实现匿名凭证系统的密码签名的示例。
“明文”可包括未加密或明文形式的文本或数据。例如,这可包括在无需任何处理的情况下即可由人或计算机解读的文本,诸如短语“你好,近来如何?”数字或其他符号也可适合作为明文。
“密文”或“密码”可包括加密形式的任何文本或数据。例如,这可指必须予以解密后才可由人或计算机解读的文本。密文可使用诸如RSA或AES的任何密码算法或密码系统生成。
“秘密值”或“秘密”可包括作为密码过程的部分而保持隐藏的任何值或事物。密码过程的安全性可能依赖于保持秘密的秘密值。秘密的示例包括密码密钥和秘密随机数。“主密”可以指可以从中导出其他秘密值或密码值的秘密。
“承诺”或“承诺消息”包括可用于验证动作过程已被承诺的任何数据。在密码术的上下文中,承诺可以指可用于验证加密数据未被修改或篡改的数据。在数据被加密之前,可基于该数据例如经由散列函数来产生承诺。当数据被解密时并且如果数据被解密,解密实体可以使用解密数据来产生第二承诺,并且将第二承诺与原始承诺进行比较,以验证数据没有被修改。
在密码上下文中,“假名”可包括对主密的随机承诺。假名可以替代传统公钥基础设施中使用的公钥。用户可以使用假名来与实体建立关系。例如,用户可能希望实体(诸如信赖实体)将该用户标识为返回的用户(例如,回头客)。用户可以基于主密生成无限数量的假名,从而允许用户与这些实体中的每一个实体建立关系,而这些关系或假名彼此之间不可链接。
“随机随机数”或“密码随机数”可包括可在密码过程中使用的随机值(例如,随机数),优选地是有限次数。随机随机数可随机或伪随机地生成,并且可结合密码散列函数使用。随机随机数可以防止一些密码攻击,诸如“重放攻击”
“可验证计算”可包括结果可被验证的计算过程。例如,计算机系统可以将功能的执行卸载或外包给另一计算机系统,使用可验证计算来验证该另一计算机系统正在正确地执行该功能。可验证计算可包括“可验证密码术”,其可使计算机系统能够验证数据被正确加密或解密。可验证计算和可验证密码术可以形成密码证明系统的基础,包括零知识证明。
“零知识证明”可包括证明某事而不传达关于该事物的任何附加知识的数据。例如,零知识证明可以证明一篇中篇小说超过20,000字长,而不传达该中篇小说的具体长度或该中篇小说的内容。零知识证明可以由“证明者”生成,并在被称为“证明验证”的过程中由“验证者”验证。验证者可以使用可验证计算来验证零知识证明,即,验证者可以验证证明是正确生成的,而不需要评估用于生成证明的数据(例如,中篇小说)。
术语“标识符”包括可用于标识某物的任何信息。在一些实施方案中,标识符可以是随机生成或根据预定算法、代码或共享秘密生成的特殊值。例如,可以使用驾驶执照号码或密码密钥来标识个人。作为另一示例,计算机可以由MAC地址、IP地址等来标识。
“身份属性”可包括关于实体(例如,人、组织、事物等)的特定信息片段。身份属性的示例包括与人相关联的社会保障号码、年龄、电话号码和银行账号。
“数字身份”(DI)可包括关于实体(例如,人、组织或事物)的安全信息集。DI可包括多个身份属性,以及标识数字身份的数字身份标识符。例如,用户Joe Smith的DI可包括身份属性,诸如用户的出生日期、社会保障号码、地址和驾驶执照号码,以及用于标识JoeSmith的数字身份的标识符,诸如“Joe_Smith_1234”。可以用安全的方式使DI对另一实体可用。身份令牌可以是DI的示例。
术语“身份证件”或“实物身份”可包括用于标识实体的证件或另一物体。身份证件的示例包括出生证明、驾驶执照、借书证和其他形式的身份证明。标识属性或可能与标识属性相关联的信息可以打印在身份证件上,或者由那些证件以其他方式指示。例如,“出生日期”身份属性可以打印在出生证明或驾驶执照上。
术语“统一资源标识符”或“URI”可以指明确标识特定资源的数据(诸如字符串)。URI的示例是网址(更具体地说,是统一资源定位符或URL)。资源可包括对象(诸如计算机或设备)以及数据(诸如网页或存储在存储元件上的数据)。
“凭证”可包括用作身份、权威、所有权或价值的证据的任何合适的信息。凭证可包括对象(诸如身份徽章或认证证件)或数据(诸如支付账号或PAN、密码、身份徽章号码等)。诸如身份令牌或支付令牌的令牌也可以用作凭证。
“身份令牌”可包括用作传统身份证件的替代物的数据。身份令牌可用来代替这种传统证件来标识或认证用户。例如,用户可以向另一用户出示身份令牌以验证他们的身份,而不是出示驾驶执照或护照。身份令牌可包括身份属性,其可以以某种方式对应于用户的身份。例如,身份令牌可包括对应于用户年龄的身份属性。身份令牌可以以电子方式转移和存储。
“策略令牌”可包括用作策略或法规的替代物的数据。例如,酒类商店可能有商店策略,即他们不卖含酒精饮料给21岁以下的任何人。策略令牌可以作为该策略的数字替代物。策略令牌可用于自动制定它们所替代的策略。例如,一个或多个计算机系统可以使用策略令牌来验证用户超过21岁,而传统上人类商店店员或服务员会制定此验证策略。策略令牌可包括一个或多个谓词。
“谓词”可包括用作其他数据的基础的任何数据。例如,谓词可以形成零知识证明的基础,因为零知识证明是基于谓词或其内容生成的。一个谓词可以对应于一个查询,诸如“用户A超过21岁?”实体可以基于这个谓词生成零知识证明,证明“是的,用户A超过21岁。”谓词可以存储在策略令牌中,一个或多个谓词可以用于实现一个策略,诸如酒类商店的年龄验证策略。
“支付令牌”可包括用作账户标识符(诸如支付账号(PAN))的替代物的数据。例如,令牌可包括可以用作原始账户标识符的替代物的一系列字母数字字符。例如,诸如“49000000 0000 0001”的支付令牌可代替PAN“4147 0900 0000 1234”使用。支付令牌可以是“保留格式”的,并且可以具有确认在现有交易处理网络中使用的账户标识符(PAN)的数字格式(例如,ISO 8583金融交易消息格式)。在一些实施方案中,令牌可代替PAN用以发起、授权、处理或解决支付交易,或者以其他方式在通常将提供原始凭证的其他系统中表示原始凭证。支付令牌可被构造成使得不可能从支付令牌中恢复原始PAN或账户标识符。此外,支付令牌可被配置为允许接收支付令牌的实体将其标识为支付令牌。
“生物特征接口”可包括可以通过其收集生物特征样本或实例的接口。生物特征样本的示例包括指纹扫描仪(用于捕获指纹图案)、相机(用于捕获虹膜或视网膜扫描)和麦克风(用于捕获语音记录)等。一些设备除了它们的非生物特征功能之外,还可以用作生物特征接口。例如,嵌入到电话中的麦克风除了使用户能够通过电话与其他人交谈之外,还可以用于捕获语音记录。
“生物特征模板”可包括与生物观察相关的信息。生物特征模板可包括从生物特征样本(或生物特征实例)中提取的不同特征的数字参考(例如,数据或数据文件)。独特特征的示例包括指纹脊纹图案(即,拱形、环形、螺旋形等)。生物特征模板可用于生物特征认证过程。可以将生物特征模板与捕获的生物特征实例进行比较,以便认证用户。例如,对应于用户的生物特征模板可以存储在用户的智能电话上。为了解锁智能电话,用户可以将拇指按在生物特征界面上。生物特征接口可以收集生物特征样本,该样本可以与生物特征模板进行比较,以便认证用户。
“身份证件校验服务”可以指能够校验身份证件或身份证件中所呈现的信息的服务。例如,身份证件校验服务可以验证护照中呈现的信息是准确的。
“用户数据校验服务”可以指能够校验身份数据(诸如用户提供的身份属性)的服务。例如,用户数据校验服务可以用于验证用户给出的出生日期是用户的实际出生日期。背景调查是用户数据校验服务的示例。
“断言”(有时称为“断言值”)可以指关于实体的安全事实。断言可以保护信息,同时可用于实现特定目标。例如,断言可以指定关于实体的某些内容,诸如是否应允许该实体在特定地点购买含酒精饮料。此断言可以是“JaneDoe的年龄足以在加利福尼亚购买含酒精饮料”。酒吧可以在决定向Jane Doe提供含酒精饮料时使用此断言。断言可以用来代替其他信息或身份证件。例如,可以向酒吧提供断言而不是驾驶执照,驾驶执照通常用于证明一个人的年龄。
“断言类型”可以是断言类别,例如,实体的银行账户中是否有至少100美元。与断言类型相关联的“断言”或“断言值”可包括对应于断言类型的语句。例如,语句“是”或“否”可能对应于断言类型“Jane Doe在她的银行账户中有100美元或更多吗?”断言可以是密码安全的,并且可以由感兴趣方(例如,用户设备)和/或受信任方进行密码签名。
附图说明
图1示出了根据一些实施方案的示例性身份令牌的框图。
图2示出了根据一些实施方案的示例性策略令牌的框图。
图3示出了根据一些实施方案的示例性身份服务系统的系统框图。
图4示出了根据一些实施方案的示例性用户设备的框图。
图5示出了根据一些实施方案的示例性身份服务提供者计算机的框图。
图6示出了根据一些实施方案的示例性身份令牌供应过程的序列图。
图7示出了根据一些实施方案的示例性用户验证过程的序列图。
图8示出了根据一些实施方案的示例性用户验证用例的系统框图。
图9示出了根据一些实施方案的用于身份令牌供应的方法的序列图。
图10示出了根据一些实施方案的示例性交互(例如,交易,诸如含酒精饮料的销售)。
具体实施方式
如上所述,一些实施方案涉及用于验证与用户设备的用户相关联的身份属性的方法和系统。在一些实施方案中,身份服务提供者计算机使用零知识证明来验证身份属性,而不是直接验证身份属性。这样,实施方案保护了用户的隐私,用户可能希望在不公开敏感个人信息的情况下验证他们的身份或身份属性。
假定密码术领域的技术人员理解零知识证明的基本原理。因此,本文不对它们进行详细描述。参考以下论文可能会更好地理解零知识证明:[1]Parno,Gentry,Howell和Raykova“Pinocchio:Nearly Practical Verifiable Computation,”Cryptology ePrintArchive,Report 2013/279,2013.[2]Ben-Sasson,Chiesa,Tromer和Virza“Succinct Non-Interactive Zero-knowledge for a von Neumann Architecture”Cryptology ePrintArchive,Report 2013/879,2013.[3]Gennaro,Gentry,Parno和Raykova“Quadratic SpanPrograms and Succinct NIZKs without PCPs,”in EUROCRYPT,2013.最初发布为Cryptology ePrint Archive,Report 2012/215,以及[4]IBM Research–Zurich“Specification of the Identity Mixer Cryptographic Library”IBM,2010.
通常,零知识证明证明关于某个事物的陈述,而不公开关于该事物的任何附加信息。例如,零知识证明可以用于证明一本书超过10,000字长,而不公开该书的内容(即,组成该书的章节、段落、句子等)或它的实际长度。作为另一示例,零知识证明可被用来证明用户已经成功地解答了一个谜题(诸如数独或填字游戏),而不揭示该谜题的实际解答(例如,数独中数字的配置或填字游戏中的单词)。
在一些实施方案中,零知识证明用于证明关于身份属性的陈述,而不公开那些身份属性。例如,可以使用零知识证明来证明用户大于某个年龄(例如,21岁),而不公开用户的实际年龄(例如,45岁)或用户的出生日期。作为另一示例,零知识证明可以用于证明用户生活在特定的地理区域(例如,加利福尼亚州)内,而不公开用户的地址或任何其他标识信息。
身份属性可被编译在身份令牌中,身份令牌是可存储在用户的“用户设备”(例如,智能电话、膝上型电脑、个人电脑、平板电脑、可穿戴设备等)上的数据元素。图1示出了根据一些实施方案的示例性身份令牌100。身份令牌100包括身份属性集102和108。每个身份属性集中的每个身份属性包括身份属性标签和身份属性值。例如,身份属性集102包括身份属性标签104(即,姓名、邮政编码、出生日期、账号)和身份属性值106(即,JohnDoe、94612、08-19-1993、1234-4678-90)。每个身份属性集102和108可被加密和密码签名。替代地或附加地,每个单独的身份属性(例如,对应于用户姓名的身份属性)可被加密和密码签名。身份属性可被加密,以防止身份窃贼或其他欺诈者获取它们。
填充身份令牌100的身份属性集102和108可由身份提供者提供。一般而言,术语身份提供者可以指提供身份属性的实体。身份提供者的一个示例是政府机构,诸如机动车辆管理局(DMV)。DMV可能能够在身份令牌中提供身份属性,因为它先前已经从用户接收了身份信息。例如,当用户注册驾驶执照时,用户可能已经向DMV提供了身份信息。身份提供者的另一示例是发行银行。发行银行可与用户建立金融关系。例如,发行银行可以代表用户维护信用或支票账户。为了建立这种金融关系,用户可能已经预先向发行银行提供了身份信息(即身份属性)。身份提供者的第三个示例是大学,其向大学的现在和以前的学生发放身份证件(即,文凭)。与DMV或发行银行一样,大学也可以提供用于填充身份令牌100的身份属性或身份属性集。
如图1所示,身份属性集102源自发行者计算机114,而身份属性集108源自身份提供者计算机116。因为发行者是身份提供者的特定实例,所以发行者计算机是身份提供者计算机的特定实例。
身份令牌100还可包括一个或多个空的身份属性集110。这些空的身份属性集110可在稍后由另一身份提供者或替代地由用户自己来“填充”。以这种方式,附加身份属性可被周期性地添加到身份令牌100。如果用户的身份属性随时间而改变(例如,用户移动到不同的邮政编码、改变他们的公民身份、改变他们的姓名等),这可能是有用的。
如上所述,身份属性集102和108或者组成该集的身份属性可被密码签名。这些身份属性可由提供相应身份属性的身份提供者(例如,发行者计算机114或身份提供者计算机116)密码签名。这些密码签名表明身份属性源自已知的、有信誉的身份提供者。例如,如果身份提供者计算机116包括与DMV相关联的计算机系统,则使用对应于DMV的密码密钥对身份属性集108中的身份属性(即,姓名“John Doe”和美国国籍)进行签名。在一些实施方案中,使用Camenisch-Lysyanskaya(CL)签名。这些CL签名可能是合乎需要的,因为它们可以有效地集成到零知识证明系统中。
此外,身份令牌100可包括由令牌服务器计算机118产生的密码签名112。此密码签名112可指示身份令牌100是由令牌服务器计算机118发布的合法身份令牌。令牌服务器计算机118可包括生成身份令牌(诸如身份令牌100)并将其提供给用户设备的计算机系统。用户设备或另一计算机系统可使用密码签名112来验证身份令牌是由令牌服务器计算机118发布的(例如,通过使用对应于令牌服务器计算机118的公钥来解密密码签名112)。
在一些实施方案中,用户设备可以使用存储在身份令牌100中的身份属性来生成对应于那些身份属性的零知识证明。零知识证明可被传输到身份服务提供者计算机。身份服务提供者计算机验证零知识证明,以便验证身份属性。在此过程中,身份属性本身不会向身份服务提供者计算机公开,从而保护了用户的隐私。除了身份令牌100之外,用户设备可以使用从信赖实体计算机接收到的策略令牌,以便生成零知识证明。
策略令牌可由令牌服务器计算机(例如,图1中的令牌服务器计算机118)发布给信赖实体。信赖实体可包括需要验证用户身份属性中的一个或多个用户身份属性的实体。举例来说,信赖实体可包括酒类商店,其在法律上被要求验证客户可合法饮酒。在与客户的交互(例如,交易)期间,信赖实体计算机(例如,与酒类商店相关联的计算机系统)可以向与客户相关联的用户设备传输策略令牌。用户设备可以使用策略令牌和存储在用户设备上的身份令牌来生成零知识证明。这种零知识证明可以证明用户已超过饮酒年龄,并且可以在不公开用户的年龄或出生日期的情况下这样做。
图2示出了根据一些实施方案的示例性策略令牌200。策略令牌200可以存储在信赖实体计算机上。策略令牌200包括一个或多个谓词,包括谓词202和谓词204。可以使用对应于令牌服务器计算机220的私钥对策略令牌200进行密码签名(参见密码签名218)。令牌服务器计算机220可能已经生成了策略令牌200并将其发布给信赖实体计算机。诸如信赖实体计算机或用户设备的实体和计算机系统可使用密码签名来验证策略令牌的合法性。例如,用户设备可以使用对应于密码签名218的公钥来验证策略令牌是由合法的令牌服务器计算机(例如,令牌服务器计算机220)生成的。
一个或多个谓词中的每个谓词可包括多个部分。这些部分可包括一个或多个目标身份属性,诸如目标身份属性206和目标身份属性212。这些谓词中的每一个谓词可对应于存储在身份令牌中的身份属性集中的一个或多个身份属性(例如,由目标身份属性指定的身份属性)。每个谓词还可包括比较函数,诸如比较函数208或比较函数214。另外,每个谓词可包括一个或多个比较值,诸如比较值210和比较值216。用户设备可以使用这些谓词来生成零知识证明。
诸如目标身份属性206和目标身份属性212的目标身份属性向用户设备指示应该使用哪些身份属性来生成零知识证明。例如,目标身份属性206指示应该使用用户的年龄来生成零知识证明,而目标身份属性212指示应该使用用户邮政编码来生成零知识证明。
诸如比较函数208和比较函数214的比较函数指示应该由零知识证明来证明的身份属性的一个或多个特征。例如,比较函数208是不等式函数。谓词202因此指示用户设备应该生成证明用户的年龄(目标身份属性206)大于21(比较值210)的零知识证明。
比较函数214是集合隶属函数的示例。集合隶属函数确定一个值是否属于一组比较值,诸如比较值216。在示例性策略令牌200中,谓词204指示用户设备应该生成零知识证明,证明用户的邮政编码身份属性在包括94610、94611和94612的邮政编码集内。
如图2所示,比较函数可包括不等式函数和集合隶属函数。然而,应该理解,在本发明的实施方案中可以使用其他比较函数,包括数学函数(例如,加法、减法、乘法、除法、积分等)、任意布尔函数(例如,非、与、或、或非、与非、异或、同或和它们的任意组合)等。
值得注意的是,在一些实施方案中,包括在策略令牌中的谓词可以由令牌服务器计算机200自行选择。信赖实体可以向令牌服务器计算机220请求或以其他方式指示其期望的谓词,但是最终令牌服务器计算机220决定向信赖实体发布哪些谓词。这样,令牌服务器计算机220保护了用户的隐私,因为令牌服务器计算机220可以选择不发布不必要侵入的谓词。例如,信赖实体酒类商店可能需要验证客户的年龄超过21岁(酒类商店所在州或准州的法定饮酒年龄)。然而,信赖实体没有验证用户家庭地址的法律义务。可以想象,信赖实体可能需要此信息,因为信赖实体想要将促销资料和其他广告邮寄到用户地址。然而,因为信赖实体不需要此信息,所以令牌服务器计算机220可以选择不发布包含对应于用户地址的谓词的策略令牌。信赖实体可以提供附加信息,令牌服务器计算机220可以使用该附加信息来确定适当的谓词并生成策略令牌200。例如,信赖实体计算机可以提供商家类别代码(MCC)。对于商业信赖实体,商家类别代码指示信赖实体提供的商品或服务的类型。商家类别代码可用于推断信赖实体的身份验证要求,并因此可用于确定应在策略令牌200中发布给信赖实体计算机的谓词。
如上所述,用户设备可以使用诸如策略令牌200的策略令牌来生成零知识证明。此零知识证明可以对应于存储在诸如策略令牌200的策略令牌中的谓词(例如,谓词202和谓词204)。零知识证明可包括一个或多个子证明。每个子证明可以对应于一个或多个谓词中的一个谓词。例如,第一子证明可以对应于谓词202,而第二子证明可以对应于谓词204。在一些实施方案中,对应于每个谓词的每个子证明指示具有输入的对应比较函数(例如,比较函数208和比较函数214)的输出,该输入包括一个或多个比较值(例如,比较值210和比较值216)以及对应于一个或多个目标身份属性(例如,目标身份属性206和目标身份属性212)的一个或多个身份属性值。对于示例性策略令牌200,第一子证明可包括用户年龄大于21岁的零知识证明,并且第二子证明可包括用户邮政编码是94610、94611或94612的零知识证明。这些子证明连同任何其他子证明可被组合成单个零知识证明。其他子证明的示例可包括基于附加谓词的子证明(在示例性策略令牌200中未示出)以及直接对应于身份属性本身的子证明。例如,零知识证明可包括子证明,该子证明通过证明对应于年龄身份属性和/或邮政编码身份属性的CL签名对应于合法身份提供者来证明用户的年龄身份属性和/或邮政编码身份属性是合法的。
已经详细描述了身份令牌和策略令牌,现在描述根据一些实施方案的系统是合适的。图3示出根据一些实施方案的示例性系统的系统框图。该示例性系统包括身份服务提供者计算机300、令牌服务器计算机302、通信网络304、用户设备306、信赖实体计算机308、发行者计算机310、身份提供者计算机312、用户314和身份证件316。身份服务提供者计算机300和令牌服务器计算机302可包括单个身份服务系统318。
图3的计算机和设备可通过通信网络304彼此通信,该通信网络可采用任何合适的形式,并且可包括以下中的任一者和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全自定义连接;广域网(WAN);无线网络(例如,采用诸如但不限于无线应用协议(WAP)、I-模式的协议)等。计算机与设备之间的消息可使用安全通信协议来发送,该安全通信协议例如但不限于:文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS)、安全套接层(SSL)、ISO(例如,ISO 8583)等。
身份服务提供者计算机300可包括验证零知识证明以便验证对应于用户314的身份属性的计算机系统。身份服务提供者计算机300可以经由通信网络304与系统中的其他设备和计算机通信。这些通信可包括从用户设备306接收包括一个或多个子证明的零知识证明,以及向诸如信赖实体计算机308的信赖实体计算机传输验证消息。通常,验证消息指示零知识证明是否被正确验证。例如,用户设备306可以生成证明或声称证明用户314年龄大于55岁的零知识证明(例如,为了让用户314证明他们有资格享受老年公民折扣)。在验证零知识证明后,身份服务提供者计算机300可以生成验证消息。验证消息可向信赖实体计算机308指示零知识证明被正确验证,因此用户314超过55岁。或者,如果用户314不超过55岁,则验证消息可以指示用户314不超过55岁、零知识证明验证失败,或者它们的组合。以下参考图5更详细地描述身份服务提供者计算机300。
令牌服务器计算机302可包括生成身份令牌并将其分发给诸如用户设备306的用户设备的计算机系统。另外,令牌服务器计算机302可生成策略令牌并将其分发给信赖实体计算机,诸如信赖实体计算机308。令牌服务器计算机302可经由通信网络304与用户设备306、信赖实体计算机308、发行者计算机310和身份提供者计算机312通信。这些通信可包括,例如,从发行者计算机310和身份提供者计算机312接收身份属性,以及向用户设备306和信赖实体计算机308分别传输身份令牌和策略令牌。令牌服务器计算机302可将从发行者计算机310和身份提供者计算机312接收到的身份属性编译成传输到用户设备306的身份令牌。在一些实施方案中,令牌服务器计算机302可以调解身份提供者计算机312、发行者计算机310和用户设备306之间的通信,以便为用户设备306生成身份令牌。
在一些实施方案中,身份服务提供者计算机300和令牌服务器计算机302包括单个身份服务系统318。此身份服务系统318可包括单个计算机系统或实体。术语身份服务提供者计算机可指此单个计算机实体,即执行身份服务提供者计算机300和令牌服务器计算机302的功能的单个计算机实体。例如,图5的身份服务提供者计算机拥有使其能够执行令牌服务器计算机功能的软件模块。
用户设备306可包括由用户314操作的任何计算机系统。在一些实施方案中,用户设备306可包括智能电话、平板电脑、膝上型电脑或诸如智能手表的可穿戴设备。用户设备306还可包括个人台式计算机、视频游戏控制台、智能电视等。用户设备306可拥有存储元件,诸如存储对应于用户314的一个或多个身份令牌的非暂时性计算机可读介质。另外,存储器元件可以存储软件模块,包括可以由处理器执行的代码,以便执行根据一些实施方案的一些方法,诸如零知识证明的生成。用户设备306还可拥有使用户设备306能够直接或经由通信网络304与信赖实体计算机308和其他计算机系统通信的通信接口。例如,通信接口可包括实现信赖实体计算机308与用户设备306之间的数据传输的近场通信接口,以及使得用户设备能够通过通信网络304进行通信的网络接口(诸如手机或Wi-Fi天线)。此外,用户设备306可包括生物特征接口,该生物特征接口能够从用户314捕获生物特征信息。这可包括例如可用于拍摄用户脸部照片(例如,“自拍”)或用户眼睛照片的相机。下文参考图4更详细地描述了诸如用户设备306的用户设备。
信赖实体计算机308可包括与信赖实体相关联的计算机系统。信赖实体可包括想要或需要验证对应于用户(诸如用户314)的身份属性的实体或组织。例如,信赖实体计算机308可以是与想要验证用户314的年龄足以购买含酒精饮料的酒类商店相关联的计算机系统。或者,信赖实体计算机308可包括与受雇守卫或以其他方式控制对建筑物的访问的安全公司相关联的计算机系统。安全公司可能希望验证用户314的身份属性,以便验证用户314应该被授权访问建筑物(例如,验证用户314的姓名身份属性是一组允许的用户名的成员)。信赖实体计算机308可拥有策略令牌,并可将该策略令牌提供给用户设备306(例如经由近场通信接口或QR码),使得用户设备306可生成零知识证明,以便验证他们的身份属性。信赖实体计算机308可能已经在令牌供应过程期间从令牌服务器计算机302接收到策略令牌。
发行者计算机310可包括与发行银行相关联的计算机系统。发行银行可以与用户314具有现有的金融关系(例如,发行银行为用户314管理支票或储蓄账户)。因此,发行银行可以拥有对应于用户314的身份信息。发行者计算机310可以在身份令牌供应过程期间以身份属性的形式向用户设备306或令牌服务器计算机302提供此身份信息。
身份提供者计算机312可包括与任何适当的身份提供者相关联的计算机系统。例如,这些可包括与政府机构(诸如机动车辆管理局或生命统计局、社会保障管理局、印度唯一标识机构(UIDAI)等)相关联的计算机系统。与发行者计算机310一样,身份提供者计算机312可以在身份令牌供应过程期间向用户设备306或令牌服务器计算机302提供身份属性。发行计算机可被视为身份提供者计算机。
用户314可包括用户设备306的任何用户。具体而言,用户314可包括消费由与信赖实体计算机308相关联的信赖实体提供的某些商品、服务、资源或访问的人类用户。此外,用户314可以拥有一组身份证件316。身份证件316可包括任何包括或声明对应于用户314的身份信息或属性的证件。例如,身份证件316可包括驾驶执照、出生证明、社会保障卡、选择性服务卡、医疗保险卡、借书证等。可以通过用户设备306从身份证件316中提取身份信息。例如,用户314可以使用用户设备306来扫描或拍摄身份证件的照片(例如使用集成到用户设备306中的相机)。随后,用户设备306可以从身份证件的图像中提取身份属性(例如,使用光学字符识别)。这些提取的身份属性可用于在发布给用户设备306的身份令牌中填充身份属性集。
现在将参考图4更详细地描述示例性用户设备400。用户设备400可包括处理器402、通信接口404、生物特征接口406和计算机可读介质408。
处理器402可包括任何合适的一个或多个数据计算设备。处理器402能够解释代码并执行存储在计算机可读介质408上的指令。处理器402可包括在精简指令集上操作的中央处理单元(CPU),并且可包括单核或多核处理器。处理器402还可包括算术逻辑单元(ALU)和高速缓冲存储器。
通信接口404可包括用户设备400可借以与其他计算机或设备通信的任何接口。通信接口的示例包括:有线接口,诸如USB、以太网或FireWire,以及无线接口,诸如蓝牙或Wi-Fi接收器。用户设备400可以拥有多个通信接口404。例如,智能电话用户设备400可以通过微型USB端口、蜂窝接收器、蓝牙接收器和Wi-Fi接收器进行通信。
用户设备400可使用通信接口404经由一个或多个安全并经认证的点对点信道与其他设备或计算机通信。这些信道可使用标准公钥基础设施。例如,用户设备400和身份服务提供者计算机可以经由它们的通信接口交换对称密钥。此密钥交换可包括例如Diffie-Hellman密钥交换。在交换密码密钥之后,用户设备400和身份服务提供者计算机可以使用标准的认证加密方案通过公共信道(诸如不安全的网络)进行通信。用户设备400与身份服务提供者计算机之间的消息可以用对称密码密钥加密。也可以使用附加认证方法,诸如数字签名。
生物特征接口406可包括用于捕获生物特征的任何合适的接口。在一些实施方案中,生物特征接口406可包括集成相机,诸如智能电话上的前置或后置相机。生物特征接口的其他示例包括麦克风(用于捕获生物特征语音记录)、触摸屏(用于捕获指纹)等。在一些实施方案中,生物特征接口406用于捕捉用户脸部的图像(“自拍”),该图像可被身份服务提供者计算机用来验证用户的身份。
计算机可读介质408可包括硬件,该硬件可拥有或存储可由处理器402解释的代码、数据或指令。计算机可读介质408可存储数据和多个软件模块,包括通信模块410、生物特征模块412、身份令牌模块414、策略令牌模块416、证明生成模块418、密码术模块420、委托模块422、密码资料424和身份令牌426。
通信模块410可包括可由处理器402解释和执行的代码、软件或指令。用户设备400可以使用该软件来与身份服务系统中的其他计算机、设备和实体通信,诸如图3中显示的计算机、设备和实体。这可包括代码或指令以用于:从令牌服务器计算机请求身份令牌;从令牌服务器计算机接收并解释身份令牌;从信赖实体计算机、令牌服务器计算机或身份服务提供者计算机接收密码废话或其他密码资料(例如,公共密码密钥);传输用于生成身份令牌的信息,诸如承诺、身份证件的数字表示、自认证身份属性等。此外,通信模块410可包括可由处理器424执行的代码或指令,用于从信赖实体计算机接收策略令牌,传输零知识证明,生成并格式化消息,以及请求委托身份令牌,接收委托身份令牌,并传输委托身份令牌。通信模块410可以使用户设备400能够根据任何适当的通信协议(诸如用户数据报协议(UDP)、传输控制协议(TCP)、ISO 8583等)与其他计算机和设备通信。
生物特征模块412可包括可由处理器402执行的代码或指令,用于使用生物特征接口406收集生物特征。此外,生物特征模块412可包括可由处理器402执行的代码或指令,用于将捕获的生物特征实例与存储在计算机可读介质408中的生物特征模板进行比较。例如,在与信赖实体交互(诸如商家信赖实体与用户之间的交易)之前,生物特征模块412可用于验证用户拥有用户设备400。用户可以使用用户设备400,使用集成相机(生物特征接口406)来捕捉他们的虹膜图像。该图像可被转换成生物特征模板(例如,虹膜代码)并与存储在计算机可读介质408上的生物特征模板进行比较。如果模板匹配,则用户很可能拥有用户设备400。一旦这已被验证,用户设备400就可参与身份属性验证过程(例如,从信赖实体计算机接收策略令牌,生成零知识证明,将零知识证明传输到身份服务提供者计算机等)。
身份令牌模块414可包括可由处理器402执行的代码或指令,用于请求、管理和存储身份令牌。用户设备400可以使用身份令牌模块414向令牌服务器计算机请求身份令牌(即,身份令牌426)。用户设备400还可以使用身份令牌模块414来读取、解析或解释身份令牌426。在一些实施方案中,身份令牌426被加密,并且用户设备400可以使用身份令牌模块414来解密身份令牌426。用户设备400还可使用身份令牌模块414来确定对应于从信赖实体计算机接收到的策略令牌的身份属性集。此身份属性集可包括用户设备400可以用来生成零知识证明和/或包括子证明的身份属性。
此外,用户设备400可以使用身份令牌模块414来编译和准备用于请求身份令牌的任何信息。此信息可包括用户设备标识符、身份提供者或身份提供者计算机的列表、身份提供者计算机的标识符或数字地址、所请求的身份属性(例如,姓名、年龄、账号等)、身份证件(诸如驾驶执照)的数字表示(诸如数字扫描)、生物特征或生物特征模板以及任何自认证属性(例如,与用户设备400的用户相关联的电子邮件地址、社交媒体账户等)。
策略令牌模块416可包括可由处理器402执行的代码或指令,用于接收和解释策略令牌,包括在用户设备400与信赖实体计算机之间的交互(例如,交易)期间从信赖实体计算机接收到的策略令牌。解释策略令牌可包括解释策略令牌中的谓词,以及从它们对应的谓词解释目标身份属性、比较值和比较函数。此外,用户设备400可以使用策略令牌模块416来使用对应于令牌服务器计算机的公钥来验证策略令牌。为此,用户设备400可以结合密码术模块420和密码资料424使用策略令牌模块416。例如,策略令牌模块416可包括指示处理器402从密码资料424中检索对应于令牌服务器计算机的公共密码密钥,然后使用来自密码术模块420的解密函数解密密码签名的代码。
证明生成模块418可包括可由处理器402执行的代码或指令,用于生成零知识证明。这可包括在身份令牌供应阶段(以下参考图6描述)以及在与信赖实体计算机交互期间(以下参考图7描述)生成零知识证明。另外,用户设备400可使用证明生成模块418来验证与在身份令牌供应阶段期间从令牌服务器计算机或身份提供者计算机接收到的身份属性相关联的密码签名(例如,CL签名)的证明。
密码术模块420可包括可由处理器402执行的代码或指令,用于执行根据一些实施方案的密码操作。这些可包括例如使用公共密码密钥来验证从信赖实体计算机接收到的策略令牌,以及从令牌服务器计算机接收到的身份令牌。密码术模块420也可以用于加密用户设备400传输到其他计算机的消息,以及解密从其他计算机或设备接收到的消息。此外,用户设备400可以使用密码术模块420在身份令牌供应过程期间使用用户设备私钥来解密一个或多个身份属性、密码签名以及密码签名的证明(参见下面的图6)。用户设备400可以另外使用密码术模块420来生成密码安全的随机数字或随机数。这些随机随机数可在身份令牌供应阶段期间使用,如以下参考图6所述。另外,用户设备400可以使用密码术模块420来基于主密生成主密和假名的承诺。这些承诺和假名可在身份令牌供应过程中使用,特别是在基于Idemix(或“身份混合器”)库的实施方案中(见上文[4])。
委托模块422可包括可由处理器402执行的代码或指令,用于请求、管理、传输、接收和注册委托身份令牌。委托身份令牌可包括由一个用户设备委托给另一用户设备的身份令牌。这些委托身份令牌可以全部或部分地在其他身份令牌上导出或基于其他身份令牌。例如,用户可能拥有对应于其医疗保险提供者的身份令牌。当接受医疗服务时,用户可以使用此身份令牌来证明他们的身份。用户的配偶或子女可能在用户的医疗保险策略下被覆盖,并且可能有权享受与用户相同的医疗福利。因此,用户可能希望向对应于用户配偶和用户子女的用户设备发布委托身份令牌。委托模块422可由用户设备400用于此目的和类似目的(例如,授权对基于互联网订阅的流服务的访问、授权对视频游戏控制台的访问等)。以下参考图7更详细地描述了身份令牌的委托。
密码资料424可包括由用户设备400用来执行密码功能的任何密码资料。密码资料424可包括主密以及从主密导出的任何数量的假名。这些密码资料还可包括用户设备公钥和用户设备私钥,以及从其他计算机或设备接收到的任何密码密钥,诸如身份提供者公钥、令牌服务器计算机公钥等。
身份令牌426可包括与用户设备400的用户相关联的一个或多个身份令牌。用户设备400可能已经在一个或多个身份令牌供应过程中从一个或多个令牌服务器计算机接收了这些身份令牌。如上参考图1所述,这些身份令牌可包括对应于一个或多个身份提供者计算机或发行者计算机的身份属性集。身份属性集中的身份属性可以根据签名方案来签名,该签名方案使得能够生成证明身份属性真实性的零知识证明(例如,Camenisch-Lysyanskaya签名)。身份令牌426可用于结合证明生成模块418以及任何其他相关软件模块(例如,密码术模块420)来生成零知识证明。
现在将参考图5更详细地描述示例性身份服务提供者计算机500。身份服务提供者计算机500可包括处理器502、通信接口504和计算机可读介质506。身份服务提供者计算机500可对应于身份服务提供者计算机和令牌服务器计算机包括单个计算机系统(即,身份服务系统)的实施方案。因此,应该理解,身份服务提供者计算机500可以执行通常与令牌服务器计算机相关联的功能。
处理器502可包括任何合适的一个或多个数据计算设备。处理器502能够解释代码并执行存储在计算机可读介质506上的指令。处理器502可包括在精简指令集上操作的中央处理单元(CPU),并且可包括单核或多核处理器。处理器502可包括算术逻辑单元(ALU)和高速缓冲存储器。
通信接口504可包括身份服务提供者计算机500可借以与其他计算机或设备通信的任何接口。通信接口的示例包括:有线接口,诸如USB、以太网或FireWire,以及无线接口,诸如蓝牙或Wi-Fi接收器。身份服务提供者计算机500可拥有多个通信接口504。例如,包括服务器计算机的身份服务提供者计算机500可以通过以太网、USB和3.5mm插孔进行通信。
身份服务提供者计算机500可使用通信接口504经由一个或多个安全并经认证的点对点信道与其他设备或计算机通信。这些信道可使用标准公钥基础设施。例如,身份服务提供者计算机500和用户设备可以经由它们的通信接口交换对称密钥。此密钥交换可包括例如Diffie-Hellman密钥交换。在交换密码密钥之后,身份服务提供者计算机500和用户设备可以使用标准的认证加密方案通过公共信道(诸如不安全的网络)进行通信,并且可以用对称密钥对它们之间发送的任何消息进行加密和解密。身份服务提供者计算机和用户设备可采用附加认证方法,诸如数字签名。
计算机可读介质506可包括硬件,该硬件可拥有或存储可由处理器502解释的代码、数据或指令。计算机可读介质506可包括数据和多个软件模块,包括通信模块508、身份令牌供应模块510、策略令牌供应模块512、证明验证模块514、委托令牌供应模块516和密码资料518。
通信模块508可包括可由处理器502解释和执行的代码、软件或指令。身份服务提供者计算机500可以使用该软件模块来与身份服务系统中的其他计算机、设备和实体进行通信,诸如图3的身份服务系统。这可包括使身份服务提供者计算机500能够充当用户设备与身份提供者计算机(包括发行者计算机)之间的通信中介的代码或指令。此外,身份服务提供者计算机500可使用通信模块508来向身份提供者计算机传输对身份属性的请求,向用户设备传输身份令牌,向用户设备发送委托身份令牌,从用户设备接收零知识证明,从用户设备接收密码随机数,并且向信赖实体计算机传输验证消息。通信模块508可使身份服务提供者计算机500能够根据任何适当的通信协议(诸如用户数据报协议(UDP)、传输控制协议(TCP)、ISO 8583等)与其他计算机通信。
身份令牌供应模块510可包括可由处理器502执行的代码或软件,用于生成身份令牌并将其供应给用户设备。这可包括用于生成空身份令牌并用从身份提供者接收到的身份属性(加密的或其他的)来填充该空身份令牌的代码。此外,身份服务提供者计算机500可以使用身份令牌供应模块510来评估或验证从身份证件中提取的身份属性,以及由用户和/或用户设备提供的自认证属性。
策略令牌供应模块512可包括可由处理器502执行的指令、代码或软件,用于生成策略令牌并将这些策略令牌分发给信赖实体。此外,身份服务提供者计算机500可使用策略令牌供应模块512来评估和处理对策略令牌的请求。这可包括评估所请求的谓词(即,信赖实体期望并特别请求的谓词),以及评估对在策略令牌的请求中包括的其他信息,诸如商家类别代码。此外,身份服务提供者计算机500可使用策略令牌供应模块512来批准或拒绝对策略令牌的请求。
作为说明性示例,信赖实体可能包括在法律上被要求在雇用过程期间筛选潜在雇员(用户)的私立学校。通常,这种筛选是通过背景调查来完成的,背景调查是详细记录用户近期历史的冗长文件,尤其是用户最近的就业、居住地和犯罪背景。然而,实际上,筛选过程可以使用对应于潜在雇员的身份令牌来完成。
私立学校可能主要关注用户的犯罪背景,特别是与毒品有关的犯罪、暴力犯罪和针对未成年人的犯罪。私立学校可能不太关心诸如入店行窃的轻微犯罪。此外,私立学校可能没有法律要求验证未来雇员的居住历史。未来雇员可能因其居住历史而感到尴尬,可能或可能担心其居住历史会使未来雇员受到偏见或歧视(例如,未来雇员可能在无家可归者收容所呆过一段时间)。
在雇员筛选之前,私立学校可以从身份服务提供者计算机500请求策略令牌。私立学校可能会在其请求中包括一些期望的谓词,包括对应于雇员的居住历史和犯罪背景的谓词。该请求还可包括对应于私立学校的商家类别代码。该商家类别代码可以向身份服务提供者计算机500指示信赖实体是私立学校。
身份服务提供者计算机500可使用身份令牌供应模块510来分析此请求。使用商家类别代码或由私立学校提供的任何其他信息,身份服务提供者计算机500可以确定任何适用的合法身份验证要求。例如,私立学校可能需要验证未来雇员没有被判犯有与毒品犯罪、暴力犯罪或针对未成年人的犯罪相应的罪行。学校可能没有法律要求验证未来雇员是否被判犯有诸如入店行窃的轻微罪行。身份服务提供者计算机500可以将所确定的合法验证要求与所请求的谓词进行比较。这样,身份服务提供者计算机500可以确定私立学校不需要验证未来雇员的居住历史,并且可以不生成对应于居住历史的谓词。因此,身份服务提供者计算机500可以生成策略令牌,该策略令牌包括对应于用户的相关犯罪历史的谓词,并且不包括对应于用户的无关犯罪历史或用户的居住地的谓词。身份服务提供者计算机500可将该策略令牌发布给与该私立学校相关联的信赖实体计算机。在未来雇员验证交互期间,与私立学校相关联的信赖实体计算机可以向与未来雇员相关联的用户设备传输策略令牌。用户设备随后可以生成对应于策略令牌中的谓词的零知识证明。包含在私立学校的策略令牌中的有限谓词集保证了私立学校能够满足其筛选未来雇员的法律要求,同时保护未来雇员免于被迫公开可能令人尴尬的个人信息。
证明验证模块514可包括可由处理器502执行的代码或指令,用于验证零知识证明和子证明,以便验证对应于用户的身份属性。证明验证模块514可包括多个子验证者,每个子验证者对应于一个子证明。每个子验证者可由身份服务提供者计算机500用来验证对应的子证明。例如,特定的子证明可以证明用户超过了特定年龄(例如,21岁或55岁),并且证明验证模块514可包括对应于年龄验证的子验证者,身份服务提供者计算机500可以使用该子验证者来验证对应于用户年龄的子证明。在验证了每个单独的子证明之后,身份服务提供者计算机500可以使用证明验证模块514来生成验证消息。验证消息可被发送到信赖实体,以便向信赖实体传达零知识证明(以及包括它的子证明)是否被成功验证。
继续私立学校的示例,一个子证明可能对应于未来雇员的毒品犯罪,而第二子证明可能对应于未来雇员的暴力犯罪,并且第三子证明可能对应于未来雇员针对未成年人的犯罪(或者相反,他们没有犯罪)。在使用对应的子验证者中的每一个子验证者来验证这三个子证明(在这样做时,验证未来雇员没有毒品犯罪、没有暴力犯罪和没有针对未成年人的犯罪)之后,身份服务提供者计算机500可以为此目的生成验证消息,即,指示未来雇员没有毒品犯罪、没有暴力犯罪和没有针对未成年人的犯罪。身份服务提供者计算机500可使用通信模块508来将验证消息传输到与该私立学校相关联的信赖实体计算机。
委托令牌供应模块516可包括可由处理器502执行的代码或指令,用于处理对委托身份令牌的请求,生成委托身份令牌,将委托身份令牌传输到用户设备,以及与对应用户设备相关联地在数据库中注册委托身份令牌。如上所述,委托身份令牌可以由一个用户设备委托给另一用户设备。当一个用户有权享受与另一用户的身份令牌相关联的利益时,委托身份令牌可能是有用的。例如,用户可能具有身份令牌,用户使用该身份令牌来验证与其医疗保险相对应的身份属性。用户的子女(第二用户)可以由同一医疗保险策略覆盖。这样,用户可能希望产生委托身份令牌并将其给予第二用户,使得第二用户可以接受医疗护理。为此目的,身份服务提供者计算机500可以使用委托令牌供应模块516。
密码资料518可包括身份服务提供者计算机500可用来完成其指定功能的任何密码资料。这些密码资料可包括对应于身份服务提供者计算机500的公钥-私钥对,以及对应于身份服务系统(诸如图3的系统)中的其他计算机的公钥,包括用户设备公钥、发行者计算机公钥、身份提供者公钥、密码随机数、承诺等。
在使用策略令牌和身份令牌来验证用户设备的用户之前,首先需要向用户设备提供身份令牌。图6示出了根据一些实施方案的示例性身份令牌供应过程的流程图。在图6中,向第一用户设备600提供身份令牌(步骤S608-S626)。可选地并且随后,第一用户设备600可以请求生成并提供给第二用户设备606的委托身份令牌(步骤S628-S634)。替代地,第一用户设备600可以自己生成委托身份令牌并将其提供给第二用户设备606,或者第一用户设备600可以与身份提供者计算机604通信(直接或者经由作为中介的令牌服务器计算机602)以便生成委托身份令牌。第二用户设备606随后可以向令牌服务器计算机602注册委托身份令牌(步骤S636和S638)。
在步骤S608,用户设备600可以从令牌服务器计算机602请求身份令牌。用户设备600可包括与对身份令牌的请求有关的任何信息。这可包括设备标识符或设备地址,令牌服务器计算机602可以使用该设备标识符或设备地址来向用户设备600传输身份令牌。此信息还可包括身份提供者计算机604的列表,令牌服务器计算机602可与之通信以获取身份令牌的身份属性。该信息还可包括对应于身份提供者计算机604的标识符或数字地址。此外,用户设备600可以指定期望的身份属性,诸如对应于用户姓名的身份属性、对应于用户物理位置的身份属性等。用户设备600还可以提供身份证件的数字表示,或者从身份证件中提取的身份属性,以及由用户提供的自认证身份属性。令牌服务器计算机602可以使用身份证件校验服务和/或用户数据校验服务来验证这些身份属性。这些校验服务可包括一个或多个身份提供者计算机。此外,在一些实施方案中,第一用户设备600可以提供生物特征(诸如用户脸部的图像),以便验证第一用户设备600的合法拥有者正在参与注册过程。
在步骤S610,令牌服务器计算机602可以执行与准备身份令牌相关联的设置操作。这些设置操作可包括生成空身份令牌,该空身份令牌包含对应于所请求的身份属性和身份提供者计算机的身份属性的字段。另外,令牌服务器计算机602可以标识并发起与身份提供者计算机604的通信。
在步骤S612,令牌服务器计算机602可以向身份提供者计算机604传输对身份属性的请求。此请求可包括验证从身份证件中提取的身份属性以及由用户提供的自认证属性的请求。这些身份属性可能已经以加密形式从第一用户设备600接收,并且同样地,令牌服务器计算机602可以以加密形式将这些身份属性或其他信息传输到身份提供者计算机604(例如,在从未解密这些身份属性的情况下)。此外,该请求可以通过包括对应于那些身份属性的标签来指示期望的身份属性。例如,该请求可包括诸如“年龄”和“邮政编码”的标签,以指示用户期望对应于用户年龄和邮政编码的身份属性。该请求还可包括由第一用户设备600提供给令牌服务器计算机602的任何信息,诸如身份证件的数字表示、生物特征(诸如用户脸部的照片)等。身份提供者计算机604可以使用该信息来校验注册,如下面在步骤S614中所描述的。令牌服务器计算机602可能已经以加密形式从第一用户设备600接收了该信息,并且同样可以以加密形式将该信息传输到身份提供者计算机604。
在步骤S614,身份提供者计算机604可以评估请求。根据该请求,身份提供者计算机可以标识对应于第一用户设备600的用户或用户账户。另外,身份提供者计算机604可以使用由第一用户设备600提供的任何数据或信息来校验注册。例如,身份提供者计算机604可以将生物特征(诸如用户脸部的照片)与文件上的生物特征或者从身份证件中提取的生物特征(例如,驾驶执照上的用户脸部的照片)进行比较。此校验过程可以允许身份提供者计算机604确认用户(而不是欺诈者)正在身份服务系统中注册。此外,身份提供者计算机604可各自生成用于生成身份属性或生成对应于身份属性的零知识证明的任何数据或信息(例如,证明身份属性是由特定身份提供者计算机604生成或提供的零知识证明)。在一个示例性实施方案中,身份提供者计算机604可各自生成第一密码随机数,该随机数可用于生成与每个身份属性相关联的Camenisch-Lysyanskaya(CL)签名。
随后,在步骤S616-S626,第一用户设备600和身份提供者计算机604可以一起工作来生成身份令牌。此时,令牌服务器计算机602可以充当路由器或中介,使得第一用户设备600能够与身份提供者计算机604通信,反之亦然。然而,第一用户设备600与身份提供者计算机604之间的通信可被加密,以防止令牌服务器计算机602窃听,并且同样通过以加密形式保持身份属性来保护用户的隐私。
在步骤S616,第一用户设备600可以经由令牌服务器计算机602从每个身份提供者计算机604接收第一密码随机数和公共身份提供者密钥。第一用户设备600可以使用公共身份提供者密钥来加密由第一用户设备600发送到身份提供者计算机604的通信,以便防止令牌服务器计算机602解释这些通信。
在步骤S618,第一用户设备600可以执行用于生成身份属性的一系列中间操作,并且生成可以用于使用零知识证明系统来验证身份属性的任何附加信息。在一个示例性实施方案中,如下所述,第一用户设备600可以执行这些中间操作,以便生成对应于身份属性的CL签名。然而,应该理解,可以采用其他基于非CL签名的方法。这些中间操作可包括校验身份提供者公钥,以便确定它们对应于合法的身份提供者计算机604。另外,第一用户设备600可以使用任何适当的随机数或伪随机数生成器来生成第二随机随机数。此外,第一用户设备600可以生成主密的承诺以及承诺的证明。身份提供者计算机604可以使用主密和第二随机随机数的承诺来生成对应于身份属性的CL签名(更多细节,参见[4])。第一用户设备600可以随后生成包括承诺、承诺的证明、第二随机随机数以及用户设备公钥的消息。用户设备公钥可以使身份提供者计算机604能够加密发送到第一用户设备600的消息,以便防止令牌服务器计算机602窃听第一用户设备600与身份提供者计算机604之间的通信。第一用户设备然后可以使用身份提供者公钥来加密消息,从而生成加密消息。
在步骤S620,第一用户设备600可以经由令牌服务器计算机602向身份提供者计算机604传输加密消息。
在步骤S622,身份提供者计算机604中的每个身份提供者计算机可以使用对应的身份提供者私钥对加密消息进行解密,并生成密码签名(即,CL签名)、密码签名的证明以及一个或多个身份属性。身份提供者计算机604可以使用诸如Idemix([4])的软件包或另一适当的方法,使用承诺和第二随机随机数来生成CL签名。
在步骤S624,用户设备600可以从令牌服务器计算机602或者经由令牌服务器计算机602从身份提供者计算机604接收身份令牌。身份令牌可包括一个或多个身份属性和一个或多个身份签名(对应于身份提供者计算机604的一个或多个身份提供者)。此外,身份令牌可包括密码签名和密码签名的证明。可以使用用户设备公钥对身份属性、密码签名和密码签名的证明进行加密。
在步骤S626,第一用户设备600可以使用用户设备私钥解密从身份提供者计算机604接收到的一个或多个身份属性、密码签名和密码签名的证明。随后,第一用户设备600可以执行密码证明验证过程来验证密码签名的证明。此验证过程可以是基于可验证计算,并且可以允许第一用户设备600确定密码签名是否被正确生成。如果密码签名被正确生成,则第一用户设备600可以将身份令牌存储在存储元件上。稍后,第一用户设备600可以在身份属性验证过程期间使用所存储的身份令牌(例如,如下面参考图7所描述的)。
此时,第一用户设备600现在能够执行身份属性验证。第一用户设备600的用户可能另外希望向第二用户设备604(例如,第一用户的配偶或子女所拥有的用户设备)提供委托身份令牌。为此,在步骤S628,第一用户设备600可以向令牌服务器计算机602发送对委托身份令牌的请求。该请求可包括与委托用户相关联的标识符(例如,“Jane Doe,John Doe的妻子”)。另外,该请求可包括身份令牌或来自身份令牌的一个或多个加密身份属性。在一些替代实施方案中,第一用户设备600可以自己或结合身份提供者计算机604生成委托身份令牌,而无需令牌服务器计算机602的帮助。
在步骤S630,令牌服务器计算机602可以参与由第一用户设备600使用信息提供者生成委托身份令牌。例如,这可以以与上面参考步骤S608-S624描述的方式大体相同的方式来完成,其中令牌服务器计算机602充当第一用户设备600与身份提供者计算机604之间的通信中介。
在步骤S632,令牌服务器计算机602可以向第一用户设备600传输委托身份令牌(例如,通过将加密的身份属性信息从身份提供者计算机604路由到第一用户设备600,如上所述)。可选地,第一用户设备600可以通过将存储在委托身份令牌中的身份属性与存储在对应于第一用户设备600的身份令牌中的身份属性进行比较来验证委托身份令牌。
在步骤S634,第一用户设备600可以向第二用户设备606传输委托身份令牌。第二用户设备606可以将委托身份令牌存储在存储器元件(或另一数据存储设备)上,并在身份属性验证过程中使用委托身份令牌。
可选地,第二用户设备606可以向令牌服务器计算机602注册他们对委托身份令牌的所有权。为此,在步骤S636,第二用户设备606可以将委托身份令牌连同委托身份令牌注册消息一起传输到令牌服务器计算机602。此消息可包括对应于第二用户设备606的设备标识符。
在步骤S638,令牌服务器计算机602可以与对应于第二用户设备的标识符相关联地注册委托身份令牌(例如,在数据库中)。
一旦用户设备和信赖实体计算机分别接收并存储了它们的身份令牌和策略令牌,用户设备和信赖实体计算机就可以在交互之前的用户验证期间使用它们各自的令牌。该交互可包括例如信赖实体与用户之间的交易,诸如含酒精饮料的销售。在此交互期间,用户设备可以生成零知识证明,该零知识证明可由身份服务提供者计算机验证,以便验证用户的身份属性。例如,身份服务提供者计算机可以验证零知识证明,以便验证用户年龄足以合法地购买含酒精饮料。图7示出了根据一些实施方案的身份属性验证的示例性方法的流程图。
在步骤S706,用户设备700可以从信赖实体计算机702接收策略令牌。此策略令牌可能已经由令牌服务器计算机发布给信赖实体计算机702。信赖实体计算机702可能已经在步骤S706之前(例如,在策略令牌供应过程期间)请求了策略令牌。信赖实体计算机702可能已经向令牌服务器计算机传输了所请求的谓词、验证要求和/或商家类别代码的列表。令牌服务器计算机可能已经分析了此信息,生成了适当的策略令牌,并将该策略令牌传输到信赖实体计算机702。此外,可以使用对应于令牌服务器计算机的私钥对策略令牌进行密码签名。除了策略令牌之外,在步骤S706,用户设备700可以从信赖实体计算机702接收密码临时数。用户设备700可以使用此密码临时数来生成零知识证明。密码随机数也可被包括在由身份服务提供者计算机704发送给信赖实体计算机702的验证消息中(即,在步骤S720),这使得信赖实体计算机702能够验证该验证消息。
如上参考图2所述,策略令牌可包括一个或多个谓词,并且每个谓词可包括一个或多个目标身份属性(例如,用户年龄、用户邮政编码等)、一个或多个比较值(例如,购买含酒精饮料所需的最小年龄、批准的邮政编码列表等)和比较函数。比较函数可包括不等式函数或集合隶属函数等。每个谓词可以对应于来自用户设备700存储的身份令牌的身份属性集中的一个或多个身份属性。例如,谓词可包括对应于用户年龄的目标身份属性,因此谓词对应于用户的年龄身份属性。
在步骤S708,用户设备700可以使用对应于令牌服务器计算机的公钥来验证策略令牌。用户设备700可以使用策略令牌中包括的密码签名(例如,来自图2的密码签名218)来验证策略令牌。通过验证策略令牌,用户设备700可以确定策略令牌是否是由令牌服务器计算机产生的合法策略令牌。如果策略令牌被成功验证,则用户设备700可以继续生成零知识证明。
在步骤S710,用户设备700可以基于策略令牌和对应于用户设备的用户的身份令牌,从对应于用户的身份令牌中确定身份属性集。身份令牌可能先前已经由令牌服务器计算机发布给用户设备700,例如,如图6中所描述的。身份属性集可以对应于在步骤S706中接收到的策略令牌中的谓词所定义的目标身份属性。例如,如果谓词对应于确定用户是否大于特定年龄(例如,55岁),并且确定用户是否生活在特定的一组邮政编码(例如,{94610、94611和94612})内,则身份属性集可包括用户的年龄身份属性和用户的邮政编码身份属性。用户设备700可以使用身份属性集来生成用于验证用户的子证明。通过在生成子证明之前确定身份属性集,用户设备700避免了在子证明中包括不需要的信息。
在步骤S712,用户设备700使用策略令牌和来自身份令牌的身份属性集来发起用户的验证。在一些实施方案中,发起用户验证包括用户设备700生成零知识证明。如上所述,身份服务提供者计算机可以通过验证构成零知识证明的一个或多个子证明来验证该零知识证明,以便验证用户。用户设备700可以使用一个或多个子证明者来生成构成零知识证明的一个或多个子证明,从而生成零知识证明。零知识证明可以基于用户设备700在步骤S706接收到的密码随机数,以及存储在用户设备700上的主密,以及假名。另外,零知识证明可以对应于一个或多个谓词和身份属性集。用户设备700可以使用匿名凭证库(例如[4]:Idemix)或另一适当的软件包来生成零知识证明。
生成零知识证明可包括生成对应于一个或多个谓词的一个或多个子证明(例如,证明用户大于某个年龄的子证明,以及证明用户生活在特定地理区域内的子证明)。另外,生成零知识证明可包括生成对应于一个或多个身份属性签名的一个或多个子证明。这些身份属性签名可以是由提供身份令牌中使用的身份属性的身份提供者(或多个身份提供者)产生的CL签名。对应于一个或多个身份属性签名的子证明可以证明用于生成子证明的身份属性已经由合法身份提供者签名,而不是由恶意用户设备“编造”或任意生成。因此,对应于身份属性签名集的一个或多个子证明验证了该身份属性集中的每个身份属性对应于一个或多个身份提供者。
在步骤S714,用户设备700将包括一个或多个子证明的零知识证明传输到身份服务提供者计算机704。此外,用户设备700可以向身份服务提供者计算机704传输密码随机数(在步骤S706从信赖实体计算机702接收并用于生成零知识证明)。用户可以通过诸如互联网的网络以加密或未加密的形式传输零知识证明。
在步骤S716,身份服务提供者计算机704验证零知识证明以验证用户。身份服务提供者计算机704可以通过使用多个子验证者来验证对应于(即,包括)零知识证明的多个子证明来验证零知识证明,多个子验证者中的每一个子验证者对应于多个子证明中的一个子证明。多个子证明可包括对应于来自策略令牌(即,在步骤S706由信赖实体计算机702传输的策略令牌)的一个或多个谓词的一个或多个子证明。此外,多个子证明可包括对应于一个或多个身份属性签名的一个或多个子证明,该一个或多个身份属性签名对应于一个或多个身份属性。
例如,零知识证明可包括两个子证明,一个子证明证明用户大于某个年龄,另一子证明证明用户的年龄身份属性是使用合法身份提供者签名进行签名的。身份服务提供者计算机704可以使用对应于不等式函数的子验证者来验证第一子证明,并使用对应于CL签名验证函数的子验证者来验证第二子证明。
在步骤S718,身份服务提供者计算机704可以基于零知识证明的验证来生成验证消息。验证消息可以指示零知识证明成功还是不成功验证。验证消息可包括布尔值,诸如“真”或“假”,以指示零知识证明是否被成功验证。此外,验证消息可包括密码随机数,以及任何其他相关信息(例如,时间戳、设备标识符等)。身份服务提供者计算机704可以使用私钥对验证消息进行密码签名,以证明验证消息是由身份服务提供者计算机704生成的。
在步骤S720,身份服务提供者计算机704可以经由例如通信网络(诸如互联网)将验证消息传输到信赖实体计算机702。
在步骤S722,信赖实体计算机702可使用对应于身份服务提供者计算机704的公钥来验证该验证消息。使用公钥,信赖实体计算机702可确认验证消息是使用身份服务提供者计算机704的私钥被密码签名的,从而确认验证消息是由身份服务提供者计算机704生成并传输的。此外,信赖实体计算机702可以验证从身份服务提供者计算机704接收到的密码随机数。信赖实体计算机702可通过将密码随机数与它在步骤S706发送给用户设备700的密码随机数进行比较来验证密码随机数,以便确定它们是否匹配。
在验证了验证消息之后,在步骤S724,信赖实体计算机可以评估或以其他方式解析验证消息,以确定零知识证明是否被身份服务提供者计算机704成功验证。该评估可包括标识和解释验证消息中的布尔值。如果布尔值为“真”,则零知识证明被成功验证,如果布尔值为“假”,则零知识证明未被成功验证。如果零知识证明被成功验证,则信赖计算机702可以执行与用户设备700的交互。例如,交互可包括交易,诸如消费者(用户)与电子商务含酒精饮料配送企业(信赖实体计算机)之间的电子商务交易。
上面的描述,特别是参考图7,通常涉及“动态证明”(也称为“动态查询”)。这些证明是“动态的”,因为它们是响应于从信赖实体计算机接收到策略令牌而在用户验证过程期间(即,动态地)生成的。然而,一些实施方案使用“静态证明”或“静态查询”。这些静态证明是一次性生成的,不会改变。此外,静态证明可以存储在用户设备上。当存在常见或不变的验证需求时,静态证明可能是有用的。例如,美国的酒类商店需要验证客户超过21岁,通常不需要验证其他任何事项。这些验证要求通常与酒类商店所在的特定州或城市无关。这样,用户设备可以预先计算或预先生成证明用户超过了21岁的静态证明。在与信赖实体的交互期间,用户可以向身份服务提供者计算机提供此静态零知识证明,以便验证用户并完成交易。使用静态证明可能是有利的,因为它减少了用户设备与信赖实体计算机之间的通信次数,从而提高了验证过程的速度。此外,一些较老的信赖实体计算机可能拥有与身份提供者计算机通信的手段(例如,经由将信赖实体计算机连接到互联网的以太网电缆),但是可能不拥有与用户设备直接通信的手段,以便将策略令牌传输到用户设备(例如,它们可能不拥有可以显示QR码的屏幕,或者可能不能够进行蜂窝或近场通信)。静态证明的使用使得这些信赖实体计算机能够参与验证过程,因为它们不需要向用户设备传输策略令牌。
令牌供应和身份属性验证的其他变体包括使用“设备特定”和“应用程序特定”的身份令牌。设备特定身份令牌专用于特定用户设备,诸如特定智能电话。应用程序特定身份令牌专用于特定信赖实体,诸如运行电子商务应用程序的特定电子商务企业。用户可以在他们的每个用户设备上拥有并存储单个设备特定身份令牌(例如,一个身份令牌用于他们的智能电话,一个身份令牌用于他们的膝上型电脑,等等)。相比之下,用户可以在单个用户设备上拥有和存储多个应用程序特定身份令牌。然而,对于每个应用程序,用户可能只拥有一个应用程序特定身份令牌。当身份令牌与特定于给定设备的服务相关联时,设备特定身份令牌可能是合乎需要的。例如,智能电话可以存储和操作用户在其他用户设备(例如,膝上型电脑)上不可用的数字钱包。当信赖实体想要保留对验证过程的更多控制或所有权,要求用户使用特定于其特定应用程序的身份令牌时,应用程序特定令牌可能是合乎需要的。假名(从主密生成的随机化承诺)可用于生成应用程序特定身份令牌。例如,在令牌供应过程期间,对于每个应用程序特定身份令牌,用户设备可以生成对应的假名,该假名可以在令牌供应过程期间用作密码资料(例如,作为在来自图6的步骤S618期间使用的主密的承诺)。
上面给出的大多数用例都对应于交易示例,诸如酒类商店示例。在这些示例中,信赖实体在商业交易期间向用户提供商品(诸如含酒精饮料)或服务。然而,应该理解,一些实施方案可以在非商业或非交易环境中使用。图8示出了这种用例的示例。
图8示出了可以使用身份服务系统814来控制对建筑物806的访问的建筑物访问系统。类似于图3中的身份服务系统318,身份服务系统814可包括身份服务提供者计算机810和令牌服务器计算机812。在一些实施方案中,身份服务提供者计算机810和令牌服务器计算机812可以构成单个计算机实体。
在图8的示例中,用户800可能希望访问建筑物806。例如,建筑物806可包括包含用户800居住的公寓的公寓大楼。替代地,建筑物806可包括需要某种形式的许可才能访问的政府建筑物(用户800工作的地方)。信赖实体可以使用信赖实体计算机804来控制对建筑物806的访问。信赖实体可包括负责保护和控制对建筑物806的访问的安全部门。
用户800可以拥有用户设备802,诸如智能电话。用户设备802可以存储包含对应于用户800的身份属性的身份令牌。此身份令牌可能先前已由身份服务系统814经由通信网络808提供给用户设备802。
同样,信赖实体计算机804拥有包括一个或多个谓词的策略令牌。这些谓词指示信赖实体需要验证的身份属性,以及应该如何验证这些身份属性。此策略令牌可能已经由令牌服务器计算机812经由通信网络808发布给信赖实体计算机804。信赖实体计算机804可包括信息亭或建筑物806附近的另一计算机系统。例如,信赖实体计算机804可被集成到建筑物806的门附近的电话亭或内部通话系统中。可以使用计算机化或电子锁定系统来锁定门,这防止了对建筑物806的未授权访问。
当用户800想要获得对建筑物806的访问权时,用户800可以使用户设备802靠近信赖实体计算机804。用户设备802和信赖实体计算机804可开始经由近场通信或另一合适的通信方法来通信。使用近场通信,信赖实体计算机804可以向用户设备802传输策略令牌。或者,信赖实体计算机804可在显示屏上显示QR码。此QR码可以编码或以其他方式表示策略令牌。用户设备802可以使用诸如集成相机的接口来扫描QR码,然后解码QR码以产生策略令牌。
在从信赖实体计算机804接收到策略令牌之后,用户设备802可使用在策略令牌中包括的数字签名(即,来自图2的密码签名218)来验证策略令牌。用户设备802可以使用对应于令牌服务器计算机812的公共密码密钥来验证策略令牌。如果策略令牌是合法的,则用户设备802可以使用策略令牌和存储在用户设备802上的身份令牌来生成对应于策略令牌中的谓词的零知识证明。
如上所述,零知识证明可包括对应于策略令牌中的一个或多个谓词的一个或多个子证明。在图8的用例中,信赖实体计算机804可能想要验证用户800是被授权访问建筑物806的用户。因此,策略令牌可包括具有对应于用户的姓名身份属性的目标身份属性的谓词、集合隶属比较函数以及对应于批准用户列表的一个或多个比较值。用户设备802可以生成包括两个子证明的零知识证明。第一子证明可以证明用户800的姓名身份属性包括在批准用户列表中。第二子证明可以证明用户的姓名身份属性是由合法的身份提供者(例如,诸如DMV的政府机构)发布的。第二子证明可以是基于与用户800的姓名身份属性相关联的CL签名。
这两个子证明可被编译成单个零知识证明,用户设备802经由通信网络808将该零知识证明传输到身份服务提供者计算机810。身份服务提供者计算机810可以通过单独验证每个子证明来验证零知识证明。也就是说,身份服务提供者计算机810可以验证第一子证明,从而验证用户800的姓名身份属性包括在批准用户列表中。身份服务提供者计算机810也可以验证第二子证明,从而验证用户800的姓名身份属性是由合法的身份提供者发布的。
一旦身份服务提供者计算机810已经验证了零知识证明,身份服务提供者计算机810就可以生成验证消息。验证消息可以指示零知识证明被成功验证。验证消息可以采取任何适当的形式。例如,验证消息可包括简单的布尔语句,诸如“真”(指示零知识证明被成功验证)或“假”(指示零知识证明未被成功验证)。替代地,验证消息可包括更详细的声明或信息集,诸如声明:“用户的身份是合法的,并且该用户被包括在有权访问该建筑物的用户列表中”。验证消息可包括任何其他相关信息,诸如时间戳、用户标识符等。此外,验证消息可由身份服务提供者计算机810使用对应于身份服务提供者计算机810的私有密码密钥来签名。验证消息可用作断言,指示身份服务提供者计算机810断言用户800应被准许访问建筑物806。身份服务提供者计算机810可经由通信网络808将验证消息传输到信赖实体计算机804。
在接收到验证消息后,信赖实体计算机804可验证该验证消息是由身份服务提供者计算机810生成的。信赖实体计算机804可使用在验证消息中包括的密码签名来验证该验证消息是由身份服务提供者计算机810生成的。在一些实施方案中,信赖实体计算机804使用对应于身份服务提供者计算机810的公共密码密钥来验证密码签名。
在验证和解释验证消息之后,信赖实体计算机804可以准许用户800访问建筑物806。信赖实体计算机804可通过向建筑物806的电子锁定的门传输电子信号以解锁该门来实现这一点,从而使用户800能够进入建筑物806。这样,隐私保护身份属性验证被用于控制对建筑物806的访问。身份服务提供者计算机810可以验证用户800可以进入建筑物800,而身份服务提供者计算机无需知道用户800的姓名,因此保护了用户的隐私。
下面参考图9和图10描述一些附加实施方案以及实施方案的附加特征,下面的表1总结了此记号法。
表1
图9示出了根据一些实施方案的用于身份令牌供应的方法的序列图。该方法使用了Idemix的IssueCertificateProtocol([4],第6.1.1节)中的一些步骤,并且关于图9(和图10)中的步骤中的一些步骤的进一步细节可以在Idemix[4]中找到。如上文参考图5所述,令牌服务器计算机902可以生成空身份令牌,并充当身份提供者计算机900与用户设备904之间的通信中介(例如,参见上文图6中的过程流程)。
在步骤S906,身份提供者计算机900可以生成第一随机随机数n1。用户设备904可以使用该随机随机数来生成对应于主密m1的承诺U的第一零知识证明。主密的承诺用于生成对应于身份属性的CL签名。
在步骤S908,身份提供者计算机900可以传输第一随机随机数和对应于身份提供者计算机900的公钥。用户设备904可以使用此公钥来加密发送给身份提供者计算机900的通信,以防止令牌服务器计算机902窃听。对应于身份提供者计算机900的公钥可被适当地认证以确保其真实性。
在步骤S910,用户设备904可以校验对应于身份提供者计算机900的公钥,以便验证该公钥对应于身份提供者计算机900,而不是对应于恶意第三方。
在步骤S912,用户设备904可以生成随机值v'。该随机值随后用于生成值v,该值是对应于身份属性的CL签名的部分。此外,当在步骤914提交主密m1时,使用v'。
在步骤S914,用户设备904可以生成对主密m1的承诺U(例如,使用图9所示的公式,其中S和R1是如上表所示的身份提供者计算机(900)的公钥的组成部分,m1是用户设备(904)的主密,并且n是用于CL签名的模块),该承诺可由身份提供者计算机900用来生成要存储在身份令牌中的身份属性上的CL签名。
在步骤S916,用户设备904可以生成包括值的知识签名证明(SPK)。此SPK可以用作第一零知识证明P1,其证明对主密的承诺U是正确计算的。
在步骤S918,用户设备904可以生成第二随机随机数n2。身份提供者计算机900可以使用第二随机随机数来生成第二零知识证明P2,其证明CL签名(A,e,v”)的正确生成。
在步骤S920,用户设备904可以生成包括对主密U的承诺、第一零知识证明P1、第二随机随机数n2以及对应于用户设备904的公钥(pkC)的消息。身份提供者计算机900可以使用此公钥,以防止令牌服务器计算机902窃听。可以使用身份提供者的公钥pkI-enc对消息进行加密。
在步骤S922,身份提供者计算机900可以使用对应于身份提供者计算机900的私钥skI-enc来解密在步骤S920接收到的消息。
在步骤S924,身份提供者计算机900可以校验对应于pkC的证书,以验证对应于用户设备904的公钥是有效的。
在步骤S926,身份提供者计算机900可以验证由用户设备904生成的第一零知识证明,以便验证用户设备904正确地生成了对主密的承诺U。
在步骤S928之前,身份提供者计算机900可以选择第二随机值v”,并且可以生成随机素数e。在步骤S928,身份提供者计算机900可以使用在步骤S920接收到的消息中提供的信息以及附加数据来生成所请求的身份属性上的CL签名。换句话说,身份提供者计算机900在其能够提供的所有身份属性上生成CL签名。此CL签名稍后可由用户设备904用来证明它用来生成零知识证明的身份属性是合法的(例如,在交互期间,如参考图7所描述的)。
在步骤S930,身份提供者计算机900可以生成第二零知识证明P2,该第二零知识证明向用户设备904证明身份提供者计算机正确地生成了CL签名。
在步骤S932,身份提供者计算机900可以为用户设备904准备身份属性,例如,通过将身份属性编译成可由用户设备904解释的消息格式。
在步骤S934,身份提供者计算机900可以向用户设备904传输包括身份属性、CL签名和第二密码证明的加密消息。身份提供者计算机可以使用对应于用户设备904的公钥来加密此消息,以防止令牌服务器计算机902窃听。
在步骤S936,用户设备904可以使用对应于公钥pkC的秘密密钥skC来解密该消息。
在步骤S938,用户设备904可以基于由用户设备904生成的随机值v'和由身份提供者计算机900生成的随机值v”来计算值v。此值v可以用作最终CL签名(A,e,v)的部分。
在步骤S940,用户设备904可以使用由身份提供者计算机900发送的第二零知识证明P2和CL签名(A,e,v”)来验证CL签名(A,e,v)。
在步骤S942,作为确定CL签名和身份属性的正确性的部分,用户设备904可以验证第二零知识证明。
在步骤S944,如果CL签名和身份属性被正确验证,则用户设备904可以填充从令牌服务器计算机904接收到的空身份令牌,并将身份令牌存储在存储器中。
图10示出了根据一些实施方案的示例性交互(例如,交易,诸如含酒精饮料的销售)。图10所示的过程提供了关于相对于先前实施方案的示例性交互的附加细节。在此交互中,信赖实体计算机1000希望验证用户超过某个年龄(例如,21岁)。
在步骤S1006,信赖实体计算机1000可以选择或以其他方式生成随机随机数n1。此随机随机数可由用户设备1002用来生成零知识证明,从而证明用户超过某个年龄,并且他们的身份属性是合法的(即,源自受信任的身份提供者计算机)。
在步骤S1008,信赖实体计算机1000可经由例如NFC或QR码将随机随机数和策略令牌传输到用户设备1002,如上所述。
在步骤S1010,用户设备1002可以通过评估包括在策略令牌中的令牌服务器计算机签名来校验策略令牌。以这种方式,用户设备1002可以确定策略令牌是由合法令牌服务器计算机生成的,而不是由非法令牌服务器计算机或信赖实体计算机1000生成的。
在步骤S1012,用户设备1002可以使用主密m1、身份属性、CL签名、S(如Idemix[4]中描述的发布规范)、随机随机数n1、假名{nym}以及两个子证明者(proveCL和proveInequality)来生成零知识证明P。proveCL子证明者用于证明CL签名的合法性,从而证明身份属性源自合法的身份提供者计算机。proveInequality子证明者用于证明与身份属性相对应的不等式。例如,proveInequality子证明者可用于证明用户的年龄身份属性大于21。
在步骤S1014,用户设备1002可以将零知识证明P和密码随机数n1传输到身份服务提供者计算机1004。
在步骤S1016,身份服务提供者计算机1004可以验证零知识证明P并生成验证消息。身份服务提供者计算机1004可以使用两个子验证者来验证零知识证明P。第一子验证者verifyCL验证对应于CL签名的子证明,以便验证身份属性是由合法的身份提供者计算机产生的。第二子证明者verifyInequality验证对应于不等式(例如,年龄>21)的子证明,以便验证例如用户年龄足以购买含酒精饮料。
在验证子证明之后,身份服务提供者计算机1004可以生成包含验证结果(result)和随机随机数n1的验证消息。身份服务提供者计算机1004可以使用对应于身份服务提供者计算机1004的秘密密钥skIDSP对此消息进行签名。
在步骤S1018,身份服务提供者计算机1004可以向信赖实体计算机1000传输验证消息。
在步骤S1020,信赖实体计算机1000可使用对应于身份服务提供者计算机1004的公钥pkIDSP来校验身份服务提供者计算机1004签名,以便验证该验证消息是由合法的身份服务提供者计算机1004而不是冒名顶替者(诸如恶意用户设备)产生的。
在步骤S1022,信赖实体计算机1000可通过将验证消息中的随机随机数与在步骤S1006生成的随机随机数进行比较来校验该随机随机数。如果这些随机随机数相同,则向信赖实体计算机1000指示正确的随机随机数被用于生成零知识证明。
在步骤S1024,信赖实体计算机1000可以读取验证消息中的结果并相应地行动。例如,如果结果指示零知识证明被成功验证(例如,证明用户大于21岁),则信赖实体计算机1000可以与用户设备1002的用户完成含酒精饮料销售。如果结果指示零知识证明未被成功验证,则信赖实体计算机1000可以拒绝销售。
一些实施方案还可以支持或启用身份令牌注册、备份、恢复或同步服务。实际上,用户身份令牌的加密副本可以存储在令牌服务器计算机和/或身份服务提供者计算机上。令牌服务器计算机和/或身份服务提供者计算机无法确定身份属性,因为令牌已加密。如果用户丢失了他们的用户设备,或者存储器被无意中擦除,或者用户获得了新的用户设备,则用户可以从令牌服务器计算机和/或身份服务提供者计算机下载或检索他们的身份令牌的副本。
例如,在向身份令牌备份服务注册时,用户可以提供密码。此密码可用于生成对称密码密钥,该密码密钥用于加密身份令牌。然后,加密的身份令牌可被发送到令牌服务器计算机和/或身份服务提供者计算机进行存储。当用户希望恢复身份令牌时,他们可以下载加密的身份令牌,然后使用他们的密码重新生成密码密钥并解密身份令牌。
除了上述方法之外,一些实施方案还考虑了以下方法。这些方法包括由身份服务提供者计算机执行的方法,该方法包括:由身份服务提供者计算机从用户设备接收零知识证明;由身份服务提供者计算机验证零知识证明;由身份服务提供者计算机基于零知识证明的验证来生成验证消息;由身份服务提供者计算机使用对应于身份服务提供者计算机的私钥对验证消息进行密码签名,以及由身份服务提供者计算机向信赖实体计算机传输验证消息,其中信赖实体计算机此后基于验证消息执行与用户设备的交互。
这些方法还包括由信赖实体计算机执行的方法,该方法包括:由信赖实体计算机向用户设备传输密码随机数和策略令牌,其中用户设备使用存储在用户设备上的密码随机数、策略令牌和身份令牌来生成零知识证明,其中用户设备向身份服务提供者计算机传输零知识证明,并且其中身份服务提供者计算机使用零知识证明来验证用户设备并生成验证消息;由信赖实体计算机从身份服务提供者计算机接收验证消息;由信赖实体计算机评估验证消息;以及由信赖实体计算机执行与用户设备的交互。
本文所提及的任何计算机系统都可以使用任何合适数量的子系统。在一些实施方案中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的部件。在其他实施方案中,计算机系统可包括多个计算机设备,每个计算机设备都是具有内部部件的子系统。
计算机系统可包括例如由外部接口或由内部接口连接在一起的多个部件或子系统。在一些实施方案中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,并且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或部件。
应理解,本发明的任何实施方案都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实现,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实现本发明的实施方案的其他方式和/或方法。
本申请中描述的任何软件部件或功能可实现为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或诸如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。该软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或发送,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁性介质(例如硬盘驱动器或软盘),或者光学介质(例如光盘(CD)或数字通用光盘(DVD))、闪存存储器,等等。计算机可读介质可以是此类存储设备或传输设备的任何组合。
此类程序还可以使用适合于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的一个实施方案的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容设备一起封装或者与其他设备分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,并且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其他合适的显示器。
本文所述的任何方法可以完全地或部分地用包括可被配置为执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施方案可涉及被配置为执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤组的不同部件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可与来自其他方法的其他步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其他手段来执行。
在不偏离本发明的实施方案的精神和范围的情况下,具体实施方案的特定细节可以任何合适方式组合。然而,本发明的其他实施方案可涉及与每个单独的方面相关的特定实施方案,或者这些单独的方面的特定组合。上文对本发明的示例性实施方案的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施方案是为了最好地解释本发明的原理及其实际应用,由此使本领域的技术人员能够在各种实施方案中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
以上描述是说明性的而不是限制性的。在阅读了本公开之后,本发明的许多变型形式对于本领域的技术人员将变得显而易见。因此,本发明的范围不应当参考上面的描述来确定,而是应当参考未决的权利要求连同其完整范围或等同物来确定。
在不偏离本发明的范围的情况下,任何实施方案的一个或多个特征可以与任何其他实施方案的一个或多个特征组合。
除非明确指示有相反的意思,否则叙述“一”或“该”旨在表示“一个或多个”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。
本文中所提及的所有专利、专利申请、公开和描述是出于所有目的而以全文引用的方式并入。并非承认它们是现有技术。
Claims (20)
1.一种方法,所述方法包括:
由用户设备从信赖实体计算机接收策略令牌,其中所述策略令牌是从令牌服务器计算机发布给所述信赖实体计算机的;
由所述用户设备基于所述策略令牌和对应于用户的身份令牌,从所述身份令牌中确定身份属性集,其中所述身份令牌是由所述令牌服务器计算机发布给所述用户设备的;以及
由所述用户设备使用所述策略令牌和来自所述身份令牌的所述身份属性集来发起对所述用户的验证。
2.如权利要求1所述的方法,其中使用对应于所述令牌服务器计算机的私钥对所述策略令牌进行密码签名,并且其中所述方法还包括:
由所述用户设备使用对应于所述令牌服务器计算机的公钥来验证所述策略令牌。
3.如权利要求1所述的方法,其中所述身份令牌是委托身份令牌,其中所述用户设备是第二用户设备,并且其中所述方法还包括:
由所述第二用户设备从第一用户设备接收所述委托身份令牌。
4.如权利要求1所述的方法,所述方法还包括:
由所述用户设备从所述令牌服务器计算机接收所述身份令牌,所述身份令牌包括一个或多个身份属性和一个或多个身份属性签名,其中所述一个或多个身份属性和所述一个或多个身份属性签名对应于一个或多个身份提供者,其中所述一个或多个身份提供者向所述令牌服务器计算机提供所述一个或多个身份属性和所述一个或多个身份属性签名。
5.如权利要求1所述的方法,所述方法还包括:
由所述用户设备经由所述令牌服务器计算机从身份提供者接收第一密码随机数和公共身份提供者密钥;
由所述用户设备校验所述身份提供者公钥;
由所述用户设备生成第二随机随机数;
由所述用户设备生成主密的承诺;
由所述用户设备生成所述承诺的证明;
由所述用户设备生成包括所述承诺、所述承诺的所述证明、所述第二随机随机数以及用户设备公钥的消息;
由所述用户设备使用所述身份提供者公钥加密所述消息,从而生成加密消息;
由所述用户设备经由所述令牌服务器计算机向所述身份提供者传输所述加密消息,其中所述身份提供者使用身份提供者私钥来解密所述消息,并且生成密码签名、所述密码签名的证明以及一个或多个身份属性;
由所述用户设备从所述令牌服务器计算机接收所述身份令牌,所述身份令牌包括所述一个或多个身份属性、所述密码签名以及所述密码签名的所述证明;
由所述用户设备验证所述密码签名的所述证明;以及
由所述用户设备存储所述身份令牌。
6.如权利要求5所述的方法,其中所述一个或多个身份属性、所述密码签名以及所述密码签名的所述证明是使用所述用户设备公钥加密的,并且其中所述方法还包括:
由所述用户设备使用用户设备私钥来解密所述一个或多个身份属性、所述密码签名以及所述密码签名的所述证明。
7.如权利要求1所述的方法,其中发起对所述用户的验证包括所述用户设备生成零知识证明,并且然后将所述零知识证明传输到身份服务提供者计算机,其中所述身份服务提供者计算机验证所述零知识证明以验证所述用户。
8.如权利要求7所述的方法,其中所述身份服务提供者计算机基于所述零知识证明的所述验证生成验证消息,其中所述身份服务提供者计算机使用身份服务提供者计算机私钥对所述验证消息进行签名,其中所述身份服务提供者计算机将所述验证消息传输到所述信赖实体计算机,并且其中所述信赖实体计算机评估所述验证消息,然后执行与所述用户设备的交互。
9.如权利要求7所述的方法,其中所述令牌服务器计算机和所述身份服务提供者计算机是单个计算机实体的部分。
10.如权利要求7所述的方法,其中所述策略令牌包括一个或多个谓词,其中每个谓词对应于来自所述身份属性集的一个或多个身份属性,并且其中所述零知识证明对应于所述一个或多个谓词和所述身份属性集。
11.一种用户设备,所述用户设备包括:
处理器;和
耦合到所述处理器的非暂时性计算机可读介质,所述非暂时性计算机可读介质包括能够由所述处理器执行以实现方法的代码,所述方法包括:
从信赖实体计算机接收策略令牌,其中所述策略令牌是从令牌服务器计算机发布给所述信赖实体计算机的;
基于所述策略令牌和对应于用户的身份令牌,从所述身份令牌中确定身份属性集,其中所述身份令牌是由所述令牌服务器计算机发布给所述用户设备的;以及
使用所述策略令牌和来自所述身份令牌的所述身份属性集来发起对所述用户的验证。
12.如权利要求11所述的用户设备,其中所述策略令牌是从所述令牌服务器计算机发布给所述信赖实体计算机的,其中所述策略令牌包括一个或多个谓词,其中每个谓词与来自对应于所述用户的所述身份令牌的一个或多个身份属性相对应,并且其中发起验证包括,
基于所述一个或多个谓词和所述身份属性集生成零知识证明,以及
将所述零知识证明传输到身份服务提供者计算机,其中所述身份服务提供者计算机验证所述零知识证明以验证所述用户。
13.如权利要求12所述的用户设备,其中所述零知识证明是另外基于密码随机数,并且其中所述方法还包括:
从所述信赖实体计算机接收所述密码随机数;以及
向所述信赖实体计算机传输所述密码随机数。
14.如权利要求12所述的用户设备,其中所述一个或多个谓词中的每个谓词包括:
一个或多个目标身份属性;
一个或多个比较值;以及
比较函数。
15.如权利要求14所述的用户设备,其中所述比较函数包括不等式函数或集合隶属函数。
16.如权利要求14所述的用户设备,其中生成所述零知识证明包括生成对应于所述一个或多个谓词中的每个谓词的一个或多个子证明,其中对应于每个谓词的所述一个或多个子证明各自指示具有输入的对应比较函数的输出,所述输入包括:
所述一个或多个比较值;以及
对应于所述一个或多个目标身份属性的一个或多个身份属性值。
17.一种方法,所述方法包括:
由身份服务提供者计算机向信赖实体计算机提供策略令牌;
由所述身份服务提供者计算机从用户设备接收至少部分使用所述策略令牌和存储在所述用户设备上的身份属性集生成的零知识证明;
由所述身份服务提供者计算机验证所述零知识证明;
由所述身份服务提供者计算机基于所述零知识证明的验证来生成验证消息;
由所述身份服务提供者计算机使用对应于所述身份服务提供者计算机的私钥对所述验证消息进行密码签名;以及
由所述身份服务提供者计算机向所述信赖实体计算机传输所述验证消息,其中所述信赖实体计算机此后基于所述验证消息执行与所述用户设备的交互。
18.如权利要求17所述的方法,所述方法还包括:
由所述身份服务提供者计算机从所述用户设备接收密码随机数,其中所述用户设备从所述信赖实体计算机接收所述密码随机数;以及
由所述身份服务提供者计算机向所述信赖实体计算机传输所述密码随机数,其中所述信赖实体计算机验证所述密码随机数。
19.如权利要求17所述的方法,其中所述信赖实体计算机使用对应于所述身份服务提供者计算机的公钥来验证所述验证消息。
20.如权利要求17所述的方法,其中所述零知识证明包括多个子证明,其中所述多个子证明包括与来自所述策略令牌的一个或多个谓词相对应的一个或多个子证明,以及对应于与一个或多个身份属性对应的一个或多个身份属性签名的一个或多个子证明,并且其中验证所述零知识证明包括:
由所述身份服务提供者计算机使用多个子验证者来验证对应于所述零知识证明的所述多个子证明,所述多个子验证者中各自对应于所述多个子证明中的子证明。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/928,367 | 2020-07-14 | ||
US16/928,367 US20220021537A1 (en) | 2020-07-14 | 2020-07-14 | Privacy-preserving identity attribute verification using policy tokens |
PCT/US2021/041314 WO2022015663A1 (en) | 2020-07-14 | 2021-07-12 | Privacy-preserving identity attribute verification using policy tokens |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115867910A true CN115867910A (zh) | 2023-03-28 |
Family
ID=79292995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180049517.8A Pending CN115867910A (zh) | 2020-07-14 | 2021-07-12 | 使用策略令牌的隐私保护身份属性验证 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220021537A1 (zh) |
EP (1) | EP4182829A4 (zh) |
CN (1) | CN115867910A (zh) |
WO (1) | WO2022015663A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11849043B2 (en) * | 2020-11-13 | 2023-12-19 | Sony Group Corporation | Zero-knowledge authentication based on device information |
US20220284527A1 (en) * | 2021-03-04 | 2022-09-08 | Cheri Williams-Franklin | Asset Documentation and Notification System |
US20220321354A1 (en) * | 2021-03-30 | 2022-10-06 | Cloudflare, Inc. | Using a zero-knowledge proof to prove knowledge that a website visitor is a legitimate human user |
US11954989B2 (en) * | 2021-04-15 | 2024-04-09 | Motorola Solutions, Inc. | Image recognition based configuration/authorization method for video security systems |
US20230291731A1 (en) * | 2022-03-10 | 2023-09-14 | Mastercard International Incorporated | Systems and methods for monitoring decentralized data storage |
US20230336523A1 (en) * | 2022-04-13 | 2023-10-19 | Unstoppable Domains, Inc. | Domain name registration based on verification of entities of reserved names |
EP4280534A1 (en) * | 2022-05-19 | 2023-11-22 | GMV Soluciones Globales Internet, S.A.U. | Knowledge-based message authentication for the internet of things |
WO2023233173A1 (en) * | 2022-05-31 | 2023-12-07 | Safepay Systems Kft. | Implementing self-sovereign identity (ssi) based on configurable individual profiles generated real-time from private attributes stored in the personal secure elements of the users |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0407369D0 (en) * | 2004-03-31 | 2004-05-05 | British Telecomm | Trust tokens |
US8087060B2 (en) * | 2007-03-16 | 2011-12-27 | James Mark Norman | Chaining information card selectors |
US9043891B2 (en) * | 2010-02-18 | 2015-05-26 | Microsoft Technology Licensiing, LLC | Preserving privacy with digital identities |
US10210489B2 (en) * | 2010-04-08 | 2019-02-19 | Securekey Technologies Inc. | Credential provision and proof system |
US9407620B2 (en) * | 2013-08-23 | 2016-08-02 | Morphotrust Usa, Llc | System and method for identity management |
US10853592B2 (en) * | 2015-02-13 | 2020-12-01 | Yoti Holding Limited | Digital identity system |
US10692085B2 (en) * | 2015-02-13 | 2020-06-23 | Yoti Holding Limited | Secure electronic payment |
US10410208B2 (en) * | 2015-04-24 | 2019-09-10 | Capital One Services, Llc | Token identity devices |
US10628403B2 (en) * | 2016-01-27 | 2020-04-21 | Oracle International Corporation | Annotation system for extracting attributes from electronic data structures |
US10505733B2 (en) * | 2017-09-25 | 2019-12-10 | Citrix Systems, Inc. | Generating and managing a composite identity token for multi-service use |
US10764270B2 (en) * | 2017-11-20 | 2020-09-01 | Allstate Insurance Company | Cryptographically transmitting and storing identity tokens and/or activity data among spatially distributed computing devices |
US11212102B2 (en) * | 2018-07-03 | 2021-12-28 | Royal Bank Of Canada | System and method for an electronic identity brokerage |
SG11202101525PA (en) * | 2018-08-17 | 2021-03-30 | Visa Int Service Ass | Secure data transfer system and method |
US11240025B2 (en) * | 2018-11-09 | 2022-02-01 | Ares Technologies, Inc. | Systems and methods for distributed key storage |
US10904754B2 (en) * | 2018-11-28 | 2021-01-26 | International Business Machines Corporation | Cellular network authentication utilizing unlinkable anonymous credentials |
US11121873B2 (en) * | 2019-02-08 | 2021-09-14 | Microsoft Technology Licensing, Llc | System and method for hardening security between web services using protected forwarded access tokens |
US20200280550A1 (en) * | 2019-02-28 | 2020-09-03 | Nok Nok Labs, Inc. | System and method for endorsing a new authenticator |
-
2020
- 2020-07-14 US US16/928,367 patent/US20220021537A1/en active Pending
-
2021
- 2021-07-12 EP EP21842395.2A patent/EP4182829A4/en active Pending
- 2021-07-12 CN CN202180049517.8A patent/CN115867910A/zh active Pending
- 2021-07-12 WO PCT/US2021/041314 patent/WO2022015663A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022015663A1 (en) | 2022-01-20 |
US20220021537A1 (en) | 2022-01-20 |
EP4182829A1 (en) | 2023-05-24 |
EP4182829A4 (en) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210351931A1 (en) | System and method for securely processing an electronic identity | |
US11218480B2 (en) | Authenticator centralization and protection based on authenticator type and authentication policy | |
JP7230235B2 (ja) | ブロックチェーンに格納された個人データを安全に共有するための非接触カードの使用 | |
US20220021537A1 (en) | Privacy-preserving identity attribute verification using policy tokens | |
US11445364B2 (en) | Secure data communication | |
CN111466097B (zh) | 服务器辅助式隐私保护生物统计比较 | |
KR101863953B1 (ko) | 전자 서명 서비스 시스템 및 방법 | |
US10523441B2 (en) | Authentication of access request of a device and protecting confidential information | |
US20130226813A1 (en) | Cyberspace Identification Trust Authority (CITA) System and Method | |
US20130219481A1 (en) | Cyberspace Trusted Identity (CTI) Module | |
US20120191615A1 (en) | Secure Credit Transactions | |
US11070378B1 (en) | Signcrypted biometric electronic signature tokens | |
US20240048395A1 (en) | Method and system for authentication credential | |
CN112970234B (zh) | 账户断言 | |
KR100612925B1 (ko) | 공인 인터넷 아이디 서비스 시스템 및 운영방법 | |
US20210258141A1 (en) | Method for recognizing expression of opinion capable of ensuring anonymity and preventing sybil attacks, method for registering that stores user?s identification information, and method for authenticating the user | |
CN116349198B (zh) | 用于认证凭证的方法和系统 | |
RU2776258C2 (ru) | Биометрическое сравнение для защиты приватности с помощью сервера |
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 |