我可以通过JavaScript使用PGP/GPG吗

Can I use PGP / GPG via JavaScript?

本文关键字:GPG PGP 使用 可以通过 JavaScript      更新时间:2023-09-26

我正在考虑一个简单、防弹的密码管理解决方案(比较KeePass或lastpass)-仅基于HTML和Javascript以及PGP客户端包。

我已经找到了WebPG Chrome插件,它可以在网站内轻松加密和解密,但是否也有一种方法可以通过javascript与该插件进行通信(例如"用公钥a和B加密div#foobar的内容"),或者是否有其他方法可以将PGP集成到javascript中?

仅Chrome或仅Firefox的解决方案也可以,但它必须是跨操作系统(Linux、Win、Mac)的

您没有指定是从网页上的Javascript启动,还是从特定的用户操作启动。我想你指的是在网页上运行的Javascript,所以我会回答这个问题。

简短的回答是否定的;网页当前无法通过WebPG[1](v0.9.4)的Javascript启动GnuPG上下文操作。

长篇大论的答案是否定的;还没有。也许永远不会。。。

有人说要为WebPG提供这样一种机制,但是,需要对这种API的细节进行大量思考,因为它会在WebPG的操作中引入潜在的漏洞,具体取决于它的实现方式。

我当然愿意主持这样的对话,但这引出了一个问题:WebPG是这份工作的合适工具吗?

WebPG(目前)的预期目的只是为用户提供现成的工具,以便在web浏览器中执行GnuPG/PGP密钥管理和(用户发起的)GnuPG上下文操作。没有什么可以说WebPG不能(或不应该)做得更多,但这些"更多"都不应该危及既定目的。

如果认为WebPG是适合该工作的工具,则至少必须发生以下情况-

  • 对预期结果的全面分析
  • 如何实现这一结果的细节概述
  • 对潜在安全威胁的全面分析
  • 制定计划,以缓解已识别的威胁的方式实施这些细节

现在,很有可能WebPG不是适合这份工作的工具;在这种情况下,我只能向您介绍其他实现OpenPGP或其某些变体的Javascript相关库,但由于我对这些库几乎没有经验,因此网络搜索可能会产生更全面的可用技术及其特定功能列表。

全面披露-我是WebPG的作者,无论我多么努力地消除任何偏见,一些偏见可能仍然存在。

[1] WebPG-http://webpg.org