我将以推特为例。
一方面,在 Twitter 上注册时,密码必须至少包含 6 个字符。
另一方面,API 的访问令牌大约有 50 个字符:
(来源)
我想知道这种长度差异背后的安全原因。如果令牌真的很长,因为它提高了安全性,为什么允许短密码?请注意,我不是在问为什么最小长度不是给定的数字,例如 10、15 或 20 个字符,与令牌相比,它仍然会有很大的不同。
虽然这个令牌很难猜到,因为它是随机的且更长,但我可以通过使用相对较弱的密码连接到 Twitter 开发者网站来查看我自己的令牌。如果可以使用我的密码访问它,为什么还要创建一个安全的随机令牌?我知道可以激活两因素身份验证,但不需要访问开发者网站。
因此,鉴于以下事实:
- 令牌通过其密码允许与登录用户或多或少相同的操作,
- 对 API 的访问可以作为来自 Internet 的访问被暴力破解,
- Twitter 可以选择密码的最小长度和令牌的长度,
为什么令牌这么长?如果从 Twitter 的角度来看 6 个字符足以作为密码,那么为什么要使用 50 个字符作为令牌呢?