900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Intel SGX开发者参考书(一)——Intel SGX引言

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

时间:2023-07-25 17:54:37

相关推荐

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技术防止软件攻击:

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

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

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

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

应用程序设计注意事项

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

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

应用程序开发人员需要将可信部分做得尽可能地小,建议将Enclave功能限制为仅对敏感数据。一个大的Enclave会有更多的bug和更多的安全漏洞。

Enclave的代码可以离开受保护的内存区域,也可以调用不可信区域的函数(通过一个特殊的命令)。减少Enclave对不可信代码的依赖性,也能够加强防御可能的收到的攻击。

当拥有以上设计的注意事项后会将攻击面最小化,同时就可以提高其保护性。

应用程序的开发者在应用程序中利用SGX SDK的第一步,必须重新设计或重构应用程序以符合这些注意事项。这一步是通过隔离可信任模块来实现的,然后将这些模块移动到一个单独的包/库中。(具体怎么实现会在后面写的。)

如有误,请指正!感激!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。