我讀了很多關於RSA,加密,許可證密鑰等,但我仍然感到困惑。c#,如何存儲和檢查生成的許可證密鑰?
我們可以在本地由客戶安裝(他們通常應該選擇SaaS的版本,但有些人可能不希望它) 應用程序有不同的模塊等。(漂亮的標準)
我們後端的Web應用程序存儲客戶數據和許可證/購買的模塊,並可通過SSL訪問。
「客戶」會定期檢查發出的許可證是否仍然有效。
什麼還不是很清楚我是如何存放許可證密鑰和/或數據,如「有多長許可證有效期」
我的想法至今:
只是它保存在一個表(明文)和定期許可證檢查可確保許可證的有效性,即使用戶篡改數據庫中的數據。 (用戶可以在短時間內訪問他不應該使用的部分)
加密並將其保存在表中。這意味着,我要麼
使用共享密鑰
使用私有/公共密鑰:因此,無論有公鑰(客戶端)解密或將其發送到後端解密並將其發送回客戶端。
我只是有一種感覺加密整個事情是一個開銷。
我不是安全和/或密碼學方面的專家。
所以我的問題是
- 檢查/存儲許可證(及其數據)時,什麼是最好的做法是什麼?
謝謝。
編輯:
我刪除的問題 「?是SSL不夠」在最後一段中,因爲我意識到這是一個不同的話題。
謝謝,這意味着創造的私有/公共密鑰加密(RSA例如)我的「自己」的實施,是否正確? 或者我需要一些證書(如X509)? – Arikael
或者會/可能/我應該使用安裝在後端的SSL證書嗎? – Arikael
「你自己的實施」是什麼意思?當然.net包括PK加密/簽名類(例如RSA),但您需要一對密鑰才能使用它們。看到例子[這個問題] [http://stackoverflow.com/questions/28099187/rsa-signing-in-c-sharp-for-licensing] – derpirscher