在证明有效性时段期间受只读保护的存储器的证明的强制执行的制作方法

文档序号:37227820发布日期:2024-03-05 15:34阅读:18来源:国知局
在证明有效性时段期间受只读保护的存储器的证明的强制执行的制作方法

本公开涉及确保受只读保护的存储器的使用的系统、方法和设备。


背景技术:

1、在计算中,只读存储器历史上已经被体现为数据存储设备(即rom),其存储可以由计算机系统读取但通常不能由计算机系统修改的数据。只读存储器可以有利于存储不可变的数据和/或可执行代码,这些不可变的数据和/或可执行代码免受恶意方的损坏和攻击(例如,重写攻击)。至少部分由于这些优点,最近的创新已经创造了混合存储器情况,其为读/写存储设备(诸如随机存取存储器(ram))的部分上的各种操作(例如,读、写和/或执行)添加原位保护;具体来说,某些技术将可写存储器空间的具体部分在加载后标记为只读,从而提供针对损坏和攻击的保护。

2、在一些情况下,创建受只读保护的存储器的只读存储器保护(romp)技术使用由管理程序管理的二级地址转换(slat)或嵌套分页来实现。因此,标准用户模式或内核模式软件无法与受只读保护的存储器交互,也无法损坏受只读保护的存储器。在一个示例中,来自华盛顿州雷蒙德的微软公司的windows和安全内核支持称为内核数据保护(kdp)的romp技术。kdp提供至少两种方式来对受管理程序只读保护的存储器进行操作。首先,静态kdp允许通过在管理程序中使用slat来对被加载到操作系统(os)内核中的二进制映像的一部分进行只读保护;当该部分是受只读保护(read-only protected)的时,任何写入支持该部分的底层物理存储器的尝试都将根据设计引起系统崩溃。第二,动态kdp允许任何在内核模式下运行的软件请求预初始化的受只读保护的存储器的区块;所返回的存储器可以被释放,但任何写入该受只读保护的存储器的尝试都将根据设计引起系统崩溃。这两种技术可以单独使用,也可以组合使用,以创建高度受保护的数据,这些数据可以抵抗对内核的攻击篡改。其他romp技术在硬件中被实现,诸如通过使用基于硬件的可信执行环境(arm trustzone、英特尔软件保护扩展(sgx))、基于硬件的页表(例如,hlat)等。

3、随着提供代码和控制流完整性的安全技术(例如,来自微软公司的windows操作系统中的代码完整性和控制流保护)的最近的激增,针对攻击的情形正在转向数据损坏。romp技术(诸如kdp和类似技术)通过防止对只读静止数据变量的修改来帮助防范这些攻击。


技术实现思路

1、虽然romp技术(诸如kdp)有效地防止计算机系统处的损坏和攻击,但没有解决方案用于确定当依赖方计算机系统(依赖系统)与客户端系统通信时在客户端计算机系统(客户端系统)处执行的特定软件组件(例如,os、驱动和/或应用)是否受到romp技术的保护。本文描述的至少一些实施例通过支持证明报告的生成来解决该缺点,该证明报告证实在客户端系统处执行的至少一个软件组件受到romp技术(诸如kdp)的保护。在实施例中,该证明报告包括一个或多个经证明的属性。在实施例中,这些经证明的属性包括以下一项或多项:针对其启用romp的二进制映像名称、二进制映像版本、二进制映像的加载时的数字签名、被分配给二进制映像的受只读保护的存储器部分的基本偏移、受只读保护的存储器部分的大小、受只读保护的存储器部分的至少一个性质(例如,二进制映像是否可以被卸载、受只读保护的存储器部分是可释放的还是不可释放的等)、保护底层虚拟到客户物理地址映射的安全romp技术(例如kdp trustzone、sgx、hlat等)的状态、受只读保护的存储器部分底层的物理页的集合、受只读保护的存储器部分的内容的指示(例如,至少一个校验和、哈希、加密哈希等)、或存储器内容的范围列表。在实施例中,依赖系统在向客户端系统发送数据之前和/或在依赖由客户端系统接收的数据之前使用该证明报告来验证这些属性。

2、在一个示例场景中,依赖系统(例如,对应于玩家、游戏服务器等)处的游戏软件可能想要在与客户端系统参与多玩家游戏之前验证该客户端系统(例如,对应于另一玩家)处的反作弊组件尚未被损害(例如,通过修改驱动或由驱动使用的数据)。在这种场景中,并且根据本文的实施例,客户端系统使用romp技术(诸如kdp)来只读保护与该反作弊组件对应的存储器的至少一部分。依赖系统获得加密保护的证明报告。证明报告证实反作弊组件的一项或多项属性,包括与针对反作弊组件的romp的启用相关的至少一项属性。依赖系统至少基于验证针对反作弊组件的romp的存在和启用,使用该证明报告来验证反作弊组件的完整性。至少基于对反作弊组件的完整性的验证,依赖系统处的游戏软件与客户端系统参与多玩家游戏。

3、在另一示例场景中,依赖系统(例如,对应于音频或视频分发服务等)处的密钥分发软件可能想要在向客户端系统发送解密密钥之前验证该客户端系统处的媒体播放器(例如,对应于媒体消费设备)尚未被损害。客户端系统使用romp技术来只读保护与该媒体播放器对应的存储器的至少一部分。依赖系统获得加密保护的证明报告,并且至少基于验证针对媒体播放器的romp的存在和启用,使用该证明报告来验证媒体播放器的完整性,并且在成功验证之后向客户端系统发送解密密钥。

4、在一些实施例中,方法、系统和计算机程序产品针对证明受只读保护的存储器。基于通信请求,客户端计算机系统从依赖方计算机系统接收随机数。客户端计算机系统生成证明证据。该证明证据包括一个或多个经证明的属性,该一个或多个经证明的属性包括针对分配给在计算机系统处被加载的软件组件的受只读保护的存储器的一个或多个经romp证明的属性、随机数和系统安全声明。客户端计算机系统向证明服务计算机系统发送证明证据。基于发送证明证据,客户端计算机系统参与与依赖方计算机系统的依赖通信。

5、证明分布式系统中的受只读保护的存储器的技术效果包括允许对系统状态(例如,客户端系统的状态)做出可验证的保证,提高用于安全计算的基础能力。这些保证进而使依赖系统能够客观地衡量其对客户端系统的信任水平,这促进客户端系统与依赖系统之间的安全数据通信。

6、在实施例中,证明报告具有有限的有效性窗口,在该有效性窗口期间依赖系统可以依赖关于针对客户端系统处的软件组件的romp状态的经证明的属性。例如,有效性窗口可以基于证明报告变得无效的特定时间、特定的发布后有效性时间限制等。然而,针对软件组件的经证明的romp状态可以在该有效窗口期间在客户端系统处改变(例如,基于驱动的重新加载)。因此,依赖系统可能依赖不再有效的经证明的属性。如果关于针对软件组件的romp状态的经证明的属性在证明有效性时段期间不再有效,则本文描述的至少一些附加实施例在客户端系统处采取主动补救动作。因此,这些实施例操作以在证明有效时段期间强制执行受只读保护的存储器的证明,并且该强制执行可以由另一经证明的属性来确定。例如,如果针对软件组件的romp状态在证明有效时段期间改变,则补救动作可以包括暂停对应于软件组件的一个或多个过程直到证明有效性时段的结束为止、终止对应于软件组件的一个或多个过程、阻止来自软件组件的一个或多个通信、通知依赖系统、使加密密钥无效、使加密密钥不再可访问等等。

7、在其他实施例中,方法、系统和计算机程序产品针对在证明有效性时段期间强制执行受只读保护的存储器的证明。客户端计算机系统标识针对在计算机系统处被加载的软件组件的romp状态的改变。然后,客户端计算系统确定证明报告的有效性时间段未到期。该证明报告包括一个或多个经证明的属性,该一个或多个经证明的属性包括针对被分配给软件组件的受只读保护的存储器的一个或多个经romp证明的属性。客户端计算机系统还确定针对软件组件的至少一个经romp证明的属性由于针对软件组件的romp状态的改变而不再有效。基于针对软件组件的至少一个经romp证明的属性不再有效,客户端计算机系统发起补救动作以防止软件组件与依赖方计算机系统的交互。

8、在证明有效性时段期间强制执行受只读保护的存储器的技术效果包括通过确保依赖方能够在证明报告的整个有效性持续时间期间实际依赖于由客户端计算机系统做出的证明来促进计算机安全。

9、值得注意的是,任一实施例都促进ram用于受只读保护的存储器的使用,而不需要物理地一次性写入存储器的单独池。如将理解的,使用物理一次写入存储器的单独池增加了硬件成本并且假定预先知道有多少存储器需要被只读保护。因此,促进ram用于受只读保护的存储器的使用降低了物理硬件需求,并提高了物理硬件的使用的灵活性。

10、本
技术实现要素:
被提供是为了以简化的形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被使用作为确定所要求保护的主题的范围的帮助。

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