一种登录Openstack云系统虚拟机的装置和方法与流程

文档序号:12829085阅读:399来源:国知局
一种登录Openstack云系统虚拟机的装置和方法与流程

本发明涉及云系统的身份认证领域,尤其涉及一种基于usbkey登录openstack云系统虚拟机的装置和方法。



背景技术:

pki(publickeyinfrastructure),被誉为现代信息社会安全的基石,能够为所有网络应用透明的提供数据加密、解密和签名等密码服务所必须的密钥和证书管理功能,广泛应用于网上银行、电子商务、电子政务等领域。一个完整地pki系统是由认证机构、密钥管理中心(kmc)、注册机构、目录服务、以及安全认证应用软件、证书应用服务等部分组成,其中认证机构(certificationauthority,ca)在pki系统中居于核心地位。由于pki提供了良好的安全平台,所以基于pki的硬件加密设备,如usbkey,加密ic卡等被国内各大公司制作。

usbkey是网络身份认证和数据保护的“电子钥匙”,被越来越多的用户所认识和使用。usbkey根据硬件芯片的不同分为使用智能卡芯片和不使用智能卡芯片两种,按照cpu是否内置加密算法又分为带算法的和不带算法的usbkey,即对应的存储型key和加密型key。usbkey内部的操作系统一般都符合iso7816规范,一个设备有一个mf文件,多个df文件和多个ef文件,里面可以用来存放证书信息等数据。

openstack是目前最火的开源云系统,它是由美国国家宇航局(nasa)和rackspace合作开发的,其目的是为企业提供公有云和私有云服务。openstack是一个iaas软件,类似与amazon的云基础架构服务(iaas),具有良好的可扩展性和可靠的云部署方案。目前openstack有众多的版本,随着新版本的发放,功能越来越完善,其系统的稳定性也大幅度提高。openstack是一个庞大的系统,有众多组件组成,例如计算组件(nova)、网络组件(neutron)、存储组件(swift)和认证组件(keystone)等等。其中neutron组件为云系统的网络模块,它控制着整个网络数据的流向,甚至包括虚拟机的网络流量都由neutron组件来操控。neutron组件又包括dhcp-agent、l3-agent和openvswitch-agent服务。其中openvswitch-agent服务包括安全组功能,它用来过滤流入和流出虚拟机的流量。虚拟机可以属于一个或者多个安全组,neutron使用这些安全组的规则来阻止或允许虚拟机的端口,或者流量类型的访问。用户可以根据自己的要求来创建安全组的规则,规则定制的要求可以根据说明来进行。

ca中心,又称为数字证书认证中心,作为电子商务交易中受信任的第三方,专门解决公钥体系中公钥的合法性问题。ca中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证实证书中列出的用户名称和证书中列出的公开密钥相对应。ca中心的数字签名使得攻击者不能伪造和篡改数字证书。用户可以将自己的证书提交到认证中心,来验证证书的有效性。

云系统的iaas服务主要是为用户提供虚拟机服务的,用户如果要想登录到虚拟机,在linux服务器的情况下,可以使用ssh或者vnc等其他方式登录;在windows情况的是可以使用rdp协议登录。这个时候都要将neutron模块中的安全组规则打开,才能允许用户访问虚拟机。如果仅是通过用户名和密码登录到虚拟机,安全保障比较低。而且通信的过程中的采用明文传输数据,就有可能被盗取。所有为了安全登录到虚拟机,采用usbkey中的数字证书登录到虚拟机,这样不仅可以用来保证通信的安全,而且能够验证用户的有效性。

在传统的登录的虚拟机方式无非就是使用用户和密码的方式。该方法采用明文传输,极易遭到非法分子的截获,不能保证虚拟机的安全性,且存在密码容易忘记的问题。针对上述分析,本发明提出了一种基于usbkey登录到openstack云系统系统提供的虚拟机上的装置和方法,通过基于usbkey中数字证书进行安全通信,解析usbkey中的证书,通过证书认证中心能够保证证书的有效性,进而安全登录到虚拟机。



技术实现要素:

本发明主要通过usbkey中的数字证书进行用户认证和安全通信,进而登录虚拟机的过程。它主要用到的pki相关的内容,然后结合openstack的neutron模块,进而完成用户到虚拟机的通信流程,这里面用到ssl加密技术,保证了数据通信的安全性、可靠性和唯一性。该发明有效的保障了虚拟机的安全性,弥补了使用用户名和密码登录虚拟机的弊端。

本发明涉及到两个方面,一个是使用usbkey登录云系统过程。成功登录到云系统,就可以看到该用户名下的虚拟机;另一个是用户通过vnc方式登录虚拟机的过程。

本发明的技术方案如下所述:

一种基于usbkey登录openstack云系统虚拟机的方法,其特征在于,包括:

用户通过usbkey里面的数字证书向云系统发起连接请求;

所述云系统将获取到的所述数字证书的有效数据发送给ca认证中心;

所述ca认证中心验证所述数字证书的有效性;

认证失败,提示认证失败;认证成功,进入云系统用户的认证;

所述云系统用户的认证失败,所述云系统拒绝该用户进入云系统;认证成功,所述用户进入到所属自己资源的云系统。

进一步的,所述有效数据包括公钥证书、有效期、签名值和扩展内容。

进一步的,所述云系统用户的认证是将解析到的证书的序列号或者用户名发送给云系统的用户认证模块。

进一步的,所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;

设置一可持续待机时间t1,在用户进入所述云系统并处于待机状态后,开始计算待机持续时间,所述待机持续时间每过t1的时间,重复进行上述用户密码的输入确认,确认失败,提示认证失败,退出所述云系统;确认成功后,维持所述用户的登录状态,并重新计算后续待机持续时间。

进一步的,所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;

当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作;确认成功后,允许操作。

进一步的,当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

进一步的,所述用户进入所述云系统后,向虚拟机发出登录请求;

所述请求到达安全组,所述安全组获取请求中用户的数字证书,并将该数字证书发送到所述ca认证中心;

所述ca认证中心验证该数字证书的有效性;

认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述用户登录到所述虚拟机。

进一步的,所述usbkey为具有指纹识别功能的指纹key或者其他类型的usbkey,所述指纹key的用户密码为用户指纹,采用用户指纹密码进行识别并登录所述云系统虚拟机;所述其他类型的usbkey的用户密码为键盘或输入设备输入的数字和/或字符,采用传统密码输入方式进行识别并登录所述云系统虚拟机。

根据本发明的另一方面,还提供一种登录openstack云系统虚拟机的方法,其特征在于,包括

用户向虚拟机发出登录请求;

所述请求到达安全组,所述安全组获取请求中用户的数字证书,如果没有数字证书,所述虚拟机拒绝所述用户登录,如果有数字证书,则所述安全组将该数字证书发送到ca认证中心;

所述ca认证中心验证该数字证书的有效性;

认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述用户登录到所述虚拟机。

进一步的,包括:

usbkey、云系统、ca认证中心、用户认证模块,其中,

用户通过所述usbkey里面的数字证书向云系统发起连接请求;

所述云系统用于将获取到的所述数字证书的有效数据发送给ca认证中心;

所述ca认证中心用于验证所述数字证书的有效性;

认证失败,提示认证失败;认证成功,进入云系统的用户认证模块进行云系统用户的认证;

所述云系统用户的认证失败,所述云系统拒绝该用户进入云系统;认证成功,所述云系统使所述用户进入到所属自己资源的云系统。

进一步的,所述有效数据包括公钥证书、有效期、签名值和扩展内容。

进一步的,所述云系统用户认证模块对解析到的证书的序列号或者用户名进行认证。

进一步的,还包括用户密码输入确认模块,用于在所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;

还包括可持续待机待机时间参数设置模块,用于设置一可持续待机时间t1;

还包括待机持续时间计算模块,用于计算用户待机持续时间,在用户进入云系统并处于待机模式后,开始计算待机持续时间,所述待机持续时间每过t1的时间,重复进行上述用户密码的输入确认,确认失败,提示认证失败,退出所述云系统;确认成功后,维持所述用户的登录状态,并重新计算登录持续时间。

进一步的,还包括用户密码输入确认模块,用于在所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;

当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作;确认成功后,允许操作。

进一步的,当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

进一步的,还包括安全组,虚拟机,其中,

所述虚拟机用于接收所述用户进入所述云系统后向其发出的登录请求;

所述安全组接收到所述登录请求,并获取所述请求中所述用户的数字证书,并将该数字证书发送到所述ca认证中心;

所述ca认证中心验证该数字证书的有效性;

认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述虚拟机允许用户登录。

进一步的,所述usbkey为具有指纹识别功能的指纹key或者其他类型的usbkey,所述指纹key的用户密码为用户指纹,采用用户指纹密码进行识别并登录所述云系统虚拟机;所述其他类型的usbkey的用户密码为键盘或输入设备输入的数字和/或字符,采用传统密码输入方式进行识别并登录所述云系统虚拟机。

根据本发明的另一方面,本发明还提供一种登录openstack云系统虚拟机的装置,包括虚拟机、安全组、ca认证中心,其中,

所述虚拟机用于接收用户向其发出的登录请求;

所述安全组接收到所述登录请求,并获取所述请求中所述用户的数字证书,如果没有获取到数字证书,所述虚拟机拒绝所述用户登录,如果取得数字证书,则所述安全组将该数字证书发送到所述ca认证中心;

所述ca认证中心验证该数字证书的有效性;

认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述虚拟机允许用户登录。

有益效果:在该装置中用户采用usbkey登录虚拟机,不仅能够保证整个通信过程的安全性,还能保证非法用户无法登录到虚拟机。尤其采用pki系统中的ca认证中心,更能有效的保障了整个系统的可靠性。同时,采用usbkey登录虚拟机,用户无需再输入用户名和密码,认证通过后直接可以登录到虚拟机,也解决了密码容易忘记的问题,使操作更方便。此外,本发明通过ca认证中心和用户认证中心,来保证用户的合法性,通过安全组的再一次认证,杜绝不使用证书登录系统,而通过其他方式进入虚拟机的方式,有效的保障了虚拟机资源的安全性。另外,通过设置可持续待机时间以及用户密码或指纹的再确认机制,可防止具有高权限的用户使用完后,忘记拔掉usbkey而被他人进入系统,删改数据的情况。重要操作中的重新验证机制,也增强对重要操作人员的身份确认,增强了系统的安全性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简要地介绍,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于usbkey登录虚拟机的原理图;

图2为本发明基于usbkey登录虚拟机的流程图。

具体实施方式

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例作进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

下面将就本发明中一种基于usbkey登录openstack云系统虚拟机的装置和方法进行详细说明。

实施例一:

本发明实施例一提供了用户基于usbkey登录到云系统的方法,包括:

(1)用户在电脑上插入自己的usbkey向云系统发起建立ssl安全连接请求,该请求是用户通过浏览器打开云系统,此次请求采用ssl协议,所以进入系统之前,浏览器将弹出证书的对话框,然后用户选择自己的数字证书;

(2)云系统对用户证书身份进行验证。验证通过则与用户建立ssl安全通道,反之则拒绝;

(3)云系统将获取的用户数字证书的有效数据,例如公钥证书、有效期、签名值和扩展内容等,发送到ca认证中心,进一步进行证书的验证,防止注销的证书登录系统,如果认证通过则进入下一步,否则退出系统;

(4)云系统将解析得到的用户名和证书序列号发送到用户认证中心进行用户认证,云系统用户的认证就是将解析到的证书的序列号或者用户名发送给云系统的用户认证模块,如果数据库存在该用户,则进入系统,否则拒绝进入系统;

(5)用户认证后,根据该用户具有的权限,进入到所属自己资源的云系统。

通过以上步骤,就完成了一次usbkey登录到云系统的过程。

另外,在用户登录到云系统时,还可以通过如下方式进一步增强系统的安全性,如:

在所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;设置一可持续待机时间t1,在用户进入所述云系统后,开始计算登录持续时间,所述登录持续时间每过t1的时间,重复进行上述用户密码的输入确认,确认失败,提示认证失败,退出所述云系统;确认成功后,维持所述用户的登录状态,并重新计算登录持续时间。

进一步地,所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作;确认成功后,允许操作。

进一步地,当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

另外,还可以将所述usbkey选择使用具有指纹识别功能的指纹key,通过使用具有指纹识别功能的指纹key,可以使用户登录云系统时在key上进行指纹认证以代替从电脑键盘输入个人识别码,从物理上彻底杜绝黑客攻击的途径,从而有效防止他人盗取用户信息,进行信息篡改、骗签等安全隐患。

进一步地,设置一可持续待机时间t2,在用户进入所述云系统或登录所述虚拟机后,开始计算登录持续时间,所述登录持续时间每过t2的时间,重复进行用户指纹密码的识别,认证失败,提示认证失败,退出所述云系统或虚拟机;认证成功后,维持所述用户的登录状态,并重新计算登录持续时间。

进一步地,每当用户进行重要操作时,进行用户指纹密码的识别,确认失败,提示认证失败,拒绝操作;认证成功后,允许操作。

进一步地,每当用户进行重要操作时,进行用户指纹密码的识别,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

实施例二:

本发明实施例二提供了用户登录虚拟机的方法,包括以下步骤:

(1)在ssl的通信过程中,用户通过vnc向虚拟机发出登录请求;

(2)根据libvirt制作虚拟机的vnc配置,以及nova模块中配置文件的参数,发送请求到达neutron模块中的安全组,安全组根据发送的数据请求,检查是否有公钥证书信息。如果有则进入步骤(3),否则无法进入虚拟机;

(3)安全组将获取的证书信息发送到ca认证中心,验证证书的有效性,如果证书有效,则进入虚拟机,否则无法进入虚拟机。ca中心对该证书进行校验,该校验包括用户数字证书是否在有效期内,以及对用户dn和扩展信息进行校验确认其是否有效。此处验证证书的目的是防止用户使用其他协议进入虚拟机,保证虚拟机的安全。比如,分配一个虚拟机给用户,用户在虚拟机上安装了ssh服务,那么用户就会绕过vnc的登录方式登录到虚拟机,不是使用usbkey的方式登录到虚拟机,当使用ssh登录虚拟机时,请求到达安全组时可以根据证书的认证情况拦截该访问请求,当然没有证书信息将无法登录到虚拟机;再者,即使通过ssh客户端来访问虚拟机,客户端配置好用户的数字证书,如果在安全组功能处验证数字证书的有效性也可以登录到虚拟机。

通过以上步骤操作用户就可以安全的使用自己虚拟机。

实施例三:

本发明实施例三对应于实施例一提供了一种基于usbkey登录openstack云系统虚拟机的装置,包括:usbkey、云系统、ca认证中心、用户认证模块,其中,用户通过所述usbkey里面的数字证书向云系统发起连接请求;所述云系统用于将获取到的所述数字证书的有效数据发送给ca认证中心;所述ca认证中心用于验证所述数字证书的有效性;认证失败,提示认证失败;认证成功,进入云系统的用户认证模块进行云系统用户的认证;所述云系统用户的认证失败,所述云系统拒绝该用户进入云系统;认证成功,所述云系统使所述用户进入到所属自己资源的云系统。

进一步地,所述有效数据包括公钥证书、有效期、签名值和扩展内容。

进一步地,所述云系统用户认证模块对解析到的证书的序列号或者用户名进行认证。

进一步地,还包括用户密码输入确认模块,用于在所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;还包括可持续待机时间参数设置模块,用于设置一可持续待机时间t1;还包括登录持续时间计算模块,用于计算用户登录持续时间,在用户进入所述云系统后,开始计算登录持续时间,所述登录持续时间每过t1的时间,重复进行上述用户密码的输入确认,确认失败,提示认证失败,退出所述云系统;确认成功后,维持所述用户的登录状态,并重新计算登录持续时间。

进一步地,还包括用户密码输入确认模块,用于在所述云系统用户的认证成功后,进行用户密码的输入确认,确认失败,提示认证失败;确认成功后,所述用户进入到所属自己资源的云系统;当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作;确认成功后,允许操作。

进一步地,当用户进行重要操作时,重复进行上述用户密码的输入确认,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

进一步地,还包括安全组,虚拟机,其中,所述虚拟机用于接收所述用户进入所述云系统后向其发出的登录请求;所述安全组接收到所述登录请求,并获取所述请求中所述用户的数字证书,并将该数字证书发送到所述ca认证中心;所述ca认证中心验证该数字证书的有效性;认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述虚拟机允许用户登录。

进一步地,所述usbkey为具有指纹识别功能的指纹key。

进一步地,还包括可持续待机时间参数设置模块,用于设置一可持续待机时间t2;还包括登录持续时间计算模块,用于计算用户登录持续时间,在用户进入所述云系统或登录所述虚拟机后,开始计算登录持续时间,所述登录持续时间每过t2的时间,重复进行用户指纹密码的识别,认证失败,提示认证失败,退出所述云系统或虚拟机;认证成功后,维持所述用户的登录状态,并重新计算登录持续时间。

进一步地,每当用户进行重要操作时,进行用户指纹密码的识别,确认失败,提示认证失败,拒绝操作;认证成功后,允许操作。

进一步地,每当用户进行重要操作时,进行用户指纹密码的识别,确认失败,提示认证失败,拒绝操作并退出所述云系统;确认成功后,允许操作,维持所述用户的登录状态,并重新计算登录持续时间。

实施例四:

本发明实施例四对应于实施例二提供了一种登录openstack云系统虚拟机的装置,包括虚拟机、安全组、ca认证中心,其中,所述虚拟机用于接收用户向其发出的登录请求;所述安全组接收到所述登录请求,并获取所述请求中所述用户的数字证书,如果没有获取到数字证书,所述虚拟机拒绝所述用户登录,如果取得数字证书,则所述安全组将该数字证书发送到所述ca认证中心;所述ca认证中心验证该数字证书的有效性;认证失败,所述虚拟机拒绝所述用户登录;认证成功,所述虚拟机允许用户登录。

综上所述,本发明提出了一种基于usbkey登录openstack云系统虚拟机的装置和方法,用户可以使用安全的usbkey来登录到虚拟机,可以保证整个通信过程的安全性和可靠性;此外,通过ca认证中心和用户认证中心,来保证用户的合法性,通过安全组的再一次认证,杜绝不使用证书登录系统,而通过其他方式进入虚拟机的方式,有效的保障了虚拟机资源的安全性。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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