摘要
本PEP提议弃用RECORD.jws和RECORD.p7s轮子签名文件。由于工具链缺乏支持,这些几乎未被使用的文件并未提供其声称的安全性。寻求轮子签名的用户应转而参考索引服务器托管的证明。
动机
没有任何主流的Python打包工具支持生成或检查RECORD.jws或RECORD.p7s。值得注意的是,无论是pip还是uv都没有验证RECORD中的哈希值,而这是使用签名文件的前提。二进制分发格式将这些文件描述为安全特性,这可能导致用户混淆。
用于哈希和签名轮子的最新技术已从归档文件内的信息,转向索引服务器上提供的归档文件外的信息,例如简单仓库API中的哈希值和证明。与RECORD中的哈希值不同,pip和uv等工具会验证索引服务器提供的哈希值。
这两个文件几乎未被使用。在GitHub上搜索path:**.dist-info/RECORD约有63.5万条结果,而path:**.dist-info/RECORD.jws仅有8条不同的结果,path:**.dist-info/RECORD.p7s的结果则为零。
规范
RECORD.jws和RECORD.p7s文件被弃用,二进制分发格式规范将据此进行更新。构建后端和其他工具不得再向轮子中添加这些文件。安装程序不应尝试验证这些文件,同时它们将继续被排除在RECORD文件之外。
向后兼容性
据作者所知,没有任何构建后端和安装程序需要做出改变,因为它们除了在处理RECORD文件时会跳过这些文件外,并不支持它们。如果目前有任何构建后端确实会写入这些文件,则需要弃用并最终移除该功能。对于验证来源,用户应参考索引服务器托管的证明。
安全影响
本PEP通过减少规范中描述的安全特性与工具支持的安全特性之间的分歧,从而加强了Python打包生态系统的安全性。
版权
本文档属于公共领域,或采用CC0-1.0-Universal许可证,以较宽松者为准。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。