认识证书和签名
概述
数字签名是保护操作系统完整性的重要技术。通过对系统关键组件添加签名,并在后续的组件启动加载、运行访问等流程中进行签名验证,可以有效检查组件的完整性,避免组件被篡改而导致的安全问题。业界已支持多种系统完整性保护机制,在系统运行的各个阶段对不同类型的组件进行完整性保护,典型的技术机制有:
- 安全启动;
- 内核模块签名;
- IMA完整性度量架构;
- RPM签名验证。
上述完整性保护的安全机制都需要依赖签名(通常需要在组件发布阶段集成),而开源社区普遍存在缺乏签名私钥和证书管理机制,因此社区发布的操作系统发行版通常不提供默认签名,或仅使用构建阶段临时生成的私钥进行签名。往往需要用户或者下游OSV厂商进行二次签名后才可开启这些完整性保护安全机制,增加了安全功能的使用成本并降低了易用性。
解决方案
openEuler社区基础设施支持签名服务,通过签名平台统一管理签名私钥和证书,并与EulerMaker构建平台结合,实现在社区发行版的软件包构建过程中对关键文件进行自动签名。当前支持的文件类型有:
- EFI文件;
- 内核模块文件;
- IMA摘要列表文件;
- RPM软件包。
约束限制
openEuler社区的签名服务功能存在如下约束限制:
- 当前仅支持为openEuler社区官方发布分支进行签名,暂不支持对个人构建分支进行签名;
- 当前仅支持对OS安全启动相关的EFI文件进行签名,包括shim、grub、kernel文件;
- 当前仅支持对kernel软件包提供的内核模块文件进行签名。
文档捉虫