2017-02-26 64 views
0

我完全認識到這個問題的答案可能是「否」。唯一標識計算機,防止黑客

我正在編寫客戶端服務器程序的客戶端部分,該程序將在潛在的數千臺計算機上運行,​​並定期通過系統設置和配置向服務器報告。當計算機第一次啓動時,當前客戶端代碼獨立生成一個UUID值,並通過該ID報告給服務器以唯一標識自己。即使IP地址和其他相關數據發生變化,服務器也會使用此ID號識別機器。

雖然每個會話通過TLS保護,黑客可以平凡標識協議和垃圾郵件與成千上萬的新的UUID值的服務器,欺騙服務器到思維也有在網絡上的新機器的指數數量 - 這將最終填滿數據庫並觸發DoS條件。

有關如何唯一標識服務器/工作站的任何想法,以至於即使是黑客也無法創建「幻影」機器?

任何想法?再一次,我完全明白答案很可能是「不」。 使用TPM芯片不是一種選擇,主要是因爲並非所有機器,體系結構或操作系統都允許使用此選項。

+0

您使用不對稱加密對協議進行加密,以便只有運行程序的機器才能發送對服務器有意義的消息... –

+0

這怎麼能解決問題?攻擊者仍然可以無限次地運行客戶端。虛擬機器的每個「註冊」都將被加密。 –

+0

你用**鍵**加密它,只有服務器和真機知道。由於您可以在收到請求時驗證它是否是真實機器,因此不要將其他機器存儲在數據庫中。 –

回答

0

有可能是更簡單,更有效的DOS/DDOS服務器的方法。請記住,當你決定在家裏付出很多努力去做這件事。

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

  • 速率限制UUID ...在全球範圍內的創建。如果你這樣做,並且監測你的數據庫距離你有多近,那麼你可以在潛在的DOS矢量之前。

  • 嚴格限制任何給定客戶端IP地址創建的UUID。但是,您需要注意這一點。在許多情況下,由於HTTP代理,NATing等原因,您不會看到真實的客戶端IP地址。

實際上有很多方法可以對限制請求進行評級。

  • 您可以計數請求,並在給定間隔內的計數超過給定閾值時拒絕它們。
  • 您可以記錄自上次請求以來的時間,並在間隔太小時拒絕請求。 (這是前一個版本的退化版本。)
  • 您可以簡單地緩慢處理請求;例如將它們放入隊列中並以固定速率處理它們。

但是,您還需要注意,您的防禦措施不會創建替代的DDOS機制;例如用UUID請求敲擊服務器以防止真正的用戶獲取UUID。