一种信息密码保护装置和方法与流程

文档序号:13332569阅读:343来源:国知局
一种信息密码保护装置和方法与流程

本发明涉及信息密码保护方法,尤其是涉及一种使用循环密钥应用于虚拟化的信息密码保护方法。



背景技术:

在许多微处理器应用中,保护信息安全是重要的特征。例如,在基础设施即服务(infrastructure-as-a-service,简称iaas)环境下,处理器被用于服务器中,处理器在所述环境中执行一个或多个虚拟机(vm),通过执行虚拟机管理器(vmm,也称为hypervisor)以便在虚拟机之间划分服务器软、硬件资源,并使虚拟机之间保持隔离。在所述应用环境中,通常虚拟机管理器采用存储器隔离的方法以期望保护每个虚拟机的信息不被其他虚拟机进行存取。然而,虚拟机管理器中的缺陷可能导致虚拟机管理器被攻击者利用,从而使得一个虚拟机可以存取另一个虚拟机的信息。在某些时候,iaas服务器的用户所运行的程序涉及敏感信息,由于提供服务的服务商掌握着具有较高权限的虚拟机管理器,出于安全因素的考量,服务商也不可能得到用户完全的信任。在所述应用环境中,一种基于内存加密技术的虚拟化方案用于保护虚拟机的信息,使得即使是拥有运行虚拟机管理器的服务器提供商,也不能对受密码保护的虚拟机信息进行有意义的存取。在中国专利编号106062768中,大卫·a·卡普兰示出一种应用于虚拟化的存储器数据加密技术,其通过在存储器存取请求过程中使用存储器地址的标记作为密码指示,在数据存储至存储器时对数据执行加密,在数据取出时对数据执行解密。在此实施例中,应用密码技术中使用的密钥对于用户和服务商都是不可存取的,从而保证数据的安全。

任何密码技术都存在被攻击的风险。通常业界会在短时间内(例如,1小时)变更密钥以提高密码技术的抗攻击能力。本案的发明人注意到,在卡普兰示出的技术方案中,应用密码技术的密钥在虚拟机启动后至关机(或复位)前是唯一的,且在较长的一段时间(例如,3个月)内是不变的,如果需要,只能通过停止服务(例如,重启服务器或虚拟机)的方式以更换密钥。由于现代密码技术的算法是公开的,即使不公开实施方案,通过攻击手段也可以获得应用细节,如果一个密钥被长时间使用,就会存在信息泄露,而使用时间越长泄露的信息就会越多,并且风险就会越大。当恶意攻击者收集到足够的信息后,即使没有攻破现代密码技术中使用的密钥,卡普兰示出的技术也将形同虚设,虚拟机中所存储的任何加密数据(通常包含需要保护的敏感信息)都将存在泄露的风险。



技术实现要素:

本发明主要针对一种信息密码保护装置和方法,适用于解决前述问题与对付已知技术的其他问题、缺点与限制。本发明提供较佳的技术,以在微处理器平台上改进安全加密技术以增强应用于虚拟化技术的安全保障。本发明提供了一种在系统中使用多个密钥,并且可以在短时间内更换密钥的方法。

为实现上述目的,本发明提供了一种信息密码保护装置,该信息密码保护装置,包括:存储器控制器和存储器。存储器包括至少一个安全信息。存储器控制器包括:地址转换模块用于根据页表将存储器存取的地址进行地址转换。页表包括从虚拟地址到物理地址间的映射,以及物理地址和信息位的对应关系,信息位用于判断标记该地址信息所指向的页面是否使用密码保护。加密模块用于根据地址转换模块提供的存储器地址以及信息位对信息进行加密或解密。存储器控制器在更换密钥时,根据页表中的物理地址,将至少一个安全信息从存储器中获取出来,并且加密模块根据物理地址对应的信息位,用第一密钥进行解密,解密后的信息用第二密钥进行加密,再存放回存储器中。第二密钥用于替代第一密钥。

优选地,信息位包括密钥选择位和密钥标记位。密钥选择位用于记录页面信息加密类型,密钥标记位用于记录页面信息安全类型。

优选地,处理器还包括高速缓存。高速缓存中包括转换后备缓冲器(tlb),转换后备缓冲器(tlb)用于存放常用的页表信息。

优选地,存储器控制器设置有至少两个密钥,信息位包括密钥选择位,加密模块通过判断地址信息中的密钥选择位,选择至少两个密钥中的一个密钥对安全信息进行加解密。该密钥所对应的是至少一个虚拟机即客机,每个客机都会用到至少两个密钥。主机无法得知客机的密钥。保证客机的安全信息不被主机获得。不同虚拟机之间密钥互不相同,保证虚拟机之间相互安全。

优选地,页表包括客机页表和主机页表,地址转换模块根据存储器访问查找客机页表,获取存储器访问所指向的客机物理地址以及对应的信息位,根据信息位确定存储器访问是否采用密钥,根据客机物理地址查找主机页表获得主机物理地址。

优选地,地址转换模块根据页表将存储器存取的地址进行地址转换。页表包括从虚拟地址到物理地址间的映射,以及物理地址和信息位的对应关系,信息位用于判断标记该地址信息所指向的页面是否使用密码保护。根据地址转换模块提供的存储器地址以及信息位对信息进行加密或解密。

优选地,当密钥至少有两个时,信息位包括密钥选择位和密钥标记位,根据地址转换模块提供的存储器地址以及信息位对信息进行加密或解密包括根据密钥选择位选择密钥。

为实现上述目的,本发明还提供了一种信息密码保护方法,方法包括:满足密钥更新条件,触发密钥更新。锁定需要更改密钥的物理页面。用第一密钥解密该物理页面存储的数据,并用第二密钥重新加密。其中第二密钥用于替代第一密钥。解锁该物理页面。

优选地,用旧密钥解密该物理页面,并用新密钥重新加密具体包括:加密模块将物理页面信息用旧密钥进行解密,解密后的信息存放于加密模块内部开辟一块真实的物理空间或在高速缓存中通过虚拟地址映射。加密模块选用新的密钥对解密后的信息进行重新加密。

优选地,更新页表中该物理页面的密钥选择位,由加密模块中的安全处理器实现更新操作。

优选地,加密模块的开关通过保护模式进行控制。

本发明实施例与本领域内现有的技术方案相比,缩短了应用密码技术中的密钥的生命周期,降低了相关安全信息泄露造成的风险。在系统中,密钥更新的触发条件是暴露给用户的,由用户根据其自身的安全策略的需要而设置,密钥的控制权交到了用户手中,为用户的信息安全管控提供了额外的保障方法,使得信息的安全性得到进一步的增强。

附图说明

图1本发明实施例提供的一种信息密码保护装置示意图;

图2本发明实施例提供的一种信息密码保护装置改进示意图。

图3为图2所示实施例提供的一种信息密码保护装置安全存储器存取示意图;

图4为图2所示实施例提供的一种信息密码保护装置虚拟机与主机地址转换示意图;

图5为本发明实施例提供的一种信息密码保护方法安全信息存取流程图;

图6为本发明实施例提供的一种信息密码保护方法密钥更新流程图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

如图1所示,为本发明实施例提供的一种信息密码保护装置示意图。

当处理器得到一个读取存取请求时,位于加密模块105中的地址转换器301通过请求的虚拟地址转换为物理地址,并且识别物理地址信息中的信息位。信息位可以包括密钥选择位和密钥标记位,密钥标记位也可称为c位(cipher)。根据得到的物理地址,从存储器104中获取安全信息。安全信息通过加密模块107时,检查c位,选择用密钥对安全信息进行解密,并存储到位于处理器101中的高速缓存102里。

当处理器101得到一个写入存取请求时,加密模块105中的地址转换器301通过请求的虚拟地址转换为物理地址,并且得到页表中物理地址信息中的c位置位。据地址信息中的c位,加密模块105将存储在高速缓存102中的数据,选择用密钥进行加密。然后将加密后的安全信息存储在存储器104中。

加密模块105的使用通过保护模式进行控制。保护模式包括:开启、激活和关闭。当硬件条件满足本申请所提供的信息密码保护时,保护模式即可开启。再配合相应的操作系统以及相关代码的输入等软件操作,保护模式即可激活。当保护模式开启并激活后,加密模块才能对安全信息进行加密或解密处理。当保护模式关闭后,加密模块停止工作,任何信息通过加密模块都不能进行相应的加密或解密处理。

图2为本发明实施例提供的一种信息密码保护装置改进示意图。在本实施例中,信息密码保护装置可以提供一个以上的密钥,信息位则可包括密钥选择位和密钥标记位,对密钥进行选择。

如图2所示,当处理器101得到一个读取存取请求时,位于加密模块中的地址转换器301将请求的虚拟地址转换为物理地址,并且识别物理地址信息中的c位和密钥选择位。根据得到的物理地址,从存储器104中获取安全信息。安全信息通过加密模块105时,检查c位和密钥选择位,选择相应密钥(如密钥a或密钥b)对安全信息进行解密,并存储到位于处理器101中的高速缓存102里。

当处理器101得到一个写入存取请求时,加密模块105中的地址转换器301通过请求的虚拟地址转换为物理地址,并且识别物理地址信息中的c位和密钥选择位。根据地址信息中的c位和密钥选择位,加密模块105将存储在高速缓存102中的数据,选择相应的密钥(如密钥a或密钥b)进行加密。然后将加密后的安全信息存储在存储器104中。

如图3所示,为图1和图2所示实施例提供的一种信息密码保护装置安全存储器存取示意图。

当处理器得到一个存取请求时,地址转换模块301根据请求中的虚拟地址查找转换后备缓冲器(tlb)302或页表303。找到对应的物理地址。地址转换模块301是一般被配置来从处理器核心中的一个或两个接收针对对应存储器存取请求的虚拟地址的模块。转换后备缓冲器(tlb)302位于高速缓存102中,存放常用的地址转换信息。当地址转换器301在转换后备缓冲器(tlb)302中找到相应虚拟地址的映射,即可得到相应的物理地址。当地址转换器301在转换后备缓冲器(tlb)302中没有找到相应虚拟地址的映射,便会去页表303中寻找相应的物理地址。物理地址信息包含c位和密钥选择位。c位用于识别存取的安全类型,是加密或是非加密。密钥选择位用于确定加密的密钥类型(如密钥a或密钥b)。

如图4所示,为图1和图2所示实施例提供的一种信息密码保护装置虚拟机与主机地址转换示意图。

在虚拟机之上运行的是客机系统401,运行虚拟机管理器的是主机系统402,客机的存储器物理地址包含用于指示存储器存取请求的安全类型(例如,安全或非安全)以及用于密码保护所选择的密钥(例如,密钥a或密钥b)。客机与主机之间通过多级页表(例如,二级页表)的方式进行存储器页面的映射。当处理器101得到一个虚拟机发出的存取请求时,地址转换模块301根据请求中的虚拟地址先在客机页表中进行查找,得到客机物理地址。地址转换模块301再用客机物理地址在主机页表中查询,得到主机物理地址。在地址转换过程中,位于图2中的加密模块105根据客机物理地址中的c位与密钥选择位的指示,对存储器存取请求指示的存储器页面使用合适的密钥执行密码保护。

如图5所示,为本发明实施例提供的一种信息密码保护方法安全信息存取流程图。

首先处理器在步骤501接收一个存储器存取请求,处理器在步骤502根据地址识别其对应的物理地址以及c位。当c位未被设置时,表示该物理页面未使用密码保护,即可直接满足存储器存取请求(在步骤503)。当c位被设置时,需要在步骤504根据虚拟机的标识识别该虚拟机,可以在步骤505根据本次存储器存取请求的物理地址所指示的密钥选择位来选择该虚拟机所使用的密钥。在步骤506使用所识别的密钥对存储器物理页面的数据进行加密或解密的操作,在步骤507利用加密或解密后的信息满足本次存储器存取请求。

如图6所示,为本发明实施例提供的一种信息密码保护方法密钥更新流程图。

方法包括:满足密钥更新条件,触发密钥更新。锁定需要更改密钥的物理页面。用旧密钥解密该物理页面,并用新密钥重新加密。解锁该物理页面。当密钥至少有两个时,还需更新页表中该物理页面的密钥选择位。用旧密钥解密该物理页面,并用新密钥重新加密具体包括:加密模块将物理页面信息用旧密钥进行解密,解密后的信息存放于加密模块内部开辟一块真实的物理空间或在高速缓存中通过虚拟地址映射。加密模块选用新的密钥对解密后的信息进行重新加密。更新页表中该物理页面的密钥选择位,由加密模块中的安全处理器实现更新操作。

密钥更新的触发条件根据客机的安全策略需要被设置为由客机系统触发。在一些实施例中,触发条件被设置为客机系统空闲时(例如,处理器使用率小于5%),选择在系统低负载时执行密钥更新流程可以降低对系统整体的数据吞吐性能的影响。在又一实施例中,密钥更新的触发条件被设置为在一个时间区间内随机选择时间点执行密钥更新流程,这样可以提高客机系统的不可预测性,以提高攻击者的攻击成本,从而提高客机系统对抗攻击的能力。密钥更新的过程可以拆分为若干独立的子过程,加密模块维护存储器页面的密钥使用与更新记录(例如,存储器页面被使用的引用计数器),对于所有需要更新的被密码保护的存储器页面,每个子过程更新其中的一部分并维护更新记录使其保持一致,当所有的子过程执行完毕后,所有需要更新的存储器都被更新完毕。子过程不限数量,因而密钥更新的过程是可以随意分割的,最小单位为一个存储器页面。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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