推出面向 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?与标准版有不同吗?功能及内容详解
Ubuntu Pro 是 Canonical 推出的全方位订阅服务,提供开源安全防护、技术支持与合规保障。从长达 15 年的安全维护、全天候技术支持,到面向 IT 管理员的自动化加固工具,深入了解 Ubuntu Pro 订阅包含的全部服务。 Ubuntu Pro 具备哪些功能? Ubuntu Pro 是一套安全合规订阅服务,可为操作系统、应用程序及 IT 运维各层级及时提供补丁与安全维护。它助力企业及其工程师保障软件与系统安全,并通过加固工具、自动化流程及一系列其他功能,为企业满足安全标准合规铺平道路。 了解关于 Ubuntu Pro 的更多信息 › Ubuntu Pro 与标准版 Ubuntu 有何不同? 很多人存在误区,误以为 Ubuntu Pro 是独立版本或全新操 […]
现代化 Linux 身份管理:让 Ubuntu 从本地认证迈向云端
现代企业在混合环境中运营,本地基础设施与云服务并存,安全威胁也在不断演变。IT 管理员肩负着一项艰难的平衡工作:在维护传统本地工作流程的同时,还需应对不可避免的云原生架构转型。身份已成为新的安全边界,取代了传统的基于网络的防御体系。 在 Canonical,我们开发了一套全面框架,用以提升 Ubuntu 服务器与桌面端部署的身份管理安全性,弥合传统 Active Directory 环境与现代云身份提供商之间的差距。 在这篇博客中,我们将探讨 Canonical 的框架如何通过弥合传统 Active Directory 环境与现代云身份提供商之间的差距,增强认证与访问管理控制的安全性。 基础:本地认证及其局限性 传统上,Linux 认证机制依赖于存储在本地 /etc/p […]
Canonical 与 Microsoft 合作,加强企业级 Linux 防护
Canonical 正与 Microsoft Defender 合作,提升企业关键业务 Linux 工作负载的安全性 2026 年 3 月 18 日 Ubuntu 发行商 Canonical 宣布与 Microsoft Defender 推出全新安全合作项目,旨在结合 Canonical 安全维护服务 Ubuntu Pro,进一步强化安全防护能力。Microsoft Defender 客户现已可使用 Ubuntu Pro 安全维护服务,企业能够将高级威胁防护、检测与调查能力扩展至 Ubuntu Pro 环境,确保在所有主流 Linux 环境中实现统一、高效的安全防护。此次合作使安全与运维团队能够采用可靠工具实现标准化管理,简化管理工作,并提升安全基准。 Linux 是当 […]