Debian 12 包安全机制变更简述

Debian 12 包安全机制变更简述

在新版本 Debian 12 (Bookworm) 中,安全签名验证机制有了一些重要的改进,目的是提高包管理的安全性,避免设备因为不可靠源而遭到渗透。

主要的变更包括:

1. 静态 keyring 文件

以前,系统通过 /etc/apt/trusted.gpg/etc/apt/trusted.gpg.d/中的可信签名密钥来校验所有包源,但这种方式存在风险,文件权限过于宽松,可能被权限高的进程修改,而且对全部包源通用,有很大的风险面。

在 Debian 12 里,每个 APT 包源建议都使用独立的 keyring,并通过 sources.list.list 文件中的 signed-by 参数指定,如:

deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main

这种写法可以确保:

  • 仅仅信任指定源,避免全局性影响
  • 便于维护和检查,提高安全性

2. 公钥管理方式改变

对于新添包源,得自行下载并存放公钥(而不再是直接 apt-key add),如:

wget -O /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

这种做法是更安全的,避免未来 apt-key 废弃后造成乱。

3. 实际环境中的关键问题

实际使用过程中,如果包源没有按要求指定 signed-by,而又缺少对应公钥,就会出现类似:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743

遇到这种错误,需要按照源网站提供的方式下载公钥,且放至正确的 keyrings 目录,然后重新扫描系统:

sudo apt update

总结

Debian 12 安全机制的改进,令包管理更加井井有条,就是多了一些初始配置工作,但也为全体系统的安全性打下了更坚实的基础。

在最近有设备升级到 Debian 12 或者添加了第三方包源时,记得检查 signed-by配置,并确保 keyring 是最新版本!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注