近日,在 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 )关注我们。
评论