一种虚拟机动态密码设置方法

文档序号:6332213阅读:265来源:国知局
专利名称:一种虚拟机动态密码设置方法
技术领域
本发明涉及云计算中虚拟机管理领域与云计算领域,具体是一种虚拟机动态密码设置方法。
背景技术
当前,虚拟机的根用户(Linux的根用户为root用户,Windows的根用户为 Administrator用户)的密码设置采用的是静态方法。所谓的静态方法是指,在安装新的虚拟机操作系统时,静态设置根用户的密码,在以后的每次登录中,使用静态设置的密码来登录,且若用户更改密码,需要手动来更改密码(与当前物理机设置密码的方式类似)。由此可见,现有虚拟机静态密码设置方法存在以下问题1)安全性与可用性完全对立一方面,很多用户喜欢设置易于记忆的密码,即用户在构造密码时通常采用一些策略来使其密码易于记忆,常用的策略有如下几种(1)采用一些特殊的英文单词或拼音;(2)采用一些和用户个人资料相关的数字,如用户生日,家人生日,各种证件号码等;(3)利用键盘布局来设置密码,如采用键盘上相连的键位来设置密码,如 “asdfgh,,,“qwel23,,,“ 123456” 等。以上几种密码设置方法的问题是安全性不够,易于破解;对于策略(1)和策略(3) 的破解方法如下采用暴力破解,黑客一般采用密码词典来破解,即搜集网络上用户常用的密码和英文词典来生成密码词典,一般的词典至少是M量级的,囊括了各种常见的密码,如果用户想要设置好记安全性又好的密码,可能性非常低;对于策略O)的破解方法如下收集用户的个人资料,然后根据其各人资料来破解,在当今网络社会,收集某人的个人资料, 已经变得非常容易。另一方面,用户也可以设置很复杂的密码,如超长的一个句子,或者是超长的随机数,或者是各种符号(数字、字母或标点符号等)的组合。这些复杂的密码的安全性一般都比较高,但是缺点也很明显,即可用性很差,用户很难记忆。如果采用其他介质来保存,这又涉及到了介质物理安全的问题。2)密码有效期的问题用户大都喜欢使用一个密码很长时间,而密码的安全性是随着使用时间的增长而不断变弱的。较好的安全策略是,用户应该定期地修改密码,如每月重新设置一次,每天重新设置一次密码等。密码的有效期越短,安全性越高,然而对于静态密码设置来说,过于频繁地重置密码,给用户带来的用户体验很差。

发明内容
为解决上述技术问题,本发明的主要目的在于提高密码的安全性,解决密码易于破解的问题,发明人欲将动态密码应用于虚拟机之中以达此目的;其次是提供一种定期修改密码的方法;以及借助将系统随机生成的用户名和密码通知给用户以提供一种避免记忆复杂的密码的方法。基于上述目标,本发明提出了一种虚拟机动态密码设置方法,用来解决静态密码设置方法的安全性不够的问题,同时保证了系统的可用性。本发明提供的一种虚拟机动态密码设置及实现方法,包括以下步骤1)设置动态密码生成策略;于虚拟机中生成动态密码,并设置为登陆密码;2)设置动态密码通知策略;实现将动态密码自动通知给宿主机或用户。借助上述策略的设置,实现了于虚拟机上使用动态密码代替现有静态的密码的目的,提高了密码的安全性,解决了密码易于破解的问题。为了进一步提高效果,步骤1)中的密码的生成策略可包含使用散列算法动态随机密码生成策略。其中
散列算法动态随机密码生成策略可包括以下步骤
(1)设置自定义字符串a;
(2)获取当前日期,保存为字符串b ;
(3)生成随机数,保存为字符串c ;
(4)连接字符串abc为一个字符串d ;
(5)使用shal算法对字符串d取摘要,得到字符串e ;
(6)截取e的后若干位作为新的动态密码E ;
(7)为根用户设置新的动态密码E。
另外,步骤幻的设置动态密码通知策略可包括以下步骤
(1)将用户名和密码E输出到串口中;
(2)在宿主机中获取虚拟机的串口输出;
(3)在宿主机中解析用户名和密码E ;
(4)宿主机将用户名和密码发送给用户。
步骤幻的设置动态密码通知策略中也可采用邮件或短信的方式将动态密码发送给用户。
还包括步骤幻设置虚拟机动态密码设置程序自动执行、设置虚拟机动态密码设
置程序周期性执行步骤和/或根据需要修改虚拟机动态密码生成、设置和通知策略及其周期性执行的周期的步骤。相对于静态密码设置方法,本发明的动态密码设置方法具有以下特点1)本发明可在虚拟机启动时(或者按使用者要求更新)自动地重新设置虚拟机密码,并在启动(更新)完成后把新密码通知用户;2)本发明动态设置的密码是动态的且可为随机生成的密码,不具有规律性,很难破解,具有较高的安全性;
3)本发明支持虚拟机动态密码周期性重新设置功能,解决了密码有效期问题,进一步提高了密码安全性;4)本发明包含密码自动通知功能,用户不需要记忆动态生成地随机密码,提高了用户体验。本发明尤其适合于确保以下两种应用场景下的虚拟机密码的安全性1)企业使用虚拟机为内部提供服务,在这种应该场景下虚拟机的每次运行周期都很长,可能为长达数月或整年,静态密码设置会随着使用时间的延长安全性不断降低;本发明采用的周期性动态密码设置策略可以解决此问题,从而提高此种应用场景下的虚拟机密码安全性;2)云计算应用场景,企业提供虚拟机给用户,以运行用户的服务,在这种应用场景下,虚拟机的密码可能是由用户自行设置,用户很少会遵循密码安全设置策略,从而设置不安全的密码;本发明采用的动态密码设置方法可以在不影响可用性的前提下设置安全性高的密码,从而提高此种应用场景下的虚拟机密码安全性。本发明在保证了可用性的前提下,可以在很大程度上提高虚拟机密码的安全性,具有较高的实用价值和商业价值。


图1为本发明虚拟机动态密码设置方法执行的流程图;图2为本发明虚拟机动态密码生成策略实现的流程图;图3为本发明虚拟机动态密码通知策略实现的流程图。
具体实施例方式为让本发明的上述及其他目的、特征及优点能更明显易懂,下文特举本发明的优选实施例,并配合附图,作详细说明如下为了解决静态密码的所述缺陷,发明人拟采用动态密码来解决这些技术问题,虽然动态密码生成技术在其他领域已经有了应用。其中与本发明面向领域最接近的为物理机(物理机操作系统)领域就有相关应用,然而,虚拟机应用环境相对于物理机应用环境来说,具有一些新的特征,使得物理机采用的动态密码设置方法不适合虚拟机应用。其中主要区别在于1、用户和虚拟机之间一般都是物理不可达的常用于物理机中的动态密码设置方法中的用于保存(获取)动态密码的智能卡等设备需要连接到物理机上才能使用,而在虚拟机环境中,虚拟机非直接可达的,这种物理机上通过智能卡等保存(获取)密码的方式不适合虚拟机环境,需要建立新的密码通知策略以方便用户获得密码。2、虚拟机一般是通过事先创建好的虚拟机映像来启动的虚拟机的安装方式与物理机的安装方式不同。安装物理机时,其安装界面由安装程序来提供,在安装时都会提供静态密码设置界面,用户可以设置自己的密码;虚拟机的安装是通过直接启动安装映像副本来使用的,其中安装映像(在企业环境中会有大量的用户使用同一安装映像)是一个已经安装好的系统,已经设置了初始密码(大量用户的虚拟机初始密码相同),如果用户没有修改初始密码,则其密码安全性不能保证。因此虚拟机映像需要采用动态密码设置方法,并且要设置为开机重置密码,以保证用户密码的安全性。3、相对于物理机来说,虚拟机一般都是独占的用户使用物理机资源时,一般是一台物理机多个用户共享使用,物理机上的超级用户具有更高的权限,可以帮助用户设置并维护动态密码设置策略。用户使用虚拟机资源时,一般是一台物理机上有多台虚拟机,每台虚拟机都是由某个用户独占的,而且虚拟机与物理机之间也是隔离的,因此没有一个超级用户来为虚拟机用户来设置并维护安全策略, 同时,并不是所有用户都是领域专家,因此需要为每个虚拟机设置一个安全易用地虚拟机动态密码设置方法,来保证用户密码的安全性。本发明提出的虚拟机动态密码设置方法解决了虚拟机环境中的一些特有的问题。于本实施例中,以rhel5. 4为宿主机,并使用其自带的kvm为虚拟机管理程序,可分别安装ubimtu9. 04和WindOWS2003操作系统作为本发明方案实施的目标虚拟机,并分别在ubuntu9. 04和WindOWS2003上实现了本发明的虚拟机的动态密码的设置,其具体包括虚拟机密码动态生成策略、密码通知策略及密码动态生成策略通知策略的开机启动和动态密码周期性设置策略的实现。其中,密码动态生成策略优选为采用动态随机密码生成策略,所述的动态随机密码生成策略是指在将随机数引入了一个动态密码的生成过程,同时在密码的生成过程中还可引入散列算法来进一步提高密码的随机性,从而进一步提高密码的安全性。于本实施例中本发明提出的虚拟机动态密码设置方法的执行流程如下1)安装虚拟机(步骤10)于本实施例中是利用宿主机所带的KVM安装的ubuntu9. 04和windows2003。其中,安装ubuntu9. 04是采用eucalyptus做好的ubuntu9. 04的映像文件,包括一个kernel、 一个ramdisk、一个文件系统映像。在此做好的镜像中,已经安装了 ssh server和perl。2)设置动态密码生成策略(步骤11)在此策略中,主要是设置实现于虚拟机中生成一安全的动态密码,并设置为登陆密码。在设计动态密码生成策略时,一般需要综合考虑动态密码的安全性和易用性的问题。由于动态密码不需要用户记忆,因此可以较多地考虑安全性的问题,而易用性问题可以较少考虑。动态密码不能太短,太短则安全性不能保证,一般至少要8位以上;同时也不能太长,太长则会给用户输入带来麻烦,一般情况下不要超过16位,即动态密码最好在8-16 位之间。动态密码的字符集不能太简单,如不能只是数字,或只是小写字母,较好的字符集
为“数字+字母(大小写)+标点符号(_ ......&*() !)等”。动态密码不能有规
律性,即不能带有特定的意思,最好为随机生成。为了提高效果,于本实施例中,本发明在将随机数引入了动态密码的生成过程,即采用动态随机密码生成策略,同时在密码的生成过程中还引入了散列算法来进一步提高密码的随机性,从而提高密码的安全性。在实现动态密码生成策略时,可以采用各种编程语言,如C、Java, shell脚本、 perl、python等。不过为了保证动态密码生成策略难以被破解,建议使用C,并在编译完成后,并使用(strip命令)消除可执行文件的符号信息。
参见图2,本发明的方法于本实施例中的动态密码生成策略可具体包括以下步骤(1)设置自定义字符串a,如,Cloud Manager (步骤111);(2)获取当前日期,保存为字符串b(步骤112);(3)生成随机数,保存为字符串c(步骤113);(4)连接字符串abc为一个字符串d (步骤114);(5)使用shal算法对字符串d取摘要,得到字符串e (步骤115);(6)截取e的后若干位作为新的动态密码E (步骤116),于本实施例中选为12位 (一般建议采用8-12位);(7)为根用户设置新的动态密码E(步骤117)。以上为采用散列算法的动态随机密码生成策略,亦可以采用其它的动态密码生成方法。由于动态密码相对于静态密码的最大区别在于如何解决将密码通知给用户的问题,为了确保用户的顺利登陆,因而有必要设计一个安全有效的动态密码通知策略。3)设置动态密码通知策略(步骤12)在设计动态密码通知策略时,首先要解决的问题是如何将动态密码通知给宿主机或用户。具体应用于虚拟机时可采取如下方法如果虚拟机可以访问网络,可以将动态密码通过邮件方式发送给用户。如果虚拟机不能访问网络,则可以将密码打印到串口,输出到宿主机,这样密码的安全性就完全依赖于宿主机的安全性,当然并不限于该两种方法,本领域技术人员亦可以采用其它手段进行通知。如果采用邮件或短信的方式,则动态密码通知策略的实现比较简单,只需要将密码发送到目标邮件地址或手机等终端即可;如果没有网络,则可将密码发送到串口,此方法借助宿主机的帮助简便的实现了动态密码的传送。参见附图3,本发明的方法于本实施例中的一动态密码通知策略具体可包括以下步骤(1)将生成的用户名和密码E输出到串口中(步骤121),如在ubuntu9.04下串口输出到ttySO,在windows2003下串口输出到COMl ;(2)在宿主机中获取虚拟机的串口输出(ttySO或C0M1)(步骤122);(3)在宿主机中解析用户名和密码E(步骤123);(4)通过宿主机将用户名和密码发送给用户(步骤124)。至此完成了本实施例的虚拟机密码的动态生成及使用实现方法,为了确保上述策略的实施以及可周期性或不定期的实施重新设置功能,以解决密码有效期问题,进一步提高密码安全性,本实施例还包括以下步骤。4)设置虚拟机动态密码设置程序自动执行(步骤13)首先实现开机启动,以使每次启动自动更换密码;在ubuntu9. 04下,可通过将虚拟机动态密码设置程序加入到rc. local文件中来设置虚拟机动态密码设置程序开机启动;在windOWS2003下,可通过在组策略中设置虚拟机动态密码设置程序自动执行,来实现虚拟机动态密码设置程序开机启动。5)设置虚拟机动态密码设置程序周期性执行(步骤14)其次,由于一般的情况下(如提供Web服务的虚拟机),虚拟机的每次运行周期都很长,可能为长达数月或整年,静态密码设置会随着使用时间的延长安全性不断降低。在虚拟机长期运行的情况下,为解决密码的安全性随着使用时间的增长而不断变弱的问题, 可设定虚拟机动态密码设置程序周期性执行。在ubuntu9. 04下可通过设置corntab-e命令来设置虚拟机动态密码设置程序的周期性执行;在windOWS2003下通可过设置任务计划程序来设置虚拟机动态密码设置程序的周期性执行。以上这几个步骤(步骤10-14) —般都是在虚拟机安装阶段完成的工作。6)重启虚拟机(步骤15),这时就会自动执行密码动态生成策略,以生成并设置新的密码,并将新的密码通知宿主机或用户。在本实施例中,在虚拟机启动过程中会自动执行虚拟机动态密码设置程序来重新设置虚拟机密码,并将用户名和新密码输出到串口中,宿主机rhel5. 4会获取串口输出,分析用户名和密码,最后将用户名和新的密码发送给用户,其通知方法可采用现有的安全方法,例如邮件,加密数据库等方式。在本实施例中,为了简便起见,用户名采用系统默认名,ubimtu9.04的用户名为 root, Windows2003的用户名为administrator,在某一次启时我们获得的ubuntu9. 04密码为860a^43、WindoWs2003密码为lgcv9vil ;我们可以看到生成的密码都是随机的,具有良好的安全性。7)在虚拟机运行过程中获得的用户名和密码登录虚拟机,根据需要修改虚拟机动态密码生成、设置和通知策略及其周期性执行的周期(步骤16)在虚拟机运行阶段,用户可以使用获取的密码通过本地或者远程登录到系统中, 并修改动态密码设置策略以及密码通知策略,而且可以手动执行动态密码生成策略,生成并设置新的密码,并将动态生成的密码通知宿主机或用户。对于长期运行的虚拟机(如提供Web服务的虚拟机),用户可以设定动态密码的自动设置时间,如“每天重置密码,或每周重置密码”等等。本实施例仅以ubuntu9. 04和windows2003系统的虚拟机为例说明虚拟机动态密码设置的过程,事实上本发明适用于任何系统的虚拟机,其中,最典型的应用场景是Linux 和Windows系统的虚拟机。以上是以新安装的虚拟机为例进行说明,可以理解的是,本发明也可于已经安装好的虚拟机上实施,这时可以以原静态密码登入虚拟系统后进行进一步操作,这一过程本领域技术人员均可理解,在此不予赘述。以上所述者,仅为说明本发明的优选实施方式,而非限制本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,即凡依本发明所做的均等变化与修饰,应为本发明专利范围所涵盖。
权利要求
1.一种虚拟机动态密码设置方法,其特征在于,包括以下步骤1)设置动态密码生成策略;于虚拟机中生成动态密码,并设置为登陆密码;2)设置动态密码通知策略;实现将动态密码自动通知给宿主机或用户。
2.如权利要求1所述虚拟机动态密码设置方法,其特征在于步骤1)中的密码的生成策略包含使用散列算法动态随机密码生成策略。
3.如权利要求2所述虚拟机动态密码设置方法,其特征在于散列算法动态随机密码生成策略包括以下步骤(1)设置自定义字符串a;(2)获取当前日期,保存为字符串b;(3)生成随机数,保存为字符串c;(4)连接字符串abc为一个字符串d;(5)使用shal算法对字符串d取摘要,得到字符串e;(6)截取e的后若干位作为新的动态密码E;(7)为根用户设置新的动态密码E。
4.如权利要求1、2、3所述虚拟机动态密码设置方法,其特征在于步骤2)的设置动态密码通知策略包括以下步骤(1)将用户名和密码E输出到串口中;(2)在宿主机中获取虚拟机的串口输出;(3)在宿主机中解析用户名和密码E;(4)宿主机将用户名和密码发送给用户。
5.如权利要求1、2、3所述虚拟机动态密码设置方法,其特征在于步骤2)的设置动态密码通知策略中是采用邮件或短信的方式将动态密码发送给用户。
6.如权利要求4所述虚拟机动态密码设置方法,其特征在于还包括步骤幻设置虚拟机动态密码设置程序自动执行。
7.如权利要求4所述虚拟机动态密码设置方法,其特征在于还包括设置虚拟机动态密码设置程序周期性执行步骤;
8.如权利要求4所述虚拟机动态密码设置方法,其特征在于还包括根据需要修改虚拟机动态密码生成、设置和通知策略及其周期性执行的周期的步骤。
全文摘要
本发明公开了一种虚拟机动态密码设置方法,该方法采用了动态随机密码生成策略来生成虚拟机密码,然后通过安全的方法来重新设置密码,并且在新密码设置完成后,通过密码自动通知策略将新密码通知用户。所述的动态随机密码生成策略是指在将随机数引入了动态密码的生成过程,同时在密码的生成过程中还引入了散列算法来进一步提高密码的随机性,从而提高密码的安全性。所述的密码自动通知策略是指在虚拟机重新设置密码后,将新的密码通过安全的方式通知用户。在本发明中,采用了虚拟机密码定期重置策略来定期地重新设置虚拟机密码,以保证在虚拟机长期不重新启动的情况下,保证虚拟机密码的安全性。
文档编号G06F21/00GK102402655SQ201010284830
公开日2012年4月4日 申请日期2010年9月17日 优先权日2010年9月17日
发明者兰雨晴, 夏颖, 姚远, 宋潇豫, 徐舫, 胡娜, 赵敬锋, 马立克 申请人:上海中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1