内存页面交换方法和安全处理器与流程

专利2022-06-30  53

本申请是申请日为2017年8月4日,申请号为“201710662088.7”,发明名称为“加密方法、装置及解密方法、装置”的发明专利申请的分案申请。本发明涉及计算机安全领域,尤其涉及一种内存页面交换方法和安全处理器。
背景技术
::在计算机服务器系统运行的过程中,因为某种原因,例如物理内存不够,需要将内存中的某些页面(page)换出到交换(swap)空间,从而将该物理页面给本虚拟机或者其他虚拟机使用。计算机中服务器操作系统(operatingsystem,os)在做swap处理的时候,比如,在超威半导体公司(advancedmicrodevices,amd)的安全加密虚拟化(secureencryptedvirtualization,sev)加密,安全存储加密(securememoryencryption,sme)方案中,当物理页面被换出到swap空间的时候,并没有加密,即swap空间中保存的内容没有加密,此时,黑客或者不法分子可以窃取swap空间中存储的内容,从而造成机密信息的被攫取或泄露。技术实现要素:本发明实施例提供了一种加密方法、装置及解密方法、装置,以解决页面从内存换出到swap空间时,页面被窃取或者泄露的问题,以及当页面从swap空间换入内存时,页面不完整的问题。第一方面,提供了一种加密方法,所述方法应用于将第一页面从第一空间换出到第二空间,所述方法包括:加解密硬件接收操作系统os发送的第一页面的物理地址和页面属性pageattribute;在被所述物理地址和所述pageattribute触发后,生成第一随机数;根据预存的交换页面根密钥swaprootkey以及所述第一随机数,生成第一密钥和第二密钥;根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;根据所述第二密钥、所述第一随机数、第二随机数、初始向量iv、第一页面的加密内容及所述pageattribute生成第一页面的信息验证码mac;其中,所述第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;将所述encrypt_facility_info发送给所述os。在一种可能的实现方式中,当所述os为主机hostos时,所述第一页面的物理地址为第一页面的真正物理地址;或者,当所述os为客机guestos时,所述第一页面的物理地址为第一页面的虚拟物理地址。在一种可能的实现方式中,当hostos将guestos的第一页面从第一空间换出到第二空间时,所述加解密硬件接收os发送的第一页面的物理地址和pageattribute,具体包括:所述加解密硬件接收hostos发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的pageattribute,以及虚拟机标签vmid。在一种可能的实现方式中,所述加解密硬件接收hostos发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的pageattribute,以及vmid之后,还包括:在被所述第一页面的真正物理地址和所述pageattribute触发后,所述加解密硬件生成第一随机数;将所述第一页面的虚拟物理地址和所述vmid进行验证,以及,查询内存中预存的页框属性表pfat,将所述第一页面的真正物理地址和所述pfat中的第一页面的真正物理地址进行验证;当验证通过后,根据预存的swaprootkey以及所述第一随机数,生成第一密钥和第二密钥。第二方面,提供了一种加密装置,所述装置应用于将第一页面从第一空间换出到第二空间,所述装置包括:接收单元,用于接收os发送的第一页面的物理地址和pageattribute;生成单元,用于在被所述物理地址和所述pageattribute触发后,生成第一随机数;所述生成单元,还用于根据预存的swaprootkey以及所述第一随机数,生成第一密钥和第二密钥;加密单元,用于根据所述第一密钥,对第一页面进行加密,生成第一页面的加密内容;所述生成单元,还用于根据所述第二密钥、所述第一随机数、第二随机数、初始向量iv、第一页面的加密内容及所述pageattribute生成第一页面的信息验证码mac;其中,所述第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容,构成加密辅助信息encrypt_facility_info;发送单元,将所述encrypt_facility_info发送给所述os。在一种可能的实现方式中,当所述os为主机hostos时,所述第一页面的物理地址为第一页面的真正物理地址;或者,当所述os为客机guestos时,所述第一页面的物理地址为第一页面的虚拟物理地址。在一种可能的实现方式中,当hostos将guestos的第一页面从第一空间换出到第二空间时,所述接收单元,具体用于:接收hostos发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的pageattribute,以及虚拟机标签vmid。在一种可能的实现方式中,所述装置还包括:验证单元;所述生成单元,还用于在被所述第一页面的真正物理地址和所述pageattribute触发后,生成第一随机数;所述验证单元,用于将所述第一页面的虚拟物理地址和所述vmid进行验证,以及,查询内存中预存的页框属性表pfat,将所述第一页面的真正物理地址和所述pfat中的第一页面的真正物理地址进行验证;所述生成单元,还用于当验证通过后,根据预存的swaprootkey以及所述第一随机数,生成第一密钥和第二密钥。第三方面,提供了一种解密方法,所述方法应用于将第一页面从第二空间换入到第一空间,所述方法包括:加解密硬件接收os发送的encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、iv、pageattribute、信息验证码及第一页面的加密内容;根据加解密硬件中预存的swaprootkey以及所述第一随机数,生成第一密钥和第二密钥;根据所述第二密钥和mac,对所述第一页面进行完整性校验;在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;将所述第一页面发送给所述os。第四方面,提供了一种解密装置,所述装置应用于将第一页面从第二空间换入到第一空间,所述装置包括:接收单元,用于接收操作系统os发送的加密设施信息encrypt_facility_info;其中,所述encrypt_facility_info包括第一随机数、第二随机数、初始向量iv、页面属性pageattribute、信息验证码及第一页面的加密内容;生成单元,用于根据加解密硬件中预存的交换页面根密钥swaprootkey以及所述第一随机数,生成第一密钥和第二密钥;校验单元,用于根据所述第二密钥和mac,对所述第一页面进行完整性校验;解密单元,用于在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面;发送单元,用于将所述第一页面发送给所述os。第五方面,提供了一种内存页面交换方法,包括:从操作系统接收待交换的内存页面的物理地址和页面属性;使用第一密钥加密所述内存页面,生成所述内存页面的加密内容;使用第二密钥、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码;以及向所述操作系统发送所述内存页面的加密内容和所述信息验证码。在一种可能的实现方式中,所述方法还可以包括:生成页面交换根密钥和第一随机数;根据所述页面交换根密钥和第一随机数生成所述第一密钥和所述第二密钥。在一种可能的实现方式中,所述生成所述内存页面的信息验证码,具体可以包括:使用第二密钥、第二随机数、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码。在一种可能的实现方式中,所述方法还可以包括:向所述操作系统发送包括所述第一随机数、所述第二随机数、所述页面属性、所述内存页面的加密内容和所述信息验证码的加密辅助信息。在一种可能的实现方式中,所述方法还可以包括:使得所述操作系统更新页表,将对应的内存页面标记为可用。在一种可能的实现方式中,当所述操作系统是主机操作系统,且所述待交换的内存页面是主机操作系统自身使用的内存页面时,所述物理地址可以是所述内存页面的真正物理地址;当所述操作系统是客机操作系统时,所述物理地址可以是所述内存页面的虚拟物理地址。在一种可能的实现方式中,当所述操作系统是主机操作系统,且所述待交换的内存页面是客机操作系统使用的内存页面时,所述方法可以包括:从所述操作系统接收所述内存页面的真正物理地址、所述内存页面的虚拟物理地址、所述内存页面的页面属性、以及虚拟机标签。在一种可能的实现方式中,所述方法还可以包括:查询页框属性表,验证所述内存页面的虚拟物理地址是否属于所述虚拟机标签,并验证所述内存页面的真正物理地址是否与所述页框属性表中的所述内存页面的真正物理地址一致;以及当验证通过后,生成所述第一密钥和所述第二密钥。在一种可能的实现方式中,所述方法可以由安全处理器执行。第六方面,提供了一种安全处理器,包括:接收单元,用于从操作系统接收待交换的内存页面的物理地址和页面属性;生成单元,用于使用第一密钥加密所述内存页面,生成所述内存页面的加密内容;所述生成单元还用于使用第二密钥、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码;以及发送单元,用于向所述操作系统发送所述内存页面的加密内容和所述信息验证码。在一种可能的实现方式中,所述生成单元还可以用于生成页面交换根密钥和第一随机数,以及用于根据所述页面交换根密钥和第一随机数生成所述第一密钥和所述第二密钥。在一种可能的实现方式中,所述生成单元还可以用于使用第二密钥、第二随机数、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码。在一种可能的实现方式中,所述发送单元还可以用于向所述操作系统发送包括所述第一随机数、所述第二随机数、所述页面属性、所述内存页面的加密内容和所述信息验证码的加密辅助信息。在一种可能的实现方式中,当所述操作系统是主机操作系统,且所述待交换的内存页面是主机操作系统自身使用的内存页面时,所述接收单元接收到的物理地址可以是所述内存页面的真正物理地址;当所述操作系统是客机操作系统时,所述接收单元接收到的物理地址可以是所述内存页面的虚拟物理地址。在一种可能的实现方式中,当所述操作系统是主机操作系统,且所述待交换的内存页面是客机操作系统使用的内存页面时,所述接收单元可以用于从所述操作系统接收所述内存页面的真正物理地址、所述内存页面的虚拟物理地址、所述内存页面的页面属性、以及虚拟机标签。在一种可能的实现方式中,所述安全处理器还可以包括:验证单元,所述验证单元用于查询页框属性表,验证所述内存页面的虚拟物理地址是否属于所述虚拟机标签,并验证所述内存页面的真正物理地址是否与所述页框属性表中的所述内存页面的真正物理地址一致;以及所述生成单元还用于当验证通过后,生成所述第一密钥和所述第二密钥。第七方面,提供了一种内存页面交换方法,包括:从操作系统接收加密辅助信息,所述加密辅助信息包括内存页面的加密内容和信息验证码;生成第一密钥和第二密钥;使用所述第二密钥和所述信息验证码对所述内存页面进行完整性校验;在完整性校验通过后,使用所述第一密钥对所述内存页面的加密内存进行解密,生成解密的内存页面;以及向所述操作系统发送所述解密的内存页面。在一种可能的实现方式中,所述加密辅助信息还可以包括第一随机数,所述方法还可以包括:根据预存的交换页面根密钥和所述第一随机数,生成所述第一密钥和所述第二密钥。在一种可能的实现方式中,所述加密辅助信息还可以包括第二随机数,所述方法还可以包括:检查所述第二随机数,当验证通过后,发送所述解密的内存页面。在一种可能的实现方式中,所述方法还可以包括:使得所述操作系统更新页表。第八方面,提供了一种安全处理器,包括:接收单元,用于从操作系统接收加密辅助信息,所述加密辅助信息包括内存页面的加密内容和信息验证码;生成单元,用于生成第一密钥和第二密钥;校验单元,用于使用所述第二密钥和所述信息验证码对所述内存页面进行完整性校验;解密单元,用于在完整性校验通过后,使用所述第一密钥对所述内存页面的加密内存进行解密,生成解密的内存页面;以及发送单元,用于向所述操作系统发送所述解密的内存页面。在一种可能的实现方式中,所述加密辅助信息还可以包括第一随机数,所述生成单元还可以用于根据预存的交换页面根密钥和所述第一随机数,生成所述第一密钥和所述第二密钥。在一种可能的实现方式中,所述加密辅助信息还可以包括第二随机数,校验单元还可以用于检查所述第二随机数;所述发送单元还可以用于当验证通过后发送所述解密的内存页面。附图说明图1为本发明实施例提供的生成swaprootkey的示意图;图2为本发明实施例一提供的加密方法流程示意图;图3为本发明实施例一提供的加密方法的一种实现方式示意图;图4为本发明实施例一提供的加密方法的又一种实现方式示意图;图5为本发明实施例一提供的加密方法的再一种实现方式示意图;图6为本发明实施例二提供的解密方法流程示意图;图7为本发明实施例二提供的一种实现方式示意图的一种实现方式示意图;图8为本发明实施例二提供的解密方法又一种实现方式示意图;图9为本发明实施例二提供的解密方法再一种实现方式示意图;图10为本发明实施例三提供的加密装置结构示意图;图11为本发明实施例四提供的解密装置结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图和实施例,对本发明实施例中的技术方案进行清楚地描述。图1为本发明实施例提供的生成交换页面根密钥(swaprootkey)的示意图。如图1所示,在计算机刚启动的时候,在计算机中产生一个一次性密钥,即swaprootkey,并且保存在加解密硬件中,该加解密硬件可以是安全处理器(secureprocessor),此swaprootkey只有加解密硬件可以使用,每次重启计算机时,都生成一个新的swaprootkey。加解密硬件提供接口encrypt_for_page_out,也可以由计算机直接提供特殊特权级指令来实现。图2为本发明实施例一提供的加密方法流程示意图。该方法的执行主体为加解密硬件。该方法应用于将第一页面从第一空间换出到第二空间,第一空间可以是内存,第二空间可以是swap空间,比如当内存不够使用时,需要将一些物理页面临时换出到swap空间,os可以是主机操作系统(hostos),比如,虚拟机管理器(hypervisor),也可以是客机操作系统(guestos)。如图2所示,该方法包括以下步骤:步骤210,加解密硬件接收os发送的第一页面的物理地址和页面属性(pageattribute)。步骤220,在被物理地址和pageattribute触发后,生成第一随机数。其中,加解密硬件在接收到物理地址和pageattribute后,生成第一随机数。步骤230,根据预存的swaprootkey以及第一随机数,生成第一密钥和第二密钥。步骤240,根据第一密钥,对第一页面进行加密,生成第一页面的加密内容。步骤250,根据第二密钥、第一随机数、第二随机数、初始向量(initializationvector,iv)、第一页面的加密内容及pageattribute生成第一页面的信息验证码(messageauthenticationcode,mac);其中,第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容,构成加密辅助信息encrypt_facility_info。步骤260,将encrypt_facility_info发送给所述os。在一种可能的实现方式中,当os为hostos,比如hypervisor时,hypervisor可以将自身使用的内存页面换出到swap空间。如图3所示,首先,hypervisor得到需要换出页面的物理地址,该物理地址为页面的真正物理地址,例如,第一页面的真正物理地址。然后,查询自己的页表得出该第一页面的相关信息,即pageattribute,比如第一页面的读写权限等。接着,将第一页面的物理地址及pageattribute发送给加解密硬件。加解密硬件接收到第一页面的物理地址及pageattribute后,随机生成第一随机数key_id。根据预存的swaprootkey和key_id,生成第一密钥,即页面加密密钥pageencryptkey,以及第二密钥,即页面完整性密钥pageintegritykey。加解密硬件进行加密计算,即利用pageencryptkey进行加密计算,比如,利用高级加密标准(advancedencryptionstandard,aes)算法对第一页面进行加密计算,生成第一页面的加密内容。接着,加解密硬件进行完整性计算,即利用第二密钥、第一随机数、第二随机数,即唯一编码(uniqueidentification,uid)、(initializationvector,iv)、第一页面的加密内容以及pageattribute,生成第一页面的mac。其中,第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容,构成encrypt_facility_info。最后,将encrypt_facility_info发送给hypervisor。hypervisor更新自己的页表,将页表中对应的表项删除,即删除页面中的一个条目,比如虚拟地址到物理地址的映射,将页面标记为可用。在另一个可能的实现方式中,当os为guestos时,guestos可以将自身使用的内存页面换出到swap空间。如图4所示,首先,guestos得到需要换出页面的物理地址,此时,该第一页面的物理地址,在guestos来看,其为第一页面的真正物理地址,但在hostos来看,是第一页面的虚拟物理地址。然后,guestos查询自己的页表得出该第一页面的pageattribute。接着,将第一页面的物理地址及pageattribute发送给加解密硬件。加解密硬件接收到第一页面的物理地址及pageattribute后,随机生成第一随机数key_id。根据预存的swaprootkey和key_id,生成pageencryptkey以及pageintegritykey。加解密硬件进行加密计算及完整性计算,生成第一页面的加密内容及第一页面的mac。最后,将encrypt_facility_info发送给guestos。guestos更新自己的页表,将页表中对应的表项删除,即删除页面中的一个条目,比如虚拟地址到物理地址的映射,将页面标记为可用。在再一种可能的实现方式中,hostos,比如hypervisor,经授权可以将guestos使用的内存页面换出到swap空间。首先,hypervisor根据某些策略寻找可以换出的guestos的页面的物理地址,(该页面的物理地址在guestos看来是页面的真正物理地址,在hostos看来是页面的虚拟物理地址)比如第一页面的物理地址,其中,该些策略可以根据页面访问的频率,频率低则可以换出,或者也可以根据页面访问的时间,如果访问时间早,最近没有访问,则可以换出等。由于这时第一页面的pageattribute根据实现不同有可能部分信息hypervisor无法获取,这里hypervisor可以清空,余下信息由硬件补上,或者如果hypervisor对这部分信息有记录,hypervisor可以提供,但是硬件需要对这部分信息进行验证。然后hypervisor查看页表,得到第一页面真正的物理地址,最后将需要加密的第一页面真正的物理地址,第一页面的虚拟物理地址,虚拟机标签(virtualmachineidentifier,vmid),pageattribute等一起发送给加解密硬件。加解密硬件随机产生key_id,然后查询页框属性表(pageframeattributetable,pfat),验证第一页面的虚拟物理地址是否属于vmid,第一页面的真正物理地址与输入是否(即与pfat中第一页面的真正物理地址)一致。如果验证失败,则返回错误。如果验证通过,根据swaprootkey和key_id产生pageencryptkey和pageintegritykey,进行加密计算和完整性计算,更新pfat。然后将encrypt_facility_info发送给hypervisor。hypervisor删除自己维护的guestos物理地址到hostos物理地址映射表中的表项,标记物理页面可用。需要说明的是,后两种实现方式中所描述的加密计算以及完整性计算与第一种实现方式中的过程相同,此处不再赘述。其中,第二随机数uid,用于防止重放攻击;iv由加解密硬件指定或者随机产生。由此,实现了在将页面从内存换出到swap空间时,对换出的页面进行了完整性保护和加密,进而防止了机密内容泄露或者被篡改。图6为本发明实施例二提供的解密方法流程示意图。该方法的执行主体为加解密硬件。该方法应用于将第一页面从第二空间换入到第一空间,第一空间可以是内存,第二空间可以是swap空间,比如当运行时发生缺页中断,需要将一些物理页面换出到内存。如图6所示,该方法包括以下步骤:步骤610,加解密硬件接收os发送的第一页面的encrypt_facility_info。其中,encrypt_facility_info包括第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容。步骤620,根据加解密硬件中预存的swaprootkey以及第一随机数,生成第一密钥和第二密钥。步骤630,根据所述第二密钥和mac,对第一页面进行完整性校验。步骤640,在完整性校验通过后,根据所述第一密钥,对第一页面的加密内容进行解密,生成第一页面。步骤650,将第一页面发送给os。在一种可能的实现方式中,当os为hostos,比如hypervisor时,hypervisor可以将自己的页面从swap空间换出到内存。如图7所示,hypervisor运行时发生缺页中断,hypervisor寻找空闲物理页面,根据缺页线性地址,从swap空间查找到需要换入到内存的页面的物理地址,比如需要换入内存的页面为第一页面,将第一页面的加密结果拷贝到此空闲页面,最后将第一页面的encrypt_facility_info,发送给加解密硬件。加解密硬件用其预存的swaprootkey,以及encrypt_facility_info中预存的key_id计算出第一密钥和第二密钥,并利用第二密钥和mac,进行完整性校验,接着,在完整性校验通过后,利用第一密钥,解密第一页面的加密内容。然后,检查uid,如果验证没有通过,则返回错误结果。如果验证通过,那么返回第一页面。最后,加解密硬件将第一页面发送给hypervisor,hypervisor更新页表。在另一种可能的实现方式中,当os为guestos时,可以将自己页面从swap空间换入内存。如图8所示,guestos运行时发生缺页中断,其os从物理内存中寻找空闲物理页面,根据缺页线性地址,找到空闲物理页面,然后从swap空间寻找需要换入内存的页面的encrypt_facility_info,即第一页面的encrypt_facility_info,将encrypt_facility_info拷贝到此空闲物理页面,最后将encrypt_facility_info,发送给加解密硬件。加解密硬件用key_id和swaprootkey计算出第一密钥和第二密钥,利用第二密钥和mac做完整性校验,接着,在完整性校验通过后,利用第一密钥解密第一页面的加密内容,然后检查uid,如果验证没有通过,则返回错误结果。如果验证通过,那么返回第一页面。最后,加解密硬件将第一页面发送给guestos,guestos更新页表。在再一种可能的实现方式中,hypervisor经授权可以将guestos需要使用的页面从swap空间换入到内存。如图9所示,首先guestos在运行时发生缺页中断,hypervisor捕获这个中断,得到需要换入的guestos物理页面地址,比如,第一页面的物理地址。然后,hostos寻找空闲物理页面,找到后,根据guestos物理页面地址,从swap空间查找需要换出到内存的第一页面的加密结果,拷贝到此空闲页面。最后将此页面和相对应的encrypt_facility_info,发送给加解密硬件。加解密硬件用key_id和swaprootkey计算出pageintegritykey做完整性检查,计算出pageencryptkey解密,然后检查uid,如果验证没有通过,则返回错误结果。如果验证通过,更新pfat,记录vmid等信息,返回第一页面给hypervisor。hypervisor接收到第一页面后,更新guestos物理页面到host物理页面映射表,物理页面地址标记为可用。由此,实现了将页面从swap空间换入内存时,做完整性校验和解密,实现了对加密内容的完整性校验及解密。图10为本发明实施例三提供的加密装置结构示意图。该装置1000应用于将第一页面从第一空间换出到第二空间,如图10所示,装置1000包括:接收单元1010,生成单元1020,加密单元1030,发送单元1040。接收单元1010,用于接收os发送的第一页面的物理地址和pageattribute。生成单元1020,用于在被所述物理地址和pageattribute触发后,生成第一随机数。生成单元1020,还用于根据预存的swaprootkey以及第一随机数,生成第一密钥和第二密钥。加密单元1030,用于根据第一密钥,对第一页面进行加密,生成第一页面的加密内容。生成单元1020,还用于根据第二密钥、第一随机数、第二随机数、iv、第一页面的加密内容及pageattribute,生成第一页面的mac;其中,第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容,构成encrypt_facility_info。发送单元1040,用于将encrypt_facility_info发送给os。其中,当os为主机hostos时,第一页面的物理地址为第一页面的真正物理地址;或者,当os为客机guestos时,第一页面的物理地址为第一页面的虚拟物理地址。其中,当hostos将guestos的第一页面从第一空间换出到第二空间时,接收单元1010,具体用于:接收hostos发送的第一页面的真正物理地址、第一页面的虚拟物理地址、第一页面的pageattribute,以及vmid。其中,所述装置还包括:验证单元1050。生成单元1020,还用于在被第一页面的真正物理地址和pageattribute触发后,生成第一随机数。验证单元1050,用于将第一页面的虚拟物理地址和vmid进行验证,以及,查询内存中预存的pfat,将第一页面的真正物理地址和pfat中的第一页面的真正物理地址进行验证。生成单元1020,还用于当验证通过后,根据预存的swaprootkey以及第一随机数,生成第一密钥和第二密钥。图11为本发明实施例四提供的解密装置结构示意图。该解密装置1100应用于将第一页面从第二空间换入到第一空间,包括:接收单元1110,生成单元1120,解密单元1130,校验单元1140和发送单元1150。接收单元1110,用于接收os发送的encrypt_facility_info;其中,encrypt_facility_info包括第一随机数、第二随机数、iv、pageattribute、mac及第一页面的加密内容。生成单元1120,用于根据加解密硬件中预存的swaprootkey以及第一随机数,生成第一密钥和第二密钥。校验单元1130,用于根据第二密钥和mac,对第一页面进行完整性校验。解密单元1140,用于在完整性校验通过后,根据第一密钥,对第一页面的加密内容进行解密,生成第一页面。发送单元1150,用于将第一页面发送给os。结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种内存页面交换方法,包括:

从操作系统接收待交换的内存页面的物理地址和页面属性;

使用第一密钥加密所述内存页面,生成所述内存页面的加密内容;

使用第二密钥、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码;以及

向所述操作系统发送所述内存页面的加密内容和所述信息验证码。

2.如权利要求1所述的方法,所述方法还包括:生成页面交换根密钥和第一随机数;根据所述页面交换根密钥和第一随机数生成所述第一密钥和所述第二密钥。

3.如权利要求1所述的方法,其中,所述生成所述内存页面的信息验证码,具体包括:使用第二密钥、第二随机数、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码。

4.如权利要求1所述的方法,所述方法还包括:向所述操作系统发送包括所述第一随机数、所述第二随机数、所述页面属性、所述内存页面的加密内容和所述信息验证码的加密辅助信息。

5.如权利要求1所述的方法,所述方法还包括:使得所述操作系统更新页表,将对应的内存页面标记为可用。

6.如权利要求1所述的方法,其中,当所述操作系统是主机操作系统,且所述待交换的内存页面是主机操作系统自身使用的内存页面时,所述物理地址是所述内存页面的真正物理地址;

当所述操作系统是客机操作系统时,所述物理地址是所述内存页面的虚拟物理地址。

7.如权利要求1所述的方法,其中,当所述操作系统是主机操作系统,且所述待交换的内存页面是客机操作系统使用的内存页面时,所述方法包括:

从所述操作系统接收所述内存页面的真正物理地址、所述内存页面的虚拟物理地址、所述内存页面的页面属性、以及虚拟机标签。

8.如权利要求7所述的方法,所述方法还包括:查询页框属性表,验证所述内存页面的虚拟物理地址是否属于所述虚拟机标签,并验证所述内存页面的真正物理地址是否与所述页框属性表中的所述内存页面的真正物理地址一致;以及

当验证通过后,生成所述第一密钥和所述第二密钥。

9.如权利要求1-8中任一项所述的方法,所述方法由安全处理器执行。

10.一种安全处理器,包括:

接收单元,用于从操作系统接收待交换的内存页面的物理地址和页面属性;

生成单元,用于使用第一密钥加密所述内存页面,生成所述内存页面的加密内容;

所述生成单元还用于使用第二密钥、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码;以及

发送单元,用于向所述操作系统发送所述内存页面的加密内容和所述信息验证码。

11.如权利要求10所述的安全处理器,所述生成单元还用于生成页面交换根密钥和第一随机数,以及用于根据所述页面交换根密钥和第一随机数生成所述第一密钥和所述第二密钥。

12.如权利要求10所述的安全处理器,其中,所述生成单元还用于使用第二密钥、第二随机数、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码。

13.如权利要求10所述的安全处理器,所述发送单元还用于向所述操作系统发送包括所述第一随机数、所述第二随机数、所述页面属性、所述内存页面的加密内容和所述信息验证码的加密辅助信息。

14.如权利要求10所述的安全处理器,其中,当所述操作系统是主机操作系统,且所述待交换的内存页面是主机操作系统自身使用的内存页面时,所述接收单元接收到的物理地址是所述内存页面的真正物理地址;

当所述操作系统是客机操作系统时,所述接收单元接收到的物理地址是所述内存页面的虚拟物理地址。

15.如权利要求10所述的安全处理器,其中,当所述操作系统是主机操作系统,且所述待交换的内存页面是客机操作系统使用的内存页面时,所述接收单元用于从所述操作系统接收所述内存页面的真正物理地址、所述内存页面的虚拟物理地址、所述内存页面的页面属性、以及虚拟机标签。

16.如权利要求15所述的安全处理器,所述安全处理器还包括:

验证单元,所述验证单元用于查询页框属性表,验证所述内存页面的虚拟物理地址是否属于所述虚拟机标签,并验证所述内存页面的真正物理地址是否与所述页框属性表中的所述内存页面的真正物理地址一致;以及

所述生成单元还用于当验证通过后,生成所述第一密钥和所述第二密钥。

17.一种内存页面交换方法,包括:

从操作系统接收加密辅助信息,所述加密辅助信息包括内存页面的加密内容和信息验证码;

生成第一密钥和第二密钥;

使用所述第二密钥和所述信息验证码对所述内存页面进行完整性校验;

在完整性校验通过后,使用所述第一密钥对所述内存页面的加密内存进行解密,生成解密的内存页面;以及

向所述操作系统发送所述解密的内存页面。

18.如权利要求17所述的方法,其中,所述加密辅助信息还包括第一随机数,所述方法还包括:根据预存的交换页面根密钥和所述第一随机数,生成所述第一密钥和所述第二密钥。

19.如权利要求17所述的方法,其中,所述加密辅助信息还包括第二随机数,所述方法还包括:检查所述第二随机数,当验证通过后,发送所述解密的内存页面。

20.如权利要求17所述的方法,所述方法还包括:使得所述操作系统更新页表。

21.一种安全处理器,包括:

接收单元,用于从操作系统接收加密辅助信息,所述加密辅助信息包括内存页面的加密内容和信息验证码;

生成单元,用于生成第一密钥和第二密钥;

校验单元,用于使用所述第二密钥和所述信息验证码对所述内存页面进行完整性校验;

解密单元,用于在完整性校验通过后,使用所述第一密钥对所述内存页面的加密内存进行解密,生成解密的内存页面;以及

发送单元,用于向所述操作系统发送所述解密的内存页面。

22.如权利要求21所述的安全处理器,其中,所述加密辅助信息还包括第一随机数,所述生成单元还用于根据预存的交换页面根密钥和所述第一随机数,生成所述第一密钥和所述第二密钥。

23.如权利要求21所述的安全处理器,其中,所述加密辅助信息还包括第二随机数,校验单元还用于检查所述第二随机数;所述发送单元还用于当验证通过后发送所述解密的内存页面。

技术总结
本公开提供了一种内存页面交换方法,包括:从操作系统接收待交换的内存页面的物理地址和页面属性;使用第一密钥加密所述内存页面,生成所述内存页面的加密内容;使用第二密钥、所述页面属性和所述内存页面的加密内容,生成所述内存页面的信息验证码;以及向所述操作系统发送所述内存页面的加密内容和所述信息验证码。本公开了还提供了一种安全处理器。

技术研发人员:张宗耀;应志伟;杜朝晖
受保护的技术使用者:海光信息技术有限公司
技术研发日:2017.08.04
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56040.html

最新回复(0)