NPM 发布新的安全功能

阅读数:459 2017 年 10 月 11 日

话题:JavaScriptNode.js语言 & 开发

近日,在 Vancouver BC 举行的 Node.js 互动会议上,npm 公司宣布推出新的安全功能,旨在使 npm 注册表更加安全,防止攻击。

鉴于其广泛使用和 JavaScript 开发人员重度依赖npm 软件包,注册表的安全性是至关重要的。如果攻击者获得被广泛引用的软件包的安全凭证,将会造成极大的危害。

新的 npm 令牌 CLI 工具提供了以更安全的方式创建令牌的方法。在认证令牌(auth token)意外泄露的情况下,令牌的作用会被限制,这一特性非常有用。例如:

npm token create —cidr=[10.0.0.1/32]

它将创建一个只能在给定的 IP 范围内使用的令牌。当令牌在源代码控制系统中或持续集成日志中泄漏时,该令牌仅在该 IP 范围内有用。如果攻击者获得令牌,它的作用已经被限定在特定的范围内。

现在也可用只读令牌:

npm token create —readonly

这种方式所创建的令牌只能用于读取软件包,不能发布。

还有一个新功能是使用双因素身份验证(two-factor authentication,2FA)来保护配置文件。可以用现有的身分验证程序如 Google Authenticator将帐号关联起来,不需要使用手机短信。

当在 auth-and-writes 模式下启用 2FA 时,诸如发布新版本或更改“latest”标签的操作将需要来自认证者的一次性密码。以下是启用 2FA 时的进程截图。

目前,2FA 的作用范围是基于单个配置的。这意味着,如果一个软件包有多个维护者,那么每个维护者都必须启用 2FA。在不久的将来,npm 将提供软件包级别的 2FA 功能。此外,使用私有代码仓库的企业将能够在企业级别启用 2FA。

据 npm 的 CTO CJ Silverio 介绍,他们的目标之一是尽可能地确保注册表的安全。Silverio 说:“npm 想要变得非常可靠,让用户可以每天放心地使用 npm”,而不用担心注册表的完整性问题。

开发人员可以通过npm install -g npm@next安装新的命令行工具。

查看英文原文NPM Releases New Security Features


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。