用于分层认证的基于sel4的体系结构

Grant Jurgensen, Michael Neises, P. Alexander
{"title":"用于分层认证的基于sel4的体系结构","authors":"Grant Jurgensen, Michael Neises, P. Alexander","doi":"10.1145/3384217.3386398","DOIUrl":null,"url":null,"abstract":"When computer systems communicate sensitive information, it is often desirable, if not imperative, that one party know certain properties about the other. This may be as simple as confirming the external party's identity, e.g. by checking a signature against a known public key, as is ubiquitous among internet protocols. Alternatively, one party may demand stronger guarantees before engaging in sensitive communication. For example, it may wish to know that the target system is reasonably secure. The target could respond to such a request with evidence that it is running trusted anti-malware software and routinely scanning for threats. Perhaps this evidence is sufficient in the current context, or perhaps the other party demands deeper evidence, such as a glimpse into a portion of the current kernel memory, as in to detect an evasive rootkit. All of these activities may be generalized into the broader notion of remote attestation, which is defined as the process in which a computer system constructs evidence reflecting its state and/or identity, with the purpose of convincing an external system of its trustworthiness. For systems which communicate sensitive information, remote attestation is an essential tool for identifying malicious or compromised actors. However, attestation evidence can only be considered as trustworthy as the architecture it was collected on. Trusted attestation demands strong memory separation properties to guarantee the integrity of its measurements and the confidentiality of it private keys. If an application on the system is able to distort this sensitive attestation data without detection, then the attestation evidence can no longer be considered trustworthy. Thus, popular general-purpose operating systems such as Windows or Unix derivatives form an insufficient architectural foundation as a result of their loose and dynamic memory semantics. Ideally, systems in need of rigorous attestation capabilities would be built atop a separation kernel which could statically isolate sensitive attestation data from the rest of the system. Existing systems could be ported to such a kernel, but in practice, doing so would be prohibitively time-consuming. Instead, we offer a generic solution which accommodates a multitude of existing systems by embedding a general-purpose operating system into a separation kernel, and providing attestation capabilities to both layers. Specifically, we use seL4 as our separation kernel, and a sandboxed Linux virtual machine running under seL4 as our general-purpose operating system. Not only is the seL4 microkernel formally verified with respect to its specification, it has also been proven to enforce memory isolation under proper configuration [1], the defining property of a separation kernel. Existing Linux systems are effortlessly incorporated into our attestation architecture by dropping them into the Linux virtual machine layer. Also present in the Linux layer is an attestation component which is able to measure the Linux layer, but is unable to observe the outer seL4 layer. The seL4 layer is likewise equipped with an attestation component. However this component can measure not just its own layer, but also the embedded virtual machine. In this schema, the Linux attestation component is responsible for the majority of attestation, while the seL4 component is largely relegated to routine measurements that aim to abate the aforementioned concerns regarding attestation within Linux. Collecting attestation measurements within Linux is more performant and easier to implement than at the seL4 layer, but also less trustworthy as a result of the lack of stringent memory separation. Conversely, measurements made by the seL4 attestation component are highly trusted due to the static memory isolation enforced at this layer. Therefore, measurements made by the Linux layer may be bolstered by coupling them with recent evidence collected by the seL4 layer demonstrating the Linux virtual machine to be free from malicious processes tampering with the attestation process. Our architecture enhances trust in attestation by continually extending trust at runtime from the seL4 layer to the Linux virtual machine layer. We aim to extend this chain of trust backwards as well, such that trust is not placed in the seL4 layer a priori, rather it is derived from some check during the boot process that the proper image is loaded into memory. Naturally, this chain of trust would extend all the way down to some root of trust, likely a secret hardware-specific private key. Finally, we aim to incorporate key management into the chain of trust process, whereby a layer's private key is only delivered to its attestation component after it has been measured. Ultimately, we hope to have an architecture which both establishes trust in the boot process, but also continues to establish trust through attestation.","PeriodicalId":205173,"journal":{"name":"Proceedings of the 7th Symposium on Hot Topics in the Science of Security","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"An seL4-based architecture for layered attestation\",\"authors\":\"Grant Jurgensen, Michael Neises, P. Alexander\",\"doi\":\"10.1145/3384217.3386398\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"When computer systems communicate sensitive information, it is often desirable, if not imperative, that one party know certain properties about the other. This may be as simple as confirming the external party's identity, e.g. by checking a signature against a known public key, as is ubiquitous among internet protocols. Alternatively, one party may demand stronger guarantees before engaging in sensitive communication. For example, it may wish to know that the target system is reasonably secure. The target could respond to such a request with evidence that it is running trusted anti-malware software and routinely scanning for threats. Perhaps this evidence is sufficient in the current context, or perhaps the other party demands deeper evidence, such as a glimpse into a portion of the current kernel memory, as in to detect an evasive rootkit. All of these activities may be generalized into the broader notion of remote attestation, which is defined as the process in which a computer system constructs evidence reflecting its state and/or identity, with the purpose of convincing an external system of its trustworthiness. For systems which communicate sensitive information, remote attestation is an essential tool for identifying malicious or compromised actors. However, attestation evidence can only be considered as trustworthy as the architecture it was collected on. Trusted attestation demands strong memory separation properties to guarantee the integrity of its measurements and the confidentiality of it private keys. If an application on the system is able to distort this sensitive attestation data without detection, then the attestation evidence can no longer be considered trustworthy. Thus, popular general-purpose operating systems such as Windows or Unix derivatives form an insufficient architectural foundation as a result of their loose and dynamic memory semantics. Ideally, systems in need of rigorous attestation capabilities would be built atop a separation kernel which could statically isolate sensitive attestation data from the rest of the system. Existing systems could be ported to such a kernel, but in practice, doing so would be prohibitively time-consuming. Instead, we offer a generic solution which accommodates a multitude of existing systems by embedding a general-purpose operating system into a separation kernel, and providing attestation capabilities to both layers. Specifically, we use seL4 as our separation kernel, and a sandboxed Linux virtual machine running under seL4 as our general-purpose operating system. Not only is the seL4 microkernel formally verified with respect to its specification, it has also been proven to enforce memory isolation under proper configuration [1], the defining property of a separation kernel. Existing Linux systems are effortlessly incorporated into our attestation architecture by dropping them into the Linux virtual machine layer. Also present in the Linux layer is an attestation component which is able to measure the Linux layer, but is unable to observe the outer seL4 layer. The seL4 layer is likewise equipped with an attestation component. However this component can measure not just its own layer, but also the embedded virtual machine. In this schema, the Linux attestation component is responsible for the majority of attestation, while the seL4 component is largely relegated to routine measurements that aim to abate the aforementioned concerns regarding attestation within Linux. Collecting attestation measurements within Linux is more performant and easier to implement than at the seL4 layer, but also less trustworthy as a result of the lack of stringent memory separation. Conversely, measurements made by the seL4 attestation component are highly trusted due to the static memory isolation enforced at this layer. Therefore, measurements made by the Linux layer may be bolstered by coupling them with recent evidence collected by the seL4 layer demonstrating the Linux virtual machine to be free from malicious processes tampering with the attestation process. Our architecture enhances trust in attestation by continually extending trust at runtime from the seL4 layer to the Linux virtual machine layer. We aim to extend this chain of trust backwards as well, such that trust is not placed in the seL4 layer a priori, rather it is derived from some check during the boot process that the proper image is loaded into memory. Naturally, this chain of trust would extend all the way down to some root of trust, likely a secret hardware-specific private key. Finally, we aim to incorporate key management into the chain of trust process, whereby a layer's private key is only delivered to its attestation component after it has been measured. Ultimately, we hope to have an architecture which both establishes trust in the boot process, but also continues to establish trust through attestation.\",\"PeriodicalId\":205173,\"journal\":{\"name\":\"Proceedings of the 7th Symposium on Hot Topics in the Science of Security\",\"volume\":\"13 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-08-25\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 7th Symposium on Hot Topics in the Science of Security\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3384217.3386398\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 7th Symposium on Hot Topics in the Science of Security","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3384217.3386398","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

当计算机系统交流敏感信息时,如果不是必须的话,通常希望一方知道另一方的某些属性。这可能就像确认外部方的身份一样简单,例如,通过检查已知公钥的签名,这在互联网协议中无处不在。或者,在进行敏感的沟通之前,一方可能要求更强有力的保证。例如,它可能希望知道目标系统是相当安全的。目标可以用证据来回应这样的请求,证明它正在运行可信的反恶意软件,并定期扫描威胁。也许这个证据在当前上下文中是足够的,或者另一方可能需要更深入的证据,例如一瞥当前内核内存的一部分,例如检测逃避的rootkit。所有这些活动都可以概括为更广泛的远程认证概念,远程认证被定义为计算机系统构建反映其状态和/或身份的证据的过程,目的是使外部系统相信其可靠性。对于通信敏感信息的系统,远程认证是识别恶意或受损参与者的必要工具。然而,证明证据只能被认为是可信的,因为它被收集在体系结构上。可信认证需要强大的内存分离特性,以保证其测量的完整性和私钥的机密性。如果系统上的应用程序能够在不被检测的情况下扭曲这些敏感的证明数据,那么证明证据就不能再被认为是可信的。因此,流行的通用操作系统(如Windows或Unix衍生产品)由于其松散的动态内存语义而形成了不充分的体系结构基础。理想情况下,需要严格认证功能的系统将构建在一个分离内核之上,该内核可以静态地将敏感的认证数据与系统的其余部分隔离开来。现有的系统可以移植到这样的内核,但是在实践中,这样做会非常耗时。相反,我们提供了一个通用的解决方案,通过将一个通用的操作系统嵌入到一个分离内核中,并为这两层提供证明功能,该解决方案可以容纳大量现有的系统。具体来说,我们使用seL4作为分离内核,并使用在seL4下运行的沙盒Linux虚拟机作为通用操作系统。seL4微内核不仅在规范方面得到了正式验证,而且在适当的配置[1](分离内核的定义属性)下,它还被证明可以强制执行内存隔离。通过将现有的Linux系统放入Linux虚拟机层,可以毫不费力地将它们集成到我们的认证体系结构中。Linux层中还有一个认证组件,它能够度量Linux层,但不能观察外部seL4层。seL4层同样配备了一个证明组件。然而,这个组件不仅可以测量它自己的层,还可以测量嵌入式虚拟机。在这个模式中,Linux认证组件负责大部分的认证工作,而seL4组件在很大程度上被降级为常规的度量,目的是减少上述关于Linux中认证的问题。在Linux中收集认证度量比在seL4层更高效,更容易实现,但是由于缺乏严格的内存分离,也不太可靠。相反,由于在该层强制执行静态内存隔离,由seL4认证组件进行的测量是高度可信的。因此,通过将Linux层进行的测量与seL4层收集的最近的证据结合起来,可以加强这些测量,这些证据表明Linux虚拟机没有恶意进程篡改认证过程。我们的体系结构通过在运行时不断地将信任从seL4层扩展到Linux虚拟机层来增强认证中的信任。我们的目标是向后扩展这个信任链,这样信任就不会先验地放在seL4层中,而是在引导过程中通过检查将正确的映像加载到内存中。自然地,这个信任链将一直延伸到信任的根,可能是一个特定于硬件的秘密私钥。最后,我们的目标是将密钥管理整合到信任流程链中,这样一层的私钥只有在经过测量后才会被交付给它的认证组件。最终,我们希望有一个既能在引导过程中建立信任,又能通过认证继续建立信任的体系结构。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
An seL4-based architecture for layered attestation
When computer systems communicate sensitive information, it is often desirable, if not imperative, that one party know certain properties about the other. This may be as simple as confirming the external party's identity, e.g. by checking a signature against a known public key, as is ubiquitous among internet protocols. Alternatively, one party may demand stronger guarantees before engaging in sensitive communication. For example, it may wish to know that the target system is reasonably secure. The target could respond to such a request with evidence that it is running trusted anti-malware software and routinely scanning for threats. Perhaps this evidence is sufficient in the current context, or perhaps the other party demands deeper evidence, such as a glimpse into a portion of the current kernel memory, as in to detect an evasive rootkit. All of these activities may be generalized into the broader notion of remote attestation, which is defined as the process in which a computer system constructs evidence reflecting its state and/or identity, with the purpose of convincing an external system of its trustworthiness. For systems which communicate sensitive information, remote attestation is an essential tool for identifying malicious or compromised actors. However, attestation evidence can only be considered as trustworthy as the architecture it was collected on. Trusted attestation demands strong memory separation properties to guarantee the integrity of its measurements and the confidentiality of it private keys. If an application on the system is able to distort this sensitive attestation data without detection, then the attestation evidence can no longer be considered trustworthy. Thus, popular general-purpose operating systems such as Windows or Unix derivatives form an insufficient architectural foundation as a result of their loose and dynamic memory semantics. Ideally, systems in need of rigorous attestation capabilities would be built atop a separation kernel which could statically isolate sensitive attestation data from the rest of the system. Existing systems could be ported to such a kernel, but in practice, doing so would be prohibitively time-consuming. Instead, we offer a generic solution which accommodates a multitude of existing systems by embedding a general-purpose operating system into a separation kernel, and providing attestation capabilities to both layers. Specifically, we use seL4 as our separation kernel, and a sandboxed Linux virtual machine running under seL4 as our general-purpose operating system. Not only is the seL4 microkernel formally verified with respect to its specification, it has also been proven to enforce memory isolation under proper configuration [1], the defining property of a separation kernel. Existing Linux systems are effortlessly incorporated into our attestation architecture by dropping them into the Linux virtual machine layer. Also present in the Linux layer is an attestation component which is able to measure the Linux layer, but is unable to observe the outer seL4 layer. The seL4 layer is likewise equipped with an attestation component. However this component can measure not just its own layer, but also the embedded virtual machine. In this schema, the Linux attestation component is responsible for the majority of attestation, while the seL4 component is largely relegated to routine measurements that aim to abate the aforementioned concerns regarding attestation within Linux. Collecting attestation measurements within Linux is more performant and easier to implement than at the seL4 layer, but also less trustworthy as a result of the lack of stringent memory separation. Conversely, measurements made by the seL4 attestation component are highly trusted due to the static memory isolation enforced at this layer. Therefore, measurements made by the Linux layer may be bolstered by coupling them with recent evidence collected by the seL4 layer demonstrating the Linux virtual machine to be free from malicious processes tampering with the attestation process. Our architecture enhances trust in attestation by continually extending trust at runtime from the seL4 layer to the Linux virtual machine layer. We aim to extend this chain of trust backwards as well, such that trust is not placed in the seL4 layer a priori, rather it is derived from some check during the boot process that the proper image is loaded into memory. Naturally, this chain of trust would extend all the way down to some root of trust, likely a secret hardware-specific private key. Finally, we aim to incorporate key management into the chain of trust process, whereby a layer's private key is only delivered to its attestation component after it has been measured. Ultimately, we hope to have an architecture which both establishes trust in the boot process, but also continues to establish trust through attestation.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信