CN104040510A - 安全的直接存储器访问 - Google Patents

安全的直接存储器访问 Download PDF

Info

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
Application number
CN201180075855.5A
Other languages
English (en)
Other versions
CN104040510B (zh
Inventor
J·曼盖拉姆帕利
V·R·戈库尔兰干
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104040510A publication Critical patent/CN104040510A/zh
Application granted granted Critical
Publication of CN104040510B publication Critical patent/CN104040510B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection 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/1425Protection 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/1441Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • G11B20/0013Circuits 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (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操作的所述应用程序发送错误指示。
CN201180075855.5A 2011-12-21 2011-12-21 具备安全的直接存储器访问的计算设备及相应方法 Expired - Fee Related CN104040510B (zh)

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)

* Cited by examiner, † Cited by third party
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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578175B2 (en) 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US9846789B2 (en) * 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US9298894B2 (en) 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
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
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
US11886879B2 (en) * 2019-08-06 2024-01-30 Ictk Holdings Co., Ltd. Processor, processor operation method and electronic device comprising same for selective instruction execution based on operand address
JP7327029B2 (ja) * 2019-09-19 2023-08-16 京セラドキュメントソリューションズ株式会社 画像形成装置、データ通信方法
CN114385528A (zh) * 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法
CN114385529A (zh) 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CN101433085B (zh) * 2006-04-24 2012-04-18 松下电器产业株式会社 数据处理装置、数据处理方法、数据处理程序及记录有该数据处理程序的记录媒体以及集成电路
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 パナソニック株式会社 メモリ制御装置、コンテンツ再生装置、制御方法及び記録媒体
EP2387752A1 (en) * 2008-12-18 2011-11-23 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 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP5908991B2 (ja) 2016-04-26
US20170004100A1 (en) 2017-01-05
US20130283391A1 (en) 2013-10-24
US10185680B2 (en) 2019-01-22
US9792234B2 (en) 2017-10-17
CN104040510B (zh) 2017-05-17
US20180101488A1 (en) 2018-04-12
EP2795503A4 (en) 2015-08-26
US9311458B2 (en) 2016-04-12
EP2795503A1 (en) 2014-10-29
WO2013095461A1 (en) 2013-06-27
JP2015508527A (ja) 2015-03-19

Similar Documents

Publication Publication Date Title
CN104040510A (zh) 安全的直接存储器访问
CN109996114B (zh) 控制视频输出的方法及其装置、控制电路
KR101891420B1 (ko) DaaS를 위한 컨텐츠 보호
KR101483839B1 (ko) 가상화를 이용한 비디오 컨텐츠 보호
JP2016517241A (ja) ストレージデバイスによって支援されるインライン暗号化および暗号化解除
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
KR101837678B1 (ko) 신뢰실행환경 기반의 컴퓨팅 장치
CN104424033A (zh) 一种电子设备及数据处理方法
EP3221814B1 (en) Transparent execution of secret content
CN109154903B (zh) 用于虚拟机的恢复环境
CN104834874A (zh) 建立安全执行环境之间的物理局部性
US10380037B2 (en) Secure data transfer with compute stick
US11520859B2 (en) Display of protected content using trusted execution environment
CN107135471B (zh) 一种数据传输的方法及移动终端
CN104537283A (zh) 一种基于网络的软件授权控制装置
CN108134994A (zh) 双密码操作的sim卡
CN106326782B (zh) 一种信息处理方法及电子设备
EP3044721B1 (en) Automatic pairing of io devices with hardware secure elements
US11409876B2 (en) Displaying a BIOS update progress
US11245694B2 (en) User terminal apparatus and control method thereof
JP6274623B2 (ja) 安全なダイレクトメモリアクセス
KR20170042143A (ko) 반도체 제조 장비의 kvm 보안 시스템
CN116226793A (zh) 基于分布式集群的软件授权方法、装置、设备及介质
CN115480972A (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