CN113468614A - 一种基于Bulletproofs的Kerberos跨域认证方法 - Google Patents

一种基于Bulletproofs的Kerberos跨域认证方法 Download PDF

Info

Publication number
CN113468614A
CN113468614A CN202110835057.3A CN202110835057A CN113468614A CN 113468614 A CN113468614 A CN 113468614A CN 202110835057 A CN202110835057 A CN 202110835057A CN 113468614 A CN113468614 A CN 113468614A
Authority
CN
China
Prior art keywords
user
domain
ticket
server
message
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
Application number
CN202110835057.3A
Other languages
English (en)
Other versions
CN113468614B (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.)
Chengdu Zhuozhou Technology Co ltd
Original Assignee
Chengdu Zhuozhou Technology Co ltd
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 Chengdu Zhuozhou Technology Co ltd filed Critical Chengdu Zhuozhou Technology Co ltd
Priority to CN202110835057.3A priority Critical patent/CN113468614B/zh
Publication of CN113468614A publication Critical patent/CN113468614A/zh
Application granted granted Critical
Publication of CN113468614B publication Critical patent/CN113468614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及跨域认证技术领域,其公开了一种基于Bulletproofs的Kerberos跨域认证方法,在进行跨域认证时,用户无需提交含自身身份信息的相关票据也能证明自己的合法身份,避免了用户身份信息的泄露。该方法包括:a.用户向本域认证服务器AS1请求访问服务器S;b.AS1向用户发送访问域内票据许可服务器TGS1的票据;c.用户向TGS1请求访问外域票据许可服务器TGS2的票据;d.TGS1向用户发送访问TGS2的票据;e.用户通过构造非交互Bulletproofs的参数向TGS2请求访问服务器S;f.TGS2通过非交互Bulletproofs的验证方法验证用户信息的合法性,然后向用户发送访问服务器S的票据;g.用户向服务器S发送认证请求;h.服务器S接受用户的认证,并向用户发送建立通信的消息,双方建立正式通信。

Description

一种基于Bulletproofs的Kerberos跨域认证方法
技术领域
本发明涉及跨域认证技术领域,具体涉及一种基于Bulletproofs(一种非交互式零知识证明协议)的Kerberos(一种计算机网络授权协议)跨域认证方法。
背景技术
当用户跨域访问资源时,由于和访问域的认证服务器之间不存在事先的信任关系,因此访问域的认证服务器需要联合用户本域的认证服务器对用户进行认证。另外在跨域访问的过程中,为了防止恶意实体跟踪用户的资源访问记录和会话,需要在认证过程中隐藏用户真实身份,提供匿名性服务。普适环境中的跨域认证方案在实现安全认证和会话密钥建立的同时应满足匿名性和不可跟踪性,即用户访问域认证服务器的时候,其他用户无法确定跨域访问的合法用户的真实身份以及不同会话的来源。
在现实社会中,身份欺诈是不可避免的,因此我们访问服务器的时候常常需要证明自己的身份。通讯和数据的安全也取决于能否正确验证用户的身份信息。例如:银行的ATM机能够将钱款发送给它识别的账号的持卡人,大大减轻了柜台工作人员的负担,提高了效率。对于计算机内的资源的访问和使用,以及安全区域的出入都需要以精确的身份认证为基础。而传统认证过程中的身份认证都是通过检查“物”(口令或者身份证明信息)的有效性来确认用户身份的,那么能不能在不需要提供这些身份信息的前提下,就能够证明身份的合法性呢。这就需要零知识证明技术。零知识证明是这样一种技术,被认证方P掌握某些秘密信息,P设法让认证方V相信他确实掌握哪些信息,但又不让V知道是哪些信息。
目前越来越多的用户需要进行跨辖区的身份认证,使得在本辖区内合法的用户也能够合法的访问其他辖区,而不需要重新去注册。Kerberos跨域认证协议就是在Kerberos认证协议的基础上提供了跨辖区的认证管理功能,但是由于其采用对称密钥加密算法而存在不少的缺陷,基于公钥体制的Kerberos认证协议在原有认证协议的基础上引入公开密钥加密体制,使得整个认证系统具有了抗否认性,而更加安全。但是他们却存在一个共同的缺陷:就是他们对于身份的确认建立在用户提交包含有自己身份信息的证明文件的基础之上,也就是说用户想要向其他辖区证明自己的合法性,就必须要提供本辖区服务器为其颁发的“身份证明文件"。这样虽然能够轻易的证明用户的合法性,但是同时却使其他辖区的服务器也掌握了该用户的相关信息如用户名、用户地址等,造成用户信息的泄露,且无法实现用户的匿名登录或者匿名访问。
对于用户的身份信息,在本辖区内可以认为是公开的,但是这些信息是不应该传递到其他辖区。而且信息在本辖区内传递比在辖区之间传递更为安全。因此本发明希望找到一种方法,使得用户在进行跨域认证的情况下,不需要提交与自己身份信息相关的票据,仍然能够证明自己的合法性,即其他辖区的认证服务器或者应用服务器不需要知道用户是谁,用户在哪,它仅仅需要知道用户是合法的就足够了。
发明内容
本发明所要解决的技术问题是:提出一种基于Bulletproofs的Kerberos跨域认证方法,在进行跨域认证时,用户无需向外域服务器提交包含自身身份信息的相关票据也能证明自己的合法身份,避免了用户身份信息的泄露。
本发明解决上述技术问题采用的技术方案是:一种基于Bulletproofs的Kerberos跨域认证方法,包括以下步骤:
a.用户C向本域的认证服务器AS1请求访问外域应用服务器S;
b.本域的认证服务器AS1在确认用户C的身份后,向用户C发送访问本域的域内票据许可服务器TGS1的票据
Figure BDA0003176870520000021
c.用户C根据获得的票据
Figure BDA0003176870520000022
向域内票据许可服务器TGS1请求访问外域票据许可服务器TGS2的票据
Figure BDA0003176870520000023
d.域内票据许可服务器TGS1在确认用户C的身份后,向用户C发送访问外域票据许可服务器TGS2的票据
Figure BDA0003176870520000024
e.用户C构造非交互Bulletproofs认证的参数,也即证明自己身份且不包含自身敏感信息的数据;用户C根据获得的票据
Figure BDA0003176870520000025
向外域票据许可服务器TGS2请求访问外域应用服务器S,并向外域票据许可服务器TGS2传递非交互Bulletproofs认证的参数;
f.外域票据许可服务器TGS2根据获得的非交互Bulletproofs认证的参数,通过非交互Bulletproofs认证方法验证用户C的身份,在确定用户身份后,向用户C发送访问外域应用服务器S的票据Tickets
g.用户C根据获得的外域应用服务器S的票据Tickets,向外域应用服务器S发送认证请求;
h.外域应用服务器S接受用户C的认证,并向用户C发送建立通信的消息,双方建立正式通信。
作为进一步优化,步骤a包括:
a1.用户C构造消息Q1
Figure BDA0003176870520000026
其中,IDc为用户C的用户号,
Figure BDA0003176870520000031
为域内票据许可服务器号,Random1为用户生成的一个用以防止重放的随机数;
用户C使用其私钥KRc对消息Q1进行签名,生成签名信息
Figure BDA0003176870520000032
a2.用户C构造消息M1
Figure BDA0003176870520000033
a3.用户C对消息M1采用本域认证服务器AS1的公钥
Figure BDA0003176870520000034
进行加密,并发送给本域认证服务器AS1
作为进一步优化,步骤b包括:
b1.本域认证服务器AS1接收用户C发送的消息M1
b2.本域认证服务器AS1采用其私钥
Figure BDA0003176870520000035
解密消息M1
b3.本域认证服务器AS1采用用户C的公钥KPc验证签名信息
Figure BDA0003176870520000036
在确认消息为用户C所发出后,根据本地数据库中的记录判断用户C的身份是否存在以及是否合法;
b4.若用户C的身份存在且合法,则本域认证服务器AS1构造消息Q2
Figure BDA0003176870520000037
Figure BDA0003176870520000038
其中,
Figure BDA0003176870520000039
为本域认证服务器AS1构造的域内票据许可服务器TGS1与用户C的共享的会话秘钥,
Figure BDA00031768705200000310
为域内票据许可服务器号,IDc为用户C的用户号;
本域认证服务器AS1采用其私钥
Figure BDA00031768705200000311
对消息Q2进行签名,生成签名信息
Figure BDA00031768705200000312
b5.本域认证服务器AS1为用户构造访问域内票据许可服务器TGS1的票据
Figure BDA00031768705200000313
Figure BDA00031768705200000314
Figure BDA00031768705200000315
表示使用域内票据服务器TGS1的公钥加密消息;
本域认证服务器AS1采用其私钥
Figure BDA00031768705200000316
为票据
Figure BDA00031768705200000317
进行签名,生成签名信息
Figure BDA00031768705200000318
b6.本域认证服务器AS1构造消息M2
Figure BDA00031768705200000319
b7.本域认证服务器AS1对消息M2采用用户C的公钥KPc进行加密,并发送给用户C。
作为进一步优化,步骤C包括:
c1.用户C接收来自本域认证服务器AS1发送的消息M2
C2.用户C采用其私钥KRc解密消息M2
C3.用户C根据解密信息中的随机数判断消息M2是否为重放;
C4.若不是重放,则用户C采用本域认证服务器AS1的公钥
Figure BDA00031768705200000320
验证签名信息
Figure BDA0003176870520000041
以确认票据
Figure BDA0003176870520000042
是否由TGS1签发;
c5.在验证票据
Figure BDA0003176870520000043
确由TGS1签发后,用户C构造身份验证码Auth1
Figure BDA0003176870520000044
Figure BDA0003176870520000045
其中,Random2为用户生成的另一个防止重放的随机数,IDc为用户C的用户号,
Figure BDA0003176870520000046
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
用户C采用其私钥KRc对Auth1进行签名,生成签名信息
Figure BDA0003176870520000047
c6.用户C构造消息M3
Figure BDA0003176870520000048
c7.采用域内票据许可服务器TSG1的公钥
Figure BDA0003176870520000049
对消息M3进行加密,并发送给域内票据许可服务器TGS1
作为进一步优化,步骤d包括:
d1.域内票据许可服务器TGS1接收用户C发送的消息M3
d2.域内票据许可服务器TGS1采用其私钥
Figure BDA00031768705200000410
解密消息M3
d3.域内票据许可服务器TGS1采用用户C的公钥KPc验证签名信息
Figure BDA00031768705200000411
确认Auth1是否由用户C发出,并验证用户C的身份的正确性以及是否被篡改;
d4.若用户C的身份信息正确且未被篡改,则域内票据许可服务器TGS1构造消息Q3
Figure BDA00031768705200000412
其中,h()表示单向哈希函数,
Figure BDA00031768705200000413
为外域票据许可服务器号;
域内票据许可服务器TGS1采用其私钥
Figure BDA00031768705200000414
对Q3进行签名,生成签名信息
Figure BDA00031768705200000415
d5.域内票据许可服务器TGS1为用户构造访问外域票据许可服务器TGS2的票据
Figure BDA00031768705200000416
Figure BDA00031768705200000417
其中,
Figure BDA00031768705200000418
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
域内票据许可服务器TGS1采用其私钥
Figure BDA00031768705200000419
对票据
Figure BDA00031768705200000420
进行签名,生成签名信息
Figure BDA00031768705200000421
d6.域内票据许可服务器TGS1构造消息M4
Figure BDA00031768705200000422
d7.域内票据许可服务器TGS1采用用户C的公钥KPc对消息M4加密,并发送给用户C。
作为进一步优化,步骤d3中,所述域内票据许可服务器TGS1验证用户C的身份的正确性以及是否被篡改,具体包括:
域内票据许可服务器TGS1采用用户C的公钥KPc验证签名信息
Figure BDA0003176870520000051
确认Auth1是否由用户C发出;
域内票据许可服务器TGS1采用其私钥
Figure BDA0003176870520000052
解密
Figure BDA0003176870520000053
得到
Figure BDA0003176870520000054
并根据本域认证服务器AS1的公钥
Figure BDA0003176870520000055
验证签名信息
Figure BDA0003176870520000056
确认Q2是否由本域认证服务器AS1发出;
域内票据许可服务器TGS1从Q2获得
Figure BDA0003176870520000057
根据获得的
Figure BDA0003176870520000058
解密Auth1,得到IDc和Random2,根据解密得到的IDc与消息Q2中的IDc,确认票据是否为原始申请用户所拥有,确认用户C的身份的正确性以及是否被篡改。
作为进一步优化,步骤e包括:
e1.用户C接收域内票据许可服务器TGS1发送的消息M4
e2.用户C采用其私钥KRc对解密消息M4
e3.用户C根据解密信息中的随机数判断消息M4是否为重放;
e4.若不是重放,则用户C采用域内票据许可服务器TGS1的公钥
Figure BDA0003176870520000059
验证
Figure BDA00031768705200000510
以确认票据
Figure BDA00031768705200000511
是否由TGS1签发;
在验证票据
Figure BDA00031768705200000512
确由TGS1签发后,采用
Figure BDA00031768705200000513
解密
Figure BDA00031768705200000514
得到参数Q3
Figure BDA00031768705200000515
e5.用户C构造非交互Bulletproofs认证的参数M0
e6.用户C构造消息M5
Figure BDA00031768705200000516
其中,IDRealm为用户所在域的域ID,IDs为用户需要访问的外域应用服务器号,
Figure BDA00031768705200000517
为外域票据许可服务器号,Random3为用户生成的另一个防止重放的随机数;
e7.用户C采用外域票据许可服务器TGS2的公钥
Figure BDA00031768705200000518
对消息M5进行加密,并发送给外域票据许可服务器TGS2
作为进一步优化,步骤e5中,所述用户C构造非交互Bulletproofs认证的参数M0,所述
Figure BDA00031768705200000519
其各个参数的具体生成过程包括:
e51.参数sL,sR是两个盲化因子,产生过程如下:
以参数v表示用户C私钥KRc所对应的整数,首先将v转化为二进制向量a,进而构造向量aL=a,aR=a-1,然后产生两个从aL、aR中盲化出来的盲化因子sL,sR
e52.参数y,z是生成的两个随机数,产生过程如下:
Figure BDA0003176870520000061
表示素数阶为p的循环群,
Figure BDA0003176870520000062
表示以p为模的整数环,
Figure BDA0003176870520000063
是在
Figure BDA0003176870520000064
上具有n维的向量空间,
Figure BDA0003176870520000065
表示
Figure BDA0003176870520000066
则:z是从
Figure BDA0003176870520000067
中的元素产生的随机数,y是使用单项哈希函数获得的随机数,表示为y=hash(v,z);
e53.参数B是Pedersen承诺中的生成元,参数
Figure BDA0003176870520000068
是B对应的盲化因子,由公式
Figure BDA0003176870520000069
Figure BDA00031768705200000610
生成;
e54.参数G和H是素数阶为p的循环群
Figure BDA00031768705200000611
中元素随机生成的生成元;
e55.参数t(x),δ(y,z)是Bulletproofs的证明参数,其中,
δ(y,z)=(z-z2)<1,yn>-z3<1,2n>
t(x)=t0+t1x+t2x2
其中,x为用于构造多项式t(x)的随机私钥,t0、t1、t2分别为多项式t(x)自变量前的系数;
e56.参数
Figure BDA00031768705200000612
是通过
Figure BDA00031768705200000613
获得的t(x)对应的正交盲化因子,其中
Figure BDA00031768705200000614
Figure BDA00031768705200000615
分别为v、t1、t2对应的盲化因子;
e57.参数V,T1,T2由Pedersen承诺得到:V=com(v)、T1=com(t1)、T2=com(t2);
e58.参数
Figure BDA00031768705200000624
是一个盲化因子,参数A为向量形式的Pedersen承诺,具体的获取方式如下:
基于向量的Pedersen承诺A=Com(aL,aR),承诺S=Com(sL,sR),参数
Figure BDA00031768705200000616
通过公式
Figure BDA00031768705200000617
获得,其中
Figure BDA00031768705200000618
为承诺A=Com(aL,aR)对应的盲化因子参数,
Figure BDA00031768705200000619
为承诺S=Com(sL,sR)对应的盲化因子参数。
作为进一步优化,步骤f包括:
f1.外域票据许可服务器TGS2接收用户C发送的消息M5
f2.外域票据许可服务器TGS2采用其私钥
Figure BDA00031768705200000620
对解密消息M5
f3.外域票据许可服务器TGS2基于解密后的信息,采用非交互Bulletproofs认证方法,判断用户是否合法;
f4.若用户合法,则外域票据许可服务器TGS2构造消息Q4、构造访问外域应用服务器的票据Tickets、构造用户C和外域应用服务器S的会话秘钥Kc,s,其中,
Figure BDA00031768705200000621
Figure BDA00031768705200000622
然后采用外域票据许可服务器TGS2的私钥
Figure BDA00031768705200000623
对Q4进行签名,生成签名信息
Figure BDA0003176870520000071
并基于消息Q4和签名信息
Figure BDA0003176870520000072
构造访问外域应用服务器的票据Tickets
Figure BDA0003176870520000073
Figure BDA0003176870520000074
表示使用外域应用服务器S的公钥加密消息;
f5.外域票据许可服务器TGS2采用其私钥
Figure BDA0003176870520000075
为票据Tickets签名,生成签名信息
Figure BDA0003176870520000076
f6.外域票据许可服务器TGS2构造消息M6
Figure BDA0003176870520000077
f7.外域票据许可服务器TGS2采用用户C的公钥KPc对消息M6加密,并发送给用户C。
作为进一步优化,步骤f3中,所述采用非交互Bulletproofs认证方法,判断用户是否合法,具体包括:外域票据许可服务器TGS2通过从用户C那里获得的参数消息M0,验证下列两个等式是否成立:
Figure BDA0003176870520000078
Figure BDA0003176870520000079
其中,
Figure BDA00031768705200000710
x是外域票据许可服务器TGS2用于验证等式的随机秘钥,承诺S=Com(sL,sR),P是外域票据许可服务器TGS2根据从用户C获得的参数进行计算后获得的结果;若上述等式成立,则能够证明信息的合法性和正确性。
作为进一步优化,步骤g包括:
g1.用户C接收外域票据许可服务器TGS2发送的消息M6
g2.用户C采用其私钥KRc对解密消息M6
g3.用户C根据解密信息中的随机数判断消息M6是否为重放;
g4.若不是重放,则用户C采用外域票据许可服务器TGS2的公钥
Figure BDA00031768705200000711
验证签名
Figure BDA00031768705200000712
以确认票据Tickets是否由TGS2签发;
g5.若票据Tickets正确,则用户C生成另一个防止重放的随机数Random4,并基于Random4和IDRealm构造则生成新的身份验证码Auth2
Figure BDA00031768705200000713
Figure BDA00031768705200000714
表示使用用户C和外域应用服务器S的会话秘钥Kc,s加密消息;
用户C采用其私钥KRc对Auth2进行签名,生成签名信息
Figure BDA00031768705200000715
g6.用户C构造消息M7
Figure BDA0003176870520000081
g7.用户C采用外域应用服务器S的公钥KPS对消息M7进行加密,并发送给服务器S。
作为进一步优化,步骤h包括:
h1.外域应用服务器S接收用户C发送的消息M7
h2.外域应用服务器S采用其私钥KRs解密消息M7
h3.外域应用服务器S采用其私钥KRs解密票据Tickets得到参数Q4
Figure BDA0003176870520000082
利用外域票据许可服务器TSG2的公钥
Figure BDA0003176870520000083
验证签名
Figure BDA0003176870520000084
以确认票据Tickets是否由TSG2签发;
h4.外域应用服务器S利用从外域票据许可服务器TGS2获得的会话密钥Kc,s解密Auth2,得到参数IDRealm、rQ3、Random4,判断该IDRealm
Figure BDA0003176870520000085
是否与解密Tickets所得到Q4中的IDRealm
Figure BDA0003176870520000086
一致,以确认票据是否为原始申请用户所持有,从而验证消息M7的正确性和合法性;
h5.验证通过,则外域应用服务器S构造消息M8
M8={Random4+1}
h6.外域应用服务器S采用用户C和服务器S之间的会话密钥Kc,s对消息M8进行加密,并将加密后的消息M8发送给用户C,作为双方相互鉴别的消息;
h7.用户C与外域应用服务器S建立正式通信。
本发明的有益效果是:解决Kerberos跨域认证模型中,用户在跨域认证过程中需要提交包含自己身份信息的证明票据的缺陷,运用零知识证明的思想,使得用户无需提交相关票据也能证明自己的合法身份,避免了用户身份信息的泄露;
使用Bulletproofs零知识证明使用非交互方式的零知识证明方法,减少了用户和服务器之间的交互次数,当跨域认证系统比较大的时候,会大大的减少系统的通信量。
附图说明
图1是本发明实施例的总体方法流程。
具体实施方式
为了便于理解,首先对本发明中可能出现的相关参数符号说明如下:
1)ID名称参数:
AS表示认证服务器,其中,AS1为本域的认证服务器;
TGS表示票据许可服务器,其中,TGS1为域内票据许可服务器,TGS2为外域票据许可服务器;
ID表示身份证标识号,其中,IDc为用户号,
Figure BDA0003176870520000091
为域内票据许可服务器号,
Figure BDA0003176870520000092
为外域票据许可服务器号,IDRealm为用户所处的域ID,IDs为用户需要访问的外域应用服务器号。
2)秘钥参数:
KP、KR分别表示公钥、私钥,KP、KR的下标则表示公钥、私钥的所有者,例如,本域认证服务器AS1的公钥表示为
Figure BDA0003176870520000093
私钥表示为
Figure BDA0003176870520000094
用户C的私钥表示为KRc、公钥表示为KPc
Kx,y表示x和y共享的会话密钥,例如,
Figure BDA0003176870520000095
为用户C与域内票据许可服务器TGS1的会话密钥。
(3)票据参数:
Ticketx:访问x的票据,例如域内票据许可服务器票据
Figure BDA0003176870520000096
外域票据许可服务器票据
Figure BDA0003176870520000097
外域应用服务器票据Tickets
(4)签名信息:
(rM,sM)表示对信息M的签名,例如消息Q1的签名信息
Figure BDA0003176870520000098
消息Q2的签名信息
Figure BDA0003176870520000099
本域票据许可服务器票据
Figure BDA00031768705200000910
的签名信息
Figure BDA00031768705200000911
外域票据许可服务器票据
Figure BDA00031768705200000912
的签名信息
Figure BDA00031768705200000913
身份验证码Auth1的签名信息
Figure BDA00031768705200000914
消息Q3的签名信息
Figure BDA00031768705200000915
外域应用服务器S的签名信息
Figure BDA00031768705200000916
身份验证码Auth2的签名信息
Figure BDA00031768705200000917
其中,rM和sM是两个根据消息M产生的用于认证用户信息的加密算法参数。
本发明旨在提出一种基于Bulletproofs的Kerberos跨域认证方法,在进行跨域认证时,用户无需提交含自身身份信息的相关票据也能证明自己的合法身份,避免了用户身份信息的泄露。
实施例:
如图1所示,本实施例中的基于Bulletproofs的Kerberos跨域认证方法流程包括:
S1、用户C向本域的认证服务器AS1请求访问外域应用服务器S;
S2、本域的认证服务器AS1在确认用户C的身份后,向用户C发送访问本域的域内票据许可服务器TGS1的票据
Figure BDA0003176870520000101
S3、用户C根据获得的票据
Figure BDA0003176870520000102
向域内票据许可服务器TGS1请求访问外域票据许可服务器TGS2的票据
Figure BDA0003176870520000103
S4、域内票据许可服务器TGS1在确认用户C的身份后,向用户C发送访问外域票据许可服务器TGS2的票据
Figure BDA0003176870520000104
S5、用户C构造非交互Bulletproofs认证的参数,也即证明自己身份且不包含自身敏感信息的数据;用户C根据获得的票据
Figure BDA0003176870520000105
向外域票据许可服务器TGS2请求访问外域应用服务器S,并向外域票据许可服务器TGS2传递非交互Bulletproofs认证的参数;
S6、外域票据许可服务器TGS2根据获得的非交互Bulletproofs认证的参数,通过非交互Bulletproofs认证方法验证用户C的身份,在确定用户身份后,向用户C发送访问外域应用服务器S的票据Tickets
S7、用户C根据获得的外域应用服务器S的票据Tickets,向外域应用服务器S发送认证请求;
S8、外域应用服务器S接受用户C的认证,并向用户C发送建立通信的消息,双方建立正式通信。
下面针对各个步骤的具体实施手段进行详细说明。
对于步骤S1,本步骤中,用户C首先构造消息Q1和其对应的签名信息
Figure BDA0003176870520000106
然后构造消息M1,使用AS1的公钥加密M1,最后将M1发送至AS1,包括如下步骤:
S101、用户C构造包含个人身份信息的消息Q1,所述消息Q1包括用户号IDc、域内票据许可服务器号
Figure BDA0003176870520000107
以及用户产生的一个用于防止重放的随机数Random1,即:
Figure BDA0003176870520000108
然后,使用用户C的私钥KRc对消息Q1进行签名,生成签名信息
Figure BDA0003176870520000109
S102、用户C构造消息M1
Figure BDA00031768705200001010
S103、用户C对消息M1采用本域认证服务器AS1的公钥
Figure BDA00031768705200001011
进行加密,加密后的消息M1为:
Figure BDA0003176870520000111
其中,
Figure BDA0003176870520000112
表示使用本域认证服务器AS1的公钥
Figure BDA0003176870520000113
进行加密,然后将加密后的消息发送给本域认证服务器AS1
对于步骤S2,本步骤中,当AS1收到消息M1后,解密消息M1,然后验证Q1,确认用户的合法性,如果用户合法,构造消息Q2,签名信息
Figure BDA0003176870520000114
构造票据
Figure BDA0003176870520000115
构造消息M2并加密,将M2发送至用户C,包括如下步骤:
S201、本域认证服务器AS1接收用户C发送的消息M1
S202、本域认证服务器AS1采用自己的私钥KRas1解密消息M1
S203、本域认证服务器AS1采用用户C的公钥KPc验证签名信息
Figure BDA0003176870520000116
在确认消息为用户C所发出后,根据本地数据库中的记录判断用户C的身份是否存在以及是否合法;
S204、如果用户C的身份存在且合法,则本域认证服务器AS1构造消息Q2
Figure BDA0003176870520000117
在本发明中,Kx,y表示x和y共享的会话密钥,因此,
Figure BDA0003176870520000118
即为本域认证服务器AS1构造的用户C与域内票据许可服务器TGS1的会话密钥;
然后,对消息Q2采用自身的私钥
Figure BDA0003176870520000119
进行签名,生成签名信息
Figure BDA00031768705200001110
S205、本域认证服务器AS1为用户构造访问域内票据许可服务器TGS1的票据
Figure BDA00031768705200001111
票据采用票据许可服务器TGS1的公钥加密,保证票据只能由TGS1解密,也即,
Figure BDA00031768705200001112
Figure BDA00031768705200001113
即表示使用票据许可服务器TGS1的公钥
Figure BDA00031768705200001114
进行加密,然后,AS1采用自身的私钥
Figure BDA00031768705200001115
为票据
Figure BDA00031768705200001116
签名,生成签名信息
Figure BDA00031768705200001117
S206、本域认证服务器AS1构造消息M2
Figure BDA00031768705200001118
S207、本域认证服务器AS1对消息M2采用用户C的公钥KPc进行加密后发送给用户,加密后的消息M2为:
Figure BDA00031768705200001119
Figure BDA00031768705200001120
表示使用用户C的公钥KPc进行加密。
对于步骤S3,本步骤中,用户C收到消息M2后,首先判断消息是否重放;然后验证
Figure BDA0003176870520000121
的正确性。接着,用户C构造身份验证码,并用自己的私钥KRc对身份验证码进行签名得到
Figure BDA0003176870520000122
最后,用户C构造消息M3,使用TGS1的公钥进行加密,将加密后的M3发送至TGS1请求跨域访问票据,包括以下步骤:
S301、用户C接收来自本域认证服务器AS1发送的加密后的消息M2
S302、用户C采用自己的私钥KRc对加密后的消息M2进行解密;
S303、用户C根据解密后的信息中的随机数判断消息M2是否重放;具体方法为,用户C用自己的私钥KRc解密消息后,判断消息中的参数Random+1是否是自己发出的随机数+1,以判断该消息是否为重放;
S304、若不是重放,则用户C采用本域认证服务器AS1的公钥
Figure BDA0003176870520000123
验证签名信息
Figure BDA0003176870520000124
以确认票据
Figure BDA0003176870520000125
是否由TGS1签发;
S305、用户确定票据无误后,用户C构造身份验证码Auth1
Figure BDA0003176870520000126
其中,Random2为用户生成的另一个防止重放的随机数,IDc为用户C的用户号,
Figure BDA0003176870520000127
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
然后,用户C采用其私钥KRc对Auth1进行签名,生成签名信息
Figure BDA0003176870520000128
S306、用户C构造消息M3
Figure BDA0003176870520000129
S307、用户C采用域内票据许可服务器TGS1的公钥
Figure BDA00031768705200001210
对消息M3进行加密,加密后的M3为:
Figure BDA00031768705200001211
Figure BDA00031768705200001212
即表示使用票据许可服务器TGS1的公钥
Figure BDA00031768705200001213
进行加密,然后,将加密后的消息M3发送给域内票据许可服务器TGS1
对于步骤S4,本步骤中,在TGS1收到消息M3后,首先用自己的私钥
Figure BDA00031768705200001214
解密得到各种信息。然后确认身份验证码确实是由用户C发出,并且确认Q2确实是由AS1发出,判断票据是否为原始申请用户所拥有,如果一致,TSG1则开始构造身份信息Q3,以及签名得到
Figure BDA00031768705200001215
并生成跨域访问票据
Figure BDA00031768705200001216
接着,TSG1为票据
Figure BDA00031768705200001217
签名生成
Figure BDA0003176870520000131
最后,TSG1构造消息M4,将消息M4发送至用户C,包括以下步骤:
S401、域内票据许可服务器TGS1接收用户C发送的加密后的消息M3
S402、域内票据许可服务器TGS1采用自己的私钥
Figure BDA0003176870520000132
对加密后的消息M3进行解密;
S403、域内票据许可服务器TGS1验证消息M3的正确性以及是否被篡改;
为了确认身份验证码确实是由用户C发出,TGS1使用用户C的公钥KPc,验证签名
Figure BDA0003176870520000133
的正确性。
为了确认Q2确实是由AS1发出,用自己的私钥
Figure BDA0003176870520000134
解密
Figure BDA0003176870520000135
得到
Figure BDA0003176870520000136
用AS1的公钥
Figure BDA0003176870520000137
验证
Figure BDA0003176870520000138
为了判断票据是否为原始申请用户所拥有,TGS1使用Q2中的参数
Figure BDA0003176870520000139
解密身份验证码Auth1得到参数IDc和Random2,比较该IDc与Q2中的IDc是否一致。
S404、域内票据许可服务器TGS1对消息M3验证通过后,则域内票据许可服务器TGS1构造消息Q3
Figure BDA00031768705200001310
其中,h()表示单向哈希函数,
Figure BDA00031768705200001311
为外域票据许可服务器号;然后,域内票据许可服务器TGS1采用其私钥
Figure BDA00031768705200001312
对Q3进行签名,生成签名信息
Figure BDA00031768705200001313
S405、域内票据许可服务器TGS1为用户构造访问外域票据许可服务器TGS2的票据
Figure BDA00031768705200001314
Figure BDA00031768705200001315
其中,
Figure BDA00031768705200001316
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
S406、域内票据许可服务器TGS1构造消息M4
Figure BDA00031768705200001317
其中,
Figure BDA00031768705200001318
为域内票据许可服务器TSG1采用自己的私钥
Figure BDA00031768705200001319
对票据
Figure BDA00031768705200001320
的签名;
S407、域内票据许可服务器TGS1采用用户C的公钥KPc对消息M4进行加密,加密后的M4
Figure BDA0003176870520000141
Figure BDA0003176870520000142
表示使用用户C的公钥KPc进行加密,然后,将加密后的M4发送给用户C。
对于步骤S5,本步骤中,用户C收到消息M4后,首先用自己的私钥KRc解密得到各种信息,并验证是否重放。然后用TGS1的公钥
Figure BDA0003176870520000143
验证
Figure BDA0003176870520000144
以确认
Figure BDA0003176870520000145
是由TGS1签发的。接着,用户C用
Figure BDA0003176870520000146
解密
Figure BDA0003176870520000147
得到参数Q3
Figure BDA0003176870520000148
最后,C构造消息M5,将消息M5发送给域B的TGS2,包括以下步骤:
S501、用户C接收域内票据许可服务器TGS1发送的加密后的消息M4
S502、用户C采用自己的私钥KRc对加密后的消息M4进行解密;
S503、用户C基于解密获得的信息判断消息M4是否重放;
S504、用户C采用域内票据许可服务器TGS1的公钥
Figure BDA0003176870520000149
验证
Figure BDA00031768705200001410
以确认票据
Figure BDA00031768705200001411
是否由TGS1签发;然后采用
Figure BDA00031768705200001412
解密
Figure BDA00031768705200001413
得到参数Q3
Figure BDA00031768705200001414
S505、用户C构造非交互Bulletproofs零知识证明的参数M0
参数M0是不包含用户个人信息,却又能向认证服务器证明自己身份的信息,该消息中仅包含用户来自的域ID,而不含用户ID用户地址等敏感信息:
所述
Figure BDA00031768705200001415
其各个参数的具体生成过程包括:
1)参数sL,sR是两个盲化因子,产生过程如下:
以参数v表示用户C私钥KRc所对应的整数,首先将v转化为二进制向量a,进而构造向量aL=a,aR=a-1,然后产生两个从aL、aR中盲化出来的盲化因子sL,sR
2)参数y,z是生成的两个随机数,产生过程如下:
Figure BDA00031768705200001416
表示素数阶为p的循环群,
Figure BDA00031768705200001417
表示以p为模的整数环,
Figure BDA00031768705200001418
是在
Figure BDA00031768705200001419
上具有n维的向量空间,
Figure BDA00031768705200001420
表示
Figure BDA00031768705200001421
则:z是从
Figure BDA00031768705200001422
中的元素产生的随机数,y是使用单项哈希函数获得的随机数,表示为y=hash(v,z);
3)参数B是Pedersen承诺中的生成元,参数
Figure BDA00031768705200001423
是B对应的盲化因子,由公式
Figure BDA00031768705200001424
Figure BDA00031768705200001425
生成;
4)参数G和H是素数阶为p的循环群
Figure BDA00031768705200001426
中元素随机生成的生成元;
5)参数t(x),δ(y,z)是Bulletproofs的证明参数,其中,
δ(y,z)=(z-z2)<1,yn>-z3<1,2n>
t(x)=t0+t1x+t2x2
其中,δ(y,z)为不包含秘密数的多项式,y(x)为包含秘密数且盲化后的多项式l(x)和r(x)的内积,t0、t1、t2分别为多项式t(x)自变量前的系数,x为用于构造多项式t(x)的随机私钥,在实施例中为用户C的私钥KRc
t(x)的构造过程如下:
l(x)=l0+l1x=(aL+sLx)-z1
Figure BDA0003176870520000151
t(x)=<l(x),r(x)>=t0+t1x+t2x2
Figure BDA0003176870520000152
t2=<l1,r1>
t1=<l0+l1,r0+r1>-t0-t2
6)参数
Figure BDA0003176870520000153
是通过
Figure BDA0003176870520000154
获得的t(x)对应的正交盲化因子,其中
Figure BDA0003176870520000155
Figure BDA0003176870520000156
分别为v、t1、t2对应的盲化因子;
7)参数V,T1,T2由Pedersen承诺得到:V=com(v)、T1=com(t1)、T2=com(t2);
8)参数
Figure BDA0003176870520000157
是一个盲化因子,参数A为向量形式的Pedersen承诺,具体的获取方式如下:
基于向量的Pedersen承诺A=Com(aL,aR),承诺S=Com(sL,sR),参数
Figure BDA0003176870520000158
通过公式
Figure BDA00031768705200001516
获得,其中
Figure BDA0003176870520000159
为承诺A=Com(aL,aR)对应的盲化因子参数,
Figure BDA00031768705200001510
为承诺S=Com(sL,sR)对应的盲化因子参数。
最终,结合步骤(1)~(8)获得的参数,就可以构造消息M0
Figure BDA00031768705200001511
S506、用户C构造消息M5
Figure BDA00031768705200001512
其中,IDRealm为用户所在域的域ID,IDs为用户需要访问的外域应用服务器号,
Figure BDA00031768705200001513
为外域票据许可服务器号,Random3为用户生成的另一个防止重放的随机数;
S507、用户C采用外域票据许可服务器TGS2的公钥
Figure BDA00031768705200001514
对消息M5进行加密,加密后的M5为:
Figure BDA00031768705200001515
Figure BDA0003176870520000161
即表示使用票据许可服务器TGS2的公钥
Figure BDA0003176870520000162
进行加密,然后发送给外域票据许可服务器TGS2
对于步骤S6,本步骤中,外域也即域B的TGS2收到消息M5后,用自己的私钥
Figure BDA0003176870520000163
解密,得到各种参数信息。然后验证用户的信息,TGS2为用户C构建访问服务的票据Tickets,用服务器S的公钥进行加密,并为票据Tickets签名,生成
Figure BDA0003176870520000164
最后,TGS2构造消息M6,将消息发送到用户C,包括以下步骤:
S601、外域票据许可服务器TGS2接收用户C发送的加密后的消息M5
S602、外域票据许可服务器TGS2采用自己的私钥
Figure BDA0003176870520000165
对加密后的消息M5进行解密;
S603、外域票据许可服务器TGS2基于解密后的信息,采用非交互Bulletproofs零知识证明验证消息M5的正确性,判断用户是否合法;
本步骤外域票据许可服务器TGS2通过从用户C那里获得的参数消息M0,验证下列两个等式是否成立:
Figure BDA0003176870520000166
Figure BDA0003176870520000167
其中,
Figure BDA0003176870520000168
x是外域票据许可服务器TGS2用于验证等式的随机秘钥,在实施例中由TGS2通过秘钥生成算法随机生成,承诺S=Com(sL,sR),P是外域票据许可服务器TGS2根据从用户C获得的参数进行计算后获得的结果;
如果等式成立,则判断是否达到零知识证明轮数,如果未达到,则向用户C发出继续验证的消息,如果达到零知识证明轮数且轮询问全部成立,则域B(外域)的TGS2基于对域A(本域)的TGS1的信任,相信用户C是合法用户。
上述验证的过程使用内积协议,也即为了向验证者(服务器)证明t(x)=<l(x),r(x)>,服务器获得用户正交盲化因子
Figure BDA0003176870520000169
然后,计算以下式子:
Figure BDA00031768705200001610
若计算出来得出P=<I(x),G>+<r(x),H′>,则能够验证“t(x)=<l(x),r(x)>”,从而验证用户的身份信息。
具体的,内积协议如下:使用以下符号定义系统
Figure BDA00031768705200001611
Figure BDA0003176870520000171
c=<a,b>
P=<a,G>+<b,H>
根据上述定义,需要进行以下这一个知识证明:
P=<a,G>+<b,H>∧c=<a,b>
引入一个中间变量w,再对第二个等式两侧同时乘以一个正交生成元
Figure BDA0003176870520000172
将这两个等式合并为一个等式,即:
P=<a,G>+<b,H>+cwB=<a,b>wB
继续引入以下符号对上面的等式进行简化:
k=lgn
P′=P+cwB
Q=wB
则获得:
P′=<a,G>+<b,H>+<a,b>Q
引入一个中间变量uk,并且对原始的a,b,G,H进行如下压缩变换:
Figure BDA0003176870520000173
Lk=<alo,Ghi>+<bhi,Hlo>+<alo,bhi>·Q
Rk=<ahi,Glo>+<blo,Hhi>+<ahi,blo>·Q
如果用户确实是诚实地在随机选择uk之前对Lk和Rk进行了承诺计算,并且上面这个等式成立,则原始的等式(关于Rk的那个等式)是极大概率成立。接下来可以继续对Pk-1压缩,与上面过程类似地引入中间变量uk-1,…,一直到到达最后的a(0),b(0),G(0),H(0)有:
Figure BDA0003176870520000174
Figure BDA0003176870520000175
将上面的等式按照定义Pk=P′=P+cwB和Q=wB,进行重写后发现:
Figure BDA0003176870520000176
用户在步骤S5中,可以简单地发送2个标量
Figure BDA0003176870520000177
Figure BDA0003176870520000178
给验证者,这样后者可以直接校验上面这个最终步的等式是否成立。总体的内积协议有lg n步,证明者可以一次性将所有的(Lj,Rj)发送给验证者,j=k…1,至此,对于证明l(x),r(x)的正确性,一共需要发送2lgn+2个元素,大大的减少了验证双方通信的数据量。
S604、若用户合法,则外域票据许可服务器TGS2构造消息Q4、构造访问外域应用服务器的票据Tickets、构造用户C和外域应用服务器S的会话秘钥Kc,s,其中,
Figure BDA0003176870520000181
然后采用外域票据许可服务器TGS2的私钥
Figure BDA0003176870520000182
对Q4进行签名,生成签名信息
Figure BDA0003176870520000183
并基于消息Q4和签名信息
Figure BDA0003176870520000184
构造访问外域应用服务器的票据Tickets
Figure BDA0003176870520000185
Figure BDA0003176870520000186
表示使用外域应用服务器S的公钥加密消息;
S605、外域票据许可服务器TGS2采用其私钥
Figure BDA0003176870520000187
为票据Tickets签名,生成签名信息
Figure BDA0003176870520000188
S606、外域票据许可服务器TGS2构造消息M6
Figure BDA0003176870520000189
S607、外域票据许可服务器TGS2采用用户C的公钥KPc对消息M6加密,加密后的消息M6为:
Figure BDA00031768705200001810
Figure BDA00031768705200001811
表示使用用户C的公钥KPc进行加密,然后发送给用户C。
对于步骤S7,本步骤中,用户C收到消息M6后,用自己的私钥KRc解密得到参数。接着,判断Tickets是否为TGS2产生,如果正确,用户C则生成新的身份验证码Auth2,并用自己的私钥KRc对Auth2进行签名得到
Figure BDA00031768705200001812
最后,用户C构造消息M7,使用S的公钥加密,将消息M7发送至外域应用服务器S,包括以下步骤:
S701、用户C接收外域票据许可服务器TGS2发送的加密后的消息M6
S702、用户C采用自己的私钥KRc对加密后的消息M6进行解密;
S703、用户C根据解密信息中的随机数判断消息M6是否为重放;
S704、用户C采用外域票据许可服务器TGS2的公钥
Figure BDA00031768705200001813
验证签名
Figure BDA00031768705200001814
从而判断票据Tickets的正确性;
S705、若票据Tickets正确,则用户C生成另一个防止重放的随机数Random4,并基于Random4和IDRealm构造则生成新的身份验证码Auth2
Figure BDA0003176870520000191
Figure BDA0003176870520000192
表示使用用户C和外域应用服务器S的会话秘钥Kc,s加密消息;
S706、用户C构造消息M7
Figure BDA0003176870520000193
S707、用户C采用外域应用服务器S的公钥KPS对消息M7进行加密,加密后的M7为:
Figure BDA0003176870520000194
Figure BDA0003176870520000195
表示使用外域应用服务器S的公钥KPS进行加密,然后发送给服务器S。
对于步骤S8,本步骤中,服务器S利用自己的私钥KRs解密收到的消息M7,得到对应的参数,确认身份验证码确实由用户C产生,并且验证签名
Figure BDA0003176870520000196
确认票据Tickets确实由TSG2签发。利用会话密钥Kc,s解密身份验证码,确认票据是否为初始申请票据的用户所持有,如果都没有问题,服务器S便构造消息M8,消息用用户C和服务器S之间的会话密钥加密,并且将消息M2发送给用户C作相互鉴别。之后用户和应用服务器之间后续通信正式开始,包括以下步骤:
S801、外域应用服务器S接收用户C发送的加密后的消息M7
S802、外域应用服务器S采用自己的私钥KRs对加密后的消息M7进行解密;
S803、外域应用服务器S利用自己的私钥KRs解密票据Tickets得到参数
Figure BDA0003176870520000197
利用外域票据许可服务器TSG2的公钥
Figure BDA0003176870520000198
验证签名
Figure BDA0003176870520000199
以确认票据Tickets是否由TSG2签发;
S804、为了验证消息M7的正确性和合法性,外域应用服务器S利用从外域票据许可服务器TGS2获得的会话密钥Kc,s解密Auth2,得到参数IDRealm
Figure BDA00031768705200001910
Random4,判断该IDRealm
Figure BDA00031768705200001911
是否与解密Tickets所得到Q4中的IDRealm
Figure BDA00031768705200001912
一致,以确认票据是否为原始申请用户所持有,从而验证消息M7的正确性和合法性。
S805、外域应用服务器S构造消息M8
M8={Random4+1}
S806、外域应用服务器S采用用户C和服务器S之间的会话密钥Kc,s对消息M8进行加密,加密后的消息M8
Figure BDA00031768705200001913
将加密后的消息M8发送给用户C,作为双方相互鉴别的消息,二者建立正式通信。

Claims (12)

1.一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,包括以下步骤:
a.用户C向本域的认证服务器AS1请求访问外域应用服务器S;
b.本域的认证服务器AS1在确认用户C的身份后,向用户C发送访问本域的域内票据许可服务器TGS1的票据
Figure FDA0003176870510000011
c.用户C根据获得的票据
Figure FDA0003176870510000012
向域内票据许可服务器TGS1请求访问外域票据许可服务器TGS2的票据
Figure FDA0003176870510000013
d.域内票据许可服务器TGS1在确认用户C的身份后,向用户C发送访问外域票据许可服务器TGS2的票据
Figure FDA0003176870510000014
e.用户C构造非交互Bulletproofs认证的参数,也即证明自己身份且不包含自身敏感信息的数据;用户C根据获得的票据
Figure FDA0003176870510000015
向外域票据许可服务器TGS2请求访问外域应用服务器S,并向外域票据许可服务器TGS2传递非交互Bulletproofs认证的参数;
f.外域票据许可服务器TGS2根据获得的非交互Bulletproofs认证的参数,通过非交互Bulletproofs认证方法验证用户C的身份,在确定用户身份后,向用户C发送访问外域应用服务器S的票据Tickets
g.用户C根据获得的外域应用服务器S的票据Tickets,向外域应用服务器S发送认证请求;
h.外域应用服务器S接受用户C的认证,并向用户C发送建立通信的消息,双方建立正式通信。
2.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤a包括:
a1.用户C构造消息Q1
Figure FDA0003176870510000016
其中,IDc为用户C的用户号,
Figure FDA0003176870510000017
为域内票据许可服务器号,Random1为用户生成的一个用以防止重放的随机数;
用户C使用其私钥KRc对消息Q1进行签名,生成签名信息
Figure FDA0003176870510000018
a2.用户C构造消息M1
Figure FDA0003176870510000019
a3.用户C对消息M1采用本域认证服务器AS1的公钥
Figure FDA00031768705100000110
进行加密,并发送给本域认证服务器AS1
3.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤b包括:
b1.本域认证服务器AS1接收用户C发送的消息M1
b2.本域认证服务器AS1采用其私钥
Figure FDA0003176870510000021
解密消息M1
b3.本域认证服务器AS1采用用户C的公钥KPc验证签名信息
Figure FDA0003176870510000022
在确认消息为用户C所发出后,根据本地数据库中的记录判断用户C的身份是否存在以及是否合法;
b4.若用户C的身份存在且合法,则本域认证服务器AS1构造消息Q2
Figure FDA0003176870510000023
Figure FDA0003176870510000024
其中,
Figure FDA0003176870510000025
为本域认证服务器AS1构造的域内票据许可服务器TGS1与用户C的共享的会话秘钥,
Figure FDA0003176870510000026
为域内票据许可服务器号,IDc为用户C的用户号;
本域认证服务器AS1采用其私钥
Figure FDA0003176870510000027
对消息Q2进行签名,生成签名信息
Figure FDA0003176870510000028
b5.本域认证服务器AS1为用户构造访问域内票据许可服务器TGS1的票据
Figure FDA0003176870510000029
Figure FDA00031768705100000210
Figure FDA00031768705100000211
表示使用域内票据服务器TGS1的公钥加密消息;
本域认证服务器AS1采用其私钥
Figure FDA00031768705100000212
为票据
Figure FDA00031768705100000213
进行签名,生成签名信息
Figure FDA00031768705100000214
b6.本域认证服务器AS1构造消息M2
Figure FDA00031768705100000215
b7.本域认证服务器AS1对消息M2采用用户C的公钥KPc进行加密,并发送给用户C。
4.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤C包括:
c1.用户C接收来自本域认证服务器AS1发送的消息M2
C2.用户C采用其私钥KRc解密消息M2
C3.用户C根据解密信息中的随机数判断消息M2是否为重放;
C4.若不是重放,则用户C采用本域认证服务器AS1的公钥
Figure FDA00031768705100000216
验证签名信息
Figure FDA00031768705100000217
以确认票据
Figure FDA00031768705100000218
是否由TGS1签发;
c5.在验证票据
Figure FDA00031768705100000219
确由TGS1签发后,用户C构造身份验证码Auth1
Figure FDA00031768705100000220
Figure FDA00031768705100000221
其中,Random2为用户生成的另一个防止重放的随机数,IDc为用户C的用户号,
Figure FDA00031768705100000222
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
用户C采用其私钥KRc对Auth1进行签名,生成签名信息
Figure FDA0003176870510000031
c6.用户C构造消息M3
Figure FDA0003176870510000032
c7.采用域内票据许可服务器TSG1的公钥
Figure FDA0003176870510000033
对消息M3进行加密,并发送给域内票据许可服务器TGS1
5.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤d包括:
d1.域内票据许可服务器TGS1接收用户C发送的消息M3
d2.域内票据许可服务器TGS1采用其私钥
Figure FDA0003176870510000034
解密消息M3
d3.域内票据许可服务器TGS1采用用户C的公钥KPc验证签名信息
Figure FDA0003176870510000035
确认Auth1是否由用户C发出,并验证用户C的身份的正确性以及是否被篡改;
d4.若用户C的身份信息正确且未被篡改,则域内票据许可服务器TGS1构造消息Q3
Figure FDA0003176870510000036
其中,h()表示单向哈希函数,
Figure FDA0003176870510000037
为外域票据许可服务器号;
域内票据许可服务器TGS1采用其私钥
Figure FDA0003176870510000038
对Q3进行签名,生成签名信息
Figure FDA0003176870510000039
d5.域内票据许可服务器TGS1为用户构造访问外域票据许可服务器TGS2的票据
Figure FDA00031768705100000310
Figure FDA00031768705100000311
其中,
Figure FDA00031768705100000312
表示使用用户C和域内票据服务器TGS1的会话秘钥加密消息;
域内票据许可服务器TGS1采用其私钥
Figure FDA00031768705100000313
对票据
Figure FDA00031768705100000314
进行签名,生成签名信息
Figure FDA00031768705100000315
d6.域内票据许可服务器TGS1构造消息M4
Figure FDA00031768705100000316
d7.域内票据许可服务器TGS1采用用户C的公钥KPc对消息M4加密,并发送给用户C。
6.如权利要求5所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤d3中,所述域内票据许可服务器TGS1验证用户C的身份的正确性以及是否被篡改,具体包括:
域内票据许可服务器TGS1采用用户C的公钥KPc验证签名信息
Figure FDA00031768705100000317
确认Auth1是否由用户C发出;
域内票据许可服务器TGS1采用其私钥
Figure FDA0003176870510000041
解密
Figure FDA0003176870510000042
得到
Figure FDA0003176870510000043
并根据本域认证服务器AS1的公钥
Figure FDA0003176870510000044
验证签名信息
Figure FDA0003176870510000045
确认Q2是否由本域认证服务器AS1发出;
域内票据许可服务器TGS1从Q2获得
Figure FDA0003176870510000046
根据获得的
Figure FDA0003176870510000047
解密Auth1,得到IDc和Random2,根据解密得到的IDc与消息Q2中的IDc,确认票据是否为原始申请用户所拥有,确认用户C的身份的正确性以及是否被篡改。
7.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤e包括:
e1.用户C接收域内票据许可服务器TGS1发送的消息M4
e2.用户C采用其私钥KRc对解密消息M4
e3.用户C根据解密信息中的随机数判断消息M4是否为重放;
e4.若不是重放,则用户C采用域内票据许可服务器TGS1的公钥
Figure FDA0003176870510000048
验证
Figure FDA0003176870510000049
以确认票据
Figure FDA00031768705100000410
是否由TGS1签发;
在验证票据
Figure FDA00031768705100000411
确由TGSi签发后,采用
Figure FDA00031768705100000412
解密
Figure FDA00031768705100000413
得到参数Q3
Figure FDA00031768705100000414
e5.用户C构造非交互Bulletproofs认证的参数M0
e6.用户C构造消息M5
Figure FDA00031768705100000415
其中,IDRealm为用户所在域的域ID,IDs为用户需要访问的外域应用服务器号,
Figure FDA00031768705100000416
为外域票据许可服务器号,Random3为用户生成的另一个防止重放的随机数;
e7.用户C采用外域票据许可服务器TGS2的公钥
Figure FDA00031768705100000417
对消息M5进行加密,并发送给外域票据许可服务器TGS2
8.如权利要求7所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤e5中,所述用户C构造非交互Bulletproofs认证的参数M0
所述
Figure FDA00031768705100000418
其各个参数的具体生成过程包括:
e51.参数sL,sR是两个盲化因子,产生过程如下:
以参数v表示用户C私钥KRc所对应的整数,首先将v转化为二进制向量a,进而构造向量aL=a,aR=a-1,然后产生两个从aL、aR中盲化出来的盲化因子sL,sR
e52.参数y,z是生成的两个随机数,产生过程如下:
Figure FDA0003176870510000051
表示素数阶为p的循环群,
Figure FDA0003176870510000052
表示以p为模的整数环,
Figure FDA0003176870510000053
是在
Figure FDA0003176870510000054
上具有n维的向量空间,
Figure FDA0003176870510000055
表示
Figure FDA0003176870510000056
则:z是从
Figure FDA0003176870510000057
中的元素产生的随机数,y是使用单项哈希函数获得的随机数,表示为y=hash(v,z);
e53.参数B是Pedersen承诺中的生成元,参数
Figure FDA00031768705100000524
是B对应的盲化因子,由公式
Figure FDA0003176870510000058
Figure FDA0003176870510000059
生成;
e54.参数G和H是素数阶为p的循环群
Figure FDA00031768705100000510
和元素随机生成的生成元;
e55.参数t(x),δ(y,z)是Bulletproofs的证明参数,其中,
δ(y,z)=(z-z2)<1,yn>-z3<1,2n>
t(x)=t0+t1x+t2x2
其中,x为用于构造多项式t(x)的随机私钥,t0、t1、t2分别为多项式t(x)自变量前的系数;
e56.参数
Figure FDA00031768705100000511
是通过
Figure FDA00031768705100000512
获得的t(x)对应的正交盲化因子,其中
Figure FDA00031768705100000513
Figure FDA00031768705100000514
分别为v、t1、t2对应的盲化因子;
e57.参数V,T1,T2由Pedersen承诺得到:V=com(v)、T1=com(t1)、T2=com(t2);
e58.参数
Figure FDA00031768705100000523
是一个盲化因子,参数A为向量形式的Pedersen承诺,具体的获取方式如下:
基于向量的Pedersen承诺A=Com(aL,aR),承诺S=Com(sL,sR),参数
Figure FDA00031768705100000515
通过公式
Figure FDA00031768705100000516
获得,其中
Figure FDA00031768705100000517
为承诺A=Com(aL,aR)对应的盲化因子参数,
Figure FDA00031768705100000518
为承诺S=Com(sL,sR)对应的盲化因子参数。
9.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤f包括:
f1.外域票据许可服务器TGS2接收用户C发送的消息M5
f2.外域票据许可服务器TGS2采用其私钥
Figure FDA00031768705100000519
对解密消息M5
f3.外域票据许可服务器TGS2基于解密后的信息,采用非交互Bulletproofs认证方法,判断用户是否合法;
f4.若用户合法,则外域票据许可服务器TGS2构造消息Q4、构造访问外域应用服务器的票据Tickets、构造用户C和外域应用服务器S的会话秘钥Kc,s,其中,
Figure FDA00031768705100000520
Figure FDA00031768705100000521
然后采用外域票据许可服务器TGS2的私钥
Figure FDA00031768705100000522
对Q4进行签名,生成签名信息
Figure FDA0003176870510000061
并基于消息Q4和签名信息
Figure FDA0003176870510000062
构造访问外域应用服务器的票据Tickets
Figure FDA0003176870510000063
Figure FDA0003176870510000064
表示使用外域应用服务器S的公钥加密消息;
f5.外域票据许可服务器TGS2采用其私钥
Figure FDA0003176870510000065
为票据Tickets签名,生成签名信息
Figure FDA0003176870510000066
f6.外域票据许可服务器TGS2构造消息M6
Figure FDA0003176870510000067
f7.外域票据许可服务器TGS2采用用户C的公钥KPc对消息M6加密,并发送给用户C。
10.如权利要求9所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤f3中,所述采用非交互Bulletproofs认证方法,判断用户是否合法,具体包括:
外域票据许可服务器TGS2通过从用户C那里获得的参数消息M0,验证下列两个等式是否成立:
Figure FDA0003176870510000068
Figure FDA0003176870510000069
其中,
Figure FDA00031768705100000610
x是外域票据许可服务器TGS2用于验证等式的随机秘钥,承诺S=Com(sL,sR),P是外域票据许可服务器TGS2根据从用户C获得的参数进行计算后获得的结果;
若上述等式成立,则能够证明信息的合法性和正确性。
11.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤g包括:
g1.用户C接收外域票据许可服务器TGS2发送的消息M6
g2.用户C采用其私钥KRc对解密消息M6
g3.用户C根据解密信息中的随机数判断消息M6是否为重放;
g4.若不是重放,则用户C采用外域票据许可服务器TGS2的公钥
Figure FDA00031768705100000611
验证签名
Figure FDA00031768705100000612
以确认票据Tickets是否由TGS2签发;
g5.若票据Tickets正确,则用户C生成另一个防止重放的随机数Random4,并基于Random4和IDRealm构造则生成新的身份验证码Auth2
Figure FDA00031768705100000613
Figure FDA00031768705100000614
表示使用用户C和外域应用服务器S的会话秘钥Kc,s加密消息;
用户C采用其私钥KRc对Auth2进行签名,生成签名信息
Figure FDA0003176870510000071
g6.用户C构造消息M7
Figure FDA0003176870510000072
g7.用户C采用外域应用服务器S的公钥KPS对消息M7进行加密,并发送给服务器S。
12.如权利要求1所述的一种基于Bulletproofs的Kerberos跨域认证方法,其特征在于,步骤h包括:
h1.外域应用服务器S接收用户C发送的消息M7
h2.外域应用服务器S采用其私钥KRs解密消息M7
h3.外域应用服务器S采用其私钥KRs解密票据Tickets得到参数Q4
Figure FDA0003176870510000073
利用外域票据许可服务器TSG2的公钥
Figure FDA0003176870510000074
验证签名
Figure FDA0003176870510000075
以确认票据Tickets是否由TSG2签发;
h4.外域应用服务器S利用从外域票据许可服务器TGS2获得的会话密钥Kc,s解密Auth2,得到参数IDRealm、rQ3、Random4,判断该IDRealm
Figure FDA0003176870510000076
是否与解密Tickets所得到Q4中的IDRealm
Figure FDA0003176870510000077
一致,以确认票据是否为原始申请用户所持有,从而验证消息M7的正确性和合法性;
h5.验证通过,则外域应用服务器S构造消息M8
M8={Random4+1}
h6.外域应用服务器S采用用户C和服务器S之间的会话密钥Kc,s对消息M8进行加密,并将加密后的消息M8发送给用户C,作为双方相互鉴别的消息;
h7.用户C与外域应用服务器S建立正式通信。
CN202110835057.3A 2021-07-23 2021-07-23 一种基于Bulletproofs的Kerberos跨域认证方法 Active CN113468614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110835057.3A CN113468614B (zh) 2021-07-23 2021-07-23 一种基于Bulletproofs的Kerberos跨域认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110835057.3A CN113468614B (zh) 2021-07-23 2021-07-23 一种基于Bulletproofs的Kerberos跨域认证方法

Publications (2)

Publication Number Publication Date
CN113468614A true CN113468614A (zh) 2021-10-01
CN113468614B CN113468614B (zh) 2024-10-18

Family

ID=77882100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110835057.3A Active CN113468614B (zh) 2021-07-23 2021-07-23 一种基于Bulletproofs的Kerberos跨域认证方法

Country Status (1)

Country Link
CN (1) CN113468614B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114050932A (zh) * 2021-11-10 2022-02-15 安徽健坤通信股份有限公司 分布式系统的网络安全验证方法和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185316B1 (en) * 1997-11-12 2001-02-06 Unisys Corporation Self-authentication apparatus and method
WO2008020991A2 (en) * 2006-07-28 2008-02-21 Brown University Notarized federated identity management
US20100317420A1 (en) * 2003-02-05 2010-12-16 Hoffberg Steven M System and method
CN103780618A (zh) * 2014-01-22 2014-05-07 西南交通大学 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法
US20190372763A1 (en) * 2017-02-09 2019-12-05 Huawei International Pte. Ltd. System and method for computing private keys for self certified identity based signature schemes
CN111339509A (zh) * 2020-03-03 2020-06-26 李斌 一种基于侧链的区块链跨链身份认证方法
CN111539718A (zh) * 2020-01-19 2020-08-14 南京邮电大学 一种基于侧链的区块链跨链身份认证方法
CN112789841A (zh) * 2018-08-28 2021-05-11 思杰系统有限公司 在远程访问或基于云的网络环境中访问资源

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185316B1 (en) * 1997-11-12 2001-02-06 Unisys Corporation Self-authentication apparatus and method
US20100317420A1 (en) * 2003-02-05 2010-12-16 Hoffberg Steven M System and method
WO2008020991A2 (en) * 2006-07-28 2008-02-21 Brown University Notarized federated identity management
CN103780618A (zh) * 2014-01-22 2014-05-07 西南交通大学 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法
US20190372763A1 (en) * 2017-02-09 2019-12-05 Huawei International Pte. Ltd. System and method for computing private keys for self certified identity based signature schemes
CN112789841A (zh) * 2018-08-28 2021-05-11 思杰系统有限公司 在远程访问或基于云的网络环境中访问资源
CN111539718A (zh) * 2020-01-19 2020-08-14 南京邮电大学 一种基于侧链的区块链跨链身份认证方法
CN111339509A (zh) * 2020-03-03 2020-06-26 李斌 一种基于侧链的区块链跨链身份认证方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114050932A (zh) * 2021-11-10 2022-02-15 安徽健坤通信股份有限公司 分布式系统的网络安全验证方法和系统

Also Published As

Publication number Publication date
CN113468614B (zh) 2024-10-18

Similar Documents

Publication Publication Date Title
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
US20200013026A1 (en) Systems and methods for blockchain addresses and owner verification
KR100962399B1 (ko) 익명 공개 키 기반구조 제공 방법 및 이를 이용한 서비스제공 방법
US9021572B2 (en) Anonymous access to a service by means of aggregated certificates
US20220327530A1 (en) Digital signature generation using a cold wallet
CN106341232B (zh) 一种基于口令的匿名实体鉴别方法
US12120249B2 (en) Private key security in the cloud
CN113360943B (zh) 一种区块链隐私数据的保护方法及装置
CN105187405A (zh) 基于信誉的云计算身份管理方法
Paquin U-prove technology overview v1. 1
Xiong et al. Priam: Privacy preserving identity and access management scheme in cloud
Kurmi et al. A survey of zero-knowledge proof for authentication
Damgård et al. Stronger security and constructions of multi-designated verifier signatures
JP2004348709A (ja) コンテンツ利用者認証システム及び方法
Li et al. AvecVoting: Anonymous and verifiable E-voting with untrustworthy counters on blockchain
Takaragi et al. Secure revocation features in eKYC-privacy protection in central bank digital currency
CN113468614B (zh) 一种基于Bulletproofs的Kerberos跨域认证方法
CN117749369A (zh) 一种基于区块链和ipfs的安全遥感图像数据共享系统及方法
JP3513324B2 (ja) ディジタル署名処理方法
CN114978622A (zh) 一种基于区块链和零知识证明的匿名凭证验证方法及系统
Wei et al. A general compiler for password-authenticated group key exchange protocol in the standard model
Harn et al. An efficient group authentication for group communications
Tang et al. Identity‐Based Identification Scheme without Trusted Party against Concurrent Attacks
CN115860750B (zh) 一种电动汽车电力交易身份认证隐私保护方法
CN114005190B (zh) 用于课堂考勤系统的人脸识别方法

Legal Events

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