Crafting a usable microkernel, processor, and I/O system with strict and provable information flow security

Mohit Tiwari, J. Oberg, Xun Li, Jonathan Valamehr, T. Levin, B. Hardekopf, R. Kastner, F. Chong, T. Sherwood
{"title":"Crafting a usable microkernel, processor, and I/O system with strict and provable information flow security","authors":"Mohit Tiwari, J. Oberg, Xun Li, Jonathan Valamehr, T. Levin, B. Hardekopf, R. Kastner, F. Chong, T. Sherwood","doi":"10.1145/2000064.2000087","DOIUrl":null,"url":null,"abstract":"High assurance systems used in avionics, medical implants, and cryptographic devices often rely on a small trusted base of hardware and software to manage the rest of the system. Crafting the core of such a system in a way that achieves flexibility, security, and performance requires a careful balancing act. Simple static primitives with hard partitions of space and time are easier to analyze formally, but strict approaches to the problem at the hardware level have been extremely restrictive, failing to allow even the simplest of dynamic behaviors to be expressed. Our approach to this problem is to construct a minimal but configurable architectural skeleton. This skeleton couples a critical slice of the low level hardware implementation with a microkernel in a way that allows information flow properties of the entire construction to be statically verified all the way down to its gate-level implementation. This strict structure is then made usable by a runtime system that delivers more traditional services (e.g. communication interfaces and long-living contexts) in a way that is decoupled from the information flow properties of the skeleton. To test the viability of this approach we design, test, and statically verify the information-flow security of a hardware/software system complete with support for unbounded operation, inter-process communication, pipelined operation, and I/O with traditional devices. The resulting system is provably sound even when adversaries are allowed to execute arbitrary code on the machine, yet is flexible enough to allow caching, pipelining, and other common case optimizations.","PeriodicalId":340732,"journal":{"name":"2011 38th Annual International Symposium on Computer Architecture (ISCA)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"113","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 38th Annual International Symposium on Computer Architecture (ISCA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2000064.2000087","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 113

Abstract

High assurance systems used in avionics, medical implants, and cryptographic devices often rely on a small trusted base of hardware and software to manage the rest of the system. Crafting the core of such a system in a way that achieves flexibility, security, and performance requires a careful balancing act. Simple static primitives with hard partitions of space and time are easier to analyze formally, but strict approaches to the problem at the hardware level have been extremely restrictive, failing to allow even the simplest of dynamic behaviors to be expressed. Our approach to this problem is to construct a minimal but configurable architectural skeleton. This skeleton couples a critical slice of the low level hardware implementation with a microkernel in a way that allows information flow properties of the entire construction to be statically verified all the way down to its gate-level implementation. This strict structure is then made usable by a runtime system that delivers more traditional services (e.g. communication interfaces and long-living contexts) in a way that is decoupled from the information flow properties of the skeleton. To test the viability of this approach we design, test, and statically verify the information-flow security of a hardware/software system complete with support for unbounded operation, inter-process communication, pipelined operation, and I/O with traditional devices. The resulting system is provably sound even when adversaries are allowed to execute arbitrary code on the machine, yet is flexible enough to allow caching, pipelining, and other common case optimizations.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
制作一个可用的微内核、处理器和I/O系统,具有严格和可证明的信息流安全性
用于航空电子设备、医疗植入物和加密设备的高保障系统通常依赖于一个小型可信的硬件和软件基础来管理系统的其余部分。以实现灵活性、安全性和性能的方式构建这样一个系统的核心,需要谨慎地平衡。具有空间和时间硬分区的简单静态原语更容易进行形式化分析,但是在硬件级别上严格解决问题的方法具有极大的限制性,甚至不能表达最简单的动态行为。我们解决这个问题的方法是构造一个最小但可配置的架构骨架。该框架将低级硬件实现的关键部分与微内核耦合在一起,从而允许整个结构的信息流属性一直到其门级实现进行静态验证。然后,这个严格的结构可以被运行时系统使用,运行时系统以一种与骨架的信息流属性解耦的方式提供更多的传统服务(例如通信接口和长期存在的上下文)。为了测试这种方法的可行性,我们设计、测试和静态验证了一个硬件/软件系统的信息流安全性,该系统支持无界操作、进程间通信、流水线操作和使用传统设备的I/O。即使允许攻击者在机器上执行任意代码,生成的系统也可以证明是可靠的,并且足够灵活,可以允许缓存、流水线和其他常见情况的优化。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Crafting a usable microkernel, processor, and I/O system with strict and provable information flow security Exploring the tradeoffs between programmability and efficiency in data-parallel accelerators Scalable power control for many-core architectures running multi-threaded applications Virtualizing performance asymmetric multi-core systems DBAR: An efficient routing algorithm to support multiple concurrent applications in networks-on-chip
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1