專利名稱:來自多個軟件設計者的多段軟件的同時保護的制作方法
技術領域:
本發(fā)明涉及保護軟件不受未授權使用。
背景技術:
軟件工業(yè)無疑是產品最容易被復制的領域。一般利用光學或磁裝置的信息存儲介質的存儲密度變得越來越高。此外,復制到這種介質上所需的時間也是快速的。而且處理強大的信息存儲裝置(軟件、數(shù)據(jù))的成本也完全實現(xiàn)了平民化,從而使得投放市場的新版本軟件非常快地就面臨非法復制的問題。而且在有些國家,大規(guī)模地利用CD-ROM非法復制是不受法律制裁的。如果這種情況蔓延下去,整個軟件業(yè)將崩潰。軟件設計者(也簡稱為設計者)開發(fā)了程序。隨后向客戶出售其軟件的使用許可。作為普遍的規(guī)則,軟件設計公司通過直接出售其軟件產品和/或出售許可獲取利潤。
軟件的非法使用是相對授權使用軟件來說的。因此授權的含義是軟件設計者準備將法律涉及的許可授予用戶,授權在商業(yè)協(xié)議條款下使用設計者的產品。
軟件銷售價格根據(jù)可能購買軟件的用戶數(shù)計算。因此軟件設計公司賺取的利潤相當成程度上取決于客戶購買后使用軟件的方式。用戶在一定程度上可以自由復制包含所購軟件介質的內容,軟件設計者的生計相當程度上取決于客戶誠實度。
因此對于網(wǎng)絡上所用的軟件,獲得的許可通常授權僅僅在一臺計算機工作站上使用給定的軟件段。為了能在多臺工作站上使用,必須根據(jù)使用軟件的工作站數(shù)量購買相應的許可數(shù)。對于個人計算機,該數(shù)量等于1,但是由于缺乏任何合適的方法或手段來防止在大于購買許可數(shù)的計算機工作站上使用軟件,所以無法保證設計者的客戶遵守購買許可合同中規(guī)定的條件。
軟件價格根據(jù)可能購買軟件的用戶數(shù)計算。因此軟件設計公司賺取的利潤相當程度上取決于客戶購買后使用軟件的方式。用戶在一定程度上可以自由地復制包含所購買軟件的介質內容,因此軟件設計者的生計相當程度上取決于客戶的誠實度。
因此對于網(wǎng)上使用的軟件,獲得的許可通常授權僅僅在一臺計算機工作站上使用給定的軟件段。為了在多臺工作站上使用,必須根據(jù)使用軟件的計算機工作站數(shù)量購買相應的許可數(shù)。對于個人計算機而言,數(shù)量等于1,但是由于缺乏合適的方法或手段來防止在超出購買許可數(shù)的工作站上使用軟件,所以無法保證設計者的客戶遵守出售許可的合同中規(guī)定的條件。
而且對于孤立計算機(個人計算機)或網(wǎng)絡上使用的軟件,如果軟件設計者不采取任何步驟,就無法防止盜版用戶在計算機介質上制作軟件拷貝并無限制地在計算機上安裝和使用軟件而不受法律制裁。由此形成了出售“盜版”軟件的地下市場。這種不受控制的市場可能對軟件業(yè)帶來巨大的損害。
尋求制約這種非法復制和/或使用軟件現(xiàn)象的設計者可以購買電子裝置使軟件得到一定程度上的保護。但是這種解決方案只能應用于某些軟件類型。而且這些設計者依賴于這種軟件保護裝置的供應商。由于與軟件價格相比保護方法價格昂貴,所以預算微薄的軟件設計者可能無力保護其數(shù)字產品。
而且這種電子裝置的使用需要軟件設計者在實際出售軟件之前購買該裝置。這種情況使得需要建立庫存,與不使用軟件保護手段的競爭者相比,設計者是不利的。
為了解決軟件使用中的上述各種問題,過去提出了各種方案。美國專利No.5,553,139提出了一種在網(wǎng)上或單臺工作站(個人計算機)上保護軟件的方案。但是它無法使一臺裝置保護來自多個不同軟件設計者的軟件。
借助與主機I/O端口直接相連的電子系統(tǒng),對于給定的計算機采用了其他方法。在美國專利No.5,343,524中提出了這樣一種系統(tǒng)。該發(fā)明依賴于基于無法復制的安全微控制器的電子電路的使用。在該發(fā)明中,通過利用密鑰驗證裝置的存在并與所述裝置交互作用使軟件得到了保護。但是按照該發(fā)明的裝置存在只能保護大量制作的軟件的缺點(由于費用),并且也只能保護來自同一設計者的軟件。彩虹公司發(fā)布了這樣一種類似的產品實例。
也有采用純軟件保護方法。這種保護經常包括要求用戶輸入訪問密碼。隨后通過非常復雜的計算來驗證密碼。但是它無法防止某些用戶找到所使用的計算類型并且因此這種方式的軟件保護是不可靠的。
更為強大的系統(tǒng)被用來實現(xiàn)協(xié)處理器的功能,能夠計算該方法保護軟件給定段的代碼部分。通常情況下,由于利用存儲在協(xié)處理器的ROM型存儲器內的密鑰(訪問受到保護)對軟件部分編碼,所以這種軟件無法在交付給用戶的狀態(tài)下直接使用。根據(jù)該原理獲得許可的用戶必須在安裝該軟件的特定主機上使用該方法保護的軟件。此外,它難以保護多個設計公司的多個軟件。因此在美國專利No.4,817,140中提出了具有類似特征的協(xié)處理器。假定用戶擁有密鑰來證明其購買了用戶許可,則可啟用該專利的協(xié)處理器。這種系統(tǒng)存在另一種缺點由于它專用于一個設計者的軟件保護,所以使協(xié)處理器的存在成為一個障礙,特別是當其他設計者決定提供類似的軟件保護形式時。在有些情況下,購買新裝置是不可能的。而且這種協(xié)處理器只有在與昂貴的協(xié)處理器相比軟件價格極高(昂貴)時才能作為投資的一部分被接受。而且用戶被束縛在安裝了該協(xié)處理器的計算機上。
大多數(shù)用于保護軟件的系統(tǒng)專用于特定的軟件類型。用戶對這種系統(tǒng)的印象較差,在一定程度上將其視為某些類型的電子警察窺探者而不是保護者。而且這種系統(tǒng)將這種系統(tǒng)保護的軟件的使用在一定程度上局限于安裝軟件的主機上。而且保護軟件的寫入非常緊密地依賴于保護裝置的結構,它可能使開發(fā)軟件復雜。而且借助“道爾芯片”,用戶在軟件使用中被束縛于保護軟件的裝置。因此例如,如果丟失了道爾芯片,則通常意味著喪失了使用與道爾芯片相連的軟件的權利。而且軟件保護系統(tǒng)未考慮到附屬于電子保護系統(tǒng)上的一段軟件可能遭偷竊。在被盜賊偷竊并且非法使用的情況下,沒有辦法阻止失竊軟件被使用。而且用戶需要購買來獲得新的許可。
而且有些保護軟件的特征在于有一定的使用期限。在美國專利No.4,868,736中提出了這樣一種系統(tǒng)。該專利的缺點是只能提供特殊的功能。
發(fā)明內容
本發(fā)明能夠彌補所有上述這些缺點。
本發(fā)明涉及保護軟件以避免不符合軟件設計者設定的條件。它涉及用于保護多個獨立于具體計算機系統(tǒng)和具體設計者的軟件段的單個裝置。它的基礎是利用兩種在未授權下不能互相復制的電子設備。本發(fā)明裝置的這種復制保護由集成在裝置內的認證方法提供。
第一裝置是用于讀取第二裝置的電子閱讀器。它稱為許可卡閱讀器的LCL。讀取器提供了本發(fā)明幾乎所有的軟件保護功能。
第二裝置是稱為CL(許可卡)的電子卡。每個試圖執(zhí)行本發(fā)明保護軟件的用戶必須擁有存儲了使用本發(fā)明保護軟件授權的卡CL。
因此本發(fā)明將軟件保護劃分為三個層次。首先,本發(fā)明涉及的方法能夠使被保護的軟件(記錄介質)從實現(xiàn)軟件保護的介質(讀取器LCL)分離。其次,閱讀器LCL獨立于本發(fā)明所保護軟件發(fā)布。因此同一閱讀器LCL可以用來保護獨立于設計者和軟件件數(shù)的多件軟件。本發(fā)明保護的軟件只有在用戶擁有可用的卡CL時才可以使用,該卡獨立于閱讀器LCL發(fā)布。
在本發(fā)明中,與智能卡相比,卡CL是體積小的便攜式裝置。它擁有可移去的大容量記錄裝置。它使得數(shù)據(jù)的存儲方式是使其不被未經授權就讀取和/或修改。它基本上被用作訪問裝置,使本發(fā)明保護的軟件可以使用。軟件段可以使用的條件由軟件設計者固定。用戶只有在用戶擁有購買時用戶卡CL上提供的授權的條件下才能執(zhí)行該段軟件。卡CL用來存儲大量授權的可移去記錄介質以使用被保護的軟件。因此卡CL使得當用戶被授權的軟件可以使用(即假定保護軟件本身在計算機上)時用戶可以執(zhí)行授權來使用軟件并且在任何計算機上使用相應的軟件。
就這種卡CL的使用而言,本發(fā)明還涉及避免卡CL遭竊的損失的裝置。當丟失或失竊時,本發(fā)明裝置的管理組織可以使卡失效。大部分使用這種軟件的許可可以在丟失后補救。因此用戶在卡CL丟失時不會有喪失使用軟件段權利的危險,而在現(xiàn)有技術的軟件保護裝置下可能會出現(xiàn)危險。
本發(fā)明涉及獨立于計算機系統(tǒng)的保護軟件的方法。當軟件在網(wǎng)絡和/或個人計算機上使用時本發(fā)明使軟件可以得到保護。閱讀器LCL相對各種加入內部電子系統(tǒng)的外圍設備具有擁有巨大的模塊容量。因此非常容易將閱讀器LCL與任何計算機設備相連。因此按照本發(fā)明的軟件保護可以在找到的各種系統(tǒng)的大量計算機系統(tǒng)中借助同一類型的閱讀器LCL實現(xiàn)。這種閱讀器LCL的操作獨立于計算機系統(tǒng)。因此閱讀器LCL提供了獨立于執(zhí)行軟件的計算機系統(tǒng)的軟件保護。
本發(fā)明使保護軟件的開發(fā)獨立于按照本發(fā)明的裝置的技術特征。本發(fā)明保護軟件的開發(fā)獨立于LCL的內部操作。通過使構成軟件的函數(shù)部分被LCL內部資源執(zhí)行可以實現(xiàn)本發(fā)明保護的軟件段。這些函數(shù)的編寫方式是完全透明的,在一定程度上軟件設計者不必考慮LCL的電子結構。這些函數(shù)的合適操作可以從閱讀器LCL外部測試,從而對于設計者來說,涉及保護軟件的工作局限于編寫這些函數(shù)。這些函數(shù)與軟件標準段大小相比基本上是小型計算函數(shù)并且執(zhí)行得非常快。因此在與同一閱讀器LCL相連的網(wǎng)絡內可以使用多個不同的軟件段。而且本發(fā)明保護的多個軟件段由此可以在只有一個閱讀器LCL的個人計算機上使用。與網(wǎng)絡環(huán)境下相比,使用個人計算機下閱讀器LCL的操作僅僅是兩種情況下通信外設層面的不同。
在本發(fā)明中,閱讀器LCL通過測量被執(zhí)行所有軟件段的使用來保護軟件。本發(fā)明的閱讀器LCL能夠確定計算機上和/或相連的整個網(wǎng)絡上的許可數(shù)??梢灾獣越o定用戶使用給定軟件段的期間。在本發(fā)明中,可以知曉與給定軟件段和相關時間有關的所有使用信息。這些專門針對閱讀器LCL的測量裝置使得閱讀器LCL能夠對本發(fā)明保護的軟件使用進行仲裁。這種仲裁作為使用條件函數(shù)實現(xiàn),可應用于本發(fā)明保護的每段程序。這些條件由軟件設計者確定。
因此,在本發(fā)明中,卡CL用來存儲軟件使用授權和有關用戶使用本發(fā)明保護軟件的用戶基本信息。閱讀器LCL用來確認相對用戶使用軟件權利的用戶基本信息是否與軟件設計者確定的使用條件符合。在本發(fā)明的實施中,這些條件可以是時間限制條件、將可開放的操作對話數(shù)限制為卡CL持有人擁有的用戶許可數(shù)的條件。
因此單個閱讀器LCL可以對一臺或多臺計算機上本發(fā)明保護的一個或多個不同軟件段的使用進行仲裁。仲裁規(guī)則可以專門針對軟件段的每個版本,從而使單個裝置包含施加判據(jù)(他們針對每段包含軟件的使用)下的多個軟件段。
本發(fā)明可以獨立于保護裝置發(fā)布保護軟件,所以軟件開發(fā)人員無需建立用于保護裝置的庫存。因此按照本發(fā)明的軟件保護無論對于大型軟件還是小型軟件都是有益的利用獨立于設計者的單個裝置保護多個軟件段可以降低利用本發(fā)明軟件保護系統(tǒng)的成本。此外,本發(fā)明為保護軟件的管理提供了巨大的靈活性。授權使用給定軟件段的規(guī)模可以集中化或分散化。
而且在本發(fā)明中,保護的軟件可以各種方式創(chuàng)建。創(chuàng)建本發(fā)明保護的軟件段的授權可以集中化或分散化(在開發(fā)演示軟件或限制使用軟件時的情況)。
而且本發(fā)明的裝置可以與遠端系統(tǒng)通信。這種裝置的管理由遠端系統(tǒng)完成,在本發(fā)明的一個實施例中,遠端系統(tǒng)為稱為aSVR的服務器。該服務器設定本發(fā)明裝置的使用條件。它以普通的方式對本發(fā)明裝置的使用進行仲裁。
而且使用包含在卡CL中的軟件的授權可以移入閱讀器LCL或者另一張卡CL。當授權移入閱讀器LCL時,無需卡CL就可以提供對保護軟件的保護。當移入另一張卡CL時,可以由零售商發(fā)售軟件使用許可。本發(fā)明可以使軟件授權的規(guī)模集中化或分散化。
而且在本發(fā)明中,卡閱讀器LCL具有一個或多個能快速而方便地加入外設的裝置。在具體實施例中,閱讀器LCL包含無線接收機以從所述服務器aSVR管理的發(fā)射機以可選的安全方式接收信息。接收機基本上用于購買軟件使用授權的離線操作和更新操作。它還可以管理本發(fā)明裝置使用下的安全性。
本發(fā)明的裝置和方法可以在計算機連接下或者借助人工干預的系統(tǒng)而發(fā)生購買行為。購買因此可以在線或離線完成。這些購買包括獲取使用本發(fā)明保護軟件的授權。本發(fā)明涉及特別用于使用戶授權可被接收的數(shù)字無線接收機。
為了保護獨立于設計者的多個軟件段,本發(fā)明涉及利用閱讀器LCL內的安全微控制器,即防止未授權讀取和/或修改內部存儲器和防止在其知曉不可靠程序時可能遇到的計算機病毒攻擊的微控制器,作為軟件保護裝置的閱讀器的使用與可能的商業(yè)協(xié)議無關。因此這種性質可以完全免費地使用閱讀器LCL和卡CL。
為了使用戶可以攜帶保護軟件使用的授權,卡CL是小型化的。它基于微控制器,能夠訪問定義了使用給定軟件段的權利的信息。它還可以存儲非常多的使用本發(fā)明保護軟件的授權。信息存儲在大容量存儲介質內。它受到保護,防止未授權修改或讀取。此外,微處理器的內部系統(tǒng)也受到保護,防止物理或邏輯檢查。
而且本發(fā)明提供了能夠開發(fā)的軟件保護系統(tǒng),在一定程度內它可以更新包含在上述微控制器內的所有計算機系統(tǒng)??紤]到提供數(shù)據(jù)存儲和程序安全執(zhí)行的能力,并且還考慮到更新本發(fā)明裝置的計算機系統(tǒng)的可能性,本發(fā)明可以使軟件保護裝置用于其他應用領域。
附圖簡述附圖闡述了本發(fā)明
圖1示出了本發(fā)明中所用的各種連接并且反映本發(fā)明的普通操作。它可以理解本發(fā)明裝置使用的各種含義。
圖2示出了能夠使給定LCL與遠端系統(tǒng)相連的各種軟件層。
圖3為裝置LCL中所用微控制器結構的框圖。
圖4示出了同一網(wǎng)絡上兩個競爭的LCL之間可能的關聯(lián),從而使他們能夠共享與本發(fā)明保護軟件相關的操作。
圖5為構成電子卡CL的各種單元的框圖和特別是與卡CL相關的微控制器結構。
圖6為卡CL載體的視圖。
圖7為帶有小型快閃卡的載體CL從其支持中提取的透視圖。
圖8示出了LCL與CL之間陰陽連接器組。
圖9示出了本發(fā)明的裝置具有用戶相對日歷的使用期限的情況。
圖10示出了認證過程中用于防止盜版裝置在驗證裝置(閱讀器LCL和卡CL)下操作的步驟。
圖11示出了購買本發(fā)明保護軟件的使用許可的操作步驟。
圖12為保護軟件的微控制器100操作系統(tǒng)所用的簡化邏輯樹。
實施發(fā)明的較佳方式參見圖1,在本發(fā)明的一個實施例中,利用電子閱讀器的整個系統(tǒng)可以借助服務器aSVR集中管理,服務器包括與本發(fā)明裝置相關的數(shù)據(jù)庫12???0內的單元組由給定組織管理。該組織發(fā)布與本發(fā)明有關的裝置。服務器aSVR可與利用閱讀器LCL的遠端計算機系統(tǒng)通信。在本發(fā)明的各種實施例中,閱讀器LCL可以包括與網(wǎng)絡40或個人計算機(框30中所示)I/O端口直接相連的裝置,或者可以包含數(shù)字無線接收機22(框20中所示)。
在本發(fā)明中,圖2示出了各種層,LCL通過各層到達遠端系統(tǒng)。遠端系統(tǒng)與LCL之間的通信由運行在計算機50上的兩個程序管理。作為一種使用功能,計算機與閱讀器LCL之間的連接54可以是框40內所示的網(wǎng)絡連接或者可以是如框30和20內所示經計算機50的I/O端口直接相連。出于速度考慮,用于實現(xiàn)本發(fā)明的端口是通用串行總線(USB)接口,并且假定計算機具有這種通信端口。本發(fā)明的描述特指框40,它利用TCP/IP協(xié)議下的以太網(wǎng)。因此在該背景下,閱讀器LCL具有合適的網(wǎng)絡外設。程序PGM52可與給定閱讀器LCL交互通信。這種通信借助驅動器程序DRV51進行。參見圖2,驅動器51完成閱讀器LCL與連接閱讀器的計算機50之間所有的通信功能。以下描述專門針對本發(fā)明裝置控制的兩個程序的各種功能。程序PGM向閱讀器LCL提供了與遠距離系統(tǒng)通信的能力。為了實現(xiàn)這種通信,PGM利用主機50的通信資源53。程序DRV在閱讀器LCL與程序PGM之間提供本地通信。在框30中,這可以是提供與因特網(wǎng)連接的調制解調器31,服務器aSVR也與因特網(wǎng)連接。在本發(fā)明的一個實施例中,在框40中,通信資源53是與局域網(wǎng)資源有關的計算機50的資源并且經因特網(wǎng)訪問遠距離系統(tǒng)。
閱讀器LCL的使用符合切換上的識別條件和在閱讀器LCL支持下卡CL的正確連接的條件。以下描述這兩個條件。
框20對應閱讀器LCL與不包括與遠端系統(tǒng)通信的裝置的計算機連接的情況。以下描述該操作。
在本發(fā)明中,通過由所述電子閱讀器LCL完成給定軟件段的小部分功能可以保護軟件。所述電子卡CL具有使用軟件的授權。在給定的存儲容量下,卡CL可以存儲大量的用戶授權。因此本發(fā)明可以使單個電子裝置同時保護獨立于設計者的多段程序。
在本發(fā)明的實施例中,閱讀器LCL和卡CL與各自的唯一序列號相關。服務器aSVR利用數(shù)據(jù)庫12管理使閱讀器LCL和卡CL能夠操作從而保護軟件的信息,數(shù)據(jù)庫必須得到保護,防止未經授權對安裝了保護軟件系統(tǒng)的訪問。管理aSVR的組織分別賦予給定的卡CL和給定閱讀器LCL以序列號ID.c和ID.d以及秘密編碼的密鑰kT.c和kT.d。ID.c和ID.d是唯一的。這兩個數(shù)字和兩個密鑰存儲在包含在CL和LCL電子系統(tǒng)內的非易失存儲器中。以下給出進一步的細節(jié)。對(ID.c,kT.c)和(ID.d,kT.d)也存儲在數(shù)據(jù)庫12內,它出于安全考慮只能經aSVR訪問。密鑰kT.c和kT.d除了放在裝置LCL和CL文中外只讓aSVR知道。
而且在本發(fā)明的實施例中,數(shù)字ID.c和ID.d是公開的但不能修改。這意味著他們被存儲在集成入本發(fā)明每個裝置的電子系統(tǒng)的保護存儲器內并且與用戶的通信是明文的。在本發(fā)明的這個實施方案中,他們被標記在CL的載體和LCL的外殼上。此外本發(fā)明與用于閱讀器LCL的外殼形式無關。
在本發(fā)明的這個實現(xiàn)方案中,采用加密編碼密鑰kT.d和kT.c的加密方法來自IBM開發(fā)的數(shù)據(jù)加密標準(DES)加密系統(tǒng)。這兩個密鑰長度為128比特,足以保護不被破譯。在特定實施例中,可以采用其他類型的加密和其他長度的密鑰。
在本發(fā)明中,借助計算機程序PGM對裝置LCL和CL進行某種程度的參數(shù)化并且適應每種類型的計算機和計算機操作系統(tǒng)。PGM使用戶可以啟動與要求用戶干預的操作相關的程序。以下描述這些程序。PGM由所述管理aSVR的組織發(fā)布。在主機上安裝PGM之后,完成定位閱讀器LCL的操作。如果閱讀器LCL直接與主機通信端口相連,則如圖2所示,安裝經所述端口的通信用軟件驅動器DRV從而使計算機程序可以向LCL發(fā)送數(shù)據(jù)并且從LCL接收數(shù)據(jù)而不考慮計算機與相連的閱讀器LCL之間通信的技術特征。驅動器DRV使閱讀器LCL的使用是透明的。
當保護軟件在網(wǎng)絡上使用時(如框40),在網(wǎng)絡上每臺計算機內安裝合適的驅動器程序DRV從而使計算機與連接局域網(wǎng)的LCL通信。驅動器DRV使LCL能夠為網(wǎng)絡上的每臺計算機透明使用,計算機可以具有多個不同的操作系統(tǒng)。
在以太網(wǎng)上安裝之后,閱讀器LCL接收與TCP/IP協(xié)議有關的地址IP,從而使驅動器能夠安裝在所定位的網(wǎng)絡計算機上。
此外,每臺驅動器DRV使得每臺使用本發(fā)明保護軟件的主機與閱讀器LCL通信。本發(fā)明的這個實現(xiàn)方案還能夠使多個程序PGM建立與連接網(wǎng)絡的給定閱讀器LCL的通信。當在網(wǎng)絡40中使用時,如圖4所示(這里示出了利用兩個閱讀器LCL的計算機分布是已知的),閱讀器LCL(如果采用廣義的含義)可以其他閱讀器LCL共享保護軟件的功能。計算機之間網(wǎng)絡上的閱讀器LCL的分布在本發(fā)明的這種實現(xiàn)中由網(wǎng)絡管理員確定。管理員在程序DRV安裝在每臺網(wǎng)絡計算機上時為網(wǎng)絡上的閱讀器LCL分配網(wǎng)絡計算機。對DRV給出了所使用閱讀器LCL的地址IP。
在PGM安裝在主機上之后,計算機用戶可以在連接給定卡CL的給定閱讀器LCL上完成如下的操作在線購買本發(fā)明保護的軟件的使用許可;將一定數(shù)量的軟件用戶許可從一張卡CL轉送到另一張卡CL;恢復因丟失卡CL而丟失許可有關的操作;以及更新包含在閱讀器LCL或卡CL內的程序。
因此在本發(fā)明的實現(xiàn)方案中,考慮了軟件段LD。但是以下描述也可以應用至其他軟件。其設計者(制造商)按照本發(fā)明通過將構成軟件的函數(shù)分為兩個部分進行保護,防止非法使用。第一部分涉及主機執(zhí)行的程序。第二部分涉及LCL計算資源要完成的函數(shù)。這些函數(shù)必須是可以快速執(zhí)行的函數(shù)。其大小為100Kb量級。
函數(shù)列表{F0,F(xiàn)1…,F(xiàn)i,…,F(xiàn)n)從所述軟件LD的第二部分提取。這些函數(shù)對于軟件LD運行是需要的。當提取它們時,需要滿足基本規(guī)則這些函數(shù)必須對執(zhí)行LD的計算機資源特性無要求。該條件相當容易滿足。例如,所述函數(shù)列表可以僅僅由單純的計算函數(shù)組成。
在本發(fā)明的這個實現(xiàn)中,這些函數(shù)可以編寫并且獨立于閱讀器LCL測試其正確的運行。用于實現(xiàn)本發(fā)明的裝置包括虛擬Java機。因此這些函數(shù)用Java編寫。這些函數(shù)因此以通用Java語言的“字節(jié)碼”編譯并且存儲在文件LF中。
此外,在本發(fā)明的這個實現(xiàn)方案中,軟件LD的保護通過在包含LF的計算機上執(zhí)行程序PGM開始。在本發(fā)明的這個實現(xiàn)方案中,PGM隨后從LD設計者處請求LD所運行的操作系統(tǒng)(WINDOWS NT、DOS、UNIX、…)和計算機類型(MACINTOSH、SPARC、PC…)。根據(jù)這些副本,PGM運行用于將可用閱讀器LCL與服務器aSVR相連的程序。LCL與aSVR之間的通信如圖2所示。閱讀器LCL的序列號開始時給予服務器aSVR。在創(chuàng)建本發(fā)明保護的軟件的程序中,LCL采用安全的通信請求aSVR提供一保護軟件LD相關的序列號S#和編碼密鑰kX.S#。
在本發(fā)明的這個實現(xiàn)方案中,S#在128個比特上定義,而密鑰kX.S#定義為利用128個比特長的DES加密。
在本發(fā)明的這個實現(xiàn)方案中,為了完成與aSVR的所述安全通信,LCL通過以非編碼方式向aSVR發(fā)送自己的編號ID.d開始。通過與相應密鑰的關聯(lián),aSVR在其數(shù)據(jù)庫12中尋找與ID.d相關的密鑰kT.d。
因此aSVR以利用密鑰kT.d編碼的形式向LCL返回S#和kX.S#。閱讀器LCL利用包含在內部存儲器111內的密鑰kT.d和DES加密算法接收S#和kX.S#的明文形式以完成譯碼。
在本發(fā)明中,由于在使用之后從LCL的安全DRAM存儲器109刪除了kX.S#,所以只有aSVR知道密鑰kX.S#。而且S#與PGM通信,PGM將其寫入包含軟件使用限制條件的二進制文件。在本發(fā)明的這個實現(xiàn)方案中,文件可以具有如下的格式相關軟件的S#(128個比特)、永久許可(8個比特)、使用期間(24個比特)、使用到期(16個比特)、執(zhí)行數(shù)目(32個比特)。該文件具有26個字節(jié)的大小。此后,{F0,F(xiàn)1…,F(xiàn)i,…,F(xiàn)n}經受加密操作。函數(shù)Fo獨立處理。在本發(fā)明的這個實現(xiàn)方案中,這是“初始化”過程,首先用來計數(shù)網(wǎng)絡框40中網(wǎng)絡上所用的許可數(shù)目,并且隨后測量軟件LD關于時間的使用特性。這個函數(shù)在用戶執(zhí)行軟件LD時執(zhí)行,并且是分別執(zhí)行。F0特別是當打開軟件LD執(zhí)行對話時第一個被LCL執(zhí)行的函數(shù)。
F0利用不同于kX.S#的密鑰編碼。為此,軟件PGM產生同樣類型的密鑰KEL.S#用于DES加密。密鑰KEL.S#僅僅為LD設計者知道。在本發(fā)明的這個實現(xiàn)方案中,KEL.S#是128個比特的密鑰。設計者負責保證該密鑰KEL.S#的安全性。設計者使該編碼的函數(shù)與其他利用密鑰KEL.S#編碼的信息關聯(lián)。這是一個包含軟件LD使用限制條件的文件。在本發(fā)明的這個實現(xiàn)方案中該編碼信息隨后構成文件eF0。
此外,在本發(fā)明的這個實現(xiàn)方案中,利用密鑰KX.S#編碼其他函數(shù)。對于該步驟,PGM經DRV向LCL發(fā)送F1、Fi,…,F(xiàn)n。LCL的計算資源隨后利用密鑰kX.S#對這些函數(shù)連續(xù)編碼。在編碼操作結束處,LCL返回分別與{F0,F(xiàn)1…,F(xiàn)i,…,F(xiàn)n}對應的{eF0,eF1…,eFi,…,eFn}。
在本發(fā)明的這個實現(xiàn)方案中,PGM隨后進行到軟件匯編。對于給定的操作系統(tǒng),PGM創(chuàng)建在給定用戶計算機上執(zhí)行軟件LD期間執(zhí)行函數(shù)的庫文件。庫的各種函數(shù)使得{eF0,eF1…,eFi,…,eFn}的元素可以與在使用LD時的閱讀器LCL中執(zhí)行相應函數(shù)所需的參數(shù)一起被加載。eF0,eF1…,eFi,…,eFn分別由PGM創(chuàng)建的函數(shù)FF0,F(xiàn)F1…,F(xiàn)Fi,…,F(xiàn)Fn加載。這些函數(shù)作為操作系統(tǒng)類型的函數(shù)和執(zhí)行LD的計算機類型的函數(shù)被創(chuàng)建。PGM由此將{FF0,F(xiàn)F1…,F(xiàn)Fi,…,F(xiàn)Fn}和{eF0,eF1…,eFi,…,eFn}與這種方式被保護的軟件LD的其余部分組合并標以S#。整個集合隨后放入記錄介質,例如CD-ROM中。由于軟件無法在這種狀態(tài)下使用,所以軟件由此得到保護并且可以自由分發(fā)。因此記錄介質可以完全免費的方式分發(fā)。
因此本發(fā)明的軟件保護基于利用閱讀器LCL的計算資源。
在本發(fā)明中,閱讀器LCL是圍繞微控制器100建立的電子閱讀器,它在物理和邏輯上都是安全的從而保護軟件,防止通過完成未授權的電子測試盜版的企圖。給定的事實是,該微控制器100將完成未知來源的程序,本發(fā)明還涉及防止利用計算機病毒對微控制器100的計算機攻擊。這種預防防止了病毒讀取與閱讀器LCL函數(shù)相關的機密信息。因此本發(fā)明可以確保信息的存儲和初始加載到微控制器100內的程序的外部程序的執(zhí)行。
在本發(fā)明的這個實現(xiàn)方案中,為微控制器保留的結構圍繞根據(jù)用于主從結構的一雙處理器組的系統(tǒng)構造。參見圖3,微控制器100在一塊硅芯片上包含兩個主要部分130和120。采用應用程序專用集成電路(ASIC)方法制造這樣的硅芯片。部分130具有作為主處理器的處理器CPU1。它經內部總線101連接快閃存儲器模塊111、DRAM存儲器模塊109、隨機數(shù)發(fā)生器112、RS232 I/O端口151、USB端口152、智能卡控制器153、PCMCIA控制器154、小鍵盤和LCD屏幕控制器155、用于控制位于部分120內的從處理器CPU2的控制器113、接口106、外部總線接口105、內部可編程實時時鐘104和內部微熔絲系統(tǒng)102,它使內部總線101延伸到微控制器100的外部。微控制器100的部分120包括監(jiān)視狗108。CPU2經內部總線114連接DRAM存儲器模塊110、DMA控制器107和接口106。這兩個電子系統(tǒng)(控制器113和接口106)僅僅由主處理器CPU1控制。因此這種結構能夠在不損害微控制器100內包含信息完整性的情況下執(zhí)行未知來源的程序。
在特定實施例中,微控制器100無需在同一硅片上包括所有或部分下列單元RS232 I/O端口151、USB端口152、智能卡控制器153、PCMCIA控制器154和/或小鍵盤和LCD控制器155。在特定實施例(未畫出)中并且為了加快數(shù)據(jù)處理速度,微控制器100可以在同一芯片上包括適于DES加密技術的加密協(xié)處理器。加密協(xié)處理器自然也可以集成在與內部總線101連接的部分130內。
在本發(fā)明中,內部實時時鐘104由微控制器100外部的電池103供電。它是自動操作。該時鐘集成在所述硅片上從而防止通過向CPU1傳送假的時間和日期進行電子測試的企圖。時鐘消耗的電力較小,電池可以提供所有需要的電力以使所述時鐘在作為閱讀器LCL中央部件的微控制器100運行期間工作。更新時鐘104的程序也可以由服務器aSVR實現(xiàn)。時鐘104使得可以對保護軟件使用期間的時間作測量并根據(jù)日期和時間完成操作。
內部總線101經微熔絲系統(tǒng)102擴展到微控制器100的外部。在變例中(未畫出),省略了微熔絲系統(tǒng)并且采用內部OTPEPROM存儲器。該變例由于利用了微熔絲系統(tǒng)102,所以在同一水平上提供了安全性。
微熔絲系統(tǒng)102可以在一次操作中提供可編程的微控制器。將閱讀器LCL放入操作(密鑰、序列號、識別符、日期、時間)所需的數(shù)據(jù)和微控制器100的操作系統(tǒng)(包括使閱讀器LCL直接和/或間接完成所有與本發(fā)明有關的函數(shù)的程序)由工廠在非易失存儲器區(qū)域內(快閃存儲器111)編程。操作系統(tǒng)在DRAM存儲器109內執(zhí)行。
本發(fā)明的這個實現(xiàn)方案利用快閃存儲器作為微控制器100的永久存儲介質。選擇這種快閃存儲器可以使工廠內初始編程的操作系統(tǒng)非常容易地更新。
在本發(fā)明的這個實施例中,時間和日期是給定的,除非作相反說明,都是相對格林威治平均時(GMT)。因此當在工廠內編程微控制器100時設定時間時,采用GMT作為每個閱讀器LCL的微控制器100的內部時鐘104。
假定所有的控制器和接口都完全在主處理器CPU1的控制下(給定微控制器100的結構),編程之后,由于不再需要對微控制器100內部作任何直接訪問,所以微熔絲系統(tǒng)被破壞從而防止微控制器100被進一步編程。以這種方式編程的微控制器100的操作系統(tǒng)在每次閱讀器LCL啟動時由主處理器CPU1自動加載。
因此存儲在微控制器100內的所有信息是安全的,防止了微控制器100外部電子測試的企圖。在給定的硅片、尺寸和封裝等物理性質下,這在現(xiàn)有技術下提供了非常好的物理和邏輯保護,防止未授權進入微控制器100的內部電路。在特定實施例中,毫無疑問可以在微控制器100周圍加入其他保護技術。一種可能的技術利用外部電學裝置來保護集成電路并且在1990年的美國專利No.5,11,457(IBM)中有描述。
從電子系統(tǒng)120用來執(zhí)行來自微控制器外部的程序,即不構成在編程微控制器100時在快閃存儲器111內加載的操作系統(tǒng)部分。它用來執(zhí)行受到保護的程序,防止可能的計算機病毒攻擊。由于物理保護的特征是將單個硅片邏輯劃分為兩個部分120和130,部分120從屬于其他部分130,所以抵御這種攻擊的安全性是完全的。
在本發(fā)明的這個實現(xiàn)方案中,DRAM存儲器區(qū)109嚴格地保留為執(zhí)行編程微控制器100時在工廠內加載的微控制器100的操作系統(tǒng)。它還用作緩沖存儲器,將來自微控制器外部的程序和/或數(shù)據(jù)經僅僅受主控處理器CPU1控制的接口106轉送至DRAM存儲器110。來自外部的程序由從處理器CPU2(它經控制器113由主處理器CPU1控制)從DRAM存儲器110開始執(zhí)行。
在本發(fā)明的這個實現(xiàn)中,為了在不同類型的計算機和不同的操作系統(tǒng)下使用閱讀器LCL,并且給定寫入上述函數(shù)F0,CPU2為來自太陽微電子系統(tǒng)(SunMicrosqstems)公司的Java(PicoJava)處理器。這種特性使得函數(shù){F0,F(xiàn)1…,F(xiàn)i,…,F(xiàn)n}的生成獨立于執(zhí)行本發(fā)明保護軟件的計算機的計算資源和LCL的內部資源。此外,本發(fā)明保護軟件的設計者可以模擬虛擬Java機的程序測試獨立于閱讀器LCL的函數(shù){F0,F(xiàn)1…,F(xiàn)i,…,F(xiàn)n}的操作。
在本發(fā)明的這個實現(xiàn)方案中,CPU1是80386SX型處理器。它可以經內部總線101直接使用非常大量的內部和/或外部存儲器。其計算容量可以設想有大容量來處理多任務中的信息。
在本發(fā)明特定實施例中,微控制器無需使用Java處理器,但是可以采用80386SX型處理器,其操作系統(tǒng)構成來自太陽微電子系統(tǒng)的虛擬Java機,CPU1將新執(zhí)行的程序加載到DRAM110內從而避免計算機病毒可能的攻擊。
此外,在本發(fā)明的這個實現(xiàn)方案中,所有可能包含在DRAM存儲器110內的信息在CPU2執(zhí)行新加載程序之前被CPU1刪除。CPU1經CPU2的控制器113使CPU2暫停,并且經接口106刪除DRAM存儲器110的內容,例如通過暫時使構成DRAM存儲器模塊110的電路失去活性。此后,CPU1利用DMA控制器107將執(zhí)行參數(shù)和待執(zhí)行的新程序直接加載入DRAM110。這種直接加載可以避免CPU2而使CPU1完全控制DRAM110。因此在程序加載之后,CPU1將其經控制CPU2的控制器113傳送至CPU2。CPU2隨后執(zhí)行新程序。因此給定所有上述措施下,如果程序是以其中一種類型的函數(shù)Fi精心編寫的計算機病毒,則它仍然無法損壞微控制器100的操作,也不能將任何未刪除的有關DRAM存儲器110內CPU2先前完成的函數(shù)的數(shù)據(jù)復制到外部。而且CPU1保持對存取包含在部分130內數(shù)據(jù)的控制。對每個由從處理器CPU2執(zhí)行的程序重復該將程序和/或數(shù)據(jù)加載入DRAM110的過程。
在本發(fā)明的這個實現(xiàn)方案中,圖3所示結構可以防止不屬于微控制器100操作系統(tǒng)的程序讀取和/或修改集成在微控制器100內系統(tǒng)130的內部存儲器的內容。它還可以防止這類程序控制接口和/或微控制器100的控制器,并且用來防止盜版者以物理和邏輯方式讀取集成在微控制器100內系統(tǒng)130的安全存儲器。
而且在本發(fā)明中,外部總線接口105使微控制器100可以控制連接外部總線14的外設。這種總線可以向LCL增加記錄外設,例如快閃磁盤型記錄介質(用作標準磁盤的快閃存儲器)或者網(wǎng)絡通信外設。
微控制器100的結構提供了很強的操作模塊化。在本發(fā)明的這個實現(xiàn)方案中,以太網(wǎng)存儲外設與利用TCP/IP協(xié)議通信的總線114相連。根據(jù)閱讀器LCL與給定計算機之間所用通信類型,可以將外設連接至適于這種通信的所述總線。因此無線接收機外設22可以加入從而使閱讀器LCL用于圖1的框20內。以下描述接收機的使用方式。
在本發(fā)明的這個實現(xiàn)方案中,給定集成在微控制器100內的PCMCIA控制器154,所用外設也可以是對于所有涉及本發(fā)明操作的微控制器100采用的PCMCIA卡。這些PCMCIA卡可以是PCMCIA以太卡、PCMCIA快閃卡、PCMCI硬盤或PCMCIA數(shù)字無線接收機模塊。這些各種各樣的卡沒有畫出。PCMCIA控制器的使用使得給定閱讀器LCL具有比通過外部總線114更加容易加入的外設。USB端口150用來在計算機與給定閱讀器LCL之間提供高速傳送和接收的連接。這應用于框30和20的內容。
I/O端口151可以使本發(fā)明的這個實現(xiàn)方案與卡CL通信。
參見圖5,電子卡CL60圍繞微控制器400集成在單片硅片上,CPU處理器405經內部總線406連接快閃存儲器模塊401、OTPEPROM存儲器模塊407、DRAM存儲器模塊404、RS232I/O串行端口403和來自ScanDisk的小型快閃控制器402。
在未畫出的變例中,微控制器在同一硅片表面上包括DES加密協(xié)處理器以使CPU能夠更快地完成加密操作。
本發(fā)明的這個實現(xiàn)方案中,從微控制器400外部直接讀取訪問OTPEPROM存儲器模塊是不可能的,因而確保了對微控制器400內部電路的所有訪問都只是在CPU405的控制下進行。本發(fā)明無需利用集成在微控制器400內的CPU處理器405的大量計算能力。
微控制器400包括保證包含在內部存儲器內的信息不被非法讀取和/或修改的方法。1984年3月8日的美國專利No.5,293,424提出了一種保證存儲器訪問安全的方法。
在本發(fā)明中,內部OTPEPROM存儲器407用來存儲密鑰、標識符序列號、日期和能夠使微控制器400完成涉及直接和/或間接按照本發(fā)明使用的功能的操作系統(tǒng)。
在本發(fā)明的這個實現(xiàn)方案中,內部快閃存儲器401用來在卡CL離開工廠時永久存儲附加的數(shù)據(jù)。它還用來在卡CL離開工廠之后存儲其他能夠使微控制器400直接和/或間接實現(xiàn)涉及本發(fā)明使用的其他功能的數(shù)據(jù)。
在本發(fā)明的這個實現(xiàn)方案中,并且通常情況下,卡CL由相連的LCL供電。這種電學連接未畫出。
在本發(fā)明中,微控制器400受到保護以防止修改包含的信息。這是一種與智能卡所用類似的微控制器。它與用來通過與給定閱讀器LCL接觸提供通信的陰連接器63相連。
在本發(fā)明中,卡CL是小型便攜式裝置,它處理大存儲容量的可移動存儲單元。
在本發(fā)明的這個實現(xiàn)方案中,微控制器400在小型快閃控制器的出口處連接至小型快閃型存儲器模塊的連接支持64。
在特定實施例中,小型快閃控制器無需集成在同一硅片上作為微控制器400。它還可以采用其他記錄介質,例如來自M系統(tǒng)的DiskOnChip模塊或者其他外設和可移去非易失存儲器系統(tǒng)。
在現(xiàn)有技術中,具有微控制器400特性的微控制器是非常多的。在本發(fā)明的這個實現(xiàn)方案中,代表微控制器400特性的32位RISC微控制器被集成在同一芯片上作為小型快閃卡控制器。這種集成利用了ASIC集成技術。
因此所有存儲在微控制器400內部存儲內的信息的安全得到保障,防止了外部電子測試的企圖。
在本發(fā)明中,卡CL是小型便攜式設備。它使得涉及保護軟件使用的信息獨立于電子閱讀器LCL傳送。它被用作使用本發(fā)明保護軟件的密鑰。其便攜性使得用戶可以使用用戶購買了在處理這種軟件的計算機上的用戶權利(許可)的軟件。
在本發(fā)明的這種實現(xiàn)方案中,CL的幾何形式處在小型快閃卡與PCMCIA卡之間。
參見圖6,在標識CL的載體60角部放置通孔62??–L由此附著在機械鑰匙環(huán)上。在本發(fā)明的較佳實現(xiàn)方案中,給定卡CL的序列號ID.c(未畫出)印制在CL的載體60上。
此外,在本發(fā)明中,并且參見圖7,小型快閃存儲器模塊61可以經小型快閃卡的連接支持系統(tǒng)64從載體60分離。
參見圖8并且在本發(fā)明的這個實現(xiàn)方案中,卡CL通過經一組陰陽連接器與閱讀器LCL接觸實現(xiàn)連接??–L具有連接閱讀器LCL的相應陽連接器210的陰連接器63。這些連接器的接觸使得RS232串行通信可以在LCL與CL之間實現(xiàn)。此外,它們能夠使電能傳送至卡CL的電子電路。在本發(fā)明的這個實現(xiàn)方案中,閱讀器LCL被保持供電。
在特定實施例中(未畫出),CL可以具有自己的電源,從而可以自動操作。在該特定實施例中,無線或紅外通信模塊可以集成在CL中,從而提供與LCL的無接觸通信。Hough在美國專利No.5,412,253中描述了這種裝置的實例。顯然,在這些條件下,閱讀器LCL具有合適的通信端口。
在本發(fā)明的實施例中,所有在工廠內對LCL和CL型裝置器件編程時編寫的密鑰是涉及DES算法的128位的密鑰。因此在給定的本發(fā)明的描述下,256KB的OTPEPROM存儲器模塊、64KB的快閃存儲器模塊和512KB的DRAM存儲器模塊與CPU405(RISC處理器)集成在一起,RS232I/O串行端口403和小型快閃卡控制器集成在同一硅片上。顯然,大容量的其他存儲器可以用作具有ASIC集成宏的功能和成本功能。對于本實施例給出了這些量。
而且在本發(fā)明的這個實現(xiàn)方案中,快閃存儲器模塊111的大小為1MB。DRAM存儲器模塊109的大小為2MB。DRAM存儲器110的大小為1MB。對于本實施例給出了這些量。
這組涉及閱讀器LCL完成功能的程序構成了微控制器100的內部操作系統(tǒng)。當微控制器100在工廠內編程時,該操作系統(tǒng)被記錄在微控制器的快閃存儲器111內。
這組涉及卡CL操作的程序構成了微控制器400的內部操作系統(tǒng)。當微控制器400在工廠內編程時,該操作系統(tǒng)被記錄在微控制器的OTPEPROM存儲器407內。
在本發(fā)明中,LCL與CL之間的通信是安全的。本發(fā)明涉及認證方法的利用,它使得裝置仲裁組可以利用該方法識別另一個。這種認證可以確保只有被管理服務器aSVR的組織驗證的本發(fā)明裝置才能一起操作。本發(fā)明的這種方法可以確保未被管理本發(fā)明裝置的組織識別的裝置不能與識別的裝置一起運行。該方法防止了盜版裝置讀取本發(fā)明裝置安全電子存儲器內的數(shù)據(jù)。
本發(fā)明提供了只能在一定時間內使用的裝置。為此,所有的裝置LCL和CL的特征是具有服務開始的開始日期DB和本發(fā)明裝置使用到期的到期日期DE。DB和DE構成了公開但是不可修改的信息。
因此在本發(fā)明的這個實現(xiàn)方案中,閱讀器LCL的日期DB(DB.d)在工廠編程微控制器100快閃存儲器111的自由區(qū)時寫入。而且閱讀器LCL的日期DE(DE.d)在工廠編程微控制器100的快閃存儲器111的自由區(qū)時寫入。
而且在本發(fā)明的這個實現(xiàn)方案中,CL的日期DB(稱為DB.c)在工廠編程微控制器400快閃存儲器401的自由區(qū)時寫入。而且卡CL的日期DE(稱為DE.c)在工廠編程微控制器400的OTPEPROM存儲器407的自由區(qū)時寫入。
因此在本發(fā)明的這個實現(xiàn)方案中,管理aSVR的組織產生用于國際日歷每周(星期一開始并且星期日結束)密鑰kLi。密鑰kL1為本發(fā)明第一裝置進入操作的第一周產生的第一密鑰。密鑰kLi的含義是相對所述第一周的第i周的密鑰。所有這些密鑰完全由管理服務器aSVR的組織創(chuàng)建和保密從而確保本發(fā)明裝置使用的安全性。
在本發(fā)明的這個實現(xiàn)方案中,對于給定的卡CL,在編程微控制器400期間,密鑰kLj被寫入存儲器OTPEPROM407的自由區(qū)。該密鑰kLj對應相對本發(fā)明第一裝置進入操作的第一周的第j周。密鑰kLj的選擇方式是周j包含了卡CL進入操作的日期DB。該密鑰從不告訴用戶。實際上只有管理服務器aSVR的組織知道它。
而且在本發(fā)明的這個實現(xiàn)方案中,對于給定的閱讀器LCL,在編程微控制器100期間,密鑰列表{kLi+l,kLFi+2,kLi+3,…,kLi+m}對應所有與日期DB.d減去1460天內的周相關的密鑰,并且日期DE.d存儲在微控制器100快閃存儲器111內。顯然存儲器地址在合適的轉換之后以能夠在存儲器111內找到。這些密鑰同樣只有管理服務器aSVR的組織知道。所有上述密鑰的產生與DES加密算法有關。每個密鑰的大小為128位。
在本發(fā)明的這個實現(xiàn)方案中,本發(fā)明裝置進入操作的日期與其到期日期DE之間的時間為1461天(4年)。因此{kLi+l,kLFi+2,kLi+3,…,kLi+m)在給定LCL的微控制器100的快閃存儲器內不超過7000字節(jié)(過大的近似)。圖4示出了如何選擇列表{kLi+1,kLFi+2,kLi+3,…,kLi+m}中的密鑰數(shù)。該數(shù)由于較早裝置的存在而仍然位于給定LCL進入操作的日期DB.d。給定集成在微控制器100內的快閃存儲器的容量,所有密鑰{kLi+1,kLFi+2,kLi+3,…,kLi+m}可以與微控制器100的操作系統(tǒng)一起存儲。
因此所述認證程序的實施基于適當利用所有這些密鑰。密鑰數(shù)的含義是即使一個這樣的密鑰破譯,與涉及所述密鑰的認證相關的操作不包含本發(fā)明的整個系統(tǒng)。
參見圖10,為了使用LCL,閱讀器LCL只有在LCL的微控制器100內內部實時時鐘104給出的當前日期位于LCL的日期DB.d與DE.d之間時才可以開始運行。否則,步驟在551處終止。圖10示出了單元501表示的條件。
此后,在步驟502,為了使閱讀器LCL進入操作,用戶必須完成下述識別操作。
第三,為了使卡CL進入操作,用戶必須通過將卡CL(步驟503)連接至閱讀器LCL具有的陽連接器210而開始,從而通過接觸在閱讀器LCL與卡CL之間進行通信。閱讀器LCL的陽型連接器210與微控制器100的RS232I/O端口151相連??–L由此具有連接微控制器400的RS232I/O端口403的陰連接器63。此后,用戶必須完成下述識別操作。
在本發(fā)明的這個實現(xiàn)方案中,在第四步驟504中,卡CL的微控制器400將開始日期DB.c以非編碼形式經所述RS232鏈路傳送至LCL的微控制器。如果盜版者要修改發(fā)送的DB.c值,則下述步驟無法成功終止。
在接收DB.c之后,LCL的微控制器100的處理器CPU1完成第五步驟505,其中它驗證DB.c與涉及列表{kLi+1,kLFi+2,kLi+3,…,kLi+m}單元的密鑰kLj.d之間的一致性,從而使與本發(fā)明kLj.d相關的周j包含DB.c。
在第六步驟506中,處理器CPU1利用DS加密器及隨機數(shù)發(fā)生器112產生128位的密鑰kCS。kCS秘密存儲在微控制器100的DRAM內部存儲器109內。
在本發(fā)明中,kCS隨后由kLj.d編碼并以ekCS編碼形式發(fā)送至CL的微控制器。
在第七步驟507,在接收ekCS后,卡CL視圖利用密鑰kLj譯碼ekCS。在本發(fā)明中,如果譯碼成功,所述認證程序已經成功。微控制器CL將隨后利用密鑰KCS向LCL發(fā)送編碼信息并譯碼來自LCL的信息。卡CL的微控制器400將密鑰kCS存儲在安全的內部DRAM404中。
因此在本發(fā)明的這個實現(xiàn)方案中,在第八步驟508中,微控制器CL以密鑰kCS編碼的形式發(fā)送與CL相關的到期日期DE.c至閱讀器LCL的微控制器。
在接收時,在第九步驟509中,CPU1驗證DE.c是否超過LCL微控制器100的內部時鐘規(guī)定的當前日期。如果該日期超過,則LCL將拒絕與卡CL552繼續(xù)通信。否則,可以在LCL與CL之間進行安全的通信(559)。
因此LCL與CL之間的每個通信會話通過接觸連接開始并且在滿足下列條件之一時終止CL從LCL斷開;時鐘104定義的當前日期超過日期DE.c;或者時鐘104定義的當前日期超過日期DE.d??–L從閱讀器LCL斷開由向卡CL的電子電路供電的電源輸出負載不存在為標志。
此外,在本發(fā)明中,閱讀器LCL與卡CL之間的所有通信利用引用密鑰kCS的對稱加密方法保證安全。
在本發(fā)明的這個實現(xiàn)方案中,試圖操作本發(fā)明裝置的用戶必須經閱讀器LCL的鍵盤輸入PIN代碼,其本身由微控制器100經鍵盤和LCD控制器155控制。在輸入期間,在LCD屏幕上顯示數(shù)字(未畫出)并且它們由控制器155控制。該代碼在第一次獲得裝置(購買)時給用戶。PIN代碼是與每個裝置有關的5位數(shù)字。它應該由相應裝置的持有人保密。這種代碼的使用與現(xiàn)在智能卡的識別方法類似。使得與本發(fā)明每個裝置相關的PIN代碼正確輸入得到驗證的步驟是顯而易見的并且無需在說明書中詳述。毫無疑問,值得指出的是,利用LCL的鍵盤輸入卡CL的PIN代碼并以非編碼形式經給定卡CL與給定閱讀器LCL之間的RS232串行鏈路發(fā)送至微控制器400。應該理解的是,除非專門說明,否則對于本發(fā)明裝置的正確操作,PIN代碼已經成功輸入。
本發(fā)明涉及將卡CL用作包含文件的安全的便攜式記錄介質,該文件授權使用受本發(fā)明保護并且用戶合法獲得的所有軟件,并且將軟件本身(記錄介質)的獲得分離出去。這些文件利用下述軟件獲取程序記錄在卡CL內。
在本發(fā)明的這個實現(xiàn)方案中,授權使用序列號為S#(稱為Fich.S#)的給定軟件段的文件定義為二進制文件,其中數(shù)據(jù)比特順序如下軟件的S#(128個比特);ID.c(128個比特);許可數(shù)(L#.S#16個比特);最近使用(DR.S#天5個比特,月4個比特,年12個比特,小時5個比特,分鐘6個比特,秒6個比特);第一次使用(DP.S#日期和時間38個比特);使用的當前持續(xù)期(DU.S#以分鐘為單位24個比特);軟件執(zhí)行次數(shù)(28個比特);混合數(shù)據(jù)(Misc1024個比特);密鑰kEL.S(128個比特);以及密鑰kX.S#(128個比特)。總數(shù)為1680個比特,給出了210個字節(jié)的文件。
在本發(fā)明的這個實施方案中,ScanDisk出售的具有4MB存儲容量的小型快閃型卡61如圖7所示插入卡CL上合適的連接支座64,從而使得所述小型快閃卡與微控制器400的小型快閃控制器402連接。小型快閃卡與現(xiàn)有技術的PCMCIA卡的ATA標志兼容。小型快閃存儲器模塊被用作數(shù)據(jù)存儲磁盤。涉及使微控制器400利用4MB小型快閃模塊的驅動器寫入所需的指令以ATA標準驗證。該驅動器(未畫出)可以在本發(fā)明的這個實現(xiàn)方案中使微控制器在小型快閃卡上完成如下操作文件讀取、文件修改和文件創(chuàng)建。
因此在本發(fā)明的這個實現(xiàn)方案中,卡CL用來存儲使用本發(fā)明保護軟件的10000個以上的授權文件。該數(shù)量遠遠超過用戶可合法獲取本發(fā)明保護的所有軟件的需要。毫無疑問,用戶可以將小型快閃卡改成更大的存儲容量。在給定ATA標準下,這種變化無需更新微控制器400系統(tǒng)程序,也無需改變載體60或小型快閃卡支座64。
在本發(fā)明中,存儲在有關授權使用本發(fā)明保護軟件的卡CL上的信息不依賴于記錄介質,但是依賴于電子卡單元CL。因此卡CL的用戶可以具有多個小型快閃卡來存儲Fich.S#型文件。存儲在與給定卡CL相關的第一小型快閃卡上的數(shù)據(jù)由此可以轉送至第二小型快閃卡。利用上述程序PGM完成該操作。
在本發(fā)明中,授權文件Fich.S#利用DES加密技術的128位密鑰kS.c,在用作存儲磁盤的小型快閃卡內以編碼形式存儲,稱為eFich.S#。密鑰kS.c在微控制器400工廠編程期間被寫入OTPEPROM存儲器407。
由于密鑰kS.c對于操作中的每張卡CL是不同的,因此eFich.S#可以僅僅被創(chuàng)建的卡CL使用。
而且本發(fā)明提供的方法可以獲取包含與所述軟件使用權利分離的一個或多個本發(fā)明包含軟件段的記錄介質。
在本發(fā)明的這個實現(xiàn)方案中,本發(fā)明保護軟件的記錄介質可以自由分布。但是本發(fā)明保護軟件段可以只是在合法獲取所述軟件段S#的用戶授權文件Fich.S#操作之后執(zhí)行。因此參見圖2,當用戶打算獲得一個或多個用戶許可時,首先需要利用程序PGM將閱讀器LCL與服務器aSVR連接起來。在本發(fā)明的這個實現(xiàn)方案中,該連接通過因特網(wǎng)建立。
為了開始獲取使用本發(fā)明保護的軟件S#的授權(一個或多個許可),用戶通過將卡CL與所述給定閱讀器LCL連接開始。用戶必須保持卡CL的連接直到當前的在線購買程序(連接的)結束。假定用戶試圖獲取該軟件S#的NL用戶許可。用戶通過經所述閱讀器LCL的小鍵盤繼續(xù)輸入卡CL的PIN代碼。為了繼續(xù),上述認證過程必須成功終止。
因此參見圖11,在本發(fā)明的實現(xiàn)方案中,在與aSVR連接開始時,所述閱讀器LCL將編號ID.d告知aSVR(步驟601)。在該通信框內容中,aSVR是如圖2所示的遠端系統(tǒng)。顯然,導致aSVR從所述閱讀器LCL接收呼叫的商業(yè)操作已經成功。此后,程序PGM向aSVR發(fā)送所述軟件的序列號S#并且由用戶(購買者)連同許可的數(shù)量NL一起輸入。這兩項按照用戶閱讀器LCL密鑰kT.d編碼的形式發(fā)送。
而且在本發(fā)明的這個實現(xiàn)方案,考慮序列號為S#的所述軟件的設計者擁有服務器dSVR(未畫出)并且經因特網(wǎng)與aSVR連接。服務器dSVR與所述設計者的閱讀器LCL相連。顯然,這假定閱讀器LCL的操作系統(tǒng)經過編程從而可以應答與從服務器dSVR購買的當前過程有關的請求。因此(步驟602)dSVR隨后將創(chuàng)建本發(fā)明保護軟件#S所用的閱讀器LCL的編號ID.d賦予aSVR。dSVR與閱讀器LCL之間的通信如圖2所示,這里這種情況下的計算機50代表服務器dSVR。
為了使通信可以在兩個層面上進行,用戶的閱讀器LCL以編碼形式向aSVR發(fā)送稱為kP的密鑰(步驟603)。密鑰kP利用用戶LCL的保密密鑰kT.d編碼。kP是RSA(以Rivest、Shamir和Adleman命名)加密技術中的公鑰。密鑰kP借助這種場合下的私鑰(即動態(tài)地)創(chuàng)建并且在獲取許可過程結束時刪除。由所述密鑰kT.d編碼的kP的編碼形式稱為ekP.kT。而且應該注意到,aSVR并不知道與kP相關的私鑰kV的值。通信期間信息的對稱編碼確保了不可以在傳送中修改正在交換的數(shù)據(jù)。
在接收時,aSVR利用與用戶閱讀器LCL有關的信息譯碼ekP.kT。在本發(fā)明的這個實現(xiàn)方案中,對于給定的閱讀器LCL,aSVR是閱讀器LCL外部知道編號ID.d與密鑰kT.d之間對應的唯一方。密鑰kP隨后利用本發(fā)明保護軟件S#的設計者的閱讀器LCL的密鑰kT.d進行編碼。kP的新編碼形式ekP.kT2。此后,aSVR經服務器dSVR將ekP.kT2傳送至設計者的閱讀器LCL(步驟604)。在這種方式下,利用本發(fā)明的軟件保護技術在本發(fā)明保護軟件設計者與管理aSVR的組織之間建立了依賴性。因此軟件設計者無需建立除用于本發(fā)明保護軟件的記錄介質以外的庫存。
在接收時,所述設計者的閱讀器LCL用其密鑰kT.d譯碼ekP.kT2。利用公鑰kP,設計者的LCL隨后譯碼本發(fā)明保護并利用密鑰kP的軟件S#創(chuàng)建程序生成的kEL.S#。利用kP的kEL.S#編碼形式稱為ekEL。在變例中(未畫出),在譯碼ekP.kT2之后,所述閱讀器可以將kP傳送至服務器dSVR從而可以利用密鑰kP編碼密鑰kEL.S#。但是這種變例未改變本發(fā)明的基本原理。
在本發(fā)明的這個實現(xiàn)方案中,dSVR隨后從aSVR接收NL值。NL使本發(fā)明保護軟件的設計者能夠組織起與管理aSVR的組織的兼容性。在獲取用戶授權的這個變例中,dSVR接收密鑰kP并隨后經aSVR向用戶(購買者)的LCL發(fā)送涉及RSA加密的公鑰kPUB。該變例使得連接用戶閱讀器LCL的程序PGM能夠經aSVR返回用kPUB編碼的NL值。該變例的含義是dSVR無需依賴aSVR的誠實。因此該變例使得dSVR能夠精確監(jiān)視出售許可的數(shù)量。
在本發(fā)明的這個實現(xiàn)方案中,dSVR隨后向aSVR發(fā)送eKEL(步驟605)。服務器aSVR隨后利用密鑰kT.d(用戶閱讀器LCL的密鑰)編碼的形式向用戶閱讀器LCL發(fā)送kX.S#(步驟606)。密鑰kX.S#是由aSVR在上述序列號為#S的保護軟件LD的過程期間創(chuàng)建和存儲的密鑰。此后,服務器aSVR向用戶的閱讀器LCL發(fā)送eKEL。在接收時,用戶的閱讀器LCL借助kV譯碼eKEL。這給出了kEL.S#。閱讀器LCL還譯碼用密鑰kT.d編碼的kX.S#形式。
在本發(fā)明的這個實現(xiàn)方案中,所述閱讀器LCL隨后以利用在上述認證過程期間獲得的密鑰kCS進行編碼的形式向所述卡CL發(fā)送下列數(shù)據(jù)S#、對應用戶aSVR請求的許可數(shù)NL、kX.S#、kEL.S#和時鐘104指示的當前時間和日期。
這樣,卡CL微控制器400譯碼各種已經接收的數(shù)據(jù)項連同kCS。微控制器400隨后進行下列更新過程(步驟607)。微控制器400驗證授權使用的譯碼文件eFich.S#是否已經在序列號為S#的軟件中存在。如果這樣,它通過使相應文件Fich.S#內域L#.S#的數(shù)值增加NL而進行修改。當用戶已經獲得依賴時間的授權時,自然而然地在文件Fich.S#內相應域上完成更新。為了理解本發(fā)明,當然必須考慮某些明顯的點。
如果沒有相應的文件Fich.S#存在,則創(chuàng)建新的文件Fich.S#。因此在本發(fā)明的這個實現(xiàn)方案中,卡CL的微控制器400通過填充下列新文件的域創(chuàng)建文件Fich.S#S#、L#、L#.S#、卡CL的ID.c序列號、kEL.S#和X.S#。DR.S#和DP.S#的數(shù)值由當前時間和日期初始化。域DU.S#和“軟件執(zhí)行次數(shù)”自然取值為零。域Misc用來存儲與定義新增信息域需要的有關數(shù)值。Misc初始化為零。L#.S#取值為NL。
在特定實施例中(未描述),一旦aSVR傳送序列號為S#的本發(fā)明保護的軟件段的kX.S#值,則用戶可以dSVR直接連接以購買許可。該變例可以分散許可的出售。
在給出Fich.S#文件格式和編碼格式eFich.S#下,只有編號為ID.c的給定卡CL可以使用對應ID.c的文件Fich.S#。
在本發(fā)明的這個實現(xiàn)方案中,考慮了稱為LD的經過本發(fā)明保護程序的軟件段。顯然,以下解釋對于本發(fā)明保護的軟件是有效的。為了便于解釋,考慮在主機經TCP/IP下運行的以太網(wǎng)連接閱讀器LCL的情況下使用軟件。這應用于框40。上述驅動器DRV可以經TCP/IP協(xié)議與LCL通信。在本發(fā)明的這個實現(xiàn)方案中,TCP/IP層當然負責描述驅動器程序DRV與閱讀器LCL之間的通信。
在未描述(但可參見圖4)的特定實施例中,網(wǎng)絡上可以出現(xiàn)多個LCL。但是這種類型的組織不會改變本發(fā)明的特征。
在本發(fā)明的這個實現(xiàn)方案中,可以在獲得一個或多個使用軟件LD授權(用戶許可)時執(zhí)行LD。
因此當軟件LD在主機上運行時,首先執(zhí)行函數(shù)FF0。通常情況下,在本發(fā)明的這個實現(xiàn)方案中,所有函數(shù)FFi完成公共程序將eFi加載到LCL內。
在本發(fā)明的這個實現(xiàn)方案中,當軟件LD調用給定函數(shù)FFi時,它例如利用主機系統(tǒng)的堆棧傳送信息參數(shù),該參數(shù)稱為PARAM并且如果有任何對應FFi的函數(shù)Fi在執(zhí)行期間直接和/或間接使用。此后,F(xiàn)Fi將上述eFi的內容加載入存儲器。隨后,F(xiàn)Fi調用驅動器DRV(調用計算機程序意義上的調用)從而給出信息PARAM和eFi所在的存儲器地址。該信息隨后經網(wǎng)絡被送至LCL。附加的參數(shù)可以由函數(shù)FFi加入?yún)?shù)PARAM。因此PARAM特別包含涉及執(zhí)行函數(shù)FFi的計算機內當前時間的信息。它還包含單個識別符,表示所述主機(例如網(wǎng)絡上所述計算機IP地址由計算機的操作系統(tǒng)提供)和對應所述函數(shù)FFi的軟件的序列號S#。顯然,當閱讀器與計算機(框30和20)直接相連時,對于唯一標識符不存在問題。因此計算機的唯一標識符稱為IDIP。該變量由閱讀器LCL的微控制器100用來管理作為計算機工作站函數(shù)的軟件的使用。顯然,變量IDIP可能值的IP地址的選擇不涉及這個實現(xiàn)方案。在其他實現(xiàn)方案中,IDIP可以某種其它方式定義。
因此在本發(fā)明的這個實現(xiàn)方案中,當閱讀器LCL的微控制器100已經完成接收信息處理并且特別是執(zhí)行相應的函數(shù)Fi時,獲得的結果經網(wǎng)絡轉送至主機。在接收時,DRV將結果返回FFi,它再返回軟件LD。如果連接閱讀器LCL的卡CL沒有軟件LD的用戶許可,則LCL不返回結果但是將返回消息告知FFi結束軟件LD的執(zhí)行。在下列其他情況下也可以結束FFi。因此由閱讀器LCL執(zhí)行函數(shù)Fi在軟件LD與LCL之間創(chuàng)建了物理依賴性。
因此在本發(fā)明的這個實現(xiàn)方案中,在開始運行軟件LD時,執(zhí)行與LD相關的函數(shù)FF0。當執(zhí)行與LD相關的函數(shù)FF0時,應該沒有其他與LD相關的函數(shù)FFi在執(zhí)行。以下給出附加的信息。FF0發(fā)送eF0、計算機執(zhí)行FF0給出當前時間、函數(shù)F0的執(zhí)行參數(shù)PARAM和與軟件LD相關的數(shù)值S#。
當計算結果達到LCL的微控制器100時,F(xiàn)F0考慮兩種類型的結果。第一種結果涉及微控制器100中F0的執(zhí)行(F0必須是復雜函數(shù)從而使軟件LD的操作很大程度上依賴于此)。這些結果在一定程度上不是錯誤消息,結果被返回軟件LD以構成LD的執(zhí)行。第二種類型是涉及執(zhí)行軟件LD的所述計算機時鐘的時間Htop。該時間對應必須由軟件LD執(zhí)行FF0的下一時刻。
由于依賴于如何使用LD,所以調用其他函數(shù)FFi的順序是不可預見的。
在本發(fā)明的這個實現(xiàn)方案中,F(xiàn)F0的執(zhí)行是1秒數(shù)量級。
而且在時間Htop,如果FF0的未執(zhí)行,則LCL認為與啟動FF0的的所述軟件LD相關的執(zhí)行對話已被關閉。該條件使LCL減少與LD相關的網(wǎng)絡上許可計數(shù)器。
顯然,超過許可數(shù)并不涉及與單獨計算機一起使用并且經I/O端口與附屬在所述端口上的LCL直接連接的軟件。
而且當軟件LD執(zhí)行其他函數(shù)FFi時(i不等于0),F(xiàn)Fi通過驗證與LD相關的函數(shù)FF0是否是本身在執(zhí)行過程中而開始。在當前未執(zhí)行FF0時,i不等于0的FFi經DRV將eFi、S#和用于Fi的執(zhí)行參數(shù)發(fā)送至LCL。當閱讀器LCL連同其參數(shù)時完成處理eFi,結果返回FFi。FFi隨后將這些結果返回軟件LD。如果接收到錯誤信息,則停止執(zhí)行軟件LD。與采用代碼驗證的軟件保護系統(tǒng)相反,因難以找到與所用函數(shù)Fi等價的函數(shù),本發(fā)明保護軟件具有不能很好工作。
在本發(fā)明的這個實現(xiàn)方案中,在給定處理器CPU1下,微控制器100的操作系統(tǒng)是多任務系統(tǒng)從而能夠同時使用本發(fā)明保護的多個軟件段。這種操作系統(tǒng)的實現(xiàn)依賴于現(xiàn)有的Intel80386處理器的多任務系統(tǒng)標準。而且保護本發(fā)明軟件的系統(tǒng)的安全性特別依賴于一次執(zhí)行單個主程序的處理器CPU2。
在本發(fā)明的實施例中,在完整接收信息包時,CPU1將其加載入DRAM109。當信息是具有類型eFi的數(shù)據(jù)(對應序列號為S#的給定軟件段)并和與eFi相關的參數(shù)時,實施下列測試列表i等于0(步驟701),eFi對應序列號為S#的軟件段,它已經成功執(zhí)行一次FF0(步驟702),由時鐘104給定的時間等于時間Htop,表示為相對時鐘104時間具有加減2秒的誤差(測試703或705)(先前定義值對應已經成功執(zhí)行一次FF0的軟件段S#),由卡CL提供的當前使用許可數(shù)加1(步驟704)(稱為NL.S#并且對應軟件段S#)大于文件Fich.S#內的值L#.S#(對應軟件段S#)。該測試列表內的單元分別稱為測試1、測試2、測試3和測試4。與每個測試相關的數(shù)定義了當實施時完成這些測試的順序。參見圖12,測試1(步驟701)對應分析樹的開始,它參照給定的軟件段S#和作為網(wǎng)絡上每個計算機的IP地址號的唯一標識符IDIP而被執(zhí)行。該號由此使得每個軟件執(zhí)行對話與所述網(wǎng)絡的給定計算機關聯(lián)。在該實施例的變例中,另一唯一標識符通過利用與過程定位的計算機網(wǎng)絡地址組合的過程標識符可與給定軟件端的執(zhí)行對話直接關聯(lián)。當前實施例考慮與IP地址相關的唯一標識符作為識別所述網(wǎng)絡計算機的可能裝置實例。因此在圖12分析樹的開始,信息S#和IP(IDIP)被假定由函數(shù)FFi在驅動器DRV下提供。這兩個信息段以上述信息PARAM包的形式送至所述閱讀器LCL。
在本發(fā)明的這個實現(xiàn)方案中,如果測試4的結果(步驟704)是布爾意義上的假,則新的NL.S#值(步驟709)是舊的數(shù)值加1。假定測試2(步驟702)是假并且測試1(步驟701)是真。
如果測試3的數(shù)值(步驟703)是真值并且假定測試1和測試2(步驟701和702)也具有給定的真值,則CPU1從內部時鐘104讀取當前時間以計算Htop的新數(shù)值,該數(shù)值相對與在測試已經完成的條件并且在這些條件上下文下執(zhí)行軟件段S#的計算機相關的時鐘時間表示。例如在本實施例中Htop的新值等于老值加5分鐘。調整5分鐘數(shù)值從而使得兩個以上序列號同為S#并且運行在不同計算機上的軟件段無法同時執(zhí)行對應的函數(shù)FF0(需要取正負2秒的所述誤差)。該5分鐘的數(shù)值因此可以用其他作為前面階段函數(shù)的數(shù)值代替。在測試3結束處,在步驟706內執(zhí)行函數(shù)F0。
如果測試3(步驟703)返回假,并且假定測試1和測試2(步驟701和702)返回真值,則將錯誤消息707返回給這些測試條件下和這些條件含義下對應函數(shù)FF0執(zhí)行的軟件執(zhí)行對話。而且CPU1使與序列號為S#的軟件段相關的計數(shù)器NL.S#遞減1點。微控制器100的操作系統(tǒng)在同時保護多個軟件段時管理被各種標識符IDIP(對應執(zhí)行本發(fā)明保護軟件段的網(wǎng)絡上所有的計算機)引用的對象列表。該對象列表從PARAM中的信息建立。每個對象的域用來記錄在計算機上執(zhí)行的軟件段的序列號S#,該計算機的標識符IDIP對應所述對象的所述基準IDIP。該對象列表使得可以將保護軟件段作為計算機函數(shù)來管理。當NL.S#對于由IDIP識別的并且執(zhí)行引起遞減的軟件S#的計算機遞減1點時,刪除包含數(shù)值S#的相應對象IDIP的域。這種管理可以使新執(zhí)行軟件段S#成為可能。還應該看到,NL.S#的數(shù)值是所述處理一個等同于NL.S#標記中數(shù)值S#的域的對象總和。因此當NL.S#數(shù)值遞增1點時,創(chuàng)建了對象列表的對象IDIP中新的域。對象IDIP對應執(zhí)行軟件S#的函數(shù)FFi的標號為IDIP的計算機。所述新的域隨后取值S#。
如果測試4(步驟704)返回真值并且測試2(步驟702)返回假值并且測試1(步驟701)返回真值,則將出錯消息708返回在這些測試條件下并且在這些條件含義下的對應函數(shù)FF0執(zhí)行的軟件執(zhí)行對話。
如果測試3(步驟705)返回真值并且假定測試1(步驟701)返回假值,則CPU1使與軟件S#相關的計數(shù)器NL.S#遞減1點。因此更新對象IDIP的所述列表。在這些條件下并且在這些條件的含義下,出錯消息710隨后返回至這些對應函數(shù)FF0執(zhí)行的軟件執(zhí)行對話。
參見圖12,對于實施順序乘積(測試1 701與測試2 702)的真值和實施順中乘積(測試1 701和測試2 702)的假值,以及對于實施順序乘積(測試1 701與測試3 705)的假值,結果導致CPU1處理eFi。
顯然,當實現(xiàn)本發(fā)明時定義這些測試從而能夠由單個閱讀器LCL在多個軟件段上同時完成保護功能。圖12的分析樹經過極大地簡化以便理解。在特定實施例中,可以改變測試條件和測試含義。
如果應用深入,則創(chuàng)建隊列以由處理器CPU2逐個執(zhí)行函數(shù)Fi。為了減少等待時間,可以設定條件,規(guī)定例如百分之一秒為執(zhí)行函數(shù)Fi的授權的最大持續(xù)期,該數(shù)值相對處理器CPU2的計算速度定義。該持續(xù)期條件必須由本發(fā)明保護軟件的開發(fā)人員同意。
在本發(fā)明的這個實現(xiàn)方案中,使用給定軟件段S#的信息由卡CL提供。因此當需要分析樹并且特別是在步驟704中時,微控制器100向卡CL發(fā)送請求。因此,為了執(zhí)行Fi,CPU1向在該請求內容中連接的卡CL發(fā)布涉及軟件S#的請求。假定已經成功完成LCL與CL之間定義的認證過程并且假定與軟件S#相關的文件Fich.S#在請求的情況中處理,則卡CL的微控制器400將文件Fich.S#以密鑰kCS編碼的形式返回LCL中。微控制器100隨后更新下列域用當前日期代替DR.S#(最近使用),重新計算DU.S#(軟件已經執(zhí)行的次數(shù))。相對與該函數(shù)相關的軟件S#的最后一次執(zhí)行,DR.S#由函數(shù)FF0的第一次執(zhí)行的日期和時間更新。DU.S#在Htop的動態(tài)值和時鐘104在執(zhí)行對應函數(shù)FFi時給定的當前時間重新計算。根據(jù)與該計算含義相關的軟件最近執(zhí)行計算域“軟件執(zhí)行次數(shù)”。因此在每次新的執(zhí)行時遞增1點。這些測試優(yōu)化為請求流的函數(shù),該請求流涉及與網(wǎng)絡連接并且尋址信息更新中閱讀器LCL的各種計算機上相應軟件執(zhí)行的各種函數(shù)FFi。
在本發(fā)明的這個實現(xiàn)方案中,L#.S#、kEL.S#和kX.S#的數(shù)值(有關文件的其他域可以在需要時由CPU保留)存儲在DRAM109內。修改的Fich.S#隨后以kCS編碼的形式返回CL。為了防止盜版,如果在閱讀器LCL使用卡CL完成涉及本發(fā)明的操作時移去卡CL,則閱讀器LCL通過返回出錯消息終止本發(fā)明保護軟件的所有執(zhí)行對話。在本發(fā)明的特定實施例中,本發(fā)明的裝置無需以這種方式返回出錯消息,在一定程度上文件Fich.S#可以永久存儲在閱讀器LCL內并且與在卡CL中一樣使用。
因此在本發(fā)明的這個實現(xiàn)方案中,數(shù)值L#.S#防止本發(fā)明保護軟件段的用戶超過許可數(shù)。
在本發(fā)明的這個實現(xiàn)方案中,文件Fich.S#提供的密鑰kEL.S#用來譯碼eF0。CPU1由此獲得涉及與該eF0有關的軟件使用條件的所述文件。CPU1將信息的這些段值與相關的文件Fich.S#比較。通過解釋,如果使用相對于到期日是固定的,則所述使用條件文件在相應域內給出限定的日期。在特定實施例中,所述使用條件文件可以省略下列所有或部分域永久許可、使用期間、使用到期結束…、執(zhí)行次數(shù)。
在本發(fā)明的這個實現(xiàn)方案中,在將文件Fich.S#提供的數(shù)據(jù)與密鑰kEL.S#譯碼的使用條件文件比較成功之后,CPU1還利用密鑰kEL.S#恢復函數(shù)F0的Java字節(jié)代碼(即Java指令代碼)。
在本發(fā)明的這個實現(xiàn)方案中,對于不等于0的i,利用從相應Fich.S#獲得的密鑰kX.S#譯碼編碼數(shù)據(jù)eFi。CPU1隨后恢復函數(shù)Fi的Java字節(jié)代碼(對應虛擬Java機的指令代碼)。
DMA控制器107將這些指令代碼經接口106直接加載入DRAM110。借助CPU2的控制器,CPU1轉接至CPU2(PicoJava處理器)以執(zhí)行其執(zhí)行參數(shù)已經加載的Fi。監(jiān)視狗108監(jiān)視CPU2的正確操作。在CPU2執(zhí)行的Fi結束,其結果由CPU1恢復并且返回到發(fā)送數(shù)據(jù)eFi的計算機。
在使用30和20含義中,可以將閱讀器LCL經各自的USB I/O端口之間的直接連接與個人計算機一起使用。在這兩個含義中,閱讀器LCL的軟件保護是網(wǎng)絡中提供函數(shù)的簡化版本。因此本說明書不給出進一步的細節(jié)。
在特定實施例中,使用文件條件的“使用持續(xù)期”域可以用來構成演示軟件的使用特征。因此使用文件的條件特別設定使用的限制條件。文件授權使用給出了當前使用的“程度”。在本發(fā)明的這個實現(xiàn)方案中,組合的兩個文件使軟件能夠得到保護,防止與使用條件不符。
而且使用文件的條件格式在開發(fā)限制使用的演示應用時特別有益。在這里,可以采用特定的保護程序從而無需通過服務器aSVR就可創(chuàng)建本發(fā)明保護軟件。該函數(shù)對于按照本發(fā)明的分散化軟件保護特別有利。而且為了啟動這樣的保護程序,利用程序PGM選擇。
與上述保護軟件的程序比較,現(xiàn)在利用從對應當前周(在此期間啟動該特定軟件程序)列表{kLi+1,kLFi+2,kLi+3,…,kLi+m}提取的密鑰kLi編碼函數(shù)Fi。在給出這些密鑰kLi定義方式后,這些密鑰的使用只有對使用有時間限制的軟件才有利。顯然,實現(xiàn)該程序的閱讀器LCL不傳送相對其定義的kLi的數(shù)值。為了發(fā)布,這種方式保護的軟件必須伴隨周的提示,在該周內已經完成該特定保護程序。因此當用戶希望執(zhí)行這種方式下保護的軟件段時(通過密鑰kLi),由于在記錄介質上找到所有的信息,所以用戶無需接觸服務器aSVR。毫無疑問,軟件的使用依賴于閱讀器LCL。因此用戶可以立即使用軟件,但是不能超出使用文件條件設定的使用條件。實施本發(fā)明防止了時間受限制的軟件段的重復使用。描述以下。
而且本發(fā)明涉及利用本發(fā)明裝置的方法,借助上述PGM程序的計算機觀點看本發(fā)明的方法是透明的。程序PGM已經開發(fā)的方式使得本發(fā)明裝置的用戶可以完成需要與所述裝置交互的操作。其使用一般在本說明書中提及。它還用來利用主機和操作系統(tǒng)的通信資源使給定的LCL與遠端系統(tǒng)連接。
程序PGM與驅動器程序DRV并行使用。驅動器DRV構成了PGM與給定閱讀器LCL之間的通信層。它確保閱讀器LCL的使用是透明的。圖2示出了在計算機中安裝這兩個單元的方式。這兩個程序執(zhí)行上述和下述所有函數(shù)。采用有關程序的慣例來調查給定LCL從而使所述閱讀器LCL識別并執(zhí)行集成在自己微控制器100操作系統(tǒng)內的命令。這些命令由閱讀器LCL內的構造定義。
在返回中,在本發(fā)明中,PGM也可以解釋來自LCL發(fā)送命令的信息。在本發(fā)明的這個實現(xiàn)方案中,這些命令基本上是使LCL能夠訪問遠端系統(tǒng)的指令。
因此,利用采用的與給定閱讀器LCL通信的慣例,命令被定義涉及閱讀器LCL借助可用網(wǎng)絡通信資源與aSVR連接的可能性,例如從而使本發(fā)明裝置的內部操作系統(tǒng)能夠更新或者在錯誤功能事件中(電池103無電)時設定內部時鐘104的時間。
在圖1所示的使用20中,數(shù)字無線接收機22與微控制器100的外部總線114連接以使給定的閱讀器LCL能直接從管理服務器aSVR的組織接收信息。顯然,接收機集成在包含閱讀器LCL的單元內。因此可以普通和/或特定的方式向操作中的所有閱讀器LCL發(fā)送信息。而且,與利用電池的操作相比,這種類型的接收機的低功率消耗可以永久操作,即使閱讀器關閉。在變例的電源中,可以與獨立于LCL電源(可能源于主體)的無線接收機22一起使用可充電電池。顯然,接收機具有自己的存儲器用于存儲閱讀器LCL關閉時從發(fā)射機13接收的數(shù)據(jù)。因此服務器aSVR可以經發(fā)射機13向閱讀器LCL的操作系統(tǒng)和/或卡CL發(fā)送信息,例如更新。
在變例中,閱讀器LCL的操作除了涉及進入操作和結束使用的日期(DB.d和DE.d)之外可以包括涉及間隔的條件。該條件涉及與無線接收機22的LCL的使用。因此尚未從發(fā)射機20接收信息的閱讀器LCL在用戶開啟時拒絕操作。為了恢復閱讀器LCL丟失的信息,由于無線接收較差,所以經程序PGM連接至aSVR的程序可以運行。顯然,經密鑰kT.d進行這種恢復從而在aSVR與閱讀器LCL之間進行的通信是安全的。
而且為了從發(fā)射機13安全地發(fā)送信息,上述密鑰kLi被用來編碼向閱讀器LCL無線發(fā)送的信息。該信息稱為MR。此外,選擇kLi從而符合信息從發(fā)射機13發(fā)送期間的周。由kLi編碼的MR形式稱為eMR。通過決定在定義信息MR期間的周(星期一開始并且星期日結束)之后的星期一開始發(fā)送信息MR,可以在整周給定間隔上重復發(fā)送同一信息。這可以確保信息正確接收并且避免了閱讀器LCL至服務器aSVR的太多連接。
由于它首先可以安全方式將文件Fich.S#返回對應與Fich.S#相關的軟件購買者的閱讀器LCL,所以本發(fā)明的這個變例是最有益的。顯然,發(fā)射機13可以特定方式向給定無線接收機22發(fā)送信息。該變例可以無需建立計算機連接進行購買,用戶直接通過電話處理。該變例可以在包含給定軟件段的記錄介質分布與利用該軟件段的許可出售之間實現(xiàn)完全的分離。
此后,該變例可以發(fā)送涉及設備損失的信息。在“快閃磁盤”模塊的存儲容量下,來自Msystems的DiskOnChip電路(未畫出)經微控制器100的外部總線114與控制器連接以使微控制器100具有存儲磁盤。12兆字節(jié)的DiskOnChip用于本發(fā)明這個變例的實施。在其他變例中,可以用PCMCIA快閃卡代替DiskOnChip。因此在接收信息eMR時,微控制器100利用當前周的密鑰kLi譯碼eMR。
因此為了使給定的CL和/或LCL失去活性以防止其使用,可以包括涉及對應序列號的信息。隨后該序列號保存在文件ANNUL中的DiskOnChip電路內,該文件保存本發(fā)明不再使用的裝置的所有序列號。在特定實施例中,并且依賴于防止修改的安全性,當從發(fā)射機13發(fā)射時所述序列號時無需編碼。
在本發(fā)明中,LCL的認證和簽名的計算機方法在文件ANNUL上完成。電子簽名和認證信息存儲在微控制器100的內部存儲器111內。因此每次開始時,微控制器100驗證文件ANNUL是否被同樣格式的其他文件代替或者被未授權操作修改。
該文件ANNUL隨后在給定卡CL與利用上述程序的給定閱讀器LCL之間的認證過程期間使用。如果CL代表文件ANNUL中的基準的ID.c,隨后LCL將拒絕卡CL。而且當LCL開始和/或接收信息MR時,LCL的微控制器100檢查自己的ID.d是否在MR和/或ANNUL的內容中找到。如果存在其自己的ID,則微控制器100通過摧毀內部存儲器的內容使自己不可用。
因此在本發(fā)明的實施方式下,CL或LCL裝置可以在最長1周內不可使用。
而且在本發(fā)明的這個實現(xiàn)方案中,裝置可以最長使用4年。該間隔可以很好地壓縮至2年。在這種間隔中,并且考慮到本發(fā)明裝置丟失的可能性,二年內可能有1百萬個裝置量會丟失(通過在丟失事件中新裝置的購買價格防止故意的丟失)。這種容量似乎過于夸張。在壓縮方法的容量下(50%比率),并且在序列號ID的128位下,不使用壓縮需要15兆字節(jié),當壓縮數(shù)據(jù)存儲空間時為8兆字節(jié)。對于本發(fā)明裝置使用的2年間隔,DiskOnChip的容量對于本變例是足夠的。如果使用間隔較長,在DiskOnChip模塊容量給定下可以使用更大的存儲容量。
而且在所述數(shù)字無線接收機接收信息的容量給定的情況下,當用戶購買軟件許可時,用戶可以經無線系統(tǒng)接收對應軟件S#許可購買的文件Fich.S#(如上所述)。該功能對商業(yè)具有可觀的沖擊(軟件可以在任何地方購買而無需連接)。顯然,F(xiàn)ich.S#以利用當前周的密鑰kLi編碼的形式發(fā)送。在變例中,對購買操作可以采用kT.d型密鑰。
使得本發(fā)明裝置的使用被本發(fā)明其他裝置拒絕的可能性也可以給用戶選擇恢復丟失卡CL的內容的一部分。
因此在給定的文件Fich.S#格式下,通過僅僅保留下列域,該文件的大小被削減為文件名為rFich.S#的66個字節(jié)軟件的S#、ID.c、L#.S#、kEL.S#和kX.S#。僅僅考慮用戶擁有永久用戶許可的軟件,rFich.S#足以定義本發(fā)明保護的軟件。因此在64kB存儲器模塊下,可以存儲至少990個由rFich.S#定義使用的軟件許可。在新的變例中,在購買卡CL時,管理aSVR的組織提供智能卡SC,并且可以使數(shù)據(jù)安全地讀取和修改。SC未畫出。SC包括在單個硅片上的微控制器它組合了處理器、46kB快閃存儲器和DRAM和OTPEPROM存儲器。存儲器訪問由SC微控制器的處理器控制。該卡是安全的智能卡。無論何時用戶合法獲得本發(fā)明保護軟件段的一個或多個永久使用的新許可,都使用該智能卡。在獲取時,卡插入經智能卡控制器153與閱讀器LCL的微控制器100通信的智能卡中。文件rFich.S#隨后復制到智能卡微控制器的64kB快閃存儲器模塊內。顯然,智能卡SC內部擁有與卡CL類似的密鑰kLi。該密鑰在識別過程中使用,識別過程發(fā)生于閱讀器LCL與卡CL之間。卡CL的內容只能由連接相關卡CL的閱讀器LCL修改。因此在本發(fā)明的該變例中,eFich.S#利用卡CL的密鑰kS.c的編碼形式erFich.S#存儲。而且在給定的智能卡安全性性質下,erFich.S#由此受到保護,防止未授權的讀取修改。在任何情況下,該信息得到了保護。而且通過利用編碼rFich.S#的密鑰kS,該卡只能與得到文件eFich.S#的卡CL一起使用。顯然,如果用戶購買了除卡CL內已經有的軟件段S#的新增許可,則LCL復制erFich.S#并且向對應的卡CL發(fā)送。rFich.S#的域用新獲取的許可數(shù)更新。這種方式獲得的新文件erFich.S#隨后代替卡SC內微控制器的內部存儲器內的先前文件。
因此在丟失事件中,智能卡SC中完成的備份可以兩步恢復新卡CL的購買;以及經程序PGM連接至服務器aSVR。
當連接至服務器時,用戶經程序PGM傳送舊卡CL的序列號ID.c(ID.c是不可修改的公開數(shù)據(jù)它以明文在每個卡CL的載體60上顯示)。此后,用戶傳送新卡CL的序列號。在應答中,aSVR以代表丟失卡CL密鑰kS的編碼形式返回數(shù)據(jù)。該密鑰借助與新卡CL相連的閱讀器LCL的密鑰kT.d編碼。丟失卡CL密鑰kS的獲取因此使得文件rFich.S#的內容被恢復。
在利用無線接收機的發(fā)明變例中,丟失卡CL的編號ID.c可以通過電話口頭通信。在這種情況下,LCL利用其數(shù)字無線接收機接收丟失的卡CL并對應丟失的卡的所述序列號ID.c,并且它接收以利用當前周密鑰kLi編碼形式的信息。獲取丟失卡CL密鑰S就可以恢復文件rFich.S#的內容。
同時,aSVR還通過向本發(fā)明上述變例中所有閱讀器LCL發(fā)送丟失卡的序列號ID.c啟動程序以使丟失卡使用失效。
在本發(fā)明另一變例中,可以由閱讀器LCL利用與操作存儲文件的卡CL類似的安全條件存儲文件Fich.S#。在這種情況下,文件Fich.S#存儲在提供這種存儲的外部記錄介質。利用這個實例,可以使用DiskOnChip。存儲在該介質上的文件由相應閱讀器LCL的密鑰kS.d保護。在變例中,密鑰kS.d為當微控制器100在工廠內編程時寫入內部存儲器111的密鑰。因此,當一個或多個軟件許可移動至閱讀器LCL時,可以獨立于卡CL的存在提供對本發(fā)明保護并與閱讀器LCL相關的軟件的訪問。這使得對于每個具有訪問連接有閱讀器LCL的計算機的用戶的使用是可能的。顯然,當軟件許可從卡CL移出時,通過要求與卡CL對應的智能卡SC與閱讀器LCL的智能卡閱讀器連接而更新智能卡SC中的信息。例如當軟件段S#的兩個許可從卡CL移動至閱讀器LCL時,卡CL的文件eFich.S#的內容和智能卡SC的文件erFich.S#的內容由此修改從而將軟件用戶文件寫入閱讀器LCL。在這種閱讀器LCL的新功能下,與卡SC同樣類型的智能卡必須與每個閱讀器LCL相關,從而使涉及軟件永久使用許可的文件Fich.S#能夠備份。因此智能卡必須在用戶許可從卡CL移動至閱讀器LCL之后立即插入以使轉送有效。假定復制到閱讀器LCL內的軟件用戶認證可以通過與上述相反的操作轉送至新的卡CL,則可以從一張卡CL將授權移動至另一張卡以使用本發(fā)明保護軟件。對應這兩張卡CL的各智能卡SC自動更新。
而且,對于在卡CL上改變小型快閃卡的可能性和涉及有限使用的軟件使用授權,文件eTPS存在于被給定卡ID.c使用的每張小型快閃卡之上。該文件必須存在于所述卡CL所用的所有小型快閃卡上。否則,卡CL將不能操作。此外,eTPS是文件TPS的編碼形式,該文件在第一行包含編號ID.c和隨后是該卡用戶CL按照本發(fā)明獲取的所有軟件序列號S#。因此僅僅通過改變小型快閃卡,用戶無法避開執(zhí)行時間或次數(shù)有限制的軟件段的使用限制。在本發(fā)明的這個實現(xiàn)方案中,這種限制可應用于例如免費軟件。
因此在未描述的明顯的變化實施例中(這種描述不會進一步增加對本發(fā)明的理解),就保護信息防止修改的能力而言,可以采用卡CL來存儲諸如個人身份之類的不可修改的公開信息。利用程序PGM表示的用戶接口可以查閱該信息。在大存儲容量下,卡CL可以用作存儲涉及給定數(shù)值的程序和/或計數(shù)器,并且可以防止未授權修改和/或讀取這種新增程序和/或處理相對給定值的所述計數(shù)器的方式進行。微控制器100在物理上得到保護,防止計算機病毒程序。因此可以設想由微控制器100的處理器CPU2可執(zhí)行的程序代碼或者代表給定軟件設計者的用戶購買的軟件許可數(shù)的誠實度計數(shù)器來定義文件Fich.S#的Misc域,從而使進行對應的商業(yè)操作成為可能??赡芗尤隡isc域的程序代碼可以用來當閱讀器LCL執(zhí)行時修改所述函數(shù)Fi的行為,從而通過在調用函數(shù)FFi時監(jiān)視數(shù)據(jù)輸入和輸出并企圖返回到函數(shù)Fi來盜版相應軟件成為不可能?;叵胍幌?,只有函數(shù)Fi的編碼形式eFi才可以被用戶訪問。
在本發(fā)明中,使用物理上和邏輯上受到保護以防止計算機病毒攻擊并且防止讀取和/或修改包含在電路內的數(shù)據(jù)的集成電路(微控制器100),用來在軟件保護中提供非常高級別的安全性。在給定可以使用這種電路的通信外設時,由于本發(fā)明可以安全方式恢復丟失的許可,所以本發(fā)明的裝置不再視為禁止性的窺探裝置,而是視為軟件使用中主動參與的普通工具。由于能夠存儲和執(zhí)行程序安全,所以本發(fā)明可以使軟件保護工具變?yōu)橛脩艨梢匀粘J褂玫墓ぞ?,該工具常常給出實際使用的時間。因此本發(fā)明是保護軟件的新工具,首先可以獨立于出售使用權利而發(fā)布軟件,其次可以相當自由地開發(fā)本發(fā)明保護軟件。在本發(fā)明中,這種分離對保護軟件段所需成本的影響是主要的。通過利用本發(fā)明保護多個軟件段并且獨立于軟件設計者的單個裝置,可以將本發(fā)明裝置的成本分散到所有使用它的軟件設計者,從而降低本發(fā)明單個裝置的成本并且為用戶接受。
此外,本發(fā)明提供的所述分離使得軟件保護裝置獨立于利用所述保護裝置的軟件而出售。本發(fā)明在使用安全性和分離軟件產品價格中的作用可以用于其他操作。這些操作可以是提供使用戶不能修改或偽造的機密信息的操作。因此可以用作訪問給定系統(tǒng)的工具。因此本發(fā)明構成了保護同時提供使用功能的軟件的裝置。這些函數(shù)的結果是降低了本發(fā)明裝置的成本和保護給定軟件段的成本。因此本發(fā)明保護軟件變?yōu)橛幸嬗谛⌒秃痛笮蛙浖S商的系統(tǒng)。本發(fā)明的系統(tǒng)可以在軟件工業(yè)和保護中產業(yè)化。
顯然,本發(fā)明并不局限于上述實施例和附圖。在不偏離本發(fā)明范圍的前提下可以作多種修改。
權利要求
1.一種與來自多個不同軟件設計者的多個軟件段同時使用以提供保護從而防止在不符合所述軟件設計者設定的條件下使用的系統(tǒng),其特征在于包含閱讀器(LCL),具有至少一個通信外設(網(wǎng)絡、I/O端口),創(chuàng)建使數(shù)據(jù)能夠與保護軟件交換的上通信層一次可編程的微控制器(100),它在單個電子單元內組合由接口(106)分離的兩個部分(130,120);以及卡型便攜式裝置(CL),用于存儲大量使用保護軟件的授權,裝置包括可移去的大存儲容量記錄模塊和安全地防止未授權侵入內部電路的微控制器(400)。
2.如權利要求1所述的系統(tǒng),其特征在于微控制器(100)的部分(130)包含至少一個非易失存儲器模塊(111)、易失存儲器模塊(109)、I/O串行端口(151)、實時內部時鐘(104)和主控處理器(CPU1)。
3.如權利要求1或2所述的系統(tǒng),其特征在于微控制器(100)的部分(120)包含至少一個易失存儲器模塊(110)和從處理器(CPU2)。
4.如權利要求1-3中任意一項所述的系統(tǒng),其特征在于微控制器(100)在物理和邏輯上保證內部存儲器空間的安全,防止未授權讀取和/或修改,并且保證存儲器(110)內程序執(zhí)行的安全,防止在所述存儲器空間內執(zhí)行的給定程序在程序執(zhí)行之前可能從微控制器(100)提取任何存在的數(shù)據(jù)。
5.如權利要求1-4中任意一項所述的系統(tǒng),其特征在于微控制器(400)具有至少一個OTPEPROM存儲器模塊(407)或等價物、DRAM動態(tài)存儲器模塊(107)或等價物等以及處理器(CPU)。
6.如權利要求1-5中任意一項所述的系統(tǒng),其特征在于閱讀器包括無線接收機以能實現(xiàn)離線購買使用保護軟件的權利的操作,更新微控制器(100,400)或者管理閱讀器(LCL)和便攜式裝置(CL)。
7.如權利要求1-6中任意一項所述的系統(tǒng),其特征在于閱讀器包含通信外設,用于連接遠端中央系統(tǒng)以能實現(xiàn)購買使用包含軟件權利的操作,更新微控制器(100,400)或者管理閱讀器(LCL)和便攜式裝置(CL)。
8.如權利要求1-7中任意一項所述的系統(tǒng),其特征在于微控制器得到安全保護,防止物理和/或邏輯攻擊,并且存儲至少一個代碼序列和數(shù)字密鑰以用于實現(xiàn)信息的安全傳送,將使用保護軟件的權利從便攜式裝置(CL)轉移至另一閱讀器(LCL)或者便攜式裝置(CL)。
9.如權利要求1-8中任意一項所述的系統(tǒng),其特征在于包括受到安全保護的內部備份,防止未授權讀取和/或修改。
全文摘要
本發(fā)明涉及保護軟件不被未授權使用。閱讀器裝置(LCL)使得來自多個不同軟件設計者的多個軟件段同時得到保護并且包括至少一個通信外設(網(wǎng)絡、I/O端口)和一次可編程的微控制器(100),微控制器在一塊硅片內組合由接口分離的兩個部分。集成電路在邏輯和物理上得到保護,防止未授權侵入的企圖。與智能卡相比便攜式裝置體積較小并且與裝置LCL連用。與裝置LCL一起構成本發(fā)明的第二單元。它至少包含一個存儲容量大的可移去存儲模塊,并且微處理器得到安全保護,防止未授權侵入內部電路。本發(fā)明由此借助一個裝置獨立于發(fā)行者保護了多個軟件段。
文檔編號G06F21/12GK1295682SQ9980457
公開日2001年5月16日 申請日期1999年1月29日 優(yōu)先權日1998年1月29日
發(fā)明者李順強 申請人:李順強