專利名稱::一種保護加密軟件的方法
技術領域:
:本發(fā)明涉及用于防止軟件非法復制或剽竊的軟件保護方法,尤其涉及到一種保護加密軟件的方法。
背景技術:
:隨著科技的發(fā)展,軟件在新產(chǎn)品中占有越來越重要的地位。為保護產(chǎn)品的知識產(chǎn)權,防止非法復制和剽竊,業(yè)界采用了多種方法進行加密保護。在傳統(tǒng)的通用加密芯片保護方法中,一般將加密訪問程序嵌入到單一一條線程中,系統(tǒng)每執(zhí)行到特定位置就去訪問加密芯片,并且等待加密認證信息返回后再執(zhí)行正常的程序流程。由于訪問加密芯片是基于串行的10控制,訪問速度會比較慢,一般的交互周期達到20ms以上,在傳統(tǒng)的單線程加密保護方法中,在加密認證過程中整個系統(tǒng)都要等待加密認證過程執(zhí)行完,這樣就會產(chǎn)生大量的延遲,對于實時性要求較高的情況下,程序運行過程中這么大的延時,會直接影響到系統(tǒng)的性能。而且在這種保護方法中,在代碼的一個地方作為認證的出入口進行認證過程,被破解的風險相對較高。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種多線程嵌套的,兼具靈活性、安全性3和高性能的對加密軟件的保護方法。為解決以上及技術問題,本發(fā)明的一種保護加密軟件的方法是釆用加密芯片進行多線程的加密認證方法,所述多線程由負責加密認證過程的關鍵線程以及負責認證后處理過程的關鍵管理線程和關鍵功能線程組成;多線程間進行多重嵌套認證。所述的方法包括如下步驟a、所述關鍵線程利用加密認證方法定時訪問加密存儲芯片,進行加密認證,并將加密認證的結(jié)果通過線程間通信的方式通知關鍵管理線程;b、所述關鍵管理線程不斷處理各種事件并統(tǒng)計事件的數(shù)量,當數(shù)量超過預設值時,就認為芯片工作不正常,此時進入拒絕服務流程使系統(tǒng)無法正常運作;如果在事件統(tǒng)計數(shù)量超過預設值之前收到關鍵線程發(fā)送過來的認證結(jié)果,則將事件統(tǒng)計數(shù)量清零,接著根據(jù)認證結(jié)果,判斷認證是否通過,通過即繼續(xù)正常流程,不通過則進入拒絕服務流程使系統(tǒng)無法正常運作;c、所述關鍵管理線程在收到關鍵線程的認證結(jié)果的同時,會將該結(jié)果轉(zhuǎn)發(fā)給關鍵功能線程;d、關鍵功能線程不斷處理各種事件并統(tǒng)計事件的數(shù)量,當數(shù)量超過預設值時,就認為芯片工作不正常,此時進入拒絕服務流程使系統(tǒng)無法正常運作;如果在事件統(tǒng)計數(shù)量超過預設值之前收到關鍵管理線程發(fā)送過來的認證結(jié)果,則將事件統(tǒng)計數(shù)量清零繼續(xù)正常流程。一般的軟件加密保護方法都是在單一線程里面嵌入加密認證程序,串行地進行加密認證和認證處理,相比這種處理方法。本發(fā)明的多線程嵌套軟件加密保護方法有如下特點和優(yōu)勢1、減少認證過程對系統(tǒng)性能的干擾。訪問加密芯片是屬于串行的IO控制,訪問速度會比較慢,一般軟件和加密芯片相互通訊進行加密認證的周期達到20ms以上。在一般的軟件加密保護方法中,以單線程直接進行加密認證,并在該線程中對加密認證的結(jié)果進行處理,在加密認證的過程中整個系統(tǒng)的正常處理過程將被打斷,系統(tǒng)必須等待加密認證過程完成,才能繼續(xù)進行正常的處理流程,產(chǎn)生了很大的延遲。在對于實時性要求較高的情況下,程序運行過程中這么大的延時,會直接影響到系統(tǒng)的性能。而在本發(fā)明的多線程嵌套軟件加密保護方法中,由關鍵線程負責耗時較長的認證過程,而此時其他線程可以并行地運行下去,系統(tǒng)的正常處理不會被打斷,可以很好的避免性能損失。2、加大破解難度,加強保密強度。在傳統(tǒng)的單線程加密保護方法里面。在同一個線程作為認證的出入口進行認證過程,被破解的風險比較大,破解者可以輕易通過殺死認證線程或者跳過認證代碼等方法破解軟件。而在本發(fā)明的多線程嵌套軟件加密保護方法中,關鍵管理線程和關鍵功能線程與系統(tǒng)本身的應用相結(jié)合,在事務統(tǒng)計上釆用多種事件綜合進行的,通過事務統(tǒng)計值達到預設值來確認加密保護被非法破壞,而事務統(tǒng)計值根據(jù)系統(tǒng)運行情況會呈現(xiàn)不規(guī)則地增長,因此在沒有加密存儲芯片或關鍵線程檢查加密機制被破壞的情況下,設備拒絕工作的時間呈現(xiàn)出不規(guī)律性,多個加密保護線程和不規(guī)律的保護生效過程起到了干擾破解者判斷的作用。同時,除了關鍵線程去檢查加密外,關鍵管理線程本身既是系統(tǒng)必不可少的線程,又是監(jiān)督加密認證執(zhí)行的線程,關鍵功能線程也對加密結(jié)果進行監(jiān)督,在線程上形成對加密執(zhí)行的多重保險,大大增加了破解難度。圖1為本發(fā)明所涉及硬件的連接示意圖圖2本發(fā)明方法的步驟流程圖具體實施例方式下面結(jié)合具體實施方案詳細說明本具體實施方案中采用的關鍵功能線程只采用一條,即關鍵功能線程C,但這不影響本發(fā)明的保護范圍,因為根據(jù)需要可以加入多個關鍵功能線程,通過線程間通訊進行多重嵌套認證,以便加大保護力度。本方法用于釆用通用加密芯片進行多線程的硬件加密認證,擁有加密存儲芯片。其硬件連接如圖l所示。由于MCU和加密存儲芯片之間釆用串行接口進行通信,如SPI或I2C,因此推薦釆用的加密存儲芯片引腳數(shù)只有8個,S0IC封裝,占用空間(7mmx5.5mm)相當小,成本低,很容易增加,對無加密功能的老產(chǎn)品進行改造也非常方便,成本負擔小。本發(fā)明的多線程嵌套軟件加密保護方法具體實施步驟如下(如表2所示)步驟l,利用在關鍵功能模塊中使用的定時器關鍵線程A,利用加密認證方法定時訪問加密存儲芯片,進行加密認證。這里加密認證方式可釆用基于變種DES算法的軟硬件雙向加密方案。過程如下<table>tableseeoriginaldocumentpage7</column></row><table>步驟2,關鍵線程A對加密認證的結(jié)果會通過線程間通信的方式通知關鍵功能關鍵管理線程B。這里線程間通信可釆用消息隊列、管道等方式。關鍵管理線程B為系統(tǒng)關鍵管理線程。它不斷處理各種事件,并統(tǒng)計事件的數(shù)量。步驟3,關鍵管理線程B中對認證結(jié)果進行判斷,如果發(fā)現(xiàn)加密認證結(jié)果不通過,就立即停止工作或重新啟動。關鍵管理線程B中同時還對本身所處理的事務進行計數(shù),當統(tǒng)計了一定數(shù)量事務后,仍沒有收到加密認證結(jié)果時,則判斷加密存儲芯片沒有正常工作,此時關鍵管理線程B將立即停止工作或重新啟動設備。步驟4,關鍵管理線程B在收到關鍵線程A的認證結(jié)果的同時,會將該結(jié)果轉(zhuǎn)發(fā)一份給關鍵功能線程C。關鍵功能線程C為系統(tǒng)另一關鍵線程。它不斷處理各種事件,并統(tǒng)計事件的數(shù)量步驟5,關鍵功能線程C不斷統(tǒng)計自身正在處理的事件的數(shù)量。當數(shù)量超過預設值時。就認為芯片工作不正常。此時進入拒絕服務流程,執(zhí)行重啟或立即停止工作的動作,從而使得系統(tǒng)無法正常運作。而如果在事件統(tǒng)計數(shù)量超過預設值之前收到關鍵管理線程B發(fā)送過來的認證結(jié)果,關鍵功能線程C就將事件統(tǒng)計數(shù)量清零繼續(xù)正常流程。權利要求1、一種保護加密軟件的方法,其特征在于所述方法是采用加密芯片進行多線程的加密認證方法,所述多線程由負責加密認證過程的關鍵線程(A)以及負責認證后處理過程的關鍵管理線程(B)和關鍵功能線程組成;多線程間進行多重嵌套認證。2、根據(jù)權利要求l所述的方法,其特征在于包括如下步驟a、所述關鍵線程U)利用加密認證方法定時訪問加密存儲芯片,進行加密認證,并將加密認證的結(jié)果通過線程間通信的方式通知關鍵管理線程(B);b、所述關鍵管理線程(B)不斷處理各種事件并統(tǒng)計事件的數(shù)量,當數(shù)量超過預設值時,就認為芯片工作不正常,此時進入拒絕服務流程使系統(tǒng)無法正常運作;如果在事件統(tǒng)計數(shù)量超過預設值之前收到關鍵線程U)發(fā)送過來的認證結(jié)果,則將事件統(tǒng)計數(shù)量清零,接著根據(jù)認證結(jié)果,判斷認證是否通過,通過即繼續(xù)正常流程,不通過則進入拒絕服務流程使系統(tǒng)無法正常運作;c、所述關鍵管理線程(B)在收到關鍵線程(A)的認證結(jié)果的同時,會將該結(jié)果轉(zhuǎn)發(fā)給關鍵功能線程;d、關鍵功能線程不斷處理各種事件并統(tǒng)計事件的數(shù)量,當數(shù)量超過預設值時,就認為芯片工作不正常,此時進入拒絕服務流程使系統(tǒng)無法正常運作;如果在事件統(tǒng)計數(shù)量超過預設值之前收到關鍵管理線程(B)發(fā)送過來的認證結(jié)果,則將事件統(tǒng)計數(shù)量清零繼續(xù)正常流程。全文摘要本發(fā)明公開了一種多線程嵌套的,兼具靈活性、安全性和高性能的對加密軟件的保護方法,該方法是采用加密芯片進行多線程的加密認證方法,所述多線程由負責加密認證過程的關鍵線程以及負責認證后處理過程的關鍵管理線程和關鍵功能線程組成;多線程間進行多重嵌套認證。采用本方法既可以很好的避免性能損失,又能夠大大增加軟件破解的難度。文檔編號G06F21/00GK101599112SQ20091003850公開日2009年12月9日申請日期2009年4月9日優(yōu)先權日2009年4月9日發(fā)明者鋼劉,譚文杰,立郭,陳春明申請人:廣州市芯德電子技術有限公司