Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

專家觀點:保護軟體IP 工程師不可不知的幾件事

上網時間: 2009年06月24日     打印版  Bookmark and Share  字型大小:  

關鍵字:知識產權  IP  盜版 

對軟體供應商而言,保護知識產權(IP)和防止盜版是老生常談了,但如何才能有效打擊這些威脅的策略和建議卻不斷推陳出新。

每一家成功的獨立軟體銷售商,都是猖獗盜版活動瞄準的目標。事實上,盜版集團一直公然宣揚其.NFO文件成果,並大肆向Secure FTP、P2P、IRC 和 Web等各種經銷管道提供盜版軟體或‘破解’版本。

駭客們利用逆向工程工具、現有的知識庫及其機器程式碼專業技術,以破壞軟體授權機制為己任。相同的伎倆還可能用來竊取軟體內的機密IP,這種情況下,來自新興競爭對手或外國政府的威脅更甚於盜版集團。

打擊IP竊取和盜版的方案包括軟體保護技術和盜版商業情報技術。軟體保護技術讓軟體具有抵禦逆向工程和篡改的能力,但它只是一種使軟體一旦被編譯後不易被反組譯及被修改的方法,並非絕對安全的措施。這種技術的常用保護功能有反除錯和程式碼加密。

反除錯技術旨在防止除錯器或反組合語言程式連接執行應用程式。反除錯邏輯可尋找除錯器為了控制應用程式所使用的特殊的簽名、陷阱和API。這類方案雖已廣獲運用,但虛擬機方面取得的進步使其相形見絀。

程式碼混淆技術主要用於.NET 和 Java等中間語言結構,它試圖透過重新命名變數、加密字串以及使用更先進的技術改變程式碼流程等方法來混淆逆向工程。然而,駭客仍然能夠輕易對應用程式進行反編譯,從這個角度來看,混淆技術是十分消極被動的。

另一種方法是程式碼加密。軟體保護初期採用的Packer或Wrapping方法在執行時會把整個應用程式解碼釋放到記憶體中,故保護能力有限。隨著保護技術的不斷演進,保護方案的重點策略改為採用及時(just-in-time)程式碼解密,以最小化記憶體中解密程式碼的效用。在需要時才對功能進行解密,而後再對其重新加密,這樣一來,任何時刻的解密程式碼儲存量都能保持在最少。

為提高軟體保護功能,開發人員開始瞄準核心級整合,如元件驅動器。這種等級的整合能夠更好的防禦措施複雜的除錯器。不過,它也導入了有害的依賴性,並對誠實的用戶造成干擾。

最終,一些先進的保護工具轉向嵌入式定製虛擬機,該技術可在執行時確保流程安全,並將應用程式碼轉換為業者特有的格式。這種方法有效地隱藏了保護流程,但卻可能損及應用性能。

商業情報技術

鑒於軟體保護功能的侷限性,以及真正瞭解盜版帶來的損失的必要性,一些開發人員在自己的應用中添加了一個‘phone home’功能,以收集軟體使用資料。盜版商業情報技術提供有phone-home系統,用以識別侵權公司。

一旦檢測到盜版軟體的使用,這類方案就啟動;商業情報技術於是可收集到足夠的資訊來識別侵權機構。銷售商因此得以直接追蹤侵權機構,追回受損的授權收入,並充分利用這些商業情報來拓展與盜版速度快的區域的合作關係,乃至採取法律措施追回損失的收入。

在設計一個盜版情報系統時,各項功能都應該完整。軟體盜版常常是透過使嵌入在軟體中的授權實施失效或予以竊取來實現的。主要有三種方法:二進位修補程式、密鑰產生器以及充分利用授權實施的漏洞。其中每種方法可能都有其獨特的簽名,這一點有利於盜版檢測並啟動非法使用報告機制。

盜版檢測正如其名:檢測這些簽名,讓你的報告只集中在軟體的非法使用上,而不影響獲授權用戶。為了確定哪一個方案和你的軟體共同使用,必須下載並分析軟體目前及過去的破解版。

盜版商業情報技術的關鍵之處是在盜版破解期間潛伏,直到某個機構開始使用軟體才啟動報告機制。如果這項功能是在授權功能內部實現,並對盜版集團是可視的,則它會失效。避免被發現的最好方法之一是啟動盜版檢測機制並基於軟體中某個可以顯示IP使用的功能集進行報告。

例如,一個CAE應用程式在有模擬執行時可啟動它的報告機制。盜版集團通常僅就他們對授權系統而非完整應用程式的破解進行QA。

資料收集是盜版商業情報的另一項關鍵因素。發送報告的重點應該放在識別盜版軟體機構而非個體用戶上。從某個機構追回損失的可能性比從單一終端用戶追回的大得多。從註冊、API和環境變數方面收集到的資訊有助於識別盜版機構。

資料收集對盜版商業情報至關重要,同樣重要的還有這些資料的組織、篩選以及與可起訴線索關聯的設立(其他商業單位可用於追回損失的收入)。以此為目標可製作一個盜版指示圖。當然,你也可以從頭開始搭建這種功能,不過目前已有軟體即服務(software-as-a-service)應用平台提供用於報告和線索管理的建構模組。

鑒於新興市場的風險,以及軟體盜版越演越烈的情況,保護你的軟體IP及授權收入至為關鍵。然而,開發人員在自己的應用軟體中添加保護措施之前,務必考慮到對其客戶的潛在影響,以及可能為開發流程導入的複雜性,必須審慎斟酌,明智決策。

若你的應用軟體中包含了價值重大的IP,且是基於C#和微軟.NET平台所開發,保護必不可少。這類應用程式對逆向工程師而言輕而易舉,因而需要一定的保護等級,以儘量避免它們成為駭客乃至好奇的終端用戶的攻擊目標。

如果目的是預防或阻止盜版,則盜版商業情報可以提供一個較好的解決方案,或至少邁出了第一步。這種情報有助於量化特定市場或應用軟體的盜版速度,因此它收集到的資料足以證明其他反盜版投資物有所值。

對你的公司來說,尤其在如今的市場,授權收入可能淩駕於其他一切。這種情報方案可以產生有關非法使用的可起訴線索,並應該儘量減少對產品開發的影響。這種方案的確相當有效,能夠為應對軟體IP威脅提供一種更快捷的方法。

在制訂反盜版策略之前,軟體銷售商必須首先對其問題的規模和涉及範圍進行評估和量化。

(參考原文:Protecting software IP: what engineers need to know,本文作者Victor DeMarines為V.i. Laboratories產品副總裁)





投票數:   加入我的最愛
我來評論 - 專家觀點:保護軟體IP 工程師不可不知...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首