【问题标题】:When needing to authenticate a client, use a long-term token or store username and password encrypted?当需要对客户端进行身份验证时,使用长期令牌还是加密存储用户名和密码?
【发布时间】:2021-10-11 21:15:37
【问题描述】:

我正在制作家长应用程序,我需要客户端(Windows 服务)每 X 秒/分钟与服务器更新一次。由于显而易见的原因,我不能让用户在每次客户端需要与服务器更新时都输入密码,所以我想知道这是否是更好的做法:

  • 发送一次用户名 + 密码,并获得一个不会过期的令牌,直到发出新令牌或
  • 将用户名和密码加密存储在客户端计算机上

【问题讨论】:

    标签: authentication encryption hash


    【解决方案1】:

    使用令牌进行身份验证总是比用户名+密码更好,因为如果有人设法访问已保存的凭据(令牌或密码),则泄露密码造成的损害总是高于随机且仅由您的服务使用,并且可以随时更换。

    此外,人类倾向于重复使用密码,这意味着使用密码会引发安全问题,而不仅仅是您的服务。

    在我看来,OAuth2 是基于令牌的身份验证系统的一个很好的例子:它有两种类型的令牌:刷新和访问。访问令牌就像您描述的那样,刷新令牌允许生成新的访问令牌并使之前的访问令牌无效。这使得“更新”访问令牌成为可能,例如每周或每月。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多