【问题标题】:Decrypt random data (to password)解密随机数据(密码)
【发布时间】:2014-09-13 08:39:04
【问题描述】:

想象一下基于 Web 的密码管理器。它使用浏览器内的 javascript 和对称加密算法、来自服务器的加密密码和来自用户的主密码来获取特定于站点的密码。

服务器应该对主密码和站点特定密码一无所知,只知道加密形式。如果用户使用了错误的主密码,那么他/她会得到错误的站点专用密码,验证应该是不可能的。

问题: 由于javascript没有很好的随机性,密码生成应该在服务器端完成。由于服务器必须不知道站点特定密码,我认为可以生成站点特定密码的随机加密形式,如果客户端使用他/她的主密码对其进行解码,那么只有站点特定密码才会应运而生。

是否有一种算法可以从任何随机数据/主密码组合中解密一个像样的密码? 关于如何实现这样的事情有什么想法吗?

【问题讨论】:

    标签: javascript php security encryption passwords


    【解决方案1】:

    随机数据块的“普通”对称解密将产生另一个看似随机数据的数据块。所以是的,您基本上让服务器为您提供一些随机序列,然后您将其转换为另一个随机序列。

    尽管如此,这种方案对于客户端 javascript 的各种攻击并不安全。

    【讨论】:

    • 攻击示例?因为如果浏览器本身被入侵,那么任何基于浏览器的密码管理器都注定会失败?
    • @a966821 请查看matasano.com/articles/javascript-cryptography上的文章
    • 已考虑,不适用 - 无论如何都使用 https,不需要随机性,通过 https 以明文形式传输密码不会提供额外的安全性。 “普通对称解密”到底是什么意思?
    • @a966821 获取一个 16 字节的块,在 ECB 模式下使用 16 字节的密钥对其进行解密(不涉及填充等)。
    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2022-09-23
    • 2017-05-06
    • 2010-09-08
    相关资源
    最近更新 更多