首页
/ Snapd 2.68 版本发布:全盘加密增强与组件化支持升级

Snapd 2.68 版本发布:全盘加密增强与组件化支持升级

2025-06-25 00:10:26作者:邬祺芯Juliet

项目简介

Snapd 是 Canonical 公司开发的跨 Linux 发行版的软件包管理系统核心组件,它为 Snap 格式的软件包提供运行时环境和管理功能。Snap 是一种容器化的软件打包格式,具有安全隔离、自动更新和跨发行版兼容等特性,广泛应用于 Ubuntu 和其他 Linux 系统中。

核心功能更新

全盘加密(FDE)增强

2.68 版本对全盘加密功能进行了重要改进:

  1. 新型密钥格式支持:引入了更灵活且可扩展的统一密钥格式,该格式同时适用于 TPM 和 FDE hook,解决了之前两种加密方式密钥格式不一致的问题。

  2. 安装阶段密码短语支持:现在用户可以在系统安装过程中直接添加额外的解密密码短语,提高了加密设备的使用便利性。

  3. 安全启动组件升级:secboot 模块更新至 30317622bbbc 版本,带来了底层安全性的提升。

Snap 组件化支持

组件化架构是 Snap 系统的重要演进方向,2.68 版本对此进行了多项增强:

  1. 首次启动可用性:确保内核组件在系统首次启动时即可用,无论采用 initramfs 还是临时根文件系统(ephemeral rootfs)安装方式。

  2. 早期驱动加载:在 initramfs 阶段挂载驱动树,使内核模块在系统启动早期阶段即可使用。

  3. 系统重构支持

    • 支持向包含组件的模型进行重构(remodeling)
    • 支持离线环境下向包含组件的模型重构
    • 支持创建包含组件的新恢复系统
  4. 组件管理工具

    • snap download 命令新增组件下载功能
    • 支持侧载(sideload)已签名的组件

实验性功能改进

AppArmor 提示系统

AppArmor 提示系统是 Snapd 的安全增强功能,2.68 版本对其进行了多项优化:

  1. 协议处理增强:改进了版本检查和监听通知协议的处理,确保与内核 AppArmor 的通信更可靠。

  2. 规则管理优化

    • 使提示回复具有幂等性
    • 确保任何路径模式最多只有一条规则
    • 支持混合结果和生命周期的规则
  3. 超时机制:为未解决的提示添加了超时机制,防止因客户端不活动导致的资源占用。

  4. 错误处理改进

    • 当 API 补丁请求会导致无权限规则时返回错误
    • 在启用提示但无客户端时发出警告
    • 优化了空权限转换时的日志记录

配置数据库(Confdb)

配置数据库系统进行了重要架构调整:

  1. 命名变更:将"registries"重命名为"confdbs",包括API端点从/v2/registries变为/v2/confdb

  2. 临时模式支持:新增对标记配置模式为临时(ephemeral)的支持。

  3. 控制断言:增加了confdb-control断言和特性标志,提供了更细粒度的配置管理能力。

安全增强

机密虚拟机支持

2.68 版本为机密虚拟机环境提供了专门支持:

  1. 分区信息加载:snap-bootstrap 支持从清单文件加载分区信息,专为cloudimg-rootfs模式设计。

  2. 完整性保护:支持将cloudimg-rootfs设置为带有完整性保护的overlayfs。

dm-verity 完整性验证

新增对snap-integrity断言的支持,为核心snap提供基于dm-verity的完整性验证保护。

接口改进

2.68 版本对Snap接口系统进行了多项增强:

  1. 新增接口

    • configfiles:确保文件系统中配置文件的正确状态
    • ldconfig:将来自snap的库暴露给根文件系统或其他snap
    • auditd-support:为auditd功能提供必要权限
    • checkbox-support:提供对所有设备的无限制访问(特定测试场景使用)
  2. 现有接口增强

    • fwupd:增加对Dell BIOS恢复和shim/fallback shim的访问支持
    • mount-control:添加挂载选项验证器及早检测冲突
    • cpu-control:增加对/sys/kernel/irq/<IRQ>的读取权限
    • locale-control:在Ubuntu Core Desktop上改为隐式可用
    • microstack-support:新增AMD SEV能力支持
    • u2f:添加OneSpan设备产品ID支持
  3. 容器环境优化:在容器内自动禁用udev后端,避免不必要的功能尝试。

工具与基础设施改进

  1. 构建系统

    • 修复了distro patchelf 0.14.3导致的静默二进制文件损坏问题,改用本地构建的patchelf 0.18
    • 将ubuntu-core-initramfs deb构建整合到snapd仓库并修复相关问题
  2. 命令行工具

    • snap prepare-image 新增验证参数暴露
    • 新增 snap-seccomp dump 命令用于转储已编译配置文件中的过滤规则
    • 修复 snap get 在TTY下的紧凑列表显示问题
    • 修复 snap setsnap get 对空字符串的处理可能导致的panic
  3. 系统集成

    • 添加 /etc/initrd-release 作为备用发布信息位置
    • 修改snap-bootstrap直接挂载base到/sysroot
    • 以no-{suid,exec,dev}选项挂载ubuntu-seed提高安全性
    • 移除过时的robust-mount-namespace-updates实验特性标志
    • 移除已拒绝的snapd-snap实验特性及其标志

问题修复

  1. 更新管理:修复了由于验证集过期导致的刷新候选列表与实际刷新不匹配的问题。

  2. 容器支持:修复了snap-confine在容器内尝试获取设备cgroup设置的问题。

  3. 日志系统:修复了调试日志条目中调用者和文件信息显示不正确的问题。

  4. 混合系统:修复了阻止混合系统在首次启动时完成种子(seed)处理的问题。

  5. 进度报告:修复了当stdout在TTY但stdin不在时的进度报告问题。

  6. 存储信息:修复了store-url丢失问题,确保其作为辅助存储信息的一部分被保留。

  7. 桌面文件:改进了对格式错误桌面文件的错误日志,现在会显示具体是哪个文件有问题。

  8. 通道覆盖:在种子创建期间使用grade覆盖通道时提供更精确的错误消息。

总结

Snapd 2.68 版本带来了全盘加密功能的显著增强、Snap组件化架构的进一步完善,以及多项安全性和系统集成的改进。特别是对机密虚拟机的专门支持和dm-verity完整性验证的引入,展现了Snapd在安全计算环境中的持续投入。同时,通过修复多项长期存在的问题和优化用户体验,这个版本进一步提升了系统的稳定性和可靠性。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
24
7
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
375
3.25 K
flutter_flutterflutter_flutter
暂无简介
Dart
619
140
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
62
19
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.03 K
479
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
647
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.09 K
619
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
790
76