gpt4 book ai didi

security - 提高基于 Web 的登录的安全性

转载 作者:行者123 更新时间:2023-12-04 04:24:53 26 4
gpt4 key购买 nike

现在我的登录系统如下:

  • 密码长度必须至少为 8 个字符,并且至少包含一个大小写字母、一个数字和一个符号。
  • 密码不能包含用户名作为其子字符串。
  • 存储在数据库中的用户名、加盐+散列(使用 SHA2)密码。
  • 随机数(盐)对于每个用户都是唯一的,并与用户名和密码一起以明文形式存储。
  • 整个登录过程只能通过 TLS

  • 您如何评价以下提高安全性的措施的有效性?
  • 增加密码长度
  • 强制用户每隔 X 更改一次密码时间段,新密码不能是最后一个Y以前的密码
  • 将 nonce 大小从 32 字节增加到 64 字节(因无用而删除)
  • 使用 AES 加密 salt, key 仅对执行身份验证的应用程序可用
  • 多次重复密码
  • 使用由更长的应用程序范围的盐 + 数据库上的唯一用户盐组合而成的盐。

  • 我不太喜欢 1 和 2,因为它会给用户带来不便。
    当然,4 和 6 仅在攻击者破坏了数据库(例如:通过 SQL 注入(inject))而不是应用程序所在的文件系统时才有效。

    最佳答案

    答案可能在一定程度上取决于网站的性质、其用户和攻击者。例如,这是黑客可能针对特定帐户(可能是“管理员”帐户)的网站,还是他们只想获得尽可能多的帐户的网站?用户的技术水平如何,他们保护自己帐户安全的动力如何?在不知道答案的情况下,我会假设它们不是技术性的,也没有动力。

    可能产生影响的措施

    5) 多次重复密码。 这可以显着减慢所有蛮力攻击 - 哈希 1000 次,蛮力攻击变得慢 1000 倍。

    4) 使用 AES 加密 salt, key 仅对进行身份验证的应用程序可用 您将如何使其仅对应用程序可用?它必须存储在某个地方,如果应用程序遭到入侵,攻击者可能会得到它。可能会有一些直接针对数据库的攻击,这会产生影响,所以我不会称这无用,但这可能不值得。如果您确实付出了努力,您不妨加密密码本身和数据库中的任何其他敏感数据。

    6)在数据库上使用更长的、应用程序范围的盐+唯一用户盐的组合盐。 如果您只关心密码,那么是的,这将是实现与 4) 相同结果的更好方法,当然,它很容易实现。

    无效的措施

    3) 将 nonce 大小从 32 字节增加到 64 字节。 使用任何盐计算彩虹表已经完全不切实际,因此只有在攻击者不知道盐的情况下才会有所作为。但是,如果他们可以获得散列密码,他们也可以获得盐。

    无效和烦人的措施

    1) 增加密码长度将密码长度增加到 8 以上不会对暴力破解时间产生实际影响。

    2) 强制用户修改密码我同意,这将永远解决。事实上,它可能会降低网站的安全性,因为人们会在某处写下密码!

    关于security - 提高基于 Web 的登录的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585677/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com