SGX-FPGA | CPU-FPGA异构体系结构的可信执行环境
概述
可信执行环境 (TEE)已经成为一种流行的安全原语,具有最小的可信计算基础和攻击面。然而,现有的基于 CPU 的 TEE 不支持 FPGA,尽管基于 FPGA 的云计算服务已经快速部署,但存在安全漏洞。
为了解决这一安全漏洞,本文提出了 SGX-FPGA设计方案,这是一种可信的硬件隔离路径,通过在异构 CPU-FPGA 架构中桥接 SGX Enclave和 FPGA,实现了第一个 FPGA-TEE。此外本文还在真实 CPU-FPGA 硬件上的实验证明了 SGX-FPGA 实现的高安全性和低性能开销。
在本文中,SGX-FPGA 在 CPU 和 FPGA 之间构建了一条安全的硬件隔离路径,以保护存储在两个组件和传输中的敏感数据。具体来说是设计了一个安全协议来验证通信双方并保护 CPU 和 FPGA 之间传输的数据,这将原始 CPU SGX enclave 的安全性扩展到对应的 FPGA enclave,同时利用物理不可克隆功能(PUF)在 FPGA 构建硬件信任根。
2
相关工作
CPU-FPGA 系统中的威胁
CPU对CPU攻击:攻击者可以操纵CPU端的软件堆栈来攻击受害用户应用程序。CPU到FPGA攻击:CPU端攻击者可以篡改CPU和FPGA均可访问的FPGA全局内存中的数据,擅自调用FPGA内核触发故障注入攻击(典型的侧信道攻击,是主动攻击,例如电压毛刺,干预时钟引脚),或者探测PCIe总线上传输的数据。FPGA 到 CPU 攻击:攻击者可以将恶意 IP 注入 FPGA,触发它,然后访问或篡改 CPU 端或 PCIe 总线上的软件数据。FPGA对FPGA的攻击:在FPGA内部,攻击者可以针对FPGA发出硬件物理攻击。本文认为硬件安全社区的FPGA安全研究已经解决了这种威胁模型,因此超出了这项工作的范围。3
解决方案
SGX-FPGA
需要注意的是:用户应用程序和 CPU控制器能够在自己的 enclave 中处理敏感的纯文本数据。FPGA secure monitor 从 CPU 接收加密数据,解密后通过管道传输给 FPGA 内核。这样,通过PCIe总线和全局内存传输的数据始终是加密的。因此,即使主机操作系统或 PCIe 总线受到威胁,也没有对手可以访问纯文本数据。
CPU-FPGA隔离路径建立
SGX-FPGA采用一种证明机制来建立CPU与FPGA之间的相互信任。信任建立的目标是确保一方(即 CPU 或 FPGA)正在与另一方的真实版本进行通信,从而防止攻击者通过以下方式发出CPU到FPGA或FPGA到CPU的攻击放置在CPU应用程序或FPGA IP的恶意副本。
根据 CPU 和 FPGA Enclave是否驻留在同一物理平台上,SGX-FPGA 采用两种证明模式,即本地证明和远程证明。
CPU控制器构建通往 FPGA 的安全路径
采用基于PUF的CRP认证协议来验证FPGA器件的真实性。特别是,CPU 控制器维护一个预先注册的 CRP 数据库,作为验证 PUF 和 FPGA 组件的基础。认证过程:CPU 控制器从数据库中随机选择一个挑战,并通过 PCIe 总线将其发送到FPGA 安全监视器。然后,FPGA 安全监视器将质询转发给PUF,并将 PUF 响应传输回 CPU 控制器。通过将 PUF 响应与质询/响应数据库中的条目进行比较,CPU 控制器可以确定 FPGA 是否可信。实验结论
整个过程中,FPGA全局内存中没有数据清空。此外,受保护的 FPGA 内核只能通过 FPGA 安全监视器访问,这消除了来自CPU 端的受感染用户应用程序攻击 FPGA 内核的可能性。
3. FPGA-to-CPU 攻击:SGX-FPGA 能够防御 FPGA-to-CPU 攻击,因为用户应用程序仅将敏感数据存储在 enclave 中,并始终在将其导出到不受信任的环境之前对其进行加密。此外,CPU 控制器处理 enclave 中的敏感数据,并仅以加密形式将其发送到FPGA 端。因此,恶意 IP 无法访问敏感数据。此外本文还通过与没有安全保护的基线系统进行比较,评估SGX-FPGA带来的时序开销,同时也评估了由 PUF 和 FPGA 安全监视器引起的 FPGA 端的资源开销,达到比较满意的效果。本文来源:SecurityLabUJN作者:孔繁星
如果您对可信执行环境感兴趣,欢迎参加本周六我们社区举办的线下沙龙,活动现场会有专家老师分享TEE的相关内容~
活动地点以及时间如下:时间:2023年4月1日(本周六)下午14:00-17:00地点:浙江省杭州市滨江区西兴街道联慧街188号安恒大厦报名方式:扫码报名
往期推荐
1.全同态加密知识体系整理(上)
2.联邦学习安全聚合:基于安全多方计算的经典方案椭圆曲线密码在多方安全计算中的应用4.隐私求交| Simple, Fast Malicious Multiparty Private Set Intersection