CN111490967B - 一种提供用户友好的强认证和匿名认证的统一身份认证方法和*** - Google Patents

一种提供用户友好的强认证和匿名认证的统一身份认证方法和*** Download PDF

Info

Publication number
CN111490967B
CN111490967B CN201910086040.5A CN201910086040A CN111490967B CN 111490967 B CN111490967 B CN 111490967B CN 201910086040 A CN201910086040 A CN 201910086040A CN 111490967 B CN111490967 B CN 111490967B
Authority
CN
China
Prior art keywords
user
authentication
password
certificate
credential
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910086040.5A
Other languages
English (en)
Other versions
CN111490967A (zh
Inventor
张振峰
王宇辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201910086040.5A priority Critical patent/CN111490967B/zh
Publication of CN111490967A publication Critical patent/CN111490967A/zh
Application granted granted Critical
Publication of CN111490967B publication Critical patent/CN111490967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种提供用户友好的强认证和匿名认证的统一身份认证方法和***。该方法提供一种基于口令的凭证方案,用户可以通过口令使用其凭证向验证者进行基于“挑战‑应答”模式的强认证或者匿名认证,具体包括***建立、密钥生成、凭证颁发、凭证获取、生成出示证明、验证出示证明六个算法。该基于口令的凭证方案和标准的统一身份认证协议以及常用的“用户名‑口令”认证方式兼容,不需要使用专用硬件或者对底层的密码学库进行修改,适用于大规模应用及推广。本发明的统一身份认证***的效率与使用“用户名‑口令”认证的***基本相当,能够满足实际应用的性能需求。

Description

一种提供用户友好的强认证和匿名认证的统一身份认证方法 和***
技术领域
本发明属于计算机技术与信息安全技术领域,涉及使用统一身份认证、零知识证明等方法,使得用户在无专用硬件的情况下实施基于“挑战-应答”机制的强认证和匿名认证。具体表现为一种用户友好、能够提供强认证机制和匿名认证机制的统一身份认证方法和***。
背景技术
随着互联网和信息技术的飞速发展,人们已经越来越离不开各种数字化服务以及应用。当用户在网络上使用这些应用和服务时,往往需要向服务提供者(SP)证明自己的身份,在认证通过之后才可进行下一步操作。大多数情况下,SP使用“用户名-口令”认证机制,其优势在于用户只需要记忆口令即可向SP进行认证,但SP一般都会将用户凭证集中存放于服务器上,使其在数据泄露事件中可能被大规模地泄露,威胁众多用户的账户安全。
为了减少用户同时管理多个凭证的负担,目前许多服务提供商都已经建立了统一身份认证***。此类***允许用户使用由一个身份提供者(IdP)管理的身份访问多个依赖方(RP)提供的服务,即用户可以通过一个凭证访问多种服务。目前大多数运营的统一身份认证***仍然使用“用户名-口令”认证机制,这使得用户凭证面临大规模泄露的风险。统一身份认证***中的凭证泄露会造成更为严重的危害,攻击者能够利用泄露的凭证同时登录多个RP并使用其提供的服务,从而导致用户在多个RP注册的账户在一次数据泄露事件中同时被攻破。
“用户名-口令”认证机制导致的另一重风险是用户隐私泄露:这一机制需要用户将其身份信息显式地发送给SP,使得属于用户的隐私数据很容易被收集、泄露甚至转卖。在这一背景下,匿名认证受到业界的广泛关注,即:服务提供方能够确认用户是已经注册的合法用户,但无法获取其具体身份,也无法判断两次会话是否由同一用户参与。特别地,随着区块链技术的发展,一系列提供匿名功能的加密货币已经被公众所熟知和接受,超级帐本也提供了匿名成员服务功能。目前已有的匿名认证方案均需要用户使用专用硬件对秘密信息进行保护,或需要对***底层的库函数实现进行修改,难以直接运行于通用设备上并兼容现有***。
为了解决传统认证中集中式凭证存储而导致的大规模泄露风险,FIDO联盟提出了一项称为FIDO统一认证框架(UAF)的协议,提供基于数字签名和“挑战-响应”机制的强认证方案。FIDO UAF可消除用户凭证大规模泄露的风险,增强用户认证过程的安全性。然而,为了保护用户私钥,FIDO UAF同样需要用户使用专用硬件(称为FIDO认证器)进行认证。这意味着用户需要随时携带专用设备,而不能通过通用设备实施认证,如果专用设备遭损坏或者丢失,认证过程也无法进行。从隐私保护的角度看,FIDO UAF还不能实现真正的匿名认证,服务器仍然可以在用户每次登陆时获取用户已注册的身份并收集用户的隐私。
为了解决统一身份认证***的隐私泄露问题,一些隐私尊重的协议被研发(如BrowserID和SPRESSO),以保证IdP无法在认证过程中获取用户登录的具体RP。此类***均独立于广泛应用的统一身份认证标准,在设计时仍然采用“用户名-口令”认证机制,难以避免集中式存储带来的泄露风险;此外,IdP和RP仍然可以获取用户的身份,并收集隐私信息。
基于此,一种不需要用户使用专用硬件、能够同时提供强认证和匿名认证,并且兼容于现有广泛部署的统一身份认证***是被高度期望的。
发明内容
本发明的贡献在于提供了一种基于口令的凭证方案以及一种提供强认证/匿名认证的统一身份认证方法和***。
本发明包括以下两个方面的内容:
一、基于口令的凭证方案
本发明提供一种基于口令的凭证方案,用户可以通过口令使用其凭证向验证者进行基于“挑战-应答”模式的强认证或者匿名认证,具体包括***建立、密钥生成、凭证颁发、凭证获取、生成出示证明、验证出示证明六个算法。
该方案的一般性质包括:
1)用户使用口令对凭证进行加密,并可在通用设备上存储使用口令加密后的凭证,不需要使用专用设备对凭证进行保护。本发明所述“凭证”是指用户向SP进行认证时用于证明自己身份的信息。
2)口令加密的凭证可以抵抗离线攻击,即敌手不能通过对口令加密的凭证实施离线字典攻击从而获取凭证。
3)用户可以使用同一个凭证向验证者实施基于“挑战-响应”机制的强认证或者匿名认证,即同一凭证可以使用不同方式出示。
4)验证者不需要保存用户凭证,避免了凭证集中式存储导致的数据泄露风险。
5)用户需要通过输入正确口令解密凭证后才可以向验证者进行认证。
6)用户可以随时对其加密凭证的口令进行更新,这一过程不需要与服务器(即验证者)进行交互。
二、提供强认证和匿名认证的统一身份认证方法
本发明中提出一种提供强认证/匿名认证的统一身份认证方法,该方法将内容一中的基于口令的凭证方案和标准的统一身份认证协议(如OpenID Connect)相结合,其基本性质包括:
1)用户在IdP上注册基于口令的凭证,并可利用这一凭证访问多个RP。
2)用户可以使用同一凭证向IdP进行基于“挑战-响应”机制的强认证/匿名认证,并进一步访问RP。
3)IdP和RP均无需集中保存用户凭证。
4)在实施匿名认证的过程中,IdP和RP均无法获取用户的身份,也无法借助已认证用户的身份收集用户隐私。
5)可以与OpenID Connect等统一身份认证协议以及常用的“用户名-口令”认证方式兼容,可以和“用户名-口令”方式同时在***中被使用,不需要使用专用硬件或者对底层的密码学库进行修改。
6)基于密码白盒或安全硬件,用户可在RP上注册并重用假名,实现用户可控的(不)可链接性,即用户可以自行选择是否重用在认证时使用的假名。
具体来说,本发明采用的技术方案如下:
一种提供用户友好的强认证和匿名认证的统一身份认证方法,包括以下步骤:
1)用户端使用口令对凭证进行加密,得到基于口令的凭证并存储;
2)用户端使用基于口令的凭证向验证端进行强认证或者匿名认证。
进一步地,在通用设备上存储所述基于口令的凭证,不需要使用专用设备对凭证进行保护。
进一步地,所述用户端随时对其加密凭证的口令进行更新,更新过程不与验证端进行交互;所述验证端不保存用户端的凭证,以避免凭证集中式存储导致的数据泄露风险。
进一步地,步骤1)通过调用代数消息认证码方案以及口令加密方案,得到所述基于口令的凭证。
进一步地,步骤1)包括6个算法:***建立、密钥生成、凭证颁发、凭证获取、生成出示证明、验证出示证明,分别记作Setup,KeyGen,Issue,Obtain,Show,ShowVerify:
Setup(1λ):输入安全参数λ,该算法根据该安全参数选取并输出域参数
Figure GDA0003369467840000031
其中
Figure GDA0003369467840000032
是阶数为p的循环群,p是至少为2λ比特的素数,g是群
Figure GDA0003369467840000033
的生成元;
KeyGen(pp):输入公共参数pp,该算法调用代数消息认证码方案中的Gen算法生成公开参数par和私钥sk,其中par对参与方案的用户是公开可见的;
Figure GDA0003369467840000041
其中uid为用户标识符,pw为口令;Obtain和Issue以交互的方式在用户和凭证颁发者之间运行,用户在颁发者处注册并获得基于口令的凭证;
Show(tag,par,uid,pw,[σ]pw,M):其中tag为标签,根据标签值采用不同的方式生成出示证明,[σ]pw为口令加密后的凭证;该算法由已注册了基于口令的凭证的用户执行,用于向验证者实施认证,该算法计算σ←Dec(pw,[σ]pw),之后使用uid,σ生成关于消息M的出示证明Σ←ShowMAC(tag,par,uid,σ,M);根据用户希望实施强认证还是匿名认证,输入tag的相应标签值;
ShowVerify(sk,uid,M,Σ):该算法由验证者执行,验证者与凭证颁发者共享私钥sk,该算法的输入包括私钥sk、用户身份uid、消息M以及关于消息M的出示证明Σ,其中用户身份为空对应于匿名认证的情况,身份非空则对应于强认证的情况。
进一步地,步骤2)将口令加密的凭证和标准的统一身份认证协议相结合,实现强认证或者匿名认证。
进一步地,基于密码白盒或安全硬件,用户端在RP上注册并重用假名,实现用户可控的(不)可链接性,即用户能够自行选择是否重用在认证时使用的假名。
一种采用上面所述方法的提供用户友好的强认证和匿名认证的统一身份认证***,包括用户端和验证端;用户端使用口令对凭证进行加密,得到基于口令的凭证并存储;用户端使用基于口令的凭证向验证端进行强认证或者匿名认证。
和现有技术相比,本发明的优势主要体现在:
1)同一凭证既可用于实施强认证,也可以用于实施匿名认证。
2)在不需要专用硬件的前提下提供基于“挑战-响应”机制的强认证和匿名认证方案。
3)相比较于其他匿名认证机制,本发明避免了匿名凭证出借的问题,即凭证的所有者可能将凭证出借给***外的用户,而匿名性使得SP无法对这一问题进行检测。更具体的,在本发明中,凭证可以同时被用于实名认证和匿名认证,这使得用户在出借凭证的同时出借了他的实名账户,通过对实名账户出借的检测机制,SP可以轻松的检测本发明中凭证的出借。
4)服务器不需要集中存储用户凭证,从而消除了凭证集中泄露的风险。
5)用户可以在不与服务器交互的情况下随时更改用于加密凭证的口令。
6)本发明中的方案能够抵抗离线字典攻击,而且口令只用于在用户端对凭证进行加密和解密,降低了口令本身泄露的风险。
7)本发明与广泛应用的统一身份认证标准和已部署的***相兼容,并且不需要对底层密码学库进行修改,适用于大规模应用及推广。
8)本发明中统一身份认证***的效率与使用“用户名-口令”认证的***基本相当,能够满足实际应用的性能需求。
附图说明
图1是本发明的提供强认证/匿名认证的统一身份认证方法的示意图。
具体实施方式
为使本发明的上述内容、特征和优势更加明显易懂,下面通过具体实施例对本发明做进一步说明。
在下面的实施例中,需要调用现有的知识证明签名方案(Signature Proof ofKnowledge)作为构造组件。一个知识证明签名方案包括算法(SPK,VerifySPK),其中SPK算法用于零知识地证明签名者知道关于某个命题的证据,输出利用证据生成的关于某个消息的签名;VerifySPK算法用于验证某个签名是否由关于命题的合法证据在消息上作用所产生。后面的实施例中会调用三个知识证明签名方案,记作
Figure GDA0003369467840000051
实施例1.基于口令的凭证方案的一般构造
下面展示了一种由一般的代数消息认证码方案构造的基于口令的凭证方案,该基于口令的凭证方案由***建立、密钥生成、凭证颁发、凭证获取、生成出示证明、验证出示证明六个算法构成,分别记作Setup,KeyGen,Issue,Obtain,Show,ShowVerify。具体而言,本方案中的代数消息认证码方案可以使用一些学术界公认的方案(如MACSDH)。
本实施例调用了代数消息认证码方案以及口令加密方案作为构造组件:一个代数消息认证码方案由三个算法(Gen,MAC,Verify)组成,其中Gen算法用于生成代数消息认证码方案的公开参数par和私钥sk;MAC算法用于生成关于消息M的代数消息认证码,输入为私钥sk和消息M,输出为消息认证码σ;Verify算法用于验证一个消息认证码σ是否关于消息M和私钥sk合法。当代数消息认证码被看作凭证时,可以构造相应的凭证出示算法和凭证验证算法,分别记作(ShowMAC,ShowVerifyMAC),其中ShowMAC生成出示证明,用于证明用户拥有合法凭证,ShowVerifyMAC算法验证出示证明是否合法。特别地,ShowMAC算法允许用户输入特定标签tag,并根据标签值采用不同的方式生成出示证明。本实施例中,以tag∈{"explicit","anon"}为例,其中"explicit"代表验证出示证明时需要同时用到消息M和私钥sk(对应于强认证的情况);"anon"代表验证出示证明时只需要用到私钥sk(对应于匿名认证的情况)。口令加密方案由算法(Enc,Dec)组成,用于使用口令对输入进行加密(Enc)和解密(Dec)。
本构造的算法描述如下:
1)Setup(1λ):输入安全参数λ,该算法根据该安全参数选取并输出域参数
Figure GDA0003369467840000061
其中
Figure GDA0003369467840000062
是阶数为p的循环群,p是至少为2λ比特的素数,g是群
Figure GDA0003369467840000067
的生成元。
2)KeyGen(pp):输入公共参数pp,该算法调用代数消息认证码方案中的Gen算法生成公开参数par和私钥sk。其中par对参与方案的用户是公开可见的。
3)
Figure GDA0003369467840000063
Obtain和Issue以交互的方式在用户和凭证颁发者之间运行,用户在颁发者处注册并获得基于口令的凭证。该交互的具体运行步骤如下:
a)用户向凭证颁发者发送自己的用户标识符uid。
b)凭证颁发者计算H1(uid),其中H1是一个密码学杂凑函数,将任意比特串映射到代数消息认证码方案的消息空间
Figure GDA0003369467840000064
之后生成一个凭证σ←MAC(sk,uid),并计算:
π1←SPK1{(sk):Verify(sk,uid,σ)=1∧(par,sk)←Gen(pp)}
最后,凭证颁发者将(σ,π1)发送给用户。
其中,
Figure GDA0003369467840000065
在表达式中代表的是一个运行于两个参与方之间的交互过程,“←”表示左边的表达式由右边的表达式计算得到。
c)用户收到(σ,π1)之后,计算H1(uid),并执行
Figure GDA0003369467840000066
如果该算法返回1,则说明σ是合法的,之后用户计算[σ]pw←Enc(pw,σ),即使用口令pw对凭证σ进行加密,并存储口令加密后的凭证[σ]pw;否则说明σ不是一个合法凭证,用户终止方案运行。
4)Show(tag,par,uid,pw,[σ]pw,M):该算法由已注册了基于口令的凭证的用户执行,用于向验证者实施认证,具体而言,该算法计算σ←Dec(pw,[σ]pw),即进行解密,之后使用uid,σ生成关于消息M的出示证明Σ←ShowMAC(tag,par,uid,σ,M)。如果用户希望实施强认证,则输入tag="explicit",如果希望实施匿名认证,则输入tag="anon"。
5)ShowVerify(sk,uid,M,Σ):该算法由验证者执行,验证者与凭证颁发者共享私钥sk。该算法的输入包括私钥sk,用户身份uid,消息M以及关于消息M的出示证明Σ。其中用户身份为空对应于匿名认证的情况,身份非空则对应于强认证的情况。具体地,该算法调用ShowVerifyMAC(sk,uid,M,Σ)验证出示证明的合法性并输出其结果。这里的ShowVerifyMAC(sk,uid,M,Σ)对应于代数消息认证码方案中的凭证验证算法。
实施例2.一种基于口令的凭证的具体构造
本实施例旨在基于特定的代数消息认证码(记作MACSDH)和对应的口令加密方案PE=(Enc,Dec),描述一个高效的基于口令的凭证的构造,是实施例1描述的一般性构造的一种具体实例化。为使描述更加简洁,下面只描述MACSDH中的各个算法的构造以及口令加密方案的构造,将其应用于实施例1即可获得本实施例中的基于口令的凭证的具体构造。
代数消息认证码方案MACSDH=(Gen,MAC,Verify)及(ShowMAC,ShowVerifyMAC)的构造:
1)Gen(pp):输入为公共参数
Figure GDA0003369467840000071
该算法选取一个随机数γ,并计算ω←gγ,输出凭证颁发者的公开参数isp=ω和私钥sk=γ。
2)MAC(sk,uid):输入私钥sk=γ和用户身份标识符uid,计算
Figure GDA0003369467840000072
输出σ=A
3)Verify(sk,uid,σ):输入私钥sk=γ,用户身份标识符uid,以及消息认证码σ,如果
Figure GDA0003369467840000073
则输出1,否则输出0。
4)ShowMAC(tag,par,uid,σ,M):选取一个随机数a并计算T←σa。若tag=”explicit”,则计算
Figure GDA0003369467840000074
并输出Σ=(T,π2)。若tag="anon",则计算
Figure GDA0003369467840000075
并输出Σ=(T,π3)。
5)ShowVerifyMAC(sk,uid,M,Σ):对于输入Σ=(T,π),如果T=1,则直接返回0。否则:当uid≠⊥时,执行
Figure GDA0003369467840000076
并输出结果。其中,⊥表示消息值为空。当uid=⊥时,执行
Figure GDA0003369467840000077
并输出结果。
口令加密方案PE=(Enc,Dec)的构造:
1)Enc(pw,M):输入口令pw和明文M,计算C←M·H2(pw),并输出C作为密文。其中H2是一个密码学杂凑函数。
2)Dec(pw,C):输入口令pw和密文C,计算并输出M←C·H2(pw)-1作为解密结果。
在本实施例中,密码学杂凑函数采用标准的杂凑函数实例化(如:SHA-256和SM3)。
实施例3.一种能提供强认证/匿名认证的统一身份认证***
本实施例的目的在于构建兼容于通用的统一身份认证标准、能够提供强认证/匿名认证的统一身份认证***。为了说明本项发明内容的工作流程,本实施例以OpenIDConnect作为示例,其他统一身份认证标准(如SAML 2.0和OAuth 2.0)也可类似地构造,在此不再赘述。
具体地,本实施例中描述的提供强认证/匿名认证的统一身份认证***包括***建立、注册和登录三个阶段,各阶段的具体操作如下:
1)***建立阶段:IdP和RP产生在***运行中需要的公钥和私钥。特别地,IdP调用实施例1中的密钥生成算法产生公共参数和私钥(isp,sk)←KeyGen(pp),并把(pp,isp)作为其公钥的一部分,sk作为其私钥的一部分。
2)注册阶段:这一阶段须在安全信道下执行,可通过执行TLS协议建立。具体流程如下:
a)RP按照OpenID Connect标准的规定向IdP进行注册。
b)用户使用实施例1中的
Figure GDA0003369467840000081
交互协议进行注册,最终获得用户身份uid和口令加密凭证[σ]pw
3)登录阶段:用户使用(isp,uid,pw,[σ]pw)向IdP与RP进行认证,具体流程描述如下(见图1):
a)用户首先访问RP,RP按照OpenID Connect的规定将用户重定向到IdP。特别地,RP通过标准规定的acr_values参数限定用户在向IdP认证时允许采用的认证方式(如强认证或匿名认证)。
b)IdP按照标准规定对用户进行认证。具体地,IdP根据RP发送的acr_values选择可接受的用户认证方式,并将其标识符(在OpenID Connect中记作amr)封装为参数amr_values;之后选择随机数nI,并将amr_values和nI发送给用户。为了方便表述,将本发明中强认证的amr记作pbcs,将匿名认证记作pbca。
c)用户收到IdP的消息之后,根据amr_values选择其认证方式,具体如下:若pbcs∈amr_values,用户使用基于口令的凭证进行强认证,即以"explicit"作为tag执行Show算法。之后,用户将Show算法的输出Σ和身份标识uid作为user_token,并将其和认证方式amr=pbcs一起发送给IdP。若pbca∈amr_values,用户使用基于口令的凭证进行匿名认证,即以"anon"作为tag执行Show算法。之后,用户将Show算法输出Σ作为user_token,并将其和认证方式amr=pbca一起发送给IdP。
d)IdP在收到用户发送的消息之后,检查amr是否在其可以接受的amr_values的限定范围内,如果超出该范围则判定认证失败,否则执行以下步骤:若amr=pbcs,执行ShowVerify(sk,uid,nI,Σ),仅当算法返回1的时候继续执行。若amr=pbca,执行ShowVerify(sk,⊥,nI,Σ),仅当算法返回1的时候继续执行,并且在继续执行时随机生成一个uid作为用户的标识符。
e)之后用户、RP和IdP按照OpenID Connect标准的规定继续运行。
实施例4.一种高效、提供假名机制的统一身份认证***的具体构造
本实施例旨在提供一种高效、能够提供假名机制的统一身份认证***的具体构造。采用假名机制的好处在于:能够提供一种可以被链接的隐私保护认证方式,即用户可以采用相同假名进行多次认证,而SP不能将假名和用户的真实身份相关联,也无法将同一用户使用的不同假名相联系,即所谓的用户可控(不)可链接性。在本实施例中,实施例3中描述的基于口令的凭证将采用实施例2中的方案进行实例化。简洁起见,省略之前实施例中描述的步骤,只描述应用实施例2后的假名建立及存储机制:
1)建立假名:当采用如实施例2中描述的基于口令的匿名凭证构造时,用户在实施例3的登录阶段中随Σ=(T,π)发送一个特殊的标记,代表“建立假名”操作,之后IdP将T存储为用户的假名。当IdP向RP展示用户身份时,使用T作为用户的身份标识符。
2)重用假名:用户可以重复使用随机数a生成相同的T来达到重用在步骤1)中注册的假名的目的。为此,用户需要安全存储a。为了降低存储开销,使用伪随机函数PRFK(·)(其中K是密钥)存储假名,如a=PRFK(uid||IDIdP||IDRP),其中IDIdP和IDRP分别为IdP和RP的身份。伪随机函数可以采用安全硬件或者密码学白盒实现。
3)当采用安全硬件时,可以使用硬件对基于口令的凭证进行存储和保护,这种保护也从另一方面增加了凭证的安全性。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (5)

1.一种提供用户友好的强认证和匿名认证的统一身份认证方法,其特征在于,包括以下步骤:
1)用户端使用口令对凭证进行加密,得到基于口令的凭证并存储;
2)用户端使用基于口令的凭证向验证端进行强认证或者匿名认证;
所述用户端随时对其加密凭证的口令进行更新,更新过程不与验证端进行交互;所述验证端不保存用户端的凭证,以避免凭证集中式存储导致的数据泄露风险;
其中,步骤1)通过调用代数消息认证码方案以及口令加密方案,得到所述基于口令的凭证;步骤1)包括6个算法:***建立、密钥生成、凭证颁发、凭证获取、生成出示证明、验证出示证明,分别记作Setup,KeyGen,Issue,Obtain,Show,ShowVerify,其中:
Setup(1λ):输入安全参数λ,该Setup算法根据该安全参数选取并输出域参数
Figure FDA0003369467830000011
其中
Figure FDA0003369467830000012
是阶数为p的循环群,p是至少为2λ比特的素数,g是群
Figure FDA0003369467830000013
的生成元;
KeyGen(pp):输入公共参数pp,该KeyGen算法调用代数消息认证码方案中的Gen算法生成公开参数par和私钥sk,其中par对参与方案的用户是公开可见的;
Figure FDA0003369467830000014
其中uid为用户标识符,pw为口令;Obtain和Issue以交互的方式在用户和凭证颁发者之间运行,用户在颁发者处注册并获得基于口令的凭证;
Show(tag,par,uid,pw,[σ]pw,M):其中tag为标签,根据标签值采用不同的方式生成出示证明,[σ]pw为口令加密后的凭证;该Show算法由已注册了基于口令的凭证的用户执行,用于向验证者实施认证,该Show算法计算σ←Dec(pw,[σ]pw),其中Dec表示解密算法,之后使用uid,σ生成关于消息M的出示证明Σ←ShowMAC(tag,par,uid,σ,M),其中ShowMAC生成出示证明,用于证明用户拥有合法凭证;根据用户希望实施强认证还是匿名认证,输入tag的相应标签值;
ShowVerify(sk,uid,M,Σ):该ShowVerify算法由验证者执行,验证者与凭证颁发者共享私钥sk,该ShowVerify算法的输入包括私钥sk、用户标识符uid、消息M以及关于消息M的出示证明Σ,其中用户身份为空对应于匿名认证的情况,身份非空则对应于强认证的情况;
其中,Obtain和Issue交互的过程包括:
a)用户向凭证颁发者发送自己的用户标识符uid;
b)凭证颁发者计算H1(uid),其中H1是一个密码学杂凑函数,将任意比特串映射到代数消息认证码方案的消息空间,之后生成一个凭证σ←MAC(sk,uid),其中MAC算法用于生成关于消息M的代数消息认证码,并计算:
π1←SPK1{(sk):Verify(sk,uid,σ)=1∧(par,sk)←Gen(pp)}
其中,Verify算法用于验证一个消息认证码σ是否关于消息M和私钥sk合法;
最后,凭证颁发者将(σ,π1)发送给用户;
c)用户收到(σ,π1)之后,计算H1(uid),并执行VerifySPK1((g,par,uid,σ),π1),如果返回1,则说明σ是合法的,之后用户计算[σ]pw←Enc(pw,σ),其中Enc表示加密算法,并存储[σ]pw;否则说明σ不是一个合法凭证,用户终止方案运行;
其中,步骤2)包括:
a)用户端在身份提供者IdP上注册基于口令的凭证,并利用这一凭证访问多个依赖方RP;
b)用户使用同一凭证向IdP进行基于“挑战-响应”机制的强认证或匿名认证,并进一步访问RP;
c)IdP和RP均无需集中保存用户凭证;
d)在实施匿名认证的过程中,IdP和RP均无法获取用户的身份,也无法借助已认证用户的身份收集用户隐私。
2.根据权利要求1所述的方法,其特征在于,在通用设备上存储所述基于口令的凭证,不需要使用专用设备对凭证进行保护。
3.根据权利要求1所述的方法,其特征在于,步骤2)将口令加密的凭证和标准的统一身份认证协议相结合,实现强认证或者匿名认证。
4.根据权利要求1所述的方法,其特征在于,基于密码白盒或安全硬件,用户端在RP上注册并重用假名,实现用户可控的可链接性,即用户能够自行选择是否重用在认证时使用的假名。
5.一种采用权利要求1~4中任一权利要求所述方法的提供用户友好的强认证和匿名认证的统一身份认证***,其特征在于,包括用户端和验证端;用户端使用口令对凭证进行加密,得到基于口令的凭证并存储;用户端使用基于口令的凭证向验证端进行强认证或者匿名认证。
CN201910086040.5A 2019-01-29 2019-01-29 一种提供用户友好的强认证和匿名认证的统一身份认证方法和*** Active CN111490967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910086040.5A CN111490967B (zh) 2019-01-29 2019-01-29 一种提供用户友好的强认证和匿名认证的统一身份认证方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910086040.5A CN111490967B (zh) 2019-01-29 2019-01-29 一种提供用户友好的强认证和匿名认证的统一身份认证方法和***

Publications (2)

Publication Number Publication Date
CN111490967A CN111490967A (zh) 2020-08-04
CN111490967B true CN111490967B (zh) 2022-02-25

Family

ID=71812165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910086040.5A Active CN111490967B (zh) 2019-01-29 2019-01-29 一种提供用户友好的强认证和匿名认证的统一身份认证方法和***

Country Status (1)

Country Link
CN (1) CN111490967B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112953888B (zh) * 2020-12-29 2023-10-31 合肥达朴汇联科技有限公司 应用于区块链客户端的区块链匿名用户审计方法、***
CN113221089B (zh) * 2021-03-15 2023-11-07 东北大学 基于可验证声明的隐私保护属性认证***及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674304A (zh) * 2009-10-15 2010-03-17 浙江师范大学 一种网络身份认证***及方法
CN104901804A (zh) * 2014-08-28 2015-09-09 赵捷 一种基于用户自主的标识认证实现方法
CN104935608A (zh) * 2015-07-07 2015-09-23 成都睿峰科技有限公司 一种云计算网络中的身份认证方法
CN106341232A (zh) * 2016-09-18 2017-01-18 中国科学院软件研究所 一种基于口令的匿名实体鉴别方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101329720B (zh) * 2008-08-01 2011-06-01 西安西电捷通无线网络通信股份有限公司 一种基于预共享密钥的匿名双向认证方法
CN104283899B (zh) * 2014-10-30 2017-10-13 西安电子科技大学 无线网络中基于k‑假名集合的用户匿名身份认证方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674304A (zh) * 2009-10-15 2010-03-17 浙江师范大学 一种网络身份认证***及方法
CN104901804A (zh) * 2014-08-28 2015-09-09 赵捷 一种基于用户自主的标识认证实现方法
CN104935608A (zh) * 2015-07-07 2015-09-23 成都睿峰科技有限公司 一种云计算网络中的身份认证方法
CN106341232A (zh) * 2016-09-18 2017-01-18 中国科学院软件研究所 一种基于口令的匿名实体鉴别方法

Also Published As

Publication number Publication date
CN111490967A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
US9882717B2 (en) System and method for generating a server-assisted strong password from a weak secret
Acar et al. Single password authentication
Yang et al. A practical password-based two-server authentication and key exchange system
Chattaraj et al. A new two-server authentication and key agreement protocol for accessing secure cloud services
CN106341232B (zh) 一种基于口令的匿名实体鉴别方法
EP3791533A1 (en) Password based threshold token generation
Farash et al. Cryptanalysis and improvement of a robust smart card secured authentication scheme on SIP using elliptic curve cryptography
Azad et al. Authentic caller: Self-enforcing authentication in a next-generation network
Szalachowski Password-authenticated decentralized identities
Tong et al. CCAP: a complete cross-domain authentication based on blockchain for Internet of Things
CN111490967B (zh) 一种提供用户友好的强认证和匿名认证的统一身份认证方法和***
Mishra et al. A provably secure content distribution framework for portable DRM systems
Das et al. A decentralized open web cryptographic standard
Abusukhon et al. An authenticated, secure, and mutable multiple‐session‐keys protocol based on elliptic curve cryptography and text‐to‐image encryption algorithm
US20230041237A1 (en) Key generation and pace with protection against side channel attacks
Li et al. A secure two-factor authentication scheme from password-protected hardware tokens
Shin et al. Security analysis of password-authenticated key retrieval
CN110784305B (zh) 基于不经意伪随机函数和签密的单点登录认证方法
Song et al. Hardening password-based credential databases
CN114389808B (zh) 一种基于SM9盲签名的OpenID协议设计方法
Wang et al. Chaotic map-based authentication protocol for multiple servers architecture
Hammami et al. Security issues in cloud computing and associated alleviation approaches
Quan et al. Cryptanalysis of a chaotic chebyshev polynomials based remote user authentication scheme
JP5099771B2 (ja) 二要素認証システム
Wang et al. A Robust Authentication Scheme for Multiple Servers Architecture

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant