机密计算信任决策依赖芯片厂商?-探究SGX2远程认证协议

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 可信计算的信任决策依赖 芯片厂商? -探究SGX2远程认证协议 阿里安全双子座实验室 张晓丽
2. 01 机密计算 数据可用不可见
3. 机密计算-数据可用不可见 • TEE (Trusted Execution Environment) 发展趋势 Ø 2009年,OMTP(Open Mobile Terminal Platform) 提出 TEE 标准 Ø 2015年,Intel 发布具备 SGX 技术的商业化CPU,创建应用级的可信执行 环境 (SGX enclave) Ø 2017年,AMD 发布具备 SEV 技术的商业化CPU(EPYC Naples),创建加 密虚拟机 Ø 2020年,海光发布CSV(China Security Virtualization),基于海光C86架 构创建加密虚拟机 Ø 2022年:Intel Sapphire Rapids CPU支持 TDX 技术,可创建加密虚拟机 3
4. 机密计算-数据可用不可见 SGX 技术 Ø Ø Intel CPU 扩展指令集: p ENCLS(特权指令): EADD, ECREATE, EEXTEND, EINIT, … p ENCLU(非特权指令): EENTER, EEXIT, EGETKEY, EREPORT, ERESUME p ENCLV: 管理虚拟化环境中Enclave 软硬件协同: 处理器、内存管理部件、BIOS、驱动程序、运行 时环境等 p 内存加密:内存加密引擎加解密特定的内存区域 (e.g., Ice Lake 架构中MKTME) p 远程认证:允许第三方验证程序是否按照预期运行在 Enclave中 p 数据密封:为数据持久化存储提供机密性+完整性保护 Enclave 程序 • 程序 操作系统 X X 虚拟机监视管理器 CPU 内存 EPC … 4
5. 机密计算-数据可用不可见 • SGX1 -> SGX2 SGX1 过渡期* SGX2* 支持处理器* CPU架构 安全性 Sky Lake, … 仅支持 single- socket 内存完整性、机密性 保护 (MEE提供) EPC 大小 最大 256MB Enclave 启动支持 远程认证协议 静态内存管理 Intel-signed launch enclave 基于 EPID 算法 FLC (Flexible launch DCAP (Datacenter control) => enclave Attestation 启动无需由intel签名 Primitive) 的LE控制 J4005(NUC), … Ice Lake, J4005(NUC), … 内存管理 支持 multi- socket Ice Lake MKTME不提 供内存完整性保护 => 无法防御相关物理攻 击 最大1T FLC (Flexible launch DCAP (Datacenter 动态内存管理 control) => enclave Attestation (EDMM) 启动无需由intel签名 Primitive) 的LE控制 * https://github.com/ayeks/SGX-hardware * https://software.intel.com/content/www/ca/en/support/articles/000057420/software/intel-security-products.html * https://www.intel.com/content/www/ca/en/support/articles/000058764/software/intel-security-products.html 5
6. 02 SGX 信任链建立过程
7. SGX 信任链建立过程 • 编译阶段:SGX 程序签名 • 程序加载阶段:SGX 程序加载 • 程序运行阶段:SGX 远程认证 7
8. SGX 信任链建立过程:编译阶段 • 编译阶段:SGX 程序签名 Enclave 开发 Enclave 签名 SO RSA 3072-bit key with public exponent 3 SO Enclave 部署 SO 不可信 Enclave Signature (SIGSTRUCT) 包含内容: Enclave measurement: 256-bit hash(code + initial data + …), Enclave author’s pk (RSA 3072-bit key), ISVSVN, ISVPRODID, … SIGSTRUCT 作用:Enclave加载时CPU验证其是否被篡改过 8
9. SGX 信任链建立过程:加载阶段 • 程序加载阶段:SGX 程序加载 Ø SGX ECREATE:创建enclave上下文(SECS*) Ø SGX EADD:将enclave segment内容加载到 EPC page 中 Ø SGX EEXTEND:针对加载页面计算measurement,存储到特定 区域 Ø SGX EINIT: p 验证 SIGSTRUCT中 signature 是否正确 p 验证 SIGSTRUCT中 measurement 是否等于CPU计算的值 p 在SECS区域中记录mrsigner(开发者标识), mrenclave(enclave标识)等信息 * SECS(SGX Enclave Control Structure)区域页面类型为PT_SECS, 没有被映射到enclave地址空间,程序无法访问 9
10. SGX 信任链建立过程:运行阶段 • 程序运行阶段:SGX 远程认证(简化版,以SGX1 EPID协议为例) SGX APP Enclave Quoting Enclave Attestation key 1. Challenge 2. Enclave quote 3. Enclave quote 5. 远程认证成功? 4. Enclave 运行在SGX 平台? Quote: … report_body (开发者验证) mrenclave, mrsigner, …, report_data, (开发者设置) … signature (依赖Intel服务验证) Client Intel IAS 服务 1) intel 服务验证: Quote 签名是否正确,即程序是否运行在enclave中 2) 客户验证: Quote 中 mrenclave (enclave标识) & mrsigner (开发者标 识) 等是否符合预期, 即验证程序完整性 Ø Quote 生成: Intel 签名的Quoting enclave中attestation key 对相关信息签 名,该签名可由 Intel 服务验证 Ø 远程认证一般与 Diffie-Hellman 密钥交换过程耦合在一起,远程认证成功后, 利用协商的会话密钥发送机密数据 10
11. SGX 信任链建立过程 程序编译阶段 程序加载阶段 程序运行阶段:远程认证 Enclave SO 生成 SIGSTRUCT: mrenclave, author’s pk, ISVSVN, ISVPRODID, …, sig SO Quoting Enclave Attestation key Quote 验证 SIGSTRUCT; 存储 enclave 身份信息: mrenclave, mrsigner. … 1)程序运行在SGX enclave中; 2)Enclave完整性符合预期 11
12. 03 SGX2 远程认证 的离线 实现
13. SGX 远程认证协议演进 Before After 公网服务 RA协议 隔离环境 (局域网) SGX SGX Enclave RA协议 数据方 Enclave RA协议 数据方 Enclave运行时 13
14. SGX2 远程认证的离线实现 • SGX2 远程认证 (Remote Attestation,RA) 协议: Ø 协议设计初衷:Quote 验证行为可以交给第三方验证 Ø 该模式可解决以下问题: p SGX APP用户将SGX APP部署在局域网中,其中设备在运行时不能访问互联网服务 p SGX APP用户不愿将信任决策交给第三方(Intel 服务)完成 p SGX APP 分布式部署模型 v.s. SGX1远程认证的单点验证 Ø SGX2 RA协议实现的一整套解决方案: DCAP(Data Center Attestation Primitives), 包括 quote 生成库 、quote 验证库、PCCS(provisioning certification caching service), … Ø SGX2 RA协议的核心算法: ECDSA (Elliptic Curve Digital Signature Algorithm) 14
15. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø 信任链建立过程:基于 ECDSA 算法 1. PCE(provisioning certification enclave): Intel-signed enclave; 角色:local CA for local QEs; 1) provisioning certification key (PCK), 256-bit EC signing key 生成方式: EGETKEY(hw root key, devID, CPUSVN, PCE ISVSVN) 使用方式:CertifyKey(info) à SIG_info(PCK signed) 2) platform provisioning ID(PPID) 生成方式:EGETKEY(hw root key, devID, PCE mrenclave) 使用方式:GETPCInfo(enc_pk, algo) à Enc(PPID) 作用:根据平台Enc(PPID)向 Intel PCS 服务申请对应的PCK证书 图片来源:Intel 文档 Intel PCS 15
16. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø 信任链建立过程:基于 ECDSA 算法 2. QE(quoting enclave):以Intel提供的解决方案为例 Intel-signed enclave/ customized enclave; 角色:根据app enclave的信息生成quote 1) 生成 attestation key: KEY gen: EGETKEY(root seal key, SGX TCB) KEY certification: signing key cert (PCE signed) 特性:repeatable,无需 persistent storage 图片来源:Intel 文档 Intel PCS 2) 生成 quote 16
17. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø 信任链建立过程:基于 ECDSA 算法 Client 验证 Quote [Intel 参考实现] 1) 验证证书链的完整性 2) 验证证书链中key没有被撤销 3) 验证 QE mrsigner, mrenclave, ISVSVN 4) 验证 Intel SGX TCB 状态 (如是否过期等) 5) 验证 quote 中app enclave 信息,包括mrsigner, mrenclave 图片来源:Intel 文档 Intel PCS Client 需要哪些信息,实现上述验证? 1) PCK cert (Intel signed),包含:1) PCK pk, 2) PPID, 3) TCB info(CPUSVN+PCESVN),… <-- Intel PCS PCK Cert API 2) PCK cert 对应的撤销列表 <-- Intel PCS PCK CRL API 3) TCB info (一系列组合 CPUSVN+PCESVN) <-- Intel PCS TCB Info API 4) QE ID (qe mrsigner, mrenclave, isvsvn) <-- Intel PCS QEID API(可选) 17
18. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø 架构图 Intel PCS 拉取相关 证书 DB PCCS缓存服务 (云厂商/开发者搭建) Quote Quote 验证 生成 Enclave PCCS (SGX Provisioning Certification Caching Service): 作为Intel PCS的缓存,缓存信息有: 1) PCK cert (Intel signed),包含:1) PCK pk, 2) PPID, 3) TCB info(CPUSVN+PCESVN),… 2) PCK cert 对应的撤销列表 3) TCB info (一系列组合 CPUSVN+PCESVN) 4) QE ID (qe mrsigner, mrenclave, isvsvns) PCCS 交互:RESTful API ,json格式 Quote Client 18
19. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø PCCS 部署模式 p LAZY mode: 在enclave运行时, PCCS根据请求实时从Intel PCS获取PCK证书等信息, 缓存到数据库中 • 特点:PCCS 需要一直联网 p REQ mode: 在SGX平台部署时,向PCCS发起平台注册请求,PCCS进而自动请求Intel PCS服务获取PCK证书等信息,缓存到数据库中 • 特点:PCCS 在平台部署时联网,在运行时无需联网 p OFFLINE mode: 请求PCK证书(PCCS->Intel) 可通过联网设备获取相关信息,并将该 信息注入到PCCS服务中 • 特点:PCCS 无需联网 19
20. SGX2 远程认证的离线实现 • SGX2 远程认证协议:DCAP Ø PCCS 离线部署模式:风险可控 3. 获取平台PCK证书 platform_collaterals.json Intel PCS 联网设备 隔离环境 4. 注入平台PCK证书 platform_collaterals.json PccsAdmin Tool 2.拉取平台注册信息 platform_list.json PCCS pckcache.db 5.Quote 生成 1.平台注册 Enclave PCKIDRetrieval Tool SGX Platform 7. 拉取PCK证书 等信息,验证quote 6. Quote client 8. Quote 验证结果 20
21. 04 SGX 相关应用介绍
22. SGX 相关应用介绍 • SGX License Ø Ø 功能: p 代码知识产权保护 p 鉴权限制:CPU绑定、执行时间、多任务并发数量 p 支持在线授权&离线授权 p 兼容各类SGX应用架构,SGX SDK & OCCLUM 应用: p 成功服务了若干个全离线客户 22
23. SGX 相关应用介绍 • SGXDB & SGXML Ø Ø 功能: p 全周期的数据隐私保护 p 支持丰富的SQL语义,支持python脚本执行 p 完善的审批与鉴权机制 p 支持上云部署及私有部署 应用: p 成功服务近亿级记录数据融合场景 23
24. 非常感谢您的观看

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 07:53
浙ICP备14020137号-1 $Map of visitor$