热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在英特尔SGX中禁用系统调用意味着什么

如何解决《在英特尔SGX中禁用系统调用意味着什么》经验,为你挑选了1个好方法。

Intel Software Guard Extensions (SGX)最近正在研究设施编程.SGX的想法是创建一个安全敏感代码加载和执行的安全区.最重要的是,对该飞地的存储器访问(以及许多其他限制)由硬件强制执行.

在其手册中,我发现syscall指令在飞地内是非法的(见表3-1),以及许多其他指令可能会改变权限级别.我想知道这意味着什么.由于内核服务一样open,socket在提高系统调用结束了,这是否意味着禁止syscall指令实际上飞地内禁止代码的任何内核服务,如文件和插座?这对我来说听起来很难说,因为这样一个飞地可以做的事情会受到严重限制.所以我认为我误解了或者有一些解决方法.



1> Raghu..:

当你说你不能使用内核服务或任何系统调用时你是对的,因为在飞地内禁止使用Syscall指令.操作系统不是SGX中可信计算基础(TCB)的一部分.假设在安全区内启用了系统调用,并在汇编中编写指令以执行系统调用指令(假设打开系统调用sys_open的参数).当您进行系统调用时,您会在启动期间跳转到内核设置的预定义位置,以开始执行内核代码.这意味着你是从你编写的代码(可信的)跳转到你不编写的代码(操作系统,它是不可信的,不是你的TCB的一部分).如果你能够做到这一点,它将失去SGX提供的安全保障.由于内核/操作系统/您未编写的任何其他软件不受信任,

正如你所说的那样,这是非常有限的,因为你无法直接从你的飞地代码中使用套接字或任何东西.但是如果你想在飞地内部使用这些服务,你必须信任不是你编写的代码,这违反了SGX的安全模型.

我不认为SGX的用途就像你想的那样.这里有一些英特尔所示的预期用例,应该解释如何在不使用系统调用的情况下实现这些应用程序.

https://software.intel.com/en-us/articles/using-innovative-instructions-to-create-trustworthy-software-solutions


推荐阅读
author-avatar
阳光碎了围脖_182
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有