肇因於資訊科技產業蓬勃發展,小至行動電話,大至巨無霸飛行器 A-380,舉目所見,無處不是人類智慧藉由軟體科技的實現,軟體已成為多數產品基本成分,產品優劣,軟體舉足輕重,更是競爭力所在。產業無不竭盡心力,以期凌駕競爭對手。如何保護競爭力的軟體工程,已逐漸受到重視,再者,面臨資訊安全事件不斷衝擊,現代軟體工程已將守護軟體本身的安全與版權(著作權) 管理,視為同等重要的地位。
拜網際網路平台發達之賜,知識獲取的門檻已大幅降低,也讓知識邁入空前的爆炸階段。可惜的是,這個平台也成了盜版的溫床,在過去,要進行軟體盜版必須具備相當的專業知識,如今,普羅大眾可以在搜尋引擎打入關鍵字,大把的資訊就呈現在眼前,更有甚者,有人把盜版當成職業。因此,要達到資安和版權保護兩大目標,已經不是簡單幾個的邏輯指令和資料隱藏就能達到。資訊安全與版權理技術通常涉入許多密碼學的知識,而且是近幾年的來的才被重視的項目,多數的軟體研發人員在求學的過程,都不曾學到相關的技術,因此不論是在學界或業界,這部分的從業人員或知識,仍然不普及,因此尋求專業的資安資源與工具就顯得相當重要。
目前提供版權保護的工具相當多,有最常聽到的保護鎖、網路註冊(啟動)、註冊碼、光碟防拷、晶片卡…,五花八門,產品價格從幾百元到幾萬元不等,產品都宣稱可以達到版權保護的功能。既然目的相同,何以價格差距如此懸殊?通常,消費者的取向是【越便宜越好】,版權保護工具業者也會灌輸【越貴的越好】的觀念。但是,一味以價格取向很難買到好的工具,而貴的工具真能滿足需求嗎?
註冊碼的保護夠安全嗎
目前,註冊碼是市場上較為便宜的工具,有些版權工具業者只收一次費用,註冊碼可以無限量產生,有些交易會產生的註冊碼數量來計價,有些交易會以每年協議合約計價收費。就技術的觀點,以註冊碼為核心的保護方式,註冊碼如何產生和驗證,是整個機置安全與否的重點。有些工具會給一個軟體,用這個軟體來產生註冊碼,有些必須透過網際網路向遠端的授權伺服器要求註冊碼。先不論註冊碼產生的邏輯為何,就分發給使用者的部分來看,如果軟體運行的條件是不包含硬體安全模組(HSM) 的角色,那代表使用者掌握了【全部】的軟體物件,包括軟體與註冊碼都是檔案,這也代表註冊碼的解析全在應用程式內進行,既然是檔案,便能以除錯器加以解析其註冊碼的運算邏輯,駭客便能寫出所謂的【註冊碼產生器】或是【註冊機】軟體。
有些註冊碼保護機制會要求 run-time 時必須連接網際網路,以不斷的換註冊碼已達到較高的控管度,但是,在許多使用環境下,是不能有 Internet
Connection 的,但是回歸到先前所提到的重點,註冊碼的驗證是在甚麼地方進行,才是代表這個機制是否安全的所在。所以,可以很清楚從這樣的觀點來判斷所使用的保護工具,到底安全度有多少。
保護工具的黑箱作業
美國前副總統高爾(Al
Gore) 卸任後拍攝一部有關地球暖化現象的影片,片名叫“不願面對的真相(An
Inconvenient Truth)”,獲得廣大的迴響,這部片子以記錄片的手法拍攝,讓人們意識到原來地球暖化已經威脅到這麼多生物的生存環境,即便是身為萬物之靈的人類亦不能倖免。世界的上的每個角落進行中的事情,可能正在影響另一個角落,並不會因我們看不見就表示這個影響不存在。
很多軟體版權保護工具,也有【不願面對的真相】,許多保護工具業者會以商業機密為由,不願公佈其實作理論,儼然是一個黑箱作業,多數業者不願提供製作出來軟體可能的漏洞和技術理論及其驗證方法。表面上,軟體商買了工具,並遵循保護工具手冊的指引,製作出具備版權保護的軟體,但是,並沒有說明怎麼去檢驗軟體的保護強度和安全度。相信許多軟體商仍抱持【有燒香有保佑】心態,去使用保護工具,期待世界的另一個角落,意圖瓢竊創作的人能夠知難而退,但是卻無法驗證事實是否如此。但是大多數的人應該同意,我們所處的地方看不見,但並不代表盜版的情形不存在,即使採用了保護策略,盜版仍有所聞,所以至少保護工具業者應該說明產品的強度為何,實為負責任之商家所為。
如同現代工業為所有原料和設備制定其標準,破壞條件是必要的檢測項目之一,抗破壞能力越強的東西,價值越高。其實,軟體保護工具的強度也是可以被檢驗的,並不會因為保護工具業者不公佈保護技術理論而變得更安全,反而,可以被公開來檢視驗證的東西,才能令人信任。我們可用從破解保護的手法,很容易檢驗出保護工具所製作出來的軟體,強度為何。我們從以下三種破解手法來看待軟體保護工具的強度。
抵抗物件置換
保護工具通常會附掛保護函數庫檔案,我們可以將函數表輸出,寫一個具有相同函數表的函數庫檔案(不需完全實作其內容,只是驗證其行為模式),將它待換掉原來的檔案,如果保護軟體仍未發現任何異常,即表示這個保護機制可以被模擬而取代。
抵抗檔案篡改
破解軟體保護的目的是要修改軟體,繞過版權檢查點跳躍,這樣的行動作必須動到修改程式碼並存檔,也就是篡改,可從檢查保護後的軟體檔案,可否被篡改來得知檔案的完整性(原始性) 能否被維護,如果完整性無法被維護,代表這個檔案可以被修改後能仍執行,也等同有被繞過版權檢查程式的危機。
檢測的方法很簡單,只要使用能編輯 Binary
code 的編輯器,如 Ultra Editor,將保護後的執行檔案開啟,找到檔案前段的屬性敘述區,這一段資料不影響檔案執行的,只要修改一個Bit 後,然後將它存檔,接著我們去執行它,看它能否執行,如果照常執行,代表保護機制無法維護其程式的完整性。
抵抗單步執行除錯
破解軟體保護常用的工具是軟體除錯器,軟體除錯器有些內嵌在程式開發工具,有一些獨立的軟體除錯工具,如 SoftICE、OllyDBG、WinDBG。
除錯器可以對執行檔執行單步指令追蹤,駭客可以藉由指令的執行和畫面變化找出版全檢查點,並加以修改,或者了解原始創作的邏輯。
即使在完整合法的版權執行條件下,保護機制若不能偵測並干擾除錯器的運行,那意味著無論採用何種保護,基本上它都是不安全的。檢測的方法很簡單,以除錯器對合法版權條件下(接上保護鎖或安裝了註冊碼) 的執行檔,進行單步執行,若無法執行或一直再某個迴圈運行,無法如正常程序進行畫面,則代表這個保護機制具備抗除錯器的功能。反之,若如原來一般正常執行,則代表所謂安全的後門是打開的,保護機制隨時有被破解的可能。
如果上述 3 項檢驗都能過關,表示這個保護機制強度很高。
若能通過 2 項,表示這個保護機制的壽命不會太久,你必須常更換保護策略。
若只能通過 1 項,那表示只要產品被駭客盯上,短期內就會被破解。
|