安全的直接存儲器訪問的制作方法
【專利摘要】公開了用于響應(yīng)于直接存儲器訪問(DMA)操作的啟動而建立安全目的地地址范圍的示例。示例還包括基于目的地存儲器的目的地存儲器地址是否落在所述安全目的地地址范圍內(nèi),允許從源存儲器作為加密的內(nèi)容獲取的解密的內(nèi)容被置于目的地存儲器中。
【專利說明】安全的直接存儲器訪問
[0001]直量
[0002]越來越多的計算設(shè)備正在被用來觀看和/或聽可能受版權(quán)保護(hù)的流式視頻或音頻內(nèi)容。此外,隨著流式回放分辨率越來越大的視頻/音頻內(nèi)容,計算設(shè)備可能需要臨時存儲受保護(hù)的內(nèi)容。版權(quán)受保護(hù)內(nèi)容的所有者可能對計算設(shè)備設(shè)置要求以確保當(dāng)內(nèi)容被向計算設(shè)備流式回放時內(nèi)容不會被盜版或自由地復(fù)制。這些要求可以包括配置計算設(shè)備以執(zhí)行受保護(hù)的回放。通常,受保護(hù)的回放包括解密受保護(hù)的內(nèi)容以及將解密的內(nèi)容置于安全存儲器,供最終輸出到計算設(shè)備的用戶。然而,當(dāng)在安全存儲器中時,解密的內(nèi)容不可以被計算設(shè)備的主應(yīng)用程序(例如,操作系統(tǒng))訪問。
[0003]附圖簡沭
[0004]圖1示出了示例計算平臺。
[0005]圖2示出了目的地管理器的示例體系結(jié)構(gòu)的框圖。
[0006]圖3示出了安全DMA操作的示例過程圖。
[0007]圖4示出了另一個安全DMA操作的示例過程圖。
[0008]圖5示出了安全DMA操作的示例操作的流程圖。
[0009]圖6示出了示例系統(tǒng)。
【具體實(shí)施方式】
[0010]如在本發(fā)明中設(shè)想的,受保護(hù)的回放包括解密受保護(hù)內(nèi)容并將解密的內(nèi)容置于安全存儲器中。在某些示例中,安全處理器(SEP)子系統(tǒng)可以提供安全直接存儲器訪問(DMA)操作。安全DMA操作可以被稱為“加密DMA操作”。當(dāng)前加密DMA操作包括從源存儲器獲取加密的內(nèi)容,并將解密的內(nèi)容置于安全目的地存儲器中。對于這些當(dāng)前加密DMA操作,主機(jī)或計算設(shè)備的操作系統(tǒng)通常對解密的內(nèi)容將被置于什么目的地地址擁有控制權(quán)。但是,主機(jī)或操作系統(tǒng)可能被惡意應(yīng)用程序或代碼劫持。如此,惡意應(yīng)用程序可能劫持操作系統(tǒng)并將解密的內(nèi)容重新定向到非安全目的地存儲器的目的地地址。惡意應(yīng)用程序或可能任何應(yīng)用程序都可能自由地復(fù)制解密的內(nèi)容。
[0011]在某些示例中,實(shí)現(xiàn)了用于安全DMA操作的技術(shù)。對于這些示例,可以響應(yīng)于DMA操作的啟動,建立安全目的地地址范圍。DMA操作可以包括獲取在源存儲器中維護(hù)的加密的內(nèi)容,解密加密的內(nèi)容,并將解密的內(nèi)容置于安全目的地存儲器中。一旦確定了安全目的地地址范圍,可以接收包括與安全目的地存儲器相關(guān)聯(lián)的一個或多個目的地地址的目的地DMA表。允許解密的內(nèi)容被置于安全目的地存儲器中可以基于一個或多個目的地地址落在安全目的地地址范圍內(nèi)。
[0012]圖1示出了示例計算平臺100。如圖1所示,計算平臺100包括安全處理(SEP)子系統(tǒng)110、操作系統(tǒng)120、源存儲器130、共享存儲器140、安全目的地存儲器150、視頻/聲音子系統(tǒng)160、中央處理單元(CPU) 170、通信180,以及應(yīng)用程序190。也如圖1所示,多個接口可以互連和/或可通信地耦合計算平臺100的元件。例如,用戶接口 115和接口 125可以允許用戶(未示出)和/或應(yīng)用程序190耦合到操作系統(tǒng)120。接口 135還可以允許操作系統(tǒng)120具有對計算平臺100的元件,諸如SEP子系統(tǒng)110、共享存儲器130、源存儲器140、安全目的地存儲器150、視頻/聲音子系統(tǒng)160或通信180的至少有限的訪問。接口154可以允許計算平臺100的硬件和/或固件元件可通信地耦合在一起,例如,通過系統(tǒng)總線或其他類型的內(nèi)部通信信道。
[0013]在某些示例中,如圖1所示,SEP子系統(tǒng)110可以包括目的地管理器112、加密DMA模塊114和安全處理器116。目的地管理器112、加密DMA模塊114和安全處理器116可以包括被配置成執(zhí)行加密DMA操作的邏輯和/或特征。加密DMA操作可以包括獲取在源存儲器(例如,源存儲器140)中維護(hù)的加密的內(nèi)容,解密加密的內(nèi)容,并將解密的內(nèi)容置于安全的目的地存儲器(例如,安全目的地存儲器150)中。
[0014]根據(jù)某些示例,操作系統(tǒng)120可以與SEP子系統(tǒng)110進(jìn)行協(xié)作,以允許應(yīng)用程序190請求的內(nèi)容的受保護(hù)的回放。對于這些示例,應(yīng)用程序190的用戶可能希望在附接到或耦合到計算平臺100的顯示器上觀看流式視頻(例如,通過網(wǎng)絡(luò)資源或媒體服務(wù)器)。操作系統(tǒng)120,例如,可以允許應(yīng)用程序190使用通信180來向源存儲器140流送回放受保護(hù)的內(nèi)容。如下面所描述的,操作系統(tǒng)120和/或應(yīng)用程序190可以啟動通過SEP子系統(tǒng)110的元件來實(shí)現(xiàn)的加密DMA操作,以允許加密的內(nèi)容流的受保護(hù)的回放。
[0015]根據(jù)某些示例,共享存儲器130可以包括被計算平臺100的各種元件(例如,操作系統(tǒng)120、SEP子系統(tǒng)110、應(yīng)用程序190等等)使用的各種存儲器介質(zhì)。對于這些實(shí)現(xiàn),共享存儲器130可以包括,但不局限于,易失性存儲器、非易失性存儲器、閃存、隨機(jī)存取存儲器(RAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)RAM(SRAM)中的一項或多項。
[0016]在某些示例中,源存儲器140和安全目的地存儲器150也可以包括各種存儲器介質(zhì),包括,但不僅限于,易失性存儲器、非易失性存儲器、閃存、RAM、ROM,或其他靜態(tài)或動態(tài)存儲器介質(zhì)中的一項或多項。
[0017]根據(jù)某些示例,視頻/聲音子系統(tǒng)160可以包括計算平臺100的元件以向包括計算平臺100的計算設(shè)備的用戶提供視頻/聲音輸出。這些元件可以包括音頻/視頻控制器、圖形處理器等等。在某些示例中,視頻/聲音子系統(tǒng)160可以被操作系統(tǒng)120引導(dǎo)從與安全目的地存儲器150相關(guān)聯(lián)的一個或多個存儲器地址獲取視頻/聲音內(nèi)容。
[0018]根據(jù)某些示例,CPU170可以實(shí)現(xiàn)為計算平臺100的中央處理單元。CPU170可以包括具有一個或多個處理器核或具有任意數(shù)量的具有任意數(shù)量處理器核的處理器的一個或多個處理單元。處理器170可以包括任何類型的處理單元,諸如,例如,多處理單元、精簡指令集計算機(jī)(RISC)、具有流水線的處理器、復(fù)雜指令集計算機(jī)(CISC)、數(shù)字信號處理器(DSP)等等。
[0019]在某些示例中,通信180可以包括允許計算平臺100在外部與遠(yuǎn)離計算平臺100的元件進(jìn)行通信(例如,請求并接收流式受保護(hù)內(nèi)容)的邏輯和/或特征。這些邏輯和/或特征可以包括通過有線和/或無線通信信道,通過一個或多個有線或無線網(wǎng)絡(luò),來進(jìn)行通信。在跨這樣的網(wǎng)絡(luò)的通信中,通信180可以根據(jù)任何版本的一個或多個適用的通信或網(wǎng)絡(luò)標(biāo)準(zhǔn)來操作。
[0020]如上文所提及的,接口 154可以允許計算平臺100的硬件和/或固件元件可通信地耦合在一起。根據(jù)某些示例,通信信道接口 154可以根據(jù)一個或多個協(xié)議或標(biāo)準(zhǔn)來操作??梢栽谝粋€或多個行業(yè)標(biāo)準(zhǔn)(包括后代和變體)中,諸如與集成電路之間(I2C)規(guī)范、系統(tǒng)管理總線(SMBus)規(guī)范、加速圖形端口(AGP)規(guī)范、外圍組件互連Express (PCI Express)規(guī)范、通用串行總線(USB)規(guī)范或串行高級技術(shù)附件(SATA)規(guī)范相關(guān)聯(lián)的那些,描述這些通信協(xié)議或標(biāo)準(zhǔn)。雖然本發(fā)明不僅限于上文所提及的標(biāo)準(zhǔn)和相關(guān)聯(lián)的協(xié)議。
[0021]在某些示例中,計算平臺100可以是計算設(shè)備的至少一部分。計算設(shè)備的示例可以包括個人計算機(jī)(PC)、膝上型計算機(jī)、超膝上型計算機(jī)、平板電腦、觸摸板、便攜式計算機(jī)、手持式計算機(jī)、掌上電腦、個人數(shù)字助理(PDA)、蜂窩電話、蜂窩電話/PDA的組合、電視機(jī)、智能設(shè)備(例如,智能電話、智能平板電腦或智能電視機(jī))、移動因特網(wǎng)設(shè)備(MID)、消息傳送設(shè)備、數(shù)據(jù)通信設(shè)備等等。
[0022]圖2示出了目的地管理器112的示例體系結(jié)構(gòu)的框圖。如上文對于圖1中的計算平臺100描述的,SEP子系統(tǒng)110可以包括目的地管理器112。在某些示例中,目的地管理器112包括被配置為促進(jìn)安全DMA操作的特征和/或邏輯。
[0023]圖2的示例目的地管理器112包括目的地邏輯210、控制邏輯220、存儲器230和輸入/輸出(I/O)接口 240。如圖2所示,目的地邏輯210可以耦合到控制邏輯220、存儲器230和I/O接口 240。目的地邏輯210可以包括啟動特征211、范圍特征213、設(shè)置特征215、驗(yàn)證特征217,或指示特征219中的一項或多項,或其任何合理的組合。
[0024]在某些示例中,圖2中所描繪的元件被配置成支持或啟用如本發(fā)明所描述的目的地管理器112。給定目的地管理器112可以包括圖2中所描繪的那些元件中的某些,全部或更多元件。例如,目的地邏輯210和控制邏輯220可以分別地或共同地表示實(shí)現(xiàn)目的地管理器112的特征的各種邏輯設(shè)備或可執(zhí)行內(nèi)容。示例邏輯設(shè)備可以包括微處理器、微控制器、處理器電路、安全處理器、現(xiàn)場可編程門陣列(FPGA),專用集成電路(ASIC)、多核/多線程微處理器的分離的線程或核中的一項或多項或其組合。
[0025]在某些示例中,如圖2所示,目的地邏輯210包括啟動特征211、范圍特征213、設(shè)置特征215、驗(yàn)證特征217,或指示特征219。目的地邏輯210可以被配置成使用這些特征中的一項或多項來執(zhí)行操作。例如,啟動特征211可以對操作系統(tǒng)或應(yīng)用程序的請求的啟動作出響應(yīng)以開始加密DMA操作。范圍特征213可以建立安全目的地地址范圍,用于將解密的內(nèi)容放置在安全目的地存儲器中。設(shè)置特征215可以在加密DMA模塊處設(shè)置源和目的地寄存器以有助于受保護(hù)的內(nèi)容從源存儲器向安全目的地存儲器的移動。驗(yàn)證特征217可以判斷與安全目的地存儲器相關(guān)聯(lián)的目的地地址是否落在安全目的地地址范圍內(nèi)。如果加密DMA操作由于一個或多個目的地地址落到安全目的地地址范圍以外而停止,指示特征219可以向操作系統(tǒng)或應(yīng)用程序發(fā)送錯誤指示。
[0026]在某些示例中,控制邏輯220可以被配置成控制目的地管理器112的總體操作。如上文所提及的,控制邏輯220可以表示各種邏輯設(shè)備或可執(zhí)行內(nèi)容中的任何一個。對于某些示例,控制邏輯220可以被配置成與可執(zhí)行內(nèi)容或指令一起操作,以實(shí)現(xiàn)對目的地管理器112的控制。在某些替換的示例中,控制邏輯220的特征和功能可以在目的地邏輯210內(nèi)實(shí)現(xiàn)。
[0027]根據(jù)某些示例,存儲器230可以被配置為存儲供控制邏輯220和/或目的地邏輯210使用的可執(zhí)行內(nèi)容或指令??蓤?zhí)行內(nèi)容或指令可以被用來實(shí)現(xiàn)或激活目的地管理器112的特征或元件。如下文所更多描述的,存儲器230也可以被配置為至少臨時維護(hù)與建立安全目的地地址范圍以及在諸如加密DMA模塊114之類的DMA模塊中設(shè)置源和目的地寄存器相關(guān)聯(lián)的信息。存儲器230也可以被配置為臨時存儲與驗(yàn)證與安全目的地存儲器相關(guān)聯(lián)的目的地地址相關(guān)聯(lián)的信息。
[0028]存儲器230可以包括各種存儲器介質(zhì),包括,但不僅限于,易失性存儲器、非易失性存儲器、閃存、可編程的變量或狀態(tài)、RAM、ROM,或其他靜態(tài)或動態(tài)存儲器介質(zhì)中的一項或多項。
[0029]在某些示例中,I/O接口 240可以通過本地通信介質(zhì)或圖1中所描繪的目的地管理器112和計算平臺100的元件之間的鏈路來提供接口。I/O接口 240可以包括根據(jù)各種通信協(xié)議(例如,I2C、SMBus、AGP、PCI Express、USB、SATA等等)來操作以通過本地通信介質(zhì)或鏈路來進(jìn)行通信的接口。
[0030]圖3示出了安全DMA操作的示例過程300。在某些示例中,如圖1所示或在圖2中所描述的目的地管理器112可以包括促進(jìn)過程300的邏輯和/或特征。此外,如圖1所示的加密DMA模塊114、安全處理器116、操作系統(tǒng)120、共享存儲器130、源存儲器140、安全目的地存儲器150或應(yīng)用程序190也可以被配置成實(shí)現(xiàn)過程300的至少某些操作。示例不僅限于上文所提及的用于實(shí)現(xiàn)過程300的元件。
[0031]從示例過程3.1開始(分散-聚集列表),操作系統(tǒng)120和/或應(yīng)用程序190可以被配置成生成或構(gòu)建分散-聚集(scatter-gather)列表。在某些示例中,分散-聚集列表可以分別指出加密的和解密的內(nèi)容的源和目的地地址。對于這些示例,應(yīng)用程序190的用戶可能希望在耦合到計算平臺100的顯示器上觀看流式視頻。操作系統(tǒng)120,例如,可以允許應(yīng)用程序190將加密的內(nèi)容定向到源存儲器140。操作系統(tǒng)120和/或應(yīng)用程序190可以生成源存儲器140中的源地址列表,以指出加密的內(nèi)容在哪里正在被維護(hù)。操作系統(tǒng)120和/或應(yīng)用程序190也可以生成與安全目的地存儲器150相關(guān)聯(lián)的目的地地址列表,以指出解密的內(nèi)容將被放置在哪里。源或目的地列表可以叫做分散-聚集列表,以反映可以從源存儲器140和/或安全目的地存儲器150的非相鄰的部分中獲取加密的/解密的內(nèi)容的可能性。此外,對于這些示例,操作系統(tǒng)120和/或應(yīng)用程序190可以至少臨時將分散-聚集列表放置在共享存儲器130中。
[0032]繼續(xù)到示例過程3.2 (啟動加密DMA操作),操作系統(tǒng)120和/或應(yīng)用程序190可以啟動加密DMA操作。在某些示例中,SEP子系統(tǒng)110中的目的地管理器112可以包括對啟動作出響應(yīng)以開始加密DMA操作(例如,通過啟動特征211)的邏輯和/或特征。對于這些示例,分散-聚集列表在共享存儲器130中的存在可以指出操作系統(tǒng)120的和/或應(yīng)用程序190的啟動加密DMA操作的意圖。
[0033]繼續(xù)到示例過程3.3 (設(shè)置有效目的地范圍寄存器),目的地管理器112可以包括響應(yīng)于加密DMA操作的啟動而設(shè)置在加密DMA模塊114中維護(hù)的有效目的地范圍寄存器(例如,通過范圍特征213)的邏輯和/或特征。在某些示例中,在加密DMA模塊114中維護(hù)的有效目的地范圍寄存器可以被設(shè)置為建立安全目的地地址范圍,通過該范圍,可以將解密的內(nèi)容置于安全目的地存儲器150中。對于這些示例,目的地管理器112可以設(shè)置在加密DMA模塊114中維護(hù)的有效目的地起始地址寄存器和有效目的地結(jié)束寄存器。落在由這些寄存器指出的起始和結(jié)束地址上或之間的目的地地址,例如,落在安全目的地地址范圍內(nèi),并可以被視為“有效目的地地址”。
[0034]繼續(xù)到示例過程3.4(設(shè)置源和目的地寄存器),目的地管理器112可以包括從共享存儲器130接收分散-聚集列表并開始基于該分散-聚集列表來設(shè)置加密DMA模塊114中維護(hù)的源和目的地址寄存器(例如,通過設(shè)置特征215)的邏輯和/或特征。在某些示例中,如上文所提及的,分散-聚集列表包括與在源存儲器140中維護(hù)的加密內(nèi)容相關(guān)聯(lián)的源地址,還包括用于將解密的內(nèi)容放置在安全目的地存儲器150中的目的地地址。
[0035]繼續(xù)到示例過程3.5 (驗(yàn)證),加密DMA模塊114可以被配置成自動地驗(yàn)證分散-聚集列表中所包括的目的地地址。在某些示例中,加密DMA模塊114可以當(dāng)目的地管理器112嘗試設(shè)置每一個目的地址寄存器時分別地驗(yàn)證各個目的地地址。例如,加密DMA模塊114可以被配置成自動地確認(rèn)每一個目的地地址是否落在安全目的地地址范圍內(nèi)。
[0036]移動到示例過程3.6 (如果無效目的地地址,則指出錯誤),加密DMA模塊114可以被配置成判斷給定目的地地址不落入安全目的地地址范圍內(nèi)。在某些示例中,加密DMA模塊114可以判斷給定目的地地址是無效的,并且加密DMA模塊114可以停止寄存器設(shè)置過程,并將錯誤信號發(fā)送到目的地管理器112。
[0037]繼續(xù)到示例過程3.7 (如果錯誤/未通過驗(yàn)證,則停止加密DMA操作),目的地管理器112可以包括被配置成停止加密DMA操作(例如,通過驗(yàn)證特征217)的邏輯和/或特征。在某些示例中,在停止加密DMA操作時,目的地管理器112可以將錯誤消息或指示發(fā)送到操作系統(tǒng)120和/或應(yīng)用程序190。對于這些示例,錯誤消息可以指出非有效目的地地址被包括在分散-聚集列表中。
[0038]移動到示例過程3.8 (如果所有目的地地址都通過驗(yàn)證,則完成加密DMA操作),加密DMA模塊114隨后可以開始基于如上文所描述的設(shè)置的源地址寄存器,從源存儲器140移動加密的內(nèi)容。在某些示例中,從源存儲器140中獲取的加密的內(nèi)容可以由安全處理器116解密,然后,基于如上文所描述的設(shè)置并驗(yàn)證的目的地址寄存器,由加密DMA模塊114放置在安全目的地存儲器150中。
[0039]繼續(xù)到示例過程3.9 (清除有效目的地范圍寄存器),目的地管理器112可以清除如上文所提及的在加密DMA模塊114中設(shè)置的有效目的地范圍寄存器。在某些示例中,可以基于加密DMA操作的完成,清除有效目的地范圍寄存器。在某些其他示例中,如果在錯誤消息(例如,非有效目的地地址)之后,操作系統(tǒng)120和/或應(yīng)用程序190放棄執(zhí)行加密DMA操作的努力,也可以清除有效目的地范圍寄存器。對于這些示例,如果在給定時間段內(nèi)(例如,若干秒或幾分鐘)沒有生成新或修改的分散-聚集列表,則目的地管理器112可以認(rèn)為操作系統(tǒng)120和/或應(yīng)用程序190放棄了執(zhí)行加密DMA操作的努力。
[0040]移動到示例過程3.10(成功的加密DMA操作),目的地管理器112可以包括指出成功的加密DMA操作(例如,通過指示特征219)的邏輯和/或特征。在某些示例中,成功的加密DMA操作可以包括根據(jù)在分散-聚集列表中指出的源/目的地地址,受保護(hù)的內(nèi)容在源存儲器140和安全目的地存儲器150之間的移動。對于這些示例,所有目的地地址被判斷為在安全目的地地址范圍內(nèi),如此,在解密的內(nèi)容被置于安全目的地存儲器150之前通過驗(yàn)證。
[0041]圖4示出了另一個安全DMA操作的示例過程400。在某些示例中,如圖1所示或在圖2中所描述的目的地管理器112可以包括促進(jìn)過程400的邏輯和/或特征。此外,如圖1所示的加密DMA模塊114、安全處理器116、操作系統(tǒng)120、共享存儲器130、源存儲器140、安全目的地存儲器150或應(yīng)用程序190也可以被配置成實(shí)現(xiàn)過程400的至少某些操作。示例不僅限于上文所提及的用于實(shí)現(xiàn)過程400的元件。
[0042]從示例過程4.1開始(源DMA表),操作系統(tǒng)120和/或應(yīng)用程序190可以被配置成生成或構(gòu)建源DMA表。在某些示例中,目的地管理器112可以不具有足夠的存儲器資源來維護(hù)如上文對于過程300所描述的分散-聚集列表中所包括的源/目的地地址。對于這些示例,目的地管理器112可以使用共享存儲器130來維護(hù)源/目的地地址。只有指出加密的內(nèi)容的一個或多個源地址的源DMA表是由操作系統(tǒng)120和/或應(yīng)用程序190構(gòu)建的,并置于共享存儲器130中。為了保護(hù)目的地地址,目的地管理器112可以生成或構(gòu)建目的地DMA表,如下面所描述的。
[0043]繼續(xù)到示例過程4.2 (啟動加密DMA操作),操作系統(tǒng)120和/或應(yīng)用程序190可以啟動加密DMA操作。在某些示例中,SEP子系統(tǒng)110中的目的地管理器112可以包括對啟動作出響應(yīng)以開始加密DMA操作(例如,通過啟動特征211)的邏輯和/或特征。對于這些示例,源DMA表在共享存儲器130中的存在可以指出操作系統(tǒng)120的和/或應(yīng)用程序190的啟動加密DMA操作的意圖。
[0044]繼續(xù)到示例過程4.3 (目的地DMA表/標(biāo)志共享存儲器),目的地管理器112可以包括被配置成構(gòu)建目的地DMA表(例如,通過啟動特征211)并將目的地DMA表置于共享存儲器130的一部分的邏輯和/或特征。此外,目的地管理器112還可以標(biāo)志共享存儲器130的該部分以指出該部分的與加密DMA操作的相關(guān)聯(lián)。在某些示例中,對共享存儲器130的該部分進(jìn)行標(biāo)志也可以指出這些目的地地址還有待于驗(yàn)證。
[0045]繼續(xù)到示例過程4.4 (設(shè)置有效目的地范圍),目的地管理器112可以包括被配置成設(shè)置有效目的地起始地址和有效目的地結(jié)束地址(例如,通過范圍特征213)的邏輯和/或特征。在某些示例中,與在過程300中不同,目的地管理器112不在加密DMA模塊114中設(shè)置寄存器以建立安全的目的地地址范圍。相反,對于這些示例,目的地管理器112可以在其自己的,安全存儲器(例如,存儲器230)中維護(hù)有效目的地起始和結(jié)束地址。
[0046]繼續(xù)到示例過程4.5 (將目的地地址復(fù)制到安全存儲器),目的地管理器112可以從在共享存儲器130中維護(hù)的目的地DMA表復(fù)制目的地地址。在某些示例中,可以將一個或多個目的地地址復(fù)制到目的地管理器112的自己的安全存儲器(例如,存儲器230)。
[0047]繼續(xù)到示例過程4.6 (驗(yàn)證),目的地管理器112可以包括被配置成驗(yàn)證被復(fù)制到其安全存儲器的目的地地址(例如,通過驗(yàn)證特征217)的邏輯和/或特征。如上文所提及的,目的地管理器112標(biāo)志共享存儲器130的某些部分以指出需要驗(yàn)證目的地地址。在某些示例中,標(biāo)志向目的地管理器112指出應(yīng)檢查一個或多個復(fù)制的目的地地址的有效性。對于這些示例,目的地管理器112可以通過確認(rèn)一個或多個復(fù)制的目的地地址是否落在安全目的地地址范圍內(nèi)來確定有效性。
[0048]移動到示例過程4.7 (如果目的地地址無效,則停止加密DMA操作),如果從共享存儲器130復(fù)制的目的地地址中的至少一個不落在安全目的地地址范圍內(nèi),則目的地管理器112可以停止加密DMA操作。在某些示例中,目的地地址中的至少一個不落在安全目的地地址范圍內(nèi)可能會導(dǎo)致非有效目的地地址。對于這些示例,目的地管理器112可以包括將錯誤消息發(fā)送到操作系統(tǒng)120和/或應(yīng)用程序190 (例如,通過指示特征219)以指出非有效目的地地址的邏輯和/或特征。
[0049]移動到示例過程4.8 (設(shè)置加密DMA寄存器),目的地管理器112可以在加密DMA模塊114中編程或設(shè)置源和目的地寄存器。在某些示例中,目的地管理器112可以在驗(yàn)證目的地地址之后設(shè)置這些寄存器。對于這些示例,可以根據(jù)在共享存儲器130中維護(hù)的源DMA表來設(shè)置源寄存器,并可以根據(jù)在共享存儲器130中維護(hù)的目的地地址來設(shè)置目的地寄存器。
[0050]移動到示例過程4.9 (成功的加密DMA操作),目的地管理器112可以指出成功的加密DMA操作。在某些示例中,成功的加密DMA操作可以包括根據(jù)在源和目的地DMA表中指出的源/目的地地址,受保護(hù)的內(nèi)容在源存儲器140和安全目的地存儲器150之間的移動。對于這些示例,所有目的地地址被判斷為在安全目的地地址范圍內(nèi),如此,在解密的內(nèi)容被置于安全目的地存儲器150之前通過驗(yàn)證。
[0051]移動到示例過程4.10 (刪除共享存儲器標(biāo)志),目的地管理器112可以從共享存儲器130的一部分刪除指出該部分的與加密DMA操作的相關(guān)聯(lián)的標(biāo)志。在某些不例中,標(biāo)志的刪除可以指出,存儲器的一部分可以利用隨后的加密DMA操作中的新源或目的地DMA表改寫。在某些其他示例中,如果在錯誤消息(例如,非有效目的地地址)之后,操作系統(tǒng)120和/或應(yīng)用程序190放棄執(zhí)行加密DMA操作的努力,也可以清除共享存儲器標(biāo)志。對于這些示例,如果在給定時間段內(nèi)(例如,若干秒或幾分鐘)沒有接收到重試加密DMA操作的請求,則目的地管理器112可以認(rèn)為操作系統(tǒng)120和/或應(yīng)用程序190放棄了執(zhí)行加密DMA操作的努力。
[0052]圖5示出了安全DMA操作的示例操作的流程圖。在某些示例中,如圖1所示的計算平臺100的元件可以被用來示出了涉及圖5中所描繪的流程圖的示例操作。也可以使用如圖1和圖2所示的目的地管理器112來示出示例操作。但是,所描述的方法不僅限于計算平臺100上的實(shí)現(xiàn)或目的地管理器112。
[0053]從開始移動到框510 (啟動加密DMA操作),操作系統(tǒng)120和/或應(yīng)用程序190可以啟動如上文對于過程300或過程400所描述的加密DMA操作。在某些示例中,SEP子系統(tǒng)110中的目的地管理器112可以包括對啟動作出響應(yīng)以開始加密DMA操作(例如,通過啟動特征211)的邏輯和/或特征。
[0054]從框510移動到框520 (建立安全目的地地址范圍),目的地管理器112可以包括被配置成建立安全目的地地址范圍的邏輯和/或特征(例如,通過范圍特征213)。在某些示例中,目的地管理器112可以通過設(shè)置在加密DMA模塊114中維護(hù)的有效目的地范圍寄存器來建立安全目的地地址范圍。對于這些示例,類似于過程300,目的地管理器112可以設(shè)置在加密DMA模塊114中維護(hù)的有效目的地起始地址寄存器和有效目的地結(jié)束地址寄存器。在其他示例中,目的地管理器112可以在不設(shè)置范圍寄存器的情況下建立安全目的地。對于這些示例,類似于過程400,目的地管理器112可以設(shè)置有效目的地起始地址和有效目的地結(jié)束地址,并在其自己的,安全存儲器(例如,存儲器230)中維護(hù)這些地址。
[0055]從框520前進(jìn)到框530 (接收目的地DMA表),目的地管理器112可以包括被配置成接收目的地DMA表(例如,通過驗(yàn)證特征217)的邏輯和/或特征。在某些示例中,目的地管理器112可以通過由操作系統(tǒng)120和/或應(yīng)用程序190所生成的分散-聚集列表來接收目的地DMA表。在其他示例中,目的地DMA表可以維護(hù)在共享存儲器130的被標(biāo)志的部分。對于這些其他示例,目的地管理器112可能已經(jīng)生成目的地DMA表并已標(biāo)志共享存儲器的一部分??梢詮墓蚕泶鎯ζ?30的該被標(biāo)志的部分接收目的地DMA表。[0056]從框530前進(jìn)到判斷框540 (目的地地址有效嗎?),目的地管理器112可以包括被配置成驗(yàn)證接收到的DMA表中所包括的目的地地址(例如,通過驗(yàn)證特征217)的邏輯和/或特征。在某些示例中,目的地管理器可以將有效性基于目的地地址是否落在上文所提及的建立的安全目的地地址范圍內(nèi)。如果目的地地址不落在安全目的地地址范圍內(nèi),則目的地地址被視為無效,過程移到框550。否則,過程移到判斷框570。
[0057]從判斷框540移動到框550 (停止加密DMA操作),目的地管理器112可以包括被配置成停止加密DMA操作或判斷加密DMA操作是否被停止的邏輯和/或特征。在某些示例中,類似于過程300,加密DMA模塊114可以向目的地管理器112發(fā)送錯誤信號以指出一個或更多目的地地址無效。對于這些示例,目的地管理器112基于錯誤信號判斷加密DMA操作已經(jīng)停止。在其他示例中,類似于過程400,目的地管理器112可以基于其自己的關(guān)于一個或更多目的地地址無效的判斷,停止加密DMA操作。
[0058]從框550前進(jìn)到框560 (發(fā)送錯誤指示),目的地管理器112可以包括被配置成向操作系統(tǒng)120和/或應(yīng)用程序190發(fā)送錯誤指示(例如,通過指示特征219)的邏輯和/或特征。在某些示例中,目的地管理器112可以等待一段時間,等待操作系統(tǒng)120和/或應(yīng)用程序190重新啟動加密DMA操作,然后,如果加密DMA操作沒有重新啟動,則可以清除有效目的地范圍寄存器或刪除共享存儲器標(biāo)志。然后,過程結(jié)束。
[0059]從判斷框540移動到框570 (允許加密DMA操作繼續(xù)),目的地管理器112可以包括被配置成允許加密DMA操作繼續(xù)的邏輯和/或特征。在某些示例中,加密DMA模塊114現(xiàn)在可以設(shè)置適用的源和目的地址寄存器對于這些示例,從源存儲器140中獲取的加密的內(nèi)容可以由安全處理器116解密,然后,基于設(shè)置的源和目的地址寄存器,由加密DMA模塊114放置在安全目的地存儲器150中。
[0060]從框570繼續(xù)到判斷框580 (加密DMA操作完成了嗎?),目的地管理器112可以包括被配置成判斷從源存儲器140中獲取的所有加密的內(nèi)容是否由安全處理器116解密然后由加密DMA模塊114放置在安全目的地存儲器150中的邏輯和/或特征。如果沒有解密所有加密的內(nèi)容,則過程返回到判斷框540。否則,清除有效目的地范圍寄存器,或刪除共享存儲器標(biāo)志,過程結(jié)束。
[0061]圖6是計算設(shè)備的示例系統(tǒng)600的圖示。具體而言,圖6是示出了可以包括各種元件的系統(tǒng)600的圖示。例如,圖6示出了系統(tǒng)600可以包括處理器602、芯片組604、輸入/輸出(I/O) 606、隨機(jī)存取存儲器(RAM)(諸如動態(tài)RAM (DRAM)) 608,以及只讀存儲器(ROM) 610,以及各種平臺組件614(例如,風(fēng)扇、橫向氣流鼓風(fēng)機(jī)、散熱器、DTM系統(tǒng)、冷卻系統(tǒng)、夕卜殼、通風(fēng)孔等等)??梢允褂糜布④浖?、固件或其任何組合來實(shí)現(xiàn)這些元件。然而,各實(shí)施例不僅限于這些元件。
[0062]如圖6所示,I/O設(shè)備606、RAM608,以及R0M610通過芯片組604耦合到處理器602。芯片組604可以通過總線612耦合到處理器602。相應(yīng)地,總線612可以包括多條線。在各示例中,芯片組604可以與處理器602集成或封裝在一起。描述并要求保護(hù)其他示例。
[0063]處理器602可以是包括一個或多個處理器核的中央處理單元,并可以具有任意數(shù)量的具有任意數(shù)量處理器核的處理器。處理器602可以包括任何類型的處理單元,諸如,例如,CPU、多處理單元、精簡指令集計算機(jī)(RISC)、具有流水線的處理器、復(fù)雜指令集計算機(jī)(CISC)、數(shù)字信號處理器(DSP)等等。[0064]雖然未示出,系統(tǒng)600可以包括各種接口電路,諸如以太網(wǎng)接口和/或通用串行總線(USB)接口,和/或等等。在某些示例性實(shí)施例中,I/O設(shè)備606可以包括連接到接口電路的用于向系統(tǒng)600中輸入數(shù)據(jù)和命令的一個或多個輸入設(shè)備。例如,輸入設(shè)備可以包括鍵盤、鼠標(biāo)、觸摸屏、跟蹤板、跟蹤球、isopoint、語音識別系統(tǒng),和/或等等。類似地,I/O設(shè)備606可以包括連接到接口電路的用于向操作員輸出信息的一個或多個輸出設(shè)備。例如,輸出設(shè)備可以包括一個或多個顯示器、打印機(jī)、揚(yáng)聲器,和/或其他輸出設(shè)備,如果需要的話。例如,輸出設(shè)備中的一個可以是顯示器。顯示器可以是陰極射線管(CRT)、液晶顯示器(IXD),或任何其他類型的顯示器。
[0065]系統(tǒng)600也可以具有有線或無線網(wǎng)絡(luò)接口,以通過到網(wǎng)絡(luò)的連接,與其他設(shè)備交換數(shù)據(jù)。網(wǎng)絡(luò)連接可以是任何類型的網(wǎng)絡(luò)連接,諸如以太網(wǎng)連接、數(shù)字用戶線(DSL)、電話線路、同軸電纜等等。網(wǎng)絡(luò)可以是任何類型的網(wǎng)絡(luò),諸如因特網(wǎng)、電話網(wǎng)絡(luò)、有線電視網(wǎng)、無線網(wǎng)絡(luò)、分組交換網(wǎng)絡(luò)、電路交換網(wǎng),和/或等等。
[0066]各示例可以使用硬件元件、軟件元件或兩者的組合來實(shí)現(xiàn)。硬件元件的示例可包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、感應(yīng)器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片組等等。軟件的示例可包括軟件組件、程序、應(yīng)用程序、計算機(jī)程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機(jī)代碼、代碼段、計算機(jī)代碼段、字、值、符號,或其任何組合。判斷一個示例是否使用硬件元件或軟件元件來實(shí)現(xiàn)可以根據(jù)任意數(shù)量的因素而不同,如所希望的計算速率、功率級別、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度,及其他設(shè)計或性能約束。
[0067]至少一個示例的一個或多個方面可以通過存儲在機(jī)器可讀介質(zhì)上的代表性的指令來實(shí)現(xiàn),指令表示處理器內(nèi)的各種邏輯,指令在由機(jī)器讀取時使機(jī)器制造執(zhí)行此處所描述的技術(shù)的邏輯。被稱為“IP核”的這樣的表示可以存儲在有形的機(jī)器可讀介質(zhì)中,并提供給各種客戶或生產(chǎn)設(shè)施,以加載到實(shí)際制造邏輯或處理器的制造機(jī)器中。
[0068]各示例可以使用硬件元件、軟件元件或兩者的組合來實(shí)現(xiàn)。在某些示例中,硬件元件可包括器件、邏輯器件、組件、處理器、微處理器、電路、處理器組件、電路元件(例如,晶體管、電阻器、電容器、感應(yīng)器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、存儲器單元、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片組等等。在某些示例中,軟件元件可以包括軟件組件、程序、應(yīng)用程序、計算機(jī)程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機(jī)代碼、代碼段、計算機(jī)代碼段、字、值、符號,或其任何組合。判斷一個示例是否使用硬件元件或軟件元件來實(shí)現(xiàn)可以根據(jù)任意數(shù)量的因素而不同,如所希望的計算速率、功率級別、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度,及其他設(shè)計或性能約束,如根據(jù)需要給定實(shí)現(xiàn)的需要。
[0069]某些示例可以包括制品。制品可以包括存儲邏輯的非瞬時的存儲介質(zhì)。在某些示例中,非瞬時的存儲介質(zhì)可包括一種或多種類型的能夠存儲電子數(shù)據(jù)的計算機(jī)可讀存儲介質(zhì),包括易失性存儲器或非易失性存儲器,可移動或不可移動存儲器,可擦除或不可擦存儲器,可寫入或可重寫的存儲器等等。在某些示例中,邏輯可包括各種軟件元件,如軟件組件、程序、應(yīng)用程序、計算機(jī)程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機(jī)代碼、代碼段、計算機(jī)代碼段、字、值、符號,或其任何組合。
[0070]根據(jù)某些示例,制品可以包括存儲或維護(hù)指令的非瞬時的存儲介質(zhì),所述指令,當(dāng)由計算機(jī)或系統(tǒng)執(zhí)行時,導(dǎo)致計算機(jī)或系統(tǒng)執(zhí)行根據(jù)所描述的示例的方法和/或操作。指令可包括任何合適類型的代碼,如源代碼、已編譯的代碼、已解釋的代碼、可執(zhí)行代碼、靜態(tài)代碼、動態(tài)代碼等等。指令可以根據(jù)預(yù)定義的計算機(jī)語言、方式或語法來實(shí)現(xiàn),以便指示計算機(jī)來執(zhí)行某一功能。指令可以使用任何合適的高級別的、低級別的、面向?qū)ο蟮?、可視的、已編譯的和/或解釋性編程語言來實(shí)現(xiàn)。
[0071]可以使用表達(dá)“在一個示例中”或“示例”以及它們的派生詞來描述某些示例。這些術(shù)語意味著,參考示例所描述的特定功能、結(jié)構(gòu)或特征包括在至少一個示例中。在本說明書中的不同位置出現(xiàn)短語“在一個示例中”不一定都是指同一個示例。
[0072]可以使用表達(dá)“耦合”和“連接”以及它們的派生詞來描述某些示例。這些術(shù)語不一定作為彼此的同義詞。例如,使用術(shù)語“連接”和/或“耦合”的描述可以表示,兩個或更多元件彼此處于直接的物理或電接觸的狀態(tài)。然而,術(shù)語“耦合”也可以意味著,兩個或更多彼此不直接接觸,但是仍彼此合作或進(jìn)行交互。
[0073]需強(qiáng)調(diào)的是,提供了“發(fā)明摘要”以符合37C.F.R.第1.72(b)段,要求將可使讀者快速地弄清本技術(shù)公開的特征的摘要。但應(yīng)理解,它不能被用來解釋或限制權(quán)利要求的范圍或含義。此外,在前面的"【具體實(shí)施方式】"中,可以看出,各種特點(diǎn)可以組合在一個示例中,以便簡化說明。本發(fā)明的此方法不應(yīng)被解釋為反映帶權(quán)利要求的各示例需要比每一個權(quán)利要求中明確地列舉的特點(diǎn)更多的特點(diǎn)的意圖。相反,如下面的權(quán)利要求所反映的,本發(fā)明的主題在于少于所公開的單一示例的所有特點(diǎn)。如此,下面的權(quán)利要求被包括到“詳細(xì)描述”中,每一個權(quán)利要求本身也作為單獨(dú)的示例。在所附權(quán)利要求書中,術(shù)語“包括”和“其特征在于”被用作相應(yīng)的術(shù)語“包含”和“其中”的普通英語等效詞。此外,術(shù)語“第一”、“第二”、“第三”等等只用作標(biāo)記,并不旨在對它們的對象施加數(shù)值要求。
[0074]盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
【權(quán)利要求】
1.一種在主機(jī)計算設(shè)備上實(shí)現(xiàn)的方法,包括: 響應(yīng)于直接存儲器訪問(DMA)操作的啟動,建立安全目的地地址范圍,所述直接存儲器訪問(DMA)操作包括從源存儲器獲取加密的內(nèi)容,解密所述加密的內(nèi)容,并將所述解密的內(nèi)容置于安全目的地存儲器中; 接收與所述安全目的地存儲器相關(guān)聯(lián)的一個或多個目的地地址;以及 基于所述一個或多個目的地地址落在所述安全目的地地址范圍內(nèi),允許所述解密的內(nèi)容被置于所述安全目的地存儲器中。
2.如權(quán)利要求1所述的方法,包括通過在被配置成實(shí)現(xiàn)所述DMA操作的DMA模塊中設(shè)置有效目的地起始地址寄存器和有效目的地結(jié)束地址寄存器兩者,建立所述安全目的地地址范圍。
3.如權(quán)利要求2所述的方法,包括響應(yīng)于所述DMA操作的完成,復(fù)位所述有效目的地起始地址寄存器和所述有效目的地結(jié)束地址寄存器。
4.如權(quán)利要求1所述的方法,包括:接收所述一個或多個目的地地址包括接收目的地DMA表,作為由請求所述DMA操作的應(yīng)用程序所生成的分散-聚集列表的一部分,所述分散-聚集列表還包括與所述源存儲器相關(guān)聯(lián)的一個或多個源地址。
5.如權(quán)利要求4所述的方法,包括基于所述分散-聚集列表,在所述DMA模塊中設(shè)置源地址和目的地址寄存器,所述DMA模炔基于所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地地址范圍以外,停止所述源和目的地址寄存器的所述設(shè)置。
6.如權(quán)利要求5所述的方法,包括所述DMA模塊向所述DMA模塊的控制器發(fā)送錯誤指示以指出所述至少一個目的地地址是非有效目的地地址。
7.如權(quán)利要求1所述的方法,包括從在被配置成實(shí)現(xiàn)所述DMA操作的DMA模塊的控制器和所述主機(jī)計算設(shè)備的操作系統(tǒng)之間共享的存儲器的一部分接收所述一個或多個目的地地址,所述一個或多個目的地地址是由所述控制器構(gòu)建的,所述控制器標(biāo)志所述共享存儲器的所述一部分以指出所述部分的與所述DMA操作的相關(guān)聯(lián)。
8.如權(quán)利要求7所述的方法,包括所述控制器通過設(shè)置有效目的地起始地址和設(shè)置有效目的地結(jié)束地址,來建立所述安全目的地地址范圍。
9.如權(quán)利要求8所述的方法,包括所述控制器從所述共享存儲器接收一個或多個源地址,所述一個或多個源地址是由請求所述DMA操作的應(yīng)用程序構(gòu)建的,所述控制器基于所述一個或多個源地址和所述一個或多個目的地地址兩者,在所述DMA模塊中設(shè)置源地址和目的地址寄存器,所述控制器基于所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地地址范圍以外,停止所述源地址和目的地址寄存器的所述設(shè)置。
10.如權(quán)利要求9所述的方法,包括所述控制器響應(yīng)于所述至少一個目的地地址落到所述安全目的地范圍以外,向請求所述DMA操作的所述應(yīng)用程序發(fā)送錯誤指示。
11.如權(quán)利要求8所述的方法,包括所述控制器從所述共享存儲器接收一個或多個源地址,所述一個或多個源地址是由請求所述DMA操作的應(yīng)用程序構(gòu)建的,所述控制器基于所述一個或多個源地址和所述一個或多個目的地地址兩者,并基于所述一個或多個目的地之中的所有所述目的地地址是否落在所述安全目的地地址范圍內(nèi),在所述DMA模塊中設(shè)置源地址和目的地址寄存器。
12.—種設(shè)備,包括:處理器電路;以及 可通信地耦合到所述處理器電路的存儲器單元,所述存儲器單元被配置為存儲目的地管理器,所述目的地管理器可在所述處理器電路上操作,以響應(yīng)于從源存儲器移動加密的內(nèi)容、解密所述加密的內(nèi)容,并將所述解密的內(nèi)容置于安全目的地存儲器中的直接存儲器訪問(DMA)操作的啟動,建立安全目的地地址范圍,所述目的地管理器還可操作以接收與所述安全目的地存儲器相關(guān)聯(lián)的一個或多個目的地地址,并基于所述一個或多個目的地地址落在所述安全目的地地址范圍內(nèi),允許所述解密的內(nèi)容被置于所述安全目的地存儲器。
13.如權(quán)利要求12所述的設(shè)備,包括顯示器,用于視覺回放被置于所述安全目的地存儲器中的所述解密的內(nèi)容的視頻內(nèi)容部分。
14.如權(quán)利要求12所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成:在被配置為實(shí)現(xiàn)所述DMA操作的DMA模塊中設(shè)置有效目的地起始地址寄存器和有效目的地結(jié)束地址寄存器兩者,以建立所述安全目的地地址范圍。
15.如權(quán)利要求14所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成接收目的地DMA表中的所述一個或多個目的地地址,作為由請求所述DMA操作的應(yīng)用程序所生成的分散-聚集列表,所述分散-聚集列表還包括與所述源存儲器相關(guān)聯(lián)的一個或多個源地址。
16.如權(quán)利要求15所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成基于所述分散-聚集列表,在所述DMA模塊中設(shè)置源地址和目的地址寄存器,還被配置成基于來自所述DMA模塊的指出所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地地址范圍以外的錯誤指示,停止所述源地址和目的地址寄存器的所述設(shè)置。
17.如權(quán)利要求12所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成從在所述目的地管理器和所述主機(jī)計算設(shè)備的操作系統(tǒng)之間共享的存儲器的一部分接收所述一個或多個目的地地址,所述目的地管理器還被配置成構(gòu)建所述一個或多個目的地地址,并標(biāo)志所述所述共享存儲器的所述一部分以指出所述部分的與所述DMA操作的關(guān)聯(lián)。
18.如權(quán)利要求17所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成設(shè)置有效目的地起始地址和有效目的地結(jié)束地址兩者,以建立所述安全目的地地址范圍。
19.如權(quán)利要求17所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成:在被配置為實(shí)現(xiàn)所述DMA操作的所述DMA模塊中維護(hù)的寄存器中設(shè)置所述有效目的地起始地址和有效目的地結(jié)束地址。
20.如權(quán)利要求18所述的設(shè)備,包括所述目的地管理器,所述目的地被配置成從所述共享存儲器接收一個或多個源地址,所述一個或多個源地址是由請求所述DMA操作的應(yīng)用程序構(gòu)建的,所述目的地管理器基于所述一個或多個源地址和所述一個或多個目的地地址兩者,在所述DMA模塊中設(shè)置源地址和目的地址寄存器,所述目的地管理器還被配置成基于所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地地址范圍以外,停止所述源地址和目的地址寄存器的所述設(shè)置。
21.如權(quán)利要求20所述的設(shè)備,包括所述目的地管理器,所述目的地管理器被配置成響應(yīng)于所述至少一個目的地地址是非有效目的地地址,向請求所述DMA操作的所述應(yīng)用程序發(fā)送錯誤指示。
22.包括存儲介質(zhì)的制品,所述存儲介質(zhì)包含指令,當(dāng)執(zhí)行所述指令時,所述指令導(dǎo)致主機(jī)計算設(shè)備的直接存儲器訪問(DMA)系統(tǒng): 響應(yīng)于DMA操作的啟動,建立安全目的地地址范圍,所述直接存儲器訪問(DMA)操作包括從源存儲器獲取加密的內(nèi)容,解密所述加密的內(nèi)容,并將所述解密的內(nèi)容置于安全目的地存儲器中; 接收與所述安全目的地存儲器相關(guān)聯(lián)的一個或多個目的地地址;以及 基于所述一個或多個目的地地址落在所述安全目的地地址范圍內(nèi),導(dǎo)致所述解密的內(nèi)容被置于所述安全目的地存儲器中。
23.如權(quán)利要求22所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)通過所述DMA系統(tǒng)在被配置成實(shí)現(xiàn)所述DMA操作的DMA模塊中設(shè)置有效目的地起始地址寄存器和有效目的地結(jié)束地址寄存器來確定所述安全目的地地址范圍。
24.如權(quán)利要求23所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)接收DMA表中的所述一個或多個目的地地址,作為由請求所述DMA操作的應(yīng)用程序所生成的所述分散-聚集列表的一部分,所述所述分散-聚集列表還包括與所述源存儲器相關(guān)聯(lián)的一個或多個源地址。
25.如權(quán)利要求24所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)基于所述分散_聚集列表來在所述DMA模塊中設(shè)置源地址和目的地址寄存器,并且所述指令還導(dǎo)致所述DMA系統(tǒng)基于來自所述DMA模塊的指出所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地 地址范圍以外的錯誤指示,停止所述源和目的地址寄存器的所述設(shè)置。
26.如權(quán)利要求22所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)從在所述DMA系統(tǒng)和所述主機(jī)計算設(shè)備的操作系統(tǒng)之間共享的存儲器的一部分接收所述一個或多個目的地地址,所述一個或多個目的地地址是由所述DMA系統(tǒng)構(gòu)建的,所述指令還導(dǎo)致所述DMA系統(tǒng)標(biāo)志所述共享存儲器的所述一部分指出所述部分的與所述DMA操作的相關(guān)聯(lián)。
27.如權(quán)利要求26所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)通過設(shè)置有效目的地結(jié)束地址來確定所述安全目的地地址范圍。
28.如權(quán)利要求27所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)從所述共享存儲器接收一個或多個源地址,所述一個或多個源地址是由請求所述DMA操作的應(yīng)用程序構(gòu)建的,所述指令還導(dǎo)致所述DMA系統(tǒng)基于所述一個或多個源地址和所述一個或多個目的地地址來在所述DMA模塊中設(shè)置源地址和目的地址寄存器,所述指令還導(dǎo)致所述DMA系統(tǒng)基于所述一個或多個目的地地址之中的至少一個目的地地址落到所述安全目的地地址范圍以外,停止所述源地址和目的地址寄存器的所述設(shè)置。
29.如權(quán)利要求28所述的制品,包括指令,用于導(dǎo)致所述DMA系統(tǒng)基于所述至少一個目的地地址落到所述安全目的地地址范圍以外,向請求所述DMA操作的所述應(yīng)用程序發(fā)送錯誤指示。
【文檔編號】G06F12/14GK104040510SQ201180075855
【公開日】2014年9月10日 申請日期:2011年12月21日 優(yōu)先權(quán)日:2011年12月21日
【發(fā)明者】J·曼蓋拉姆帕利, V·R·戈庫爾蘭干 申請人:英特爾公司