【发布时间】:2013-05-30 02:35:47
【问题描述】:
要开始并定义 guid,我使用的是 .net 框架 Guid 这在某种程度上是一种假设情况 用户在执行特定操作时会生成 guid。每个用户都可以看到自己的向导。如果一个用户知道另一个用户的 guid,就会有安全隐患。
如果我们假设一个用户无法窃取另一个用户的 guid 并且只能猜测,那么这个系统的安全性如何?
我知道盲目猜测向导是不可能的。即使他们有一百万个成功值,他们仍然只有 10^20 的机会猜测成功
我担心可能存在问题的地方是 guid 预测。用户能否生成大量请求,看看他得到的 guid,知道 .net guid 生成公式会大大提高他的猜测几率吗? 能否将这些可能性降低到成为安全问题的程度? 在那种情况下,如何以独特的不可猜测的方式生成密钥?
我请任何提到猜测/碰撞几率的人为其添加一些硬性含义。定义赔率的确切数字,或类似“它可用于存储帐户数据,但不能用于存储敏感数据”
编辑
这个问题似乎很好地进入了我最初试图用这个问题探索的领域 Is a GUID a good key for (temporary) encryption?
【问题讨论】:
-
Guid 不是唯一的;因此理论上两个用户可以拥有相同的 Guid。
-
对于正确生成的随机 guid,冲突的可能性非常低,可以保证实践中的唯一性。
-
@Aaron,guid 在技术上并不是唯一的,但它们在统计上是唯一的。有 3.4×10^38 可能的 guid……可观测宇宙中的每颗恒星在统计上都可以拥有 6.8×10^15。任何两个人拥有相同 guid 的可能性都非常不可能
-
@Eugene Mayevski 'EldoS Corp 我真的在找人来讨论主动预测攻击。数据库将负责不允许冲突