推出面向 Ubuntu Core 22 的 FIPS 140-3
by Canonical on 8 April 2026
随着面向 Ubuntu 22.04 LTS 的FIPS 140-3认证加密模块的发布,Canonical 延续其长期传统,助力客户将 Ubuntu 部署到美国联邦市场。FIPS 140-3 是美国国家标准与技术研究院(NIST)制定的一项标准,规定了如何安全使用加密技术,其中包含一套严格的认证流程,以确保加密实施的正确性。Ubuntu 22.04 LTS 加密库已通过该流程,现在可通过 Ubuntu Pro 订阅使用。
作为该认证流程的一部分,我们首次将 Ubuntu Core 纳入完全认证的操作环境,从 Ubuntu Core 22 开始,并将在未来的 FIPS 认证中持续支持 Ubuntu Core。在本文中,我们将介绍什么是 Ubuntu Core,以及如何将其与 FIPS 结合使用。
FIPS 可通过 Ubuntu Pro 订阅获取,同时还包含长达 10 年的 Ubuntu 软件生态系统增强安全补丁、内核热修复、Landscape 资产管理工具等更多功能。Ubuntu Pro 对个人用户免费,最多可用于 5 台设备,同时为设备制造商提供单独定价。
什么是 Ubuntu Core?
Ubuntu Core 是一款极简、容器化、不可变的 Ubuntu 版本,专为 IoT、嵌入式设备和专用设备设计,采用 Snap 包构建。Snap 是自包含、高安全性且无依赖的 Linux 应用包。
Ubuntu Core 的核心是一套强大的安全模型:每个 Snap 包都通过严格沙盒和数字签名进行隔离,且具备完整事务性,支持系统回滚、自愈和零接触部署更新。操作系统本身是不可变且只读的,更新以原子方式交付,从而降低运维风险并减少停机时间。Ubuntu Core 的安全功能(例如安全启动、全盘加密和可度量启动能力)使设备制造商能够轻松部署基于硬件的信任链,确保从开机到运行时的系统完整性。
开发者在其首选环境中构建并验证 Snap 应用后,即可创建生产级 Ubuntu Core 镜像,该镜像仅包含目标应用所需的必要 Snap 包。随后,他们的生产级 Ubuntu Core 镜像便可部署到设备上,缩短生产线配置时间,同时通过长达 15 年的安全维护,提升可重现性、隔离性与长期支持保障。Ubuntu Core 专为设备全生命周期设计,可与设备集群管理和自动化工具无缝集成,支持在各类关键业务场景中实现规模化部署与维护。
Ubuntu Core 在 IoT 和工业领域正获得广泛应用,已部署在制造、家庭自动化、农业、零售供应链、机器人和数字标牌等场景。
如何为 Ubuntu Core 构建 Snap 包
Canonical 提供了一套名为 Snapcraft 的完整工具链,用于清晰、统一地构建 Snap 包。Snapcraft 要求通过一个简单的 YAML 文件声明来描述 Snap 包的构建方式,并且内置了大量适用于常见构建环境的插件,例如 C/C++、Python、Golang、CMake 等。
Snap 包旨在成为完全独立的应用,无需在系统上安装大量依赖项。不过,系统中存在一组通用的系统库,它们被打包在 “base” Snap 中,可供系统上所有其他 Snap 包使用 — 这个基础 Snap 由对应的 Ubuntu LTS 版构建而成,名为 core22(数字对应 Ubuntu LTS 版本,因此 core22 基于 Ubuntu 22.04 LTS 构建)。
什么是启用 FIPS 的 Snap?
作为 Ubuntu 22.04 FIPS 认证流程的一部分,我们还在 core22 基础 Snap 中包含了用户空间加密库(OpenSSL、libgcrypt、GnuTLS)。这款包含 FIPS 库的 core22 Snap 版本可从 Snap store 的 fips-updates/stable 渠道获取。您可以使用 snap info <snap> 命令查看特定 Snap 的可用渠道,例如 snap info core22。
与传统版 Ubuntu 22.04 LTS FIPS 一样,这些模块需要安装 FIPS 内核,以提供经过 FIPS 验证的熵源(随机数)。FIPS 内核会在 proc 文件系统中设置一个专用标志,表明其正在 FIPS 模式下运行,加密模块会检测到该标志并同样以 FIPS 模式运行:
$ cat /proc/sys/crypto/fips_enabled
1
这意味着任何与 FIPS 模块(如 OpenSSL)链接的应用程序,都可以直接使用经 FIPS 验证的加密算法,无需进行任何修改或额外的 NIST 认证。
需要重点注意的是,core22 基础包已包含 OpenSSL、libgcrypt 和 GnuTLS,因此在构建 snap 包时,应确保使用这些库,不要在构建暂存阶段额外引入这些库的副本,否则 Snap 将无法在 FIPS 模式下正常运行。
Snap 构建示例
我们创建了一个示例 Snap,用于展示已安装的 OpenSSL 加密提供程序。默认情况下,OpenSSL 使用标准的 “base” 提供程序,而在 FIPS 模式下,它还会启用专用的 “fips” 提供程序。查看 GitHub 上的代码:
$ git clone https://github.com/henrycoggillcnc/fipstestsnap.git
此应用程序基于 OpenSSL 构建,请参阅 CMakeLists.txt 文件中的指令:
target_link_libraries(server PUBLIC microhttpd crypto)
Snapcraft 声明文件包含了 OpenSSL 开发库,但不会暂存 OpenSSL 运行时库,因为这些库已由 core22 基础 Snap 提供:
arts:
server:
source: .
plugin: cmake
build-packages:
– libmicrohttpd-dev
– libssl-dev
stage-packages:
– libmicrohttpd12
在 FIPS 模式下的传统版 Ubuntu 上进行测试
Snap 可以在传统版 Ubuntu 或 Ubuntu Core(以及许多其他 Linux 环境)上运行,在传统版 Ubuntu 系统上进行开发和测试最为简便。Snap 要在公开 Snap 商店中上架,需要经过 Canonical 安全团队的审核。您也可以通过以下命令在本地构建并安装 Snap:
$ sudo snap install –dangerous –jailmode testsnap_1_amd64.snap
–dangerous 标志告知 snapd 无需检查该 Snap 的签名和安全声明。这些通常通过 Snap 商店的发布流程来启用。–jailmode 标志告知 snapd 仍需强制启用该 Snap 的安全隔离机制(–dangerous 会同时禁用安全隔离)。同样,这仅用于测试目的。
对于 FIPS 模式,系统需要内核和用户空间库均启用 FIPS。Canonical 通过 Ubuntu Pro 订阅提供所需的软件包,您可以使用 Pro 客户端安装这些软件包,将系统切换至 FIPS 模式:
$ sudo pro enable fips-updates
我们的测试示例 Snap 可在非 FIPS 和 FIPS 系统上运行,并会列出已加载的 OpenSSL 提供程序。默认情况下,它会显示 “base” 提供程序;而在启用了 FIPS 的系统上,还会额外显示 “fips” 提供程序。
在 FIPS 系统上测试应用程序的另一种简便方法是使用 multipass。启动 Ubuntu 22.04 实例,启用 FIPS,安装 core22 FIPS 基础包,安装示例测试 Snap 并查看结果。
$ multipass launch jammy -n jammyfips -c 2 -m 2g -d 15g
$ multipass shell jammyfips
$ sudo pro attach <pro token>
$ sudo pro enable fips-updates
$ sudo reboot
$ multipass transfer testsnap_1_amd64.snap jammyfips:
$ multipass shell jammyfips
$ sudo snap install core22 –channel fips-updates/stable
$ sudo snap install –dangerous –jailmode testsnap_1_amd64.snap
带 FIPS 的 Ubuntu Core
构建 Ubuntu Core 镜像时,首先需要定义模型声明,这是一份经过签名的 JSON 文档,用于指定镜像结构,包括基础系统、内核、设备适配组件和应用程序 Snap,以及设备标识和安全策略。该模型声明了包含哪些 Snap 以及它们之间如何交互。随后使用 ubuntu-image 工具,基于该模型组装镜像,该工具会从 Snap Store 或指定源拉取声明的 Snap。最终生成的是可重现、已签名的镜像,可直接安全部署到设备上。
Ubuntu Core 镜像由 4 个关键 Snap 构成:
- 设备适配 Snap (Gadget snap) — 定义系统布局并包含硬件配置
- 内核 Snap (Kernel snap) — Ubuntu Linux 内核
- Snapd — Snap 和 Ubuntu Core 的运行时引擎
- 基础 Snap (Base snap) — 提供 Linux 基础功能的核心库与组件
要获得完全启用 FIPS 的 Ubuntu Core 版本,除了不包含加密功能的设备适配 Snap 外,所有 Snap 都需要以 FIPS 模式构建。Canonical 已构建这些启用了 FIPS 的 Snap,现在可通过 Ubuntu Pro 订阅获取。
对于 IoT 系统,需要注意的一点是是否需要自定义内核。我们经过漫长 FIPS 验证流程的启用了 FIPS 的内核,基于每个新 LTS 版本发布的标准 Ubuntu 内核版本。这意味着如果标准内核支持该硬件平台,那么 FIPS 内核也同样支持;但如果标准内核不支持该硬件平台,FIPS 内核也同样不支持。
Canonical 的 IoT 专业服务团队随时为客户提供全程指导,包括技术支持、定制化、硬件适配,以及提供此类 FIPS Snap 等专用构建版本的访问权限。
通过与我们的 IoT 团队合作,您可以获得专用 Snap Store,从而控制自定义 Snap 应用程序的发布与可用性、管理账户以及设备认证。
结论
Ubuntu Core 是一种令人振奋的全新 Linux 安全方法,它融合了不可变架构、严格隔离和应用分发领域的最新成果,全球各地 IoT 领域的客户正在体验这些优势。我们很高兴将 Canonical 的 FIPS 合规能力扩展到 Ubuntu Core 生态系统,让 Core 能够在受监管环境中得到更广泛的应用。欢迎联系我们,了解更多关于 Ubuntu Core、FIPS 140 的信息,以及我们的 IoT 专业服务团队如何帮助您在这个安全、精简的全新 Linux 系统领域顺利启动并运行。
资源
订阅博客文章
查看更多内容
Ubuntu Pro 部署 Nutanix 裸机 Kubernetes
Nutanix 与 Canonical 扩大合作,为容器化工作负载提供更多选择 企业级 Kubernetes® 正逐步发展为高度灵活的多架构模型。随着 AI/ML 及数据密集型工作负载对硬件吞吐量的要求不断提升,企业在追求裸机性能的同时,也希望兼顾云平台的运维一致性。 为满足这一需求,Nutanix 与 Canonical 已将 Ubuntu Pro 服务拓展至裸机环境下运行的 Nutanix Kubernetes 平台 (NKP) 实例,涵盖最新发布的 NKP Metal 解决方案。本次功能拓展基于双方 2025 年达成的合作,彼时搭载安全补丁的 Ubuntu 操作系统可支持虚拟机环境下运行的 NKP 实例。安全补丁服务隶属于 Ubuntu Pro,是 Canonica […]
Canonical 发布 Ubuntu Core 26
Ubuntu Core 26 推出精准化 Linux 构建、优化的 OTA 更新、实时内核补丁,以及面向关键任务部署的增强型硬件级安全防护。 2026 年 5 月 19 日,Canonical 宣布正式发布 Ubuntu Core 26。该系统为极简不可变操作系统,提供长达 15 年的安全维护支持。 Ubuntu Core 26 针对关键任务操作与低延迟 AI 工作负载实现重大系统改进:安装时长缩短、OTA 更新包体积缩减 90%,并借助 Chisel 工具实现精准化系统构建。与以往版本一致,所有组件均为经过沙箱隔离、加密签名的 Snap 软件包,构建可信启动链,仅允许运行经验证的软件。凭借这款全新长期支持(LTS)版本,Ubuntu Core 仍是适用于关键任务系统的 […]
Ubuntu 26.04 LTS 在安全方面的新增功能
Ubuntu 26.04 LTS 是我们安全设计最为完善的 LTS 版本之一。Ubuntu 26.04 LTS 并非单纯新增功能,而是通过同步提升系统各层级的安全基准,实现全方位安全强化,且全程无需中断部署或人工干预。通过“默认设置”聚焦安全核心,我们得以采用全新方式强化 Ubuntu 的安全性。本文将带您一览 Ubuntu 26.04 LTS 在安全方面的新增功能,包括: Ubuntu 26.04 LTS 为未来十年桌面端、服务器、机密虚拟机、云镜像及边缘系统的 Linux 部署,显著提升了默认安全基线。对于将 Ubuntu 作为安全基础进行标准化部署的企业而言,该版本是其业务构建的理想选择。 安全性不再仅限于安装阶段:安全中心升级为控制平面 以往,关键的安全决策(例 […]