计算机系统的虚拟化首先在20世纪60年代和70年代被引入到大型机中。尽管在20世纪80年代和90年代虚拟化还有许多功能未开发,计算机科学家仍然对系统虚拟化运用有很深的理解,包括在一个硬件平台上运行多个不同的传
操作系统在嵌入式系统中一直扮演重要角色。操作系统首要目的就是简化电子产品开发者的工作,让电子产品开发者只需要关注他们想要关注的部分。通过抽象硬件资源——RAM和硬盘存储、USB和以太网卡的外围连接器件、
能力提供了令人信服的简单方法来促进安全设计的习惯。由于能力包含了资源权限的设计和访问授权两个部分,所以软件架构图同时描绘了功能间的相互作用和主体与客体间的访问权限。相反,纯基于访问控制表的系统架构
基于能力的访问控制表的一个潜在好处就是安全策略托管,也就意味着可以将授权包含在策略中。访问控制请求来到服务器进程,该服务器进程也包含着访问控制表,以对该请求的访问控制进行判决。该访问控制表是服务安
对象引用提供对象隐性访问能力,该对象引用就被叫做对象容器。对于传统的访问控制表来讲,对象就是通过描述符(例如UNIX文件描述符)来引用的,该描述符是一组单独的元数据,被维护用来跟踪关于对象的访问权限。
在本章的前面,我们研究了通过访问控制工程来使得Web浏览器更安全的概念。其目标就是要在插件启动时根据用户默认环境授予限制浏览器插件的权限。该种隐式授权产生的过度权限,是另一个常见的访问控制问题,就是N
要想保证安全策略的完整和正确,对访问控制策略进行简化是关键。假设在系统中有一个客体O,并有N个进程P1、P2、P3、…、PN,其中有M(M<N)个进程需要访问O。这里有两种方法来为M个进程访问客体O指定访问控制列表
关键点 面对访问控制安全性策略,嵌入式系统设计者们要克服的最大挑战之一是,要在策略的粒度与策略的可维护性和可确保性之间保持平衡。策略制定得过于简单会导致赋予系统中的进程过多的权限。反过来,策略制定
访问控制针对嵌入式系统中的进程和资源采用最小权限原则。当通用操作系统中(比如Windows)出现了因软件缺陷引发的安全漏洞,我们常常就把这个漏洞归责于该软件。事实上,罪魁祸首应是系统缺少相应的访问限制。如
所有的操作系统都向进程提供了某种形式的访问控制。嵌入式系统包含了太多的资源:通信、文件、进程、各种设备、内存等等。安全性设计的一个重要目标就是确保应用程序可以访问到它所需要的资源,而禁止访问它不需
所有的操作系统都向进程提供了某种形式的访问控制。嵌入式系统包含了太多的资源:通信、文件、进程、各种设备、内存等等。安全性设计的一个重要目标就是确保应用程序可以访问到它所需要的资源,而禁止访问它不需
熟悉实时操作系统的嵌入式系统开发者可能注意到上一小节描述到的调度方法并不像典型基于优先级抢占的调度器,在该调度器中会用到开发者分配给Alice和Bob的优先级。假设Alice被分派的优先级是100,比Bob的优先级5
操作系统向它的客户进程和整个嵌入式系统提供了广泛的服务。操作系统将完成基于若干个CPU核的工作负载调度、内存的分配、进程间消息的传递、I O的访问控制、电源的管理、系统健康度的监测等等。对操作系统的架构
关键点 设备驱动程序常常是导致系统可靠性问题的原因,因此常是黑客攻击的目标;这样,设备驱动是操作系统要隔离和保护的最重要组件的组成部分。单内核操作系统通常允许用户和进程动态地安装设备驱动到内核。不
关键点 尽管有内存保护和虚拟内存,通过占尽资源的手段,不良代码也可让关键应用程序停止运行。大多数操作系统为内存资源使用了中心存储的方式。当受保护的进程请求新的资源(例如,堆内存、线程等)时,操作系
在软件中总是存在着缺陷,运行时将导致错误发生。大多数程序员可能都看到过产品源代码平均每行拥有漏洞数量的详细统计。在这个渴望着技术的世界,应用程序正变得越来越复杂,完成越来越多的功能,但也正伴随着不
现代大多数操作系统都支持虚拟内存,在其间运行的进程的代码和数据的地址都是逻辑地址而非物理地址。内核使用内存管理硬件来实现逻辑内存到物理内存的映射。例如,假设有三个进程:A、B和C,它们每个都需要4KB的
2 4 嵌入式操作系统核心安全要求当然,用到微内核架构只是嵌入式安全中的重要一环。在下面的小节中,我们将讨论影响嵌入式操作系统安全的关键技术。2 4 1 内存保护关键点 内存保护是保障嵌入式系统鲁棒性的基
在计算机安全领域,术语可信计算基(Trusted Computing Base,TCB)是指那些用来保障系统安全的部件(包括硬件和软件),因此它必须是可信的。单内核操作系统使系统软件,如网络协议栈、文件系统和复合设备驱动
声称安全的产品到处都是。任何人都可以声称自己是安全的。问题是:对最终用户来讲,该产品安全的可信度有多少,该产品实际按其声称的是否满足了其他相关方的利益诉求,这个可信度依赖于安全保障。关键点 MILS架