Google 随机数最大长度

Google nonce max length

我正在我的网络应用程序上实施 'sign in with google' 或 'Google Sign In'。 google api 允许使用随机数来防止重放攻击,但未能告知随机数的最大(或最小)长度。

查看:数据随机数 来自这个文档:https://developers.google.com/identity/gsi/web/reference/html-reference#data-nonce

任何帮助都会很棒

我向 Google 的联系人发送了一条消息,等待他们的回复。这个答案的第一部分是我自己的研究。

话虽如此,我开始在 OAuth 的 RFC 中四处挖掘,我发现唯一值得一提的是以下内容。 (我在 Google Oauth 团队的经验表明,他们喜欢遵循 ​​RFC 准则,因为它们是公认的行业标准。)

NonceNotes

15.5.2. Nonce Implementation Notes The nonce parameter value needs to include per-session state and be unguessable to attackers. One method to achieve this for Web Server Clients is to store a cryptographically random value as an HttpOnly session cookie and use a cryptographic hash of the value as the nonce parameter. In that case, the nonce in the returned ID Token is compared to the hash of the session cookie to detect ID Token replay by third parties. A related method applicable to JavaScript Clients is to store the cryptographically random value in HTML5 local storage and use a cryptographic hash of this value.

他们建议将其存储在会话 cookie 中的事实会导致最大限制至少是会话 cookie 的最大大小,这会给我们这样的结果。

不过,我似乎记得一些允许您跨多个 cookie 获取 cookie 值的东西。这将再次让我回到你的假设,即这可能是每个 OAuth 服务器应用的限制。

我想我们还需要等待 Google 的回复。

来自 Google

的转述回复

Google does not explicitly limit nonce size. An idea would be to
constrain it by the max support JWT size. However this may very by browser , devices and networking infrastructure.

他们还更新了找到的文档 here 以反映这一点。