TWI703469B - 安全輸入/輸出裝置管理設備、方法及系統 - Google Patents
安全輸入/輸出裝置管理設備、方法及系統 Download PDFInfo
- Publication number
- TWI703469B TWI703469B TW105119319A TW105119319A TWI703469B TW I703469 B TWI703469 B TW I703469B TW 105119319 A TW105119319 A TW 105119319A TW 105119319 A TW105119319 A TW 105119319A TW I703469 B TWI703469 B TW I703469B
- Authority
- TW
- Taiwan
- Prior art keywords
- trusted
- address space
- designated address
- response
- controller
- Prior art date
Links
Images
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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明揭露了用於安全I/O裝置管理之設備和方法實施例。在實施例中,設備包括處理器和I/O控制器。處理器具有安全指定位址空間支援,其中該處理器係用以使用該安全指定位址空間支援建立安全指定位址空間。該I/O控制器包括整合信賴的I/O裝置,其中該信賴的I/O裝置係用以經由該信賴的I/O裝置之預設控制端點接收未加密的請求以組態該信賴的I/O裝置、響應於該未加密的請求之接收組態命令端點和回應端點、經由該命令端點從該安全指定位址空間接收加密的命令、響應於該加密的命令之接收執行有關於該I/O控制器之裝置管理操作;以及響應於該裝置管理操作之性能經由該回應端點傳輸加密的回應至安全指定位址空間。
Description
本發明係有關於安全輸入/輸出裝置管理。
目前處理器可提供支援於安全和/或信賴的執行環境諸如安全指定位址空間(也稱為架構指定位址空間)。安全指定位址空間包括由處理器保護包括未經授權的讀取和寫入之未經授權存取的記憶體片段(包括核心和/或資料)。特別地,某些處理器可包括用以提供安全指定位址空間支援之英特爾®軟體防護延伸(SGX)。
特別地,SGX提供機密地、完整地和回放保護給安全指定位址空間資料,而資料駐留在平台記憶體且因此對於軟體和硬體攻擊兩者提供保護。晶片上邊界形成自然的安全邊界,其中資料和代碼可被明文的儲存以及假定為安全的。英特爾® SGX不保護移動越過晶片上邊界的輸入/輸出(I/O)資料。
目前計算裝置「明確地」執行通用串列匯流排(USB)裝置列舉和拓撲管理,也就是,該操作不是加密
的。因此,對於目前計算裝置,惡意的系統軟體可輕易的識別命令、修改命令、修改結果而提供錯的資訊給安全指定位址空間,或阻止命令或結果而拒絕完整地服務。
100‧‧‧計算裝置
120‧‧‧處理器
122‧‧‧硬體虛擬化支援
124‧‧‧安全指定位址空間支援
126‧‧‧密碼引擎編程支援
128‧‧‧I/O子系統
130‧‧‧安全選路支援
132‧‧‧記憶體
134‧‧‧資料儲存裝置
136‧‧‧通訊電路
138‧‧‧安全引擎
140‧‧‧密碼引擎
142‧‧‧內部通道識別符(CID)表
144‧‧‧I/O控制器
146‧‧‧I/O裝置
200、300、400‧‧‧圖
302‧‧‧USB主機控制器(xHC)
304‧‧‧DMA通道
306‧‧‧匯流排介面
308‧‧‧根集線器
310‧‧‧埠
312‧‧‧TIO裝置
314‧‧‧USB裝置
402‧‧‧不信賴系統軟體
404‧‧‧安全指定位址空間
500‧‧‧方法
本文所敘述的概念以舉例的方式闡明而不是以限制於下列圖式的方式。為了敘述的簡潔和清楚,圖式中所闡明之元件不一定按照比例繪圖。其中考慮到合適性,在圖式中重複的元件編號係用以指示相應的或類似的元件。
圖1為用於I/O裝置之安全列舉和拓撲管理之計算裝置的至少一實施例的簡化方塊圖;圖2為圖1之計算裝置之範例組態的簡化方塊圖;圖3為圖1和2之計算裝置之USB主機控制器的簡化方塊圖;圖4為用於圖3之USB主機控制器之資料流程的示意圖;以及圖5為用於安全I/O裝置管理的方法實施例。
雖然本發明的概念允許各種修改和替代形式,其具體實施例藉由範例的方式顯示於所附圖式中且將在本文詳細敘述。應能理解到,雖然沒有意圖限制本發明概念於所敘述之特定形式,但相反的,其意圖是要涵蓋與本揭露以及所附之申請專利範圍一致的所有的修改、均等物和替代。
參考說明書中的「一實施例」、「一個實施例」、「一個說明性實施例」等等,其指示所敘述之實施例可包括特定特徵、結構或特性,但每一實施例可以或不一定需要包括特定特徵、結構或特性。除此之外,此種片語不一定指相同的實施例。此外,當特定特徵、結構或特性結合實施例敘述時,應當認為無論是否明確描述,本領域技術人員的知識範圍內可在其它實施例實現此種特徵、結構或特性。另外,應能理解到在「A、B和C中的至少一者」之形式的列表中包括的物件可以指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。同樣地,在「A、B或C中的至少一者」之形式中所列之物件可以指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
於某些情況下,所揭示之實施例可被實施在硬體、韌體、軟體或任何它們的組合中。所揭露之實施例也可以實施為由一或多個暫態或非暫態機器可讀取(例如,電腦可讀取)儲存媒體進行或儲存之指令,其可由一或多個處理器讀取和執行。機器可讀取儲存媒體可被實施為用於以機器(例如揮發或非揮發記憶體、媒體磁碟或其它媒體裝置)可讀取之形式用於儲存或傳輸資訊的任何儲存裝置、機制或其它結構。
在圖式中,一些結構或方法特徵可顯示在具體配置和/或排序。然而,應能理解到此種具體配置和/或排序可以不需要。而在一些實施例中,此種特徵可被以不同於在說
明性圖式中所顯示之不同方式和/或順序配置。另外,在特定圖式中結構或方法特徵之包含並不意味著暗示此種特徵在所有的實施例是需要的,以及在一些實施例中,可不包括或可與其它特徵組合。
現在參照圖1,在說明性實施例中,用於I/O裝置之安全列舉和拓撲管理的計算裝置100包括(除其他組件外)處理器120、收斂硬體密碼(密碼)引擎140,以及與一或多個I/O裝置146通訊的一或多個I/O控制器144。在使用中,如下面進一步敘述,密碼引擎140提供資料之即時加密及解密,資料經由直接記憶體存取(DMA)操作從平台I/O控制器144到記憶體132或從記憶體132到平台I/O控制器144傳輸。每一DMA異動被標記為通道ID(CID),其代表與特定I/O裝置146或I/O裝置146組相關聯的資料流。密碼引擎140使用CID可靠地識別必須保護異動、取回相映的加密金鑰、以及DMA資料上執行合適的密碼操作。密碼引擎140藉由信賴的軟體使用處理器120之一或多個專門指令用通道資訊和關聯加密金鑰編程。
為了支援USB裝置之安全列舉和拓撲管理,這個揭露敘述整合至USB主機控制器(例如,xHCI)中的USB信賴的I/O(TIO)裝置。所揭露的USB TIO裝置能夠支援從/到安全和/或信賴的執行環境(例如,使用英特爾® SGX建立的安全指定位址空間)安全地發送和接收I/O。如下面進一步敘述,USB TIO裝置提供用於安全指定位址
空間以安全地列舉連接裝置至USB主機控制器的能力以及用於安全指定位址空間以管理裝置改變(例如,連接/斷開)而安全I/O正在發生的能力。因此,所揭露的技術使用支援I/O裝置之熱插頭(hot-plug)和熱拔除(hot-unplug)之I/O技術支援安全I/O資料完整地(也就是I/O資料源的驗證)用於安全指定位址空間。雖然這個揭露敘述涉及到USB之說明性實施例,應能理解到下面的揭露可應用至任何支援熱插頭裝置(例如,藍芽、PCIe等等)的I/O匯流排技術。
計算裝置100可實施為任何類型之能夠執行本文所敘述之功能的計算或電腦裝置包括,但不限制於,電腦、桌上型電腦、工作站、伺服器、膝上行電腦、筆記型電腦、平板電腦、行動計算裝置、可穿戴計算裝置、網路應用、網頁應用、分散式計算系統、處理器基系統和/或消費性電子裝置。如圖1所示,計算裝置100說明性地包括處理器120、輸入/輸出子系統128、記憶體132、資料儲存裝置134以及通訊電路136。當然,在其它實施例中,計算裝置100可包括其它或另外的組件,諸如那些通常可在桌上型電腦中發現的(例如各種輸入/輸出裝置)。另外,於某些實施例中,一或多個說明性組件可結合在其它組件,或以其他方式形成其它組件之一部分。例如,在一些實施例中,記憶體132或其的一部分可被結合在處理器120中。
處理器120可實施作為能夠執行本文所敘述的功能之
任何類型的處理器。處理器120可實施作為單一或多核心處理器、數位訊號處理器、微處理器或其它處理器或處理/控制電路。如所示,處理器120可包括硬體虛擬化支援122、安全指定位址空間支援124以及密碼引擎編程支援126。
硬體虛擬化支援122藉由計算裝置100支援操作系統、應用程式及其它軟體之虛擬的執行。硬體虛擬化支援122可包括藉由兩執行模式的虛擬機器延伸(VMX)支援:VMX根模式以及VMX非根模式。VMX根模式允許執行的軟體具有計算裝置100以及本身的硬體資源之廣泛控制。相反的,超管理器、虛擬機器監視器(virtual machine monitor,VMM)或主機操作系統(OS)可在VMX根模式下執行。VMX非根模式限制至某些硬體指令之存取,同時還實施處理器120之普通環/權限系統。一個或多個訪客OS可在VMX非根模式下執行。那些訪客OS可在環零下執行,類似於沒有虛擬化下被執行。硬體虛擬化支援122也可支援延伸的頁面表(EPT),其可實施作為硬體輔助第二層級頁面位址翻譯。硬體虛擬化支援122可被實施作為例如英特爾® VT-x技術。
安全指定位址空間支援124允許處理器120建立稱作為安全指定位址空間之安全和/或信賴的執行環境,其中執行代碼可被測量、驗證和/或以其它方式判定為鑑別。另外,包括在安全指定位址空間中的代碼和資料可被加密或以及其它方式保護不被在安全指定位址空間外側執行的
代碼存取。例如,包括在安全指定位址空間中的代碼和資料可由處理器120之硬體保護機制保護,同時被執行或同時被儲存在某些處理器120之保護的快取記憶體。包括在安全指定位址空間中的代碼和資料當儲存在共享快取或主記憶體132中時被加密。安全指定位址空間支援124可被實施作為處理器指令延伸組,其允許處理器120在記憶體132中建立一或多個安全指定位址空間。例如,安全指定位址空間支援124可被實施作為英特爾®軟體防護延伸(SGX)技術。
密碼引擎編程支援126允許處理器120編程密碼引擎140以提供I/O資料之密碼保護。密碼引擎編程支援126可實施作為一或多個特定處理器指令(例如,指令EBIND和/或UNWRAP)以及相關聯的硬體、微碼、韌體或處理器120之其它組件。
記憶體132可實施作為能夠執行本文所敘述的功能之任何類型的揮發性或非揮發性記憶體或資料儲存。在操作中,記憶體132可儲存在諸如操作系統、應用程式、程式、程式集和驅動器之計算裝置100的操作期間中使用的各種資料和軟體。記憶體132經由I/O子系統128通訊地耦接至處理器120,I/O子系統128可實施作為電路和/或組件以促進與處理器120、記憶體132和計算裝置100之其它組件的輸入/輸出操作。例如。I/O子系統128可實施作為或以其它方式包括記憶體控制器集線器、輸入/輸出控制集線器、平台控制器集線器、整合控制電路、韌體裝
置、通訊鏈結(即,點對點鏈結、匯流排鏈結、線、電纜、光導、印刷電路板軌線等等)和/或用以促進輸入/輸出操作之其它組件和子系統。I/O子系統128可更包括安全選路支援130。安全選路支援130與密碼引擎140被使用來提供I/O資料之密碼保護。於某些實施例中,I/O子系統128可形成系統晶片(SoC)之一部分以及連同處理器120、記憶體132和計算裝置100之其它組件結合在單一積體電路晶片上。
資料儲存裝置134可被實施作為任何類型之裝置或組態用於資料之短程或長程儲存的裝置,例如,記憶體裝置和電路、記憶卡、硬碟驅動、固態驅動或其它資料儲存裝置。在一些實施例中,資料儲存裝置134可被用來儲存一或多個安全指定位址空間之內容。當藉由資料儲存裝置134儲存時,安全指定位址空間之內容可被加密以防止未授權的存取。
計算裝置100之通訊電路136可被實施作為能夠透過網路賦能計算裝置100和其它遠端裝置之間通訊的任何通訊電路、裝置及其集合。通訊電路136可被組態以使用任何一或多個通訊技術(例如,有線或無線通訊)以及相關聯的協定(例如,乙太、藍芽®、Wi-Fi®、WiMAX等等)而實現此種通訊。
在一些實施例中,計算裝置100可包括安全引擎138,其可被實施作為能夠提供安全有關的服務至計算裝置100的硬體組件或電路。特別地,安全引擎138可包括
能夠單獨地和安全地執行來自處理器120的韌體和/或其它代碼的微處理器、微控制器其它嵌入式控制器。因此,安全引擎138可被用來建立信賴的代理器或其它從處理器120執行的代碼分開的信賴的執行環境。安全引擎138可透過專用的匯流排(諸如,主機嵌入式控制器介面(HECI))與處理器120和/或計算裝置100之其它組件通訊。安全引擎138也可提供計算裝置100之遠端組態、控制或管理。於所示的實施例中,安全引擎138為實施作為結合在計算裝置100之系統晶片(SoC)中之收斂的安全引擎(CSE)。在一些實施例中,安全引擎138可被實施作為管理能力引擎、收斂安全和管理能力引擎(CSME)、頻帶外處理器、信賴的平台模組(TPM)或其它安全引擎裝置或裝置之集合。此外,在一些實施例中,安全引擎138也能夠不取決計算裝置100的狀態(例如,不取決主處理器120的狀態)使用通訊電路136或專用的通訊電路通訊,亦稱為「頻帶外(out-of-band)」通訊。
密碼引擎140可被實施作為任何微控制器、微處理器、功能方塊、邏輯或能夠執行本文所述之功能的其它電路或電路之集合。密碼引擎140可加密和/或解密I/O資料,I/O資料藉由至記憶體132之一或多個直接記憶體存取(DMA)操作中的I/O控制器144讀取或寫入。密碼引擎140包括內部通道識別符(CID)表142,其中密碼引擎140使用來動態地識別被保護的DMA通道。CID表
142可被實施作為或以其它方式包括內容可定指記憶體(CAM)。如下面進一步敘述,CID表142可由信賴的軟體控制和/或編程,例如使用處理器120之密碼引擎編程支援126或安全引擎138。加密金鑰和/或CID表142之其它秘密資訊不可用於不信賴的軟體。在一些實施例中,密碼引擎140可連同I/O子系統128和/或在計算裝置100之系統晶片(SoC)中的處理器120被結合。
同樣地,I/O控制器144可被實施作為任何嵌入式控制器、微控制器、微處理器、功能方塊、邏輯或能夠執行本文所述之功能的其它電路或電路之集合。在一些實施例中,一或多個I/O控制器144可被嵌入在計算裝置100之另一組件,諸如I/O子系統128和/或處理器120。另外或可替代地,一或多個I/O控制器144可為經由諸如PCI Express(PCIe)或其它I/O連接的擴展匯流排連接至I/O子系統128和/或處理器120。如下面進一步敘述,I/O控制器144與一或多個I/O裝置146通訊,例如透過周邊通訊匯流排(例如USB、藍芽等等)。I/O裝置146可被實施作為任何I/O裝置,諸如人類介面裝置、鍵盤、滑鼠、觸控螢幕、麥克風和其它輸入裝置,以及顯示器和其它輸出裝置。如上所述,整合控制器144和相關聯的DMA通道使用稱為通道辨識符(CID)的辨識符唯一地識別。
現在參照圖2,圖200闡明包括分別擁有的控制器ID1至4之四個I/O控制器144的計算裝置100之範例組態。如所示,控制器IO 1具有擁有通道ID「10」之一個
DMA通道。I/O控制器IO3具有擁有通道ID「30」、「31」和「32」之三個DMA通道。信賴的軟體編程擁有由信賴的軟體使用之DMA通道之CID的密碼引擎(CE)140,在一實施例中,其可稱為中央密碼引擎,連同相應的秘密金鑰。CE 140截取具有相關CID之DMA異動以及密碼地處理DMA資料如它轉移至記憶體132或從記憶體132轉移。CE 140寫入或讀取加密的資料到記憶體132或從記憶體132寫入或讀取加密的資料。資料在結構(fabric)(例如,在I/O子系統128中)中明文傳輸。然而,I/O子系統128(或處理器控制集線器(PCH)或結構控制器)可提供防止資料由重新配置PCI組態空間之惡意(rogue)軟體路由至另一裝置的硬體安全130。
現在參照圖3,圖300顯示計算裝置100之USB主機控制器(xHC)302的至少一實施例。xHC 302建立幾個可以安全地通訊I/O資料與記憶體132之DMA通道304,例如使用前面進一步所敘述之密碼引擎140。xHC 302包括用以連接至PCIe匯流排和根集線器308的匯流排介面306。根集線器308建立n埠310。埠n附接到信賴的I/O(TIO)裝置312,其將在下面進一步敘述。剩餘的埠310(埠1至埠n-1)可經由USB連接附接到USB裝置314。在一些實施例中,xHC 302可被實施作為如前面所述之I/O控制器144,以及TIO裝置312和USB裝置314可被實施作為如前面所述之I/O裝置146。因此,TIO裝置312和/或USB裝置314可能夠使用密碼引擎140經
由DMA通道304使安全DMA轉移至記憶體132。
如所示,圖300闡明TIO裝置312硬連接到USB主機控制器302根集線器308埠(n)。TIO裝置312設備顯示為一個永久地附接的USB裝置。TIO裝置312可如同任何USB裝置被列舉。
當TIO裝置312被組態時,資料透過它組態的端點被加密而使他們安全。USB TIO裝置312之加密的端點提供安全指定位址空間和主機控制器302或附接至主機控制器302的USB裝置314之間安全的路徑。
透過這個安全路徑指定位址空間可發佈命令至主機控制器302以安全地判定USB裝置314組之當前的連接、它們的特性以及它們的組態。注意到主機控制器302為「信賴的」,即,給予命令以從USB裝置314取回資訊,主機控制器302將不會返回錯的資訊。然而,應能理解到USB裝置314不為「信賴的」,也就是,附接至控制器302之USB裝置314可能受到威脅。
另外,這個揭露允許透過USB裝置314之端點(TIO裝置312以外)傳輸或接收的資料藉由加密資料被保護。當USB裝置314之端點(TIO裝置312以外)為保護的,TIO裝置312可導致xHC 302阻隔(例如,USB裝置連接或斷開之)拓撲改變通知至系統軟體,以及引導改變通知至代替的安全指定位址空間。安全指定位址空間可接著判定是否拓撲改變將影響安全操作。如果改變不影響安全操作,接著指定位址空間可示意TIO裝置312以允許通
知被轉發至系統軟體。如果改變影響安全操作,接著安全指定位址空間可導致TIO裝置312以阻隔通知或持有它直到安全操作完成之後。
另外,TIO裝置312可支援裝置類別特定特徵當安全操作發生時用以阻隔至選擇的裝置314或裝置特徵的存取。
在結構上,一個USB裝置最多支持31個端點。端點0、預設控制端點始終啟用。一或多個剩餘端點能夠在當裝置為「組態」時啟用。USB裝置之預設控制端點被使用於定義在USB核心規範中的各種的「標準」USB操作,例如列舉裝置以及載入它的驅動器,以取回裝置的組態資訊,以及選擇目標組態。取決於裝置類別,預設控制端點也可被用於裝置類別具體操作。
TIO裝置312不透過預設控制端點定義任何TIO裝置類別具體操作。所有的安全操作透過Bulk In和Bulk Out端點對執行,其資料當他們組態時進行加密。
現在參照圖4,圖400闡明TIO裝置312端點和不信賴系統軟體402和安全指定位址空間404之間的通訊。如本揭露所敘述以及如圖4中所示,控制端點操作(一般地)為明文的且可由不信賴系統軟體402存取,以及僅組態的端點被用來在TIO裝置312和指定位址空間軟體404(例如,採用英特爾®SGX建立的安全指定位址空間)之間提供安全(加密的)通訊。
如上所述,TIO裝置312被整合至主機控制器302
中。TIO裝置312提供至內部主機控制器302暫存器和資料結構的存取,例如用以判定由控制器302支援的裝置314之最大數目。
TIO裝置312提供用於指定位址空間404以判定當前附接到主機控制器302之裝置314的能力。
TIO裝置312提供用於指定位址空間404以頒佈請求至任何附接的裝置314之預設控制端點的能力。這個特徵允許指定位址空間404以安全地判定裝置類別、供應商、當前組態以及裝置314之其它性質。
TIO裝置312提供用以「鎖住」拓撲的能力,因此改變通知由OS使用的標準介面阻隔,但經由TIO裝置312的安全介面轉發至其管理的安全指定位址空間404。
TIO裝置312提供用於指定位址空間404以「未鎖住」特定拓撲改變的能力,因此拓撲改變可傳播到OS(例如,至系統軟體402)。
TIO裝置312提供阻隔至裝置314之特定控制端點請求的能力,以防止被惡意操作執行。例如,一些USB裝置分類允許控制端點被用於存取應保持安全的資料。
應注意到本揭露中所敘述之用以致能附接的USB裝置314之安全列舉和管理的TIO裝置312特徵可被用於其它匯流排架構(例如,藍芽、Wi-Fi、WiGig、PCIe等等)以提供它們裝置之安全列舉和管理。
現在參照圖5,方法500說明用於安全I/O裝置管理的方法實施例。在方法500中,方塊510包括藉由整合在
計算裝置之I/O控制器中的信賴的I/O裝置初始化該信賴的I/O裝置之預設控制端點。
方塊520包括藉由該信賴的I/O裝置接收未加密的請求以經由預設控制端點組態該信賴的I/O裝置。方塊530包括響應於接收用以組態該信賴的I/O裝置的該未加密的請求,藉由該信賴的I/O裝置初始化命令輸出端點和回應輸入端點。方塊540包括藉由該信賴的I/O裝置經由該命令端點從該計算裝置之安全指定位址空間接收加密的命令,其中該安全指定位址空間係使用計算裝置之處理器之安全指定位址空間支援建立的。
方塊550包括響應於接收該加密的命令,藉由該信賴的I/O裝置執行有關於該I/O控制器之裝置管理操作。在實施例中,方塊550也可包括從該I/O控制器取回狀態資訊已產生加密的回應。在實施例中,方塊550也可包括發佈請求至耦接至該I/O控制器之I/O裝置的預設控制端點。在一實施例中,方塊550也可包括阻隔I/O裝置連接至或I/O裝置未連接至系統軟體之拓撲改變通知指示,以及響應於阻隔該拓撲改變通知而轉發拓撲改變通知至安全指定位址空間。
方塊560包括響應於執行該裝置管理操作,藉由該信賴的I/O裝置經由該回應端點傳輸加密的回應至該安全指定位址空間。
本文揭露之技術的說明性範例提供於下面。技術之實施例可包括任何一或多個下面敘述之範例以及任何一或多
個下面敘述之範例之組合。
範例1包括用於安全I/O裝置管理之計算裝置,該計算裝置包含具有安全指定位址空間支援之處理器,其中該處理器係用以使用該安全指定位址空間支援建立安全指定位址空間:以及包括整合信賴的I/O裝置的I/O控制器,其中該信賴的I/O裝置係用以(i)發起該信賴的I/O裝置之預設控制端點,(ii)接收未加密的請求以經由該預設控制端點組態該信賴的I/O裝置,(iii)響應於該未加密的請求的接收,發起命令端點以及回應端點,(iv)經由該命令端點從該安全指定位址空間接收加密的命令,(v)響應於該加密的命令之接收,執行有關於該I/O控制器之裝置管理操作;以及(vi)響應於該裝置管理操作之性能經由該回應端點傳輸加密的回應之該安全指定位址空間。
範例2包括範例1之發明標的,且其中執行該裝置管理操作包含從該I/O控制器取回狀態資訊以產生該加密的回應。
範例3包括任何範例1和2之發明標的,且其中執行該裝置管理操作包含發佈請求至耦接至該I/O控制器之I/O裝置的預設控制端點。
範例4包括任何範例1-3之發明標的,且其中用以執行該裝置管理操作包含用以阻隔I/O裝置連接或I/O裝置斷開之拓撲改變通知指示,以及響應於阻隔該拓撲改變通知而轉發該拓撲改變通知至該安全指定位址空間。
範例5包括任何範例1-4之發明標的,且其中當該I/O控制器包含包括根集線器之USB主機控制器,以及該信賴的I/O裝置包含永久地耦接至該USB主機控制器之該根集線器之埠的USB裝置。
範例6包括用於安全I/O裝置管理的方法,該方法包含藉由整合在計算裝置之I/O控制器中的信賴的I/O裝置發起該信賴的I/O裝置之預設控制端點;藉由該信賴的I/O裝置經由該預設控制端點接收用以組態該信賴的I/O裝置之未加密的請求;藉由該信賴的I/O裝置響應於接收用以組態該信賴的I/O裝置的該未加密的請求,發起命令端點和回應端點;藉由該信賴的I/O裝置經由該命令端點從該計算裝置之安全指定位址空間接收加密的命令,其中該安全指定位址空間使用該計算裝置之處理器之安全指定位址空間支援建立;響應於接收該加密的命令,藉由該信賴的I/O裝置執行有關於該I/O控制器之裝置管理操作;以及響應於執行該裝置管理操作,藉由該信賴的I/O裝置經由該回應端點,傳輸加密的回應至該安全指定位址空間。
範例7包括範例6之發明標的,且其中執行該裝置管理操作包含從該I/O控制器取回狀態資訊以產生該加密的回應。
範例8包括任何範例6和7之發明標的,且其中執行該裝置管理操作包含發佈請求至耦接至該I/O控制器之I/O裝置的預設控制端點。
範例9包括任何範例6-8之發明標的,且其中執行該裝置管理操作包含阻隔I/O裝置連接或I/O裝置斷開之拓撲改變通知指示,以及響應於阻隔該拓撲改變通知而轉發該拓撲改變通知至該安全指定位址空間。
範例10包括任何範例6-9之發明標的,且其中當該I/O控制器包含包括根集線器之USB主機控制器,以及該信賴的I/O裝置包含永久地耦接至該USB主機控制器之該根集線器之埠的USB裝置。
範例11包括計算裝置,該計算裝置包含處理器以及具有複數個指令儲存其中的記憶體,當該複數個指令被處理器執行時,造成該計算裝置執行任何範例6-10之方法。
範例12包括一或多個機器可讀取儲存媒體,該機器可讀取儲存媒體包含儲存其上的複數個指令,該複數個指令響應於在執行任何範例6-10之方法的計算裝置中的執行結果。
範例13包括計算裝置,該計算裝置包含用於執行任何範例6-10之方法的手段。
100‧‧‧計算裝置
120‧‧‧處理器
122‧‧‧硬體虛擬化支援
124‧‧‧安全指定位址空間支援
126‧‧‧密碼引擎編程支援
128‧‧‧I/O子系統
130‧‧‧安全選路支援
132‧‧‧記憶體
134‧‧‧資料儲存裝置
136‧‧‧通訊電路
138‧‧‧安全引擎
140‧‧‧密碼引擎
142‧‧‧內部通道識別符(CID)表
144‧‧‧I/O控制器
146‧‧‧I/O裝置
Claims (20)
- 一種安全輸入/輸出裝置管理設備,包含:處理器,其具有安全指定位址空間支援,其中該處理器係用以使用該安全指定位址空間支援建立安全指定位址空間;以及輸入/輸出(I/O)控制器,其包括整合信賴的I/O裝置,其中該信賴的I/O裝置係用以經由該信賴的I/O裝置之預設控制端點接收用以組態該信賴的I/O裝置的未加密的請求、響應於該未加密的請求之接收組態命令端點和回應端點以阻隔拓撲改變通知至系統軟體並引導該改變通知至代替的安全指定位址空間、經由該命令端點從該安全指定位址空間接收加密的命令、響應於該加密的命令之接收執行有關於該I/O控制器之裝置管理操作;以及響應於該裝置管理操作之性能經由該回應端點傳輸加密的回應至該安全指定位址空間。
- 如申請專利範圍第1項所述之設備,其中執行該裝置管理操作包括從該I/O控制器取回狀態資訊以產生該加密的回應。
- 如申請專利範圍第1項所述之設備,其中執行該裝置管理操作包括發佈請求至耦接至該I/O控制器之I/O裝置的預設控制端點。
- 如申請專利範圍第1項所述之設備,其中執行該裝置管理操作包括:阻隔I/O裝置連接或I/O裝置斷開之拓撲改變通知指 示,以及響應於該拓撲改變通知之阻隔轉發該拓撲改變通知至該安全指定位址空間。
- 如申請專利範圍第1項所述之設備,其中:該I/O控制器包含包括根集線器之通用串列匯流排(USB)主機控制器,以及該信賴的I/O裝置包含永久性耦接至該USB主機控制器之該根集線器之埠的USB裝置。
- 一種安全輸入/輸出裝置管理方法,包含:藉由整合在計算裝置之I/O控制器中之信賴的輸入輸出(I/O)裝置經由該信賴的I/O裝置之預設控制端點接收未加密的請求以組態該信賴的I/O裝置;響應於接收該未加密的請求以組態該信賴的I/O裝置,藉由該信賴的I/O裝置組態命令端點和回應端點以阻隔拓撲改變通知至系統軟體並引導該改變通知至代替的安全指定位址空間;藉由該信賴的I/O裝置經由該命令端點從該計算裝置之安全指定位址空間接收加密的命令,其中該安全指定位址空間係使用該計算裝置之處理器之安全指定位址空間支援建立的;響應於接收該加密的命令,藉由該信賴的I/O裝置執行有關於該I/O控制器之裝置管理操作;以及響應於執行該裝置管理操作,藉由該信賴的I/O裝置經由該回應端點傳輸加密的回應至該安全指定位址空間。
- 如申請專利範圍第6項所述之方法,其中執行該裝置管理操作包含從該I/O控制器取回狀態資訊以產生該加密的回應。
- 如申請專利範圍第6項所述之方法,其中執行該裝置管理操作包含發佈請求至耦接至該I/O控制器之I/O裝置的預設控制端點。
- 如申請專利範圍第6項所述之方法,其中執行該裝置管理操作包括:阻隔I/O裝置連接或I/O裝置斷開之拓撲改變通知指示,以及響應於阻隔該拓撲改變通知,轉發該拓撲改變通知至該安全指定位址空間。
- 如申請專利範圍第6項所述之方法,其中:該I/O控制器包含包括根集線器之通用串列匯流排(USB)主機控制器;以及該信賴的I/O裝置包含永久性耦接至該USB主機控制器之根集線器之埠的USB裝置。
- 一種安全輸入/輸出裝置管理系統,包含:記憶體;處理器,其具有安全指定位址空間支援,其中該處理器係用以使用該安全指定位址空間支援建立安全指定位址空間;第一輸入/輸出(I/O)控制器,其包括整合信賴的I/O裝置,其中該信賴的I/O裝置係用以經由該信賴的I/O 裝置之預設控制端點接收未加密的請求以組態該信賴的I/O裝置、響應於該未加密的請求之接收組態命令端點和回應端點以阻隔拓撲改變通知至系統軟體並引導該改變通知至代替的安全指定位址空間、經由該命令端點從該安全指定位址空間接收加密的命令、響應於該加密的命令之接收執行有關於該I/O控制器之裝置管理操作;以及響應於該裝置管理操作之性能經由該回應端點傳輸加密的回應至該安全指定位址空間;以及第二I/O控制器,其用以與第一信賴的I/O裝置通訊。
- 如申請專利範圍第11項所述之系統,更包含密碼引擎,其用以經由來自該第一不信賴的I/O裝置和到該第一不信賴的I/O裝置之直接記憶體存取(DMA)操作傳輸的資料提供即時加密或解密。
- 如申請專利範圍第12項所述之系統,其中該密碼引擎包括內部通道辨識符(CID)表以動態地辨識與該第一不信賴的I/O裝置相關聯的DMA通道。
- 如申請專利範圍第13項所述之系統,更包含用以防止該資料被路由至第二不信賴的I/O裝置的安全硬體。
- 如申請專利範圍第1項所述之設備,其中該I/O控制器包括向其中該信賴的I/O裝置提供存取的暫存器。
- 如申請專利範圍第1項所述之設備,其中該信賴的I/O裝置係用以提供該I/O控制器之內部狀態至該安全指定位址空間。
- 如申請專利範圍第1項所述之設備,其中該信賴的I/O裝置提供被阻隔至介面之拓樸改變通知至操作系統。
- 如申請專利範圍第17項所述之設備,其中該信賴的I/O裝置提供拓樸改變通知被轉發至該安全指定位址空間。
- 如申請專利範圍第18項所述之設備,其中該信賴的I/O裝置提供拓樸改變通知以從該安全指定位址空間傳播至該操作系統。
- 如申請專利範圍第1項所述之設備,其中該信賴的I/O裝置提供阻隔控制端點請求至不信賴的I/O裝置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562199687P | 2015-07-31 | 2015-07-31 | |
US62/199,687 | 2015-07-31 | ||
US15/010,785 US10140457B2 (en) | 2015-07-31 | 2016-01-29 | Secure input/output device management |
US15/010,785 | 2016-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201712589A TW201712589A (zh) | 2017-04-01 |
TWI703469B true TWI703469B (zh) | 2020-09-01 |
Family
ID=57882950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105119319A TWI703469B (zh) | 2015-07-31 | 2016-06-20 | 安全輸入/輸出裝置管理設備、方法及系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10140457B2 (zh) |
EP (1) | EP3329416B1 (zh) |
CN (1) | CN107787495B (zh) |
TW (1) | TWI703469B (zh) |
WO (1) | WO2017023434A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140457B2 (en) * | 2015-07-31 | 2018-11-27 | Intel Corporation | Secure input/output device management |
US10740494B2 (en) * | 2017-09-06 | 2020-08-11 | Google Llc | Central and delegate security processors for a computing device |
US10664416B2 (en) * | 2017-12-29 | 2020-05-26 | Intel Corporation | Technologies for trusted I/O support for I/O devices using external peripheral device link controller |
US10635605B2 (en) | 2018-03-13 | 2020-04-28 | International Business Machines Corporation | Shared memory inter-enclave communication |
EP4155996A1 (en) | 2018-04-30 | 2023-03-29 | Google LLC | Enclave interactions |
CN112005237B (zh) * | 2018-04-30 | 2024-04-30 | 谷歌有限责任公司 | 安全区中的处理器与处理加速器之间的安全协作 |
US11494485B2 (en) | 2018-04-30 | 2022-11-08 | Google Llc | Uniform enclave interface |
US20220004635A1 (en) * | 2021-09-21 | 2022-01-06 | Intel Corporation | Computing peripheral interface management mechanism |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761618B2 (en) * | 2005-03-25 | 2010-07-20 | Microsoft Corporation | Using a USB host controller security extension for controlling changes in and auditing USB topology |
US20130346660A1 (en) * | 2012-06-25 | 2013-12-26 | Piotr Kwidzinski | Usb device control using endpoint type detection during enumeration |
US20140149743A1 (en) * | 2012-03-30 | 2014-05-29 | Amihai Kidron | Two dimensional direct memory access scheme for enhanced network protocol processing performance |
US20150058637A1 (en) * | 2013-08-20 | 2015-02-26 | Janus Technologies, Inc. | Method and apparatus for transparently encrypting and decrypting computer interface data |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
DE60322366D1 (de) | 2002-04-18 | 2008-09-04 | Advanced Micro Devices Inc | Rechnersystem mit einem für einen sicheren ausführungsmodus geeigneten cpu und einem sicherheitsdienst-prozessor die über einen gesicherten kommunikationsweg miteinander verbunden sind |
US6945454B2 (en) * | 2003-04-22 | 2005-09-20 | Stmicroelectronics, Inc. | Smart card device used as mass storage device |
US7469343B2 (en) | 2003-05-02 | 2008-12-23 | Microsoft Corporation | Dynamic substitution of USB data for on-the-fly encryption/decryption |
US20050015611A1 (en) * | 2003-06-30 | 2005-01-20 | Poisner David I. | Trusted peripheral mechanism |
US8640194B2 (en) * | 2004-08-25 | 2014-01-28 | Nec Corporation | Information communication device and program execution environment control method |
US7886353B2 (en) * | 2005-03-25 | 2011-02-08 | Microsoft Corporation | Accessing a USB host controller security extension using a HCD proxy |
US9904809B2 (en) | 2006-02-27 | 2018-02-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for multi-level security initialization and configuration |
US7716389B1 (en) * | 2006-03-17 | 2010-05-11 | Bitmicro Networks, Inc. | Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions |
US8165301B1 (en) | 2006-04-04 | 2012-04-24 | Bitmicro Networks, Inc. | Input-output device and storage controller handshake protocol using key exchange for data security |
US8725123B2 (en) * | 2008-06-05 | 2014-05-13 | Headwater Partners I Llc | Communications device with secure data path processing agents |
US8332557B2 (en) * | 2008-12-12 | 2012-12-11 | Qualcomm, Incorporated | System, apparatus, and method for broadcasting USB data streams |
US8181176B2 (en) * | 2010-06-21 | 2012-05-15 | Intel Corporation | Uniform storage device access using partial virtual machine executing within a secure enclave session |
WO2013040241A1 (en) * | 2011-09-13 | 2013-03-21 | Privatecore, Inc. | Software cryptoprocessor |
US9152825B2 (en) * | 2012-02-29 | 2015-10-06 | Apple Inc. | Using storage controller bus interfaces to secure data transfer between storage devices and hosts |
GB2503436A (en) * | 2012-06-26 | 2014-01-01 | Ibm | A client server system for processing one or more events |
US10887296B2 (en) * | 2012-12-31 | 2021-01-05 | Ncr Corporation | Secure provisioning manifest for controlling peripherals attached to a computer |
US9448950B2 (en) * | 2013-12-24 | 2016-09-20 | Intel Corporation | Using authenticated manifests to enable external certification of multi-processor platforms |
US9734092B2 (en) * | 2014-03-19 | 2017-08-15 | Facebook, Inc. | Secure support for I/O in software cryptoprocessor |
US9811654B2 (en) * | 2014-06-11 | 2017-11-07 | Dell Products L.P. | Systems and methods for providing authentication using a managed input/output port |
US10248791B2 (en) * | 2015-07-20 | 2019-04-02 | Intel Corporation | Technologies for secure hardware and software attestation for trusted I/O |
US10140457B2 (en) * | 2015-07-31 | 2018-11-27 | Intel Corporation | Secure input/output device management |
-
2016
- 2016-01-29 US US15/010,785 patent/US10140457B2/en active Active
- 2016-06-20 CN CN201680038970.8A patent/CN107787495B/zh active Active
- 2016-06-20 EP EP16833459.7A patent/EP3329416B1/en active Active
- 2016-06-20 WO PCT/US2016/038378 patent/WO2017023434A1/en active Application Filing
- 2016-06-20 TW TW105119319A patent/TWI703469B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761618B2 (en) * | 2005-03-25 | 2010-07-20 | Microsoft Corporation | Using a USB host controller security extension for controlling changes in and auditing USB topology |
US20140149743A1 (en) * | 2012-03-30 | 2014-05-29 | Amihai Kidron | Two dimensional direct memory access scheme for enhanced network protocol processing performance |
US20130346660A1 (en) * | 2012-06-25 | 2013-12-26 | Piotr Kwidzinski | Usb device control using endpoint type detection during enumeration |
US20150058637A1 (en) * | 2013-08-20 | 2015-02-26 | Janus Technologies, Inc. | Method and apparatus for transparently encrypting and decrypting computer interface data |
Also Published As
Publication number | Publication date |
---|---|
US20170032132A1 (en) | 2017-02-02 |
TW201712589A (zh) | 2017-04-01 |
CN107787495A (zh) | 2018-03-09 |
WO2017023434A1 (en) | 2017-02-09 |
EP3329416B1 (en) | 2021-02-24 |
CN107787495B (zh) | 2022-05-17 |
EP3329416A4 (en) | 2019-03-27 |
EP3329416A1 (en) | 2018-06-06 |
US10140457B2 (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI703469B (zh) | 安全輸入/輸出裝置管理設備、方法及系統 | |
US20230110230A1 (en) | Technologies for secure i/o with memory encryption engines | |
EP3582129B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
EP3326104B1 (en) | Technologies for secure trusted i/o access control | |
EP3326103B1 (en) | Technologies for trusted i/o for multiple co-existing trusted execution environments under isa control | |
EP3326105B1 (en) | Technologies for secure programming of a cryptographic engine for secure i/o | |
US11575672B2 (en) | Secure accelerator device pairing for trusted accelerator-to-accelerator communication | |
US20190228159A1 (en) | Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link | |
CN112016090A (zh) | 安全计算卡,基于安全计算卡的度量方法及系统 | |
US10339082B2 (en) | Technologies for stable secure channel identifier mapping for static and dynamic devices | |
US10592663B2 (en) | Technologies for USB controller state integrity protection | |
US10824766B2 (en) | Technologies for authenticated USB device policy enforcement | |
US10740454B2 (en) | Technologies for USB controller state integrity protection with trusted I/O | |
US20190042473A1 (en) | Technologies for enabling slow speed controllers to use hw crypto engine for i/o protection |