0

我正在用 Go 编写一个网络服务。

登录后,用户会收到一个令牌,它的行为大致类似于 cookie,因为用户必须在每个后续请求中传递它才能被识别。

  1. 我的令牌生成器是否必须是“加密安全的”,即。产生高熵?

  2. 我如何在 Go 中实现这一点,最好使用标准库或由与我不同的加密能力人编写的库?

4

2 回答 2

5

令牌生成器在密码学上是安全的,以减少攻击者猜测新会话令牌并获得特权的能力,这将是有益的。crypto/rand实现了这样一个随机数生成器,包括允许您生成随机整数、素数和适合于此的字节的函数。

于 2013-11-05T14:37:49.040 回答
1

是的,使用加密哈希。您可以使用类似 gorilla/securecookie 来生成密钥并提供 cookie 存储:http ://www.gorillatoolkit.org/pkg/securecookie

请注意,如果您仅依靠 cookie 进行验证,您就可以打开自己进行重放攻击。使用 cookie 触发服务器端检查(用户 ID == 活动/有效)或如果 ID 不存在则退回。

于 2013-11-05T21:46:42.290 回答