Intel SGX开发者参考书(一)——Intel SGX引言

@Intel SGX 读书笔记…

Intel SGX 引言

Intel SGX SDK是提供给想要对应用做安全保护的开发者使用的。
Intel SGX SDK是API、举例的源代码、库和工具的集合,这个集合是用来给开发者编写和调试C/C++应用程序用的~~

Intel SGX 技术只在第六代Intel内核及以上的处理器上可以用哦,具体哪些处理器,可以去Intel网站自己查看自己的CPU型号是否支持SGX。

Intel SGX技术概述

Intel SGX一种高等级的秘密保护技术,它在硬件的受保护内存区域存储代码和数据,这个受保护的内存区域叫做Enclave。Enclave的内存区域只能被Enclave内存区域内的代码访问。一个Enclave作为一个Microsoft* Windows* DLL给构建和下载。
Intel SGX技术有一个有限的内存大小,典型的是64MB或128MB。所以活跃的Enclave是有限的,所以大概有5-20个Enclave可以同时在内存中运行。

Intel SGX安全特性

一.Intel SGX技术防止软件攻击:

  1. 尽管当前的权限等级和CPU的模式(ring3/用户模式,ring0/内核模式,SMM,VMM,或者其他Enclave),都不能读写当前的Enclave内存区域内的内容。如果访问,则会返回中止页。
  2. 使用Debug属性创建Enclave,该属性允许Intel Software Guard Extensions debugger调试器像标准调试器一样查看其内容。Enclave(non-debugger)不能由软件或硬件调试器进行调试。
  3. 传统的调用、跳转、寄存器操作或堆栈操作不能进入Enclave环境。 调用Enclave内函数的唯一的方法是通过几个保护检查的新指令。允许由Enclave内代码发起的对Enclave内的函数的调用。
  4. 执行Enclave代码时,CPU模式只能是32位或64位的。

二.Intel SGX技术防止已知的的硬件攻击:

  1. Enclave内存使用具有重放保护的行业标准加密算法进行加密。
  2. 内存或将DRAM模块链接到另一个系统只允许访问加密的数据。
  3. 内存加密密钥随机改变每个电源周期(如boot/sleep/hibernate)。加密密钥是存储在CPU中的,且不可访问。
  4. Intel SGX不能够解决侧信道攻击和反向工程。这些是取决于开发人员如何构建受保护的Enclave以防止收到这些类型的攻击。

Intel SGX用很强的行业标准的算法签名Enclave。在Enclave构建的时候,一个Enclave的签名就描述了它的内容和布局。如果根据签名,Enclave的内容和布局有误,那么Enclave不能初始化更不能执行。如果一个Enclave初始化了,不能在运行过程中修改它,它应该与原始的Enclave是相同的。

应用程序设计注意事项

一个Intel SGX应用程序的设计跟平常的应用程序设计是不同的,因为它需要把SGX应用程序分成两个逻辑上的组件。

  • 可信组件。这些代码能够访问秘密内存。这个组件也能够调用一个Enclave,一个应用程序可以包含多个Enclave。
  • 不可信组件。这部分包含了应用程序所有的模块。

应用程序开发人员需要将可信部分做得尽可能地小,建议将Enclave功能限制为仅对敏感数据。一个大的Enclave会有更多的bug和更多的安全漏洞。
Enclave的代码可以离开受保护的内存区域,也可以调用不可信区域的函数(通过一个特殊的命令)。减少Enclave对不可信代码的依赖性,也能够加强防御可能的收到的攻击。
当拥有以上设计的注意事项后会将攻击面最小化,同时就可以提高其保护性。
应用程序的开发者在应用程序中利用SGX SDK的第一步,必须重新设计或重构应用程序以符合这些注意事项。这一步是通过隔离可信任模块来实现的,然后将这些模块移动到一个单独的包/库中。(具体怎么实现会在后面写的。)

名称具体意思
ECALLEnclave Call.进入Enclave的函数调用
OCALLOutside Call.从Enclave调用不受信任的函数的函数调用
EDLEnclave Definition Language
SP服务提供者
Inter SGX SSLIntel SGX SSL加密库是基于OpenSSL的,它给SGX Enclave提供加密服务
TCS线程控制结构
uRTS不可信任的运行时系统

如有误,请指正!感激!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值