掌桥专利:专业的专利平台
掌桥专利
首页

一种云环境下的大规模虚拟节点验证方法

文献发布时间:2023-06-19 18:34:06


一种云环境下的大规模虚拟节点验证方法

技术领域

本发明属于网络节点领域,具体涉及一种云环境下的大规模虚拟节点验证方法。

背景技术

随着计算机技术及互联网的快速发展,云计算作为一种新兴的计算模式,已经被广泛的应用于各个领域。全球各IT企业纷纷制定和发布自己的云战略。云计算的进一步发展,给安全领域带来了新的冲击与挑战,大量的用户将其隐私数据存储在“云”中,一旦合法用户的身份被假冒,就会造成隐私数据的外泄,所以亟需提出一个安全可靠的身份认证方案来加强云计算环境的安全性。然而,在云计算环境下,如何对大规模的虚拟节点进行验证仍然面临着安全和效率方面的诸多问题。已有验证方法大多数是基于用户云服务提供商完全值得信任的假设,或者是基于云服务提供商完全是恶意的假设。基于第一种假设所设计的方法虽然效率很高但是会带来安全隐患,由于关键信息都存储在云服务提供商,从而在出现问题时,用户无法提取到证明云服务提供商作恶的证据。而基于第二种假设所设计的验证会使用全同态加密等密码技术,虽然安全性的问题能够解决,但是由于算法效率很低,并不适用于大规模的应用场景。

所以,开发一种新的适用于云环境下的大规模的虚拟节点验证方法是很有必要的。

发明内容

本发明克服现有技术的不足,提供一种云环境下的大规模虚拟节点验证方法,以解决上述技术问题。

本发明提供以下的技术方案:

一种云环境下的大规模虚拟节点验证方法,其包括如下步骤:

S101:建立证书的服务日志数据库;

S102:用户于系统上的应用程序注册账户;

S103:用户向CSP请求服务;

S104:CSP处理用户的请求;

S105:结合云计算的应用环境,提供密钥和密码管理服务。

优选的,所述步骤S101中,证书的公共日志的由CAP进行维护,所述CAP能够发布日志扩展证明,其中CAP的日志的组成如下:

db=[cert(user,pkuser),cert(CSP,pkCSP),...]

其中user表示用户,pkuser表示用户的公钥,cert(user,pkuser)表示用户user的证书;定义db′是db的扩展证明,db表示数据库日志,满足关系h(db)<h(db′),h(x)表示哈希函数;所有的日志构造一个证书数据库,证书数据库以Merkle树的方式进行管理。

优选的,所述步骤S102中,用户于系统客户端软件向CAP注册在CSP中拥有的新的或现有的虚拟节点地址;并创建加密密钥和公共密钥,使用CAP以加密形式存储。

更优的,所述使用CAP以加密形式存储包括,系统将用户的加密密钥与CAP以及日志hash值的当前快照一起存储在加密包中,用于验证日志操作的正确性,并防止CAP向用户发送他缓存信息的旧版本的回滚攻击。

优选的,所述步骤S103中,用户向CSP请求服务包括:

S103-1:在向CAP验证用户之前,用户的应用程序从CAP获取当前h(db′);

S103-2:应用程序检索其本地存储的h(dbs),其中dbs表示本地存储的一条日志;可选地,它请求证明数据库日志哈希值满足关系,既h(dbs)<h(db′),并验证扩展证明的正确性;

S103-3:用户请求并验证cert(user,pkuser)在db′中数据库日志哈希值满足关系;

S103-4:应用程序验证用户操作正确性,并从CAP获取用户名、日志哈希值、用户公钥、用户私钥信息;

S103-5:应用程序请求并验证证明验证日志哈希值满足关系,既h(dbs)<h(db)和h(db)<h(db′),如果满足关系,应用程序将其本地存储的h(dbs)替换为h(db′);

S103-6:应用程序在db′中找到CSP的公钥pkCSP,并请求验证CSP日志信息证明的正确性;

S103-7:应用程序用pkCSP为CSP加密消息并将其发送给CSP;

S103-8:应用程序对日志一致性进行随机检查。

优选的,所述步骤S104中,CSP应用程序检索它的h(dbs)、h(db)和h(db)版本,进行下列检查:

S104-1:检查是否满足h(dbs)<h(db)<h(db′);

S104-2:检查CSP和pkCSP的字段信息在db′中是否正确;

S104-3:从db′获取用户的公钥pkuser,并请求其证明的正确性;

S104-4:解密用户的消息并检查用户的签名;

如果上述步骤S104通过,则表示CSP同意用户的请求,为用户生成虚拟资源。

优选的,所述步骤S105中,密钥和密码的管理方案包括用户的密码是强随机的和使用设备密钥。

本发明的有益效果是:

1、本发明在充分考虑到云服务提供商是需要维护声誉的大型组织,从而不会不惜一切代价攻击他们的用户,并且云服务提供商也不会发起留下可验证证据的攻击的情况,提出一种云计算环境下适用于大规模虚拟节点的安全高效的验证方法。本发明中云服务提供商可以同时成为其用户的证书颁发机构、CA日志的维护者。

2、本发明通过使用证书日志数据库,实现证书透明性,从而云服务提供者不需要被用户信任。证书透明性确保服务提供商不能在不留下其作弊证据的情况下作弊。在本发明提供的方法中,对证书更新、撤销等操作的复杂度是O(log n),从而本发明提供的方法适用于大规模的应用场景。

3、本发明重新考虑了云环境下的安全假设,在充分考虑到云服务提供商是需要维护声誉的大型组织,从而不会不惜一切代价攻击他们的用户,并且云服务提供商也不会发起留下可验证证据的攻击的情况,是一种在云计算环境下适用于大规模虚拟节点的安全高效的验证方法。

附图说明

利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。

图1是本发明实施例基于云环境下的对大规模虚拟节点验证方法的流程示意图;

图2是本发明实施例提供的基于云环境下的对大规模虚拟节点验证方法的结构示意图。

具体实施方式

以下结合具体实施例对基于云环境下的对大规模虚拟节点验证方法作进一步的详细描述,这些实施例只用于比较和解释的目的,本发明不限定于这些实施例中。

实施

参见附图1-2,本本发明实施例中,某系统中有很多用户,本发明方法支持大规模场景的应用环境使用,一种云环境下的大规模虚拟节点验证方法,包括如下步骤:

S101:建立证书的服务日志数据库;

S102:用户于系统上的应用程序注册账户;

S103:用户向CSP请求服务;

S104:CSP处理用户的请求;

S105:结合云计算的应用环境,提供密钥和密码管理服务。

优选的,所述S101中,证书的公共日志的由CAP进行维护,所述CAP能够发布日志扩展证明,其中CAP的日志的组成如下:

db=[cert(user,pkuser),cert(CSP,pkCSP),...]

其中user表示用户,pkuser表示用户的公钥,cert(user,pkuser)表示用户user的证书;定义db′是db的扩展证明,db表示数据库日志,满足关系h(db)<h(db′),h(x)表示哈希函数;所有的日志构造一个证书数据库,证书数据库以Merkle树的方式进行管理。

优选的,所述S102中,用户于系统客户端软件向CAP注册在CSP中拥有的新的或现有的虚拟节点地址;并创建加密密钥和公共密钥,使用CAP以加密形式存储。

更优的,所述使用CAP以加密形式存储包括,系统将用户的加密密钥与CAP以及日志hash值的当前快照一起存储在加密包中,用于验证日志操作的正确性,并防止CAP向用户发送他缓存信息的旧版本的回滚攻击。

优选的,所述S103中,用户向CSP请求服务包括:

S103-1:在向CAP验证用户之前,用户的应用程序从CAP获取当前h(db′);

S103-2:应用程序检索其本地存储的h(dbs),其中dbs表示本地存储的一条日志;可选地,它请求证明数据库日志哈希值满足关系,既h(dbs)<h(db′),并验证扩展证明的正确性;

S103-3:用户请求并验证cert(user,pkuser)在db′中数据库日志哈希值满足关系;

S103-4:应用程序验证用户操作正确性,并从CAP获取用户名、日志哈希值、用户公钥、用户私钥信息;

S103-5:应用程序请求并验证证明验证日志哈希值满足关系,既h(dbs)<h(db)和h(db)<h(db′),如果满足关系,应用程序将其本地存储的h(dbs)替换为h(db′);

S103-6:应用程序在db′中找到CSP的公钥pkCSP,并请求验证CSP日志信息证明的正确性;

S103-7:应用程序用pkCSP为CSP加密消息并将其发送给CSP;

S103-8:应用程序对日志一致性进行随机检查。

优选的,所述S104中,CSP应用程序检索它的h(dbs)、h(db)和h(db)版本,进行下列检查:

S104-1:检查是否满足h(dbs)<h(db)<h(db′);

S104-2:检查CSP和pkCSP的字段信息在db′中是否正确;

S104-3:从db′获取用户的公钥pkuser,并请求其证明的正确性;

S104-4:解密用户的消息并检查用户的签名;

如果上述S104通过,则表示CSP同意用户的请求,为用户生成虚拟资源。

优选的,所述S105中,密钥和密码的管理方案包括用户的密码是强随机的和使用设备密钥

在一实施例中,如图1和图2所示的基于云环境下的对大规模虚拟节点验证方法的流程及结构图,首先建立证书日志服务系统,其中证书颁发机构颁发的证书的公共日志的由CAP进行维护。CAP能够发布日志扩展证明。CAP的日志由很多证书组成:

db=[cert(user,pkuser),cert(CSP,pkCSP),...]

其中pkuser表示用户的公钥,系统中可以有很多用户,本系统支持大规模场景的应用环境使用。另外,定义db′是db的扩展证明,满足关系h(db)<h(db′)。所有的日志构造成一个证书数据库,该数据库以Merkle树的方式进行管理。项目按时间顺序从左到右存储,证书是按时间顺序添加的,通过向右扩展树。证书的撤销是通过为条目添加一个新的密钥来完成。因此,仅当该条目没有后续项目时,该条目的密钥才被认为是当前的。通过利用Merkle树的特性,插入、撤销和扩展证明是O(log n)。这里n表示用户的数量。从而即使有很多用户使用虚拟节点时,本方法也是高效的。

假设用户已经下载了适当的应用程序,或者在他的客户端中安装了扩展程序。在注册时,用户的客户端软件向CAP注册他在CSP中拥有的新的或现有的虚拟节点地址;然后创建他的秘密和公共密钥,并使用CAP以加密形式存储它们。具体地:

S102-1:应用程序从CAP获取当前的h(db),并存储它。

S102-2:用户输入用户名,比如“user@example.com”,并选择一个新的密码secret。软件选择一个加密密钥k,并安全地存储在用户的设备上。(或者,为了避免在设备上存储k,身份验证密码secret和密钥k可以从用户选择的强密码中导出。)

S102-3:CAP为用户创建一个账户,用户名和密码同S102-2,即用户名为“user@example.com”,密码为secret。

S102-4:应用程序创建公钥对pkuser,skuser。

S102-5:应用程序使用CAP存储(user,pkuser,{h(db),skuser,...},k)。

S102-6:应用程序对日志一致性进行随机检查。

用户的应用程序将他的加密密钥与CAP以及日志hash值的当前快照一起存储在加密包中,用于验证日志操作的正确性,并防止CAP向用户发送他缓存信息的旧版本的回滚攻击。

随后向CSP请求服务。S103-1:在向CAP验证用户之前,用户的应用程序从CAP获取当前h(db′)。

S103-2:应用程序检索其本地存储的h(dbs)。可选地,它请求证明h(dbs)<h(db′),并验证扩展证明的正确性。(这种验证不是必需的,因为如果失败,那么以后的验证也会失败;但如果进行了验证,就会更早地检测到CAP的任何非法行为。)

S103-3:用户请求并验证cert(user,pkuser)在db′中是当前的证明。

S103-4:应用程序验证用户操作正确性,并从CAP获取(user,{h(db),pkuser,skuser,...},k)。

S103-5:应用程序请求并验证证明h(dbs)<h(db)和h(db)<h(db′)。应用程序将其本地存储的h(dbs)替换为h(db′)。

S103-6:应用程序在db′中找到CSP的公钥pkCSP,并请求验证证明的正确性。

S103-7:应用程序用pkCSP为CSP加密消息并将其发送给CSP。

S103-8:应用程序对日志一致性进行随机检查。

其中,S103-1步和第S103-2步确保CAP仍以仅追加方式维护日志。在第S103-3步中,用户的应用程序验证CAP是否正确维护了他的证书。S103-5确保本地存储的快照dbs不晚于存储在用户帐户中的db;并且帐户中存储的db优先于当前db′。这两项检查可以防止回滚攻击,以及基于CAP对日志维护不当的攻击。

随后CSP处理用户的请求。CSP应用程序检索它的h(dbs)、h(db)和h(db)版本,然后,进行下列检查。

S104-1:检查h(dbs)<h(db)<h(db′);

S104-2:检查CSP和pkCSP的字段信息在db′中是否正确;

S104-3:从db′获取用户的公钥pkuser,并请求其证明的正确性;

S104-4:解密用户的消息并检查用户的签名;

如果上述S104通过,则表示CSP同意用户的请求,为用户生成虚拟资源。

最后本发放提供两种密钥和密码管理方案的选择。

(1)用户的密码是强随机的。在这个选项中,用户的密码secret是一个足够随机的密码,并且不会向CSP公开。用户使用kdf(secret,1)向CSP进行身份验证以获得合适的密钥派生函数kdf,并使用k=kdf(secret,2)作为密钥钱包加密密钥。在这种情况下,密码必须是强随机的,以防止CSP(或其他任何人)执行猜测攻击以获得密钥k。

(2)设备密钥。在此选项中,密钥钱包加密密钥k存储在用户的设备上。密码不必是强随机的,因为CSP可以防止在线猜测攻击。

两种方法各有优势,强随机密码最灵活,因为用户可以从任何设备访问服务,而无需为其提供密钥钱包加密密钥k。然而,主要缺点是服务器可以尝试对secret进行离线猜测攻击以导出k。如果用户想要更改他们的密码,需要客户端应用程序只需要分别使用从旧密码和新密码派生的密钥解密和重新加密密钥钱包。如果用户丢失了密码,用户可以通过带外方式证明帐户的所有权,从而可以撤销她的公钥并重新初始化帐户。设备密钥选项更安全,但需要一种将密钥k迁移到新设备的方法,用户更改密码的请求通过常规方式处理;更改k的请求通过用旧k解密密钥包并用新k加密来处理。在密码丢失的情况下,可以使用通常的恢复机制。如果密钥k丢失,则用户将无法访问其历史数据,但可以使用密码知识来证明帐户的所有权;如上所述,这将允许用户撤销其公钥并重新初始化帐户。但是由于用户通常会在多个设备上拥有k,因此她不太可能完全丢失它。这两种选择对于任何云计算应用程序来说都是必不可少的,在这些应用程序中,用户拥有对云提供商保密的加密密钥,从而保证的验证的安全性。

本发明上述实施例,通过重新考虑云环境下的安全假设,在充分考虑到云服务提供商是需要维护声誉的大型组织,从而不会不惜一切代价攻击他们的用户,并且云服务提供商也不会发起留下可验证证据的攻击的情况,是一种在云计算环境下适用于大规模虚拟节点的安全高效的验证方法。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

相关技术
  • 一种验证交易的方法、一种节点及一种区块链系统
  • 一种云环境中防御侧信道攻击的虚拟机迁移方法及系统
  • 一种基于云环境的虚拟机安全迁移方法及装置
  • 云环境下的虚拟机负载评估系统、方法以及服务节点
  • 云环境下的虚拟机负载评估系统、方法以及服务节点
技术分类

06120115611243