TWI423136B - 在處理器之虛擬機器中安全地處理機密內容的方法與裝置 - Google Patents
在處理器之虛擬機器中安全地處理機密內容的方法與裝置 Download PDFInfo
- Publication number
- TWI423136B TWI423136B TW098134473A TW98134473A TWI423136B TW I423136 B TWI423136 B TW I423136B TW 098134473 A TW098134473 A TW 098134473A TW 98134473 A TW98134473 A TW 98134473A TW I423136 B TWI423136 B TW I423136B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- party
- content
- processor
- virtual machine
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 57
- 238000012545 processing Methods 0.000 title claims description 49
- 230000008569 process Effects 0.000 claims description 24
- 238000003860 storage Methods 0.000 claims description 13
- 238000013475 authorization Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 235000012431 wafers Nutrition 0.000 description 9
- 239000004065 semiconductor Substances 0.000 description 5
- 244000035744 Hura crepitans Species 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 102100022523 Acetoacetyl-CoA synthetase Human genes 0.000 description 2
- 101000678027 Homo sapiens Acetoacetyl-CoA synthetase Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Description
本發明有關加值型(premium)音訊/視訊內容的處理,尤其有關在執行內容播放器應用程式的處理器背景(context)外的內容處理(content processing)。
在傳統的計算環境中,通常由離散的處理器實行內容處理。例如,可提供此類硬體處理器以解碼高解析度內容。迄今,一直很難在單一的晶片上整合所有必要的內容處理。並且,完整的實現一般需要實現者成為第三方內容的授權採用者(licensed adopter),以獲得使用處理授權內容之演算法的權利及獲得擷取加密內容的授權金鑰。此類授權一般包括遵循(compliance)_及穩健性規則(robustness rules),以在實現上的瑕玼導致洩露機密資訊或內容時,確保授權者密文的機密性、責任義務及法律救濟。因此,一般有賴於第二方被授權者的軟體應用程式在以比較通用的格式將重新加密的視訊內容轉遞至圖形處理器或視覺效果處理器之前,至少部分利用中央處理單元等來處理內容。
很可惜的是,對於中央處理單元的依賴出現了一些限制。例如,在執行於CPU上的應用程式中操縱授權金鑰及演算法勢必涉及在處理期間的某個時點,會暴露在處理器中的此機密資訊。使用該等機密程序及密文來處理內容涉及在可能引起安全性弱點的此種單元中往返傳送。此外,即使是使用了竄改抵制(tamper resistance)技術,在針對虛擬化設計的中央處理器中執行仍導致無法保證例如超管理器的強健防竄改執行環境,或優先權高於執行
之虛擬機器的執行背景。再者,中央處理單元由於其一般性的電腦架構,對於某些類型的處理(如,加密等)比較沒有效率。額外的竄改抵制及重新加密程序導致過度耗用CPU,因而浪費電力又導致內容重放期間的電池壽命減少。因此需要解決這些及/或其他與先前技術有關的問題。
揭示一種在處理器上實現之處理內容以供輸出的安全虛擬機器系統、方法、及電腦程式產品。提供至少一個處理器。另外,提供至少一個在處理器上實現的安全虛擬機器,以解譯處理及輸出第三方內容的第二方之程式。虛擬機器系統提取允許產品上可以有按同樣方式執行相同程式的實現變化的根本(underlying)處理器硬體。此外,特意在虛擬機器環境中約束可程式化操作的範圍、輸入及輸出變數的類型、及在處理器中的程式執行,以減少程式的可能安全漏洞,並確保第二方密文的機密性及由第二方之程式管理的第三方內容。
圖1A根據一項具體實施例,顯示執行利用處理器產生解密內容之金鑰之程式的方法100。如圖所示,產生解密內容的程式。見操作102。一旦產生程式,即保護程式。見操作104。在一項具體實施例中,可藉由加密來保護程式。
在本說明的上下文中,程式是指能夠利用處理器所執行的任何程式。在一項具體實施例中,程式可包括能夠產生解密內容之金鑰的程式,其中內容是指能夠被加密的任何資料。內容亦可包
括專屬資訊(proprietary information)。
在此例中,可在處理器接收內容及產生解密內容之金鑰的程式。見操作106。另外,利用處理器執行解密內容的程式。見操作108。
在本說明的上下文中,處理器是指能夠處理資料以供顯示的任何處理器。例如,在各種具體實施例中,處理器可包括圖形處理器及視訊處理器中的至少一個。在一項具體實施例中,處理器可包括至少一個實現於處理器上處理內容以供輸出的安全虛擬機器。
圖1B根據一項具體實施例,顯示在處理器152上實現之處理內容以供輸出的安全虛擬機器150。如圖所示,提供至少一個處理器152。另外,提供至少一個實現於處理器上處理內容以供輸出的安全虛擬機器150。
在操作中,處理器152接收程式及內容作為輸入。在一項具體實施例中,虛擬機器150能夠執行處理內容的程式。例如,內容可在由虛擬機器150處理之前被加密。在此例中,處理包括解密內容。
處理另外包括重新加密內容。重新加密亦可發生在從處理器152輸出內容之前。重新加密也可發生在從處理器輸出內容之後。
在一項具體實施例中,複數個安全虛擬機器150可在處理器
152上實現。在此例中,可限制在多個虛擬機器152之間進行共享資訊。例如,可對虛擬機器152處理的資訊加以限制。在一項具體實施例中,此資訊可包括金鑰。
現將針對可視使用者需要而實現或不實現上述構造的各種選擇性架構及特徵,提出更多的解說性資訊。請特別注意,以下資訊是為了解說的目的而提出,因此不應以任何方式被視為具有限制性。可視需要在排除或包含所述其他特徵的情況下併入任何以下特徵。
圖2根據一項具體實施例,顯示產生、保護、及執行利用處理器產生解密內容之金鑰之程式的系統200。作為一實施例,本系統200可在圖1A及1B的背景及細節下實現。然而,系統200當然也可在任何所要環境中實現。亦請注意,上述定義在本說明均適用。
在操作中,從媒體202接收內容。在此例中,內容被加密。例如,利用金鑰加密內容。如圖所示,內容由被授權播放器廠商或其他獨立軟體廠商(ISV)204所接收。再者,播放器ISV 204可接收程式206,以在處理器(如,圖形處理器等)250上執行以處理內容。作為一實施例,播放器ISV 204可從記憶體228因執行應用程式而取得程式206。
在取得程式後,播放器204可將程式206發送給圖形處理器250。在一項具體實施例中,在將程式206發送給處理器250之前,可由播放器ISV 204加密程式206。
例如,程式206可先由播放器ISV 204產生後,再以加密保護。在一項具體實施例中,程式206可為處理器250從中接收內容的應用程式(如,內容播放器等)所使用。在此例中,程式206可由應用程式保護。根據內容,可由應用程式從記憶體228擷取程式206。
在一項具體實施例中,程式206在為應用程式擷取之前已經加密。例如,程式206在為應用程式擷取之前可利用公開金鑰來加密。在此例中,公開金鑰可由處理器250的製造商提供。
作為另一實施例,程式206可在由應用程式擷取之後被加密。在此例中,程式206可在執行時間中在由應用程式擷取之後被加密。另外,程式206可利用短暫金鑰(ephemeral key)來加密。例如,短暫金鑰可利用只儲存在處理器250上的資訊來產生。在一項具體實施例中,程式206可利用至少一個交換於應用程式及處理器250之間的憑證來加密。
一旦由處理器250接收後,利用解譯器208從內容導出標題金鑰210。在此例中,可將解譯器208視為能夠執行由處理器250接收之程式206之安全虛擬機器(VM)的一部分,以導出標題金鑰210。因此,程式206可包括允許虛擬機器執行以下動作的資訊:處理內容;導出標題金鑰210;操縱內容(如,將內容分成音訊串流及視訊串流等);及重新加密內容。
在一項具體實施例中,由虛擬機器處理的內容在處理之前已經加密。在此例中,處理包括解密內容。處理另外包括重新加密內容。例如,重新加密可發生在從處理器250輸出內容之前。
如上文所論述,程式可從應用程式接收。在此例中,可保護處理器250及應用程式間的通訊通道。例如,可利用至少一個憑證,保護處理器250及應用程式間的通訊通道。
在一項具體實施例中,安全虛擬機器可包括能夠用以分割內容為音訊串流及視訊串流的解多工器212。此外,程式206可包括資訊以允許與虛擬機器相關聯的重新加密視訊模組220及重新加密音訊模組214在內容輸出(如,顯示等)之前重新加密內容。請注意,視訊串流及音訊串流的重新加密是選擇性的。
使用系統200,內容及用以產生加密金鑰以解密內容的程式206可由處理器250接收,及可執行程式206以解密內容。另外,金鑰亦可利用處理器250來解密。
在一項具體實施例中,金鑰可包括至少一個與內容相關聯的內容金鑰及至少一個與從中接收內容及程式206的應用程式相關聯的應用程式金鑰。處理器250接著處理內容金鑰及應用程式金鑰以產生標題金鑰210。在此例中,標題金鑰210可用來解密內容。因此,可防止對與播放器ISV 204相關聯的中央處理單元(CPU)暴露金鑰。
一旦分割內容後,即將視訊內容發送給視訊解碼模組222以解碼、在訊框緩衝區224中儲存為像素、然後輸出至顯示器226。音訊內容可經由PCIE匯流排發送至解密模組216(如,與播放器ISV 204相關聯),及最後發送至音訊堆疊218以供輸出。
以此方式,可實現包括以下項目的系統:圖形處理單元(GPU);能夠在GPU上的安全內建虛擬機器上執行的安全微碼(即韌體);及在播放器ISV的CPU上執行的圖形驅動程式軟體,其共同地允許軟體播放器廠商對媒體安全地卸載處理(如,AACS處理等)。將金鑰操縱處理步驟(如,諸如在AACS中使用的這些步驟等)、內容串流解密及剖析、及內容串流修改程序移至GPU上的安全內建處理器,及以多個內容類型適用的方式提取(abstracting)這些步驟,可對與播放器ISV相關聯的元件金鑰及序列金鑰、媒體、及標題金鑰提供保護。此外,可用壓縮、未解碼及未加密的形式提供加值型視訊內容。
另外,可解除播放器ISV解密及重新加密初級視訊串流的工作,該工作佔去與處理音訊/視訊(AV)內容(如,受AACS保護的AV串流資料等)相關聯之CPU使用及功率消耗的大部分。此外,可利用系統200實現及支援多種內容類型、加密、及金鑰授權模型。
因此,可避免未受保護的內容及金鑰在CPU中及匯流排上流動。例如,安全程序在GPU上執行的背景可為硬體所保護,虛擬機器使用的記憶體可被保護,及程式可使用可由播放器ISV驗證的晶片私密金鑰/公開金鑰來簽署。
圖3根據一項具體實施例,顯示使用解譯器解譯所接收程式及內容的方法300。作為一實施例,本方法300可在圖1至2之功能及架構的背景中實現。例如,在一項具體實施例中,方法300可在圖2之解譯器208的細節背景中實行。然而,方法300當然
也可在任何所要環境中實行。同樣地,上述定義在本說明期間均適用。
如圖所示,接收位元組碼映像。見操作302。在一項具體實施例中,位元組碼映像可由GPU從播放器ISV接收。在此例中,位元組碼映像可包括與由播放器ISV發送之程式相關聯的程式碼。
一旦接收位元組碼映像後,隨即檢查位元組碼映像的簽章。見操作304。在此例中,檢查可包括驗證與可信來源相關聯的簽章。然後解密位元組碼映像。見操作306。一旦解密位元組碼後,即可解譯位元組碼。見操作308。
圖4根據一項具體實施例,顯示包括解譯所接收程式及內容之處理器402及安全虛擬機器404的系統400。作為一實施例,系統400可在圖1至3之功能及架構的背景中實現。然而,系統400當然也可在任何所要環境中實現。此外,上述定義在本說明均適用。
如圖所示,系統400包括:GPU 402,其包括一或多個安全內建處理器406;及安全虛擬機器404,其由內建處理器406主控。安全虛擬機器404可包括已簽署的安全微碼解譯器,其支援能夠施行密碼基元(primitive)以及視訊串流操縱及修補中的基元的位元組碼指令。利用解譯器,虛擬機器404可用作解譯器來解譯播放器ISV所提供的程式。
安全虛擬機器404另外包括硬體密碼引擎,諸如AES、或
SHA-1基元等。另外,安全虛擬機器404可包括機密記憶體的安全沙箱(secure sandbox),引擎不可存取安全沙箱,但安全沙箱能夠從虛擬機器404外部(如,從CPU或GPU轉譯器等)存取。
此外,提供在虛擬機器404中執行的安全位元組碼。在此例中,安全位元組碼係與由ISV提供給GPU 402之程式相關聯的位元組碼。例如,位元組碼可由獲得授權的播放器ISV產生以實行授權內容機制的核心工作。因此,位元組碼用以實行在虛擬機器404中之內容及金鑰的處理,內容及金鑰由GPU 402接收。
安全虛擬機器404亦可存取由被認可的機構簽署的晶片私密金鑰與公開金鑰及憑證,其允許簽署的ISV程式碼可在安全虛擬機器404中執行。再者,這些金鑰可允許播放器ISV安全地加密ISV密文及確保密文僅在可信的虛擬機器404中使用後才成為可見。這些金鑰另外允許播放器ISV認可有能力的GPU作為施行內容解碼之執行的可信端點。
安全虛擬機器404亦允許安全虛擬機器404對於加密金鑰部分的能力,因此在執行由支援不同內容串流的另一個安全虛擬機器404背景取代後,該安全虛擬機器可退出記憶體頁面(page out)。此外,可消除安全虛擬機器404的內容,致使其後不會留下任何密文。例如,可在處理後刪除由虛擬機器404處理的資訊。
安全虛擬機器404另外包括在CPU上執行的圖形驅動程式(如,軟體),其共同地允許軟體內容播放器廠商能夠協商將安全位元組碼載入虛擬機器404。另外,安全虛擬機器404可包括進行以
下動作所需的編譯器及工具:支援移植標題解密的ISV被授權者、編譯程式(如,用Assembly或C等語言編寫)、及發出解譯器所支援的位元組碼。
圖5根據一項具體實施例,顯示利用安全虛擬機器擷取標題金鑰的方法500。作為一實施例,本方法500可在圖1至4之功能及架構的背景中實現。然而,方法500當然也可在任何所要環境中實行。同樣地,上述定義在本說明均適用。
在操作中,播放器ISV程式碼或程式可描述解密機密金鑰群組的程序。此程式碼可配合其他內容金鑰及原則使用以形成解密內容串流的標題金鑰。在此例中,ISV程式可包括解譯器使用識別的執行時間變數(如,即時間接變數、本機變數、串流及緩衝器指標等)以允許解密的命令。可使用GPU及ISV認為值得信任的金鑰簽署程式。
一旦擷取標題金鑰,即可利用安全虛擬機器解密內容串流。圖6根據一項具體實施例,顯示利用安全虛擬機器解密內容串流的方法600。作為一實施例,本方法600可在圖1至5之功能及架構的背景中實現。然而,方法600當然也可在任何所要環境中實行。上述定義在本說明均適用。
ISV程式碼可描述使用標題金鑰的程序,其可在標題金鑰擷取期間儲存,以解密從磁碟、網路或其他媒體複製的串流內容。輸出可保留在虛擬機器中以進行後續處理。
一旦解密內容串流後,即可利用安全虛擬機器修補及重新加密內容串流。圖7根據一項具體實施例,顯示利用安全虛擬機器修補及重新加密內容串流的方法700。作為一實施例,本方法700可在圖1至6之功能及架構的背景中實現。然而,方法700當然也可在任何所要環境中實行。同樣地,上述定義在本說明期間均適用。
在操作中,ISV程式可封裝(encapsulate)根據轉換描述符修補內容串流所需的命令。內容串流可被分割及重新加密以將音訊傳回播放器ISV進行額外處理或傳回晶片外的音訊解碼器。
作為一實施例,內容串流可被分成視訊埠以在後續晶片上的視訊解碼器中使用。在此例中,可以未加密的形式保留內容,其中內容被機密地保存在只有視訊解碼器才能存取的特殊權限記憶體區域中。
在一項具體實施例中,播放器ISV提供的程式可包括離散的命令,讓解譯器能夠如同一個離散的運算加以完成。例如,在各種具體實施例中,這些命令可包括表1所示常見運算的密碼基元。
在一項具體實施例中,這些基元可包括針對在GPU之內建控制器上執行而最佳化的預編碼常式(pre-coded routines)。在另一具體實施例中,基元可以是提取硬體引擎(直接加速易受效能影響之運算)之執行的介面包裝函式。
作為另一實施例,基元可包括在安全虛擬機器中的內務處理運算。表2根據一項具體實施例,顯示一些內務處理運算。
在一項具體實施例中,Diffie-Helman金鑰交換可由虛擬機器實現。根據一項具體實施例,以解譯的程式碼編寫的逐步Diffie-Helman金鑰交換如表3所示。
在另一具體實施例中,程式可表達使用中間累加器逐個位元組地實行反覆操作的一組複雜運算,以形成總程序子常式。在此循環發生時,較佳可將子常式重新編譯成更有效的形式,其使用以處理器微碼形成的固有運算,在執行時不需要重新解譯。一旦宣告後,即可將子常式實行為巨集等級的離散步驟。
根據一項具體實施例,編寫為虛擬機器子常式之RC4加密演算法運算的範例如表4所示。
注意,利用具有視覺效果程序的安全虛擬機器提供操縱金鑰處理及串流剖析的安全執行環境,其中視訊解碼器硬體已經存在(如,在GPU中等),藉此避免未受保護的內容及金鑰在CPU中及在匯流排上流動。此外,使用安全虛擬機器提供第三方被授權者在GPU上為授權內容建立安全相容解碼器的能力,而不需要GPU將產生解密內容之金鑰的程式發送給虛擬機器而變成被授權元件。
圖8根據一項具體實施例,顯示建立產生解密內容之金鑰之程式的方法800。作為一實施例,本方法800可在圖1至7之功能及架構的背景中實現。然而,方法800當然也可在任何所要環境中實行。上述定義在本說明均適用。
如圖所示,提供解譯性語言規範。見操作802。在此例中,由處理器製造商提供具有解譯性語言規範的播放器ISV。例如,語言規範可包括用於包括解譯器之安全虛擬機器的規範。在一項具體實施例中,此規範可包括用來產生程式以產生解密內容之金鑰的程式設計語言。
接著編寫程式。見操作804。例如,基於解譯性語言規範,可由播放器ISV以原始碼編寫程式。接著透過諸如編譯器及/或解譯器的工具執行程式以便處理。見操作806。
由於此處理,因而產生位元組碼。見操作808。此位元組碼可包括由虛擬機器在執行時間期間用來處理的程式碼。
接著將位元組碼輸入加密簽章程序。見操作810。在一項具體實施例中,加密簽章程序可以是由處理器製造商提供的程序。在實現加密簽章程序之後,提供可內建的加密映像。接著可將此加密映像內建至ISV播放器的程式,致使播放器可將程式提供給GPU的虛擬機器以在執行時間操作期間處理。
圖9根據一項具體實施例,顯示保護產生解密內容之金鑰之程式的系統900。作為一實施例,系統900可在圖1至8之功能及架構的背景中實現。然而,系統900當然也可在任何所要環境中實現。此外,上述定義在本說明均適用。
在操作中,可利用系統900實現保護產生解密內容之金鑰之程式的方法,如圖10中所示的方法1000。如圖10所示,應用程式產生一對用於簽署的金鑰PA及pA。此外,GPU產生一對用於簽署的金鑰PG及pG,及用於加密的金鑰PS。
GPU接著可使用GPU的簽署密文金鑰簽署應用程式的簽署公開金鑰,產生可發送給應用程式的憑證(如,CERTG等)。應用程式接著加密虛擬機器程式。程式可被簽署及編譯。
在執行時間,應用程式可建立短暫金鑰密文(如,KSK等)。GPU亦可導出短暫金鑰密文(如,K’SK等)。接著將加密的程式及金鑰從應用程式傳遞至GPU。解譯器接著解密及驗證應用程式的憑證,然後執行虛擬機器程式。
利用此技術,可由GPU提供者產生一對用於簽署的私密金鑰
及公開金鑰。可將私密金鑰放在內部簽署伺服器中。公開金鑰可在API規範中發布並內建至安全解譯器微碼。接著可將硬體密文或其導出值用作晶片密文金鑰,然後導出用於加密的對應公開金鑰。
應用程式提供者可私下建立其自己的一對私密金鑰及公開金鑰以用於簽署。應用程式提供者可經由電子郵件或ftp將公開金鑰發送給GPU提供者。GPU提供者可使用應用程式提供者的簽署密文金鑰簽署應用程式提供者的簽署公開金鑰。所產生的簽章是由GPU提供者對應用程式提供者之簽署公開金鑰發出的憑證。可將憑證發回給應用程式提供者。
應用程式提供者可私下編寫部分解譯器程式及高度機密授權密文(如,諸如播放器/元件金鑰)並將其編譯成二進位。應用程式提供者可在GPU提供者的晶片公開金鑰下,私下加密二進位程式。應用程式提供者可在應用程式提供者的簽署密文金鑰下,私下簽署加密的二進位程式。
可將加密的程式連同簽章及應用程式提供者的憑證靜態地內建於應用程式提供者的播放器可執行檔。在執行時間,應用程式提供者可使用晶片上隨機數產生器(RNG)在GPU中建立短暫的工作階段金鑰密文,然後使用此密文另外將已經靜態地加密的程式重新加密為執行時間加密酬載(payload)。
在執行時間,GPU上的解譯器可載入雙重加密酬載、簽章、及憑證。解譯器可使用GPU提供者的簽署公開金鑰驗證應用程式
提供者的憑證。解譯器可使用應用程式提供者的簽署公開金鑰驗證已加密的程式。解譯器在協商期間可使用在GPU中建立的短暫工作階段金鑰密文解密執行時間加密酬載,及藉此擷取靜態加密的程式(仍屬於加密形式)。
解譯器接著從硬體密文導出GPU提供者的晶片密文金鑰及解密包括已解譯之程式的密文及內容/播放器的密文之靜態加密的程式。解譯器然後可安全地執行程式及對在GPU中安全虛擬機器內的高度機密內容密文解除參考(dereference)。
由於可從隨機數產生器導出建立短暫工作階段金鑰中所使用的密文並將此密文安全地保留在GPU中,即使是知道GPU提供者之晶片密文及其他簽署金鑰的人,也無法解密酬載。如果ISV認可GPU的簽章及執行ISV程式碼的解譯器,則可假設ISV信任解譯器及安全虛擬機器環境,致使ISV相信其不會洩露機密資訊。另外,如果要在虛擬機器中執行的程式碼係ISV編寫並在執行之前簽署/驗證,則ISV可建立其確保沒有任何內容或機密密文漏出(甚至對GPU提供者漏出)的環境。
為了進一步減輕酬載加密程序中所使用的密文被暴露的風險,可由第二方或第三方,諸如ISV被授權者、產品被授權者或系統廠商,直接將額外被授權者密文熔入(fuse)GPU。為進一步確保密文甚至於對GPU提供者保持未知,程式設計程序允許在GPU已離開GPU提供者的製造及存貨程序之後的任何時間設定密文。GPU廠商提供存取權限以允許例如在系統廠商設備處,在組裝期間將GPU置於主機板上之後,單獨將密文程式設計至GPU中。
例如,在一項具體實施例中,密文可包含在一次性(one-time)晶片熔絲中,該等熔絲在GPU封裝的特定接腳上,按照匹配被授權者密文數值位元的位元型樣,透過施加較高電壓而燒斷。在一項具體實施例中,在無法被GPU讀出的唯寫暫存器中,藉由應用該等熔絲而使密文保持機密且該密文只能被GPU的密文及其他內部密碼程序用作金鑰或與其他金鑰結合。在一項具體實施例中,被授權者密文被用作AES密文的金鑰值,其在設計上不允許恢復金鑰值,即使外部可見純文字輸入及密文文字輸出也是如此。
另外,熔絲密文的程式設計可限於一次性設定,以保護免於後續改變或攻擊,其中熔絲密文被重新程式設計成已知以洩露密文。在一項具體實施例中,使密文僅被程式設計為由GPU使用的熔絲在程式設計被授權者密文結尾處被燒斷,且一旦燒斷後,該熔絲不允許後續對被授權者密文熔絲進行程式設計。
被授權者密文可間接與其他(不可讀取的)GPU密文結合,以形成建立及擷取酬載時所使用的加密及解密金鑰。如果可單獨地程式設計被授權者密文,及GPU提供者不知道有此類密文,且如果密文僅在執行時間由在安全虛擬機器中的GPU硬體間接結合,則可針對詳細瞭解機密晶片密文的人,進一步增強第二方機密程式、演算法及金鑰。
因此,根據一項具體實施例,可提供一種裝置,其中該裝置包括至少一個處理器、屬於第一方之至少一安全虛擬機器,係實現於處理器上,以處理第二方之程式、及至少一個處理第三方內容以供輸出的程式。在此例中,第一方可包括任何提供安全虛擬
機器及/或處理器的實體或個體,第二方可包括任何授權軟體的實體或個體(如,獨立軟體廠商被授權者等),及第三方可包括任何授權內容的實體或個體。在各種具體實施例中,第一方、第二方及第三方可以是相同或不同團體並可包括任何個體或實體。
使用此裝置,可在處理之後刪除殘存的機密程式資訊、被處理的資訊、及由至少一個虛擬機器中之每一者建立的短暫變數。在一項具體實施例中,複數個安全虛擬機器可在個別背景中實現於處理器上。在此例中,可限制在複數個安全虛擬機器間所進行之共享資訊。
例如,可限制短暫資訊的類型及由該複數個安全虛擬機器處理的資訊儲存。資訊亦可包括解密保護內容時所使用的金鑰及中間密碼值。
在另一具體實施例中,可提供至少一個虛擬機器以執行用戶端提供的程式(如,第二方的程式等)來處理保護的內容。在此例中,用戶端提供的程式可由第二方加密,以在處理第三方內容時,確保由用戶端提供的程式所使用之演算法細節、密文、及金鑰的機密性。用戶端提供的程式可另外由第二方簽署以允許驗證用戶端提供的程式的完整性,及可包括允許驗證用戶端提供的程式之原始碼之可信度的憑證。
在一項具體實施例中,第三方內容在由至少一個虛擬機器處理之前,已經由第三方另外加密。在此例中,在允許在至少一個虛擬機器中執行之前,可藉由驗證所包括的簽章及憑證,解密及
鑑認用戶端提供的程式、可信賴的演算法(confidential algorithm)、及密文。
作為另一實施例,處理用戶端提供的程式可包括解密第三方內容。處理可另外包括重新加密第三方內容之一或多個部分中的至少一個或在第三方內容中的串流。一方面,重新加密可發生在第三方內容從至少一個虛擬機器退出之前。另一方面,重新加密可發生在第三方內容從處理器輸出之後。
在一項具體實施例中,用戶端提供的程式可從應用程式接收,及用戶端提供的程式可在處理器及應用程式之間建立安全通訊通道。在此例中,可利用處理器中導出的密碼值及至少一個憑證,保護在處理器及應用程式間的通訊通道。
在另一具體實施例中,至少一個虛擬機器可用作應用程式提供之保護內容處理程式的解譯器。此外,處理器可包括至少一個安全處理器且可經組態以提供處理內容給圖形處理器、視訊處理器、或音訊處理器中的至少一者。
在又另一具體實施例中,處理器可包括從封裝展開之內容金鑰及在程式執行期間導出之中間密碼值的安全機密儲存區。在任何情況,在處理器之至少一個虛擬機器中由第二方之程式處理第三方內容並不需要處理器具有授權密文,也不需要先前已經實現的授權演算法。注意,至少一個虛擬機器的設計及在至少一個虛擬機器中由第二方之程式對第三方內容的處理可由第二方關於授權遵循及穩健性規則方面加以檢視,藉此允許決定第三方內容之
適合性。
此外,藉由使用此裝置,第三方內容及用以產生解密第三方內容之機密金鑰的第二方之程式可於處理器接收(如,由第一方製造的處理器等),及第二方之程式可利用解密第三方內容的處理器來執行。在此例中,解密第三方內容將需要使用提供給第二方的可信賴的演算法及金鑰資訊。作為一實施例,用以解密第三方內容的機密金鑰及演算法可由第二方重新加密。機密金鑰亦可利用處理器來解密。
在一項具體實施例中,可將自第二方之程式產生的機密執行時間值、中間加密值、及機密金鑰儲存在機密唯寫處理器暫存器中,及/或儲存在經組態僅由處理器操作間接解除參考(dereference)及經組態為不可讀的索引緩衝器中。在此例中,可在第二方之程式終止之後消除唯寫處理器暫存器及索引緩衝器,藉此確保後續虛擬機器工作階段無法存取殘存的密文。
作為一實施例,機密金鑰可包括至少一個與第三方內容相關聯的內容金鑰及至少一個與第二方應用程式相關聯的應用程式金鑰,經由該應用程式可在處理器接收第三方內容及第二方之程式。在一項具體實施例中,第二方應用程式可包括內容播放器。
此外,處理器可處理第三方的至少一個內容金鑰及第二方的至少一個應用程式金鑰以產生至少一個標題金鑰。在此例中,可利用標題金鑰解密第三方內容。
在一項具體實施例中,第二方之程式可由從中接收第三方內
容及第二方之程式的第二方應用程式使用。在此例中,第二方之程式可用於解密第三方內容並可由第二方應用程式基於第三方內容來擷取。
在一些例子中,第二方之程式及內容金鑰在由第二方應用程式擷取之前已經加密。在這些例子中,第二方之程式及內容金鑰在由第二方應用程式擷取之前可利用公開金鑰來加密。作為一實施例,加密第二方之程式的一或多個金鑰及內容金鑰可由處理器製造商(如,第一方等)提供。作為另一實施例,第二方之程式在與第二方應用程式相關聯的分布二進位中在封裝中組合之前加密。
在一項具體實施例中,第二方應用程式可進一步重新加密包括第二方之程式及機密金鑰的封裝後,再將此封裝傳遞給處理器。注意,在一項具體實施例中,可藉由將可信賴的演算法及機密金鑰包含在處理器之虛擬機器中執行之前不會解密的加密程式封裝中,防止對中央處理單元暴露可信賴的演算法及機密金鑰。在此例中,藉由使用在第二方應用程式及解密第二方之程式的處理器之間的公開金鑰交換所建立的短暫值加密封裝,進一步防止可信賴的演算法及機密金鑰密文的可能暴露。
此外,透過使用放在處理器中且藉由加密第二方之程式在不暴露給處理器廠商的情況下使用的第二方授權密文或第三方被授權者密文,可防止可信賴的演算法及機密金鑰的暴露。在此例中,透過使用一次性程式設計機制(如,電腦程式碼等),可保護第二方授權密文及第三方被授權者密文的程式設計在程式設計至處理器後免於改變。
在又另一具體實施例中,藉由使用此裝置,可由第二方產生加密及處理第三方內容的封裝,其中封裝包括能夠利用處理器執行的程式。另外,程式可使用加密保護以確保與程式相關聯之密文的機密性。再者,可簽署程式以確保程式原始碼的可信度。還有,可驗證程式原始碼的憑證及保護程式的實體。
處理器可包括圖形處理器、視訊處理器、及/或音訊處理器等。此外,處理器可包括能夠安全解密第二方應用程式提供之封裝、程式、可信賴的演算法、內容金鑰、及專屬密文的安全處理器背景。
在一些例子中,第三方內容對於第三方如此珍貴致使必須保護第三方內容免於攔截及複製。在各種具體實施例中,封裝可包括解密及處理第三方內容所需的程式、可信賴的演算法、內容金鑰、及專屬密文。此外,作為一實施例,封裝可藉由加密來保護。
在一項具體實施例中,可由處理器從中接收第三方內容的第二方內容被授權者播放器應用程式提供程式、可信賴的演算法、內容金鑰、及專屬密文。在此例中,包括程式、可信賴的演算法、內容金鑰、及專屬密文的封裝可由第二方應用程式提供者保護並內建於應用程式中。
在一項具體實施例中,應用程式可包括至少一個播放器及封裝、或至少一個其他封裝,以便處理及輸出使用者選擇的內容。此外,基於第三方內容的類型及格式,可從應用程式中擷取用以
解密及處理第三方內容的封裝。另外,封裝、程式、可信賴的演算法、內容金鑰、及專屬密文可在由應用程式擷取之前加密。
在此例中,封裝、程式、可信賴的演算法、內容金鑰、及專屬密文可在內建於應用程式中之前,利用一或多個公開及私密金鑰進行加密及簽署。可在第二方應用程式廠商及處理器廠商之間交換公開金鑰及憑證。作為一實施例,可利用內建於處理器中的被授權者密文來加密程式。
在一項具體實施例中,在由應用程式擷取之後,在執行時間加密封裝。在此例中,利用藉由使用虛擬隨機數產生器產生的短暫金鑰及只儲存在處理器中的密文來加密程式。另外,利用藉由使用虛擬隨機數產生器產生的短暫金鑰及只儲存在應用程式中的資訊來加密程式。
作為另一實施例,程式可利用應用程式及處理器廠商間交換的至少一個憑證的至少一個金鑰來加密。在一項具體實施例中,程式可利用應用程式及處理器間交換的至少一個憑證的至少一個金鑰來簽署。在此例中,可將被授權者密文內建在處理器中,而不為處理器廠商所知,其中處理器廠商無法推測及/或從處理器中讀出被授權者密文。在一些例子中,被授權者密文僅被寫入一次且在程式設計之後無法改變或以其他方式修改,以確保攻擊者無法導出密文或藉由改變儲存在處理器的密文而洩露密文。
圖11圖解可實現各種先前具體實施例之各種架構及/或功能的示範性系統1100。如圖所示,提供包括至少一個主處理器1101的系統1100,該處理器連接至通訊匯流排1102。系統1100亦包
括主記憶體1104。控制邏輯(軟體)及資料係儲存於主記憶體1104中,該記憶體採用隨機存取記憶體(RAM)的形式。
系統1100亦包括圖形處理器1106及顯示器1108(即電腦監視器)。在一項具體實施例中,圖形處理器1106可包括複數個著色器模組、光柵化模組等。上述模組中的每一個甚至可位在單一半導體平台上以形成圖形處理單元(GPU)。
在本說明中,單一半導體平台是指單獨的一元半導體式積體電路或晶片。注意,用語「單一半導體平台」亦可指連接性增加的多晶片模組,其利用傳統的中央處理單元(CPU)及匯流排實現模擬晶片上操作及進行實質改良。當然,各種模組亦可根據使用者的需要,分開設置或設在半導體平台的各種組合中。
系統1100亦可包括次要儲存器1110。次要儲存器1110包括例如:硬碟及/或抽取式儲存驅動器,其代表軟碟機、磁帶機、光碟機等。抽取式儲存驅動器按周知方式從抽取式儲存單元讀取及/或寫入抽取式儲存單元中。
電腦程式、或電腦控制邏輯演算法可儲存在主記憶體1104及/或次要儲存器1110中。此類電腦程式在執行時,可讓系統1100實行各種功能。記憶體1104、儲存器1110及/或任何其他儲存器為電腦可讀媒體的可能範例。
在一項具體實施例中,各種先前圖式的架構及/或功能可在以下背景中實現:主處理器1101、圖形處理器1106、能夠實現主處理器1101及圖形處理器1106二者功能之至少一部分的積體電路
(未顯示)、晶片組(即一組設計可作為施行相關功能之單元運作及銷售的積體電路等)、及/或任何其他相關事務的積體電路。
還有,各種先前圖式的架構及/或功能可在以下背景中實現:一般電腦系統、電路板系統、專用於娛樂的遊戲機系統、特定應用系統、及/或任何其他理想系統。例如,系統1100可採取以下形式:桌上型電腦、膝上型電腦、及/或任何其他類型的邏輯。還有,系統1100可採取各種其他元件的形式,其包括但不限於:個人數位助理(PDA)元件、行動電話元件、電視等。
再者,雖然未顯示,但系統1100為了通訊目的,可耦合至網路(如,電信網路、區域網路(LAN)、無線網路、廣域網路(WAN),諸如網際網路、對等網路、有線電視網路等)。
儘管上文已經說明各種具體實施例,但應明白,這些具體實施例僅以舉例而非限制的方式呈現。因此,上述示範性具體實施例的任何一項不應限制較佳具體實施例的廣度及範疇,而只能按照以下申請專利範圍及其同等物加以定義。
150、404‧‧‧安全虛擬機器
152、406、1101‧‧‧處理器
200、400、900、1100‧‧‧系統
202‧‧‧媒體
204‧‧‧授權播放器廠商或其他獨立軟體廠商(ISV)
206‧‧‧程式
208‧‧‧解譯器
210‧‧‧標題金鑰
212‧‧‧解多工器
214‧‧‧重新加密音訊模組
216‧‧‧解密模組
218‧‧‧音訊堆疊
220‧‧‧重新加密視訊模組
222‧‧‧視訊解碼模組
224‧‧‧訊框緩衝區
226、1108‧‧‧顯示器
228、1104‧‧‧記憶體
250、1106‧‧‧圖形處理器
402‧‧‧GPU
1110‧‧‧次要儲存器
圖1A根據一項具體實施例,顯示執行利用處理器產生解密內容之金鑰之程式的方法。
圖1B根據一項具體實施例,顯示在處理器上實現之處理內容以供輸出的安全虛擬機器。
圖2根據一項具體實施例,顯示產生、保護、及執行利用處理器產生解密內容之金鑰之程式的系統。
圖3根據一項具體實施例,顯示使用解譯器解譯所接收程式
及內容的方法。
圖4根據一項具體實施例,顯示包括解譯所接收程式及內容之處理器及安全虛擬機器的系統。
圖5根據一項具體實施例,顯示利用安全虛擬機器擷取標題金鑰的方法。
圖6根據一項具體實施例,顯示利用安全虛擬機器解密內容串流的方法。
圖7根據一項具體實施例,顯示利用安全虛擬機器修補及重新加密內容串流的方法。
圖8根據一項具體實施例,顯示建立產生解密內容之金鑰之程式的方法。
圖9根據一項具體實施例,顯示保護產生解密內容之金鑰之程式的系統。
圖10根據一項具體實施例,顯示建立及保護產生解密內容之金鑰之程式的方法。
圖11圖解可實現各種先前具體實施例之各種架構及/或功能的示範性系統。
Claims (22)
- 一種裝置,包含:至少一處理器;屬於一第一方之至少一安全虛擬機器,係實現於該處理器上,以處理一第二方之程式;及一電腦可讀媒體,儲存該第二方之程式,供該第一方之該至少一安全虛擬機器執行,以處理一第三方內容以供輸出;其中該裝置可被操作而使該第二方之程式可在該第一方之該至少一安全虛擬機器中被該第二方之一應用程式所使用,以解密該第三方內容;其中為了解密該第三方內容,該第二方之程式在該第一方之該至少一安全虛擬機器中從該應用程式接收該第三方內容。
- 如申請專利範圍第1項所述之裝置,其中殘存的機密程式資訊、被處理的資訊、及由該至少一虛擬機器之每一者建立的短暫(ephemeral)變數在處理之後刪除。
- 如申請專利範圍第1項所述之裝置,其中複數個安全虛擬機器在個別背景(context)中實現於該處理器上。
- 如申請專利範圍第3項所述之裝置,其中限制在該複數個安全虛擬機器間進行共享資訊。
- 如申請專利範圍第4項所述之裝置,其中限制短暫(ephemeral)資訊的類型、及由該複數個安全虛擬機器所處理之資訊的儲存。
- 如申請專利範圍第4項所述之裝置,其中該資訊包括解密保護內容時所使用的金鑰及中間密碼值。
- 如申請專利範圍第1項所述之裝置,其中該第二方之程式係一用戶端提供的程式,由該至少一虛擬機器執行以處理該第三方內容,而該第三方內容係一保護內容。
- 如申請專利範圍第7項所述之裝置,其中該用戶端提供的程式由該第二方加密,以在處理該第三方內容時,確保該用戶端提供的程式使用之演算法細節、密文、及金鑰的機密性。
- 如申請專利範圍第8項所述之裝置,其中該用戶端提供的程式另外由該第二方簽署以允許驗證該用戶端提供的程式的完整性,及包括允許驗證該用戶端提供的程式之原始碼之可信度(authenticity)的憑證(certificate)。
- 如申請專利範圍第8項所述之裝置,其中該第二方之程式在該至少一虛擬機器中處理該第三方內容之前,該第三方內容已經由該第三方另外加密。
- 如申請專利範圍第10項所述之裝置,其中在允許在該至少一虛擬機器中執行該用戶端提供的程式之前,藉由驗證所包括的簽章及憑證,解密及鑑認該用戶端提供的程式、可信賴的演算法、及密文。
- 如申請專利範圍第10項所述之裝置,其中處理該用戶端提供 的程式包括解密該第三方內容。
- 如申請專利範圍第12項所述之裝置,其中處理該用戶端提供的程式另外包括重新加密該第三方內容之一或多個部分或在該第三方內容中之串流(streams)。
- 如申請專利範圍第13項所述之裝置,其中該重新加密發生在該第三方內容離開該至少一虛擬機器之一處理程序之前。
- 如申請專利範圍第13項所述之裝置,其中該重新加密發生在該第三方內容從該處理器輸出之後。
- 如申請專利範圍第7項所述之裝置,其中該用戶端提供的程式係接收自該應用程式,及該用戶端提供的程式建立一在該處理器及該應用程式之間的安全通訊通道。
- 如申請專利範圍第16項所述之裝置,其中利用該處理器中所導出的密碼值、及至少一憑證以保護在該處理器及該應用程式之間的該通訊通道。
- 如申請專利範圍第1項所述之裝置,其中該至少一虛擬機器用作該第二方之程式的一解譯器,而該第二方之程式係由該應用程式所提供之一保護內容處理程式。
- 如申請專利範圍第1項所述之裝置,其中該處理器包括至少一安全處理器及經組態以提供被處理的該第三方內容給一圖形處理 器、一視訊處理器、或一音訊處理器中的至少其中之一。
- 如申請專利範圍第1項所述之裝置,其中該處理器包括用於從一封裝展開之內容金鑰及在程式執行期間導出之中間密碼值的安全機密儲存區。
- 如申請專利範圍第1項所述之裝置,其中由該第二方之程式在該處理器之該至少一虛擬機器中對於該第三方內容的該處理不需要該處理器具有授權密文,也不需要先前已經實現的授權演算法。
- 如申請專利範圍第1項所述之裝置,其中該至少一虛擬機器的設計及由該第二方之程式在該至少一虛擬機器中對於該第三方內容的該處理由該第二方關於授權遵循(license compliance)及穩健性規則(robustness rules)加以檢視,藉此允許決定該第三方內容之適合性(suitability)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/331,295 US8868925B2 (en) | 2008-12-09 | 2008-12-09 | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201023047A TW201023047A (en) | 2010-06-16 |
TWI423136B true TWI423136B (zh) | 2014-01-11 |
Family
ID=42232519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098134473A TWI423136B (zh) | 2008-12-09 | 2009-10-12 | 在處理器之虛擬機器中安全地處理機密內容的方法與裝置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8868925B2 (zh) |
JP (1) | JP5532291B2 (zh) |
KR (1) | KR101091465B1 (zh) |
CN (1) | CN101751529B (zh) |
TW (1) | TWI423136B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI759827B (zh) * | 2019-08-16 | 2022-04-01 | 邊信聯科技股份有限公司 | 異構處理器透過開放式連接器進行具有遠距認證及資訊獨立的可信運算系統及方法 |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8135964B2 (en) * | 2008-12-09 | 2012-03-13 | Nvidia Corporation | Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content |
US8266448B2 (en) * | 2008-12-09 | 2012-09-11 | Nvidia Corporation | Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content |
US9818073B2 (en) | 2009-07-17 | 2017-11-14 | Honeywell International Inc. | Demand response management system |
US9137050B2 (en) * | 2009-07-17 | 2015-09-15 | Honeywell International Inc. | Demand response system incorporating a graphical processing unit |
US9124535B2 (en) | 2009-07-17 | 2015-09-01 | Honeywell International Inc. | System for using attributes to deploy demand response resources |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
TW201201037A (en) | 2010-06-22 | 2012-01-01 | Novatek Microelectronics Corp | Electronic apparatus, display driving apparatus, and digital content displaying method |
JP2012084071A (ja) | 2010-10-14 | 2012-04-26 | Toshiba Corp | デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置 |
US9053339B2 (en) | 2010-10-27 | 2015-06-09 | Hytrust, Inc. | System and method for secure storage of virtual machines |
TWI453624B (zh) * | 2010-11-09 | 2014-09-21 | Inst Information Industry | 資訊安全防護主機 |
US8705729B2 (en) | 2010-12-17 | 2014-04-22 | Intel Corporation | Audio content protection |
WO2012082411A2 (en) * | 2010-12-17 | 2012-06-21 | Intel Corporation | Audio content protection |
US8625788B2 (en) * | 2011-01-05 | 2014-01-07 | Intel Corporation | Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform |
US9153001B2 (en) | 2011-01-28 | 2015-10-06 | Honeywell International Inc. | Approach for managing distribution of automated demand response events in a multi-site enterprise |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
JP5275432B2 (ja) | 2011-11-11 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
US9054865B2 (en) * | 2011-11-16 | 2015-06-09 | V-Key, Inc. | Cryptographic system and methodology for securing software cryptography |
JP5204291B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、装置、システム |
JP5204290B1 (ja) | 2011-12-02 | 2013-06-05 | 株式会社東芝 | ホスト装置、システム、及び装置 |
JP5112555B1 (ja) | 2011-12-02 | 2013-01-09 | 株式会社東芝 | メモリカード、ストレージメディア、及びコントローラ |
JP5100884B1 (ja) | 2011-12-02 | 2012-12-19 | 株式会社東芝 | メモリ装置 |
JP5275482B2 (ja) | 2012-01-16 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
CN102722678B (zh) * | 2012-05-31 | 2016-06-15 | 北京朋创天地科技有限公司 | 一种虚拟桌面可执行程序保护机制 |
US9646153B2 (en) * | 2012-08-08 | 2017-05-09 | Intel Corporation | Securing content from malicious instructions |
US8656482B1 (en) * | 2012-08-20 | 2014-02-18 | Bitdefender IPR Management Ltd. | Secure communication using a trusted virtual machine |
US20140081704A1 (en) | 2012-09-15 | 2014-03-20 | Honeywell International Inc. | Decision support system based on energy markets |
US9389850B2 (en) | 2012-11-29 | 2016-07-12 | Honeywell International Inc. | System and approach to manage versioning of field devices in a multi-site enterprise |
US9201811B2 (en) | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
US8984294B2 (en) | 2013-02-15 | 2015-03-17 | Kabushiki Kaisha Toshiba | System of authenticating an individual memory device via reading data including prohibited data and readable data |
US9052740B2 (en) * | 2013-03-12 | 2015-06-09 | Qualcomm Incorporated | Adaptive data path for computer-vision applications |
US10346931B2 (en) | 2013-07-11 | 2019-07-09 | Honeywell International Inc. | Arrangement for communicating demand response resource incentives |
US9691076B2 (en) | 2013-07-11 | 2017-06-27 | Honeywell International Inc. | Demand response system having a participation predictor |
US9989937B2 (en) | 2013-07-11 | 2018-06-05 | Honeywell International Inc. | Predicting responses of resources to demand response signals and having comfortable demand responses |
DE102014204417A1 (de) * | 2014-03-11 | 2015-09-17 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode |
US9665078B2 (en) | 2014-03-25 | 2017-05-30 | Honeywell International Inc. | System for propagating messages for purposes of demand response |
US20150278512A1 (en) * | 2014-03-28 | 2015-10-01 | Intel Corporation | Virtualization based intra-block workload isolation |
WO2016010665A1 (en) * | 2014-07-15 | 2016-01-21 | Sikka Neil | Apparatus for and method of preventing unsecured data access |
CN105760719B (zh) * | 2014-12-19 | 2019-11-15 | 深圳市中兴微电子技术有限公司 | 一种密文数据解密方法及系统 |
US10205710B2 (en) * | 2015-01-08 | 2019-02-12 | Intertrust Technologies Corporation | Cryptographic systems and methods |
FR3038404B1 (fr) * | 2015-07-02 | 2019-04-26 | Viaccess | Procede et systeme d'execution securisee de machines virtuelles par un ensemble de dispositifs programmables interconnectes |
US10616184B2 (en) * | 2016-06-30 | 2020-04-07 | Intel Corporation | Wireless display streaming of protected content |
US10338951B2 (en) | 2017-03-01 | 2019-07-02 | Red Hat, Inc. | Virtual machine exit support by a virtual machine function |
US10541556B2 (en) | 2017-04-27 | 2020-01-21 | Honeywell International Inc. | System and approach to integrate and manage diverse demand response specifications for multi-site enterprises |
US10685106B2 (en) * | 2018-03-10 | 2020-06-16 | International Business Machines Corporation | Protecting cognitive code and client data in a public cloud via deployment of data and executables into a stateless secure partition |
US11068607B2 (en) * | 2018-03-10 | 2021-07-20 | International Business Machines Corporation | Protecting cognitive code and client data in a public cloud via deployment of data and executables into a secure partition with persistent data |
US10999304B2 (en) | 2018-04-11 | 2021-05-04 | Palo Alto Networks (Israel Analytics) Ltd. | Bind shell attack detection |
US11443072B2 (en) * | 2018-06-29 | 2022-09-13 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
US11126757B2 (en) | 2018-10-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Peripheral device |
US11184376B2 (en) * | 2019-01-30 | 2021-11-23 | Palo Alto Networks (Israel Analytics) Ltd. | Port scan detection using destination profiles |
US11184377B2 (en) | 2019-01-30 | 2021-11-23 | Palo Alto Networks (Israel Analytics) Ltd. | Malicious port scan detection using source profiles |
US11184378B2 (en) | 2019-01-30 | 2021-11-23 | Palo Alto Networks (Israel Analytics) Ltd. | Scanner probe detection |
KR20210016764A (ko) * | 2019-08-05 | 2021-02-17 | 삼성전자주식회사 | 시스템 온 칩 |
US11841961B2 (en) * | 2020-07-02 | 2023-12-12 | International Business Machines Corporation | Management of computing secrets |
US11799865B2 (en) * | 2020-12-18 | 2023-10-24 | Microsoft Technology Licensing, Llc | Multi-chamber hosted computing environment for collaborative development between untrusted partners |
US11308226B1 (en) * | 2021-02-22 | 2022-04-19 | CipherMode Labs, Inc. | Secure collaborative processing of private inputs |
US12066898B2 (en) * | 2021-03-30 | 2024-08-20 | Acronis International Gmbh | System and method for distributed-agent restoration of virtual machines |
EP4145762B1 (en) | 2021-09-06 | 2023-10-25 | Axis AB | Method and system for enabling secure processing of data using a processing application |
US12039017B2 (en) | 2021-10-20 | 2024-07-16 | Palo Alto Networks (Israel Analytics) Ltd. | User entity normalization and association |
US11799880B2 (en) | 2022-01-10 | 2023-10-24 | Palo Alto Networks (Israel Analytics) Ltd. | Network adaptive alert prioritization system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917912A (en) * | 1995-02-13 | 1999-06-29 | Intertrust Technologies Corporation | System and methods for secure transaction management and electronic rights protection |
US20050223220A1 (en) * | 2004-03-31 | 2005-10-06 | Campbell Randolph L | Secure virtual machine monitor to tear down a secure execution environment |
TW200803213A (en) * | 2006-04-03 | 2008-01-01 | Matsushita Electric Ind Co Ltd | Communication apparatus for enabling coexistence of communication systems |
TW200820076A (en) * | 2006-08-08 | 2008-05-01 | Sandisk Corp | Portable mass storage with virtual machine activation |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5825879A (en) * | 1996-09-30 | 1998-10-20 | Intel Corporation | System and method for copy-protecting distributed video content |
US7200842B1 (en) * | 1999-02-02 | 2007-04-03 | Sun Microsystems, Inc. | Object-oriented instruction set for resource-constrained devices |
GB9922665D0 (en) * | 1999-09-25 | 1999-11-24 | Hewlett Packard Co | A method of enforcing trusted functionality in a full function platform |
US6598032B1 (en) * | 2000-03-10 | 2003-07-22 | International Business Machines Corporation | Systems and method for hiding from a computer system entry of a personal identification number (pin) to a smart card |
US6961858B2 (en) * | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
US20020073025A1 (en) * | 2000-12-08 | 2002-06-13 | Tanner Robert G. | Virtual experience of a mobile device |
EP1323018A4 (en) * | 2001-06-07 | 2004-07-07 | Contentguard Holdings Inc | PROTECTED CONTENT DELIVERY SYSTEM |
CA2422358C (en) * | 2001-07-13 | 2012-09-25 | Motoki Kato | Video information recording apparatus and reproducing apparatus |
US7272858B2 (en) * | 2002-04-16 | 2007-09-18 | Microsoft Corporation | Digital rights management (DRM) encryption and data-protection for content on a relatively simple device |
JP4675031B2 (ja) | 2002-04-23 | 2011-04-20 | パナソニック株式会社 | サーバ装置及びプログラム管理システム |
US20030217258A1 (en) * | 2002-05-16 | 2003-11-20 | International Business Machines Corporation | Apparatus and method of using ephemeral asymmetric keys to exchange security data between hardware security modules |
US20030229794A1 (en) * | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7174021B2 (en) * | 2002-06-28 | 2007-02-06 | Microsoft Corporation | Systems and methods for providing secure server key operations |
US7440574B2 (en) * | 2003-06-11 | 2008-10-21 | Hewlett-Packard Development Company, L.P. | Content encryption using programmable hardware |
US8838950B2 (en) | 2003-06-23 | 2014-09-16 | International Business Machines Corporation | Security architecture for system on chip |
EP1644802B1 (en) | 2003-06-27 | 2016-11-23 | Disney Enterprises, Inc. | Dual virtual machine and trusted platform module architecture for next generation media players |
US8055910B2 (en) * | 2003-07-07 | 2011-11-08 | Rovi Solutions Corporation | Reprogrammable security for controlling piracy and enabling interactive content |
US7389273B2 (en) * | 2003-09-25 | 2008-06-17 | Scott Andrew Irwin | System and method for federated rights management |
US7539307B2 (en) * | 2003-11-26 | 2009-05-26 | International Business Machines Corporation | System, method, and service for delivering enhanced multimedia content on physical media |
JP4629416B2 (ja) | 2003-11-28 | 2011-02-09 | パナソニック株式会社 | データ処理装置 |
US7552419B2 (en) * | 2004-03-18 | 2009-06-23 | Intel Corporation | Sharing trusted hardware across multiple operational environments |
KR20060081337A (ko) | 2005-01-07 | 2006-07-12 | 엘지전자 주식회사 | 비밀키를 이용한 암호화 및 복호화 방법 |
US7587595B2 (en) * | 2005-05-13 | 2009-09-08 | Intel Corporation | Method and apparatus for providing software-based security coprocessors |
CN101438290B (zh) * | 2006-05-01 | 2011-10-05 | 联发科技股份有限公司 | 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置 |
JP4765812B2 (ja) | 2006-07-28 | 2011-09-07 | 日本電気株式会社 | 情報処理システム、クライアント装置、プログラム、及びファイルアクセス制御方法 |
US7860246B2 (en) * | 2006-11-01 | 2010-12-28 | International Business Machines Corporation | System and method for protecting data in a secure system |
US20080262968A1 (en) * | 2007-03-26 | 2008-10-23 | Infosys Technologies Ltd. | Software licensing control via mobile devices |
EP2174255B1 (en) * | 2007-06-14 | 2017-05-24 | Intrinsic ID B.V. | Method and device for providing digital security |
EP2183695B1 (en) * | 2007-07-20 | 2014-11-12 | Nxp B.V. | Device with a secure virtual machine |
US8266448B2 (en) * | 2008-12-09 | 2012-09-11 | Nvidia Corporation | Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content |
US8135964B2 (en) * | 2008-12-09 | 2012-03-13 | Nvidia Corporation | Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content |
US8402280B1 (en) * | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
-
2008
- 2008-12-09 US US12/331,295 patent/US8868925B2/en active Active
-
2009
- 2009-10-12 TW TW098134473A patent/TWI423136B/zh not_active IP Right Cessation
- 2009-10-21 JP JP2009242567A patent/JP5532291B2/ja active Active
- 2009-12-08 CN CN200910249609.1A patent/CN101751529B/zh active Active
- 2009-12-08 KR KR1020090121384A patent/KR101091465B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917912A (en) * | 1995-02-13 | 1999-06-29 | Intertrust Technologies Corporation | System and methods for secure transaction management and electronic rights protection |
US20050223220A1 (en) * | 2004-03-31 | 2005-10-06 | Campbell Randolph L | Secure virtual machine monitor to tear down a secure execution environment |
TW200803213A (en) * | 2006-04-03 | 2008-01-01 | Matsushita Electric Ind Co Ltd | Communication apparatus for enabling coexistence of communication systems |
TW200820076A (en) * | 2006-08-08 | 2008-05-01 | Sandisk Corp | Portable mass storage with virtual machine activation |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI759827B (zh) * | 2019-08-16 | 2022-04-01 | 邊信聯科技股份有限公司 | 異構處理器透過開放式連接器進行具有遠距認證及資訊獨立的可信運算系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101751529A (zh) | 2010-06-23 |
US8868925B2 (en) | 2014-10-21 |
KR101091465B1 (ko) | 2011-12-07 |
JP2010140470A (ja) | 2010-06-24 |
JP5532291B2 (ja) | 2014-06-25 |
US20100146501A1 (en) | 2010-06-10 |
CN101751529B (zh) | 2014-01-08 |
TW201023047A (en) | 2010-06-16 |
KR20100066404A (ko) | 2010-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI423136B (zh) | 在處理器之虛擬機器中安全地處理機密內容的方法與裝置 | |
US8266448B2 (en) | Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content | |
US8135964B2 (en) | Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content | |
JP5670578B2 (ja) | 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置 | |
US9009854B2 (en) | Platform-hardened digital rights management key provisioning | |
US8572410B1 (en) | Virtualized protected storage | |
US11929995B2 (en) | Method and apparatus for protecting confidential data in an open software stack | |
JP2010140470A5 (zh) | ||
US8245307B1 (en) | Providing secure access to a secret | |
CN105468940B (zh) | 软件保护方法及装置 | |
US20100241855A1 (en) | Systems and Methods for Secure Execution of Code Using a Hardware Protection Module | |
CN109728912A (zh) | 播放内容安全传输方法、系统以及终端 | |
US20210026935A1 (en) | High performance compute ip encryption using unique set of application attributes | |
CN114254343A (zh) | 一种面向云虚拟机密文信息流控制方法以及相关装置 | |
US8661234B2 (en) | Individualized per device initialization of computing devices in avoidance of mass exploitation of vulnerabilities | |
CN116680755A (zh) | Gpu固件的保护方法、装置、电子设备和存储介质 | |
CN114556344A (zh) | 在加密协同处理器中执行针对实体特定的加密代码 | |
Schaumont et al. | Demonstrating end point security in embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |