BrGP: 不需其他依赖、在浏览器中实现的 OpenPGP - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
NeoAtlantis
V2EX    分享创造

BrGP: 不需其他依赖、在浏览器中实现的 OpenPGP

  •  
  •   NeoAtlantis
    neoatlantis 2016-05-18 10:12:36 +08:00 2967 次点击
    这是一个创建于 3438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    BrGP (临时的名字,嗯)是我三个星期前忽然决定去写的一个单网页的应用,用来在浏览器上实现 OpenPGP 的功能。设想是把所有的代码、样式和图片都打包在一个单一的 html 文件中,便于分发,这样不需要安装 GnuPG ,直接访问或者下载这个页面就能立刻获得这个保护隐私的强大工具了。

    最近 openpgp.js 的开发十分活跃,这个关键的库已经比几年前大有进步,虽然好像还是只能使用 RSA 公钥,但已经提供了 PGP 的大部分功能了:数据加密 /签名,解密 /验证,密钥管理,甚至还有从 key server 检索,或者向之上传的 API 。但是虽然用这个库实现具体某些特定功能的服务很多,像 GnuPG 这样的通用工具还不多,这就是 BrGP 要补充的地方。

    BrGP 目前还很粗糙,无论是界面还是功能上:所以这个放出的预览仅仅是证明它的出生而已。。。

    食用方式有2种:

    1. 访问在线版 http://area51.neoatlantis.info/brgp
    2. 安装 Google Chrome 的扩展(也许要用开发者模式?): 下载地址对应的 PGP 签名

    两种方式中密钥环(本机存储的公钥和私钥)是分开存储的,不能通用(废话)。

    当前的功能有:

    1. 导入、导出公钥或者私钥,密钥环保存在浏览器localStorage或者 Chrome 扩展的chrome.storage.local存储中。
    2. 可以从 key server 检索并导入公钥。
    3. 比较详细地查看一个密钥,如果是私钥,可以修改密码。
    4. 可以选取一个或多个公钥,以及一个或多个私钥,构建加密和 /或签名的消息(暂不支持 clear sign )。
    5. 可以读入一个消息,进行解密和验证。

    欢迎大家测试以及提供各种脑洞~

    源码地址: https://bitbucket.org/neoatlantis/brgp

    2 条回复    2016-05-18 17:56:15 +08:00
    raysonx
        1
    raysonx  
       2016-05-18 12:11:24 +08:00 via Android
    很有意思的东西,不过有点担心安全性。而且真正给用户用的话,要用户相信你的网页不会泄漏密钥才可以。
    最近一直在对抗运营商劫持,我在想如果劫持这个页面的 HTTP 连接会不会造成比较严重的安全的问题。
    NeoAtlantis
        2
    NeoAtlantis  
    OP
       2016-05-18 17:56:15 +08:00 via Android
    @raysonx 其实不放私钥只用来加密不解密也是一种玩法。否则如果不是插件,就必须用 https 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5298 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:08 PVG 15:08 LAX 00:08 JFK 03:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86