gpt4 book ai didi

authentication - 将模式识别应用于用户身份验证以防止恶意尝试

转载 作者:行者123 更新时间:2023-11-30 08:44:33 24 4
gpt4 key购买 nike

为了加强身份验证机制(网络),我想为每次尝试记录用户指纹,并应用模式识别来区分恶意尝试。例如,如果用户总是从欧洲计算机登录,并且尝试从中国登录,则该用户将被阻止,直到用户确认(例如通过电子邮件)允许从中国登录。

我从大学类(class)中获得的模式识别知识非常非常少。但是,我记不起开始开发这项服务的时间了。我所知道的是,您应该查看这些不同的功能:

  1. 浏览器代理字符串,导致:
    • 操作系统
    • 浏览器供应商
  2. IP 地址,结果为:
    • 地点
  3. 登录时间戳
  4. (失败的)尝试次数( session 内或总计)

您搜索模式,任何非凡的尝试都会被标记,因为它不遵循平均模式。您可能会应用一个阈值,因此如果用户在夜间登录或拥有新电脑,它仍然可以工作。

还有一些要求:首先,尝试的检查必须是实时的。如果凭据正常,但您稍后发现该尝试可能是恶意的,则您无法在 2 分钟后阻止访问。此外,我们所有的应用程序都是用 PHP 编写的,但 PHP 对此来说可能太慢了。那时我更喜欢使用 Python,但随后还需要绑定(bind)到 Python。

所以问题是:从哪里开始?实现这一目标的最佳方法是什么?我可以将所有数据记录在像 Redis 这样的 key 存储或像 Mongo 这样的基于文档的存储中。我如何设计一个服务,允许根据大量已知的其他尝试来验证具有某些功能的新尝试?并及时返回尝试是否与平均值匹配,例如 250 毫秒。

最佳答案

你想做的就是异常检测-wikipedia是一个很好的起点。作为第一次尝试,您可能想尝试聚类:

  • 您将需要一个数据集。好消息是集群是不受监督的,因此您不必将大量登录尝试标记为常规或恶意。
  • 对于给定用户,保留其过去 N 次登录的历史记录(老大哥警告!)以及这些登录的功能。您列出的功能是一个好的开始,但您可以想到更多。
  • 应用聚类算法来估计平均登录情况。对于每一次新的尝试,您都可以计算与平均值的距离,并确定它是否看起来是恶意的。

另一方面,不学习也能走很长的路。我的直觉是登录的位置和失败尝试的次数将帮助您完成大部分操作。一个简单的 if-else 可能就足够了。

关于authentication - 将模式识别应用于用户身份验证以防止恶意尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809812/

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