首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

客户端如何与Intel SGX enclave实例共享密钥,而不让托管enclave的服务器知道?

Intel SGX(Software Guard Extensions)是一种安全扩展技术,用于保护应用程序的关键代码和数据。在使用Intel SGX时,确保客户端与enclave实例之间的密钥共享,同时不让托管enclave的服务器知道,可以采取以下步骤:

  1. 客户端生成密钥对:客户端可以使用适当的加密算法生成一对公钥和私钥。这对密钥将用于加密和解密与enclave的通信。
  2. 将公钥发送给服务器:客户端将生成的公钥发送给托管enclave的服务器。这可以通过安全的通信渠道,如HTTPS或其他加密协议来完成。
  3. 服务器生成密钥对:托管enclave的服务器生成另一对密钥,即服务器的公钥和私钥。
  4. 客户端使用服务器公钥加密密钥:客户端使用服务器的公钥加密要与enclave共享的密钥。这样,只有服务器的私钥才能解密该密钥。
  5. 将加密的密钥发送给服务器:客户端将使用服务器公钥加密的密钥发送给托管enclave的服务器。
  6. 服务器使用私钥解密密钥:托管enclave的服务器使用其私钥解密客户端发送的加密密钥。这样,服务器可以获得与enclave共享的密钥。

通过以上步骤,客户端与Intel SGX enclave实例可以共享密钥,同时确保托管enclave的服务器无法获知该密钥的明文内容。

需要注意的是,以上步骤仅涉及密钥共享的基本原理,实际应用中还需要考虑安全性和可靠性等方面的细节。在实际开发中,可以使用腾讯云的云原生产品和服务来支持Intel SGX的应用部署和管理。腾讯云的云原生产品包括云原生应用引擎、容器服务、云原生数据库等,可以帮助开发者更便捷地构建和管理基于Intel SGX的应用。具体产品介绍和相关链接如下:

  1. 云原生应用引擎:腾讯云云原生应用引擎(Tencent Cloud Serverless Cloud Function)是一种无服务器计算服务,支持快速构建和部署云原生应用。了解更多:云原生应用引擎产品介绍
  2. 容器服务:腾讯云容器服务(Tencent Kubernetes Engine,TKE)是一种高度可扩展的容器管理服务,支持在云上部署、运行和管理容器化应用。了解更多:容器服务产品介绍
  3. 云原生数据库:腾讯云云原生数据库(TencentDB for TDSQL)是一种高度可扩展的云原生数据库服务,支持在云上存储和管理数据。了解更多:云原生数据库产品介绍

通过使用腾讯云的云原生产品和服务,开发者可以更好地支持Intel SGX的应用部署和管理,并确保密钥共享的安全性和可靠性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 英特尔CPU软件防护扩展中的新缺陷

    两个独立的学术研究团队在周三发表了描述英特尔软件卫士扩展(SGX)中缺陷的论文。 SGX是一组指令,它通过允许开发人员将敏感信息划分为安全区域(内存中的执行区域,借助硬件辅助的增强安全保护)来增强应用程序的安全性。 目的是保护应用程序代码和数据不被泄露或修改。 证明服务使用户可以在启动应用程序之前验证应用程序隔离区的身份。 研究团队表明,最近发现的缺陷可能会阻止新交所实现其目标。 SGAxe:SGX在实践中如何失败描述了长期存储的折衷方案。 CrossTalk:跨核心的推测性数据泄漏是真实的,它描述了跨内核攻击,该攻击可能使攻击者能够控制数据泄漏。密歇根大学的研究人员Stephan van Schaik、Andrew Kwong和Daniel Genkin以及阿德莱德大学的研究员Yuval Yarom写道:“SGAxe有效地打破了SGX最吸引人的特性,即在飞地上通过网络证明其可信赖性。”。研究人员攻击了由Intel提供并签名的SGX体系结构飞地,并检索了用于通过网络加密证明这些飞地是真实的秘密证明密钥,这使他们能够将假飞地冒充为真实飞地。串扰研究人员发现,一些指令从所有CPU核心共享的暂存缓冲区读取数据。他们提出了第一次使用瞬时执行的跨核攻击,并表明它可以用来攻击运行在完全不同的核心上的SGX飞地,让攻击者通过实际的性能下降攻击和发现enclave私钥来控制泄漏。“我们已经证明这是一次现实的攻击,”荷兰阿姆斯特丹维利大学的哈尼·拉加布、艾莉莎·米尔伯恩、赫伯特·博斯和克里斯蒂亚诺·朱夫里达(Cristiano Giuffrida)以及瑞士苏黎世以太银行的卡维·拉扎维(Kaveh Razavi)写道。他们补充道:“我们还发现,再次应用这些攻击来破坏在英特尔安全的SGX飞地中运行的代码几乎是微不足道的。”研究人员使用性能计数器构建了一个称为“串扰”的探查器,用于检查执行非核心请求的复杂微代码指令的数量和性质。当与瞬时执行漏洞(如微体系结构数据采样(MDS))结合时,这些操作可以揭示CPU的内部状态。研究人员写道:“即使是最近的英特尔CPU——包括公共云提供商用来支持SGX飞地的CPU——也容易受到这些攻击。”。

    00

    [知识小节]硬件漏洞CPU漏洞 骑士、熔断、幽灵、预兆漏洞基本情况

    “骑士”漏洞是我国研究团队发现的首个处理器硬件漏洞,该漏洞是因为现代主流处理器微体系架构设计时采用的动态电源管理模块DVFS存在安全隐患造成的。 DVFS模块的设计初衷是降低处理器的功耗,允许多核处理器根据负载信息采用相应的频率和电压运行。一般说来,高运行频率配备高电压,反之采用低电压。但是,当某一个核出现电压和频率不太匹配的情形,如电压偏低无法满足较高频率运行需求时,系统就会出现短暂“故障”,就像是电压不稳灯泡闪烁一样,有时虽然不会影响系统整体运行,但如果该故障发生在安全等级较高的操作过程中,如加解密程序,会因为故障对系统行为结果的干扰会泄露出重要的系统行为信息,影响系统安全。“骑士”攻击正是利用这一漏洞,采用电压故障精准注入的方式,迫使处理器可信执行区(TEE,如ARM TrustZone、Intel SGX等)内的高安全等级程序运行出现故障,从而逐渐暴露其隐含的秘钥信息或者绕过正常的签名验证功能。 针对“骑士”漏洞的攻击完全是在DVFS允许的电压范围内进行,且攻击过程可以完全使用软件在线、远程实现,不需要额外的硬件单元或者线下辅助。“骑士”漏洞广泛存在于目前主流处理器芯片中,可能严重波及当前大量使用的手机支付、人脸/指纹识别、安全云计算等高价值密度应用的安全,影响面广。 攻击者的进程运行在一个低频率的处理器核心,受害者的进程运行在一个高频率的处理器核心上,攻击者进程提供一个短时间的故障电压,控制好电压的大小,使得这个电压对攻击者进程所在处理器核心没有影响,但是能使受害者进程所在处理器核心产生硬件错误,从而影响受害者进程。 具体的利用细节是,准备一个适当的能够发生电压故障的环境,做三件事,一是将受害者程序运行的处理器核心配置成高频率,其它处理器核心配置成低频率;二是攻击者程序用一个固定、安全的电压初始化处理器;三是清楚目标设备的剩余状态,包括Cache布局、分支预测表、中断向量表和状态寄存器等。 通常情况下,能够被VoltJockey注入错误的函数在受害者程序中只占很小的一部分,我们并不能确定其具体的执行时间,因此,攻击者程序需要在受害者程序产生错误之前对其中间执行过程进行监控,等待能够用来注入错误的函数被执行。 硬件注入攻击的目标是改目标函数的一小部分指令和数据,而且,这部分被影响的代码应该尽可能小。因此,错误注入点应该能被精确控制。到能够产生错误注入之前需要的时间,称为“预延迟”。 故障电压的大小和持续时间,是使产生的硬件错误能够被控制的两个因素。找到恰当的电压和持续时间,使得数据按照预期被改变,从而影响原有的程序流程,是非常重要的。 攻击的最终目的是获取受害者程序的敏感数据,或者篡改受害者进程的函数,而不是使受害者程序所在内核崩溃,因此,需要错误注入完成后,尽快恢复处理器核心电压为修改之前的正常值,确保受害者程序继续执行。

    01
    领券