專利名稱:用于使用防止篡改硬件以提供復制保護和在線安全的方法和系統的制作方法
背景技術:
1.發明領域本發明總體上涉及軟件復制保護和用于保護通信協議的方案,尤其涉及防篡改硬件密碼電路的使用以確保復制保護的完整性并保護在在線通信使用的通信協議消息和結構、如在線游戲中。
2.相關技術的討論計算機娛樂游戲系統,如Sony的PlayStation和P1ayStatio2在最近幾年已經變成最成功的消費者電子產品中的一部分占滿了貨架。不幸的是,伴隨著這些成功,潛在的增加了希望不適當地篡改系統和相關軟件的用戶的濫用。一些人的以特定方式修改特定游戲以實現特殊或不平常的結果,甚至可能從該修改軟件的銷售和/或分發中非法獲益的歪曲思想驅使了該濫用。明顯的,游戲出版者主要關心的一個問題是他們軟件的盜版,因為這種修改可以導致在公眾中軟件版本不相容的循環,這能引起混亂并甚至損害游戲出版者的信譽和誠信。
同樣潛在地存在有關在線或網絡啟動游戲系統的濫用。例如,電腦黑客或惡作劇者可以執行所謂的“中間人(man in the middle)”攻擊,借此黑客試圖截取在兩個游戲系統之間通過網絡(例如因特網)傳輸的消息。黑客的動機可能是希望欺騙或破壞兩個合法用戶的游戲。再者,該濫用能不利地引起混亂和無辜用戶中的嚴重破壞,最終導致公眾對系統和游戲本身產生不合理的不信任。
本發明涉及有關這些和其他背景信息因素。
發明概述本發明通過提出一種操作系統的方法,有利地處理了上述需要和其他需要。該方法包括以下步驟從系統的存儲設備中讀取一部分軟件代碼,其中這一部分軟件代碼在輸入系統之前已經用第一密鑰進行數字簽名;將這一部分軟件代碼發送給包含在與系統有關的防篡改電路中的密碼單元;使用在防篡改電路中存儲的第二密鑰,利用密碼單元解密對應于這一部分軟件代碼的簽名文件以形成解密的簽名文件;通過使用解密的簽名文件,確定這一部分軟件代碼是否有效;并且如果這一部分軟件代碼無效則阻止系統操作。
在另一實施例中,本發明被特征化為基于處理器的系統,該系統包括存儲設備、防篡改電路、包含在防篡改電路中的密碼單元和處理電路。配置該處理電路以從存儲設備中讀取一部分軟件代碼,這一部分軟件代碼在輸入系統之前已經用第一密鑰進行數字簽名,并且發送這一部分軟件代碼給密碼單元。配置該密碼單元以使用在防篡改電路中存儲的第二密鑰來解密對應于這一部分軟件代碼的簽名文件,并且確定這一部分軟件代碼是否有效。進一步配置該處理電路以在這一部分軟件代碼無效時,阻止系統的操作。
在另一實施例中,操作系統的方法包括以下步驟通過網絡從遠程服務器接收系統中的第一密鑰;從系統中的存儲設備中讀取一部分加密的代碼;將這一部分加密的代碼發送給包含在與系統有關的防篡改電路中的密碼單元;利用密碼單元使用第一密鑰解密這一部分加密的代碼以形成解密的代碼;并且使用解密的代碼通過網絡進行通信。
在另一實施例中,基于處理器的系統包括存儲設備、防篡改電路、包含在防篡改電路中的密碼單元和處理電路。配置該處理電路以通過網絡從遠程服務器接收第一密鑰,從存儲設備中讀取一部分加密代碼,發送這一部分加密代碼給密碼單元。配置該密碼單元以使用第一密鑰來解密這一部分加密的代碼以形成解密的代碼,并且進一步配置該處理電路使用該解密的代碼通過網絡進行通信。
通過參考下面的本發明的詳細描述和附圖能更好的理解本發明的優點和特征,該附圖闡明了其中使用本發明原理的說明性實施例。
附圖概述從下面更加詳細的描述并結合下列附圖,本發明的上述和其他方面、特征和優點將更加明顯,其中
圖1是描述根據本發明的一個實施例的系統的框圖;圖2A和2B是描述可用于操作圖1所示的系統的根據本發明實施例的典型方法的流程圖;圖3是描述根據本發明另一實施例的系統的框圖;圖4A和4B是描述可用于操作圖3所示的系統的根據本發明實施例的典型方法的流程圖;圖5A、5B和5C是描述圖1和3所示的系統的替換配置的框圖;和圖6是描述根據本發明實施例的掌控過程的流程圖。
相應的參考字符表示貫穿若干視圖的相應部分。
本發明的詳細描述參考圖1,描述了根據本發明實施例的系統100。該系統100可以包括游戲系統或操縱臺,如過去、現在或將來版本的流行的Sony PlayStation,或其他類型的計算機系統、處理系統、游戲系統以及包括一個或多個在此描述的特征的系統等。該系統100能使用當前可用的商業密碼算法以減少盜版或逆向操作(reverse engineering)的威脅。以這樣的方式使用當前的復制保護技術,以便通過使用數字簽名核查軟件的完整性。
該系統100典型地包括存儲設備102和通過主要系統總線106互連的處理電路104。該存儲設備102可包括任何類型的存儲設備,該存儲設備具有可移動計算機可讀介質108,如數字通用盤(DVD)驅動器、光盤(CD)驅動器,任何其它類型的光盤驅動器、任何類型的高容量磁盤驅動器,如Iomega公司的Zip驅動器,等等。該存儲設備102可選擇地包括具有可移動計算機可讀介質108的SonyMagicGateTM或Memory Stick介質插槽,該計算機可讀介質包括MagicGateTM或Memory Stick介質。如下面將要討論,該存儲設備102可選擇地包括硬盤驅動器。該處理電路104可包括中央處理單元(CPU)110和隨機存取存儲器(RAM)112。
根據本發明,該系統100也包括防篡改電路120。防篡改電路是一種典型的電路,當一些人試圖修改或篡改它時,其摧毀自身。典型地耦合到系統總線106的防篡改電路120可包括任何類型的防篡改電路,如那些在智能卡技術中用于數字現金交易的當前可利用的防篡改電路。在系統100的該實施例中,該防篡改電路120包括在系統100操縱臺自身內硬布線的內部防篡改電路。然而,如下所討論,該防篡改電路120能選擇地作為外部或“附加”部件實現,如存儲卡或PCMCIA卡,并且甚至可包括附加功能。
該防篡改電路120優選地包括密碼單元122。該密碼(或“保密”)單元122可包括專用于加密和解密的處理器或其它電路。通過使保密單元122包含在防篡改外殼120中,用于實際解密的算法十分安全地被保存。
該系統100使用在防篡改電路120中的密碼單元122以通過使用利用公共/私有密鑰加密技術的數字簽名,來確保復制保護的完整性和系統軟件的機器代碼的完整性。公共/私有密鑰加密技術是公知的使用一對密鑰(號碼串)進行加密的非對稱方案。即,該公共密鑰加密數據,并且對應的私有或“秘密”密鑰解密它。對于數字簽名,該過程相反。即,發送者使用私鑰以產生能被擁有對應的公鑰的任何人讀取的唯一電子數,該公鑰校驗來自發送者的信息是正確的。因此,該用戶發布公鑰給公眾,公眾能使用它加密將發送給用戶的消息并用于解密用戶的數字簽名。該用戶秘密地保存私鑰,并使用它加密數字簽名和解密接收的消息。該數字簽名方案是優選地用在本發明的第一方面中的技術。
因此,根據本發明的一個實施例,公鑰PUBLIC KEY1和公共/私有密鑰對PUBLIC KEY2/PRIVATE KEY2也被包含于或存儲在防篡改電路120中。該密鑰PUBLIC KEY1必須是用于所有系統單元的相同密鑰,該系統單元由意圖使用由密鑰PRIVATE KEY1掌控的介質的任何特定生產商分配(下面描述)。該密鑰對PUBLIC KEY2/PRIVATE KEY2最好是用于每個系統單元的唯一密鑰對,但這仍舊不是必須的。因為這些密鑰被封裝在防篡改外殼120中,對于每個人,包括用戶和游戲開發者本人是看不見的。這減小了在游戲開發公司內部人員泄露密鑰給外部的可能性。而且,該防篡改電路120可包括附加密鑰或密鑰對,以防一個密鑰的安全性被破壞。
圖2A描述了用于操作系統100的根據本發明的一個實施例的方法200。該方法200對于校驗在系統100中使用的軟件的復制保護是有用的。在介質(例如,磁盤)108被插入到系統100中之前,用密鑰、如PRIVATE KEY1對用于游戲的至少一部分軟件代碼進行數字簽名(圖1)。例如,當游戲由生產商掌控時,可以使用僅僅生產商知道的密鑰PRIVATE KEY1對軟件代碼的關鍵部分進行數字簽名。通過范例,可以被簽名的一部分代碼是磁盤的內容表、應用本身、可執行的文件、引導基本輸入輸出系統(boot bios)和任何其他不應當被第三方修改的敏感數據。
盡管也可以使用唯一的密鑰對磁盤108的內容進行加密,但簽名應用能校驗簽名數據的完整性。即使黑客改變了磁盤108本身的內容,黑客也不能正確地產生用于新代碼的有效簽名,因為需要生產商私鑰來做這些。
在步驟202,包括數字簽名部分代碼的軟件代碼由系統100接收。通過范例,通過用戶將磁盤108插入到存儲設備102中,或通過從網絡下載該代碼并將代碼存儲在存儲設備上,可以由系統100接收軟件代碼(下面描述)。在系統100接收代碼后,控制進行到步驟204,在此處理電路104從存儲設備102讀取一部分軟件代碼。被讀取的這一部分軟件代碼最好是在代碼輸入到系統100之前已經用PRIVATE KEY1進行數字簽名的一部分代碼。在步驟206中,該處理電路104發送這一部分軟件代碼給包含在防篡改電路120中的密碼單元122。例如,如果這一部分軟件代碼是內容表,則該系統100從磁盤108中讀取內容表并將它發送給密碼單元122。
在步驟208,該密碼單元122使用在防篡改電路120中存儲的PUBLIC KEY1來解密對應于這一部分軟件代碼的簽名文件。該密鑰PUBLIC KEY1典型地是生產商公鑰,并如上所述,它可以與系統單元的實際數量相同。在步驟210,該密碼單元122使用解密的簽名文件以確定這一部分軟件代碼是否有效。如步驟212所示,如果這一部分軟件代碼有效,則系統100的操作如步驟214所示那樣正常繼續。另一方面,如果這一部分軟件代碼無效,如步驟216所示,阻止系統100的操作。通過范例,通過阻止系統100的引導處理可以阻止系統100的操作。因此,在代碼是無效的情況下,該系統100操縱臺將試圖加載修改的磁盤108,發現簽名是無效的,并拒絕引導該磁盤108。這樣,如果一些人試圖修改磁盤108上的軟件,該軟件將不在系統100中運行。
圖2B描述了根據本發明的一個實施例用于執行步驟210(圖2A)、即確定這一部分軟件代碼是否是有效的典型方法。尤其是,在步驟220,該密碼單元122將這一部分軟件代碼哈希計算(hash)為第一消息摘要。即,如果這一部分軟件代碼包括內容表,則該密碼單元122將內容表哈希計算為第一消息摘要。在步驟222,該密碼單元122使用來自這一部分軟件代碼中的解密的簽名文件來形成第二消息摘要。在步驟224,該密碼單元122比較第一消息摘要和第二消息摘要。如步驟226所示,如果第一消息摘要與第二消息摘要匹配,則在步驟228,密碼單元122表示這一部分代碼是有效的。另一方面,如果兩個摘要不匹配,則在步驟230該密碼單元122表示這一部分代碼是無效的。換句話說,如果兩個摘要匹配,則能證實這一部分代碼,如內容表,自從被生產商數字簽名后沒有被修改,并且因此允許繼續該引導過程。
對于一個或多個軟件代碼的附加部分,可以重復上述過程。即,從存儲設備102中讀取一個或多個軟件代碼的附加部分,每個部分代碼在輸入到存儲設備102之前已經用密鑰PRIVATE KEY1進行過數字簽名。利用密碼單元122使用該密鑰PUBLIC KEY1解密對應于一個或多個軟件代碼的附加部分的簽名文件,并且如果任何一個或多個軟件代碼的附加部分是無效的,則阻止系統100的操作。
例如,無論何時從磁盤108中加載可執行文件,在處理電路104中的加載器發送可執行文件給密碼單元122以校驗該文件是否有效。該密碼單元122將可執行文件哈希計算為消息摘要并使用生產商的公共密鑰、如PUBLIC KEY1來解密對應的簽名文件。該密碼單元122比較產生的消息摘要與解密的摘要,并且如果摘要匹配,則能證實該可執行文件自從被生產商簽名以來沒有被修改,并且允許引導過程繼續。如果摘要不匹配,則該可執行文件自從被生產商簽名以來已經被修改,并且阻止系統100的操作,如通過阻止引導過程繼續。每次可執行部分代碼被加載時比較簽名文件有助于保護“交換手段(swaptrick)”類型的復制保護失敗。這是由于為了真實性,已經被數字簽名的可執行代碼的每個比特必須被檢查。
因此,上述過程與基于傳統軟件的密碼系統相比具有顯著優點。即,如果用于解密加密的數據的密鑰存儲在磁盤上,這意味著它能被一些人利用工具對在磁盤上發現的源代碼進行反匯編而發現。然而,由于密鑰安全的藏在防篡改硬件120中,這大大地減小了密鑰被偷取的可能性。
再次參考圖1,上面已經描述了該存儲設備102可選擇地包括硬盤驅動器。在該情況下,用于游戲或其他應用的軟件代碼可以從網絡130、如因特網或America Online網絡下載到系統100中。下載的軟件將存儲在硬盤驅動器102上。通過在系統100中包括耦合到系統總線106的調制解調器132,可以執行該下載。因為調制解調器132以及產生的到網絡130的連接是本發明實施例中的可選特征,它們用虛線示出。
如果使用到系統100的軟件下載,則已經用密鑰PRIVATE KEY1進行數字簽名的一個或多個軟件部分代碼能被加載到遠程服務器134上。或者,該遠程服務器134能實際執行該代碼的數字簽名過程。可以以與上面關于磁盤108所描述的相同的方式對該軟件進行數字簽名。然后該軟件從遠程服務器134,經過網絡130,通過調制解調器132傳送到系統100,它被存儲在硬盤驅動器102中。如果希望,可在下載軟件之前建立系統100和遠程服務器134之間的安全的通信信道。如本領域中公知的那樣,通過交換系統100的PUBLIC KEY2和遠程服務器134的PUBLIC KEY3可建立安全的通信信道。而且,通過使用數字證書,該安全的通信信道能被進一步強化,該數字證書對從因特網下載的軟件來自正規源來說是一種擔保。數字證書提供有關軟件的信息,諸如作者的身份和帶有證書授權(CA,Certificate Authority)的軟件的日期,同時也是防篡改的措施。然而,數字證書的使用不是必需的。
圖3描述了根據本發明另一個實施例的系統100的操作。通過使用調制解調器132和用于存儲設備102的硬盤驅動器,該系統100能保持寬帶連接,允許系統100充當用于電子商務應用和網絡游戲能力的平臺的網絡連接。這允許系統100的用戶通過網絡130與其他客戶系統、如客戶系統140、142、144的用戶玩游戲。
然而,如上所述,存在有關在線或網絡激活的游戲系統的潛在濫用,如所謂的“中間人”攻擊。例如,如果用于在線游戲的通信協議的格式包含在游戲盤108本身中,沒有什么能阻止黑客逆向操縱來自機器代碼的格式。一旦黑客獲得通信協議,他或她將能夠截取在玩游戲的兩個系統之間的消息,這能夠誤導或破壞玩游戲。
圖3中描述的本發明的實施例利用遠程服務器134的存在。即,為了協調在客戶機之間的網絡游戲,服務器,如遠程眼務器134,將典型地被用于處理客戶機的注冊/仲裁。根據本發明,游戲軟件中機器代碼的敏感部分,如定義通信協議的代碼被加密。一旦與遠程服務器134連接,就通過優選地加密的信道將密鑰從遠程服務器134發送給系統100。然后系統100使用該密鑰以解碼通信協議格式。這意味著在任何時候通信協議在它的未加密格式中對終端用戶來說都無法得到,這阻止了黑客獲得它。因此,該實施例,系統100通過使用加密提供保護代碼的敏感部分,如在客戶機/服務器在線游戲中使用的通信協議消息和結構。
圖4A描述了操作根據圖3描述的本發明實施例的系統100的方法400。在介質(如,磁盤)108插入到系統100中之前,存儲在磁盤108上的至少一部分代碼被加密。被加密的部分代碼最好包括用于發生在在線游戲中的通信的通信協議。使用的加密類型可以包括任何類型的加密,如,例如公共/私有密鑰加密技術的非對稱方案,,或對稱方案。
在步驟402,系統100接收包括加密部分的代碼。可以通過在存儲設備中接收磁盤108來接收代碼,或通過調制解調器132接收代碼并將其存儲在硬盤驅動器中。在步驟404,該系統100通過網絡130建立與遠程服務器134的通信。該遠程服務器134典型地包括處理網絡游戲用戶機的注冊/仲裁的服務器。在步驟406中,該系統100通過網絡130從遠程服務器134中接收密鑰,例如KEY4。通過圖3中的箭頭136表示該接收。密鑰KEY4可以包括任何類型的密鑰。例如,如果非對稱方案用于加密通信協議,則密鑰KEY4可以包括公鑰,或如果對稱方案用于加密通信協議,則KEY4可以包括簡單的對稱密鑰。
在步驟408,該處理電路104從存儲設備102中讀取一部分加密代碼,并且在步驟410中,該處理電路104發送這一部分加密代碼給包含在防篡改電路120中的密碼單元122。在步驟412,該密碼單元122使用從遠程服務器134接收的密鑰、在該情況下是KEY4來解密這一部分加密的代碼。解密的通信協議消息格式被存儲在存儲器、如RAM112中。最后,在步驟414,該系統100使用解密的通信協議開始安全通信。即,系統100使用解密的通信協議用于通過網絡130進行通信,從而與其它系統、如圖3中通過箭頭138所示的系統140一起玩游戲。
圖4B描述了根據本發明的一個實施例的用于執行步驟404、即建立與遠程服務器134的通信的步驟的典型方法。該方法使用存儲在系統100的防篡改電路120中的公共/私有密鑰對PUBLIC KEY2/PRIVATE KEY2和存儲在遠程服務器134中的公共/私有密鑰對PUBLIC KET3/PRIVATE KEY3來建立在系統100和遠程服務器134之間的安全的通信信道。尤其是,在步驟420,系統100發送它的PUBLIC KEY2給遠程服務器134,并且在步驟422,該系統100從遠程服務器134接收PUBLIC KEY3。該系統100和該服務器134使用這些密鑰協商安全信道,這在本領域中是公知的。在步驟424,該系統100和遠程服務器134實施安全通信,并根據上述步驟406,系統100通過安全的通信信道從遠程服務器134接收密鑰KEY4.。
作為本發明的選擇性特征,該遠程眼務器134,或一些其他服務器,可以充當認證中心(CA)。該認證中心具有每個系統、如系統100、140、142、144的序列號的列表,該序列號常常由生產商產生。該認證中心也可存儲用于所有系統的唯一的公鑰。當一個系統連接到該認證中心時,該認證中心可請求系統的序列號,并通過它的序列號肯定地識別出該系統以證實它是合法系統。在產生該肯定識別后,如果合適,該認證中心然后可以將正確的公鑰發送給系統。接收到它的公鑰后,于是該系統將具有與另一個系統玩在線游戲的能力。即,在兩個系統玩在線游戲之前將會要求他們必須交換他們的公鑰。這類可選的硬件標識(“硬件ID”)將進一步阻止黑客具有干擾在線通信、如在線游戲的能力。
因此,通過使用該方法400(圖4A),代碼的敏感部分、如通信協議消息格式對于終端用戶來說是無法以它們未加密格式得到的。這意味著截取正在兩個系統之間通信的消息的黑客將不能夠解密它并不能用不同的消息替換該消息。理論上,如果黑客能夠獲得上述的數字簽名,或具有直接訪問運行的系統100上的RAM112的工具,他或她能夠從RAM112中得到密鑰KEY4。然而,與對來自在個人計算機上能被讀取的磁盤的源代碼進行反匯編相比,這更是相當困難的。
上面已提到防篡改電路120可替換地作為外部或“附加”部件、如存儲卡或PCMCIA卡實現。參考圖5A,描述了根據本發明另一實施例的系統100的一個版本,其中該防篡改電路120被實現為可移動的類似卡的設備,如PC卡或PCMCIA卡。在該實施例中,該防篡改電路120能容易地插入和移出系統100中的接口槽160。該接口槽160將典型地耦合到系統總線106。
參考圖5B,描述了根據本發明另一個實施例的系統100的一個版本,其中該防篡改電路120被實現為外部部件。該防篡改電路120通過電纜164和接口166耦合到系統100。耦合到系統總線106的接口166可包括許多不同類型的接口,如通用串行總線(USB)或i.LINK(IEEE1394)。
參考圖5C,描述了根據本發明另一個實施例的系統100的一個版本,其中該防篡改電路120被實現在如使用Sony MagicGateTMMemory Stick技術的小型類卡介質上。MagicGateTMMemory Stick介質結合MagicGate技術,它是創新的音樂版權保護技術。該MagicGateTMMemory Stick介質包括單板閃存170和包括加密電路174的MagicGateTM電路172。該MagicGateTMMemory Stick介質通過介質槽176與系統100連接,該介質槽176將典型地耦合到系統總線106。作為選擇性特征,該系統100也可包括它自己的MagicGateTM電路178,意味著根據MagicGate技術,系統100可起MG應用的作用。
根據本發明的一個實施例,在MagicGateTMMemory Stick介質中的加密電路174可提供如上所述的密碼單元122的功能。而且,在MagicGateTMMemoryStick介質中的單板閃存170可用于存儲上述的密鑰,即,PUBLIC KEY1和PUBLIC KEY2/PRIVATE KEY2。這樣,該MagicGateTMMemory Stick介質能提供與上述防篡改電路120基本上相同的功能。
該MagicGateTMMemory Stick介質被認為包括某個等級的防篡改保護,并且如果需要,該等級的防篡改保護可被加強用于額外的保護。而且,在系統100中的MagicGateTM電路178,如果被包括,可根據MagicGate技術來使用以證明一個有效的MagicGateTMMemory Stick介質已經被插入到介質槽176中。因此,MagicGateTM電路178可檢測到對介質的任何篡改,這可阻止具有特殊介質的系統100的操作。
應當理解該MagicGateTMMemory Stick介質僅僅是外部、可移動類卡式設備的一個范例,該類卡式設備可用于實現這里所述的防篡改電路120。通過另一個范例,該防篡改電路120也可以實現在用于Sony PlayStation2的存儲卡中。
參考圖6,描述了根據本發明的一個實施例的掌控過程600。該掌控過程600可用于產生能夠利用上述方法的計算機可讀介質,如DVD或CD。尤其是,在步驟602,游戲開發者產生未簽名的代碼并將代碼刻在磁盤、例如DVD或CD上。在步驟604,該磁盤被發送給生產商。在步驟606,該生產商加密代碼的敏感部分,如通信協議。該代碼的敏感部分可由游戲開發者指定。在步驟608,該生產商使用私鑰為特定部分的代碼產生數字簽名。可以被數字簽名的部分代碼包括內容表、一個或多個可執行文件等。最后,在步驟610,該生產商產生具有修改的數據的新的主盤。
如上所述,系統100通過使用有關的防篡改電路能減小盜版和逆向操作的威脅,該防篡改電路包含密碼單元和一個或多個密鑰。通過使用包含在防篡改電路中的密碼單元和一個或多個密鑰來解密用于一部分接收的軟件代碼的簽名文件,對于已經被不正確地修改或篡改的代碼,該系統100的操作可被阻止。該防篡改電路顯著地阻礙黑客獲得用于實際解碼的密鑰或算法的能力。而且,該防篡改電路可被用于阻礙黑客干擾在線通信、如在線游戲的能力。即,系統100接收的一個或多個部分代碼、如通信協議可以在系統100接收代碼之前被加密。該系統100能連接用于協調在線游戲的遠程服務器,并獲得由被包含在防篡改電路中的密碼單元使用的密鑰,以解密該通信協議。然后該系統使用通信協議通過網絡與其他客戶機通信,如玩在線游戲。因為黑客不能訪問未加密的通信協議,黑客干擾在線游戲的能力被大大地減小。
盡管在此公開的本發明已通過特定實施例及其應用進行描述,然而對于本領域技術人員來說在不脫離權利要求中描述的本發明范圍的情況下,本發明可進行大量的修改和變化。
權利要求
1.一種操作系統的方法,包括以下步驟從系統中的存儲設備讀取一部分軟件代碼,其中這一部分軟件代碼在輸入系統之前已經用第一密鑰進行了數字簽名;將這一部分軟件代碼發送給包含在與系統有關的防篡改電路中的密碼單元;利用密碼單元使用在防篡改電路中存儲的第二密鑰來解密對應于這一部分軟件代碼的簽名文件,以形成解密的簽名文件;通過使用解密的簽名文件確定這一部分軟件代碼是否有效;以及如果這一部分軟件代碼無效,則阻止系統的操作。
2.根據權利要求1的方法,其中防篡改電路包括在系統中硬布線的內部防篡改電路。
3.根據權利要求1的方法,其中防篡改電路包括外部防篡改電路。
4.根據權利要求1的方法,其中防篡改電路包括類卡式可移動防篡改電路。
5.根據權利要求1的方法,其中確定這一部分軟件代碼是否有效的步驟包括以下步驟將這一部分軟件代碼哈希計算為第一消息摘要;用解密的簽名文件形成第二消息摘要;比較第一消息摘要和第二消息摘要;和如果第一消息摘要和第二消息摘要不匹配,則指示這一部分軟件代碼是無效的。
6.根據權利要求1的方法,其中存儲設備包括在其中存儲有軟件代碼的可移動計算機可讀介質。
7.根據權利要求1的方法,其中存儲設備包括在其中存儲有軟件代碼的硬盤驅動器。
8.根據權利要求1的方法,還包括步驟在系統接收該軟件代碼之前,用第一密鑰至少對這一部分軟件代碼進行數字簽名。
9.根據權利要求1的方法,還包括以下步驟從存儲設備中讀取一個或多個軟件代碼附加部分,每個軟件代碼附加部分在輸入到系統之前已經使用第一密鑰進行了數字簽名;利用密碼單元使用第二密鑰解密對應于一個或多個軟件代碼附加部分的簽名文件;和如果任何一個或多個軟件代碼附加部分是無效的,則阻止系統的操作。
10.根據權利要求1的方法,還包括以下步驟通過網絡從遠程服務器接收第三密鑰;從存儲設備中讀取一部分加密的代碼;發送這一部分加密的代碼給密碼單元;和利用密碼單元使用第三密鑰解密這一部分加密的代碼。
11.根據權利要求10的方法,其中這一部分加密的代碼包括設置成用于通過網絡進行通信的通信協議。
12.根據權利要求11的方法,還包括步驟使用通信協議通過網絡進行通信。
13.根據權利要求10的方法,還包括以下步驟在接收第三密鑰的步驟之前通過網絡與遠程服務器建立安全的通信信道;和通過該安全的通信信道從遠程服務器接收第三密鑰。
14.一種基于處理器的系統,包括存儲設備;防篡改電路;包含在防篡改電路中的密碼單元;和處理電路,被設置成用于從存儲設備中讀取一部分軟件代碼,這一部分軟件代碼在輸入系統之前已經用第一密鑰進行數字簽名,并且發送這一部分軟件代碼給密碼單元;其中配置該密碼單元以使用在防篡改電路中存儲的第二密鑰,來解密對應于這一部分軟件代碼的簽名文件,并且確定這一部分軟件代碼是否有效;其中進一步配置該處理電路用于當這一部分軟件代碼無效時阻止系統的操作。
15.根據權利要求14的基于處理器的系統,其中防篡改電路包括在系統中硬布線的內部防篡改電路。
16.根據權利要求14的基于處理器的系統,其中防篡改電路包括外部防篡改電路。
17.根據權利要求14的基于處理器的系統,其中防篡改電路包括類卡式可移動防篡改電路。
18.根據權利要求14的基于處理器的系統,其中設置密碼單元以通過以下步驟來確定這一部分軟件代碼是否有效將這一部分軟件代碼哈希計算為第一消息摘要,用解密的簽名文件形成第二消息摘要,比較第一消息摘要和第二消息摘要,并且如果第一消息摘要和第二消息摘要不匹配,則指示這一部分軟件代碼是無效的。
19.根據權利要求14的基于處理器的系統,其中存儲設備包括在其中存儲有軟件代碼的可移動計算機可讀介質。
20.根據權利要求14的基于處理器的系統,其中存儲設備包括在其中存儲有軟件代碼的硬盤驅動器。
21.根據權利要求14的基于處理器的系統,其中進一步設置該處理電路以從存儲設備中讀取一個或多個軟件代碼附加部分,每個軟件代碼附加部分在輸入到系統之前已經使用第一密鑰進行數字簽名,利用密碼單元使用第二密鑰解密對應于一個或多個軟件代碼附加部分的簽名文件,和如果任何一個或多個軟件代碼附加部分是無效的,則阻止系統的操作。
22.根據權利要求14的基于處理器的系統,其中進一步設置該處理電路以通過網絡從遠程服務器接收第三密鑰,從存儲設備中讀取一部分加密的代碼,發送這一部分加密的代碼給密碼單元,并且其中進一步設置該密碼單元以使用第三密鑰來解密這一部分加密的代碼。
23.根據權利要求22的基于處理器的系統,其中這一部分加密的代碼包括設置用于通過網絡進行通信的通信協議。
24.根據權利要求23的基于處理器的系統,其中進一步設置該處理電路以使用通信協議通過網絡進行通信。
25.一種操作系統的方法,包括以下步驟通過網絡從遠程服務器接收系統中的第一密鑰;從系統中的存儲設備中讀取一部分加密的代碼;將這一部分加密的代碼發送給包含在與系統有關的防篡改電路中的密碼單元;利用密碼單元使用第一密鑰解密這一部分加密的代碼,以形成解密的代碼;和通過網絡使用解密的代碼進行通信。
26.根據權利要求25的方法,其中解密的代碼包括設置用于通過網絡進行通信的通信協議。
27.根據權利要求25的方法,還包括以下步驟在接收第一密鑰的步驟之前通過網絡與遠程服務器建立安全的通信信道;和通過該安全的通信信道從遠程服務器接收第一密鑰。
28.根據權利要求27的方法,其中通過網絡與遠程服務器建立安全的通信信道的步驟包括步驟使用在防篡改電路中存儲的公共/私有密鑰對來建立該安全的通信信道。
29.根據權利要求25的方法,其中防篡改電路包括在系統中硬布線的內部防篡改電路。
30.根據權利要求25的方法,其中防篡改電路包括外部防篡改電路。
31.根據權利要求25的方法,其中防篡改電路包括類卡式可移動防篡改電路。
32.根據權利要求25的方法,還包括以下步驟從存儲設備中讀取一部分軟件代碼,這一部分軟件代碼在輸入到系統之前已經用第二密鑰進行了數字簽名;以及利用密碼單元使用存儲在防篡改電路中的第三密鑰,解密對應于這一部分軟件代碼的簽名文件。
33.根據權利要求32的方法,還包括以下步驟通過使用解密的簽名文件確定這一部分軟件代碼是否有效;和如果這一部分軟件代碼是無效的,則阻止系統的操作。
34.一種基于處理器的系統,包括存儲設備;防篡改電路;包含在防篡改電路中的密碼單元;和處理電路,配置該處理電路以通過網絡從遠程服務器接收第一密鑰,從存儲設備中讀取一部分加密的代碼,并發送這一部分加密的代碼給密碼單元;其中配置該密碼單元以使用第一密鑰來解密這一部分加密的代碼以形成解密的代碼;其中進一步配置該處理電路以使用該解密的代碼通過網絡進行通信。
35.根據權利要求34的基于處理器的系統,其中防篡改電路包括在系統中硬布線的內部防篡改電路。
36.根據權利要求34的基于處理器的系統,其中防篡改電路包括外部防篡改電路。
37.根據權利要求34的基于處理器的系統,其中防篡改電路包括類卡式可移動防篡改電路。
38.根據權利要求34的基于處理器的系統,其中解密的代碼包括設置用于通過網絡進行通信的通信協議。
39.根據權利要求34的基于處理器的系統,其中進一步設置該處理電路以通過網絡與遠程服務器建立安全的通信信道,和通過安全的通信信道從遠程服務器接收第一密鑰。
40.根據權利要求39的基于處理器的系統,其中進一步設置該處理電路以使用在防篡改電路中存儲的公共/私有密鑰對建立安全的通信信道。
41.根據權利要求34的基于處理器的系統,其中進一步設置該處理電路以從存儲設備中讀取一部分軟件代碼,這一部分軟件代碼在輸入到系統之前已經用第二密鑰進行數字簽名,并發送這一部分軟件代碼給密碼單元,并且其中進一步設置該密碼單元以使用在防篡改電路中存儲的第三密鑰解密對應于這一部分軟件代碼的簽名文件,和確定這一部分軟件代碼是否有效。
42.根據權利要求41的基于處理器的系統,其中進一步設置該處理電路用于當這一部分軟件代碼無效時阻止系統的操作。
全文摘要
系統(100)包括相關的防篡改電路(120),該電路包含密碼單元(122)和一個或多個密鑰。該系統接收具有一個或多個部分代碼的軟件(108),在由系統(202)接收該代碼之前已經對代碼進行數字簽名。包含在防篡改電路中的密碼單元和密鑰之一被用于解密一部分代碼的簽名文件。通過使用解密的簽名文件來確定這一部分代碼的有效性,并且如果由系統接收的這一部分代碼、如通信協議,也可在系統接收代碼之前被加密。該系統通過安全的通信信道從遠程服務器(134)獲得密鑰,并使用該密鑰和包含在防篡改電路中的密碼單元來解密該通信協議。然后該系統使用通信協議通過網絡(130)與其他客戶機通信,如玩在線游戲。
文檔編號G06F21/00GK1647444SQ03808452
公開日2005年7月27日 申請日期2003年3月31日 優先權日2002年4月16日
發明者W·M·麥卡羅爾 申請人:美國索尼電腦娛樂公司