CN104040510A - 安全的直接存储器访问 - Google Patents
安全的直接存储器访问 Download PDFInfo
- Publication number
- CN104040510A CN104040510A CN201180075855.5A CN201180075855A CN104040510A CN 104040510 A CN104040510 A CN 104040510A CN 201180075855 A CN201180075855 A CN 201180075855A CN 104040510 A CN104040510 A CN 104040510A
- Authority
- CN
- China
- Prior art keywords
- destination
- address
- dma
- security purpose
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 69
- 238000003860 storage Methods 0.000 claims description 61
- 230000004044 response Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- 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]
-
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00094—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
- G11B20/0013—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers wherein the measure concerns not the entire record carrier, but a specific physical or logical area of one or more record carriers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Bus Control (AREA)
Abstract
公开了用于响应于直接存储器访问(DMA)操作的启动而建立安全目的地地址范围的示例。示例还包括基于目的地存储器的目的地存储器地址是否落在所述安全目的地地址范围内,允许从源存储器作为加密的内容获取的解密的内容被置于目的地存储器中。
Description
背景
越来越多的计算设备正在被用来观看和/或听可能受版权保护的流式视频或音频内容。此外,随着流式回放分辨率越来越大的视频/音频内容,计算设备可能需要临时存储受保护的内容。版权受保护内容的所有者可能对计算设备设置要求以确保当内容被向计算设备流式回放时内容不会被盗版或自由地复制。这些要求可以包括配置计算设备以执行受保护的回放。通常,受保护的回放包括解密受保护的内容以及将解密的内容置于安全存储器,供最终输出到计算设备的用户。然而,当在安全存储器中时,解密的内容不可以被计算设备的主应用程序(例如,操作***)访问。
附图简述
图1示出了示例计算平台。
图2示出了目的地管理器的示例体系结构的框图。
图3示出了安全DMA操作的示例过程图。
图4示出了另一个安全DMA操作的示例过程图。
图5示出了安全DMA操作的示例操作的流程图。
图6示出了示例***。
具体实施方式
如在本发明中设想的,受保护的回放包括解密受保护内容并将解密的内容置于安全存储器中。在某些示例中,安全处理器(SEP)子***可以提供安全直接存储器访问(DMA)操作。安全DMA操作可以被称为“加密DMA操作”。当前加密DMA操作包括从源存储器获取加密的内容,并将解密的内容置于安全目的地存储器中。对于这些当前加密DMA操作,主机或计算设备的操作***通常对解密的内容将被置于什么目的地地址拥有控制权。但是,主机或操作***可能被恶意应用程序或代码劫持。如此,恶意应用程序可能劫持操作***并将解密的内容重新定向到非安全目的地存储器的目的地地址。恶意应用程序或可能任何应用程序都可能自由地复制解密的内容。
在某些示例中,实现了用于安全DMA操作的技术。对于这些示例,可以响应于DMA操作的启动,建立安全目的地地址范围。DMA操作可以包括获取在源存储器中维护的加密的内容,解密加密的内容,并将解密的内容置于安全目的地存储器中。一旦确定了安全目的地地址范围,可以接收包括与安全目的地存储器相关联的一个或多个目的地地址的目的地DMA表。允许解密的内容被置于安全目的地存储器中可以基于一个或多个目的地地址落在安全目的地地址范围内。
图1示出了示例计算平台100。如图1所示,计算平台100包括安全处理(SEP)子***110、操作***120、源存储器130、共享存储器140、安全目的地存储器150、视频/声音子***160、中央处理单元(CPU)170、通信180,以及应用程序190。也如图1所示,多个接口可以互连和/或可通信地耦合计算平台100的元件。例如,用户接口115和接口125可以允许用户(未示出)和/或应用程序190耦合到操作***120。接口135还可以允许操作***120具有对计算平台100的元件,诸如SEP子***110、共享存储器130、源存储器140、安全目的地存储器150、视频/声音子***160或通信180的至少有限的访问。接口154可以允许计算平台100的硬件和/或固件元件可通信地耦合在一起,例如,通过***总线或其他类型的内部通信信道。
在某些示例中,如图1所示,SEP子***110可以包括目的地管理器112、加密DMA模块114和安全处理器116。目的地管理器112、加密DMA模块114和安全处理器116可以包括被配置成执行加密DMA操作的逻辑和/或特征。加密DMA操作可以包括获取在源存储器(例如,源存储器140)中维护的加密的内容,解密加密的内容,并将解密的内容置于安全的目的地存储器(例如,安全目的地存储器150)中。
根据某些示例,操作***120可以与SEP子***110进行协作,以允许应用程序190请求的内容的受保护的回放。对于这些示例,应用程序190的用户可能希望在附接到或耦合到计算平台100的显示器上观看流式视频(例如,通过网络资源或媒体服务器)。操作***120,例如,可以允许应用程序190使用通信180来向源存储器140流送回放受保护的内容。如下面所描述的,操作***120和/或应用程序190可以启动通过SEP子***110的元件来实现的加密DMA操作,以允许加密的内容流的受保护的回放。
根据某些示例,共享存储器130可以包括被计算平台100的各种元件(例如,操作***120、SEP子***110、应用程序190等等)使用的各种存储器介质。对于这些实现,共享存储器130可以包括,但不局限于,易失性存储器、非易失性存储器、闪存、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)中的一项或多项。
在某些示例中,源存储器140和安全目的地存储器150也可以包括各种存储器介质,包括,但不仅限于,易失性存储器、非易失性存储器、闪存、RAM、ROM,或其他静态或动态存储器介质中的一项或多项。
根据某些示例,视频/声音子***160可以包括计算平台100的元件以向包括计算平台100的计算设备的用户提供视频/声音输出。这些元件可以包括音频/视频控制器、图形处理器等等。在某些示例中,视频/声音子***160可以***作***120引导从与安全目的地存储器150相关联的一个或多个存储器地址获取视频/声音内容。
根据某些示例,CPU170可以实现为计算平台100的中央处理单元。CPU170可以包括具有一个或多个处理器核或具有任意数量的具有任意数量处理器核的处理器的一个或多个处理单元。处理器170可以包括任何类型的处理单元,诸如,例如,多处理单元、精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)、数字信号处理器(DSP)等等。
在某些示例中,通信180可以包括允许计算平台100在外部与远离计算平台100的元件进行通信(例如,请求并接收流式受保护内容)的逻辑和/或特征。这些逻辑和/或特征可以包括通过有线和/或无线通信信道,通过一个或多个有线或无线网络,来进行通信。在跨这样的网络的通信中,通信180可以根据任何版本的一个或多个适用的通信或网络标准来操作。
如上文所提及的,接口154可以允许计算平台100的硬件和/或固件元件可通信地耦合在一起。根据某些示例,通信信道接口154可以根据一个或多个协议或标准来操作。可以在一个或多个行业标准(包括后代和变体)中,诸如与集成电路之间(I2C)规范、***管理总线(SMBus)规范、加速图形端口(AGP)规范、***组件互连Express(PCI Express)规范、通用串行总线(USB)规范或串行高级技术附件(SATA)规范相关联的那些,描述这些通信协议或标准。虽然本发明不仅限于上文所提及的标准和相关联的协议。
在某些示例中,计算平台100可以是计算设备的至少一部分。计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
图2示出了目的地管理器112的示例体系结构的框图。如上文对于图1中的计算平台100描述的,SEP子***110可以包括目的地管理器112。在某些示例中,目的地管理器112包括被配置为促进安全DMA操作的特征和/或逻辑。
图2的示例目的地管理器112包括目的地逻辑210、控制逻辑220、存储器230和输入/输出(I/O)接口240。如图2所示,目的地逻辑210可以耦合到控制逻辑220、存储器230和I/O接口240。目的地逻辑210可以包括启动特征211、范围特征213、设置特征215、验证特征217,或指示特征219中的一项或多项,或其任何合理的组合。
在某些示例中,图2中所描绘的元件被配置成支持或启用如本发明所描述的目的地管理器112。给定目的地管理器112可以包括图2中所描绘的那些元件中的某些,全部或更多元件。例如,目的地逻辑210和控制逻辑220可以分别地或共同地表示实现目的地管理器112的特征的各种逻辑设备或可执行内容。示例逻辑设备可以包括微处理器、微控制器、处理器电路、安全处理器、现场可编程门阵列(FPGA),专用集成电路(ASIC)、多核/多线程微处理器的分离的线程或核中的一项或多项或其组合。
在某些示例中,如图2所示,目的地逻辑210包括启动特征211、范围特征213、设置特征215、验证特征217,或指示特征219。目的地逻辑210可以被配置成使用这些特征中的一项或多项来执行操作。例如,启动特征211可以对操作***或应用程序的请求的启动作出响应以开始加密DMA操作。范围特征213可以建立安全目的地地址范围,用于将解密的内容放置在安全目的地存储器中。设置特征215可以在加密DMA模块处设置源和目的地寄存器以有助于受保护的内容从源存储器向安全目的地存储器的移动。验证特征217可以判断与安全目的地存储器相关联的目的地地址是否落在安全目的地地址范围内。如果加密DMA操作由于一个或多个目的地地址落到安全目的地地址范围以外而停止,指示特征219可以向操作***或应用程序发送错误指示。
在某些示例中,控制逻辑220可以被配置成控制目的地管理器112的总体操作。如上文所提及的,控制逻辑220可以表示各种逻辑设备或可执行内容中的任何一个。对于某些示例,控制逻辑220可以被配置成与可执行内容或指令一起操作,以实现对目的地管理器112的控制。在某些替换的示例中,控制逻辑220的特征和功能可以在目的地逻辑210内实现。
根据某些示例,存储器230可以被配置为存储供控制逻辑220和/或目的地逻辑210使用的可执行内容或指令。可执行内容或指令可以被用来实现或激活目的地管理器112的特征或元件。如下文所更多描述的,存储器230也可以被配置为至少临时维护与建立安全目的地地址范围以及在诸如加密DMA模块114之类的DMA模块中设置源和目的地寄存器相关联的信息。存储器230也可以被配置为临时存储与验证与安全目的地存储器相关联的目的地地址相关联的信息。
存储器230可以包括各种存储器介质,包括,但不仅限于,易失性存储器、非易失性存储器、闪存、可编程的变量或状态、RAM、ROM,或其他静态或动态存储器介质中的一项或多项。
在某些示例中,I/O接口240可以通过本地通信介质或图1中所描绘的目的地管理器112和计算平台100的元件之间的链路来提供接口。I/O接口240可以包括根据各种通信协议(例如,I2C、SMBus、AGP、PCI Express、USB、SATA等等)来操作以通过本地通信介质或链路来进行通信的接口。
图3示出了安全DMA操作的示例过程300。在某些示例中,如图1所示或在图2中所描述的目的地管理器112可以包括促进过程300的逻辑和/或特征。此外,如图1所示的加密DMA模块114、安全处理器116、操作***120、共享存储器130、源存储器140、安全目的地存储器150或应用程序190也可以被配置成实现过程300的至少某些操作。示例不仅限于上文所提及的用于实现过程300的元件。
从示例过程3.1开始(分散-聚集列表),操作***120和/或应用程序190可以被配置成生成或构建分散-聚集(scatter-gather)列表。在某些示例中,分散-聚集列表可以分别指出加密的和解密的内容的源和目的地地址。对于这些示例,应用程序190的用户可能希望在耦合到计算平台100的显示器上观看流式视频。操作***120,例如,可以允许应用程序190将加密的内容定向到源存储器140。操作***120和/或应用程序190可以生成源存储器140中的源地址列表,以指出加密的内容在哪里正在被维护。操作***120和/或应用程序190也可以生成与安全目的地存储器150相关联的目的地地址列表,以指出解密的内容将被放置在哪里。源或目的地列表可以叫做分散-聚集列表,以反映可以从源存储器140和/或安全目的地存储器150的非相邻的部分中获取加密的/解密的内容的可能性。此外,对于这些示例,操作***120和/或应用程序190可以至少临时将分散-聚集列表放置在共享存储器130中。
继续到示例过程3.2(启动加密DMA操作),操作***120和/或应用程序190可以启动加密DMA操作。在某些示例中,SEP子***110中的目的地管理器112可以包括对启动作出响应以开始加密DMA操作(例如,通过启动特征211)的逻辑和/或特征。对于这些示例,分散-聚集列表在共享存储器130中的存在可以指出操作***120的和/或应用程序190的启动加密DMA操作的意图。
继续到示例过程3.3(设置有效目的地范围寄存器),目的地管理器112可以包括响应于加密DMA操作的启动而设置在加密DMA模块114中维护的有效目的地范围寄存器(例如,通过范围特征213)的逻辑和/或特征。在某些示例中,在加密DMA模块114中维护的有效目的地范围寄存器可以被设置为建立安全目的地地址范围,通过该范围,可以将解密的内容置于安全目的地存储器150中。对于这些示例,目的地管理器112可以设置在加密DMA模块114中维护的有效目的地起始地址寄存器和有效目的地结束寄存器。落在由这些寄存器指出的起始和结束地址上或之间的目的地地址,例如,落在安全目的地地址范围内,并可以被视为“有效目的地地址”。
继续到示例过程3.4(设置源和目的地寄存器),目的地管理器112可以包括从共享存储器130接收分散-聚集列表并开始基于该分散-聚集列表来设置加密DMA模块114中维护的源和目的地址寄存器(例如,通过设置特征215)的逻辑和/或特征。在某些示例中,如上文所提及的,分散-聚集列表包括与在源存储器140中维护的加密内容相关联的源地址,还包括用于将解密的内容放置在安全目的地存储器150中的目的地地址。
继续到示例过程3.5(验证),加密DMA模块114可以被配置成自动地验证分散-聚集列表中所包括的目的地地址。在某些示例中,加密DMA模块114可以当目的地管理器112尝试设置每一个目的地址寄存器时分别地验证各个目的地地址。例如,加密DMA模块114可以被配置成自动地确认每一个目的地地址是否落在安全目的地地址范围内。
移动到示例过程3.6(如果无效目的地地址,则指出错误),加密DMA模块114可以被配置成判断给定目的地地址不落入安全目的地地址范围内。在某些示例中,加密DMA模块114可以判断给定目的地地址是无效的,并且加密DMA模块114可以停止寄存器设置过程,并将错误信号发送到目的地管理器112。
继续到示例过程3.7(如果错误/未通过验证,则停止加密DMA操作),目的地管理器112可以包括被配置成停止加密DMA操作(例如,通过验证特征217)的逻辑和/或特征。在某些示例中,在停止加密DMA操作时,目的地管理器112可以将错误消息或指示发送到操作***120和/或应用程序190。对于这些示例,错误消息可以指出非有效目的地地址被包括在分散-聚集列表中。
移动到示例过程3.8(如果所有目的地地址都通过验证,则完成加密DMA操作),加密DMA模块114随后可以开始基于如上文所描述的设置的源地址寄存器,从源存储器140移动加密的内容。在某些示例中,从源存储器140中获取的加密的内容可以由安全处理器116解密,然后,基于如上文所描述的设置并验证的目的地址寄存器,由加密DMA模块114放置在安全目的地存储器150中。
继续到示例过程3.9(清除有效目的地范围寄存器),目的地管理器112可以清除如上文所提及的在加密DMA模块114中设置的有效目的地范围寄存器。在某些示例中,可以基于加密DMA操作的完成,清除有效目的地范围寄存器。在某些其他示例中,如果在错误消息(例如,非有效目的地地址)之后,操作***120和/或应用程序190放弃执行加密DMA操作的努力,也可以清除有效目的地范围寄存器。对于这些示例,如果在给定时间段内(例如,若干秒或几分钟)没有生成新或修改的分散-聚集列表,则目的地管理器112可以认为操作***120和/或应用程序190放弃了执行加密DMA操作的努力。
移动到示例过程3.10(成功的加密DMA操作),目的地管理器112可以包括指出成功的加密DMA操作(例如,通过指示特征219)的逻辑和/或特征。在某些示例中,成功的加密DMA操作可以包括根据在分散-聚集列表中指出的源/目的地地址,受保护的内容在源存储器140和安全目的地存储器150之间的移动。对于这些示例,所有目的地地址被判断为在安全目的地地址范围内,如此,在解密的内容被置于安全目的地存储器150之前通过验证。
图4示出了另一个安全DMA操作的示例过程400。在某些示例中,如图1所示或在图2中所描述的目的地管理器112可以包括促进过程400的逻辑和/或特征。此外,如图1所示的加密DMA模块114、安全处理器116、操作***120、共享存储器130、源存储器140、安全目的地存储器150或应用程序190也可以被配置成实现过程400的至少某些操作。示例不仅限于上文所提及的用于实现过程400的元件。
从示例过程4.1开始(源DMA表),操作***120和/或应用程序190可以被配置成生成或构建源DMA表。在某些示例中,目的地管理器112可以不具有足够的存储器资源来维护如上文对于过程300所描述的分散-聚集列表中所包括的源/目的地地址。对于这些示例,目的地管理器112可以使用共享存储器130来维护源/目的地地址。只有指出加密的内容的一个或多个源地址的源DMA表是由操作***120和/或应用程序190构建的,并置于共享存储器130中。为了保护目的地地址,目的地管理器112可以生成或构建目的地DMA表,如下面所描述的。
继续到示例过程4.2(启动加密DMA操作),操作***120和/或应用程序190可以启动加密DMA操作。在某些示例中,SEP子***110中的目的地管理器112可以包括对启动作出响应以开始加密DMA操作(例如,通过启动特征211)的逻辑和/或特征。对于这些示例,源DMA表在共享存储器130中的存在可以指出操作***120的和/或应用程序190的启动加密DMA操作的意图。
继续到示例过程4.3(目的地DMA表/标志共享存储器),目的地管理器112可以包括被配置成构建目的地DMA表(例如,通过启动特征211)并将目的地DMA表置于共享存储器130的一部分的逻辑和/或特征。此外,目的地管理器112还可以标志共享存储器130的该部分以指出该部分的与加密DMA操作的相关联。在某些示例中,对共享存储器130的该部分进行标志也可以指出这些目的地地址还有待于验证。
继续到示例过程4.4(设置有效目的地范围),目的地管理器112可以包括被配置成设置有效目的地起始地址和有效目的地结束地址(例如,通过范围特征213)的逻辑和/或特征。在某些示例中,与在过程300中不同,目的地管理器112不在加密DMA模块114中设置寄存器以建立安全的目的地地址范围。相反,对于这些示例,目的地管理器112可以在其自己的,安全存储器(例如,存储器230)中维护有效目的地起始和结束地址。
继续到示例过程4.5(将目的地地址复制到安全存储器),目的地管理器112可以从在共享存储器130中维护的目的地DMA表复制目的地地址。在某些示例中,可以将一个或多个目的地地址复制到目的地管理器112的自己的安全存储器(例如,存储器230)。
继续到示例过程4.6(验证),目的地管理器112可以包括被配置成验证被复制到其安全存储器的目的地地址(例如,通过验证特征217)的逻辑和/或特征。如上文所提及的,目的地管理器112标志共享存储器130的某些部分以指出需要验证目的地地址。在某些示例中,标志向目的地管理器112指出应检查一个或多个复制的目的地地址的有效性。对于这些示例,目的地管理器112可以通过确认一个或多个复制的目的地地址是否落在安全目的地地址范围内来确定有效性。
移动到示例过程4.7(如果目的地地址无效,则停止加密DMA操作),如果从共享存储器130复制的目的地地址中的至少一个不落在安全目的地地址范围内,则目的地管理器112可以停止加密DMA操作。在某些示例中,目的地地址中的至少一个不落在安全目的地地址范围内可能会导致非有效目的地地址。对于这些示例,目的地管理器112可以包括将错误消息发送到操作***120和/或应用程序190(例如,通过指示特征219)以指出非有效目的地地址的逻辑和/或特征。
移动到示例过程4.8(设置加密DMA寄存器),目的地管理器112可以在加密DMA模块114中编程或设置源和目的地寄存器。在某些示例中,目的地管理器112可以在验证目的地地址之后设置这些寄存器。对于这些示例,可以根据在共享存储器130中维护的源DMA表来设置源寄存器,并可以根据在共享存储器130中维护的目的地地址来设置目的地寄存器。
移动到示例过程4.9(成功的加密DMA操作),目的地管理器112可以指出成功的加密DMA操作。在某些示例中,成功的加密DMA操作可以包括根据在源和目的地DMA表中指出的源/目的地地址,受保护的内容在源存储器140和安全目的地存储器150之间的移动。对于这些示例,所有目的地地址被判断为在安全目的地地址范围内,如此,在解密的内容被置于安全目的地存储器150之前通过验证。
移动到示例过程4.10(删除共享存储器标志),目的地管理器112可以从共享存储器130的一部分删除指出该部分的与加密DMA操作的相关联的标志。在某些示例中,标志的删除可以指出,存储器的一部分可以利用随后的加密DMA操作中的新源或目的地DMA表改写。在某些其他示例中,如果在错误消息(例如,非有效目的地地址)之后,操作***120和/或应用程序190放弃执行加密DMA操作的努力,也可以清除共享存储器标志。对于这些示例,如果在给定时间段内(例如,若干秒或几分钟)没有接收到重试加密DMA操作的请求,则目的地管理器112可以认为操作***120和/或应用程序190放弃了执行加密DMA操作的努力。
图5示出了安全DMA操作的示例操作的流程图。在某些示例中,如图1所示的计算平台100的元件可以被用来示出了涉及图5中所描绘的流程图的示例操作。也可以使用如图1和图2所示的目的地管理器112来示出示例操作。但是,所描述的方法不仅限于计算平台100上的实现或目的地管理器112。
从开始移动到框510(启动加密DMA操作),操作***120和/或应用程序190可以启动如上文对于过程300或过程400所描述的加密DMA操作。在某些示例中,SEP子***110中的目的地管理器112可以包括对启动作出响应以开始加密DMA操作(例如,通过启动特征211)的逻辑和/或特征。
从框510移动到框520(建立安全目的地地址范围),目的地管理器112可以包括被配置成建立安全目的地地址范围的逻辑和/或特征(例如,通过范围特征213)。在某些示例中,目的地管理器112可以通过设置在加密DMA模块114中维护的有效目的地范围寄存器来建立安全目的地地址范围。对于这些示例,类似于过程300,目的地管理器112可以设置在加密DMA模块114中维护的有效目的地起始地址寄存器和有效目的地结束地址寄存器。在其他示例中,目的地管理器112可以在不设置范围寄存器的情况下建立安全目的地。对于这些示例,类似于过程400,目的地管理器112可以设置有效目的地起始地址和有效目的地结束地址,并在其自己的,安全存储器(例如,存储器230)中维护这些地址。
从框520前进到框530(接收目的地DMA表),目的地管理器112可以包括被配置成接收目的地DMA表(例如,通过验证特征217)的逻辑和/或特征。在某些示例中,目的地管理器112可以通过由操作***120和/或应用程序190所生成的分散-聚集列表来接收目的地DMA表。在其他示例中,目的地DMA表可以维护在共享存储器130的被标志的部分。对于这些其他示例,目的地管理器112可能已经生成目的地DMA表并已标志共享存储器的一部分。可以从共享存储器130的该被标志的部分接收目的地DMA表。
从框530前进到判断框540(目的地地址有效吗?),目的地管理器112可以包括被配置成验证接收到的DMA表中所包括的目的地地址(例如,通过验证特征217)的逻辑和/或特征。在某些示例中,目的地管理器可以将有效性基于目的地地址是否落在上文所提及的建立的安全目的地地址范围内。如果目的地地址不落在安全目的地地址范围内,则目的地地址被视为无效,过程移到框550。否则,过程移到判断框570。
从判断框540移动到框550(停止加密DMA操作),目的地管理器112可以包括被配置成停止加密DMA操作或判断加密DMA操作是否被停止的逻辑和/或特征。在某些示例中,类似于过程300,加密DMA模块114可以向目的地管理器112发送错误信号以指出一个或更多目的地地址无效。对于这些示例,目的地管理器112基于错误信号判断加密DMA操作已经停止。在其他示例中,类似于过程400,目的地管理器112可以基于其自己的关于一个或更多目的地地址无效的判断,停止加密DMA操作。
从框550前进到框560(发送错误指示),目的地管理器112可以包括被配置成向操作***120和/或应用程序190发送错误指示(例如,通过指示特征219)的逻辑和/或特征。在某些示例中,目的地管理器112可以等待一段时间,等待操作***120和/或应用程序190重新启动加密DMA操作,然后,如果加密DMA操作没有重新启动,则可以清除有效目的地范围寄存器或删除共享存储器标志。然后,过程结束。
从判断框540移动到框570(允许加密DMA操作继续),目的地管理器112可以包括被配置成允许加密DMA操作继续的逻辑和/或特征。在某些示例中,加密DMA模块114现在可以设置适用的源和目的地址寄存器对于这些示例,从源存储器140中获取的加密的内容可以由安全处理器116解密,然后,基于设置的源和目的地址寄存器,由加密DMA模块114放置在安全目的地存储器150中。
从框570继续到判断框580(加密DMA操作完成了吗?),目的地管理器112可以包括被配置成判断从源存储器140中获取的所有加密的内容是否由安全处理器116解密然后由加密DMA模块114放置在安全目的地存储器150中的逻辑和/或特征。如果没有解密所有加密的内容,则过程返回到判断框540。否则,清除有效目的地范围寄存器,或删除共享存储器标志,过程结束。
图6是计算设备的示例***600的图示。具体而言,图6是示出了可以包括各种元件的***600的图示。例如,图6示出了***600可以包括处理器602、芯片组604、输入/输出(I/O)606、随机存取存储器(RAM)(诸如动态RAM(DRAM))608,以及只读存储器(ROM)610,以及各种平台组件614(例如,风扇、横向气流鼓风机、散热器、DTM***、冷却***、外壳、通风孔等等)。可以使用硬件、软件、固件或其任何组合来实现这些元件。然而,各实施例不仅限于这些元件。
如图6所示,I/O设备606、RAM608,以及ROM610通过芯片组604耦合到处理器602。芯片组604可以通过总线612耦合到处理器602。相应地,总线612可以包括多条线。在各示例中,芯片组604可以与处理器602集成或封装在一起。描述并要求保护其他示例。
处理器602可以是包括一个或多个处理器核的中央处理单元,并可以具有任意数量的具有任意数量处理器核的处理器。处理器602可以包括任何类型的处理单元,诸如,例如,CPU、多处理单元、精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)、数字信号处理器(DSP)等等。
虽然未示出,***600可以包括各种接口电路,诸如以太网接口和/或通用串行总线(USB)接口,和/或等等。在某些示例性实施例中,I/O设备606可以包括连接到接口电路的用于向***600中输入数据和命令的一个或多个输入设备。例如,输入设备可以包括键盘、鼠标、触摸屏、跟踪板、跟踪球、isopoint、语音识别***,和/或等等。类似地,I/O设备606可以包括连接到接口电路的用于向操作员输出信息的一个或多个输出设备。例如,输出设备可以包括一个或多个显示器、打印机、扬声器,和/或其他输出设备,如果需要的话。例如,输出设备中的一个可以是显示器。显示器可以是阴极射线管(CRT)、液晶显示器(LCD),或任何其他类型的显示器。
***600也可以具有有线或无线网络接口,以通过到网络的连接,与其他设备交换数据。网络连接可以是任何类型的网络连接,诸如以太网连接、数字用户线(DSL)、电话线路、同轴电缆等等。网络可以是任何类型的网络,诸如因特网、电话网络、有线电视网、无线网络、分组交换网络、电路交换网,和/或等等。
各示例可以使用硬件元件、软件元件或两者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用程序、计算机程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。判断一个示例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及其他设计或性能约束。
至少一个示例的一个或多个方面可以通过存储在机器可读介质上的代表性的指令来实现,指令表示处理器内的各种逻辑,指令在由机器读取时使机器制造执行此处所描述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。
各示例可以使用硬件元件、软件元件或两者的组合来实现。在某些示例中,硬件元件可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。在某些示例中,软件元件可以包括软件组件、程序、应用程序、计算机程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。判断一个示例是否使用硬件元件或软件元件来实现可以根据任意数量的因素而不同,如所希望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,及其他设计或性能约束,如根据需要给定实现的需要。
某些示例可以包括制品。制品可以包括存储逻辑的非瞬时的存储介质。在某些示例中,非瞬时的存储介质可包括一种或多种类型的能够存储电子数据的计算机可读存储介质,包括易失性存储器或非易失性存储器,可移动或不可移动存储器,可擦除或不可擦存储器,可写入或可重写的存储器等等。在某些示例中,逻辑可包括各种软件元件,如软件组件、程序、应用程序、计算机程序、***程序、机器程序、操作***软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或其任何组合。
根据某些示例,制品可以包括存储或维护指令的非瞬时的存储介质,所述指令,当由计算机或***执行时,导致计算机或***执行根据所描述的示例的方法和/或操作。指令可包括任何合适类型的代码,如源代码、已编译的代码、已解释的代码、可执行代码、静态代码、动态代码等等。指令可以根据预定义的计算机语言、方式或语法来实现,以便指示计算机来执行某一功能。指令可以使用任何合适的高级别的、低级别的、面向对象的、可视的、已编译的和/或解释性编程语言来实现。
可以使用表达“在一个示例中”或“示例”以及它们的派生词来描述某些示例。这些术语意味着,参考示例所描述的特定功能、结构或特征包括在至少一个示例中。在本说明书中的不同位置出现短语“在一个示例中”不一定都是指同一个示例。
可以使用表达“耦合”和“连接”以及它们的派生词来描述某些示例。这些术语不一定作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以表示,两个或更多元件彼此处于直接的物理或电接触的状态。然而,术语“耦合”也可以意味着,两个或更多彼此不直接接触,但是仍彼此合作或进行交互。
需强调的是,提供了“发明摘要”以符合37C.F.R.第1.72(b)段,要求将可使读者快速地弄清本技术公开的特征的摘要。但应理解,它不能被用来解释或限制权利要求的范围或含义。此外,在前面的"具体实施方式"中,可以看出,各种特点可以组合在一个示例中,以便简化说明。本发明的此方法不应被解释为反映带权利要求的各示例需要比每一个权利要求中明确地列举的特点更多的特点的意图。相反,如下面的权利要求所反映的,本发明的主题在于少于所公开的单一示例的所有特点。如此,下面的权利要求被包括到“详细描述”中,每一个权利要求本身也作为单独的示例。在所附权利要求书中,术语“包括”和“其特征在于”被用作相应的术语“包含”和“其中”的普通英语等效词。此外,术语“第一”、“第二”、“第三”等等只用作标记,并不旨在对它们的对象施加数值要求。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
Claims (29)
1.一种在主机计算设备上实现的方法,包括:
响应于直接存储器访问(DMA)操作的启动,建立安全目的地地址范围,所述直接存储器访问(DMA)操作包括从源存储器获取加密的内容,解密所述加密的内容,并将所述解密的内容置于安全目的地存储器中;
接收与所述安全目的地存储器相关联的一个或多个目的地地址;以及
基于所述一个或多个目的地地址落在所述安全目的地地址范围内,允许所述解密的内容被置于所述安全目的地存储器中。
2.如权利要求1所述的方法,包括通过在被配置成实现所述DMA操作的DMA模块中设置有效目的地起始地址寄存器和有效目的地结束地址寄存器两者,建立所述安全目的地地址范围。
3.如权利要求2所述的方法,包括响应于所述DMA操作的完成,复位所述有效目的地起始地址寄存器和所述有效目的地结束地址寄存器。
4.如权利要求1所述的方法,包括:接收所述一个或多个目的地地址包括接收目的地DMA表,作为由请求所述DMA操作的应用程序所生成的分散-聚集列表的一部分,所述分散-聚集列表还包括与所述源存储器相关联的一个或多个源地址。
5.如权利要求4所述的方法,包括基于所述分散-聚集列表,在所述DMA模块中设置源地址和目的地址寄存器,所述DMA模块基于所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外,停止所述源和目的地址寄存器的所述设置。
6.如权利要求5所述的方法,包括所述DMA模块向所述DMA模块的控制器发送错误指示以指出所述至少一个目的地地址是非有效目的地地址。
7.如权利要求1所述的方法,包括从在被配置成实现所述DMA操作的DMA模块的控制器和所述主机计算设备的操作***之间共享的存储器的一部分接收所述一个或多个目的地地址,所述一个或多个目的地地址是由所述控制器构建的,所述控制器标志所述共享存储器的所述一部分以指出所述部分的与所述DMA操作的相关联。
8.如权利要求7所述的方法,包括所述控制器通过设置有效目的地起始地址和设置有效目的地结束地址,来建立所述安全目的地地址范围。
9.如权利要求8所述的方法,包括所述控制器从所述共享存储器接收一个或多个源地址,所述一个或多个源地址是由请求所述DMA操作的应用程序构建的,所述控制器基于所述一个或多个源地址和所述一个或多个目的地地址两者,在所述DMA模块中设置源地址和目的地址寄存器,所述控制器基于所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外,停止所述源地址和目的地址寄存器的所述设置。
10.如权利要求9所述的方法,包括所述控制器响应于所述至少一个目的地地址落到所述安全目的地范围以外,向请求所述DMA操作的所述应用程序发送错误指示。
11.如权利要求8所述的方法,包括所述控制器从所述共享存储器接收一个或多个源地址,所述一个或多个源地址是由请求所述DMA操作的应用程序构建的,所述控制器基于所述一个或多个源地址和所述一个或多个目的地地址两者,并基于所述一个或多个目的地之中的所有所述目的地地址是否落在所述安全目的地地址范围内,在所述DMA模块中设置源地址和目的地址寄存器。
12.一种设备,包括:
处理器电路;以及
可通信地耦合到所述处理器电路的存储器单元,所述存储器单元被配置为存储目的地管理器,所述目的地管理器可在所述处理器电路上操作,以响应于从源存储器移动加密的内容、解密所述加密的内容,并将所述解密的内容置于安全目的地存储器中的直接存储器访问(DMA)操作的启动,建立安全目的地地址范围,所述目的地管理器还可操作以接收与所述安全目的地存储器相关联的一个或多个目的地地址,并基于所述一个或多个目的地地址落在所述安全目的地地址范围内,允许所述解密的内容被置于所述安全目的地存储器。
13.如权利要求12所述的设备,包括显示器,用于视觉回放被置于所述安全目的地存储器中的所述解密的内容的视频内容部分。
14.如权利要求12所述的设备,包括所述目的地管理器,所述目的地管理器被配置成:在被配置为实现所述DMA操作的DMA模块中设置有效目的地起始地址寄存器和有效目的地结束地址寄存器两者,以建立所述安全目的地地址范围。
15.如权利要求14所述的设备,包括所述目的地管理器,所述目的地管理器被配置成接收目的地DMA表中的所述一个或多个目的地地址,作为由请求所述DMA操作的应用程序所生成的分散-聚集列表,所述分散-聚集列表还包括与所述源存储器相关联的一个或多个源地址。
16.如权利要求15所述的设备,包括所述目的地管理器,所述目的地管理器被配置成基于所述分散-聚集列表,在所述DMA模块中设置源地址和目的地址寄存器,还被配置成基于来自所述DMA模块的指出所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外的错误指示,停止所述源地址和目的地址寄存器的所述设置。
17.如权利要求12所述的设备,包括所述目的地管理器,所述目的地管理器被配置成从在所述目的地管理器和所述主机计算设备的操作***之间共享的存储器的一部分接收所述一个或多个目的地地址,所述目的地管理器还被配置成构建所述一个或多个目的地地址,并标志所述所述共享存储器的所述一部分以指出所述部分的与所述DMA操作的关联。
18.如权利要求17所述的设备,包括所述目的地管理器,所述目的地管理器被配置成设置有效目的地起始地址和有效目的地结束地址两者,以建立所述安全目的地地址范围。
19.如权利要求17所述的设备,包括所述目的地管理器,所述目的地管理器被配置成:在被配置为实现所述DMA操作的所述DMA模块中维护的寄存器中设置所述有效目的地起始地址和有效目的地结束地址。
20.如权利要求18所述的设备,包括所述目的地管理器,所述目的地被配置成从所述共享存储器接收一个或多个源地址,所述一个或多个源地址是由请求所述DMA操作的应用程序构建的,所述目的地管理器基于所述一个或多个源地址和所述一个或多个目的地地址两者,在所述DMA模块中设置源地址和目的地址寄存器,所述目的地管理器还被配置成基于所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外,停止所述源地址和目的地址寄存器的所述设置。
21.如权利要求20所述的设备,包括所述目的地管理器,所述目的地管理器被配置成响应于所述至少一个目的地地址是非有效目的地地址,向请求所述DMA操作的所述应用程序发送错误指示。
22.包括存储介质的制品,所述存储介质包含指令,当执行所述指令时,所述指令导致主机计算设备的直接存储器访问(DMA)***:
响应于DMA操作的启动,建立安全目的地地址范围,所述直接存储器访问(DMA)操作包括从源存储器获取加密的内容,解密所述加密的内容,并将所述解密的内容置于安全目的地存储器中;
接收与所述安全目的地存储器相关联的一个或多个目的地地址;以及
基于所述一个或多个目的地地址落在所述安全目的地地址范围内,导致所述解密的内容被置于所述安全目的地存储器中。
23.如权利要求22所述的制品,包括指令,用于导致所述DMA***通过所述DMA***在被配置成实现所述DMA操作的DMA模块中设置有效目的地起始地址寄存器和有效目的地结束地址寄存器来确定所述安全目的地地址范围。
24.如权利要求23所述的制品,包括指令,用于导致所述DMA***接收DMA表中的所述一个或多个目的地地址,作为由请求所述DMA操作的应用程序所生成的所述分散-聚集列表的一部分,所述所述分散-聚集列表还包括与所述源存储器相关联的一个或多个源地址。
25.如权利要求24所述的制品,包括指令,用于导致所述DMA***基于所述分散-聚集列表来在所述DMA模块中设置源地址和目的地址寄存器,并且所述指令还导致所述DMA***基于来自所述DMA模块的指出所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外的错误指示,停止所述源和目的地址寄存器的所述设置。
26.如权利要求22所述的制品,包括指令,用于导致所述DMA***从在所述DMA***和所述主机计算设备的操作***之间共享的存储器的一部分接收所述一个或多个目的地地址,所述一个或多个目的地地址是由所述DMA***构建的,所述指令还导致所述DMA***标志所述共享存储器的所述一部分指出所述部分的与所述DMA操作的相关联。
27.如权利要求26所述的制品,包括指令,用于导致所述DMA***通过设置有效目的地结束地址来确定所述安全目的地地址范围。
28.如权利要求27所述的制品,包括指令,用于导致所述DMA***从所述共享存储器接收一个或多个源地址,所述一个或多个源地址是由请求所述DMA操作的应用程序构建的,所述指令还导致所述DMA***基于所述一个或多个源地址和所述一个或多个目的地地址来在所述DMA模块中设置源地址和目的地址寄存器,所述指令还导致所述DMA***基于所述一个或多个目的地地址之中的至少一个目的地地址落到所述安全目的地地址范围以外,停止所述源地址和目的地址寄存器的所述设置。
29.如权利要求28所述的制品,包括指令,用于导致所述DMA***基于所述至少一个目的地地址落到所述安全目的地地址范围以外,向请求所述DMA操作的所述应用程序发送错误指示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/066592 WO2013095461A1 (en) | 2011-12-21 | 2011-12-21 | Secure direct memory access |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104040510A true CN104040510A (zh) | 2014-09-10 |
CN104040510B CN104040510B (zh) | 2017-05-17 |
Family
ID=48669108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075855.5A Expired - Fee Related CN104040510B (zh) | 2011-12-21 | 2011-12-21 | 具备安全的直接存储器访问的计算设备及相应方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9311458B2 (zh) |
EP (1) | EP2795503A4 (zh) |
JP (1) | JP5908991B2 (zh) |
CN (1) | CN104040510B (zh) |
WO (1) | WO2013095461A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107851170A (zh) * | 2015-07-20 | 2018-03-27 | 英特尔公司 | 支持用于存储器地址范围的可配置安全级别 |
TWI828934B (zh) * | 2019-08-06 | 2024-01-11 | 南韓商Ictk控股有限公司 | 處理器、處理器的操作方法及包括其的電子裝置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298894B2 (en) | 2009-06-26 | 2016-03-29 | International Business Machines Corporation | Cache structure for a computer system providing support for secure objects |
US9846789B2 (en) | 2011-09-06 | 2017-12-19 | International Business Machines Corporation | Protecting application programs from malicious software or malware |
US8578175B2 (en) | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US9864853B2 (en) | 2011-02-23 | 2018-01-09 | International Business Machines Corporation | Enhanced security mechanism for authentication of users of a system |
US9298375B2 (en) * | 2013-02-27 | 2016-03-29 | Vmware, Inc. | Method and apparatus for returning reads in the presence of partial data unavailability |
FR3035528B1 (fr) * | 2015-04-22 | 2017-05-26 | Thales Sa | Procede de controle systematique des adresses de zones memoire dans le cadre d'un transfert par acces direct |
US10552619B2 (en) * | 2015-07-20 | 2020-02-04 | Intel Corporation | Technologies for secure trusted I/O access control |
KR102407917B1 (ko) | 2015-11-12 | 2022-06-10 | 삼성전자주식회사 | 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법 |
US10225247B2 (en) * | 2015-12-14 | 2019-03-05 | Intel Corporation | Bidirectional cryptographic IO for data streams |
US10241706B2 (en) * | 2016-05-20 | 2019-03-26 | Renesas Electronics Corporation | Semiconductor device and its memory access control method |
JP6758222B2 (ja) * | 2016-05-20 | 2020-09-23 | ルネサスエレクトロニクス株式会社 | 半導体装置及びそのメモリアクセス制御方法 |
JP6784581B2 (ja) * | 2016-12-06 | 2020-11-11 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置及びdmaコントローラの異常検知方法 |
US10332302B2 (en) | 2017-04-17 | 2019-06-25 | Intel Corporation | Scatter gather engine |
US10949546B2 (en) * | 2017-08-02 | 2021-03-16 | Samsung Electronics Co., Ltd. | Security devices, electronic devices and methods of operating electronic devices |
FR3077893B1 (fr) * | 2018-02-14 | 2020-09-11 | St Microelectronics Rousset | Systeme de controle d'acces a une memoire |
FR3094507A1 (fr) * | 2019-03-29 | 2020-10-02 | Stmicroelectronics (Grenoble 2) Sas | Accès direct en mémoire |
FR3098613A1 (fr) * | 2019-07-09 | 2021-01-15 | STMicroelectronics (Grand Ouest) SAS | Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant |
WO2021025490A1 (ko) * | 2019-08-06 | 2021-02-11 | 주식회사 아이씨티케이 홀딩스 | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 |
JP7327029B2 (ja) * | 2019-09-19 | 2023-08-16 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置、データ通信方法 |
CN114385529A (zh) | 2020-10-16 | 2022-04-22 | 瑞昱半导体股份有限公司 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
CN114385528A (zh) * | 2020-10-16 | 2022-04-22 | 瑞昱半导体股份有限公司 | 直接记忆体存取控制器、使用其之电子装置以及操作其的方法 |
KR20220157145A (ko) * | 2021-05-20 | 2022-11-29 | 삼성전자주식회사 | 가상화 시스템 및 가상화 시스템의 메모리 충돌 방지 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1451117A (zh) * | 2000-06-30 | 2003-10-22 | 英特尔公司 | 采用安全存储器分区来实现安全执行的方法和装置 |
US20110078760A1 (en) * | 2008-05-13 | 2011-03-31 | Nxp B.V. | Secure direct memory access |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
JP3661235B2 (ja) * | 1995-08-28 | 2005-06-15 | 株式会社日立製作所 | 共有メモリシステム、並列型処理装置並びにメモリlsi |
US5659798A (en) * | 1996-02-02 | 1997-08-19 | Blumrich; Matthias Augustin | Method and system for initiating and loading DMA controller registers by using user-level programs |
US5825878A (en) * | 1996-09-20 | 1998-10-20 | Vlsi Technology, Inc. | Secure memory management unit for microprocessor |
US6105080A (en) * | 1997-12-30 | 2000-08-15 | Lsi Logic Corporation | Host adapter DMA controller with automated host reply capability |
US6629152B2 (en) * | 1998-06-29 | 2003-09-30 | International Business Machines Corporation | Message passing using shared memory of a computer |
US6202106B1 (en) * | 1998-09-09 | 2001-03-13 | Xilinx, Inc. | Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
US7194766B2 (en) * | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US6775750B2 (en) * | 2001-06-29 | 2004-08-10 | Texas Instruments Incorporated | System protection map |
JP3705354B2 (ja) | 2001-07-24 | 2005-10-12 | 日本電気株式会社 | 情報処理システムのioアクセス制御方法およびプログラム |
US6748499B2 (en) * | 2001-11-15 | 2004-06-08 | International Business Machines Corporation | Sharing memory tables between host channel adapters |
FR2834361B1 (fr) * | 2001-12-28 | 2004-02-27 | Bull Sa | Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature |
JP3971941B2 (ja) * | 2002-03-05 | 2007-09-05 | 三洋電機株式会社 | データ記憶装置 |
US7296154B2 (en) * | 2002-06-24 | 2007-11-13 | Microsoft Corporation | Secure media path methods, systems, and architectures |
US7478235B2 (en) * | 2002-06-28 | 2009-01-13 | Microsoft Corporation | Methods and systems for protecting data in USB systems |
JP2004078683A (ja) * | 2002-08-20 | 2004-03-11 | Toshiba Corp | コンピュータシステムおよび共有メモリ制御方法 |
JP2004295353A (ja) * | 2003-03-26 | 2004-10-21 | Matsushita Electric Ind Co Ltd | メモリデバイス |
US20050033979A1 (en) * | 2003-08-08 | 2005-02-10 | Hyser Chris D. | Method and system for secure direct memory access |
JP2005092344A (ja) * | 2003-09-12 | 2005-04-07 | Renesas Technology Corp | 半導体装置 |
US7454787B2 (en) * | 2004-01-13 | 2008-11-18 | Hewlett-Packard Development Company, L.P. | Secure direct memory access through system controllers and similar hardware devices |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US8112618B2 (en) * | 2004-04-08 | 2012-02-07 | Texas Instruments Incorporated | Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making |
JP2005309847A (ja) * | 2004-04-22 | 2005-11-04 | Sharp Corp | データ処理装置 |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US7734926B2 (en) * | 2004-08-27 | 2010-06-08 | Microsoft Corporation | System and method for applying security to memory reads and writes |
JP4533713B2 (ja) * | 2004-09-30 | 2010-09-01 | 株式会社東芝 | 情報処理装置およびデータ転送制御方法 |
US8332653B2 (en) * | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
GB2422926B (en) * | 2005-02-04 | 2008-10-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for controlling access to memory |
JP4591163B2 (ja) | 2005-04-07 | 2010-12-01 | パナソニック株式会社 | バスアクセス制御装置 |
US7941860B2 (en) * | 2005-05-13 | 2011-05-10 | Intel Corporation | Apparatus and method for content protection using one-way buffers |
JP4738068B2 (ja) * | 2005-06-17 | 2011-08-03 | 富士通セミコンダクター株式会社 | プロセッサ及びシステム |
US7779254B1 (en) * | 2005-12-21 | 2010-08-17 | Rockwell Collins, Inc. | Mechanism to enhance and enforce multiple independent levels of security in a microprocessor memory and I/O bus controller |
US8265274B2 (en) * | 2006-04-24 | 2012-09-11 | Panasonic Corporation | Data processing device, data processing method, data processing program, recording medium containing the data processing program and integrated circuit |
US7433977B2 (en) * | 2006-11-28 | 2008-10-07 | Telefonaktiebolaget Lm Ericsson (Publ) | DMAC to handle transfers of unknown lengths |
US7620749B2 (en) | 2007-01-10 | 2009-11-17 | International Business Machines Corporation | Descriptor prefetch mechanism for high latency and out of order DMA device |
US8464069B2 (en) * | 2007-02-05 | 2013-06-11 | Freescale Semiconductors, Inc. | Secure data access methods and apparatus |
US8001390B2 (en) * | 2007-05-09 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode |
US8200985B2 (en) * | 2007-09-20 | 2012-06-12 | Broadcom Corporation | Method and system for protecting data |
JP2009080515A (ja) * | 2007-09-25 | 2009-04-16 | Panasonic Corp | セキュアなロードシーケンスを提供する方法および装置 |
US8478959B1 (en) * | 2007-11-13 | 2013-07-02 | Nvidia Corporation | Method and system for protecting content in graphics memory |
US8127131B2 (en) * | 2008-04-10 | 2012-02-28 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for efficient security domain translation and data transfer |
JP5452988B2 (ja) * | 2008-06-17 | 2014-03-26 | パナソニック株式会社 | メモリ制御装置、コンテンツ再生装置、制御方法及び記録媒体 |
WO2010070506A1 (en) * | 2008-12-18 | 2010-06-24 | Nxp B.V. | Establishing a secure memory path in a unitary memory architecture |
US9086913B2 (en) * | 2008-12-31 | 2015-07-21 | Intel Corporation | Processor extensions for execution of secure embedded containers |
US8621301B2 (en) * | 2009-03-04 | 2013-12-31 | Alcatel Lucent | Method and apparatus for virtual in-circuit emulation |
US8819399B1 (en) * | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
US8561183B2 (en) * | 2009-07-31 | 2013-10-15 | Google Inc. | Native code module security for arm instruction set architectures |
JP5433349B2 (ja) * | 2009-08-27 | 2014-03-05 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
US9087200B2 (en) * | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
US8706923B2 (en) * | 2010-09-14 | 2014-04-22 | Texas Instruments Incorported | Methods and systems for direct memory access (DMA) in-flight status |
US8631170B2 (en) * | 2010-09-16 | 2014-01-14 | Red Hat Israel, Ltd. | Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU |
US9003077B2 (en) * | 2011-09-30 | 2015-04-07 | Oracle International Corporation | Sharing IOMMU mappings across devices in a DMA group |
US8615614B2 (en) * | 2011-11-30 | 2013-12-24 | Freescale Semiconductor, Inc. | Message passing using direct memory access unit in a data processing system |
US8844054B2 (en) * | 2012-04-06 | 2014-09-23 | Wayne Odom | System, method, and device for communicating and storing and delivering data |
US8910307B2 (en) * | 2012-05-10 | 2014-12-09 | Qualcomm Incorporated | Hardware enforced output security settings |
US9152577B2 (en) * | 2012-08-17 | 2015-10-06 | Broadcom Corporation | Security central processing unit management of a transcoder pipeline |
US9785576B2 (en) * | 2014-03-27 | 2017-10-10 | Intel Corporation | Hardware-assisted virtualization for implementing secure video output path |
JP6476098B2 (ja) * | 2015-09-15 | 2019-02-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2011
- 2011-12-21 JP JP2014548764A patent/JP5908991B2/ja active Active
- 2011-12-21 WO PCT/US2011/066592 patent/WO2013095461A1/en active Application Filing
- 2011-12-21 US US13/976,951 patent/US9311458B2/en active Active
- 2011-12-21 EP EP11878042.8A patent/EP2795503A4/en not_active Withdrawn
- 2011-12-21 CN CN201180075855.5A patent/CN104040510B/zh not_active Expired - Fee Related
-
2016
- 2016-04-01 US US15/089,287 patent/US9792234B2/en active Active
-
2017
- 2017-10-16 US US15/784,743 patent/US10185680B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1451117A (zh) * | 2000-06-30 | 2003-10-22 | 英特尔公司 | 采用安全存储器分区来实现安全执行的方法和装置 |
US20110078760A1 (en) * | 2008-05-13 | 2011-03-31 | Nxp B.V. | Secure direct memory access |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107851170A (zh) * | 2015-07-20 | 2018-03-27 | 英特尔公司 | 支持用于存储器地址范围的可配置安全级别 |
CN107851170B (zh) * | 2015-07-20 | 2022-06-24 | 英特尔公司 | 支持用于存储器地址范围的可配置安全级别 |
TWI828934B (zh) * | 2019-08-06 | 2024-01-11 | 南韓商Ictk控股有限公司 | 處理器、處理器的操作方法及包括其的電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
US9311458B2 (en) | 2016-04-12 |
JP2015508527A (ja) | 2015-03-19 |
EP2795503A4 (en) | 2015-08-26 |
JP5908991B2 (ja) | 2016-04-26 |
US9792234B2 (en) | 2017-10-17 |
US20170004100A1 (en) | 2017-01-05 |
EP2795503A1 (en) | 2014-10-29 |
US20180101488A1 (en) | 2018-04-12 |
CN104040510B (zh) | 2017-05-17 |
US10185680B2 (en) | 2019-01-22 |
WO2013095461A1 (en) | 2013-06-27 |
US20130283391A1 (en) | 2013-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104040510A (zh) | 安全的直接存储器访问 | |
CN109996114B (zh) | 控制视频输出的方法及其装置、控制电路 | |
KR101483839B1 (ko) | 가상화를 이용한 비디오 컨텐츠 보호 | |
JP6022688B2 (ja) | コンピューティングシステムのストレージデバイスのための効率的な動作経路を促進する機構 | |
JP2016517241A (ja) | ストレージデバイスによって支援されるインライン暗号化および暗号化解除 | |
KR101837678B1 (ko) | 신뢰실행환경 기반의 컴퓨팅 장치 | |
US20170286320A1 (en) | Avoiding redundant memory encryption in a cryptographic protection system | |
CN104246784A (zh) | 用于保护和安全地传输媒体内容的方法、设备和*** | |
CN104424033A (zh) | 一种电子设备及数据处理方法 | |
CN104834874A (zh) | 建立安全执行环境之间的物理局部性 | |
EP3452911B1 (en) | Recovery environment for a virtual machine | |
US11520859B2 (en) | Display of protected content using trusted execution environment | |
CN106326782B (zh) | 一种信息处理方法及电子设备 | |
WO2017112281A1 (en) | Secure data transfer with compute stick | |
CN107135471B (zh) | 一种数据传输的方法及移动终端 | |
US11409876B2 (en) | Displaying a BIOS update progress | |
CN104537283A (zh) | 一种基于网络的软件授权控制装置 | |
CN108134994A (zh) | 双密码操作的sim卡 | |
CN103593619A (zh) | 应用数据保护的方法和*** | |
US11245694B2 (en) | User terminal apparatus and control method thereof | |
KR20170042143A (ko) | 반도체 제조 장비의 kvm 보안 시스템 | |
CN112052201A (zh) | 一种基于Linux内核层实现的USB设备管控方法与*** | |
US20180247087A1 (en) | Securing an Unprotected Hardware Bus | |
JP6274623B2 (ja) | 安全なダイレクトメモリアクセス | |
CN116226793A (zh) | 基于分布式集群的软件授权方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170517 Termination date: 20191221 |