Linux

基於訂閱的模型中客戶端和伺服器的身份驗證

  • November 5, 2013

我目前的商業模式在硬體上預先承擔了損失,希望能持續為服務付費。當沒有為服務付費時,指令被發送到客戶端硬體以停止執行。

我想找到一種方法來減少有人設置 rouge 伺服器以保持客戶端硬體正常執行的機會,即使它沒有付費。這樣做還有一個額外的好處,即確保不會將 rouge 伺服器設置為簡單地接管客戶端電腦以用於惡意目的。

在一個非常簡單的嘗試中,我設置了以下“系統”:

  1. 基於硬體的序列號在部署之前從客戶端電腦收集,並通過加密與伺服器已知的 2 條資訊組合在一起。
  2. 加密值儲存在客戶端電腦上。2a. 伺服器始終知道這兩條資訊。
  3. 當客戶端第一次連接到伺服器時,它會將硬體串列傳遞給伺服器。
  4. 序列與資訊結合併加密。
  5. 加密的值被傳回給客戶端,看它是否與儲存的值匹配。

這個系統似乎有效,但如果我認為它是解決我的問題的最佳方法,我不會在這裡詢問它是否有效。

硬體序列號很容易被欺騙,因此這不是一種可靠的身份驗證措施。

我認為你想得太難了——已經有非常成熟的方法可以做到這一點,即 SSL,或更廣泛地說,RSA 公鑰身份驗證。如果您使用嚴格的密鑰指紋驗證,那麼您只需建立客戶端和伺服器身份即可。

我想找到一種方法讓客戶端機器驗證他們正在與正確的伺服器交談,而不是被劫持的東西,或者只是錯誤的產品伺服器。

客戶端伺服器證書身份驗證可以做到這一點。

這可以防止惡意指令嗎?

你不清楚這意味著什麼。“流氓指令”不是行業標準術語。如果您詢問它是否會防止意外命令由受信任的電腦執行,那麼不會。強化您的應用程序以丟棄危險/惡意命令。

如果客戶端一直在尋找來自伺服器的“goodboy”消息,這是否足以防止硬體被盜?

不可以。如果您的服務非常敏感,請進行客戶端證書身份驗證*,*並將其置於需要雙重身份驗證的 VPN 後面,此外還需要像 @EEAA 推薦的那樣使用公鑰加密。除了登錄憑據之外,諸如 RSA 令牌或智能卡之類的東西應該​​可以防止被盜的筆記型電腦連接到您的服務。還可以考慮在容易被盜的移動電腦上進行全盤加密,這樣小偷一開始就無法進入電腦。

引用自:https://serverfault.com/questions/509065