写点什么

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:001334
用户头像

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

关注

评论

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

喷一喷坑爹的面向UI编程

架构师修行之路

week 13 学习总结

Geek_2e7dd7

第三周学习总结

Vincent

极客大学

架构师训练营-week13-作业

晓-Michelle

极客大学架构师训练营

深度解析!--阿里开源分布式事务框架Seata

攀岩飞鱼

分布式 分布式事务 微服务 分布式锁 Seate

JavaScript七大语言类型你知多少?

Walker

Java 大前端 编程语言

oeasy 教您玩转 linux 010207 黑客帝国 matrix

o

week13 作业

Geek_2e7dd7

面试不会微服务没关系,跟着我4天学会微服务!

小Q

Java spring 架构 分布式 微服务

数据质量管理工具的意义和定位

苏槐

数据治理 数据质量管理 数据质量平台

解Bug之路-串包Bug

无毁的湖光

redis socket Java 分布式

第4周总结

Vincent

极客时间 极客大学

抽象可能从未停止过

架构师修行之路

系统设计 抽象 抽象思维

19.解决 Flink 升级1.11 报错 No ExecutorFactory found to execute the application

小知识点

scala 大数据 flink

面试官:TCP/IP 协议到底在讲什么?想彻底搞懂TCP协议:还得从 TCP 三次握手四次挥手说起

编程 程序员 互联网 面试 计算机网络

嘿,我想要寄一封挂号信,收件时间是 6 年后,标题是: 让 6 年后的我,加倍奉还。

叶小鍵

学习 成功学 心理学 李笑来

【原创】经验分享:一个Content-Length引发的血案(almost....)

一枝花算不算浪漫

就靠这几段代码,带你玩转rpc通信协议,不信你学不明白

小Q

Java 架构 面试 RPC 网络

用 Python 实现一个简易版的 Pong 游戏 (二)

Matrix Chan

Python Python Turtle Python 游戏编程

甲方日常 9

句子

Java 运维 工作 随笔杂谈 日常

java安全编码指南之:表达式规则

程序那些事

java安全编码 java安全 安全编码规则

通证与通证经济你真的理解吗

CECBC

区块链 通证经济

USDT承兑商币支付系统搭建,USDT跑分承兑商app

敏捷教练的软技能

研发管理Jojo

软技能 敏捷教练 引导者

干货!如何平稳用户无感知的完成系统重构升级

X先生

架构 运维 后台

为什么我的缓存设置在chrome中不生效

书虫

chrome 缓存 浏览器 HTTP

第三周作业

Vincent

极客大学

Spring 5 中文解析测试篇-集成测试之概要和注解

青年IT男

单元测试 Spring5

第4周作业

Vincent

极客时间 极客大学

万字长文 | 23 个问题 TCP 疑难杂症全解析

yes

TCP 计算机网络

媒体电视台跟进,船长梁晓玲平台拉人头卖课引起多方报道!

成周

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