CN109525583A - 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 - Google Patents
一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 Download PDFInfo
- Publication number
- CN109525583A CN109525583A CN201811416144.XA CN201811416144A CN109525583A CN 109525583 A CN109525583 A CN 109525583A CN 201811416144 A CN201811416144 A CN 201811416144A CN 109525583 A CN109525583 A CN 109525583A
- Authority
- CN
- China
- Prior art keywords
- token
- user
- idp
- log
- log server
- 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.)
- Granted
Links
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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
- H04L9/3257—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 using blind signatures
Abstract
本发明公开了一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统。本方法为:1)当RP收到一用户的登录请求时,RP向IdP发起对该用户的身份鉴别请求;2)IdP对该用户的用户身份进行鉴别,如果鉴别通过则为该用户签发用户身份凭证Token;3)IdP将该用户的Token发送给RP,并上传到Log Server;4)RP根据Token为用户提供服务;Log Server在公开日志中记录收到的所有Token;5)通过对比日志中的Token数据和该用户的登录情况,来检测是否存在该用户的虚假凭证。采用本方法,用户通过对比日志中记录的Token数据和自己的登录行为即可发现IdP签发的虚假凭证。
Description
技术领域
本发明属于信息安全、身份认证技术领域,具体涉及一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统。
背景技术
随着计算机网络和信息技术的迅速发展,人们的生活、工作、学习等各方面越来越多依赖于信息化系统。在使用信息化系统的过程中,每个应用系统都需要识别操作者的身份,并根据其不同的身份,为其分配一定的权限。在传统的身份管理体系中,用户为使用不同的信息系统,需要在各个信息系统中提供个人信息并保管各信息系统中的账户登录凭据(如用户名/口令、存有数字证书的UKey等),这就给用户带来很大的记忆或凭据管理负担,此外对用户账户管理也给信息系统快速开发与维护带来额外开销。众多信息系统开始使用第三方身份管理服务解决信息系统的用户身份管理问题(如微信、QQ或支付宝等,都提供了第三方身份管理服务)。信息系统无需维护用户信息,也无需对用户身份的真实性、可信性进行鉴别,调用第三方身份管理服务提供的服务接口,即可获取由第三方身份管理服务完成的用户身份鉴别结果。这种由第三方提供身份管理的服务模式,极大简化了信息系统关于用户身份管理的开发及运维成本;减少了用户身份信息传播频度和范围,降低用户身份信息泄露风险。
这种第三方提供身份管理的服务模式与传统的PKI体系十分相似,都依赖于对权威第三方的信任,一旦权威第三方出现问题,将会影响整个信息系统内用户的信息安全。近年来,CA安全事件频发。著名的认证商业CA被入侵,错误的执行身份验证和签发证书;政府强制CA签发欺诈性的证书。可以看出,即使是CA按照协议规定签发的证书,也可能是欺诈性的证书。
同样,第三方身份管理服务也可能(因被入侵或主动的)签发虚假的身份凭证、未经用户允许登录其应用账号、泄露用户的隐私信息等等。对于用户来说,第三方身份管理服务失效的影响是更为严重的,因为这意味着用户通过该系统登录的所有应用的账号都被攻陷。
发明内容
为了克服单点登录系统中身份提供方可能会签发虚假凭证的问题,本发明提供了一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统;本发明是一种结合公开审计机制的第三方身份管理服务信任增强方案,用于对虚假凭证进行检测。
本方案中有四个参与方:用户、身份提供方(IdP)、应用提供方(RP)、日志服务器(Log Server);其中IdP与Log Server可以属于同一服务提供方或分别属于不同的服务提供方。
有如下的安全假设,1)RP被认为是可信的;2)Log Server被认为是诚实不可信的,可能会出错(由于Log Server比较忙,可能会忽略建议方案中指定的一些操作,可能有一些Token没有记录到日志中),但是它不会主动的违反约定好的协议;3)IdP被认为是不可信的,IdP可能不按照与客户端、用户约定好的安全策略提供服务(如Token中的用户身份鉴别信息不准确,未经用户允许向RP签发代表用户身份的Token等)。
用户通过向IdP证明自己的身份,来登录RP;IdP鉴别用户身份,为用户签发身份凭证Token(Token中包含用户身份标识、RP标识、签发时间和一些其他相关信息;且Token带有IdP的签名),上传Token到Log Server,为RP提供用户Token作为用户的身份凭证;LogServer在公开日志中记录所有的Token;RP根据Token为用户提供服务。用户对比日志中的Token数据和自己的登录情况,来检测到虚假凭证。
Log Server利用Merkle树的结构记录Token数据,保证了每一个Token都被记录在日志当中,记录在日志中的每一个条目都是不可被篡改或删除的。当用户或RP想要验证一个Token是否被记录在日志中时,Log Server会提供一条当前Merkle根下的验证路径,证明其存在性。
为了表明IdP将Token上传到了Log Server,并且被记录在日志当中,Token不仅需要IdP的签名,还需要Log Server的签名。IdP上传Token到Log Server后,Log Server对Token进行签名,得到Signed Token,再将Signed Token返回给IdP。
由于Token中可能包含了用户的敏感信息,为了确保这些敏感信息不被非业务相关方获取,本方案还需解决Token的数据机密性问题。
为了保护Token中的敏感信息,Log Server在对Token签名时不能获取Token中的数据,因此本方案中设计使用盲签名的方式,来完成Log Server对Token的签名操作;日志中不能直接存储Token的明文数据,只有Token的拥有者应当才能查看Token的明文数据,并且应尽量降低IdP管理秘钥的成本,因此本方案中设计了使用基于身份的加密(IBE)方案对Token数据进行加密,由IdP作为生成IBE公私钥的第三方。IdP随机生成SF;IdP利用SF盲化Token,得到Blind Token;IdP生成用户的IBE公钥;IdP利用IBE公钥加密SF,得到EncryptedSF;IdP将Blind Token和Encrypted SF发送给Log Server;Log Server对Blind Token签名,得到Blindly Signed Token;Log Server将{Blindly Signed Token,Encrypted SF}作为一个条目记录在日志当中;Log Server将Blindly Signed Token返回给IdP;IdP利用SF去盲化Blindly Signed Token,得到Signed Token;IdP将带验证信息的Token数据{SignedToken,Blindly Signed Token,SF}发送给RP,以便RP验证Token是否被记录在日志当中。
盲签名方案的具体流程(其中e是签名方的公钥,d是签名方的私钥):
1)生成盲化因子:选择一个随机数作为盲化因子SF;
2)利用SF盲化Token:计算Blind Token=Token×(SF)e mod N;
3)盲签名:计算Blindly Signed Token=(Blind Token)d mod N=(Token)d×SFmod N;
4)利用SF去盲化:计算Signed Token=(Blindly Signed Token)×SF-1mod N。
由于记录在日志中的数据是盲化的,且SF被IdP使用IBE公钥加密,用户需要对某一时间段内的条目逐一尝试解密、去盲化来查找Token数据,虽然用户的隐私信息可以得到很好地保护,但是这种方法的效率很低。为了提高用户在Log Server中查找Token数据的效率,并且尽量保护用户的隐私信息,本方案中设计使用Bloom Filter为用户生成假名,Bloom Filter是一个确定性的算法,用户、IdP、RP都可以根据用户身份信息去计算得到假名。Log Server将{假名,Blindly Signed Token,Encrypted SF}作为一个条目记录在日志当中,以假名作为用户的身份标识,通过假名在日志中查找用户的相关条目。
RP收到IdP发送的Token数据后,需要验证Token数据的有效性:首先,为了防止Token被重用,即使是有效期内的Token,最多也只能使用一次;其次,为了防止数据被篡改,需要验证签名的有效性,只有IdP签名和Log server签名都是有效的,签名才是正确的。只有未被使用、签名正确的Token数据才是有效的。
RP存储每个有效的Token数据{Signed Token,Blindly Signed Token,SF},并且定期审计某一时段内的Token数据(为了防止Log Server的误操作,在我们的安全假设中Log Server可能因为过于繁忙的操作,为Token签了名,却没有将Token记录在日志当中)。对于该时段内的每一个Token数据,RP验证其是否在日志中可见,若不可见,则认为LogServer存在异常操作;若可见,RP下载其对应的条目{假名,Blindly Signed Token,Encrypted SF},根据Token中的用户身份信息、使用Bloom Filter算法生成假名,并验证生成的假名与条目中记录的假名的一致性,若不一致,则认为IdP签发了虚假凭证。
本方案用户登录RP的具体流程如下:
1)用户向RP发起登录请求;
2)RP向IdP发起身份鉴别请求;
3)IdP对用户进行身份鉴别;
4)若鉴别成功,IdP为用户签发身份凭证Token;
5)IdP随机生成SF;利用SF盲化Token,得到Blind Token;为用户生成假名;生成用户的IBE公钥;利用该公钥加密SF,得到Encrypted SF;将{假名,Blind Token,EncryptedSF}一起上传到Log Server;
6)Log Server收到{假名,Blind Token,Encrypted SF}后,对Blind Token进行盲签名,得到Blindly Signed Token;并将Blindly Signed Token返回给IdP;
7)Log Server将{假名,Blindly Signed Token,Encrypted SF}作为一个条目存储在日志当中;
8)IdP收到Blindly Signed Token后,对其去盲化,得到Signed Token;并将带验证信息的Token数据{Signed Token,Blindly Signed Token,SF}发送给用户,由用户转发给RP;
9)RP收到Token数据后,验证其有效性;
10)若Token数据有效,RP为用户提供服务。
本方案用户审计日志的具体流程如下:
1)用户根据自己的身份信息,使用Bloom Filter算法生成假名;
2)用户根据假名在日志中查找与自己相关的条目;
3)用户向IdP申请自己的IBE私钥;
4)用户利用IBE私钥解密条目中的Encrypted SF,得到SF;
5)用户利用SF去盲化条目中的Blindly Signed Token,得到Signed Token;
6)用户将Token数据与自己的登录行为进行对比,从而发现异常登录行为,实现对虚假凭证的检测。
日志中记录的数据都是盲化的,且SF被IdP使用IBE公钥加密,因此IdP可以伪造并使用包含用户A身份信息的身份凭证登录RP,而使用用户B的IBE公钥加密SF,存储在日志中,来隐藏此虚假凭证。本方案中设计了一种提出争议和解决争议的方案,该方法需要确保在任何情况下Blindly Signed Token都可以由Log Server和IdP合作去盲化。具体来说,即便用户A检查了所有自己的条目后,他仍然可能怀疑某些别人条目中包含了自己的Token,这时用户A向Log Server和IdP提出一个争议,争议请求消息中包含一条A所怀疑的条目、一个证据(证据包括某一时段内的RP登录日志和该时段内的A存储的登录日志,通过两个日志的差别来证明异常登陆的存在);Log Server和IdP验证证据的有效性;若证据有效,LogServer和IdP合作去盲化Blindly Signed Token,得到Signed Token数据;Log Server根据如下规则回答用户:如果该Signed Token数据无效,则认为IdP试图隐藏Token数据(假名和加密SF的秘钥不一致),Log Server向用户A返回“IdP存在恶意行为”消息;如果该SignedToken数据中包含A的身份标识,则认为IdP签发了用户A的虚假凭证,Log Server向用户A发送Signed Token数据;如果该Signed Token数据中包含的是其他用户的身份标识,LogServer向用户A返回“条目正确”消息,而不透露任何其他信息。
该方法确保了在任何情况下IdP和Log Server都可以合作解密一个条目,当用户有足够的证据证明他的怀疑时,用户便可以提出一个争议,由IdP和Log Server合作解决,并由Log Server给出回答。
与现有的单点登录方案相比,本发明的优点和有益效果如下:
现有的单点登录方案中IdP往往拥有者非常大的权利,但是它可能发生错误、受到攻击、甚至可能主动违反预先约定好的协议。IdP可能错误的签发虚假凭证,在未经用户允许的情况下登录用户的账户而不被任何人发现。本方案引入了Log Server,建立了一个公开透明的日志,在日志中记录IdP签发的每一个身份凭证,可以通过审计日志中的数据来检测到IdP签发的虚假凭证。
附图说明
图1是本发明的基本结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下通过实施例对本发明作进一步详细说明。
本方案中有四个参与方:用户、身份提供方(IdP)、应用提供方(RP)、日志服务器(Log Server)。
SIdP(m):表示IdP签名的消息;
SLog(m):表示Log Server签名的消息;
Eu(m):表示使用用户u的公钥加密的消息m;
B(m,s):表示使用盲化因子s盲化的消息m;
F(u):表示使用Bloom Filter算法为用户u生成的假名。
初始化阶段,IdP生成用于签名的公私钥对,并公开公钥;Log Server生成用于盲签名的公私钥对,并公开公钥;当用户加入本系统时,用户在IdP中注册账号。
在本方案中,身份凭证Token=(A,R,t,o),其中A表示用户身份标识;R表示RP标识;t表示Token的签发时间;o用来表示一些其他相关信息(比如:IdP信息、有效期、随机数等等)。Token中的数据都是以明文形式存在的,为了确保通信数据的机密性,用户、IdP、RP、Log Server之间的通信需要建立SSL/TLS连接。
当用户A想要登录某个RP时:
1)用户A向RP发起登录请求;
2)RP向IdP发起身份鉴别请求;
3)IdP对用户进行身份鉴别;
4)若身份鉴别通过,IdP为用户签发Token,得到SIdP(Token);
5)IdP将Token上传到Log Server;
6)Log Server对Token进行签名,得到SLog(SIdP(Token));
7)Log Server将SLog(SIdP(Token))记录在日志当中,
8)Log Server将SLog(SIdP(Token))返回给IdP;
9)IdP将SLog(SIdP(Token))发送给用户,由用户转发给RP;
10)RP收到SLog(SIdP(Token))后,验证数据有效性;
11)若该数据有效,RP为用户A提供服务。
Log Server使用Merkle树的结构存储数据,保证了记录在日志中的数据是不可被篡改或删除的,并且数据是可被证明存在性的。因此改进初始化阶段,Log Server生成一个空的Merkle树,记录身份凭证;当RP加入本系统时,下载Merkle树的根节点。
由于Token中可能会包含用户的敏感信息,为了确保这些敏感信息不被非业务相关方获取,本方案还需解决Token的数据机密性问题。
Log Server使用盲签名方案对Token进行签名,在保证不向Log Server泄露任何Token中的信息的情况下,完成对Token的签名。
盲签名步骤(其中e是签名方的公钥,d是签名方的私钥):
1)生成盲化因子s:选择一个随机数作为盲化因子s;
2)利用s盲化消息m:计算SIdP(m)*=SIdP(m)·se mod N;
3)盲签名消息m:计算Ssig(SIdP(m)*)=(SIdP(m)*)d mod N=SIdP(m)d*s mod N;
4)利用s去盲化消息m:计算Ssig(SIdP(m))=Ssig(SIdP(m)*)·s-1mod N=Ssig(SIdP(m))mod N;
IdP作为生成IBE公私钥的第三方,IdP先使用用户A的IBE公钥加密Token数据,再上传到Log Server进行存储,来保证只有用户A本人才可以查看A的Token数据,有效的保护了Token中的敏感数据;解决了用户端使用私钥的不便;降低了IdP端对公钥的管理成本。因此改进初始化阶段,IdP初始化IBE参数,IdP保存IBE主密钥,并公开需要公开的IBE参数。
改进方案中的步骤5-8:
1)用户A向RP发起登录请求;
2)RP向IdP发起身份鉴别请求;
3)IdP对用户进行身份鉴别;
4)若身份鉴别通过,IdP为用户签发Token,得到SIdP(Token);
5)IdP生成盲化因子s,利用s盲化SIdP(Token),得到B(SIdP(Token),s);
6)IdP根据用户A的身份信息生成IBE公钥;
7)IdP利用用户A的IBE公钥加密s,得到EA(s);
8)IdP将B(SIdP(Token),s)、EA(s)上传到Log Server;
9)Log Server对B(SIdP(Token),s)签名,得到SLog(B(SIdP(Token),s));
10)Log Server将{SLog(B(SIdP(Token),s)),EA(s)}记录在日志中;
11)Log Server将SLog(B(SIdP(Token),s))返回给IdP;
12)IdP利用s去盲化SLog(B(SIdP(Token),s)),得到SLog(SIdP(Token));
13)IdP将SLog(SIdP(Token))发送给用户,由用户转发给RP;
14)RP收到SLog(SIdP(Token))后,验证数据有效性;
15)若该数据有效,RP为用户A提供服务。
本方案中,设计使用Bloom Filter算法为用户生成假名,与B(SIdP(Token),s)、EA(s)组成一个条目,一同存储在日志当中。在尽量保护用户隐私信息的前提下,提高了用户在日志中搜索条目的效率。需要改进初始化阶段,IdP和Log Server明确为用户生产假名的Bloom Filter算法。
需要改进方案中的步骤8-10:
1)用户A向RP发起登录请求;
2)RP向IdP发起身份鉴别请求;
3)IdP对用户进行身份鉴别;
4)若身份鉴别通过,IdP为用户签发Token,得到SIdP(Token);
5)IdP生成盲化因子s,利用s盲化SIdP(Token),得到B(SIdP(Token),s);
6)IdP根据用户A的身份信息生成IBE公钥;
7)IdP利用用户A的IBE公钥加密s,得到EA(s);
8)IdP使用Bloom Filter算法为用户生成假名,得到F(A);
9)IdP将F(A)、B(SIdP(Token),s)、EA(s)上传到Log Server;
10)Log Server对B(SIdP(Token),s)签名,得到SLog(B(SIdP(Token),s));
11)Log Server将{F(A),SLog(B(SIdP(Token),s)),EA(s)}记录在日志中;
12)Log Server将SLog(B(SIdP(Token),s))返回给IdP;
13)IdP利用s去盲化SLog(B(SIdP(Token),s)),得到SLog(SIdP(Token));
14)IdP将SLog(SIdP(Token))发送给用户,由用户转发给RP;
15)RP收到SLog(SIdP(Token))后,验证数据有效性;
16)若该数据有效,RP为用户A提供服务。
本方案中,设计IdP将SLog(SIdP(Token))、SLog(B(SIdP(Token),s))、s一同发送给RP做为用户的身份凭证,保证了RP可以在条目被盲化的日志中,仍可以验证SLog(SIdP(Token))的存在性。
本方案完整的初始化流程为:
1)IdP生成用于签名的公私钥对,并公开公钥;
2)Log Server生成用于盲签名的公私钥对,并公开公钥;
3)Log Server生成一个空的Merkle树,记录身份凭证;
4)当用户加入本系统时,用户在IdP中注册账号;
5)当RP加入本系统时,下载Merkle树的根节点;
6)IdP初始化IBE参数,IdP保存IBE主密钥,并公开需要公开的IBE参数;
7)IdP和Log Server明确为用户生产假名的Bloom Filter算法。
本方案完整的身份认证流程为:
1)用户A向RP发起登录请求;
2)RP向IdP发起身份鉴别请求;
3)IdP对用户进行身份鉴别;
4)若身份鉴别通过,IdP为用户签发Token,得到SIdP(Token);
5)IdP生成盲化因子s,利用s生成盲化因子s,盲化SIdP(Token),得到B(SIdP(Token),s);
6)IdP根据用户A的身份信息生成IBE公钥;
7)IdP利用用户A的IBE公钥加密s,得到EA(s);
8)IdP使用Bloom Filter算法为用户生成假名,得到F(A);
9)IdP将F(A)、B(SIdP(Token),s)、EA(s)上传到Log Server;
10)Log Server对B(SIdP(Token),s)签名,得到SLog(B(SIdP(Token),s));
11)Log Server将{F(A),SLog(B(SIdP(Token),s)),EA(s)}记录在日志中;
12)Log Server将SLog(B(SIdP(Token),s))返回给IdP;
13)IdP利用s去盲化SLog(B(SIdP(Token),s)),得到SLog(SIdP(Token));
14)IdP将{SLog(SIdP(Token)),SLog(B(SIdP(Token),s)),s}发送给用户,由用户转发给RP;
15)RP收到{SLog(SIdP(Token)),SLog(B(SIdP(Token),s)),s}后,验证数据有效性;
16)若该数据有效,RP为用户A提供服务。
当RP接收到IdP提供的Token数据{SLog(SIdP(Token)),SLog(B(SIdP(Token),s)),s}后,RP根据Token中的t验证SLog(SIdP(Token))是否被使用过;RP验证IdP和Log Server的签名,未被使用过、且两个签名均有效的Token数据被认为是有效的。
RP存储所有有效的Token数据,并且定期审计某一时段内的Token数据。对于该段内的每一个Token数据,RP使用s对SLog(B(SIdP(Token),s))去盲化,验证SLog(SIdP(Token))和SLog(B(SIdP(Token),s))的一致性,若不一致,则IdP存在恶意行为;若一致,则RP向LogServer发起验证请求,RP将SLog(B(SIdP(Token),s))发送给Log Server,Log Server向RP返回其对应的条目{F(A),SLog(B(SIdP(Token),s)),EA(s)}在Merkle树中当前根节点的验证路径,RP验证该路径的有效性,若验证失败,则Log Server存在异常操作;若验证成功,RP根据Token中的用户身份信息,使用Bloom Filter算法生成假名(记做F*(A)),并验证F*(A)与条目中F(A)的一致性,若不一致,则IdP签发了虚假凭证。
本方案完整的审计日志流程为:
1)用户A根据自己的身份信息A,利用Bloom Filter算法生成假名F(A);
2)用户A根据F(A)到日志中搜索可疑时间段内的相关条目;
3)用户A向IdP申请A身份的IBE私钥;
4)用户A利用IBE私钥解密EA(s),得到盲化因子s;
5)用户A去盲化SLog(B(SIdP(A,R,t,o),s),得到SLog(SIdP(A,R,t,o));
6)用户A将Token数据与自己的登录情况进行对比,来检测虚假的身份凭证。
即便用户A检查了所有以F(A)为标识的条目,仍然可能怀疑某些以其他用户假名为标识的条目中包含了自己的Token数据(比如:{F(Z),SLog(B(SIdP(A,R,t,o),s),EZ(s))},使用了用户Z的公钥加密了用户A的Token数据)。这时用户A向Log Server和IdP提出一个争议请求{A所怀疑的条目,RP登录日志,A记录的登录日志}(其中RP登录日志和A记录的登录日志对应的是同一确定时段内的登录日志),由Log Server和IdP合作来解决争议:
1)IdP和Log Server验证两个登录日志的一致性;
2)若不一致,则IdP作为生成IBE秘钥的第三方,生成条目对应用户的IBE私钥;
3)IdP解密出盲化因子s,并将s发送给Log Server;
4)Log Server利用s去盲化SLog(B(SIdP(A,R,t,o),s),得到SLog(SIdP(A,R,t,o));
5)Log Server得到Token的明文数据后,根据如下规则回答用户:
a)如果得到的是一个无效的数据,Log Server向用户A返回“IdP存在恶意行为”消息;
b)如果条目中包含A的Token数据,Log Server向用户A返回SLog(SIdP(A,R,t,o)),认为IdP签发了A的虚假凭证;
c)如果条目中包含的是其他用户的Token数据,Log Server向用户A返回“条目正确”消息,且不向用户A透露任何相关信息。
通过本专利的方法,Log Server在公开日志中记录IdP签发的所有的身份凭证,可以通过审计日志中的数据来检测到IdP签发的虚假的身份凭证。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (11)
1.一种用于第三方提供身份管理的服务系统的虚假凭证检测方法,其步骤包括:
1)当RP收到一用户的登录请求时,RP向IdP发起对该用户的身份鉴别请求;
2)IdP对该用户的用户身份进行鉴别,如果鉴别通过则为该用户签发用户身份凭证Token;
3)IdP将该用户的Token发送给RP,并上传到Log Server;
4)RP根据Token为用户提供服务;Log Server在公开日志中记录收到的所有Token;
5)通过对比日志中的Token数据和该用户的登录情况,来检测是否存在该用户的虚假凭证;其中,IdP为用户身份提供方、RP为应用提供方、Log Server为日志服务器。
2.如权利要求1所述的方法,其特征在于,所述Token中包含用户身份标识、RP标识和签发时间,并且Token带有IdP的签名;所述Log Server利用Merkle树的结构记录Token数据。
3.如权利要求1所述的方法,其特征在于,所述步骤3)的具体实现方法为:
31)IdP随机生成盲化因子SF,然后利用SF盲化Token,得到盲化后的Token数据BlindToken;IdP生成该用户的IBE公钥,然后利用该IBE公钥加密SF,得到Encrypted SF;IdP将Blind Token和Encrypted SF发送给Log Server;
32)Log Server对Blind Token签名,得到Blindly Signed Token,然后将{BlindlySigned Token,Encrypted SF}作为一个条目记录在日志当中,并将Blindly Signed Token返回给IdP;
33)IdP利用SF去盲化Blindly Signed Token,得到带Log Server签名的Token数据SignedToken;然后将{Signed Token,Blindly Signed Token,SF}发送给RP。
4.如权利要求3所述的方法,其特征在于,所述步骤31)中,IdP为用户生成假名,并将假名、Blindly Signed Token、Encrypted SF一起发送给Log Server,Log Server将{假名,Blindly Signed Token,Encrypted SF}作为一个条目记录在日志当中,来保护用户的身份信息;所述步骤5)中,通过该用户的假名在日志中查找相关的条目,然后向IdP申请该用户的IBE私钥解密条目中的Encrypted SF,得到SF;然后利用SF去盲化条目中的BlindlySigned Token,得到Signed Token;然后对比Token数据和该用户的登录情况,来检测是否存在该用户的虚假凭证。
5.如权利要求3所述的方法,其特征在于,所述步骤33)中,RP对收到的Token数据进行验证,其方法为:RP验证接收到Token是否被使用过、IdP和Log Server对Token的签名是否有效,如果未被使用过、且两个签名均有效,则收到的Token数据有效。
6.如权利要求5所述的方法,其特征在于,RP存储所有有效的Token数据,定期向LogSever发起验证请求,验证某一时段内的Token数据在日志中是否可见;如果可见,RP利用Token中的用户身份信息生成假名,并验证其与日志条目中记录的假名的一致性;如果存在Token数据在日志中不可见,则Log Server存在异常操作;如果两个假名不一致,则IdP签发了虚假凭。
7.如权利要求1所述的方法,其特征在于,当Log Server和IdP收到用户A发来的一个争议请求时,其中所述争议请求包括A所怀疑的条目、某一时段内的RP登录日志和该时段内A存储的登录日志;Log Server和IdP验证两个登录日志的一致性,若不一致,则表明存在异常登录行为,Log Server和IdP联合解决该争议,其方法为:IdP生成该条目对应用户的IBE私钥解密出盲化因子SF,并将其发送给Log Server;Log Server利用SF去盲化该争议中的日志条目中的Blindly Signed Token,得到对应的Signed Token数据;如果该SignedToken数据是无效数据,则判定IdP存在恶意行为;如果该Signed Token数据中包含A的身份标识,则Log Server判定IdP签发了该用户A的虚假凭证;如果该Signed Token数据中包含其他用户的身份标识,则Log Server向该用户A返回条目正确的消息,而不透露任何其他信息。
8.一种用于第三方提供身份管理的服务系统的虚假凭证检测系统,其特征在于,包括身份提供方IdP、应用提供方RP和日志服务器Log Server;其中,
应用提供方RP,用于当收到一用户的登录请求时,向IdP发起对该用户的身份鉴别请求,以及接收IdP为该用户签发的用户身份凭证Token并根据身份凭证Token为用户提供服务;
身份提供方IdP,用于对用户身份进行鉴别,如果鉴别通过则为用户签发用户身份凭证Token,然后将该用户的Token发送给RP,并上传到Log Server;
日志服务器Log Server,用于在公开日志中记录收到的所有Token,以便用户通过对比日志中的Token数据和该用户的登录情况,来检测是否存在该用户的虚假凭证。
9.如权利要求8所述的系统,其特征在于,身份提供方IdP利用随机生成的盲化因子SF盲化Token,得到盲化后的Token数据Blind Token;然后生成该用户的IBE公钥,利用该IBE公钥加密SF,得到Encrypted SF;身份提供方IdP将Blind Token和Encrypted SF发送给日志服务器Log Server;日志服务器Log Server对Blind Token签名,得到Blindly SignedToken,然后将{Blindly Signed Token,Encrypted SF}作为一个条目记录在日志当中,并将Blindly Signed Token返回给身份提供方IdP;身份提供方IdP利用SF去盲化BlindlySigned Token,得到带日志服务器Log Server签名的Token数据Signed Token;然后将{Signed Token,Blindly Signed Token,SF}发送给应用提供方RP。
10.如权利要求9所述的系统,其特征在于,身份提供方IdP为用户生成假名,并将假名、Blindly Signed Token、Encrypted SF一起发送给日志服务器Log Server,日志服务器LogServer将{假名,Blindly Signed Token,Encrypted SF}作为一个条目记录在日志当中,来保护用户的身份信息;用户通过假名在日志中查找相关的条目,然后向身份提供方IdP申请该用户的IBE私钥解密条目中的Encrypted SF,得到SF;然后利用SF去盲化条目中的Blindly Signed Token,得到Signed Token;然后对比Token数据和该用户的登录情况,来检测是否存在该用户的虚假凭证。
11.如权利要求8所述的系统,其特征在于,当日志服务器Log Server和身份提供方IdP收到用户A发来的一个争议请求时,其中所述争议请求包括A所怀疑的条目、某一时段内的应用提供方RP登录日志和该时段内A存储的登录日志;日志服务器Log Server和身份提供方IdP验证两个登录日志的一致性,若不一致,则表明存在异常登录行为,日志服务器LogServer和身份提供方IdP联合解决该争议,其方法为:身份提供方IdP生成该条目对应用户的IBE私钥解密出盲化因子SF,并将其发送给日志服务器Log Server;日志服务器LogServer利用SF去盲化该争议中的日志条目中的Blindly Signed Token,得到对应的SignedToken数据;如果该Signed Token数据是无效数据,则判定身份提供方IdP存在恶意行为;如果该Signed Token数据中包含A的身份标识,则日志服务器Log Server判定身份提供方IdP签发了该用户A的虚假凭证;如果该Signed Token数据中包含其他用户的身份标识,则日志服务器Log Server向该用户A返回条目正确的消息,而不透露任何其他信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416144.XA CN109525583B (zh) | 2018-11-26 | 2018-11-26 | 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416144.XA CN109525583B (zh) | 2018-11-26 | 2018-11-26 | 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109525583A true CN109525583A (zh) | 2019-03-26 |
CN109525583B CN109525583B (zh) | 2021-03-12 |
Family
ID=65793574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811416144.XA Active CN109525583B (zh) | 2018-11-26 | 2018-11-26 | 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525583B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445756A (zh) * | 2019-07-04 | 2019-11-12 | 中国电子科技集团公司第三十研究所 | 云存储中可搜索加密审计日志的实现方法 |
CN112468446A (zh) * | 2020-11-02 | 2021-03-09 | 上海绊糖信息科技有限公司 | 一种保护用户隐私的移动运行环境安全检测系统 |
CN113139170A (zh) * | 2020-01-17 | 2021-07-20 | 华为技术有限公司 | 生成鉴权凭证和鉴权的方法、装置和设备 |
CN114499914A (zh) * | 2020-11-13 | 2022-05-13 | 财团法人资讯工业策进会 | 一种证明数据处理系统与证明数据处理方法 |
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111410A (zh) * | 2011-01-13 | 2011-06-29 | 中国科学院软件研究所 | 一种基于代理的单点登录方法及系统 |
CN102984127A (zh) * | 2012-11-05 | 2013-03-20 | 武汉大学 | 一种以用户为中心的移动互联网身份管理及认证方法 |
CN103001973A (zh) * | 2012-12-26 | 2013-03-27 | 百度在线网络技术(北京)有限公司 | 基于二维码的登录控制方法、系统和装置 |
CN103490899A (zh) * | 2013-09-27 | 2014-01-01 | 浪潮齐鲁软件产业有限公司 | 一种基于第三方服务的应用云安全认证方法 |
US20140337914A1 (en) * | 2013-05-08 | 2014-11-13 | International Business Machines Corporation | Policy-based automated consent |
CN105847008A (zh) * | 2016-03-18 | 2016-08-10 | 北京理工大学 | 一种匿名订购协议及其系统 |
CN107359998A (zh) * | 2017-01-11 | 2017-11-17 | 北京航空航天大学 | 一种便携式智能口令管理体制的建立与操作方法 |
-
2018
- 2018-11-26 CN CN201811416144.XA patent/CN109525583B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111410A (zh) * | 2011-01-13 | 2011-06-29 | 中国科学院软件研究所 | 一种基于代理的单点登录方法及系统 |
CN102984127A (zh) * | 2012-11-05 | 2013-03-20 | 武汉大学 | 一种以用户为中心的移动互联网身份管理及认证方法 |
CN103001973A (zh) * | 2012-12-26 | 2013-03-27 | 百度在线网络技术(北京)有限公司 | 基于二维码的登录控制方法、系统和装置 |
US20140337914A1 (en) * | 2013-05-08 | 2014-11-13 | International Business Machines Corporation | Policy-based automated consent |
CN103490899A (zh) * | 2013-09-27 | 2014-01-01 | 浪潮齐鲁软件产业有限公司 | 一种基于第三方服务的应用云安全认证方法 |
CN105847008A (zh) * | 2016-03-18 | 2016-08-10 | 北京理工大学 | 一种匿名订购协议及其系统 |
CN107359998A (zh) * | 2017-01-11 | 2017-11-17 | 北京航空航天大学 | 一种便携式智能口令管理体制的建立与操作方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445756A (zh) * | 2019-07-04 | 2019-11-12 | 中国电子科技集团公司第三十研究所 | 云存储中可搜索加密审计日志的实现方法 |
CN110445756B (zh) * | 2019-07-04 | 2021-07-09 | 中国电子科技集团公司第三十研究所 | 云存储中可搜索加密审计日志的实现方法 |
CN113139170A (zh) * | 2020-01-17 | 2021-07-20 | 华为技术有限公司 | 生成鉴权凭证和鉴权的方法、装置和设备 |
CN112468446A (zh) * | 2020-11-02 | 2021-03-09 | 上海绊糖信息科技有限公司 | 一种保护用户隐私的移动运行环境安全检测系统 |
CN112468446B (zh) * | 2020-11-02 | 2023-04-07 | 上海绊糖信息科技有限公司 | 一种保护用户隐私的移动运行环境安全检测系统 |
CN114499914A (zh) * | 2020-11-13 | 2022-05-13 | 财团法人资讯工业策进会 | 一种证明数据处理系统与证明数据处理方法 |
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109525583B (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525583A (zh) | 一种用于第三方提供身份管理的服务系统的虚假凭证检测方法及系统 | |
US9584507B1 (en) | Distributed password verification | |
Sotirov et al. | MD5 considered harmful today, creating a rogue CA certificate | |
US8667269B2 (en) | Efficient, secure, cloud-based identity services | |
US8813181B2 (en) | Electronic verification systems | |
CN109361668A (zh) | 一种数据可信传输方法 | |
US20090240936A1 (en) | System and method for storing client-side certificate credentials | |
CN108418691A (zh) | 基于sgx的动态网络身份认证方法 | |
US10263782B2 (en) | Soft-token authentication system | |
Singh | Network Security and Management | |
CN109347626A (zh) | 一种具有反跟踪特性的安全身份认证方法 | |
Alzuwaini et al. | An Efficient Mechanism to Prevent the Phishing Attacks. | |
CN115021942B (zh) | 一种防篡改的网络数据安全传输方法 | |
Han et al. | A survey on MITM and its countermeasures in the TLS handshake protocol | |
CN109347887A (zh) | 一种身份认证的方法及装置 | |
CN113014394A (zh) | 基于联盟链的电子数据存证方法及系统 | |
Polleit et al. | Defeating the secrets of otp apps | |
CN114466353A (zh) | App用户ID信息保护的装置、方法、电子设备及存储介质 | |
Benton et al. | Signaturecheck: a protocol to detect man-in-the-middle attack in ssl | |
Ekechukwu et al. | A notary extension for the online certificate status protocol | |
Monteiro et al. | Exemplifying attack identification and analysis in a novel forensically viable Syslog model | |
Monteiro et al. | An authentication and validation mechanism for analyzing syslogs forensically | |
Kumagai et al. | Distributed public key certificate-issuing infrastructure for consortium certificate authority using distributed ledger technology | |
Goodrich et al. | Notarized federated ID management and authentication | |
Sood | Phishing Attacks: A Challenge Ahead |
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 |