【问题标题】:Is it safe to use UUID v4 to generate session IDs?使用 UUID v4 生成会话 ID 是否安全?
【发布时间】:2021-10-16 22:04:30
【问题描述】:

使用 UUID v4 生成会话 ID 是否安全?

生成两个 UUID v4 并将它们连接起来以获得更长的字符串是否可以更安全地用作 Web 应用程序的会话 ID?

【问题讨论】:

标签: node.js http session-cookies uuid


【解决方案1】:

一般来说,不会。虽然字符串本身足够长,但 UUID 规范不需要实现来生成加密随机的字符串。

特定实现可能使其更加随机,因此您使用的库可能足够好,但它不需要是有效的 UUID。因此,拥有有效的 UUID 并不能证明/保证它是从足够随机的来源生成的。

即使您的特定 UUID 库确实创建了密码学上无法猜测的字符串,但仍可能不希望使用它,因为它可能向未来的开发人员发出信号:“UUID 可以安全地用于机密”,因此以后可能会产生风险即使最初 UUID 是安全的。

我的建议是简单地使用crypto.randomBytes

【讨论】:

  • 如果我将这些随机字节转换为十六进制与 base64 会有什么区别吗?到 hex 会比 base64 看起来更好,我猜它只是一种显示“样式”,它背后的数据在这两种情况下都是随机和独特的。
  • @daniels 您需要将其转换为 something。十六进制更长
猜你喜欢
  • 2017-01-24
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
  • 2021-07-17
相关资源
最近更新 更多