2016-01-23 74 views
0

我想向客戶端發送包含我的應用程序的許可證數據的加密文件。由於我將使用非對稱加密,我將使用私鑰對文件進行加密並將其發送到客戶端。客戶端PC上的應用程序將使用位於應用程序代碼中的公鑰解密發送的文件。對許可證文件使用非對稱加密

這裏的威脅模型I方面是公鑰可以從應用程序的.dll文件中提取(例如使用.net反射器)並用於重新生成許可證。

那麼有沒有一種方法來保護我的應用程序?

+2

只有公鑰才能重新生成許可證。考慮你的應用程序被黑客攻擊(開發者)和黑客的利潤與成本。如果你失敗太多,只需使用現有的庫之一,否則你的方案聽起來不錯。順便說一句,你描述的是數字簽名,而不是加密 –

+0

感謝你的答案,但你可以更好地解釋我所描述的數字簽名是什麼意思? – Doicare

+2

非對稱加密是指在使用公鑰時只有私鑰才能讀取數據。數字簽名是當私鑰用於加密某些東西(通常只是一個散列)並且公鑰允許每個人檢查郵件的來源時 - 在這種情況下沒有任何隱藏,因爲公鑰允許每個人都看到真實的數據 –

回答

0

非對稱加密使用兩個密鑰:

  • 用於加密數據的公開密鑰
  • 私有密鑰對數據

加密包含與客戶端的公共許可證的文件解密密鑰,所以只有他可以用他的私鑰解密它。 要使客戶的私鑰安全,請使用位於System.Security.Cryptography命名空間中的ProtectedData類中的Protect方法對其進行加密。私鑰將被加密存儲在他的計算機上,他只有在需要解密從你發送的消息時才能解密密鑰。