V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  RollingTruck  ›  全部回复第 1 页 / 共 2 页
回复总数  39
1  2  
@xuanbg 因为这个密码是用来给文件加解密的,丢了就不能解密了,文件内容就被完全锁死了,所以不能简单设置一个新密码
我刚才想了很久, 我觉得还是不该让服务器这边帮用户保管密钥. 密钥应该由用户唯一保管. 如果服务器有密钥, 那黑客拿到密文后, 有没有可能找服务器管理员进行交易, 或者控制服务器, 获取密钥? 这是一个很严重的安全问题
@xuanbg 但是这个场景不能直接套一般的重置密码. 密钥派生看起来是可能的方向
@xuanbg 常见设计应该都是服务器不存储密码, 也不提供密码找回服务. 相反, 用户忘记密码时, 也不是找回密码, 而是重置密码
@xuanbg 我虽然没仔细看, 但估计大概就是这么个设计思路
@xuanbg 服务器存储密码明文说的不太准确, 不是直接这么存储, 准确来说是密文+私钥, 通过解密得到明文
@xuanbg 他要做一个找回密码功能, 所以需要在服务器存储密码明文, 以便后续发送给用户. 为了在服务器存储密码, 需要把密码安全地从客户端发送到服务器, 这个过程可能泄露密码, 因此用了 RSA 加密, 私钥存在服务器用于解密, 这样一来, 除了用户, 就只有服务器能获知密码, 或者是入侵服务器的黑客. 之后, 如果收到找回密码请求, 确认是用户本人操作后, 再把密码安全地传输给客户就行. 其实我感觉用 https 就行, 自己实现容易考虑不周导致漏洞. 此外, OP 不一定是真的应激了, 也可能是激将法增加讨论热度
那这样设计我觉得没问题. 短信验证码力度还不够的话, 再加个邮箱验证
但是这又回到经典套路了
那么我认为可以加一个手机号绑定, 如果用户想要获知密码, 应该通过发短信验明身份
如果不作区分, 那么攻击者入侵客户端后就能拿到密码, 安全性跟客户端直接存密码也差不多
不对, 原来是用公钥加密私钥解密, 那么你怎么区分请求密码的是用户还是攻击者呢
也就是说, 攻击者只要去客户端拿到公钥, 然后向服务器发送请求, 就可以拿到密码. 密码安全性取决于公钥安全性, 如果公钥被窃取, 密码就会被窃取. 确实是个多余的设计, 原因: 安全性不变, 完全可以直接把密码明文直接存储在客户端, 用户忘记密码, 就从本地获取即可, 攻击者同样需要入侵客户端, 拿到密码, 只是之前是拿公钥, 现在是直接拿密码
153 天前
回复了 efcndi 创建的主题 生活 癌后临终笔记(序 + 求助)
bangumi 和豆瓣差不多, 可以考虑下
好文
1  2  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4345 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 09:26 · PVG 17:26 · LAX 02:26 · JFK 05:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.