• 技术文章 >常见问题

    BIOS里面SGX是什么

    青灯夜游青灯夜游2021-07-13 15:54:32原创258

    BIOS里面的SGX全称“Intel Software Guard Extensions”,是对因特尔体系(IA)的一个扩展,旨在以硬件安全为强制性保障,不依赖于固件和软件的安全状态,提供用户空间的可信执行环境,可以增强软件的安全性。

    本教程操作环境:windows7系统、Dell G3电脑。

    SGX技术定义

    SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。

    SGX指令集扩展,旨在以硬件安全为强制性保障,不依赖于固件和软件的安全状态,提供用户空间的可信执行环境,通过一组新的指令集扩展与访问控制机制,实现不同程序间的隔离运行,保障用户关键代码和数据的机密性与完整性不受恶意软件的破坏。

    这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统或者和VMM(Hypervisor)也无法影响enclave里面的代码和数据。

    Enclave的安全边界只包含CPU和它自身。SGX创建的enclave也可以理解为一个可信执行环境TEE(Trusted Execution Environment)。

    不过其与ARM TrustZone(TZ)还是有一点小区别的,TZ中通过CPU划分为两个隔离环境(安全世界和正常世界),两者之间通过SMC指令通信;而SGX中一个CPU可以运行多个安全enclaves,并发执行亦可。

    当然,在TZ的安全世界内部实现多个相互隔离的安全服务亦可达到同样的效果。

    SGX Enclave的创建

    2.jpg

    借助Intel处理器的SGX技术,通过CPU的硬件模式切换,系统进入可信模式执行,只使用必需的硬件构成一个完全隔离的特权模式,加载一个极小的微内核操作系统支持任务调度,完成身份认证,并根据认证后的用户身份.

    通过使用Intel SGX技术,构建Enclave作为完全隔离的特权模式的具体实现方案如下:
    (1)将需要运行的虚拟机镜像加载到磁盘中。
    (2)生成加密应用程序代码和数据的秘钥凭证,SGX技术提供了一种较为先进的秘钥加密方法,其秘钥由SGX版本秘钥、CPU机器秘钥和Intel官方分配给用户的秘钥在秘钥生成算法下生成的全新秘钥,使用此秘钥对需要加载的应用程序的代码和数据进行加密。
    (3)将需要加载的应用程序或镜像的代码和数据首先加载到SGX Loader加载器中,为将其加载至Enclave做准备。
    (4)在Intel SGX 可信模式下动态申请构建一个Enclave。
    (5)将需要加载的程序和数据以EPC(Enclave Page Cache)的形式首先通过秘钥凭证解密。
    (6)通过SGX指令证明解密后的程序和数据可信,并将其加载进Enclave中,然后对加载进Enclave中的每个EPC内容进行复制。
    (7)由于使用了硬件隔离,进一步保障Enclave的机密性和完整性,保障了不同的Enclave之间不会发生冲突更不会允许其互相访问。
    (8)启动Enclave初始化程序,禁止继续加载和验证EPC,生成Enclave身份凭证,并对此凭证进行加密,并作为Enclave标示存入Enclave的TCS(Thread Control Structure)中,用以恢复和验证其身份。
    (9)SGX的隔离完成,通过硬件隔离的Enclave中的镜像程序开始执行,构建基于SGX技术的硬件隔离完成。

    SGX Enclave的启动和销毁

    在完成构建Enclave后,为保护Enclave在运行结束或挂起后,Enclave中的信息不被泄露,而Enclave中的应用程序可能会因为系统出现中断、异常等出现非正常情况下的退出,为解决此类问题使用SGX技术对可能出现的同步退出和异步退出设置不同的处理方式,在同步退出时,Enclave中运行的数据和代码将会根据自定义的EEE(Enclave Exiting Events) 设置的处理方式进行处理。而如果时异步退出的情况下,Enclave中的数据和运行状态等信息将会秘钥凭证进行加密,并存储到Enclave之外,在下一次启动系统时有选择的恢复中断的Enclave。

    SGX 创建Enclave可信通信通道

    对于SGX Enclave的访问请求,构建检测机制进行限制,首先判断是否启动了Enclave模式,然后判断访问请求是否来源于Enclave内部,如果是则继续判断,如果不是则返回访问失败,然后根据给予生成Enclave前的身份凭证用于检验此访问请求是否来源于同一个Enclave,如果是则通过访问检测,若不是则根据Enclave的身份凭证记录表,更换下一个Enclave身份凭证进行匹配,知道所有的正在运行的Enclave全部匹配完成,若还无法匹配成功,返回访问失败。

    更多相关知识,请访问常见问题栏目!

    以上就是BIOS里面SGX是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:BIOS SGX
    上一篇:32kb的存储器共有多少个存储单元 下一篇:ip地址与网络上的其他系统有冲突怎么办
    第16期线上培训班

    相关文章推荐

    • 如何由CPU保护您的数据和隐私不被恶意代码窃取?英特尔SGX基础介绍• win7如何设置bios密码• 怎样关闭bios开机自检• thinkpad怎么进入bios• win10怎么进入bios设置界面• bios如何开启虚拟化支持

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网