首页> 外文OA文献 >Beveiligingsprimitieven voor softwaremodules die beschermd worden door geheugentoegangscontrole op basis van de programmateller
【2h】

Beveiligingsprimitieven voor softwaremodules die beschermd worden door geheugentoegangscontrole op basis van de programmateller

机译:基于程序计数器的受存储器访问控制保护的软件模块的安全原语

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Our society increasingly depends on computing devices. Customers rely on laptops and mobile devices to access security sensitive applications such as online banking. Companies have to protect their trade secrets. And governments have to guard their country's critical infrastructure against espionage and sabotage. Security of computing devices in such use cases is paramount and various security measures have been developed that raise the bar significantly for attackers. However, vulnerabilities in such systems still exist and are frequently exploited successfully. A common pitfall is that software security takes a layered approach where privileged layers keep getting extended with new components over the system's lifetime. This results in a snowball effect on the size of these privileged levels and this in turn increases the likelihood of software vulnerabilities. As all applications running on the device rely on the integrity of these layers, increasing the size of their code base has a negative impact on security of the overall device.Many security measures have been proposed to automatically harden the most privileged software layer, but they all fail to provide strong security guarantees. In this thesis, we considered a different approach. We developed three security primitives that can be applied at most privilege levels. Unlike related approaches, this set of primitives is fixed. Software components can be added easily at any privilege level, but no additional primitives will be required. Moreover, these security primitives can provide provable security guarantees.The most important security primitive is a program-counter-based access control mechanism. By enforcing different access rights on physical memory depending in which code module the processor is executing, sensitive parts of an application can be strongly isolated. For instance, a cryptographic key can be isolated to a protected module implementing a certificate-signing service.Since the key cannot be accessed by any other code than the module's, it cannot be stolen even if malware was already present on the platform. The access control mechanism also guarantees that the module is only accessible through the interface that it exposes explicitly.Second, we enable protected modules to limit which protected modules can access their services. Unrestricted access to modules may still allow a large range of attacks. While an attacker may no longer be able to access a well-isolated cryptographic key, for example, the exposed interface may still allow her to sign forged certificates. We prevent such attacks using a capability-based access control mechanism; a module can only be accessed if the caller ever received the capability to do so.Third, we propose a fast and practical state-continuity system. Using cryptographic properties, protected modules can use many services of the unprotected, legacy system while providing strong security guarantees. Unfortunately, these security guarantees only are ensured while the system is up and running. In practice systems crash, loose power or need to reboot. Integrity and confidentiality protecting the module's state before it is stored on disk is insufficient in such cases. Care must be taken that an attacker cannot present a stale state of a protected module as being fresh. Practical implementations are hindered by the substantial economical costs to add non-volatile storage to the processor. Many computing devices are already shipped with access-controlled non-volatile storage off-chip, but this memory is slow, very limited in size and wears out quickly. We propose an algorithm based on a simple hardware component to avoid all these shortcomings.During this dissertation we also focused on how these newly-added security primitives can be applied to provide strong security guarantees. A fully-abstract compilation scheme was developed that ensures that software-level abstractions provided to programmers cannot be broken; for every low-level attack, there also exists an attack at source-code level. This significantly simplifies reasoning about the security guarantees that protected modules provide and increases security of the overall system.
机译:我们的社会越来越依赖于计算设备。客户依靠笔记本电脑和移动设备来访问对安全敏感的应用程序,例如在线银行。公司必须保护自己的商业秘密。政府必须保护自己国家的关键基础设施免受间谍和破坏。在这种用例中,计算设备的安全性至关重要,并且已经开发出各种安全措施,大大提高了攻击者的标准。但是,此类系统中的漏洞仍然存在并且经常被成功利用。一个常见的陷阱是,软件安全性采用了分层的方法,其中特权层在系统的整个生命周期中不断被新组件扩展。这会对这些特权级别的大小产生滚雪球效应,进而增加软件漏洞的可能性。由于设备上运行的所有应用程序都依赖于这些层的完整性,因此增加其代码库的大小会对整个设备的安全性产生负面影响。已提出了许多安全措施来自动强化最特权的软件层,但是它们所有这些都无法提供强大的安全保证。在本文中,我们考虑了另一种方法。我们开发了三种可应用于大多数特权级别的安全性原语。与相关方法不同,这组原语是固定的。可以在任何特权级别轻松添加软件组件,但是不需要其他原语。而且,这些安全原语可以提供可证明的安全保证。最重要的安全原语是基于程序计数器的访问控制机制。通过根据处理器在哪个代码模块上执行对物理内存执行不同的访问权限,可以高度隔离应用程序的敏感部分。例如,可以将加密密钥隔离到实现证书签名服务的受保护模块中,由于该密钥只能被模块中的任何其他代码访问,因此即使平台上已经存在恶意软件也无法将其窃取。访问控制机制还保证只能通过显式公开的接口访问该模块。其次,我们启用受保护的模块以限制哪些受保护的模块可以访问其服务。对模块的无限制访问仍然可能会导致广泛的攻击。例如,虽然攻击者可能再也无法访问隔离良好的加密密钥,但暴露的界面仍可能允许她签署伪造的证书。我们使用基于功能的访问控制机制来防止此类攻击;只有在呼叫者具备接收能力的情况下,才能访问模块。第三,我们提出了一种快速实用的状态连续性系统。使用加密属性,受保护的模块可以使用不受保护的旧系统的许多服务,同时提供强大的安全保证。不幸的是,只有在系统启动和运行时才能确保这些安全性。实际上,系统崩溃,电源松动或需要重新启动。在这种情况下,在将模块存储到磁盘之前保护模块状态的完整性和机密性不足。必须注意,攻击者不能将受保护模块的状态视为新鲜。将非易失性存储器添加到处理器的大量经济成本阻碍了实际的实现。许多计算设备已经在芯片外附带了访问控制的非易失性存储,但是这种存储器速度很慢,大小非常有限,并且很快就会磨损。为了避免所有这些缺点,我们提出了一种基于简单硬件组件的算法。在本文中,我们还着重研究了如何使用这些新添加的安全原语来提供强大的安全保证。开发了一种完全抽象的编译方案,以确保提供给程序员的软件级抽象不被破坏。对于每种低级别的攻击,还存在源代码级别的攻击。这大大简化了有关受保护模块提供的安全保证的推理,并提高了整个系统的安全性。

著录项

  • 作者

    Strackx Raoul;

  • 作者单位
  • 年度 2014
  • 总页数
  • 原文格式 PDF
  • 正文语种 en
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号