專利名稱:保護外圍設備附加卡上軟件的方法及系統的制作方法
技術領域:
本發明涉及有關軟件保護方法的領域,特別涉及一種保護外圍設備附加卡上執行軟件的技術。
背景技術:
外圍設備附加卡上的控制芯片,一般而言,在主機上均有與之相關的驅動程序或應用程序來和操作系統配合工作,使外圍設備附加卡能發揮最佳的功能。除此之外,目前的芯片設計上已向多功能化和系統化的整合趨勢發展,為使應用能盡量滿足不同客戶的不同需求,許多外圍設備附加卡上的控制芯片都提供讀寫非易失性內存的接口,這樣驅動程序或應用程序便可指示控制芯片通過接口讀寫儲存在非易失性內存中的必要或客制化的特定數據,如此一來,外圍設備附加卡的制造商便可以自行定義和規劃,達到產品區別的目的。
然而,通過前述的非易失性內存接口讀寫數據時,傳統的作法并未經過適當的安全加密機制防止數據被竊取。一旦取得非易失性內存里的數據,辛勤研發的外圍設備附加卡和搭配的驅動程序或應用程序等軟、硬件智慧結晶將很容易遭非法抄襲與大量復制。因此,如何保護這些軟、硬件的智慧財產便成為重要的課題。
發明內容
本發明所要解決的技術問題是提供一種保護外圍設備附加卡軟件的機制,防止儲存在非易失性內存的機密數據和程序遭到竊取及抄襲。
本發明所要解決的另一技術問題是提供一種保護外圍設備附加卡上軟件的系統及其方法,防止外圍設備附加卡和搭配的程序等軟、硬件遭到非法大量復制。
為實現上述目的,本發明提供一種保護外圍設備附加卡軟件的方法,適用于安裝在主機外圍總線上的外圍設備附加卡,該方法步驟如下當來自外圍總線的第一重置信號解除時,微控制器從非易失性內存讀取加密過的特定信息;微控制器接著將此信息進行解密,以獲得解密的特定信息;在得到已解密的特定信息之后,微控制器發出第二重置信號;當微處理器收到第二重置信號時,即從微控制器讀取已解密的特定信息;然后,微處理器通過外圍總線傳送已解密的特定信息至主機,進行辨識和驗證。主機會對上述已解密的特定信息進行辨識,若驗證通過,主機開始執行微處理器專用程序,使外圍設備附加卡開始工作。主機所執行的程序通過外圍總線和微處理器,定期地向微控制器發出已加密的詢問信息;微控制器對此詢問信息進行解密,以獲得答復信息,然后通過微處理器和外圍總線,傳回此答復信息至主機;接著,主機所執行的程序驗證答復信息;若答復信息無法符合詢問詢問信息,則主機停止執行程序。
為實現上述目的,本發明還提供一種保護外圍設備附加卡軟件的系統,由一主機以及一外圍設備附加卡組成,其中,主機具有一外圍總線,而外圍設備附加卡則安裝在外圍總線上。外圍設備附加卡包括一非易失性內存、一微控制器和一微處理器。非易失性內存用來儲存加密過的特定信息。微控制器連接非易失性內存,用來在來自外圍總線的第一重置信號解除時,讀取加密過的特定信息并進行解密,獲得已解密的特定信息,再發出第二重置信號。微處理器連接在外圍總線和微控制器之間,用來在收到第二重置信號之后,從微控制器讀取已解密的特定信息,而且通過外圍總線傳送已解密的特定信息至主機進行辨識和驗證,而且,主機具有微處理器專用程序,當已解密的特定信息通過驗證,主機即執行程序,使外圍設備附加卡開始工作。
為使本發明的目的、構造特征及其功能有進一步的了解,配合附圖詳細說明如下
圖1是傳統的外圍設備附加卡通過PCI總線和主機連接的方框示意圖;圖2是本發明的外圍設備附加卡通過PCI總線和主機連接方框示意圖;以及圖3是本發明較佳實施例流程圖。
其中,附圖標記說明如下100、200~主機,102、202~微處理器專用程序,110、210~PCI總線,122、222~微處理器,124、224~非易失性內存,226~微控制器,RST#~第一重置信號,P_RST#~第二重置信號具體實施方式
參考圖1,傳統的外圍設備附加卡120由微處理器122和非易失性內存124所組成,微處理器122具有接口126連接非易失性內存124用以讀寫儲存其中的數據,而微處理器122可以用特殊應用集成電路(Application SpecificIntegrated Circuit,ASIC)替代,以微處理器為例,主機100由外圍零件互連(Peripheral Component Interconnect,PCI)總線110控制外圍設備附加卡120上的微處理器122并且與其交換數據。微處理器122專用的驅動程序或應用程序102在開機后加載主機100執行,并且,通過PCI總線110重置信號RST#,對微處理器122進行重置,激活外圍設備附加卡120工作。由于通過接口126讀寫非易失性內存124中的數據時,并未經過適當的安全加密機制防止數據被竊取,因此非易失性內存124的內容很容易被復制,或是以種種手段在接口126上截取非易失性內存124的數據。
本發明采用一內含加/解密機制的微控制器負責非易失性內存中的數據以及外圍設備附加卡其相關的軟件保護工作。微控制器與微處理器的差異,一般而言,微處理器可以提供較多的功能及較強的運算能力,線路設計上也復雜許多,因此,微處理器需要從外部的非易失性內存加載固化程序或從主機加載專用驅動程序才能工作;反之,微控制器大多僅需精簡的固化程序便能工作,而固化程序可以儲存在內嵌于微控制器的只讀存儲器,由于微控制器的設計會針對程序讀取進行保護,因此固化程序無法從外界非法得知,所以采用微控制器來負責加/解密工作,能夠獲得極佳的保密效果。
根據本發明,外圍設備附加卡220由微處理器222、非易失性內存224和微控制器226所組成,如圖2所示,微控制器226具有接口228連接非易失性內存224來讀寫儲存其中的數據,而微處理器222則通過接口230連接微控制器226并對其進行數據的存取,舉例而言,接口230和接口228可以是IC聯機總線(Inter-Integrated Circuit Bus,I2C)的雙線接口,這樣能夠簡化電路設計。主機200具有如PCI總線的外圍總線,一旦微處理器222專用的驅動程序或應用程序202被加載執行,主機200便可通過PCI總線210控制外圍設備附加卡220上的微處理器222并且與之交換數據。
為體現本發明的特征,接下來以圖2并配合圖3中較佳實施例的流程圖,進一步地說明本發明。由于PCI規格書中規定主機200必須在PCI總線210的重置信號RST#解除一段時間Trhfa(約0.5秒或1秒,視PCI總線的時鐘脈沖頻率而定)后,輪詢連接在PCI總線210上各系統的系統識別碼(Device ID)和銷售商識別碼(Vendor ID)等組態數據,因此本發明的外圍設備附加卡220需在RST#解除后的Trhfa之內得到存放在非易失性內存224中的系統和銷售商識別碼等組態數據。在激活(booting)階段,當來自PCI總線210的RST#信號解除時,微控制器226通過接口228從非易失性內存224讀取加密過的信息(步驟S301),此信息包括系統識別碼和銷售商識別碼等組態數據。然后,微控制器226將此加密過的信息進行解密獲得解密的信息,在得到已解密的組態數據后,微控制器發出重置信號P RST#(步驟S303)。當收到P RST#信號時,微處理器222經由接口230從微控制器226讀取已解密的組態數據(步驟S305)。如前所述,從RST#信號解除開始到微處理器222得到已解密的信息,全部的時間必須設計在Trhfa之內以滿足PCI規格。
接下來,微處理器222通過PCI總線210傳送已解密的組態數據至主機200,以進行辨識和驗證(步驟S307)。主機200會對已解密的系統和銷售商識別碼等組態數據進行識別(步驟S309),檢查加密過的信息是否經過適當的解密得到正確的組態數據(步驟S311)。如果無法通過驗證,有關外圍設備附加卡220的執行程序會被停止,使外圍設備附加卡220無法工作。由于存放在非易失性內存224中的數據是經過微控制器226加密,也只有通過微控制器226才能正確地加以解密,因此,非易失性內存224中的數據即使遭到竊取或復制,也難以了解其中的內容進行抄襲、篡改。
若驗證通過,主機200開始加載執行微處理器專用程序202,以使外圍設備附加卡220開始工作(步驟S321)。為進一步提供更嚴謹的保護措施,主機200所執行的程序202通過PCI總線210和微處理器222,定期向微控制器226發出已加密的詢問信息,其中,該詢問信息是隨機產生并以密鑰值K1進行加密(步驟S323)。微控制器226收到加密過的詢問信息后,以密鑰值K2進行解密獲得答復信息,然后再通過微處理器222和PCI總線210傳回此答復信息給主機200(步驟S325)。根據本發明,只要事先約定好,加密用的密鑰值K1可以和解密用的密鑰值K2不相同,當然,兩者也可采用同一密鑰值;再者,可利用諸如RSA或Deffie-Hellman等類的算法進行數據的加/解密,而加/解密的方法并非本發明的范疇,故此處不做詳細說明。
接下來,主機200所執行的程序202驗證傳回的答復信息(步驟S327)。若驗證通過,主機200繼續執行微處理器專屬程序202,并定期地重復上述步驟;若答復信息無法符合詢問信息,則主機200所執行的微處理器專用程序202停止工作(步驟S329)。以此方式,微處理器專用程序202能判斷微控制器226是否存在或異常,以確保外圍設備附加卡220不是非法仿制品,因此,可以防止外圍設備附加卡202和搭配的微處理器專用程序202等智慧結晶遭受非法抄襲與大量復制。
以上所述,僅為本發明較佳實施例,但并非用來限定本發明的實施范圍;因此本發明所要求保護的權利要求范圍應以權利要求書所申請保護的權利要求為準。
權利要求
1.一種保護外圍設備附加卡上軟件的方法,適用于安裝在一主機的一外圍總線上的一外圍設備附加卡,其特征在于該方法包括下列步驟當來自外圍總線的一第一重置信號解除時,由一微控制器從一非易失性內存讀取一加密過的特定信息;微控制器將加密過的特定信息進行解密,獲得一已解密的特定信息;微控制器得到已解密的特定信息后,即發出一第二重置信號;一微處理器收到第二重置信號時,從微控制器讀取已解密的特定信息;以及微處理器通過外圍總線傳送已解密的特定信息至主機,進行辨識和驗證。
2.如權利要求1所述保護外圍設備附加卡上軟件的方法,其特征在于,還包括下列步驟如果主機辨識已解密的特定信息,而且驗證通過,主機開始執行一微處理器的專用程序,使外圍設備附加卡開始工作;主機所執行的程序通過外圍總線和微處理器,定期地向微控制器發出一已加密的詢問信息;微控制器對已加密的詢問信息進行解密,以獲得一答復信息;微控制器通過微處理器和外圍總線傳回答復信息;主機所執行的程序驗證該答復信息;以及若答復信息無法符合詢問信息,則主機所執行的程序停止工作。
3.如權利要求2所述保護外圍設備附加卡上軟件的方法,其特征在于,主機所執行的程序用一第一密鑰值對詢問信息進行加密。
4.如權利要求3所述保護外圍設備附加卡上軟件的方法,其特征在于,微控制器用一第二密鑰值進行解密得到答復信息。
5.如權利要求4所述保護外圍設備附加卡上軟件的方法,其特征在于,第一密鑰值和第二密鑰值相同。
6.如權利要求4所述保護外圍設備附加卡上軟件的方法,其特征在于,第一密鑰值和第二密鑰值不相同但是經事先約定。
7.如權利要求1所述保護外圍設備附加卡上軟件的方法,其特征在于,已解密的特定信息包括一系統識別碼及一銷售商識別碼,而且系統識別碼和銷售商識別碼遵循外圍零件互連PCI規格的定義。
8.如權利要求7所述保護外圍設備附加卡上軟件的方法,其特征在于,第一重置信號是一外圍零件互連PCI重置信號,而且微處理器在外圍零件互連PCI重置信號解除后的一特定時間內,從微控制器讀取系統識別碼及銷售商識別碼。
9.如權利要求8所述保護外圍設備附加卡上軟件的方法,其特征在于,特定時間是外圍零件互連PCI規格所定義的一段的時間Trhfa。
10.如權利要求2所述保護外圍設備附加卡上軟件的方法,其特征在于,詢問信息是隨機產生。
11.一種保護外圍設備附加卡上軟件的系統,其特征在于包括一主機,具有一外圍總線;以及一外圍設備附加卡,連接在該外圍總線上,包括一非易失性內存,用來儲存一加密過的特定信息;一微控制器,連接非易失性內存,用來在來自該外圍總線的一第一重置信號解除時,讀取加密過的特定信息并進行解密而獲得一已解密的特定信息,再發出一第二重置信號;以及一微處理器,連接在外圍總線和微控制器之間,用來在收到第二重置信號之后,從微控制器讀取已解密的特定信息,而且通過外圍總線傳送已解密的特定信息至主機進行辨識和驗證。
12.如權利要求11所述保護外圍設備附加卡上軟件的系統,其特征在于,主機具有微處理器專用的一程序,當已解密的特定信息通過驗證,主機開始執行程序,使外圍設備附加卡開始工作。
13.如權利要求12所述保護外圍設備附加卡上軟件的系統,其特征在于,主機所執行的程序具有一第一密鑰值,而且定期地以第一密鑰值對隨機產生的一詢問信息進行加密,并通過外圍總線和微處理器,向微控制器發出已加密的詢問信息。
14.如權利要求13所述保護外圍設備附加卡上軟件的系統,其特征在于,微控制器具有一第二密鑰值,而且微控制器以第二密鑰值將已加密的詢問信息進行解密得到一答復信息,并通過微處理器和外圍總線,傳回答復信息。
15.如權利要求14所述保護外圍設備附加卡上軟件的系統,其特征在于,主機所執行的程序驗證答復信息,如果答復信息無法符合詢問信息,則主機停止執行程序。
16.如權利要求14所述保護外圍設備附加卡上軟件的系統,其特征在于,第一密鑰值和第二密鑰值相同。
17.如權利要求14所述保護外圍設備附加卡上軟件的系統,其特征在于,第一密鑰值和第二密鑰值不相同但是經事先約定。
18.如權利要求10所述保護外圍設備附加卡上軟件的系統,其特征在于,主機的外圍總線是遵循外圍零件互連PCI規格的總線。
19.如權利要求18所述保護外圍設備附加卡上軟件的系統,其特征在于,已解密的特定信息是包括一系統識別碼及一銷售商識別碼,而且該系統識別碼和銷售商識別碼均遵循外圍零件互連PCI規格的定義。
20.如權利要求19所述保護外圍設備附加卡上軟件的系統,其特征在于,第一重置信號是一外圍零件互連重置信號,而且微處理器在外圍零件互連重置信號解除后的一特定時間內,從微控制器讀取系統識別碼及銷售商識別碼,而特定時間是外圍零件互連PCI規格所定義的一段的時間Trhfa。
全文摘要
一種保護外圍設備附加卡上軟件的方法及系統,適用于安裝在主機外圍總線上的外圍設備附加卡。當來自外圍總線的第一重置信號解除時,微控制器從非易失性內存讀取加密過的特定信息;接著,將加密過的特定信息進行解密,獲得已解密的特定信息;之后,微控制器發出一第二重置信號;當微處理器收到第二重置信號時,即從微控制器讀取已解密的特定信息;最后,微處理器通過外圍總線傳送已解密的特定信息到主機進行辨識和驗證。若已解密的特定信息通過驗證,主機開始執行微處理器專用程序,使外圍設備附加卡開始工作。
文檔編號G06F9/44GK1517858SQ03101809
公開日2004年8月4日 申請日期2003年1月16日 優先權日2003年1月16日
發明者劉建興, 陳勇志, 沈信成 申請人:威達電股份有限公司