GitHub发布NPM 2FA及安全验证相关改良功能

继5月的公告及预览版后,GitHub为了实现2023年底全面实施双重验证(2FA),本周公布多项相关的功能和使用体验的改良。

为防止GitHub平台上npm组件遭劫持并被有心人改造成恶意版本,造成广大的软件用户及企业受害,GitHub 2个月前宣布要求所有在GitHub.com上贡献程序代码的用户于2023年底激活双重验证(2 factor authentication,2FA),期间分阶段扩大实施。

为了让开发人员更方便使用2FA,GitHub最新公布的npm新功能,包括简化以npm CLI登录和发布、连接GitHub和推特(Twitter)账号到npm,以及重新签发npm所有组件,并增加审核组件完整性的新npm CLI指令。

首先,5月初GitHub以预览版形式强化npm组件存储库的可使用性,早期测试者反应的问题主要在以npm CLI登录和发布方面。原来的设计可回溯兼容到npm 6及其他用户端,Yarn项目甚至加不到10行式程序代码,就能使新功能支持Yarn 1。而本周GitHub推出的npm 8.15.0版,更可让开发人员在浏览器登录和发布验证、而每次2FA验证的token可在同一对话(session)中维持最高5分钟,降低使用2FA的麻烦。

其次,过去npm账号也可以连接其他平台账号,但这些资料并未经过验证。通过新措施正式连接npm账号到GitHub和推特,将可提供身份验证自动化的基础,有助于未来账号被盗时的回复。

最后,在验证组件方面,以前开发人员必须经过较多步骤来验证npm组件的签章,相当复杂且需要对PGP密钥密码学工具有一定了解。GitHub即将允许开发人员在npm CLI使用新的审核签章指令audit signatures,也计划明年初淘汰PGP密钥的验证方式。新的audit signatures指令已经加入npm CLI 8.13.0以上的版本。

GitHub并宣布,最近已重新以ECDSA算法重新签发所有npm组件,并使用硬件加密器(Hardware Security Module,HSM)作为密钥管理。