做了一个便捷生成数字签名的网页工具

2 天前
 tdxdxoz

前段时间做了一个小工具,可以方便地给文本添加数字签名。为了方便使用是网页的形式( rust 写的纯前端项目),但是访问过一次后断网也能打开和正常使用。

地址: https://daily-sign.github.io/

动机

因为各种社会事件开始产生一些杞人忧天的想法,觉得应该给自己的任何发言添加数字签名。但是按照标准的做法,签名用的私钥应该只保存在安全的设备上,每次签名都要在这个设备上跑命令执行签名,这是一件很不方便的事情,对没有技术背景的人来说更是难以上手。 所以想做一个工具,直接使用密码进行签名,在便捷性和安全性中达到一个平衡,让方便地给日常消息签名成为可能。

设计的时候主要遵循两个原则,一是尽量方便使用,二是不可以有后端、所有操作都在浏览器本地执行。

用途

给自己的发言添加数字签名小尾巴。不管是换号还是不幸卷入社会事件,都能用来证明是本人和避免冒充。可以在邮件中或使用新平台时添加签名证明是本人。还可以用于委托代发到自己不使用的平台,只要签名正确就能证明是本人。

注意事项

把基于密码生成的密钥直接用作非对称加密的私钥是不标准的做法。人脑想出来的密码,随机度远远不如真正随机的 32 bits 密钥。本项目的意义在于权衡便捷性和安全性。尽管没有已知的攻击,如果要最大程度发挥公私钥签名的安全性,不应该使用本工具,或者至少使用随机生成的强密码。

714 次点击
所在节点    分享创造
4 条回复
JoeJoeJoe
2 天前
op 的网站 ui 做的看起来很舒服

但是签名后的文本用起来可能稍微有点尴尬

我如果要评论的话可能还得带一个小尾巴出来

ps:我开始是以为做了一些类似图片透明水印的操作,用完才知道是做了一个小尾巴,感觉这个小尾巴可以使用一些透明元素来处理

长度: 333 bytes
签名: GkBvnPLzLMWX5FzjOuJPJLp4mBYmaHjrooNfRD5VZVbU7r7VT05auAlE1BcpdVmISycou84fpu8Ih7PTAlLzCw==
tdxdxoz
2 天前
@JoeJoeJoe 因为想做文本签名而不是图片水印。或许应该搞搞什么编码把小尾巴尽量压短。
ryd994
1 天前
@JoeJoeJoe
你要公开公钥而且通过不同的渠道反复公开公钥。这样别人才能 1.拿到你的公钥 2.确信这个公钥确实是你的
有了公钥才能验证签名

@tdxdxoz
这个做法太密码学民科了。私钥只能保存在安全的设备上不假。但是安全的设备不是只能有一台安全的电脑。
TPM/智能卡就是为了解决密钥的保管问题。智能卡很便携,在任何设备上都可以使用。加密解密过程只在智能卡内部处理,即使在不安全的设备上使用也不会泄露私钥。最多只是在解密数据时泄露解密后的明文而已。

你这个作品,用弱密码的话,人家社工+穷举一下就出来了。用强密码的话又记不住,又回到了怎么储存密钥的问题上了。
tdxdxoz
1 天前
@ryd994 需要硬件不是更不方便了吗,而且会为了日常使用去买设备的本来就是极少数愿意折腾技术的人。私钥丢失的事也不罕见了。
关于密码强度的问题,我想大多数密码,比如大多数没用密码管理器的人的 v 站密码,都是既没有弱到可以社工穷举出来,也没强到人脑记不住的。这也是我一直在说的找到一个平衡。(另外本身 Argon2 算法的抗枚举能力还是可以的)
我是做纯理论的,对偏实践的密码学确实不太熟练。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1163742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX