Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 唯一识别计算机,防止黑客攻击_Python_Security_Uuid - Fatal编程技术网

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

Python 唯一识别计算机,防止黑客攻击,python,security,uuid,Python,Security,Uuid,我完全明白这个问题的答案可能是“不” 我正在编写客户机-服务器程序的客户机部分,该程序将在数千台计算机上运行,并定期向服务器报告系统设置和配置。当计算机首次启动时,当前客户端代码独立地生成UUID值,并使用该ID向服务器报告,以唯一地标识自身。即使IP地址和其他相关数据发生更改,服务器也会使用此ID号来标识机器 虽然每个会话都是通过TLS进行保护的,但黑客可以轻而易举地识别协议并向服务器发送数千个新UUID值的垃圾邮件,从而诱使服务器认为网络上有成倍数量的新机器,这最终会填满数据库并触发DoS条

我完全明白这个问题的答案可能是“不”

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

虽然每个会话都是通过TLS进行保护的,但黑客可以轻而易举地识别协议并向服务器发送数千个新UUID值的垃圾邮件,从而诱使服务器认为网络上有成倍数量的新机器,这最终会填满数据库并触发DoS条件

关于如何唯一地识别服务器/工作站,使黑客无法创建“幻影”机器,有什么想法吗

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

可能有更简单、更有效的方法对服务器进行DOS/DDOS攻击。记住,当你决定在这方面花费很多精力时

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

  • 速率限制UUID的创建。。。全球地。如果您这样做,并监控您离数据库已满的位置有多近,您就可以领先于潜在的DOS向量

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

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

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

但是,您还需要注意,您的防御不会创建替代DDOS机制;e、 g.使用UUID请求敲打服务器,以防止真实用户获得UUID。

您使用非对称加密对协议进行加密,这样只有运行您的程序的机器才能向服务器发送有意义的消息……这如何解决问题?攻击者仍然可以无限多次地运行客户端。虚拟机的每一次“注册”都将被加密。你用一个只有服务器和真实机器知道的密钥来加密它。因为您可以在收到请求时验证它是否是真正的机器,所以您不会在数据库中存储其他机器?一次性手工登记行吗?如果这些机器处于某种可信环境(如Active Directory域)中,您可以在那里实现自动化。