天天看點

深入解析CodeMeter:確定軟體安全的強大工具

作者:威步上海

在當今的數字化世界中,保護你的軟體以及其知識産權變得越來越重要。由于黑客技術的日新月異和破解工具的廣泛傳播,軟體和資料安全已經成為任何組織不容忽視的問題。這就是為什麼威步的CodeMeter應運而生,提供了一種高效且靈活的保護解決方案。

CodeMeter是一個高度內建的技術解決方案,旨在通過加密技術、許可管理和IP保護功能來保護您的軟體産品和資料。這個系統通過使用安全存儲容器,來儲存和管理加密密鑰,為您提供了一個高度安全的密鑰存儲環境。

深入解析CodeMeter:確定軟體安全的強大工具

CmDongle使用AES 256位加密,以實作最優化的性能與安全性的平衡。在你想要加密軟體時,會建立一個或多個僞随機軟體密鑰。這些密鑰用來加密你的應用程式或它的部分内容。然後,這些密鑰本身也被加密,并且和多個CodeMeter密鑰一起存儲在軟體中。當應用程式運作或通路其被加密的部分時,其中一個CodeMeter密鑰被選取來解密軟體密鑰,進而解密軟體。如果缺少正确的許可證,就無法獲得必要的軟體密鑰,也就無法解密或執行軟體。

一些人可能會問,CmActLicense是否比硬體dongle更安全?CmDongle使用熟悉的USB接口,而CmActLicense可以使用不對稱過程。實際上,不論是使用CmDongle,還是CmActLicense,或者CmCloudContainer,對于大量的資料加密,如應用程式,都需要使用對稱加密,如AES 256位。而且,如果你希望一個安裝包适用于每一個客戶,那麼所有許可證的密鑰都必須相同。這些對稱密鑰通過一個不對稱過程被傳送到容器中,并在其中存儲。

深入解析CodeMeter:確定軟體安全的強大工具

然而,可能有人試圖通過竊聽USB接口,模拟CmDongle的行為。對此,CodeMeter也有應對之策。首先,CodeMeter Runtime與CmDongle之間的通信始終是加密的。其次,許可證總是包含一個不對稱密鑰,以及對稱密鑰。受保護的應用程式建立一個随機挑戰,CmDongle必須使用私鑰回應。然後,軟體使用公鑰檢查這個挑戰。沒有私鑰,就無法僞造這個檢查。

但這還不是全部:CodeMeter使用多個密鑰來加密一個軟體密鑰,建立大量可能性,實際選擇一個當軟體啟動時。選擇過程被設計為避免所有可能的密鑰都被使用,即使軟體被啟動上千次。在實踐中,這意味着一個通過記錄所有序列建立的模拟器永遠不會是完整的,并且其功能會受到嚴重的限制。

深入解析CodeMeter:確定軟體安全的強大工具

另外,對于軟體更新,是否需要使用相同的密鑰?或者,即使是小的更新,也最好建立一個新的許可證?答案是不需要。你可以使用同一許可證保護每一次更新。這就是CodeMeter的關鍵:它不僅提供安全的保護,而且簡化了許可過程。每一個許可證背後,都有一個根密鑰,也就是産品密鑰(PISK),在加密時建立所需的CodeMeter密鑰。這些密鑰是由你想要保護的應用程式的校驗和派生出來的。

當然,無論有多強大的保護系統,可能還是有些人通過側信道攻擊來讀取我們的密鑰。針對這個問題,CodeMeter采取了一系列反制措施。首先,我們使用的是一個安全的智能卡晶片,該晶片由制造商配備了抵抗側信道攻擊的手段。其次,我們在固件中也有一些獨家的技巧。最後,PISK不能直接使用,是以不能直接攻擊根密鑰。

深入解析CodeMeter:確定軟體安全的強大工具

在最高的保護級别上,CodeMeter推出了AxProtector新的混淆類型,稱為CTP (編譯時保護)。它通過在編譯時改變應用程式,使其結構無法識别。這種技術遠遠超越了IP保護模式,可以與或者沒有CodeMeter許可證一起使用。然而,你需要一個Clang編譯器來實作這個功能。如果你使用CmDongle或CmCloudContainer,建議将特别敏感的代碼移入CmContainer。這些代碼由你編寫,加密,并移入CmContainer進行解密和執行。這種機制被稱為CodeMoving,是我們防止反向工程的最有力武器,因為任何潛在的攻擊者都無法看到這個從未以未加密形式觸碰過計算機記憶體的代碼。

總的來說,威步的CodeMeter提供了全面且靈活的軟體保護解決方案,不論是對密鑰的保護,還是對代碼的保護,都做得極為出色。無論你是一個個人開發者,還是一家大型公司,如果你想要保護你的軟體,那麼CodeMeter絕對值得你的信賴。

繼續閱讀