
PyPI 项目页面改版上线,强化安全信号展示
来源标题:Blog: PyPI's redesigned project pages with clearer security signals are now live
PyPI 重新设计的项目页面已正式上线,重点改进安全信号的呈现方式。此次改版基于与 Python 社区用户共同开展的用户研究,并与 Kabu Creative 合作、参照 OpenSSF Attestations Style Guide 落实了更清晰的安全标识。PyPI 希望借此帮助用户更好理解和评估软件包的安全性与来源信息。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
今年7月,我们宣布了一系列对 PyPI 用户界面的更新计划。这些更新基于与 Python 社区成员共同开展的用户研究,旨在改进我们展示安全信号和包详情的方式。我们很高兴地告诉大家,这项工作现已完成并在 PyPI 上线。
随着 Python 生态的快速增长,PyPI 日益成为恶意行为者的目标。为此,PyPI 团队推出了许多安全功能,同时更积极地帮助 PyPI 用户评估和理解包的安全性。2024 年引入的数字认证(digital attestations)就是这方面的例子,它为发布文件的来源(provenance)提供了可验证的记录。然而,来源和认证对许多 PyPI 用户来说仍是陌生的概念,而 PyPI 的界面在传达它们的含义、重要性和局限性方面做得远远不够。
为解决这个问题,PyPI 与 Kabu Creative 合作,在 PyPI 界面上引入更清晰的安全信号,落实了 OpenSSF Attestations Style Guide 中提出的建议。下面来看看有哪些变化、对你意味着什么,以及你可以采取哪些行动。
新的安全标签页展示发布文件的来源状态,并显示每个文件的认证信息,为你提供一个专门的位置来验证发布文件的来源。PyPI 通过检查每个发布文件是否有认证来计算该发布版本的来源状态。通常,一个发布版本会处于以下两种状态之一:
这意味着 100% 的发布文件都有认证,携带以下一种或两种受支持的认证类型:PyPI Publish 认证确认文件由 PyPI Trusted Publisher 发布:SLSA Build Provenance 认证将文件关联回确切的源提交、构建平台和构建指令:你可以直接在界面中查看认证元数据,或点击透明度日志链接了解更多信息。
“无来源”仅表示该发布版本中没有任何文件带有认证。这在较旧的发布版本或尚未配置 Trusted Publishing 的项目中很常见。无来源并不一定意味着发布版本或发布文件是恶意的;它只表示文件来源无法通过密码学方式验证。当没有来源信息时,你应依赖周边的信任信号来评估安全性,例如维护者的历史记录、发布模式和仓库活动。如果你是包的维护者,考虑在下次发布时使用会生成认证的 Trusted Publishing 发布者。
来源警告旨在帮助你识别文件可能并非来自项目维护者的情况,例如攻击者接管了账户或发布工作流。当来源元数据看起来异常或与项目历史相冲突时,PyPI 会显示醒目的警告。许多警告都有合理的解释,但在安装之前每一个都值得核实。
这意味着部分文件带有认证,而另一些没有(例如 wheel 通过 Trusted Publishing 发布,但源码 tarball 是通过 API token 上传的)。如果看到此警告,请谨慎行事。在安装前查看发布说明了解构建问题,或在项目的 issue tracker 中询问。
此警告表明同一发布版本中的文件来自不同的构建系统或源仓库。请查看认证元数据,确认所有文件是否都来自维护者控制的源。
此警告告诉你,发布文件的来源仓库或工作流与之前的发布版本不同。虽然这通常是合理的(例如组织名称变更或仓库迁移),但也可能表明流水线被入侵或账户被接管。如果看到此警告,请查看项目发布说明或官方渠道,确认基础设施迁移是计划之中的。
这意味着之前带认证发布的项目已改为上传不带认证的发布文件。请检查维护者是否有意更改了发布流程,例如切换回 API token,或更改了发布配置使其不再生成认证。如果这出乎意料,请在核实之前对该发布版本保持怀疑。
要了解更多关于来源和认证(包括来源警告)的信息,请参阅我们的用户文档。为配合这些变化,项目详情页也进行了更新:
重新设计的发布文件标签页支持搜索和筛选长列表,帮助你找到正确的文件。你还可以在表格中查看每个文件的来源状态,并快速识别延迟文件——它们会标有橙色警告图标。当一个或多个文件在初始发布时间戳之后超过 14 天才上传时,会显示延迟文件警告。这些警告仅出现在 2026 年 7 月之前的发布版本上,此后引入了拒绝 14 天后新文件上传的策略。
发布历史标签页现在也提供每个发布版本的更多详情,展示文件数量、来源状态和发布状态(即隔离、撤回、归档或预发布)。
除了界面更新,PyPI 的用户文档也已扩展,帮助你更好地了解包安全。阅读我们的包安全指南,了解以下内容:
新的安全标签页为 PyPI 提供了一个专门展示未来认证类型和安全通知的位置。为帮助更广泛的开源生态从这项工作中受益,我们还在 OpenSSF Attestations Style Guide 中发布了一份案例研究,详细介绍了本项目期间开发的设计模式和错误模型。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。