

PyPI数位认证让套件维护者在发布Python套件时,加入经过身分验证的数位签章,彻底提升供应链安全与追溯性,替代传统PGP签章机制
Python软件生态系迎来一项重要功能,PyPI(Python Package Index)正式激活数位见证(Digital Attestations)功能,让套件维护者可以在发布时,加入经过身分验证的数位签章,进一步强化软件供应链安全性。此项新措施将可提高套件的可信度并强化整体安全性。根据官方数据,目前已经有超过2万笔数位见证上传至PyPI,而这样大量采用的趋势,也显示出业界对软件安全的高度需求。
数位见证的正式实施,代表着Python PEP 740实作完成。PEP 740是PyPI供应链安全策略的一环,随着可信发布(Trusted Publishing)的支持,PyPI正逐步淘汰传统的PGP签章机制。数位见证相比PGP签章具有三大优点。首先,数位见证基于OIDC(OpenID Connect)身分验证进行签署,不再仰赖公私密钥对,从根本解决了密钥遗失或是遭窃的风险。这种身分导向的签章,大幅降低传统加密系统的安全风险,特别是当前供应链攻击频传的环境,进一步强化了安全性。
其次,数位见证可提供明确的上游源码程序库链接,尤其是自动化发布流程,诸如GitHub Actions的项目。见证标示PyPI上文件和来源库、工作流程以及生成该文件的提交纪录之间的关联,使每个发布套件都具有可追溯性。对于企业和用户个人而言,这代表着PyPI上每个套件版本,都可被验证来源,防范供应链劫持和假冒项目的风险。
再者,数位见证在上传时即需要完成验证,确保所有发布到PyPI的证明皆为可被验证。先前PGP签章机制并不强制实行此相应要求,导致一些未经验证的签章出现在平台上,影响用户对签章的信任,而随着PEP 740的落实,PyPI便可彻底解决这个问题,使数位签章成可靠的供应链保护机制。
PyPI推出两个新工具供用户方便验证文件的数位见证信息,用户可以通过新设计的Integrity API程序化存取数位见证,或直接在PyPI网站的新界面,视图每个文件的详细信息,包含所有相关数位见证。这些工具提供更高的透明度,让开发者和用户能够即时查证所使用套件的安全性。
符合条件的项目将能够自动生成数位见证,不需要额外配置即可激活。使用GitHub Actions发布并依循可信发布原则,且采用pypa/gh-action-pypi-publish发布的套件,已经自动激活数位见证。之后PyPI计划逐步推展至其他可信发布环境,让更多发布环境均可自动生成见证,扩大数位见证的覆盖范围。