当前位置: 代码网 > 科技>操作系统>鸿蒙系统 > openEuler 社区签名体系建立

openEuler 社区签名体系建立

2024年08月04日 鸿蒙系统 我要评论
近年来,网络安全形势日益严峻,各种攻击手段层出不穷。软件的构建、发布、安装、运行等环节都面临着安全威胁。对以开源软件为主的 openEuler 操作系统来说,软件组件的完整性保护至关重要。通过在社区建立以 PKI (Public Key Infrastructure,公钥基础设施)为基础的软件发布签名体系,结合从系统启动到运行的端到端完整性保护技术,可以有效防护各个环节的攻击,从而提升系统安全性。 安全启动(Secure Boot)是利用公私钥对...

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

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

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

  • 启动阶段:bios->shim->grub->内核(efi 加载前进行签名校验);

  • 运行阶段(模块加载):内核->内核模块(模块插入时进行签名校验);

  • 运行阶段(文件访问):内核->文件(应用程序执行或普通文件访问时进行签名校验);

  • 运行阶段(软件包安装):包管理组件->rpm 软件包(软件包安装时进行签名校验)。

为支持“开箱即用”的安全启动能力,核心是在 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软件包进行签名和校验

注意:

  • efi文件(shim/grub/kernel 等)的签名信息包含二、三级证书,可以使用 openeuler ca证书进行签名验证;

  • ima 摘要列表和内核模块的签名信息包含三级证书,可以使用内核 ica 证书进行签名验证。

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 社区版本中已有或未来规划的安全技术:
  • 在openeuler 社区版本中使能主流的 linux 安全特性,提供系统安全工具、库、基础设施等,提升系统的安全性。
  • 改善现有安全技术的应用体验,帮助安全创造实际的价值。
如果您对相关技术感兴趣,欢迎您的参与和加入。您可以添加小助手微信,加入安全技术交流群。

参考资料

[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)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com