在Windows 2003上生成的GUID是否可以安全地用作会话ID?

时间:2009-09-09 05:21:08

标签: security windows-server-2003 guid

我的网络应用程序仅通过SSL运行,并在用户使用用户名和密码成功登录后为每个用户设置限时cookie。系统中最大的弱点是损害现有用户的cookie。并且两个猜测会话ID GUID。

我知道第一个弱点的机制,但我想知道我需要担心攻击者根据他们之前通过登录他们已设置的帐户获得的GUID来猜测会话ID GUID的可能性?在这种情况下,Web服务器是Windows 2003,并且使用.Net 3.5生成GUID。

2 个答案:

答案 0 :(得分:6)

GUID不是加密安全的,只是唯一的。相当多的格式是可预测的 - 48位MAC地址,如果您知道它是如何生成的,则可以预测时间戳,另外几个位可以处理时间戳冲突。技术上复杂的攻击者很有可能对GUID进行逆向工程。

您确实需要cryptographically secure PRNG来获取安全会话密钥。

答案 1 :(得分:0)

.Net 3.5 GUID几乎无法猜测。纯粹的GUID数量是巨大的 - GUID比宇宙中的沙粒更多,等等。它们并非严格“保证”是唯一的(虽然显然SQL NEWID显然是独一无二的)

如果你想自己测试一下,产生几亿,然后找到重复(你找不到)。