我想寫一個基於wcf服務的許可證管理。驗證WCF服務
如何確保(最終)用戶/「黑客」無法用損壞的服務器替換我們的許可證管理服務?
我們的許可證服務器託管在我們的服務器上的互聯網上。當服務器向客戶端發送損壞的數據時,完整的許可證管理概念被破壞。
謝謝
我想寫一個基於wcf服務的許可證管理。驗證WCF服務
如何確保(最終)用戶/「黑客」無法用損壞的服務器替換我們的許可證管理服務?
我們的許可證服務器託管在我們的服務器上的互聯網上。當服務器向客戶端發送損壞的數據時,完整的許可證管理概念被破壞。
謝謝
你正試圖解決一些無法解決的問題。一旦你向客戶提供應用程序並且客戶端部署到他的計算機上,他當然可以在你的應用程序中做任何他想做的事情。即使您將某些安全檢查硬編碼到應用程序客戶端,也可以進行反向工程並修改您的代碼。您可以通過使用一些模糊的庫來減少他的機會,但仍然可以欺騙客戶端機器上部署的任何東西。這就是爲什麼warez存在並且沒有防彈解決方案的原因。
如果您不希望客戶端欺騙您,請將您的應用程序構建爲基於Web的應用程序並將其託管在您的服務器上。客戶將支付訪問/帳戶,他將無法避免您的許可策略。
如果您想要一些難以作弊的高質量許可策略,請嘗試購買一些現有的解決方案,而不是創建自己的解決方案。
我想public-key cryptography這裏可能是一個答案。我不是安全專家,所以我可能確實是錯誤的,但據我所知,你可能有公鑰解密硬編碼到你的服務使用者和私鑰在你的許可證服務器上進行加密。然後,工作流程可能如下:
當然這可能只是假設您可以保證您的服務消費者應用程序不能被黑客攻擊,但否則我不會看到任何點黑客服務。
唯一的問題是:我甚至可以通過反射覆蓋硬編碼變量(如果我知道結構)。所以我可以注入一個不同的公鑰。你有一個想法如何解決這個問題? – Mimefilt
國際海事組織,如果你可以破解客戶端,那麼沒有什麼會幫助你。如果您可以更改應用程序(並更改已編譯的公鑰),那麼刪除服務器驗證代碼會停止什麼? – Snowbear
當然,他可以根據我們的源代碼創建一個新的應用程序。但這需要很長時間和很多技巧。反映價值是在幾分鐘內完成的。但是,也許你是對的。即使是脆弱的「星際爭霸2」也被「黑客入侵」 – Mimefilt