科技 > 操作系统 > 鸿蒙系统

openEuler 社区签名体系建立

217人参与 2024-08-04 鸿蒙系统

近年来,网络安全形势日益严峻,各种攻击手段层出不穷。软件的构建、发布、安装、运行等环节都面临着安全威胁。对以开源软件为主的 openeuler 操作系统来说,软件组件的完整性保护至关重要。通过在社区建立以 pki (public key infrastructure,公钥基础设施)为基础的软件发布签名体系,结合从系统启动到运行的端到端完整性保护技术,可以有效防护各个环节的攻击,从而提升系统安全性。

安全启动(secure boot)是利用公私钥对启动部件进行签名和验证。在启动过程中,前一个部件验证后一个部件的数字签名,如果能验证通过,则运行后一个部件;如果验证不通过,则停止启动。通过安全启动可以保证系统启动过程中各个部件的完整性,防止没有经过认证的部件被加载运行,从而防止对系统及用户数据产生安全威胁。

openeuler 在支持安全启动的基础上,还通过支持内核模块签名、ima 文件完整性保护等机制,将基于数字签名的保护链路进一步延伸至内核模块和应用程序文件(广义安全启动),整个验证过程可包含如下四个部分:

为支持“开箱即用”的安全启动能力,核心是在 openeuler 社区建立以 pki 为基础的软件构建签名体系。在软件构建阶段,自动为目标文件添加数字签名,并在关键组件中预置公钥证书,从而在用户安装 openeuler 镜像后,可以直接开启相关的签名校验机制,提升系统安全性。

整体方案介绍
自 openeuler 24.03 lts 版本开始,openeuler 采用统一的签名平台进行签名证书和密钥的管理以及签名生成,并对接 eulermaker 构建平台,实现交付件的自动签名:

  1. openeuler 签名平台生成并管理签名公私钥和证书,同时通过 signatrust 提供签名服务;

  2. eulermaker 构建系统在执行软件包构建阶段,通过spec脚本调用 signatrust 签名接口为目标文件执行添加数字签名;

  3. 具备签名验证功能的组件(如 shim、kernel 等),在构建阶段预置相应的验签证书;

  4. 用户安装 openeuler 镜像后,开启安全启动、内核模块校验、ima、rpm 校验等按机制,在系统启动和运行阶段使能相应的签名验证功能,保障系统组件的真实性和完整性。

证书及签名介绍

openeuler 24.03 lts 证书包含 x509 和 openpgp 两种体系,其中 x509 体系采用三级证书的形式进行管理(根证书、中间证书、签名证书): 

各证书作用分别如下:

证书 类型 说明
openeuler ca证书 x509一级证书 openeuler社区根证书,用于签发及校验二级证书
安全启动ica证书 x509二级证书 安全启动二级证书,用于签发及校验安全启动签名证书
内核ica证书 x509二级证书 预置在openeuler内核中的根证书,用于签发及校验内核签名证书
ima摘要列表ee证书 x509三级证书 对rpm包中提供的ima摘要列表文件进行签名和校验
内核模块ee证书 x509三级证书 对kernel中的内核模块文件进行签名和校验
openeuler rpm证书 openpgp证书 对openeuler发布的rpm软件包进行签名和校验

注意:

openeuler 24.03 lts 版本已默认集成如下签名:
文件类型 文件格式 签名格式
efi文件 efi image authenticode
内核模块文件 kernel module cms
ima摘要列表文件 binary cms
rpm软件包文件 rpm package openpgp

用户可开启对应的安全机制,如安全启动、内核模块校验、ima 等,开启后可使能签名校验功能。

三方安全启动签名

openeuler 社区与 cfca(中国金融认证中心)进行合作,在 openeuler 24.03 lts 版本中提供基于 cfca 签名的 shim 组件,在预置 cfca 安全启动证书的服务器可实现安全启动。

加入我们
sig-security_facility 主要讨论在 openeuler 社区版本中已有或未来规划的安全技术:
如果您对相关技术感兴趣,欢迎您的参与和加入。您可以添加小助手微信,加入安全技术交流群。

参考资料

[1] signatrust签名服务开源项目:https://gitee.com/openeuler/signatrust

[2] openeuler 社区证书中心:https://www.openeuler.org/zh/security/certificate-center/
[3] openeuler 签名资料:https://gitee.com/openeuler/docs/tree/master/docs/zh/docs/certsignature


(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

MICA:面向复杂嵌入式系统的混合关键性部署框架

08-04

素质教育新模式:后疫情时代教育 OMO 模式如何切实落地?

08-04

Kunpeng BoostKit 使能套件:大数据场景如何实现“大鹏一日同风起”倍级性能提升?

08-04

毕昇 JDK:“传奇再现”华为如何打造 ARM 上最好用的 JDK?

08-04

openEuler 24.03 LTS 特性解读 | 动态复合页

08-04

OERV-RTOS: UniProton 适配 Milk-V Duo,加速 openEuler RISC-V 生态

08-04

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论