高可靠云平台服务提供方法与流程

文档序号:15594478发布日期:2018-10-02 19:20阅读:244来源:国知局

本发明涉及云计算,特别涉及一种高可靠云平台服务提供方法。



背景技术:

混合云通过计算机网络与公有终端和私有终端节点相连。管理节点及所存储的数据各自分布在不同的节点上,为多个终端提供文件的存储、读写、删除等服务。目前的混合云架构使用单一的命名节点来管理整个混合云集群的命名资源会使系统控制逻辑比较简单、方便管理,但是也会导致可靠性和安全性方面的缺陷。传统混合云假定了云平台总是处于可信的环境中并由可信终端使用。但非法终端可以冒充某个可信终端访问该终端在混合云中的数据。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种高可靠云平台服务提供方法,包括:

终端将自己的id即uid发送给认证服务器,认证服务器通过查询本地存储池来检索是否已存储该终端uid;

若该终端已经注册,认证服务器生成一个数字证书cte1,该数字证书作为终端和认证服务器之间的数字证书;

认证服务器将生成的cte1进行复制,并从本地存储池中检索出终端的指纹信息和自己的授权私钥,使用终端的指纹信息加密cte1,用自己的授权私钥加密包含cte1和终端uid的包;

然后认证服务器将两个分别被终端指纹信息和自己的授权私钥加密的信息发送回终端,表示为euser_fp(cte1)和eas_fp(cte1+uid);

终端收到认证服务器返回的信息后,使用终端自己的指纹信息解密出cte1,然后用cte1加密uid和请求的业务id生成ecte1(uid+请求的业务id),连同eas_fp(cte1+uid)一起发送给认证服务器;

认证服务器使用自己的授权私钥解密eas_fp(cte1+uid)得到cte1和uid,然后再使用cte1解密ecte1(uid+请求的业务id)得到uid和请求的业务id,对比两次得到的uid是否相同,若相同则完成了认证服务器对终端的认证,并给该终端授予其对业务所属执行虚拟机的访问权限,

本发明相比现有技术,具有以下优点:

本发明提出了一种高可靠云平台服务提供方法,通过对终端的业务请求进行加密,实现了混合云中对业务访问的安全验证,提升了混合云的数据安全性。

附图说明

图1是根据本发明实施例的高可靠云平台服务提供方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种高可靠云平台服务提供方法。图1是根据本发明实施例的高可靠云平台服务提供方法流程图。本发明的方法包括以下步骤:

1.接收终端id信息,判断终端是否为注册终端,若是,根据所述终端id信息,生成第一数字证书,从本地存储池中检索终端指纹信息和认证服务器授权私钥,根据所述终端指纹信息加密所述第一数字证书,获得第一密文,根据所述认证服务器授权私钥加密所述第一数字证书和该终端id信息,获得第二密文。

具体的,终端将自己的id即uid发送给认证服务器,认证服务器通过查询本地存储池来检索是否已存储该终端uid。若该终端已经注册,认证服务器生成一个数字证书cte1,该数字证书作为终端和认证服务器之间的数字证书。若该终端未注册,则认证服务器丢弃该请求报文。

认证服务器将生成的cte1进行复制,并从本地存储池中检索出终端的指纹信息和自己的授权私钥,使用终端的指纹信息加密cte1,用自己的授权私钥加密包含cte1和终端uid的包。然后认证服务器将两个分别被终端指纹信息和自己的授权私钥加密的信息发送回终端,该信息可表示为euser_fp(cte1)和eas_fp(cte1+uid)。

2.将所述第一密文和第二密文发送给终端,以接收所述终端返回的所述第二密文和通过所述第一数字证书加密的第三密文,所述第三密文中包含待验证的终端id信息和请求的业务id。

具体的,终端收到认证服务器返回的信息后,使用终端自己的指纹信息解密出cte1,然后用cte1加密uid和请求的业务id生成ecte1(uid+请求的业务id),连同eas_fp(cte1+uid)一起发送给认证服务器。

3.根据第一数字证书解密所述第三密文,获得所述待验证的终端id信息,根据所述终端id信息和所述待验证的终端id信息的一致性,判断获知该终端具有业务执行虚拟机的访问权。

具体的,认证服务器使用自己的授权私钥解密eas_fp(cte1+uid)得到cte1和uid,然后再使用cte1解密ecte1(uid+请求的业务id)得到uid和请求的业务id,对比两次得到的uid是否相同,若相同则完成了认证服务器对终端的认证,并给该终端授予其对业务所属执行虚拟机的访问权限。

4.从本地存储池中检索终端的权限列表信息,生成第二数字证书,根据所述终端指纹信息加密第二数字证书,获得第四密文,根据目标虚拟机集群标识信息加密第二数字证书和终端id信息,生成第五密文;并将所述第四密文和所述第五密文发送给终端。

具体的,认证服务器查找终端数据库并提取出该终端的权限列表,判断是否其对该虚拟机集群有访问权限,若没有则虚拟机集群系统暂停对该终端的服务。若有则认证服务器再次生成一个cte2并对其复制,使用该终端的指纹信息加密其中一个cte2和业务执行虚拟机地址,使用所要访问的业务执行虚拟机的标识加密另一个cte2和uid,然后将euser_fp(cte2+虚拟机集群地址)和evm_fp(cte2+uid)一并发送给终端。

所述euser_fp,eas_fp,ecte1,evm_fp分别为使用终端指纹信息、认证服务器授权私钥、第一数字证书、业务执行虚拟机的标识为密钥的加密函数。

通过此方法,实现了在混合云中的认证服务器中的终端身份认证以及对终端访问权限的加密分发,提升了混合云的数据安全性。

在上述实施例的基础上,还包括:通过业务id信息,将所述请求业务id中单个字符转换为对应的数字,根据所述对应的数字,计算虚拟机集群标识。

具体的,认证服务器受到终端请求的业务id后,解析所请求的业务id以判定业务所属的虚拟机集群,判断方法是:认证服务器逐个将业务id中的单个字符转换成对应的数字,求和所有对应的数字,并将求和结果除以虚拟机集群总数,得到的取余结果为文件所属虚拟机集群的标识,该虚拟机集群的标识即为业务执行虚拟机的id。

本发明的虚拟机集群系统中,将业务的路径信息务数据位置信息分开存储,并进行元数据的分级管理。

路径信息包括业务id、业务的完整路径、业务的访问权限。业务数据包括业务数据位置信息,其记录的是业务数据与虚拟机的映射关系。对元数据路径与业务数据进行不同策略的管理。

本系统将业务的路径和业务数据分开存储,将业务所在路径进行散列计算后,将该结果代入负载均衡函数得到该业务路径存储的业务执行虚拟机的id。然后根据当前虚拟机集群的负载情况为业务数据位置信息分配一个合适的执行虚拟机的id。

其中,将路径有效地分布到各业务执行虚拟机中,首先将业务所在路径path进行散列计算,得到一个散列结果,如下式:

result=hash(path)

再将得到的结果代入负载均衡函数f,得到该业务路径存储的业务执行虚拟机的id,如下式:

id=f(result)

通过负载均衡函数的映射就可把虚拟机集群系统的路径数据均匀的分布到各个虚拟机集群的控制节点中。

在上述实施例的基础上,所述方法还包括终端注册步骤,终端与认证服务器相连,注册终端id信息,终端指纹信息和权限列表信息;其中,所述终端指纹信息通过终端口令在终端进行散列运算获得。

具体的,终端连接认证服务器注册自己的uid,口令,业务角色域,认证服务器将终端的注册信息存入本地存储池中。将口令在本地进行散列运算得到一个散列值,该散列值就是认证服务器验证终端口令的指纹信息。业务角色域是终端注册时申请加入的域,加入成功后认证服务器会为其分配一个角色,终端的访问权限受到域、角色、终端三个访问控制信息的共同限制。

终端收到信息后使用其指纹信息解密euser_fp(cte2+虚拟机集群地址)得到cte2和虚拟机地址,并创建一个由uid、当前时间和请求业务id组成的认证包ecte2(uid+当前时间+请求业务id),使用cte2对其进行加密,然后连同evm_fp(cte2+uid)发送给具有该地址的业务执行虚拟机。

所述根据当前虚拟机集群的负载情况为业务数据位置信息分配一个合适的执行虚拟机的id,包括,根据当前虚拟机集群的负载情况将业务数据分布到各个业务执行虚拟机。虚拟机集群系统中每个业务执行虚拟机会定期向认证服务器上报其负载情况,包括其cpu利用率、内存利用率、认证服务器收集到所有的虚拟机集群负载情况后,发送给各个业务执行虚拟机。虚拟机维持一个集群负载队列,根据这个队列选择一个负载最轻的业务执行虚拟机,将业务数据分布到该节点中,并将该节点的id记录在该业务路径存储的节点中。

然后,使用所述目标虚拟机集群标识信息对所述第五密文进行解密,使用所述第二数字证书对所述第六密文进行解密,判定所述第五密文中的终端id信息和所述第六密文中的终端id信息的一致性,认证终端的访问权限。

即业务执行虚拟机收到ecte2(uid+当前时间+请求业务id)和evm_fp(cte2+uid)后,使用其指纹信息解密evm_fp(cte2+uid)得到cte2和uid,然后使用cte2解密ecte2(uid+当前时间+请求业务id)得到uid、当前时间和请求业务id,对比两个uid是否一致,若一致则完成了业务执行虚拟机对终端的认证。

业务执行虚拟机结合该终端的权限列表信息生成访问许可,许可的格式如下:

licenseid={time,keyid,uid,taskid,mode};

其中keyid是业务执行虚拟机计数器所产生的递增值。mode、time、taskid字段分别表示该终端访问该业务的方式、有效期、任务编号。

业务执行虚拟机将生成的上述许可传送给终端并返回该请求业务所属的业务地址,并且将的密钥key通过心跳信号传送给相应的虚拟机。终端收到信息后再将需要访问业务的taskid以及相应的访问许可一同传给虚拟机。

通过此方法,根据二级元数据向终端提供虚拟机访问权限,提升了混合云的数据安全性。

其中,所述业务执行虚拟机对终端认证后,向所述认证服务器请求终端的权限列表信息。具体的,业务执行虚拟机对终端完成认证后向认证服务器请求该终端的权限列表信息,认证服务器在接收到业务执行虚拟机的请求后,向业务执行虚拟机发送该终端id的权限列表信息。

终端收到业务执行虚拟机的访问许可后,将需要访问业务的taskid以及相应的访问许可一同传给虚拟机,虚拟机收到后验证该许可的合法性,验证完成后便允许终端对其业务进行操作。

在业务查询中,终端发送访问许可并向相应的虚拟机节点请求数据,将业务分为大小一致的任务块,进程为终端并发返回业务的所有任务块。当读到一个块的结尾时,断开到虚拟机的链接,然后继续选择下一个虚拟机来获取下一个业务数据。当终端直接连接到虚拟机中找到相应的块进行业务的查询时,首先会验证校验码,检测所读取的数据是否有效,如果有效则直接进行读取,如果无效,则需向业务执行虚拟机发出请求,到备份的虚拟机节点中读取数据,然后由备份虚拟机将有效数据同步到执行虚拟机中。

在业务提交过程中,虚拟机完成一系列验证工作,确认允许终端写业务后,向虚拟机发出业务数据创建指令,返回给终端虚拟机的块地址。接着,终端与虚拟机建立连接,请求提交业务到业务执行虚拟机所分配的业务数据中,虚拟机分配块中实际可提交的地址,设置偏移id,将业务分成大小一致的任务块,并发上传到虚拟机的上传缓冲中。当完成提交后,终端即可断开与虚拟机的连接。

当虚拟机接收到终端的待提交业务后,将业务按顺序异步写入备份虚拟机的业务数据中,执行虚拟机与备份虚拟机连接,以同样的方式提交备份虚拟机中。主备虚拟机提交均完成后,更新元数据,虚拟机删除该业务占据的提交缓存。

业务执行虚拟机与认证服务器联系,将业务索引写入索引系统中。如果执行虚拟机或者备份虚拟机中有一个从上传缓存资源中写入到磁盘中失败,执行虚拟机向业务执行虚拟机请求分配另一个业务数据进行写入。通过此方法,在两次终端身份验证后,实现了对混合云业务数据的查询和提交操作。

在本发明上述实施例中,进一步根据业务访问频率将业务数据转移至缓存节点或存储池,快速读取运行在混合云中的不同访问频率的业务数据。具体包括:

步骤1、如果终端向混合云的虚拟机节点申请资源失败,则发送转移虚拟机节点缓存数据的命令。

步骤2、计算虚拟机节点内可转移资源大小,若转移后资源大小满足业务对虚拟机节点资源的要求,则根据虚拟机节点可转移缓存数据访问频率设置基于缓存节点和存储池的混合云的转移地址。

步骤3、释放虚拟机节点内可转移缓存数据,转移虚拟机节点内可转移缓存数据到转移地址,修改虚拟机节点内可转移缓存数据持久化级别,反馈转移成功信号及转移信息。

其中,步骤1优选地进一步包括:

计算对业务数据执行业务所占用虚拟机节点资源的大小,向混合云的虚拟机节点申请资源,并将业务所占用虚拟机节点资源的大小与虚拟机节点未占用资源作比较;具体的,由混合云的任务调度器进行业务的调度,在业务运行时资源对终端已标识缓存的业务数据执行业务,然后再尝试向混合云的虚拟机节点申请资源,若申请成功,则直接进行业务数据的存储工作。

若业务所占用虚拟机节点资源的大小大于虚拟机节点未占用资源,则向混合云的虚拟机节点申请资源失败,同时发送转移虚拟机节点可转移缓存数据的命令以及发送业务需要占用虚拟机节点资源的大小。

通过引入缓存节点与存储池构建混合云,并根据业务访问频率将业务数据转移至缓存节点或存储池,缓解了混合云业务数据的缓存对存储区资源巨大需求。

所述步骤2优选地还包括:

向虚拟机节点发出由于业务数据执行业务所需存储资源不足需要转移虚拟机节点资源的申请;当虚拟机节点接收到转移逻辑单元发出的申请后,判断虚拟机节点是否有可转移的资源。若申请成功,则按替换策略计算虚拟机节点内可转移资源大小。

若虚拟机节点内可转移资源大小大于等于业务数据执行业务需要占用资源大小。根据虚拟机节点可转移缓存数据的访问频率设置基于缓存节点和存储池的混合云的转移地址。

若虚拟机节点内可转移资源大小小于业务数据执行业务需要占用资源大小,终止虚拟机节点可转移缓存数据转移任务,并反馈转移虚拟机节点可转移缓存数据失败信号。

其中,在判断虚拟机节点可转移缓存数据访问频率之后,若虚拟机节点可转移缓存数据访问频率在第一预设业务访问频率数值范围内,则读取缓存节点地址并将读取到的缓存节点地址设置为转移地址;第一预设业务访问频率数值范围为虚拟机节点可转移缓存数据访问频率较高,具体的访问频率范围可由终端自由设置;若虚拟机节点可转移缓存数据访问频率在第二预设业务访问频率数值范围内,则读取存储池地址并将读取到的存储池地址设置为转移地址。

所述终端利用内存映射和安全隔离,为移动业务应用在终端创建可信进程,通过将启动的混合云业务应用的运行日志发送到混合云认证服务器,以使所述混合云远程认证和监控所述业务应用的终端运行数据,保护终端密钥和数据的机密性。其中:

所述终端创建与所述业务应用对应的可信进程,同时为所述可信进程分配内存并将所述业务应用转移到所述可信进程内存资源;

调用所述可信进程中的内存读取函数和分析函数,获取所述业务应用在本地的第一验证向量;

将所述第一验证向量封装为云端验证请求,并将所述云端验证请求发送至所述认证服务器,以使所述认证服务器将所述第一验证向量与所述业务应用在所述认证服务器上的第二验证向量进行匹配,并根据匹配结果向所述终端发送受保护的鉴权结果;

判断是否对所述鉴权结果进行信任;当判断信任所述鉴权结果时,允许所述业务应用在终端启动;

将启动的所述业务应用的运行数据以日志的方式发送到所述认证服务器,以使所述认证服务器远程认证并监控所述业务应用的运行数据。

其中创建与所述业务应用对应的所述可信进程的具体步骤如下:

第一,将需要运行的虚拟机镜像加载到磁盘中;

第二,对需要加载的业务应用的代码和数据进行加密;

第三,将需要加载的业务应用的代码和数据首先加载到加载器中,为将需要加载的业务应用的代码和数据加载至可信进程做准备;

第四,动态申请构建一个特权进程即可信进程;

第五,将需要加载的业务应用的代码和数据以页面缓存的形式解密;

第六,证明解密后的业务应用和数据可信,并将业务应用的代码和数据加载进可信进程中,然后对加载到可信进程中的每个页缓存内容进行复制;

第七,启动可信进程初始化程序,禁止继续加载和验证页缓存,生成可信进程身份令牌,并对此令牌进行加密,用以恢复和验证其身份;

第八,可信进程通过启动初始化程序来初始化一个独立的且加密的存储器,对所述业务应用的外部访问也被限制到代码中识别的入口点。所述可信进程与终端上运行的其他业务应用是隔离的。

其中,所述将启动的所述业务应用的运行数据以日志的方式发送到所述认证服务器,具体为:

将所述运行数据以日志方式在所述可信进程中生成日志文件,并对所述日志文件进行散列运算得到服务器日志散列值即消息msg;对所述消息msg进行数字签名,即用签名私钥对所述消息msg做非对称加密;启用tpm硬件将所述数字签名、所述日志文件和数字鉴权结果的公钥封装在一起生成断言,并发送至所述认证服务器,以使所述认证服务器对所述断言进行水印签名,并把水印签名结果发送至所述终端;当水印签名失败时,终止所述业务应用的运行。

所述水印签名具体为:所述终端利用所述公钥解密数字签名,导出所述消息msg,并对所述日志文件做散列得到终端日志散列值即消息md2。所述认证服务器将所述服务器日志散列值和所述终端日志散列值进行比较。当所述服务器日志散列值和所述终端日志散列值相同时,则证明数据没有被篡改,接受所述签名,即水印签名成功,所述认证服务器允许所述终端的数据访问;当所述服务器日志散列值和所述终端日志散列值不相同时,则证明数据已被篡改,拒绝所述签名,即水印签名失败,所述认证服务器将拒绝所述终端的数据访问。

其中所述将所述数字签名、所述日志文件和数字鉴权结果的公钥封装在一起生成断言,可为生成所述可信进程的完整性保护断言rl:

rl=hash(ipro//i_fp//random)

其中,ipro是生成断言的可信进程的代码的度量;

i_fp是加载前用于签名该可信进程的公钥;

random是请求验证断言时可由可信进程指定的任意随机数值。

在多个异构终端与混合云的认证阶段,所述混合云的认证服务器优选地采用可追踪认证方式,即终端的行为不当能够追踪到客户端的真实身份,非法用户无法获得虚拟机计算合法的服务,所述可追踪认证方法按如下步骤进行:

混合云hc初始化自身的公私钥和系统参数,并公开系统参数,包括安全参数λ,大素数p;同时为所有虚拟机节点生成公私钥,记任意一个虚拟机节点sj的公钥和私钥为pkj和skj;hc定义一个阶为q的循环加法群g,并定义散列函数h,h1,h2,h3:

混合云hc选取一个随机数s。设定虚拟机节点sj的私钥为sks,公钥为pks。将系统公共参数预设到所有终端和虚拟机节点。

任意一个终端ui选择一个随机数并生成假名vx′i后,将自身真实身份uidi与假名vx′i一起发送给混合云hc。

混合云hc根据所接受到的终端ui的自身真实身份uidi与假名vx′i,并利用混合云hc自身的私钥计算终端ui的另一假名vx″i;由假名vx′i和另一假名vx″i构成终端ui完整的虚拟身份vxi={vx′i,vx″i};

混合云hc检验所述终端身份ci的合法性。若合法,则混合云hc计算vx″i=uidi⊕h(s,vxi)

混合云hc为终端ui生成私钥si和公钥参数wi,并将终端ui完整的虚拟身份vxi、私钥si和公钥参数wi通过安全信道发送给终端ui;

混合云hc随机选择wi并计算wi=h1(vxi,wi)。将{vxi,wi,si}通过安全信道传送给终端ui。

终端ui根据系统参数和公钥参数wi验证所接收到的私钥si的合法性,若验证合法,则接受私钥si并选择一个随机数作为自身的陷门xi,并利用陷门xi生成终端ui的公钥pki;由陷门xi与私钥si共同组成终端ui完整的私钥(xi,si);由公钥pki与公钥参数wi共同组成终端ui完整的公钥(pki,wi);

在终端ui准备向任一虚拟机节点发送消息之前,终端ui计算:

bi=h1(vxi,xi)

yi=si+bixi

bi表示终端ui的散列值,h1(·)表示散列函数;yi表示终端ui的离线签名;

在终端ui确定向虚拟机节点sj发送消息m时,终端ui根据消息m和参数bi和yi,对所生成的在线签名进行加密:

hi=h2(m,vxi,xi,t)

σi=hiyi

qi=e(vxi||σi||wi||pki)

t为当前时间,||表示连接串符号,qi表示终端ui的密文;

终端ui将消息签名的参数{qi,t}发送给虚拟机节点sj;

若虚拟机节点sj在一段时间内接收到n个消息签名的参数,n>1则虚拟机节点sj使用自身的私钥skj以及所接收到的n个消息签名的参数,对n个消息签名进行批量验证;若均有效,则将(qi||skj)作为虚拟机节点sj和终端ui的会话令牌;否则,虚拟机节点sj拒绝与n个终端进行消息通讯。

综上所述,本发明提出了一种高可靠云平台服务提供方法,通过对终端的业务请求进行加密,实现了混合云中对业务访问的安全验证,提升了混合云的数据安全性。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1