CN108599936A - 一种OpenStack开源云用户的安全认证方法 - Google Patents

一种OpenStack开源云用户的安全认证方法 Download PDF

Info

Publication number
CN108599936A
CN108599936A CN201810360054.7A CN201810360054A CN108599936A CN 108599936 A CN108599936 A CN 108599936A CN 201810360054 A CN201810360054 A CN 201810360054A CN 108599936 A CN108599936 A CN 108599936A
Authority
CN
China
Prior art keywords
user
sign
certificate server
server
respon
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
Application number
CN201810360054.7A
Other languages
English (en)
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201810360054.7A priority Critical patent/CN108599936A/zh
Publication of CN108599936A publication Critical patent/CN108599936A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/321Cryptographic 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/3213Cryptographic 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

Abstract

本发明提出了一种OpenStack开源云用户的安全认证方法,用于解决现有技术中存在的认证成本高的技术问题,实现步骤为:认证服务器计算自己的公钥和私钥;用户计算自己的公钥和私钥;用户向认证服务器发送认证请求;认证服务器对用户的用户名和密码进行验证;认证服务器为用户颁发签名令牌;用户向资源服务器发送签名资源请求;资源服务器对签名令牌和签名资源请求合法性进行验证;资源服务器对用户的请求进行响应;用户对资源服务器发送的密文进行解密;用户对资源服务器响应的合法性进行验证;用户对随机数的合法性进行验证;资源服务器确认用户身份。本发明采用公钥算法对认证消息进行保密,且不依赖额外硬件,降低了成本。

Description

一种OpenStack开源云用户的安全认证方法
技术领域
本发明属于身份认证技术领域,涉及一种开源云用户的安全认证方法,具体涉及一种基于公钥的OpenStack开源云用户的安全认证方法。
背景技术
OpenStack是目前最火的开源云平台,由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是一个IaaS(Infrastructure as a Service)软件,在云计算中主要负责虚拟机硬件资源的调度与分配。OpenStack由一系列独立模块构成,例如模块有keystone(认证服务)、nova(计算服务)、cinder(块存储服务)、glance(镜像服务)和neutron(网络服务)等。其中keystone提供认证服务,负责对接入用户的身份进行验证并对用户授权。
云计算中IaaS层主要为用户提供虚拟机服务,当用户需要使用云资源时,需要向keystone发送认证请求,即俗称的登录系统,服务器会根据用户注册时授予用户的权限给用户颁发一个令牌,然后用户就可以使用这个令牌去请求对应的资源,对应的资源服务器可以通过令牌鉴别用户的身份和权限,从而提供相应的服务。
传统的OpenStack安全认证只提供认证流程,对于信息的保护,只建议在传输过程中使用TLS安全传输协议,除此之外未使用任何安全加密算法,一旦用户信息泄露或者令牌被非法获取,非法分子就能轻松获得用户的资源。针对这种情况,现有的改进方法是请求认证时使用特殊辅助硬件,该硬件用于保存用户的私钥以及数字证书,对用户的身份认证需要借助里面的证书和秘钥,如公布号为CN 106936760 A名称为“一种登录OpenStack云系统虚拟机的装置和方法”中,用户登录系统需要使用USBKey(一种USB接口的硬件设备,内置智能芯片或者单片机,具有一定的存储空间,可以存储用户的私钥以及数字证书),通过USBKey中保存的证书和秘钥来保证用户身份的合法性。该方法存在的不足之处在于,依赖硬件设备,增加了服务成本,而且用户还需要额外保护此硬件设备,避免丢失或者被盗,同时每次请求都需要使用此设备,导致用户使用不便。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种OpenStack开源云用户的安全认证方法,用于解决现有技术中存在的认证需要额外硬件设备导致认证成本高的技术问题。
本发明的技术思路是:通过对通信消息进行签名,以防止通信消息被非法分子篡改,同时资源服务器利用令牌中保存的用户公钥对一个随机数进行加密,如果资源请求者能解密此随机数,则能证明资源请求者身份的合法性,从而在不借助额外硬件设备的情况下完成用户身份认证。
根据上述技术思路,实现本发明目的采取的技术方案包含步骤如下:
(1)认证服务器计算自己的公钥PKs和私钥SKs
(1a)认证服务器根据素数m确定有限域GF(2m),并在GF(2m)上选择椭圆曲线E(a,b),其中a、b表示椭圆曲线的系数;
(1b)认证服务器选择椭圆曲线E(a,b)上的任意一点作为E(a,b)的基点P,并根据P的坐标计算P的素阶n;
(1c)认证服务器根据P和n,计算自己的公钥PKs和私钥SKs,并将E(a,b)、P、n和PKs对外公开;
(1)用户计算自己的公钥PKu和私钥SKu
用户根据P和n,计算自己的公钥PKu和私钥SKu
(3)用户向认证服务器发送认证请求信息:
用户将自己的用户名、密码、公钥PKu发送给认证服务器;
(4)认证服务器对用户的用户名和密码进行验证:
认证服务器在服务器数据库中查询是否存在与接收到的用户名和密码相同的用户,若是,执行步骤(5),否则认证失败;
(5)认证服务器为用户颁发签名令牌Tokensign
(5a)认证服务器在服务器数据库中通过用户名查询用户注册时分配给用户的标识符Uid和用户权限Ur,并通过Uid、Ur和PKu构造令牌Token={Uid,Ur,PKu};
(5b)认证服务器采用基点P、素阶n和认证服务器私钥SKs,对Token进行签名,得到签名令牌Tokensign,并将Tokensign发送给用户;
(6)用户向资源服务器发送签名资源请求Reqres
(6a)用户确定自己所需要的资源Res,并采用认证服务器私钥SKs、基点P和素阶n,通过认证服务器对Res进行签名,得到签名资源请求Ressign
(6b)用户选取随机数Numu,并采用Ressign、Numu和Tokensign构造资源请求Reqres={Numu,Ressign,Tokensign},再将Reqres发送给资源服务器,同时将Numu存入资源服务器数据库,并将Numu状态标记为未接收;
(7)资源服务器对Ressign和Tokensign合法性进行验证:
资源服务器采用认证服务器的公钥PKs、基点P和素阶n,验证Tokensign和Ressign的合法性,若Tokensign和Ressign两个均合法,执行步骤(8),否则认证失败;
(8)资源服务器对用户的身份进行验证:
(8a)资源服务器选取随机数Nums和Ks,并采用Nums、Ks和Numu构造资源响应Respon={Nums,Ks,Numu},同时将Nums存入资源服务器数据库,并将Nums状态标记为未接收;
(8b)资源服务器采用认证服务器的私钥SKs、基点P和素阶n,通过认证服务器对Respon进行签名,得到签名资源请求Responsign
(8c)资源服务器采用用户的公钥PKu、椭圆曲线E(a,b)、基点P和素阶n对Responsign进行加密,并将密文(C1,C2)发送给用户;
(9)用户对资源服务器发送的密文(C1,C2)进行解密:
用户采用自己的私钥SKu、椭圆曲线E(a,b)、基点P和素阶n对资源服务器发送的密文(C1,C2)进行解密,得到签名资源请求Responsign
(10)用户对Responsign的合法性进行验证:
用户采用认证服务器的公钥PKs、基点P和素阶n,对Responsign的合法性进行验证,若合法,则从Responsign中提取Nums、Numu和Ks,并执行步骤(11),否则认证失败;
(11)用户对Numu的合法性进行验证:
用户在本地数据库中查询Numu是否为用户发送给资源服务器且状态为未接收的随机数,若是,则将Nums发回资源服务器,同时在资源服务器数据库中将Numu状态标记为已接收,否则认证失败;
(12)资源服务器确认用户身份:
资源服务器在资源服务器数据库中查询Nums是否为资源服务器发送给用户且状态为未接收的随机数,若是,则用户为Tokensign的合法所有者,同时在用户本地数据库中将Nums的状态标记为已接收,否则认证失败。
本发明与现有技术相比,具有如下优点:
第一,在本发明中,利用公钥签名和加密算法来完成对用户的身份认证,不需要额外硬件设备的支持,降低了成本,而且,认证过程对所有认证消息进行签名,保证了消息不会被非法篡改或者伪造,同时,使用令牌进行资源请求时,资源服务器会利用令牌中的公钥加密一个随机数,并要求用户解密此随机数,从而保证了令牌不会被冒用或者重放,同样能保证系统的安全。
第二,在本发明中,因为使用公钥技术,所以资源服务器收到请求之后,可以自行对请求作验证,不需要再次向认证服务器请求认证,提高了认证效率。
附图说明
图1是本发明适用的安全认证系统的结构示意图;
图2是本发明的的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细描述:
参照图1,本发明适用的安全认证系统,包括认证服务器、用户和资源服务器,其中用户用于对认证服务器提出认证请求和对资源服务器提出资源请求,认证服务器用于对用户身份进行验证并给用户颁发令牌,资源服务器用于对用户令牌进行验证并提供资源。
参照图2,
一种OpenStack开源云用户的安全认证方法,包括如下步骤:
步骤1)认证服务器计算自己的公钥PKs和私钥SKs
步骤1a)认证服务器根据素数m确定有限域GF(2m),并在GF(2m)上选择椭圆曲线E(a,b),其中a、b表示椭圆曲线的系数;
例如素数m可以取m=191,则有限域为GF(2191),并在GF(2191)上选择椭圆曲线E(a,b),其中椭圆曲线的系数a、b可以取
a=(000000000000000000000000000000000000000000000000)h
b=(6DB729DC5E6294173DBDF669B9FCA0FECD2165B05D63834C)h;
步骤1b)认证服务器选择椭圆曲线E(a,b)上的任意一点作为E(a,b)的基点P,并根据P的坐标计算P的素阶n;
例如可以选择基坐标为(x,y)点P作为基点,其中x、y取
x=(358DF1EA9EBC2E422FBEC069DDE73D2C25597CCCD2A3E244)h
y=(5DDD4506014CA3E606076E2B D7521643F6B2C805BE0544C2)h
并计算出n=(4000000000000000000000009CF2D6E3901DAC4C32EEC65D)h;
步骤1c)认证服务器根据P和n,计算自己的公钥PKs和私钥SKs,并将E(a,b)、P、n和PKs发送给用户以及资源服务器:
步骤1c1)认证服务器在1到-1之间随机选取一个整数作为自己私钥SKs
步骤1c2)认证服务器计算SKs·P,并将SKs·P作为自己的公钥PKs
步骤1c3)认证服务器对外公开E(a,b)、P、n和PKs
步骤2)用户计算自己的公钥PKu和私钥SKu
步骤2a)用户在1到n-1之间随机选取一个整数作为自己私钥SKu
步骤2b)用户计算SKu·P,并将SKu·P作为自己的公钥PKu
步骤3)用户向认证服务器发送认证请求信息:
用户将自己的用户名、密码、公钥PKu发送给认证服务器;
步骤4)认证服务器对用户的用户名和密码进行验证:
认证服务器在服务器数据库中查询是否存在与接收到的用户名和密码相同的用户,若是,执行步骤(5),否则认证失败;
用户在注册时,认证服务器会将用户名、密码和用户权限等相关信息存储在认证服务器数据库中;
步骤5)认证服务器为用户颁发签名令牌Tokensign
步骤5a)认证服务器在服务器数据库中通过用户名查询用户注册时分配给用户的标识符Uid和用户权限Ur,并通过Uid、Ur和PKu构造令牌Token={Uid,Ur,PKu};
其中标识符用来唯一确定一个用户,用户权限限定了用户能请求的资源,令牌以字典的形式生成;
步骤5b)认证服务器采用基点P、素阶n和认证服务器私钥SKs,对Token进行签名,得到签名令牌Tokensign,并将Tokensign发送给用户:
步骤5b1)认证服务器在1到n-1之间随机选取一个整数k1,并计算k1·P;
步骤5b2)认证服务器令k1·P的横坐标为x1,纵坐标为y1,并计算r1=h(Token)+x1modn,其中h为Hash函数;
Hash采用ms3算法;
步骤5b3)认证服务器判断r1+SKs=0modn是否成立,若是,执行步骤(5b1),否则执行步骤5b4);
步骤5b4)认证服务器计算s1=(r1+SKs)-1(k1-SKs·r1)modn,并判断s1=0是否成立,若是,执行步骤5b1),否则将Token、r1和s1作为Token的签名令牌Tokensign:Tokensign=(Token,r1,s1);
步骤6)用户向资源服务器发送签名资源请求Reqres
步骤6a)用户确定自己所需要的资源Res,并采用认证服务器私钥SKs、基点P和素阶n,通过认证服务器对Res进行签名,得到签名资源请求Ressign
步骤6a1)认证服务器在1到n-1之间随机选取一个整数k2,并计算k2·P;
步骤6a2)认证服务器令k2·P的横坐标为x2,纵坐标为y2,并计算r2=h(Res)+x2modn,其中h为Hash函数;
Hash采用ms3算法;
步骤6a3)认证服务器判断r2+SKs=0modn是否成立,若是,执行步骤6a1),否则执行步骤6a4);
步骤6a4)认证服务器计算s2=(r2+SKs)-1(k2-SKs·r2)modn,并判断s2=0是否成立,若是,执行步骤6a1),否则将Res、r2和s2作为Res的签名资源请求Ressign:Ressign=(Res,r2,s2);
步骤6b)用户选取随机数Numu,并采用Ressign、Numu和Tokensign构造资源请求Reqres={Numu,Ressign,Tokensign},再将Reqres发送给资源服务器,同时将Numu存入资源服务器数据库,并将Numu状态标记为未接收;
Numu可以使用当前时间戳作为随机数种子生成;
步骤7)资源服务器对Ressign和Tokensign合法性进行验证:
步骤7a)资源服务器分别验证r1、s1、r2和s2是否是1到n-1之间的整数,若是,执行步骤7b),否则认证失败;
步骤7b)资源服务器计算e1=h(Token)、e2=h(Res)、X1=r1·s1·P+(r1+s1)·PKs和X2=r2·s2·P+(r2+s2)·PKs
步骤7c)资源服务器令X1的横坐标为x1,纵坐标为y1,令X2的横坐标为x2,纵坐标为y2,并判断e1=r1-x1(modn)和e2=r2-x2(modn)是否成立,若均成立,则执行步骤8),认证失败;
步骤8)资源服务器对用户的身份进行验证:
步骤8a)资源服务器选取随机数Nums和Ks,并采用Nums、Ks和Numu构造资源响应Respon={Nums,Ks,Numu},同时将Nums存入资源服务器数据库,并将Nums状态标记为未接收;
其中Nums可以使用当前时间戳作为随机数种子生成,Ks为64位的二进制随机数,用于后续通信对称秘钥;
步骤8b)资源服务器采用认证服务器的私钥SKs、基点P和素阶n,通过认证服务器对Respon进行签名,得到签名资源请求Responsign
步骤8b1)认证服务器在1到n-1之间随机选取一个整数k3,并计算k3·P;;
步骤8b2)认证服务器令k3·P的横坐标为x3,纵坐标为y3,并计算r3=h(Respon)+x3modn,其中h为Hash函数;
其中Hash采用ms3算法;
步骤8b3)认证服务器判断r3+SKs=0modn是否成立,若是,执行步骤8b1),否则执行步骤8b4);
步骤8b4)认证服务器计算s3=(r3+SKs)-1(k3-SKs·r3)modn,并判断s3=0是否成立,若是,执行步骤8b1),否则将Respon、r3和s3作为Respon的签名资源响应Responsign:Responsign=(Respon,r3,s3);
步骤8c)资源服务器采用用户的公钥PKu、椭圆曲线E(a,b)、基点P和素阶n对Responsign进行加密,并将密文(C1,C2)发送给用户:
步骤8c1)资源服务器将Responsign表示为椭圆曲线E(a,b)上的点M;
首先将消息编码为二进制串,然后就可以将此二进制串映射到椭圆曲线上;
步骤8c2)资源服务器选择1到n-1之间的随机数k,并计算C1=k·P和C2=M+k·PKu,得到密文(C1,C2);
步骤9)用户对资源服务器发送的密文(C1,C2)进行解密:
用户采用自己的私钥SKu、椭圆曲线E(a,b)、基点P和素阶n对资源服务器发送的密文(C1,C2)进行解密,得到签名资源请求Responsign,其中解密公式为:
Re sponsign=C2-SKu·C1
其中SKu为用户的私钥;
步骤10)用户对Responsign的合法性进行验证:
步骤10a)用户验证Responsign中的r3和s3是否是1到n-1之间的整数,若是则执行步骤10b),否则认证失败;
步骤10b)用户计算e3=h(Respon)和X3=r3·s3·P+(r3+s3)·PKs
步骤10c)用户令X3的横坐标为x3,X3的纵坐标为y3
步骤10d)用户判断e3=r3-x3(modn)是否成立,若成立则执行步骤10e),否则认证失败;
步骤10e)用户从Responsign中提取Nums、Numu和Ks
步骤11)用户对Numu的合法性进行验证:
用户在本地数据库中查询Numu是否为用户发送给资源服务器且状态为未接收的随机数,若是,则将Nums发回资源服务器,同时在用户本地数据库中将Numu状态标记为已接收,否则认证失败;
步骤12)资源服务器确认用户身份:
资源服务器在资源服务器数据库中查询Nums是否为资源服务器发送给用户且状态为未接收的随机数,若是,则用户为Tokensign的合法所有者,同时在用户本地数据库中将Nums的状态标记为已接收,否则认证失败。

Claims (10)

1.一种OpenStack开源云用户的安全认证方法,其特征在于包括如下步骤:
(1)认证服务器计算自己的公钥PKs和私钥SKs
(1a)认证服务器根据素数m确定有限域GF(2m),并在GF(2m)上选择椭圆曲线E(a,b),其中a、b表示椭圆曲线的系数;
(1b)认证服务器选择椭圆曲线E(a,b)上的任意一点作为E(a,b)的基点P,并根据P的坐标计算P的素阶n;
(1c)认证服务器根据P和n,计算自己的公钥PKs和私钥SKs,并将E(a,b)、P、n和PKs对外公开;
(2)用户计算自己的公钥PKu和私钥SKu
用户根据P和n,计算自己的公钥PKu和私钥SKu
(3)用户向认证服务器发送认证请求信息:
用户将自己的用户名、密码、公钥PKu发送给认证服务器;
(4)认证服务器对用户的用户名和密码进行验证:
认证服务器在服务器数据库中查询是否存在与接收到的用户名和密码相同的用户,若是,执行步骤(5),否则认证失败;
(5)认证服务器为用户颁发签名令牌Tokensign
(5a)认证服务器在服务器数据库中通过用户名查询用户注册时分配给用户的标识符Uid和用户权限Ur,并通过Uid、Ur和PKu构造令牌Token={Uid,Ur,PKu};
(5b)认证服务器采用基点P、素阶n和认证服务器私钥SKs,对Token进行签名,得到签名令牌Tokensign,并将Tokensign发送给用户;
(6)用户向资源服务器发送签名资源请求Reqres
(6a)用户确定自己所需要的资源Res,并采用认证服务器私钥SKs、基点P和素阶n,通过认证服务器对Res进行签名,得到签名资源请求Ressign
(6b)用户选取随机数Numu,并采用Ressign、Numu和Tokensign构造资源请求Reqres={Numu,Ressign,Tokensign},再将Reqres发送给资源服务器,同时将Numu存入资源服务器数据库,并将Numu状态标记为未接收;
(7)资源服务器对Ressign和Tokensign合法性进行验证:
资源服务器采用认证服务器的公钥PKs、基点P和素阶n,验证Tokensign和Ressign的合法性,若Tokensign和Ressign两个均合法,执行步骤(8),否则认证失败;
(8)资源服务器对用户的请求进行响应:
(8a)资源服务器选取随机数Nums和Ks,并采用Nums、Ks和Numu构造资源响应Respon={Nums,Ks,Numu},同时将Nums存入资源服务器数据库,并将Nums状态标记为未接收;
(8b)资源服务器采用认证服务器的私钥SKs、基点P和素阶n,通过认证服务器对Respon进行签名,得到签名资源请求Responsign
(8c)资源服务器采用用户的公钥PKu、椭圆曲线E(a,b)、基点P和素阶n对Responsign进行加密,并将密文(C1,C2)发送给用户;
(9)用户对资源服务器发送的密文(C1,C2)进行解密:
用户采用自己的私钥SKu、椭圆曲线E(a,b)、基点P和素阶n对资源服务器发送的密文(C1,C2)进行解密,得到签名资源请求Responsign
(10)用户对Responsign的合法性进行验证:
用户采用认证服务器的公钥PKs、基点P和素阶n,对Responsign的合法性进行验证,若合法,则从Responsign中提取Nums、Numu和Ks,并执行步骤(11),否则认证失败;
(11)用户对Numu的合法性进行验证:
用户在本地数据库中查询Numu是否为用户发送给资源服务器且状态为未接收的随机数,若是,则将Nums发回资源服务器,同时在用户本地数据库中将Numu状态标记为已接收,否则认证失败;
(12)资源服务器确认用户身份:
资源服务器在资源服务器数据库中查询Nums是否为资源服务器发送给用户且状态为未接收的随机数,若是,则用户为Tokensign的合法所有者,同时在资源服务器数据库中将Nums的状态标记为已接收,否则认证失败。
2.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(1c)中所述的认证服务器根据P和n,计算自己的公钥PKs和私钥SKs,实现步骤为:
(1c1)认证服务器在1到n-1之间随机选取一个整数作为自己私钥SKs
(1c2)认证服务器计算SKs·P,并将SKs·P作为自己的公钥PKs
3.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(2)中所述的用户根据P和n,计算自己的公钥PKu和私钥SKu,实现步骤为:
(2a)用户在1到n-1之间随机选取一个整数作为自己私钥SKu
(2b)用户计算SKu·P,并将SKu·P作为自己的公钥PKu
4.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(5b)中所述的对Token进行签名,实现步骤为:
(5b1)认证服务器在1到n-1之间随机选取一个整数k1,并计算k1·P;
(5b2)认证服务器令k1·P的横坐标为x1,纵坐标为y1,并计算r1=h(Token)+x1mod n,其中h为Hash函数;
(5b3)认证服务器判断r1+SKs=0modn是否成立,若是,执行步骤(5b1),否则执行步骤(5b4);
(5b4)认证服务器计算s1=(r1+SKs)-1(k1-SKs·r1)modn,并判断s1=0是否成立,若是,执行步骤(5b1),否则将Token、r1和s1作为Token的签名令牌Tokensign:Tokensign=(Token,r1,s1)。
5.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(6a)中所述的对Res进行签名,实现步骤为:
(6a1)认证服务器在1到n-1之间随机选取一个整数k2,并计算k2·P;
(6a2)认证服务器令k2·P的横坐标为x2,纵坐标为y2,并计算r2=h(Res)+x2mod n,其中h为Hash函数;
(6a3)认证服务器判断r2+SKs=0mod n是否成立,若是,执行步骤(6a1),否则执行步骤(6a4);
(6a4)认证服务器计算s2=(r2+SKs)-1(k2-SKs·r2)modn,并判断s2=0是否成立,若是,执行步骤(6a1),否则将Res、r2和s2作为Res的签名资源请求Ressign:Ressign=(Res,r2,s2)。
6.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(7)中所述的资源服务器采用认证服务器的公钥PKs、基点P和素阶n,验证Tokensign和Ressign的合法性,实现步骤为:
(7a)资源服务器分别验证r1、s1、r2和s2是否是1到n-1之间的整数,若是,执行步骤(7b),否则Tokensign和Ressign为非法;
(7b)资源服务器计算e1=h(Token)、e2=h(Res)、X1=r1·s1·P+(r1+s1)·PKs和X2=r2·s2·P+(r2+s2)·PKs
(7c)资源服务器令X1的横坐标为x1,纵坐标为y1,令X2的横坐标为x2,纵坐标为y2,并判断e1=r1-x1(modn)和e2=r2-x2(modn)是否成立,若均成立,则Tokensign和Ressign合法,否则Tokensign和Ressign非法。
7.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(8b)中所述对Respon进行签名,实现步骤为:
(8b1)认证服务器在1到n-1之间随机选取一个整数k3,并计算k3·P;;
(8b2)认证服务器令k3·P的横坐标为x3,纵坐标为y3,并计算r3=h(Respon)+x3modn,其中h为Hash函数;
(8b3)认证服务器判断r3+SKs=0modn是否成立,若是,执行步骤(8b1),否则执行步骤(8b4);
(8b4)认证服务器计算s3=(r3+SKs)-1(k3-SKs·r3)mod n,并判断s3=0是否成立,若是,执行步骤(8b1),否则将Respon、r3和s3作为Respon的签名资源响应Responsign:Responsign=(Respon,r3,s3)。
8.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(8c)中所述的对Responsign进行加密,实现步骤为:
(8c1)资源服务器将Responsign表示为椭圆曲线E(a,b)上的点M;
(8c2)资源服务器选择1到n-1之间的随机数k,并计算C1=k·P和C2=M+k·PKu,得到密文(C1,C2)。
9.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(9)中所述的对密文(C1,C2)进行解密,得到签名资源请求Responsign,计算公式为:
Responsign=C2-SKu·C1
其中SKu为用户的私钥。
10.根据权利要求1所述的一种OpenStack开源云用户的安全认证方法,其特征在于,步骤(10)中所述的对Responsign的合法性进行验证,实现步骤为:
(10a)用户验证Responsign中的r3和s3是否是1到n-1之间的整数,若是则执行步骤(10b),否则Responsign非法;
(10b)用户计算e3=h(Respon)和X3=r3·s3·P+(r3+s3)·PKs
(10c)用户令X3的横坐标为x3,X3的纵坐标为y3
(10d)用户判断e3=r3-x3(mod n)是否成立,若成立则Responsign合法,否则Responsign非法。
CN201810360054.7A 2018-04-20 2018-04-20 一种OpenStack开源云用户的安全认证方法 Pending CN108599936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810360054.7A CN108599936A (zh) 2018-04-20 2018-04-20 一种OpenStack开源云用户的安全认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810360054.7A CN108599936A (zh) 2018-04-20 2018-04-20 一种OpenStack开源云用户的安全认证方法

Publications (1)

Publication Number Publication Date
CN108599936A true CN108599936A (zh) 2018-09-28

Family

ID=63614257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810360054.7A Pending CN108599936A (zh) 2018-04-20 2018-04-20 一种OpenStack开源云用户的安全认证方法

Country Status (1)

Country Link
CN (1) CN108599936A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020207233A1 (zh) * 2019-04-11 2020-10-15 深圳前海微众银行股份有限公司 一种区块链的权限控制方法及装置
WO2022121461A1 (zh) * 2020-12-10 2022-06-16 苏州浪潮智能科技有限公司 一种云平台资源访问控制的令牌构造方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016307A1 (en) * 2009-07-14 2011-01-20 Killian Thomas J Authorization, authentication and accounting protocols in multicast content distribution networks
CN102984127A (zh) * 2012-11-05 2013-03-20 武汉大学 一种以用户为中心的移动互联网身份管理及认证方法
CN103491540A (zh) * 2013-09-18 2014-01-01 东北大学 一种基于身份凭证的无线局域网双向接入认证系统及方法
CN103973451A (zh) * 2014-05-05 2014-08-06 西南交通大学 一种用于分布式网络系统的跨信任域认证方法
US20150134965A1 (en) * 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
CN106375308A (zh) * 2016-08-31 2017-02-01 上海宽惠网络科技有限公司 一种面向混合云的跨云用户认证系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110016307A1 (en) * 2009-07-14 2011-01-20 Killian Thomas J Authorization, authentication and accounting protocols in multicast content distribution networks
US20150134965A1 (en) * 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
CN102984127A (zh) * 2012-11-05 2013-03-20 武汉大学 一种以用户为中心的移动互联网身份管理及认证方法
CN103491540A (zh) * 2013-09-18 2014-01-01 东北大学 一种基于身份凭证的无线局域网双向接入认证系统及方法
CN103973451A (zh) * 2014-05-05 2014-08-06 西南交通大学 一种用于分布式网络系统的跨信任域认证方法
CN106375308A (zh) * 2016-08-31 2017-02-01 上海宽惠网络科技有限公司 一种面向混合云的跨云用户认证系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CLAUBER CASSIANO: "《Security analysis of the OpenID Connect protocol integration with an Openstack cloud using an external IdP》", 《2016 XLII LATIN AMERICAN COMPUTING CONFERENCE(CLEI)》 *
KONSTANTIN BORISENKO ET AL.: "《Detecting the Origin of DDoS Attacks in OpenStack Cloud Platform Using Data Mining Techniques》", 《INTERNET OF THINGS, SMART SPACES, AND NEXT GENERATION NETWORKS AND SYSTEMS》 *
吴玉宁等: "《OpenStack身份认证安全性分析与改进》", 《长春理工大学学报(自然科学版)》 *
姚旭等: "《基于ECDLP的有身份认证的ElGamal密码体制》", 《计算机工程与设计》 *
张明武等: "《隐私保护的推理机策略加密及应用》", 《计算机学报》 *
董乙平: "《基于Openstack的开源云平台的安全认证技术及其实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020207233A1 (zh) * 2019-04-11 2020-10-15 深圳前海微众银行股份有限公司 一种区块链的权限控制方法及装置
WO2022121461A1 (zh) * 2020-12-10 2022-06-16 苏州浪潮智能科技有限公司 一种云平台资源访问控制的令牌构造方法、装置及设备

Similar Documents

Publication Publication Date Title
CN106797311B (zh) 用于安全密码生成的系统、方法和存储介质
TWI497336B (zh) 用於資料安全之裝置及電腦程式
CN106161359B (zh) 认证用户的方法及装置、注册可穿戴设备的方法及装置
US9160732B2 (en) System and methods for online authentication
CN101189827B (zh) 综合认证和管理服务提供者、终端和用户身份模块的方法以及使用该方法的系统和终端
CN110473318B (zh) 解锁方法、实现解锁的设备及计算机可读介质
CN109309565A (zh) 一种安全认证的方法及装置
CN102271042B (zh) 数字证书认证方法、系统、USB Key设备和服务器
CN100512201C (zh) 用于处理分组业务的接入-请求消息的方法
KR101753859B1 (ko) 서버 및 이에 의한 스마트홈 환경의 관리 방법, 스마트홈 환경의 가입 방법 및 스마트 기기와의 통신 세션 연결 방법
US20100268942A1 (en) Systems and Methods for Using Cryptographic Keys
JP2019526993A5 (zh)
CN103701919A (zh) 远程登录方法与系统
CN110401615A (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
CN109905877B (zh) 通信网络系统的消息验证方法、通信方法和通信网络系统
CN101262342A (zh) 分布式授权与验证方法、装置及系统
CN113067823B (zh) 邮件用户身份认证和密钥分发方法、系统、设备及介质
CN112351037B (zh) 用于安全通信的信息处理方法及装置
CN105721153A (zh) 基于认证信息的密钥交换系统及方法
CN112671720A (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
CN110177001A (zh) 一种基于软证书的nfc圈存方法、系统及存储介质
US20190007218A1 (en) Second dynamic authentication of an electronic signature using a secure hardware module
Feiri et al. Efficient and secure storage of private keys for pseudonymous vehicular communication
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN114726536A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180928

WD01 Invention patent application deemed withdrawn after publication