我正在創建C#
,Java
桌面應用程序(exe),我需要加密用戶密碼和許可證相關信息,所以我找到了這個link。但問題是,如果我使用RSA公鑰/私鑰加密,那麼我將需要exe文件中的兩個密鑰來保持用戶和許可證信息可更改,但是如果有人反向工程師.exe文件並獲取私鑰,那麼數據將會損害。RSA安全私鑰在exe文件內
如何保護我的私鑰在.exe文件中?有沒有其他技術可以從反向工程中保存私鑰?
有一些混淆工具可以停止逆向工程,但仍然可以看到私鑰,使用這種工具非常昂貴。
我正在創建C#
,Java
桌面應用程序(exe),我需要加密用戶密碼和許可證相關信息,所以我找到了這個link。但問題是,如果我使用RSA公鑰/私鑰加密,那麼我將需要exe文件中的兩個密鑰來保持用戶和許可證信息可更改,但是如果有人反向工程師.exe文件並獲取私鑰,那麼數據將會損害。RSA安全私鑰在exe文件內
如何保護我的私鑰在.exe文件中?有沒有其他技術可以從反向工程中保存私鑰?
有一些混淆工具可以停止逆向工程,但仍然可以看到私鑰,使用這種工具非常昂貴。
對用戶密碼(如SHA)使用散列函數,並且不會在用戶系統上存儲私鑰。對於許可信息,生成RSA簽名的許可證數據並通過電子郵件或任何其他方式將其發送給用戶,您的應用程序只需要許可服務器的公鑰來驗證許可證數據。
我正在使用許可證文件,並在應用程序啓動時,讀取並驗證當前時間戳並將其寫入同一文件中的加密格式,以便爲什麼我需要私鑰。 –
有沒有解決方案,你的私鑰永遠不應該暴露。只要你的私鑰暴露出來,你的產品的安全性就完全消失了。 –
我得到了關於用戶名和密碼的意見,但我如何處理許可證?因爲當用戶啓動應用程序時,我會跟蹤上次使用的日期,因此用戶無法使用系統日期進行播放。所以這就是爲什麼我需要加密這一點,所以我寫這個數據在同一個許可證文件。你能告訴我你的想法如何處理這些數據? –
簡短的回答是否定的,沒有技術來保存逆向工程的私鑰。沒有可以停止對私鑰進行逆向工程的混淆工具。您無法保護可執行文件中的私鑰。
不要拿我的話說。搜索已經對其私鑰進行了逆向設計的黑客入侵系統的示例。有很多。我剛剛發現這個例子:http://goodenoughsecurity.blogspot.com/2012/11/how-ps3-lv0-key-was-probably-hacked.html
其獨立的桌面應用程序,可以運行沒有互聯網相同的反病毒應用程序。沒有服務器 –
@VarunJain在用戶計算機上運行服務器也是一個選項,但我會編輯我的答案。 – HKYL
無論如何,如果我使用本地服務器,然後直到有人可以逆向工程該服務器文件是給私鑰 –