欢迎访问Sunbet,Sunbet是欧博Allbet的官方网站!

首页Sunbet_安全防护正文

SGX的外部组件概述(二)

de64384a174e12dc2018-08-11162Web安全

上一篇,我引见了SGX内部组件的一些基础架构,明天我接着引见。

Enclave的进入或加入

指令引见

EENTER:该指令将掌握从应用顺序转移到Enclave内的预定肯定的地位,它会搜检TCS是不是余暇并消灭TLB条目,然后它将处置惩罚器置于Enclave情势并生存RSP/RBP和XCR0寄存器。最后,它禁用基于事宜的准确抽样(PEBS),使enclave实行看起来像一个庞杂的指令。

EEXIT:该指令将历程规复为原始情势,并消灭位于Enclave内的地点的TLB条目。控件被转移到应用顺序中的指定地点,该地点会在RBX寄存器中指定,并开释TCS构造。enclave须要在加入之前消灭其寄存器,以防备数据走漏。

Enclave的进入历程

1.实行EENTRY指令;

2.生存应用顺序上下文;

3.处置惩罚器处于enclave情势;

Enclave的加入历程

1.实行EEXIT指令;

2.处置惩罚器处于一般情势;

1533878914958549.png SGX的外部组件概述(二)  Web安全 第1张 1533878914958549.png SGX的外部组件概述(二)  Web安全 第1张

中缀处置惩罚

指令引见

ERESUME:该指令从以后SSA规复上下文并规复实行。

指令实行申明

异步Enclave加入( Asynchronous Enclave Exits,AEX)会致使中缀和非常,异步加入指针( Asynchronous Exit Pointer,AEP)指向位于应用顺序内部的处置惩罚顺序,该处置惩罚顺序将在中缀效劳顺序(Interrupt Service Routine,ISR)处置惩罚非常后规复实行。处置惩罚顺序可以或许经由过程实行ERESUME指令决议是不是继承实行enclave。

当AEX发作时,Enclave的上下文被生存在以后SSA中并规复应用顺序上下文。实行ERESUME指令时,将规复Enclave上下文。TCS包罗一个透露表现以后SSA的计数器,构成一个上下文栈。

中缀处置惩罚历程

1.中缀或非常信息被传送到处置惩罚器;

2.生存enclave上下文,规复应用顺序上下文;

3.在操纵系统的处置惩罚顺序中继承实行;

4.处置惩罚顺序前往(IRET)到AEP一个trampoline函数;

5.若是AEP决议规复enclave实行,则实行ERESUM;

6.先前生存的enclave上下文已规复;

7.在enclave内中缀的中央规复实行历程;

1533878922718031.png SGX的外部组件概述(二)  Web安全 第3张 1533878922718031.png SGX的外部组件概述(二)  Web安全 第3张

最大的平安特征——密封性

指令申明

EGETKEY:Enclave运用此指令接见平台供应的分歧密钥,每一个密钥可以或许完成分歧的操纵(密封、平安认证)。

指令实行申明

当实例化enclave时,其代码和数据将遭到珍爱以避免被内部接见,但当enclave住手实例化时,它的一切数据都邑丧失。所谓密封操纵就是一种将数据平安地生存在enclave内部的要领,比方硬盘驱动器上的要领。enclave必需运用EGETKEY指令检索其密封密钥。它运用此密钥加密并确保其数据完整性,而运用的算法则由enclave治理者挑选。

运用Enclave标识

可以或许运用enclave标识停止密封,然后,密钥推导基于MRENCLAVE的值。两个分歧的enclave都有着本身的密钥,但也有相反enclave的两个版本,这会阻挠数据的当地迁徙。

----------------------------------------------

申博|网络安全巴士站【https://www.bus123.net/】

申博|网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。。

----------------------------------------------

运用署名者标识

也可以或许运用署名者标识停止密封,然后,密钥推导基于MRSIGNER的值。两个分歧的enclave依然有着分歧的钥匙,但两个版本的enclave同享相反的钥匙,可以或许读取密封的数据。若是运用相反的密钥对多个enclave域停止署名,则它们都可以或许读取相互的数据。

平安版本号(SVN)

原则上,旧版本的enclave是不许可读取由较新版本的enclave密封的数据,为防备出现意外,就须要运用平安版本号(SVN)。在每次enclave的平安性被更新后,平安版本号的计数器都邑递增。运用SVN发生密钥时,Enclave可以或许检索与以后版本或更旧版本的平安级别相对应的密钥,但不克不及找到较新版本对应的密钥

平安认证

平安认证构造

密钥要求(KEYREQUEST)

KEYREQUEST构造用作EGETKEY指令的进入,它许可挑选要猎取的密钥,和天生所需的其他参数。

申报目的信息(TARGETINFO)

TARGETINFO构造用作EREPORT指令的进入,它将用于辨认可以或许考证CPU天生的申报构造的enclave(哈希和属性)。

申报(Report)

REPORT构造是EREPORT指令加入的,它包罗enclave的属性、检测标识、署名者标识和在源和预定的enclave之间同享的一些用户数据,处置惩罚器运用申报密钥在此构造上实行MAC。

指令引见

EREPORT:Enclave运用此指令天生一个REPORT构造,个中包罗有关它的很多信息,并运用预定的Enclave的申报密钥停止标识考证。

指令实行申明

enclave代码和数据在初始化之前是明文情势的,固然个中一局部可以或许从技术上停止加密,然则解密密钥不克不及事后装置(或许它不会供应任何分外的平安性)。加密必需来自内部,多是密钥和敏感数据。enclave必需可以或许向第三方认证它可以或许被信托(没有被篡悛改),而且是在一个正当的平台上实行的。以下是两类认证体式格局:

1.当地认证:统一平台的两个enclave之间的认证历程;

2.近程认证:enclave和不在平台上的第三方之间的认证历程;

当地认证

必需在enclaveA和enclaveB之间竖立一个通道,enclaveA运用该通道来检索enclaveB的MRENCLAVE。Enclave A运用Enclave B的MRENCLAVE挪用EREPORT来为Enclave B天生署名申报。

Enclave B挪用EGETKEY来检索其申报密钥并考证EREPORT构造的MAC,若是有用,则enclave是预期的而且在正当平台上运转。

1533878930351903.png SGX的外部组件概述(二)  Web安全 第5张 1533878930351903.png SGX的外部组件概述(二)  Web安全 第5张

近程认证

近程认证须要一个被称为Quoting Enclave(QE)的enclave,此Enclave经由过程运用另一个特别密钥Provisioning Key对REPORT停止署名考证(当地考证),并将其转换为QUOTE(近程考证)。具体步骤以下:

1.最后,enclave会关照应用顺序,它须要在位于平台内部的某个地位加密。此时,应用顺序与效劳器竖立平安通讯,效劳器对此要求停止回应,以认证正在实行的enclave没有被改动,而且它实行的平台是正当的;

2.该应用顺序为其enclave供应了Quoting Enclave标识和认证要求;

3.enclave发生一个包孕认证回应和暂时公钥的清单,该公钥将在稍后被用于珍爱效劳器和enclave之间的通讯。而天生的哈希,则包罗在EREPORT指令的用户数据局部中。该指令为Quoting Enclave天生一个申报,将清单与enclave联系关系起来,此时,enclave将REPORT发送给应用顺序;

4.该应用顺序将REPORT发送到Quoting Enclave停止考证和署名;

5.QE运用EGETKEY指令检索其申报密钥并考证REPORT,它会建立QUOTE构造,并在将其供应给应用顺序之前运用其Provisioning Key对其停止署名;

6.应用顺序将QUOTE和联系关系的清单发送到效劳器停止考证;

7.效劳器运用Intel供应的认证效劳来考证QUOTE署名,然后,它运用QUOTE用户数据中的哈希搜检清单完整性。以确保清单包罗对认证的预期相应。

1533878936283540.png SGX的外部组件概述(二)  Web安全 第7张 1533878936283540.png SGX的外部组件概述(二)  Web安全 第7张

总结

此文章细致概述了SGX的内部组件,治理内存的细致历程,怎样加载和挪用enclave,怎样密封治理从而停止当地和近程平安认证。

鄙人一篇文章中,我将设计引见SGX内部(未嵌入CPU的一切内容),届时我将议论SGX enclave的开辟历程,SDK和PSW(以构建的 Enclave)。

本文翻译自:https://blog.quarkslab.com/overview-of-intel-sgx-part-1-sgx-internals.html如若转载,请说明原文地点: http://www.4hou.com/web/13012.html

网友评论