User:Bluedeck/haystack/committed-identity-protocal

主題:

由統一頁面存放所有用戶的committed identity。

細節:

  1. 此頁面就設置在WP:身份驗證中。用户需要将自己放在用户页面的身份验证散列值移动至此,并视其为唯一有效的值。
  2. 提交人需使用SHA-256、SHA-512或者其他社群認可的算法(請謹慎認可新算法)將一串保密訊息計算散列值并提交在此頁面。
  3. 提交人必須同時聲明散列值原像長度信息。長度不足128比特者,應視爲不能驗證身份。
  4. 有朝一日,提交人失去對自身賬戶的訪問時,可以使用新賬戶宣佈其原像,如果計算后結果和WP:身份驗證頁面的值一致,則認爲該新用戶是原用戶的實際持有人,原用戶將作廢處理(或者交給基金會找回密碼,看情況,可討論)。
  5. 如果要更新自己在WP:身份驗證的注冊值,必須提供上一個散列的解,才能作廢舊散列。
  6. 一段時間以後沒有在WP:身份驗證注冊的用戶,自動獲得狀態“不驗證”。這些用戶將不能將自己添加進WP:身份驗證中。

风险提示:

  • 所有选择启用散列身份验证的用户应该知道,散列原像是用于证明账户所有权的,而且比账户密码的可信度更高。如此,绝不应该暴露散列原像。设想下述场景:如果用户的散列原像被敌手知悉,敌手可以谎称是用户本人,且当前用户的操作者(真的是本人的人)盗窃了账号。敌手抢先公布散列原像的行为将使得敌手被认定为账户真正持有者,而用户将被视为敌手,并被剥夺访问。
  • 维基百科登录页面提供图片验证码用于预防穷举破解。散列验证不提供这一额外的障碍。敌手可以使用超级计算机尝试所有可能的原像。故此,原像的真实复杂度(有效随机位)应该大于等于128位。这是NIST和大部分人公认的的最低建议。出于安全的角度考虑,可以认为随机在键盘上敲一个数字字母,提供4个随机位(根据Bluedeck敲的样本算得,每字符5比特,安全边际为25%左右。你的敲击习惯可能不同,因此只建议多敲,不建议少敲),因此若要使用胡乱敲击键盘生成原像,应当建议至少敲击32个字符。