甲方要求我这边设计开发一套密信系统,密信仅限收件人查阅,其他所有人都无法看到,包括但不限于能接触到数据库,线上代码,服务器、开发人员、运费人员,包括一人有全部权限也无法查看某人密信。

2023-01-29 17:19:08 +08:00
 DreamCMS
1620 次点击
所在节点    问与答
24 条回复
DreamCMS
2023-01-29 17:21:23 +08:00
不能采用第三方资源,或者去中心方案。要独立完整可执行。
Ranying
2023-01-29 17:22:27 +08:00
收件人私钥不能在服务器,不好弄啊
ThirdFlame
2023-01-29 17:23:09 +08:00
PGP
westoy
2023-01-29 17:24:27 +08:00
单个都能满足, 全部权限就没戏了, 直接告诉对方不行吧, 这种要调整人事权限去适配系统的, 反过来就有问题了
duke807
2023-01-29 17:25:26 +08:00
要想实现这个要求,只能用第三方开源加密工具
想复杂一点就 rsa 非对称加密
想简单一点就 aes 对称加密,输入字符串密码解密

简单的对称加密可以看这个免安装开源小工具:
https://www.v2ex.com/t/832302
retrocode
2023-01-29 17:28:16 +08:00
本地加密上传, 密码第三方自行通知?
Ranying
2023-01-29 17:28:39 +08:00
1. 服务器生成公私钥,公钥保存,私钥发到收件人本地
2. 用收件人密码加盐去加密私钥,这一步在本地完成,然后向服务器提交加密私钥
3. 收件人登录时取得加密私钥并在本地解密
4. 收件人修改密码时用新密码加密私钥并提交
5. 发件人取得公钥加密消息并发往收件人
fgwmlhdkkkw
2023-01-29 17:29:26 +08:00
u 盾
werls
2023-01-29 17:31:25 +08:00
GPG 就行了 给邮箱装一个
libook
2023-01-29 17:34:58 +08:00
采用非对称加密,每个用户生成独立的公私钥对,公钥存储到服务器上,私钥存储在客户端。
发送密信的时候,按照收件人下载其公钥,把信息在本机加密再发到服务器上,收件人将密文下载到本地,使用私钥解密查看。
如果需要移动使用,比如支持换另一个客户端使用,可以把公钥使用用户的密码在本地加密后,将密文发送到服务器上储存,用户换其他设备的时候会将私钥密文下载到本地,再用用户密码解密使用。
duke807
2023-01-29 17:37:31 +08:00
@libook
有全部权限的人,稍微改一下产品代码,就可以把客户端存放的密钥拿到手
更不用说初始产品可能就留有后门
clearc
2023-01-29 17:39:01 +08:00
这个需求如果是理想状态其实挺简单的,描述复杂化了,把它抽象一层,就是“一个端到端的加密系统,且用户私钥不离开本地”。

考虑到实现,本质上就要做一套双层加解密,用于密文的非对称密钥由用户本地生成本地保存,自行上传公钥,服务器做用户识别和绑定。

但是有这么个需求的甲方,做起来肯定不是这么理想……🌚
GopherDaily
2023-01-29 17:41:10 +08:00
1. 生成公私钥,私钥让用户保存,系统只保存公钥;
2. 发给用户的信息用公钥加密,用户收到后要在客户端输入私钥才能看到

类似于云厂商的 AccessKey ,逆向
leoleoasd
2023-01-29 17:42:35 +08:00
GPG+硬件密码学工具 本身不就是为了解决这个问题的
libook
2023-01-29 17:46:39 +08:00
@duke807 #11 那按照你这么说,这个需求无解。

正常开发涉密产品都会有严格的代码审查流程的,如果开发过程能随意到像你所说的程度,那任何所谓银行项目、国防项目都不可能做到相对安全。
duke807
2023-01-29 17:48:25 +08:00
@clearc 只要楼主做的产品,客户端能接触到加密前的明文、解密后的明文、甚至是可以扫描本地电脑文件找到密钥,理论上就是不安全的,拥有全部权限的人就可以增加恶意代码查看到历史通讯内容。
duke807
2023-01-29 17:50:46 +08:00
@libook
> 那任何所谓银行项目、国防项目都不可能做到相对安全

两码事,你说的这些是防止外部不安全因素,内部用机制保障

而楼主明确说了要防止内贼,且拥有产品的一切权限
meeop
2023-01-29 18:25:25 +08:00
很简单啊,甚至你用 qq 都行

就用非对称加密,收信人持有私钥,发信人用公钥加密数据内容然后发送
这样除了收信人,其他任何人都无法获取信件内容

唯一的风险是客户端有后门可能读取客户端的私钥,但是这一点可以通过代码开源检查发现

另一个风险是因为黑客攻击泄漏私钥,这个可以通过比如专门密钥保管软件硬件处理,不然各种基于非对称加密的服务都没法用了

再保险点,就要求涉密电脑不能上网,不能安装不可信程序等手段进一步约束
hjtao889
2023-01-29 19:32:14 +08:00
发件人可回看吗
SenLief
2023-01-29 21:00:52 +08:00
给每个收件人寄一份硬件加密解密设备。

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

https://www.v2ex.com/t/911396

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

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

© 2021 V2EX