安全|在可信计算中,计算机硬件在保护操作系统和管理程序方面起到至关重要的作用

Posted 大国重器高端电子元器件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全|在可信计算中,计算机硬件在保护操作系统和管理程序方面起到至关重要的作用相关的知识,希望对你有一定的参考价值。

许多软件应用程序以“最小权限”运行,这意味着该软件只能获得对硬件、其它应用程序和其它系统资源的最低限度访问权限。应用程序与其它资源(如操作系统和虚拟机管理程序)之间的安全分离可确保安全性较低的应用程序和软件无法从更安全和更关键的可信计算应用程序里面访问关键数据。高度敏感的数据必须充分保护,以确保只有需要对该数据进行操作的代码才能访问该数据。

 

维护此类安全应用程序分离的责任属于操作系统和虚拟机管理程序。想象一下位于软件堆栈之上的应用程序,该堆栈的每个较低层必须尽其一部分来维护应用层的安全性。

 

硬件的底部是硬件,它必须能够执行访问控制。硬件之上是操作系统或管理访问控制的第一类管理程序。为了获得最佳保护,系统设计人员应配置系统,以确保操作系统或1型虚拟机管理程序利用所有可用硬件安全性来管理下一层的调度、资源、进程和安全性。如果缺少基本的安全构建模块,那么构建安全的应用程序将非常困难。

 

操作系统的作用

多年来,操作系统在内核进程和用户空间应用程序之间保持分离。实际上,操作系统的整个功能是确保在一个硬件上运行的多个应用程序的一致操作。作为其责任的一部分,操作系统已经发展到防止或限制一个应用程序中的恶意行为者影响其他同时运行的应用程序。

 

随着处理器变得越来越快,效率越来越高,它们也变得越来越复杂,这又使操作系统的责任更加复杂。例如,操作系统处理任务之间的高速缓存管理很复杂,因为进程进出内存,操作系统必须刷新或使任何缓存的内存无效,这可能很困难且容易出错。

 

再加上诸如直接内存访问(DMA)、副作用和安全问题(如行撞击、崩溃和幽灵攻击)等挑战性因素,操作系统的安全责任变得非常巨大。

 

硬件安全功能

目前大多数处理硬件都包含操作系统或管理程序的安全功能。这是因为许多这些硬件功能都以管理员模式执行操作。在英特尔SGXARM TrustZone等基于处理器的可信任引导资源中,操作系统必须创建并管理对安全域的进程和资源访问。

软件工程师必须设计操作系统和管理程序以使用硬件的内置安全功能。操作系统和管理程序通常以特权模式运行,唯一能够使用处理架构的所有功能。

 

在新硬件上使用旧操作系统可能会否定硬件的安全功能,更新军事和航空航天系统中的操作系统可能代价高昂。系统设计人员必须考虑到风险和程序成本之间的潜在折衷,以确定在系统刷新期间何时插入新版操作系统。

 

操作系统还必须安全地管理资源访问 - 除了维护进程之间的安全边界并充分利用硬件安全性外,仅仅保持流程分离是不够的。如果某个进程可以在数据流入和流出时从外围设备读取另一个数据,那么它会影响可信计算。

 

软件工程师必须设计操作系统软件驱动程序,以便在安全的情况下访问外设。他们必须了解增加I / O资源的访问和可用性以及维护和控制访问分离之间的潜在折衷。

 

某些处理器提供增强的I / O管理功能,例如输入输出内存管理单元(IOMMU),它可以使操作系统和软件驱动程序在充分利用I / O资源的同时增强安全性。

 

管理程序的安全方面

虚拟机管理程序管理虚拟化资源,以使多个操作系统能够同时在相同的硬件上运行。在虚拟环境中运行时,操作系统和虚拟机管理程序必须一起工作,以维护安全和可信的环境。

 

一系列客户操作系统在硬件和Type-1管理程序之上的系统堆栈中工作。当虚拟机管理程序不存在时,这些访客操作系统中的每一个都与单个操作系统类似。

 

Type-1虚拟机管理程序虚拟化所有硬件资源,并管理堆栈中所有运行在其上方的操作系统的访问权限。 VmWare ESXXenType 1管理程序的示例。

 

相比之下,Type-2管理程序运行在另一个操作系统之上,使用该父操作系统访问硬件资源。 Type-2虚拟机管理程序将这些资源虚拟化到位于上面的客户机操作系统。 VmWare WorkstationOracle VirtualBoxType 2管理程序的示例。

 

Linux KVM是一种混合型管理程序,直接在硬件上以Linux内核模式执行,但使用Linux操作系统体系结构来管理虚拟化资源。

 

所使用的管理程序类型决定了客户操作系统的基本安全责任驻留在何处。 Type-1管理程序必须使用硬件中提供的所有安全功能,以防止一个客户机操作系统泄露信息或访问另一个客户机操作系统的信息。

 

软件工程师必须编写主机或父级操作系统,以便在涉及Type-2管理程序的情况下使用可用的硬件安全功能,Type-2管理程序使用主机操作系统来管理和控制对虚拟化资源的访问。

 

操作系统(或一组客户操作系统)将用户空间流程与监督流程分开。每个帮助操作系统的进程都有一个定义的接口,可以帮助它与其他进程进行通信和互操作。操作系统还确保进程在其定义的角色内运行并使用接口进行通信。例如,它捕获并防止无效操作和接口访问,从而防止一个失败的进程阻止整个系统停止。

 

操作系统安全

当考虑在堆栈上运行的软件层时,系统设计人员应该为操作系统或管理程序提供最严格的安全要求。

 

由于该级别的安全失败风险,最严格的安全性必须位于最低层。设计人员应该分析操作系统和管理程序,以防止可能导致不适当访问的错误。如果最低级别的操作系统或管理程序存在缺陷,则故障可能会危及使用该操作系统或管理程序的所有可信系统。它也可能允许特权升级,这可以利用应用程序来破坏操作系统或管理程序中运行的所有其他进程。

 

操作系统或管理程序级别的故障风险通常受到更多限制,但系统设计人员仍然必须审查应用程序的安全性。应用程序级别的故障可能会危及一个应用程序或客户机操作系统,但下面的下一级通常应该可以防止任何此类危害在系统中进一步传播。

 

尽可能早地在设计周期中与硬件供应商进行交流,以便最好地理解系统安全需求,这是非常有价值的。清晰的理解将帮助设计人员在评估操作系统或管理程序时充分考虑安全功能。

 

选择具有内置安全性的最新操作系统或管理程序通常是最佳选择。更好的办法是在削减所选操作系统或虚拟机管理程序的功能集时将潜在的漏洞利用和安全漏洞降到最低。

 

嵌入式系统通常提供配置操作系统以删除不必要的功能、进程和库的机会。调整操作系统以尽量减少任何潜在的漏洞也是一种很好的安全措施。

 



以上是关于安全|在可信计算中,计算机硬件在保护操作系统和管理程序方面起到至关重要的作用的主要内容,如果未能解决你的问题,请参考以下文章

快速了解什么是可信执行环境TEE技术

可信平台模块

计算机网络安全

TPM学习笔记1-1

隐私计算中可信执行环境的一知半解

隐私计算中可信执行环境的一知半解