2012-01-27 55 views
0

我正在考慮使用DSS將軟件許可分發給最終用戶。如何保護軟件許可證免受虛假數字簽名?

基本上,軟件許可證是一個簡單的文本文件/ xml文件,包含軟件模塊和公司信息。該文件將使用私鑰進行簽名。

軟件許可和數字簽名將部署在最終用戶的計算機上。當應用程序啓動時,它將使用已知的公鑰驗證軟件許可證是否有效。如果它有效,它將讀取軟件許可證中的信息並開啓許可使用的功能。

但是,這是這個協議的一個弱點。軟件許可證是可讀的文本文件。任何人都可以生成公鑰/私鑰對,簽署軟件許可證並用假公鑰修補軟件。它將通過驗證過程並可能創建自己的軟件許可證。

有什麼好方法可以保護免受虛假數字簽名?

回答

2

不可能完全保護您的軟件免受盜版。無論如何,你將不得不以某種方式分配你的公鑰,然後盜版者可以用自己的公鑰來交換。但是,你可以嘗試讓它變得更加困難。例如,通過將公鑰作爲字符串嵌入到可執行文件中。你甚至可以對其進行一些基本的加密,以使其更難找到。

但是,如果您的軟件值得開裂,那麼將會破解

3

我不知道你用什麼工具來開發你的代碼,但是有一個excellent description如何在.NET框架中實現這一點,請參閱http://www.codeproject.com/Articles/4940/Using-XML-Digital-Signatures-for-Application-Licen。公鑰被嵌入到應用程序本身的代碼中。我使用了一個類似於此的方案來許可一個Ruby插件。

如果有人真的決心破解你的保護,那麼他們會這樣做。但是,這種方案將阻止那些試圖剝離你的軟件的人中的99.9%。

+0

我想知道你從哪裏得到你的99.9%:)如果有人真的想破解它,他們會破解它,所以如果0%有效,這些數字的保護。其他用戶將只是在互聯網上尋找破解。 – 2012-01-29 06:24:18

+0

大多數想要自由軟件的人都是因編碼前景而受到威懾的臨時用戶。我並不假裝這個計劃是水密的,但它應該阻止機會主義海盜。這是一個比沒有任何保護更好的血腥視線。 雖然我們盡了最大的努力,但堅強而堅定的竊賊會進入房屋,但我沒有聽到任何人提倡我們不要離開我們的門窗解鎖。這是一個愚蠢的說法。 – deadlyvices 2012-01-30 10:03:19

0

任何人都可以生成公鑰/私鑰對,簽署軟件許可證並用假公鑰修補軟件。它將通過驗證過程並可能創建自己的軟件許可證。

有什麼好方法可以保護免受虛假數字簽名?

與防止某人完全禁用數字簽名檢查的方式相同。你的問題就像問你如何阻止一個小偷進入你的第二個故事最左邊的窗口。那不是他將要經歷的窗口,並且無論如何,你都會阻止他走出通過其他窗戶進入的方式。

+0

這是更多的評論和更少的答案,不是嗎? – mkl 2016-01-26 10:10:29

+0

@mkl我真的相信這是問題的最佳答案。我確實倒下了這個問題。 – 2016-01-26 10:44:11