写点什么

Redpoint Games 推出 NPM 包签名工具

  • 2018-01-18
  • 本文字数:985 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Redpoint 推出了 pkgsign,一个 NPM 的软件包签名和验证工具。它旨在确保上传至 NPM 注册表和从 NPM 注册表下载的包的真实性,从而提高安全性。

当你用 NPM 工作时,会出现一个潜在的安全问题,那就是包的作者无法验证。这意味着恶意软件包可以以合法软件的名义得以上传,反过来,任何依赖它的应用程序也可以照常执行这个软件包。

最近发生的一起事件证明了这点。当几个包从 NPM 注册表意外消失时,九个不知名的包被上传,取而代之。虽然这个问题现在已经解决了,但还是有一段空档期,在这期间,不可信的代码会被误用,就如同它们是合法的代码一样。

为了降低这种风险,Redpoint 推出了 pkgsign:

pkgsign 是一个工具,它能为 NPM 和 Yarn 包添加签名并使用已知签名来验证这些包。为了简化操作,pkgsign 还允许使用 PGP 私钥或 keybase.io 来签名包。

在安装 Keybase 和 pkgsign 之后,包作者可以导航到其软件包目录,并发出如下的命令来签署软件包:

pkgsign .在这个过程中,一个“signature.json”文件将被添加到包中,其他用户可以用这个文件来验证作者的真实性。

通过使用 Keybase,签名还可以连接到各种社交媒体帐户,这有助于进一步验证签名者的身份。同时,PGP 签名也是可用的,这意味着作为替代选择,大公司可以生成 PGP 密钥并将其上传到公共域。

要验证当前你正在处理的包的依赖包,你可以再次发出下面这条命令:

pkgsign verify .--full未来还将发布一个“代表签名”的功能。即使依赖项所有者本身未进行签名,这个功能也可以让软件包为其依赖包的内容签名。所以,它能够使包被完全签名。

需要指出的是,由于该工具仍然较新,所以有些软件包仍然没有用它进行签名:

目前 pkgsign 依赖于未签名的包(因为它还比较新!)。当你从 GitHub 或 NPM 安装 pkgsign 时,这些依赖包还不能得到验证。

如果 pkgsign 使用率增长,可能就会改变这一情况,但现在,建议你直接从 GitHub 克隆 pkgsign 项目,以确保你使用的是正确的版本。或者,你可以直接从 NPM 注册表中安装它,而不用签名。

查看英文原文 Redpoint Games Launch NPM Package Signing Tool


感谢冬雨对本文的审校。

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

2018-01-18 18:001382
用户头像

发布了 34 篇内容, 共 19.8 次阅读, 收获喜欢 47 次。

关注

评论

发布
暂无评论
发现更多内容

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

dubbo + zookeeper + spring 分布式系统

石臻臻的杂货铺

spring dubbo 11月月更

2022-11-16:给你一个数组 nums,我们可以将它按一个非负整数 k 进行轮调, 例如,数组为 nums = [2,4,1,3,0], 我们按 k = 2 进行轮调后,它将变成 [1,3,0,

福大大架构师每日一题

算法 rust 福大大

Python进阶(四十六)Python3实现SMTP发送邮件详细教程

No Silver Bullet

发送邮件 SMTP pyhton 11月月更

Python进阶(四十五)走进requests库

No Silver Bullet

Python requests 11月月更

微博系统中”微博评论“的高性能高可用计算架构

小虎

架构训练营

[力扣] 剑指 Offer 第二天 - 复杂链表的复制

陈明勇

Go 链表 数据结构与算法 11月月更

从零到一落地接口自动化测试

老张

自动化测试

js事件循环与macro&micro任务队列-前端面试进阶

loveX001

JavaScript

JAVA逻辑运算符

默默的成长

前端 java; 11月月更

主成分分析PCA与奇异值分解SVD-高维数据可视化以及参数n_components

烧灯续昼2002

机器学习 算法 降维 sklearn 11月月更

架构训练营作业5-微博评论的高性能高可用计算架构

许四多

作业-week5-设计微博系统中”微博评论”的高性能高可用计算架构

in9

安装 Docker Compose

蜗牛也是牛

微博评论架构

Johnny

「架构实战营」

2022 Rebase Hackathon启动

谢锐 | Frozen

区块链 defi 黑客松 web3 layer2

大厂前端面试考什么?

loveX001

JavaScript

Python进阶(四十七)python3使用pyinstaller实现将py文件打包成exe文件

No Silver Bullet

Python pyinstaller 11月月更

python数据分析-pandas基础(1)

AIWeker

Python 数据分析 pandas 11月月更

静悄悄“双十一”背后的“喧嚣”

易观分析

双十一 消费 购物

「Go易错集锦」意外的变量隐藏

Go学堂

golang 程序员 个人成长 常见错误 隐藏变量

CSS学习笔记(八)

lxmoe

CSS 前端 学习笔记 11月月更

CSS学习笔记(九)

lxmoe

CSS 前端 学习笔记 11月月更

图解Kafka的RecordBatch结构

石臻臻的杂货铺

kafka Kafka实战 11月月更

极速下载 docker镜像

蜗牛也是牛

【愚公系列】2022年11月 微信小程序-app.json配置属性之plugins

愚公搬代码

11月月更

易观分析:2022年Q3中国网络零售B2C市场交易规模达21971.5亿元

易观分析

零售 交易

Base64码常见操作(url链接文件转base64编码、本地文件转base64编码等)

共饮一杯无

Java base64 11月月更

API工具常见分类

阿泽🧸

11月月更 API工具

架构实战营模块5作业

冷夫冲

架构训练营 架构实战

常见用的设计模式以及实战

想要飞的猪

设计模式 spring设计模式

Redpoint Games推出NPM包签名工具_安全_Andrew Morgan_InfoQ精选文章