唯一识别计算机,防止黑客

时间:2017-02-26 02:41:39

标签: python security uuid

我完全认识到这个问题的答案可能是“不”。

我正在编写客户端服务器程序的客户端部分,该程序将在可能数千台计算机上运行,​​并将定期使用系统设置和配置向服务器报告。当计算机首次启动时,当前客户端代码独立地生成UUID值,并使用该ID向服务器报告以唯一标识自身。即使IP地址和其他相关数据发生变化,服务器也会使用此ID号来识别计算机。

虽然每个会话都通过TLS保护,但黑客可以轻松识别协议并向服务器发送数千个新的UUID值,诱使服务器认为网络上有一定数量的新机器 - 这最终会填满启动数据库并触发DoS条件。

关于如何唯一识别服务器/工作站的任何想法,即使是黑客也无法创建“幻影”机器?

有什么想法吗?同样,我完全理解答案很可能是“不”。 使用TPM芯片不是一种选择,主要是因为并非所有机器,架构或操作系统都允许使用此选项。

1 个答案:

答案 0 :(得分:0)

对于DOS / DDOS服务器,可能有更简单,更有效的方法。当你决定在家里付出很多努力时,请牢记这一点。

以下是一些可能(部分)有效的想法。

  • 速率限制全局创建UUID。如果你这样做,并监控你与数据库已满的距离,你可以保持领先于那个潜在的DOS向量。

  • 严格限制任何给定客户端IP地址创建的UUID。但是,你需要小心这一点。在许多/大多数情况下,由于HTTP代理,NATing等原因,您无法看到真实的客户端IP地址。

实际上有很多方法可以对限额请求进行评级。

  • 您可以对请求进行计数,并在给定时间间隔内的计数超过给定阈值时拒绝它们。
  • 您可以记录自上次请求以来的时间,并在间隔过小时拒绝请求。 (这是前一个版本的退化版本。)
  • 您可以简单地缓慢地处理请求;例如将它们放入队列并以固定的速率处理它们。

但是,您还需要注意,您的防御措施不会创建替代DDOS机制;例如使用UUID请求锤击服务器以防止真实用户获取UUID。