我已經爲一個商業程序創建了一個Addin,我想根據每年的訂閱向客戶銷售。我一直在努力思考如何以安全的方式驗證我的插件的最佳方式。身份驗證和授權我的加載項程序
要求
- 易於設置一個客戶端一個新的許可證,沒有代碼改變
- 遠程更新許可
- 客戶不會黑客,但不應該是很容易破解
環境
- 業務程序在服務器上運行,所有用戶都有一次點擊c#客戶端。插件位於客戶端。
- 我可以從客戶端讀取類似網站的名稱,這是每個實例是唯一的,而不是由用戶編輯的,也是日(所以沒有令人擔憂的客戶會改變他們的日期設置)
- 我可以用我自己的溝通全局變量服務器,在那裏我可以存儲許可證結束日期
參與討論
- 如果我用我的服務器每天進行身份驗證,這是不可達,或者阻止IP ...
- 當我從客戶端向我的服務器請求enddate時,這可能會改變,但如何在兩個系統之間進行有效加密,而無需整個私鑰/公鑰設置?
我知道這是一個廣泛的問題,但我也需要在這方面涉及的不同方面的廣泛答案。有人可以引導我什麼是一個好的設置,或指引我描述這一點?人們會認爲這很典型..我找不到任何東西。
每次程序針對授權服務器運行時進行身份驗證。存儲它在本地過期的日期。如果X次嘗試失敗或者您檢測到他們操縱了系統時間,請鎖定該軟件。存儲加密的數據,因此不容易修改。這很可能會因爲範圍過寬而關閉,或者不幸地要求對工具或庫提出意見。 –
商業軟件在服務器上運行,還是基於客戶端?客戶可能(但不能保證)能夠訪問互聯網,而服務器很可能不會。如果這是一個問題,我會建議支持至少離線激活,但離線和在線更好。 – kettch
商業軟件在服務器上運行,但客戶端都具有clickonce客戶端應用程序。這是在這個clickonce應用程序,我的插件駐留 – Bastiaan