你的NuGet API密钥是不是还设了365天有效期?微软很快就要让这种长寿命凭证彻底失效了。为了压降供应链攻击风险,微软宣布缩短NuGet.org API密钥的最长有效时间,从一年直接压到30天,已经存在的旧密钥也设定了集体失效的大限。
新政策将在2026年8月17日生效。从那天起,所有新创建的NuGet API密钥最长只能存活30天,平台上不再提供365天有效期选项。而在8月17日之前创建的全部旧密钥,会统一在2026年11月1日到期,相当于给所有持长密钥的维护者留出不到三个月的过渡期。
![]()
NuGet API密钥本质上就是发布包的密码。开发人员习惯把这些密钥以Secrets形式存储在CI/CD平台、代码仓库配置、构建服务器和部署脚本里,方便自动发布。但这也给攻击者制造了一个高价值目标——一旦握有长有效期密钥,就可以在数月时间内以受信项目身份发布被植入后门的恶意包,下游毫不知情地集成。
微软提到,不久前NX Console npm包的安全事件正好说明问题有多棘手。攻击者据称正是利用窃取的发布凭证上传了恶意版本,短短36分钟内就被激活了6000次,随后才被移除。一次凭证泄漏瞬间波及广阔生态,这还仅仅是npm生态里的一个案例。
缩短密钥生命周期能显著减少被窃凭证可被利用的时间窗口,但微软也明确警告:只要还在使用可复用的静态密钥,风险就无法彻底消除。密钥仍可能通过源码提交、CI/CD日志、不安全的密钥存储或被攻陷的开发环境暴露出去。
因此,微软在收紧密钥期限的同时,强烈推荐维护者迁移到2025年9月推出的NuGet可信发布功能。这项机制基于OpenID Connect,工作时不需要在仓库或CI/CD系统中存放长期有效的NuGet密钥。当受支持的CI/CD平台启动包发布作业,会生成一个签名的短期身份令牌,NuGet.org再依据维护者预设的仓库、工作流和环境等策略验证令牌,并临时下发一个仅用于当次发布操作的API密钥。
这种模式彻底免去了在仓库和密钥存储中放置可复用密钥的需求,同时大幅降低了密钥轮换负担,也把凭证暴露后的杀伤半径压缩到一次操作之内。目前,GitHub Actions和GitLab用户已经被明确建议,最好在8月截止日前向可信发布模式迁移。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.