假设我想使用v5 of RFC 4122生成一个基于名称的UUID,使用敏感信息作为输入(例如,我的银行帐户的密码)。并且假设我将生成的UUID提供给恶意用户,该用户希望将其反转并获取我的密码。鉴于以下有关UUID v5的生成方式:
恶意用户无法逆转UUID以获得我的密码。这是一个安全的假设吗?如果是这样的话,为什么RFC 4122规范声明"不要假设UUID很难猜测;它们不应该用作安全功能(例如,仅仅拥有UUID就允许访问的标识符)。"?假设您没有使用任何易受字典攻击或彩虹表影响的数据,那么SHA-1本身就是一个单向函数这一事实是否使其相当安全?
发布于 2021-03-22 22:30:08
这是否安全取决于秘密中的熵。如果您的输入是常规密码,在熵较低的地方,使用密码和其他确定性数据的任何简单散列都是不安全的,因为攻击者只需强行强制所有可能的密码来确定您的密码。实际上,所有这类密码的简单散列都是如此,不管是否在UUID中,也不管是否被截断,都有附加的数据。有很多,很多密码列表被破坏的密码,这是非常容易生成许多可能的密码编程。
如果这是一个具有足够(例如128位或更多)熵的伪随机产生的令牌,那么这是安全的。在高熵秘密上使用密码哈希函数是安全的,因为仅凭知道算法和哈希就无法有效地猜测输入,因为函数的域足够大。
https://security.stackexchange.com/questions/246459
复制相似问题