一种数据加密的方法、用户终端、服务器及系统与流程

文档序号:13672776阅读:175来源:国知局

本发明涉及计算机领域,尤其涉及一种数据加密的方法、用户终端、服务器及系统。



背景技术:

虚拟桌面基础架构(virtualdesktopinfrastructure,vdi),是一种企业级的实现桌面系统的远程动态访问与数据中心统一托管的技术。它不是给每个用户都配置一台运行windows的桌面pc,而是通过在数据中心的服务器运行运行若干windows虚拟机,每个用户以一对一的方式连接到他们的虚拟机,将用户的桌面进行虚拟化,用户访问他们的桌面就像是访问传统的本地安装桌面一样。

随着服务器和网络的发展,桌面虚拟化技术的应用越来越广泛,但是,在推广过程中,虚拟化技术也带来了一些新的问题。其中一个问题就是用户数据集中存放在服务器上管理所带来的泄密风险,虽然现在有一些加密方案,可以将用户的数据加密保存在服务器上,但用户普遍存在一些疑问,一是数据虽然加密,但用户本身无感知,并不能确定数据是否真的加密了,二是即使数据真的加密了,秘钥也是保存在服务器磁盘中的,存在管理员获取用户机密数据的风险,这就会降低一些用户特别是拥有机密数据用户对虚拟桌面的接受程度。



技术实现要素:

本发明实施例提供了一种数据加密的方法、用户终端、服务器及系统,当访问存储在磁盘中的数据文件时,需要从用户终端获取密钥,密钥不保存在服务器磁盘中,从而能够防止用户机密数据被窃取的风险,提升数据存储的安全性。

第一方面,本发明实施例提供了一种数据加密的方法,该方法应用于虚拟桌面基础架构vdi,vdi中包括用户终端和服务器,服务器上运行有虚拟机,该方法包括:服务器接收用户终端的登录请求;服务器验证登录请求后,启动虚拟机;服务器的虚拟机从用户终端获取密钥,使用密钥对虚拟机挂接的数据文件进行加密或解密。

本发明能够将虚拟桌面个人磁盘(虚拟机挂接的数据文件)的加解密通过终端上的的密钥进行控制,密钥并不是存在于服务器中,因此能够防止管理员通过拿走存放数据和秘钥的磁盘的方式泄密,从而既能够防止用户机密数据被窃取的风险。

可选的,若服务器第一次启动虚拟机,则服务器的虚拟机创建至少一个数据文件,将每个数据文件加载为虚拟机的一个个人盘;服务器的虚拟机设置个人盘为加密盘,并在用户终端显示加密盘的加密属性。

通过这种方式,能够显性提示用户数据文件处于安全加密状态,让用户打消数据不安全的顾虑,从而提升用户体验。

可选的,用户终端上连接有生成密钥的key,服务器的虚拟机从用户终端获取密钥包括:虚拟机从用户终端的key中获取密钥。

可选的,用户终端包括虚拟桌面显示终端和移动终端,服务器的虚拟机从用户终端获取密钥包括:当移动终端验证自身的用户信息与虚拟桌面显示终端上的用户信息相同时,虚拟机从移动终端获得秘钥。

第二方面,本发明实施例提供给了一种数据加密的方法,该方法应用于虚拟桌面基础架构vdi,vdi中包括用户终端和服务器,服务器上运行有虚拟机,该方法包括:用户终端向服务器发送登录请求,登录请求被服务器验证后,登录虚拟机;用户终端向虚拟机提供秘钥,以使得虚拟机使用秘钥对虚拟机挂接的数据文件进行加密或解密。

服务器加解密数据文件的密钥是从用户终端获取的,服务器并不存储密钥,因此能够提高数据存储的安全性。

可选的,用户终端上连接有生成密钥的key,用户终端向虚拟机提供秘钥包括:用户终端从key中获取秘钥,将秘钥发送给虚拟机。

可选的,用户终端包括虚拟桌面显示终端和移动终端,用户终端向虚拟机提供秘钥包括:移动终端验证自身的用户信息与虚拟桌面显示终端上的用户信息是否相同,若相同,移动终端将秘钥提供给虚拟机。

第三方面,本发明实施例提供了一种服务器,所述服务器的具体实现对应于上述第一方面提供的数据加密方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。

一种可能的实现中,所述服务器包括:

接收单元,用于接收用户终端的登录请求;

虚拟机启动单元,用于在验证登录请求后,启动虚拟机;

密钥获取单元,用于从用户终端获取密钥;

加解密单元,用于使用密钥对虚拟机挂接的数据文件进行加密或解密。

第四方面,本发明实施例提供了一种用户终端,所述用户终端的具体实现对应于上述第二方面提供的数据加密方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件程序实现。硬件和软件包括一个或多个与上述功能相对应的单元模块,所述单元模块可以是软件和/或硬件。

一种可能的实现中,所述用户终端包括:

发送单元,用于向服务器发送登录请求;

登录单元,用于当登录请求被服务器验证后,登录虚拟机;

密钥提供单元,用于向虚拟机提供秘钥,以使得虚拟机使用秘钥对虚拟机挂接的数据文件进行加密或解密。

第五方面,本发明实施例提供了一种虚拟桌面系统,其特征在于:

虚拟桌面系统包括至少一个用户终端和至少一个服务器,服务器上运行有虚拟机;用户终端,用于向服务器发送登录请求;服务器,用于接收用户终端的登录请求,在验证登录请求后,启动虚拟机;虚拟机,用于从用户终端获取密钥,使用密钥对虚拟机挂接的数据文件进行加密或解密。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明的关键点在于将虚拟桌面个人磁盘的加解密通过终端上的加密key进行控制,并且在交互上可以很好的提示用户,既防止管理员通过拿走存放数据和秘钥的磁盘的方式泄密,又显式的让用户知道自己的数据是安全的,让用户打消数据不安全的顾虑。从而既能够防止用户机密数据被窃取的风险,又能够在界面上显式提醒用户数据的安全性,提升用户体验。

附图说明

图1为本发明实施例中实现虚拟桌面的系统架构图;

图2为本发明实施例中服务器与用户终端元素示意图;

图3为本发明实施例中数据加密方法的流程图;

图4为本发明实施例中服务器的功能模块结构图;

图5为本发明实施例中用户终端的功能模块结构图。

具体实施方式

为了使本发明的技术方案及有益效果更加清楚,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明应用于vdi系统,虚拟桌面基础架构示意图如图1所示,包括服务器和用户终端。其中,服务器也即host机,它是运行虚拟化软件的物理服务器,在虚拟化软件上运行虚拟机,需要说明的是,服务器可以是一个独立的服务器,也可以是多个服务器组成的服务器集群。用户终端可以是胖终端、瘦终端、或零终端,例如:智能手机、平板电脑、台式计算机以及专门用于接入vdi桌面的电子设备(瘦终端)等。

服务器上运行多个虚拟机,用于为用户终端提供运行环境,并响应用户终端的操作请求。

具体的,每台虚拟机都可以视为一个虚拟镜像,它可以为每个终端操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,i/o设备),虚拟机监视器采用某种调度算法在各个虚拟机之间共享cpu等硬件。

在虚拟桌面系统中,服务器运行桌面操作系统,为用户终端提供运行环境,用户终端上只显示桌面操作系统的图形,无须在其上安装所需要使用的桌面软件,用户终端通过传输协议与远程的服务器桌面进行连接,服务器响应用户终端的操作请求,使得用户访问服务器的桌面就像是访问传统的本地桌面一样。

本发明通过在服务器(host机)上创建加密文件作为个人盘,让虚拟机进程挂接这些文件作为虚拟机的驱动器,同时,这些进程在挂接这些文件的时候,需要从用户终端获取秘钥,才可以对磁盘驱动器进行加解密读写操作,从而实现对用户数据的加解密。另外,由于加密磁盘对于用户是透明的,用户会担心写入到数据中心的数据是否真的加密,本发明也通过在用户终端进行显性提示,达到增强用户体验的目的。

本发明实施例中的用户终端以瘦终端为例进行介绍。

如图2所示,服务器(host机)通过网络与专门用于接入vdi桌面的电子设备相连,虚拟桌面显示器与所述接入vdi桌面的电子设备相连。本发明的服务器(host机)中包含虚拟机进程,虚拟机中代理模块,以及存储的数据文件。其中,虚拟机进程即虚拟桌面本身,负责使用秘钥对数据文件进行透明加解密;数据文件即为虚拟机中看到的磁盘,每个数据文件为一个磁盘,由虚拟机进程对数据文件进行读写操作,在读写时进行透明加解密;虚拟机中代理模块通过与虚拟机进程通讯,获取磁盘是否加密,如果加密,则将用户终端虚拟桌面上的磁盘的图标换为安全图标,将鼠标悬停时的提示改成安全提示。

从用户终端获取密钥的包括多种,其中一种方式为在终端上连接加密key。用户加密key插在终端上,驱动安装在终端上,一起起到提供秘钥的作用,由虚拟机进程使用秘钥对数据文件进行透明加解密。

下面结合图3对本发明实施例中的通过从终端加密key中获取密钥,对数据文件进行加密的方法进行详细阐述。

301、用户终端向服务器发送登录请求;

用户开启瘦终端,使用自己的账号密码登录虚拟化平台,瘦终端界面显示自己的虚拟桌面资源,用户点击虚拟桌面资源,从而向服务器发送登录请求。

其中,虚拟化平台为虚拟化管理系统平台,为运行在服务器中的软件程序,为用户或管理员提供操作界面,能够根据虚拟机与用户账号的对应关系,启动服务器上相应的虚拟机。

302、服务器验证登录请求后,启动虚拟机;

服务器验证用户的登录信息后,虚拟化平台启动该用户信息对应的虚拟机进程,也即虚拟化平台启动用户的虚拟桌面。

303、服务器的虚拟机从用户终端获取密钥;

虚拟机进程在启动时,从用户终端获取密钥解密访问该虚拟机挂接的数据文件。

虚拟机进程向终端请求秘钥,终端接收到该请求后,调用加密key接口,获得秘钥。

本发明所涉及的加密key可以是硬件形态的u-key,也可以是软件形态的key,key中的秘钥可以由用户的口令进行保护,也可以不用口令进行保护。

304、服务器的虚拟机使用密钥对虚拟机挂接的数据文件进行加密或解密。

可选的,如果是第一次开启虚拟机,虚拟机进程根据管理员在虚拟化平台创建虚拟机时的设置,创建一个或多个空白数据文件并格式化为磁盘格式,加载为系统的个人盘,每个数据文件对应一个个人盘。

可选的,第一次创建个人盘的过程,也可以由管理员统一创建空白磁盘,在使用的时候再格式化并加密成每个用户个人盘。

在创建个人盘后,虚拟机进程通知代理模块哪些盘为加密盘,代理模块将相应盘的盘符设置为带安全标识的盘符,并将用户鼠标悬停该盘符时的信息修改为安全提示信息,例如:“已受到加密安全保护,他人无法通过其他途径获取您的资料”。

需要说明的是,本发明实施例中所描述的个人盘,可以单个,也可以多个,可以是非系统盘,也可以是系统盘。

可选的,如果不是第一次开启虚拟机,则加载该虚拟机挂接的已存在的数据文件为虚拟机的磁盘,并使用秘钥解密数据文件,将磁盘信息数据明文加载到内存中。

用户使用个人盘中的数据时,虚拟机进程使用已获得的秘钥,对数据透明加解密,用户可以正常使用磁盘中的数据。

以上是用户使用正确的key时的开机和使用流程,下面对用户未插key,或使用错误的key时的开机与使用流程进行说明。

1、用户开启瘦终端,使用自己的账号登录虚拟化平台,瘦终端界面显示自己的虚拟桌面资源;

2、用户点击虚拟桌面资源,虚拟化平台启动虚拟机进程,也即虚拟化平台启动用户的虚拟桌面;

3、虚拟机进程在启动时,向终端请求秘钥,终端调用加密key接口,返回读取秘钥失败信息,虚拟机进程不加载数据文件;

4、用户进入虚拟桌面,只能看到系统盘,看不到个人数据盘,同时,系统提示用户未插入key或插入了错误的key。

本发明的关键点在于将虚拟桌面个人磁盘的加解密通过终端上的加密key进行控制,并且在交互上可以很好的提示用户,既防止管理员通过拿走存放数据和秘钥的磁盘的方式泄密,又显式的让用户知道自己的数据是安全的,让用户打消数据不安全的顾虑。从而既能够防止用户机密数据被窃取的风险,又能够在界面上显式提醒用户数据的安全性,提升用户体验。

图3所示的实施例中所提到的使用终端上加密key的方式控制数据文件的加解密的方式,也可以用智能手机扫描二维码的方式来代替,完整步骤如下:

1、用户开启瘦终端,使用自己的账号登录虚拟化平台,瘦终端界面显示自己的虚拟桌面资源以及一个携带用户名的散列信息的二维码。

2、用户使用安装在手机上的配套应用,使用相同用户名密码登录虚拟化平台,并使用该应用扫描上述二维码,扫描后,手机应用将验证用户名的散列与二维码信息中的用户名散列是否相同,如果相同,则将手机应用上的用户秘钥传回虚拟化平台供用户的虚拟机进程使用。

3、用户点击虚拟桌面资源,虚拟化平台启动虚拟机进程,也即虚拟化平台启动用户的虚拟桌面。

4、虚拟机进程在启动时,读取已经获得的秘钥。

5、如果是第一次开启虚拟机,虚拟机进程创建一个空白数据文件并格式化为磁盘格式,加载为系统的个人盘。虚拟机进程通知代理模块哪些盘为加密盘,代理模块将相应盘的盘符设置为带安全标识的盘符,将悬停时的信息修改为安全提示信息。

如果不是第一次开启虚拟机,则加载已存在的数据文件为虚拟机的磁盘,并使用秘钥解密数据文件,将磁盘信息数据明文加载到内存中。

6、用户使用数据盘中数据时,虚拟机进程使用已获得的秘钥,对数据透明加解密,用户可以正常使用磁盘中的数据。

以上是用户使用正确的开机和使用流程,下面对用户在手机上登录不同的用户或不扫描二维码时的开机与使用流程进行说明。

1、用户开启瘦终端,使用自己的账号登录虚拟化平台,瘦终端界面显示自己的虚拟桌面资源以及一个携带用户名的散列信息的二维码。

2、用户用安装在手机上的配套应用,使用不同的用户登录虚拟化平台,并使用该应用扫描上述二维码,扫描后,手机应用验证用户名不一致;或者,用户不扫描二维码。

3、用户点击虚拟桌面资源,虚拟化平台启动虚拟机进程,也即虚拟化平台启动用户的虚拟桌面。

4、虚拟机进程在启动时,无法获取秘钥,虚拟机进程不加载数据文件。

5、用户进入虚拟桌面,只能看到系统盘,看不到个人数据盘。

以上仅对服务器从用户终端获取密钥的两种方式(从用户终端的key中获取密钥;智能终端经二维码验证用户信息后提供密钥的方式)进行举例介绍,在实际应用中,还可以是通过其他的变形方式从终端获取密钥,此处不做限定。

以上是对本发明实施例中的方法进行介绍,下面对本发明实施例中涉及的服务器及用户终端从功能模块角度进行介绍。

如图4所示,本发明实施例中的服务器,从功能模块的角度可以包括:

接收单元401,用于接收用户终端的登录请求;

虚拟机启动单元402,用于在验证登录请求后,启动虚拟机;

密钥获取单元403,用于从用户终端获取密钥;

加解密单元404,用于使用密钥对虚拟机挂接的数据文件进行加密或解密。

在一些具体的实施中,服务器还包括:

数据文件创建单元405,用于当第一次启动虚拟机时,创建至少一个数据文件,将每个数据文件加载为虚拟机的一个个人盘;

加密属性设置单元406,用于设置个人盘为加密盘,并在用户终端显示加密盘的加密属性。

在一些具体的实施中,密钥获取单元403,具体用于从用户终端的key中获取密钥。

在一些具体的实施中,用户终端包括虚拟桌面显示终端和移动终端,密钥获取单元403,具体用于当移动终端验证自身的用户信息与虚拟桌面显示终端上的用户信息相同时,从移动终端获得秘钥。

如图5所示,本发明实施例中的用户终端,从功能模块的角度可以包括:

发送单元501,用于向服务器发送登录请求;

登录单元502,用于当登录请求被服务器验证后,登录虚拟机;

密钥提供单元503,用于向虚拟机提供秘钥,以使得虚拟机使用秘钥对虚拟机挂接的数据文件进行加密或解密。

在一些具体的实施中,密钥提供单元503,具体用于从key中获取秘钥,将秘钥发送给虚拟机。

在一些具体的实施中,用户终端包括虚拟桌面显示终端和移动终端,其中,移动终端包括:用户信息验证单元,用于验证自身的用户信息与虚拟桌面显示终端上的用户信息是否相同,密钥提供单元503,具体用于当信息验证单元验证验证自身的用户信息与虚拟桌面显示终端上的用户信息相同时,将秘钥提供给虚拟机。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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