由CPU保护您的数据和隐私不被恶意代码窃取的方法

这篇文章给大家分享的是有关由CPU保护您的数据和隐私不被恶意代码窃取的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

在麻阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站建设,网络营销推广,外贸营销网站建设,麻阳网站建设费用合理。

英特尔 SGX 基础介绍

英特尔 SGX(Intel Software Guard Extension)是英特尔指令集架构的一个扩展。SGX 为您提供了围圈(Enclave),即内存中一个加密的可信执行区域,由 CPU 保护您的数据和隐私不被恶意代码窃取。

原理

SGX 利用新增的处理器指令,在内存中分配一部分区域 EPC(Enclave Page Cache),通过 CPU 内的加密引擎 MEE(Memory Encryption Engine)对其中的数据进行加密。EPC 中加密的内容只有进入 CPU 后才会被解密成明文。因此,在 SGX 中,您可以不信任操作系统、VMM、甚至 BIOS,只需要信任 CPU 便能确保隐私数据不会泄漏。

应用

实际应用中,您可以把隐私数据加密后以密文形式传递至云上的围圈中,并通过远程证明把对应的秘钥也传入围圈。然后在 CPU 的加密保护下利用数据进行运算,结果会以密文形式返回给您。这种模式下,您既可以利用云计算强大的计算力,又不用担心数据泄漏。

由CPU保护您的数据和隐私不被恶意代码窃取的方法

EDL(Enclave Definition Language)

EDL 是 SGX 编程的核心,其中定义了所有围圈里对外读写、处理数据的函数。在编译阶段,SDK 提供的 Edger8r 工具会根据 EDL 中定义的函数生成围圈和普通内存的桥接函数,并做相应的安全检测。

函数分为信任函数(ecall)和不可信函数(ocall):

ecall:定义在信任区域(trusted),在围圈外被调用,并在围圈内执行。

ocall:定义在不可信区域(untrusted),在围圈内被调用,并在围圈外执行。

// demo.edl
enclave {
        // Add your definition of "secret_t" here
        trusted {
                 public void get_secret([out] secret_t* secret);
        };
        untrusted {
        // This OCALL is for illustration purposes only.
        // It should not be used in a real enclave,
        // unless it is during the development phase
        // for debugging purposes.
        void dump_secret([in] const secret_t* secret);
        };
};

安装 SGX

您可以通过安装文件或者源代码安装 SGX,包括驱动、PSW 和 SDK 等。两种安装方式都需要安装对应 Linux 内核版本的头文件。

感谢各位的阅读!关于由CPU保护您的数据和隐私不被恶意代码窃取的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站名称:由CPU保护您的数据和隐私不被恶意代码窃取的方法
网站链接:http://scjbc.cn/article/iiicce.html

其他资讯