写点什么

基于鲲鹏原生安全,打造安全可信的计算平台

作者:Geek_2d6073
  • 2022 年 7 月 07 日
  • 本文字数:3288 字

    阅读完需:约 11 分钟

在整个信息系统中,计算平台作为系统的底座,决定了整个 IT 系统的安全可信。

纵向来看,计算平台自下而上的每一层都面临不同的安全威胁,芯片自 2018 年起就不断被爆出侧信道攻击的漏洞,硬件可能受到物理攻击,固件可能被篡改并植入后门木马,应用和操作系统更是黑客攻击的重点领域。因此构建整个计算平台自下而上的完整信任链是保证平台算力安全可信的第一步。

另一方面,要保证数据的安全,就要保证数据在全生命周期中的安全。目前看,在数据全生命周期中,每个环节都有成熟的安全技术和方案保障,唯有数据使用中的安全,仍然是个业界难题。原因是数据在被处理时,它必须是确定性的,并且需要被处理者所理解,比如要使用密钥,它必须以明文的方式输入才可以得到确定性的结果。这个过程就为攻击者就提供了可趁之机。使用中的数据安全问题,需要由隐私计算或机密计算来技术来解决。所以在将来几年中这些技术将是数据安全的核心竞争力。

安全计算平台:安全可信应用快速开发的底座

为了能支撑客户和伙伴快速开发安全可信应用,鲲鹏致力提供完备的安全解决方案,以鲲鹏处理器和欧拉 OS 为基础,提供鲲鹏应用使能套件 BoostKit ,包括机密计算 TrustZone 套件、KAE 加速引擎等一系列组件,构建全栈安全能力,支撑多场景应用。

硬件上,鲲鹏提供可信计算、机密计算和安全加速三大核心能力。可信计算基于芯片内置可信根实现安全启动与可信度量,防止系统被篡改;机密计算基于 ARM TrustZone 架构,构建安全可靠的可信执行环境,让数据可用不可见;安全加速则通过处理器内置的“高性能安全密码加速卡” KAE 加速引擎实现。

在 OS 内核上,鲲鹏不仅在 openEuler 进行了安全增强,还为机密计算 TrustZone 提供了专用的 TEE 安全 OS,OS 的安全性通过了形式化验证测试,并且取得 CC EAL 4+安全认证, 其微内核由华为自研,历经市场成熟验证,已在上亿端侧设备上稳定运行超过十年。

在应用使能层,鲲鹏提供鲲鹏安全库和 secGear 机密计算框架,结合硬件能力,使能鲲鹏开发者快速打造安全可信的应用。

目前,鲲鹏安全解决方案已经覆盖主流的安全场景,在金融、运营商、政府等行业都已经有了实际应用案例。

鲲鹏可信计算:基于芯片内置可信根实现安全启动与可信度量

我们知道,在一个完备的计算系统中,从底层的硬件,到 BIOS 固件,到操作系统,都存在着被攻击、篡改和植入后门木马的风险。可信计算技术就是通过安全启动、可信启动等技术手段,从硬件的可信根出发,构建一条自下而上的信任链,保证整个系统的完整性,不被恶意篡改。

鲲鹏服务器提供完整的可信计算解决方案,以硬件的鲲鹏处理器作为可信根,向上提供了完整的信任链,支持安全启动与可信启动两套方案。安全启动保证系统启动流程遵循逐级校验签名,校验失败则停止启动流程,转而开启安全备份版本加载系统,防止系统被篡改后非法运行。

可信启动在系统启动过程中对每个关键组件进行度量,并将度量结果保存在可信硬件 TPM 中,在系统运行后能随时对外提供系统的度量报告,让第三方可以通过远程证明的方式验证系统的安全可信状态。其中,对系统可信动态度量的远程证明开发框架,已经开源贡献到了 openEuler 社区的鲲鹏安全库,并且仍然在持续开发和演进。有兴趣的朋友可以去社区看看,欢迎大家一起参与进来。

鲲鹏 BoostKit 机密计算 TrustZone 套件:使能数据可信流动

机密计算技术,也是当前业界最火的数据安全技术之一。正如前文所述,机密计算技术主要是基于硬件芯片,构建一个安全可信的执行环境,将数据在可信执行环境,也称为 TEE(Trust Execution Environment)中运行,以达到保护使用中的数据的目的。

当前不同的芯片厂商都推出了各自的机密计算技术,比如 Intel 公司的 SGX 技术,AMD 公司的 SEV 技术和 ARM 公司的 TrustZone 技术。虽然他们各自的技术实现方式不同,但是达到的目的和效果基本上是一致的。相比于传统的计算模式对系统管理员和计算提供无条件信任,采用机密计算技术的计算模式,可以有效防止算力提供方,如云厂商对数据的非法获取。在面对恶意管理员或者内部作案等威胁时,仍能有效的保护用户在运行时的数据。

鲲鹏采用了 ARM 的 TrustZone 开放架构实现可信执行环境,基于 CPU 分时复用机制,将 CPU 与计算资源分为安全世界(TEE)与非安全世界(REE),将需要保护的数据放到安全世界计算,非安全世界无法访问安全世界数据。

具体来说,华为以鲲鹏 BoostKit 机密计算 TrustZone 套件的方式提供开放的开发架构,提供预装的 TEE 安全 OS 和系统固件,还包括社区开源的 SDK 与补丁。

预装部分,从芯片开始,硬件需要 BIOS 以及 BMC 配合,其中 BIOS 完成对 TEE OS 的解密以及校验,初始化安全内存以及启动 TEE OS,BMC 则提供升级和维护能力。

TEE OS 是鲲鹏机密计算 TrustZone 套件的核心组件,使用华为自主产权的微内核系统,并针对服务器的云应用场景完成适配和优化。TEE OS 主要特点一是稳定可靠,它已应用于手机近 10 年,服务过亿级用户;二是安全性有保障,得到了第三方的安全认证,取得 CC EAL4+证书,CC EAL6+认证也在进行中。

开源部分,REE 侧 Patch 提供驱动以及 CA 开发接口,开发者可以跟据自己的操作系统自行编译。与此同时,TEE SDK 提供了标准的 GP 接口,特有的服务接口,POSIX C 以及 C++接口,对开者相对友好,开发便利性这也是鲲鹏方案的特点之一。

在机密计算的过程中,还有一个必须解决的问题,那就是 TA(Trusted Apps)的来源不可预知,为保证 TEE 环境的可信,避免被恶意应用污染,TA 在运行前必须得到身份和完整性的确认。

鲲鹏机密计算采用的是通过给客户签发开发者证书,并实现对 TA 的完整性校验进行管控。整体流程如下:

1. 开发者决定启动项目,为自己的 TA 生成证书请求文件并提交到华为项目接口人;

2. 华为接口人组织项目评审,评审通过之后,接口人通过 PKI 申请证书,最后将证书发回给客户;

3.开发者构建 TA 二进制,并使用 SDK 提供工具对 TA 进行签名和加密,生成最终镜像文件。

当然,这样的流程还是略微繁琐,为了进一步简化开发者的开发流程,近期会推出二级证书导入功能,使能开发者在 TEE OS 中导入自己的证书,之后可以直接用自己的证书对 TA 进行签名验签,而不需要每次启动项目都通过华为验签,让开发更加便捷。

鲲鹏 BoostKit KAE 加速引擎:处理器内置的“高性能安全加速卡”

鲲鹏安全解决方案把传统的加解压缩能力,符合国际标准的加解密能力和符合国家标准的国密算法内置到了鲲鹏处理器中,在性能上相比传统的 PCIe 加速卡方案提升 30%以上,在安全性上,由于明文数据不出芯片,不走数据总线,安全性也得到了提升。

在易用性上,鲲鹏提供了对应的软件 API 接口和 SDK,应用层无需修改可以直接调用,并兼容现有的 OpenSSL 和 Zlib 等标准接口,秉承着以开发者中心的理念,做到了极致易用。

secGear 机密计算开发框架:安全应用开发效率倍级递增

当前业界机密计算面临的一个主要问题,就是不同的厂商采用不同的硬件架构,如我们之前讲过的 Intel SGX、ARM TrustZone 等。而不同的硬件架构必然带来不一样的软件接口,这就进一步带来了应用的不兼容性。在一个平台上开发的应用到了另一个平台就不能用了,面临着重复开发的难题。

而 secGear 就是为了帮助开发者解决这方面的问题,实现一套软件框架兼容多种硬件,为开发者屏蔽硬件的差异。通过使用 secGear 中间件,开发者只需要采用统一的 API 进行一次开发,就能将开发好的应用部署到多种不同的硬件上,极大的提高了开发效率,减少重复工作,也更能够适应现实中多硬件共存的实际情况。

除了安全技术本身,华为公司还对整个产品的安全质量提出了高标准,严要求。采用科学系统的方法把安全可信保障活动纳入产品开发流程的全生命周,保证产品安全可信可持续。

华为公司参考业界最佳实践形成的一套高效的安全工程能力管理流程。在产品开发设计的每一个阶段,都对应了相应的安全活动,从产品概念阶段的安全需求分析,到设计阶段的安全设计,再到安全开发、安全测试,最终到产品发布之后的持续维护,尽可能的不留盲点,减小产品的安全风险,为客户,为开发者提供最高安全质量的产品,解除后顾之忧。

本文通过分享鲲鹏安全解决方案,希望能给客户和伙伴打造行业安全解决方案能带来启示和价值,也希望有兴趣的朋友能够进一步参与到鲲鹏的项目中来,一起开发建设更加完备的安全生态。


用户头像

Geek_2d6073

关注

还未添加个人签名 2021.12.22 加入

还未添加个人简介

评论

发布
暂无评论
基于鲲鹏原生安全,打造安全可信的计算平台_Geek_2d6073_InfoQ写作社区