其他
起源故事:瓮城、沙盒与可信计算
The following article is from Phala可信网络 Author 佟林
来源 | Phala可信网络
责编 | 晋兆雨
封图 | CSDN 付费下载自视觉中国
瓮城
针对易被攻破的模块,设计单独的双重保护机制 限制不信任对象的行为 构建易于清理不信任对象的结构
针对易于感染恶意程序的对象,设计双重保护:通过虚拟化环境,能够实现包括系统级别的沙箱和容器级别的沙箱 严格限制不信任对象的行为:沙盒提供用后即回收的磁盘及内存空间,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制 一旦发现恶意程序,通过重定向,可以把文件、注册表等路径重定向到其他位置(沙箱指定位置),这样软件本来想操作的资源就不会被访问或者操作,保证资源的安全性。
度量就是采集所检测的软件或系统的状态 验证是将度量结果和参考值比对看是否一致,如果一致表示验证通过,如果不一致则表示验证失败。
所有模块或组件,除了CRTM(信任链构建起点,第一段运行的用于可信度量的代码),在没有经过度量以前,均认为是不可信的。同时,只有通过可信度量且与预期数据相符的模块或组件,才可归入可信边界内。 可信边界内部的模块或组件,可以作为验证代理,对尚未完成验证的模块或组件进行完整性验证。 只有可信边界内的模块或组件,才可以获得相关的TPM 控制权,可信边界以外的模块或组件无法控制或使用可信平台模块。
软硬件协同的安全机制:隔离是其本质属性,隔离可以是通过软件,也可以是硬件实现,更多的软件、硬件、IP、总线一体的安全机制 算力共享:能使用CPU的同等算力、硬件资源 开放性:有对应的REE侧,才有TEE的必要性,只有在开放性中才需要可信执行环境的保护
支持TrustZone技术的芯片提供了对外围硬件资源的硬件级别的保护和安全隔离。当CPU、处于正常状态时,任何应用都无法访问安全硬件设备,也无法访问属于安全世界状态下的内存、缓存(Cache)以及其他外围安全硬件设备。
在具体的应用环境中,可以将用户的敏感数据保存到TEE中,并由可信应用(Trusted Application,TA)使用重要算法和处理逻辑来完成对数据的处理。当需要用户的敏感数据做身份验证时,则通过在REE侧定义具体的请求编号从TEE侧获取验证结果。过于依赖英特尔。也就是所谓“中心化”,这也是MPC的多种方案中TEE常常被抨击的点。 SGX提供的enclave可使用内存太小, 当程序数量和规模增大时, 需要换进换出页面.为了保证安全性, 需要对页面进行完整性和机密性保障, 导致系统开销大。 无法抵御侧信道攻击。SGX Enclaves仅保护在围圈中运行的代码。这意味着不受信任的操作系统将保留服务资源管理任务,这为侧信道攻击打开了一个很大的缺口。事实上,最近的研究已经证明了一些针对英特尔SGX的侧信道攻击是有效的。 由于enclave处于用户态, 其自身无法执行系统调用, 需要与不可信区域进行交互(运行库的支持有限, 接口的安全性)。在执行系统调用前需要退出enclave, 执行完成后将结果返回到enclave中, 增大了安全风险和系统开销。
通过去中心化网络和共识机制降低英特尔等厂商的安全风险和作恶可能性,保证可信链(此链非区块链)的可用性。 解决Enclave与不可信区域交互的问题。区块链最擅长的即是构建可信网络,不论是BTC还是以太坊,其可信程度都达到了非常好的水平——甚至与TEE的可信程度类似。因此,让TEE通过区块链和区块链智能合约交互是个非常好的互补场景。这也是Phala网络需要跨链能力的重要原因。