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