CN100375422C - 鉴别代码和/或数据的方法和系统 - Google Patents

鉴别代码和/或数据的方法和系统 Download PDF

Info

Publication number
CN100375422C
CN100375422C CNB2004100481582A CN200410048158A CN100375422C CN 100375422 C CN100375422 C CN 100375422C CN B2004100481582 A CNB2004100481582 A CN B2004100481582A CN 200410048158 A CN200410048158 A CN 200410048158A CN 100375422 C CN100375422 C CN 100375422C
Authority
CN
China
Prior art keywords
isolation
local memory
area
code
data
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.)
Expired - Fee Related
Application number
CNB2004100481582A
Other languages
English (en)
Other versions
CN1574730A (zh
Inventor
H·P·霍夫斯泰
J·利伯蒂
M·N·戴
D·J·克拉夫特
C·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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1574730A publication Critical patent/CN1574730A/zh
Application granted granted Critical
Publication of CN100375422C publication Critical patent/CN100375422C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了对代码和/或数据的鉴别以及为执行提供保护环境。本发明为鉴别代码或数据提供了对局部存储器的动态划分和解除划分。该局部存储器被划分为隔离和非隔离区域。代码或数据被加载到所述隔离区域。代码或数据在局部存储器的隔离区域被鉴别。在鉴别之后,执行该代码。在执行之后,在附属处理器单元的隔离区域中的存储区被擦除,且该附属处理器单元解除划分该局部存储器中的隔离区域。

Description

鉴别代码和/或数据的方法和系统
技术领域
本发明一般而言涉及在芯片中鉴别代码和/或数据,更具体地,涉及在附连的处理器单元的隔离区域内鉴别和保护代码和/或数据。
背景技术
在现代微处理器中,对安全功能的支持具有不断增加的重要性。一个主要原因是处理器越来越多地被联网。到网络和源自网络的通信可被监视,且因此不能被信任。这种安全的缺乏可能需要在构成网络的处理器中执行鉴别和加密的功能。
为了商业目的如实现支付系统等而使用联网计算机,要求鉴别和保护数据以及分布于网络的情况下的代码。鉴别可被一般地定义为对于代码或数据是否已被篡改或以其他方式被改变的判定。在联网系统中的硬件和软件可能是私有的。这可能需要对于诸如在操作系统映像被调用或启动之前对其进行鉴别的功能的支持。在非私有系统上,用户可运行任何他们选择的软件。在私有系统上,软件由系统构造者所控制。系统可能是开放源码的,但是私有的。
网络还可被用于分发内容,例如要被保护以免于未授权的访问和使用的软件、音频和视频。此外,网络还可被用于支付系统。所有这些分发功能依赖于在计算机系统中提供安全机制以确保不会发生对代码或数据的未授权的访问。
可为安全性提供确保初始操作系统映像未被篡改的硬件机制。然而,一旦系统被启动,安全机制的完整性就依赖于操作系统的安全性。然而,操作系统可能是不可靠的,有些操作系统需要以高达一星期一次的频率进行安全修复。这些不断发现的安全缺口是未授权的第三方访问代码的机会窗口。
其他的传统系统以两种方式中的一种提供基于硬件的安全功能。第一种是计算机系统中单独的安全芯片,其能够提供鉴别、加密、和密钥管理功能,例如由可靠计算联盟(TCATM)所规定的。此种单独芯片具有一个好处,即其接口协议可被限定为这些安全功能。这可使得在此种芯片上发起软件攻击变得非常困难。另一方面,因为该芯片独立于微处理器,所以监视接口及规避协议会相对容易。因此,例如,这类机制不会为实现安全引导功能提供好的保护,因为所鉴别的操作系统映像可相对容易地被替代。
安全硬件的另一种传统实现包括集成在处理器中的安全单元,其可能例如被连接到处理器输入/输出(I/O)或存储器接口。这些集成的安全设备在处理器芯片上提供鉴别和/或加密功能。这种安排具有一个好处,即在处理器和此单元之间的接口不容易被监视,且因此提供比单独的安全芯片更高的保护程度。然而,这一安排的一些缺点是该单元会占据处理器芯片上大量的硅面积,这种芯片通常以远为更加昂贵的技术来实现,并且如果这样的一个单元以合理的成本(面积)来实现,则其只能提供基本的功能。换句话说,该单元一般不是可编程的,且它所能提供的安全功能是有限的。第三个限制是如果操作系统受到损害,则在片上总线上的通信可被监视。
因此,存在对基于硬件的安全机制的需要,此安全机制克服了传统的基于硬件的安全机制的至少某些缺点。
发明内容
本发明为了鉴别代码或数据而通过对连接到一处理器的局部存储器进行划分和解除划分,针对安全功能提供对该处理器的动态配置。局部存储器被划分为隔离的和非隔离的区域。代码或数据被加载到所述隔离的区域。在所述局部存储器的隔离区域中对代码或数据进行鉴别。在一个方面,所述代码或数据还被解密。在另一个方面,在隔离状态中处理器诸接口被禁止。
根据本发明的一个方面,提供了一种用于安全地加载和执行应用的方法,包括以下步骤:将一附连的处理器复合体(APC)转换为隔离状态,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包含:被配置为存储计算机指令和数据的局部存储器,以及连接到所述局部存储器的附连的处理器单元,且其中将所述附连的处理器复合体转换为隔离状态是通过响应于接收到来自所述主处理单元的加载命令将所述局部存储器划分为通用访问区域和只可由所述附连的处理器单元访问的隔离访问区域来完成的;将一加载映像加载到所述隔离访问区域中;对所述隔离访问区域中的所述加载映像进行鉴别;如果所述加载映像被成功鉴别,则执行所述加载映像;清除所述加载映像;以及当所述加载映像的所述执行以及所述清除完成之后,将所述附连的处理器复合体返回到已清除加载映像的非隔离状态。
根据本发明的另一个方面,提供了一种用于在局部存储器的动态分配的分区中鉴别代码或数据的系统,该系统包括通过处理器总线连接到主处理单元的附连的处理器复合体,该附连的处理器复合体包含:局部存储器,其中所述局部存储器被配置为响应于来自所述主处理单元的加载命令被划分为非隔离区域和只可由附连的处理器单元访问的隔离区域;加载和退出状态机,其可用于将所述代码或数据加载到所述局部存储器的隔离区域,所述加载和退出状态机进一步可用于对所述局部存储器的所述隔离区域的内容进行鉴别;以及附连的处理器单元(APU),其被连接到所述局部存储器,所述APU被配置为执行所述局部存储器中被鉴别的代码。
根据本发明的又一个方面,提供了一种用于为了代码或数据的鉴别而动态划分和解除划分附连的处理器复合体的局部存储器的方法,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包括被配置为存储计算机指令和数据的所述局部存储器,以及连接到所述局部存储器的附连的处理器单元,该方法包括以下步骤:将所述局部存储器划分为非隔离区域和只可由所述附连的处理器单元访问的非隔离区域;将代码或数据加载到所述隔离区域;以及鉴别所述局部存储器的所述隔离区域中的所述代码或数据。
根据本发明的再一个方面,提供了一种用于为了鉴别代码或数据而动态地划分附连的处理器复合体的局部存储器的装置,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包括被配置为存储计算机指令和数据的所述局部存储器,以及连接到所述局部存储器的附连的处理器单元,所述装置包括:用于将所述局部存储器划分为非隔离区域和只可由所述附连的处理器单元访问的隔离区域的装置;用于将代码或数据加载到所述隔离区域的装置;以及用于鉴别所述隔离区域中的代码或数据的装置。
附图说明
为了更完全地理解本发明及其优点,现在参考结合附图的下述详细说明,其中:
图1示意性地表示一系统,在该系统中要被鉴别或解密的代码或数据的隔离发生在局部存储器中;以及
图2示出如由附连的处理器单元(APU)发起的隔离和非隔离状态之间的转换的状态图。
具体实施方式
在下述讨论中,阐述了许多特定细节以提供对本发明的完全的理解。然而,本领域的技术人员将理解本发明可没有这些特定细节而实施。在其他情况中,以示意图或方框图的形式示出了众所周知的部件,以便不会把本发明掩蔽在不必要的细节中。此外,在大多数情况下,有关网络通信、电磁通信技术等等的细节已被省略,只要这些细节被认为对获得对本发明的完全理解不是必须的,且被认为是在相关技术领域中的普通技术人员的理解之内。
在本说明的剩余部分中,处理单元(PU)可以是一设备中单独的计算处理器。在这种情况下,PU通常被称作MPU(主处理单元)。该处理单元还可以是根据某种为给定计算设备所开发的方法或算法而共享计算负荷的许多处理单元中的一个。对于本说明的剩余部分,不管MPU是设备中的单独计算部件还是该MPU与其他MPU共享计算部件,所有对处理器的引用都将使用术语MPU,除非另有说明。
进一步指出,除非另有说明,否则此处说明的所有功能既可以在硬件中也可以在软件中,或它们的某种组合中实现。然而,在一个优选实施例中,除非另有说明,否则,这些功能由诸如计算机或电子数据处理器等处理器,依照诸如被编码为执行这些功能的计算机程序代码、软件、和/或集成电路等代码,来执行。
转向图1,公开了一系统100,其用于通过将局部存储器(LS)110划分为隔离区域112和非隔离(通用访问)区域111来对代码进行鉴别。LS 110通过LS总线115被连接到附连的处理器单元(APU)120。一般来说,APU是访问局部存储器,例如LS 110,而不是主存储器或系统存储器(未示出)的处理设备。APU通常被设计为运行特定的命令和例程,这可导致增加的处理速度和效率。
LS 110还通过总线133连接到总线接口单元(BIU)140。一般地,BIU 140起着通过总线127连接的、LS 110和(片上)处理器总线150之间的连接的作用。另外,通过使用BIU 140,APU 120能够发出或接收来自片上总线150的命令或数据。MPU 130由其自己的总线接口单元(未示出)通过总线135连接到片上处理器总线150。
系统100进一步包括加载/退出状态机(LESM)145。LESM 145包含一主密钥。LESM 145在加载状态机命令(也称为加载功能)期间使用该主密钥。在系统100中,加载/退出状态机是BIU 140的一部分。APU控制总线138连接于LESM 145和APU 120之间。一般地,APU控制总线138用于当LESM 145执行加载或退出命令时将这些命令传送给APU 120。这一总线还可以由APU 120用于向LESM 145发出命令(例如EXIT(退出)命令)。在图1中,LS 110、APU 120、及BIU 140的集合以及它们各自的总线可被统称为附连的处理器复合体(APC)180。主密钥不可由其他方式访问,并且对每个系统是唯一的。
一般地,在系统100中,安全处理是在LS 110的隔离区域112内的存储区中实现的。在隔离区域112内的存储区只能由APU 120来寻址。但是,MPU 130可访问通用访问区域111中的存储区,且MPU 130可另外访问APU 120上的诸如外部和内部调试、测试和诊断接口等例程。换句话说,在隔离状态或非隔离状态下MPU 130可向局部存储器中的存储单元发出加载和存储或DMA命令,但是在隔离状态下MPU 130限制于非隔离区域。发向APC 180的命令包括“加载”和“退出”命令,以及各种其他命令,包括启动和停止APC 180及各种用于调试目的的命令。当APC处于隔离状态时,提供对在隔离状态中被保护的APC 180的寄存器文件、外部调试和控制功能或其他状态的直接访问的所有命令被禁止。
隔离区域112可由“加载”命令调用,且可由“退出”命令释放。当发出“退出”命令时,整个LS 110变成通用访问存储器111。加载命令通常由MPU 130发出。退出命令通常由APU 120发出,且在特殊情况下由MPU 130发出。加载命令将LS 110划分为通用访问区域111和隔离区域112。另外,加载命令将代码和/或数据(加载映像)从系统存储器传送到局部存储器110的隔离区域112,并使用主密钥对该代码和数据进行鉴别和/或解密。鉴别和/或解密可由诸如安全散列算法(SHA)、数据加密标准(DES)或Rivest、Shamir和Adleman算法(RSA)等算法和函数来实现,但是本领域的技术人员将理解其他的鉴别和解密函数和算法也在本发明的范围之内。
如果应用的加载映像被成功鉴别,则LESM 145在隔离区域中被加载的映像内的一个地址开始APU 120的执行。退出命令清除LS 110和APU120内部的状态信息,并将LS 110解除划分为通用访问区域111。
隔离区域112将对隔离区域112中的敏感数据和代码的访问限制于从APU 120发出的命令。一般地,划分为隔离区域112避免了APU 120之外的任何其他设备复制、修改或以其他方式损坏存储在隔离区域112中的任何代码或信息。在LS 110中的处理避免了否则将由操作系统在通用存储器中执行的处理。此外,在LS 110的隔离区域112中处理敏感代码避免了该代码被系统100内或外部的其他设备复制或损坏的可能性,即使控制系统100的操作系统已受到损害。
如果所加载代码的鉴别是成功的,如由加载功能和命令所确定的那样,则随后调用/执行LS 110的隔离区域中的代码映像。然后,该代码映像可向系统提供进一步的安全功能,如加密、解密、鉴别、操作系统的验证(例如,在系统引导期间或在从体眠状态返回之后)、密钥管理等。
在一个实施例中,代码部分被加载到隔离区域112,并被鉴别。然后,使用主密钥从代码或相关数据部分提取和解码/解密一密钥。然后,在隔离区域112中擦除主密钥,且将控制转到已加载的代码,以完成“加载”功能。然后,可以分段地将第二应用加载到隔离区域112中,并利用由原始代码部分解密而来的已解密密钥对其进行鉴别。换句话说,加载命令通过实现密钥生成和提取机制,如被加载映像的一个部分的解密,来提供对所加载应用的鉴别。使用已解密密钥以对应用进行鉴别,而不是对于所有鉴别使用主密钥,可导致该系统内主密钥的较少的暴露。除了提供对主密钥的增加的一级保护之外,这一过程还以软件而不是硬件实现第二个加载功能,由此为用于加载安全应用的鉴别和/或解密算法提供了附加的灵活性和性能。这样,使用借助于主密钥被解密的已解密密钥来验证和鉴别安全应用。
在代码映像被鉴别并完成执行之后,APU 120发出退出命令。由退出命令调用的退出功能是LS 110的隔离区域112可被释放以与通用访问区域111相连续地使用的唯一途径。该退出命令还在将隔离区域释放到通用访问区域111之前擦除隔离区域112中的所有信息。即使系统100中的处理在其他方面处于停止、暂停或异常中止情况下,也可以进行擦除。在后一种情况下,退出功能通常由MPU 130调用。
在系统100中,退出功能通常由APU 120调用。然而,一旦被调用,退出命令的各子例程自动执行。换句话说,在隔离区域112中的存储区、APU 120中的寄存器文件等的清除在发出退出命令之后自动进行。此外,如果APU 120处于非隔离状态,退出命令也可被调用,在这种情况下,退出命令起高速LS 110初始化工具的作用。
在一个实施例中,如果代码验证和鉴别处理被认为是符合要求的,则加载功能通过发起所加载代码映像的执行来完成它的操作。然而,如果验证处理被认为是不符合要求的,则APU 120维持局部存储器110中的隔离区域112。这样,APU 120被认为处于不可恢复的停止情况下的隔离状态,图2中的状态250。在这一时刻,可由MPU 130随后发出一个新的加载请求或退出请求。
在一个实施例中,使用一隔离使能位以启动系统100的加载功能和其他属性。也就是说,如果这一位被置为1,则接受加载命令的能力被启用。如果该隔离使能位被置为0,则系统100不能发起隔离部分112的创建。然而,不管该非易失的隔离使能位的设置如何,退出功能可以都是可用的。这使得退出命令能被用作方便的LS 110初始化工具。
在又一实施例中,在发出加载或退出命令之前,在先的APU 120代码和相关的直接存储器访问数据传送操作由运行在APU 120中的任何代码完全完成。在再一实施例中,利用片上一致性总线(coherent bus)将多个APU 120与通用微处理器例如MPU 130组合在一起。在这一实施例中,操作系统运行在通用微处理器例如MPU 130上,且各APU 120可由操作系统动态配置以提供或者安全功能或者其他任务。也就是说,当需要安全功能(即,所述隔离有效使能位等于1)时,各APU 120可被动态配置为可编程安全协处理器。然而,各APU 120还可在其他时间在非隔离模式下使用以用于其他任务。这通过支持加载和退出功能来支持安全功能。
在又一实施例中,系统100具有多个附连的处理器复合体(APC)180。每个APC 180按照由MPU 130所决定的那样执行其自己的加载和退出转换。
现在转到图2,其公开了一状态图200。在开始转换210发生之后,随后该状态图前进到非隔离状态220或隔离状态230,这依赖于初始系统配置。为了清楚起见,状态图200被描述为首先前进到状态220。但是,本领域的技术人员会理解状态图200既可步入状态220也可步入状态230。
在状态220中,LS 110不具有隔离区域112。相反,整个LS 110处于通用访问状态111。APC 180称作处于非隔离状态。一般地,这意味着APC 180尚未被命令在LS 110内创建隔离区域112。
然后,为了按情况启动安全加载器或安全应用,MPU 130发出加载命令。在转换240中,通过使用主密钥值,对包括代码和/或数据的加载映像进行加载、鉴别和/或解密。解密可被用于生成至少一个已解密密钥,其反过来可被用于验证存储在隔离区域112中的其他代码。在任何情况下,如果验证过程是符合要求的,则加载功能启动已加载代码映像的执行。在一个实施例中,这一代码是安全加载器,其负责使用如上所述的第二密钥加载安全应用。然而,在另一实施例中,该代码可以是其自身要是安全的应用,如支付系统、解密、鉴别、密钥管理等。
在到状态230的转换中,在由APU 120发出加载命令之后,但在代码的鉴别之前,任何在APU 120上的指令处理都已被中止。同样,在到状态230的转换过程中,MPU 130写入LS 110的隔离区域112的请求被APU 120忽视,且发自MPU 130的读取LS 110的隔离区域112的请求返回零值或另一常量。LS 110的隔离区域112被创建(对其的访问被限制于只有APU 120发起的加载/存储命令或指令获取)。对所有APU 120调试/测试/诊断接口的访问被禁止。LS 110的非隔离/通用访问区域111保持与当APU 120未发出用于隔离区域112的划分命令时相同的访问权限。此外,当至少LS 110的部分处于隔离状态时,APU 120异步中断被禁止。
在到状态230的转换中,通常访问一些APU 120的外部可访问寄存器以获得64位直接存储器访问地址。该64位直接存储器访问地址对应于要被加载到APU 120的隔离区域112的代码的映像的指定点。在找到要被鉴别和/或解密的代码和/或数据之后,LS 110的隔离区域112被要被鉴别和/或解密的代码和/或数据所盖写。
然而,如果已加载的代码和/或数据未获得鉴别,则到达状态250,且中止已下载代码的进一步鉴别。如果存在鉴别的失败,如在状态250中那样,则向MPU 130通知鉴别的失败,同时APU 120保持在隔离状态,且LS 110保留隔离区域112。在一个实施例中,由停止和信号通知命令来实现MPU 130的通知。但是,即使在被通知鉴别失败之后,MPU 130也不能通过被发给APU 120的命令访问存储在隔离区域112中的代码。
然而,如果加载映像被鉴别,则在状态230中隔离区域112中的代码映像的执行完成之后,APU 120发出一退出命令。通常的安全应用可以是鉴别、加密、或解密功能,如用于例如安全套接字层(SSL)协议、安全密钥管理、电子支付管理、“虚拟货币”的存储、操作系统映像的定期验证等中的那样。换句话说,安全应用可被一般地定义为在其中应用的安全性和完整性是重要的应用。
在一个实施例中,APU 120执行已鉴别的代码。在APU 120发出退出命令之后,所有的APU 120寄存器和LS 110的隔离区域112被擦除或盖写。可以这样做以确保不会有先前在隔离区域112中的代码在任何设备的激励下被访问。当退出过程完成时,对LS 110的访问是不受限制的,且对APU 120调试/测试/诊断接口的访问被重新启用。最后,当APU 120通知MPU 130时,到APU 120的非隔离状态的转换完成。这可依靠暂停APU 120且信号通知MPU 130的指令来实现。
但是,在进入停止状态250后,MPU 130可向APC 180发出退出命令。退出命令导致释放隔离区域112,且步入状态220。或者,在停止状态250中,MPU 130可向APC 180发出另一加载命令,借此载入其他的或不同的要被鉴别的代码。
可以理解,本发明可以采用许多形式和实施方式。因此,可以在前面的描述中做出若干变化而不背离本发明的精神或范围。此处略述的能力允许多种编程模式的可能性。本公开不应被理解为优选任何特定的编程模式,而是针对于可在其上构造这些编程模式的基础机制。
已通过参考本发明的某些优选实施例对本发明这样进行了描述,应指出,所公开的实施例在实质上是示例性的而不是限制性的,且各种各样的变化、修改、改造和替换都在上述公开的考虑之内,并且在一些实例中,可以使用本发明的某些特征而不相应地使用其他特征。依据对上述优选实施例的说明的审阅,本领域的技术人员可能认为许多这种变化和修改是所希望的。因此,所附权利要求应被宽泛地且以与本发明的范围相一致的方式来解释。

Claims (19)

1.一种用于安全地加载和执行应用的方法,包括以下步骤:
将一附连的处理器复合体转换为隔离状态,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包含:被配置为存储计算机指令和数据的局部存储器,以及连接到所述局部存储器的附连的处理器单元,且其中将所述附连的处理器复合体转换为隔离状态是通过响应于接收到来自所述主处理单元的加载命令将所述局部存储器划分为通用访问区域和仅可由所述附连的处理器单元访问的隔离访问区域来完成的;
将一加载映像加载到所述隔离访问区域中;
对所述隔离访问区域中的所述加载映像进行鉴别;
如果所述加载映像被成功鉴别,则执行所述加载映像;
清除所述加载映像;以及
当所述加载映像的所述执行以及所述清除完成后,将所述附连的处理器复合体返回到已清除加载映像的非隔离状态。
2.权利要求1的方法,进一步包括在将所述加载映像加载到所述隔离访问区域中之后对所述加载映像的至少一部分进行解密。
3.权利要求1的方法,进一步包括如果所述加载映像的鉴别失败,则将所述附连的处理器复合体停止在所述隔离状态中,并将鉴别失败信号通知所述主处理单元。
4.权利要求1或2的方法,其中所述附连的处理器复合体存储有不可从外部访问的主密钥;且其中,所述鉴别和/或解密操作是使用所述主密钥完成的。
5.权利要求1的方法,其中所述将附连的处理器复合体转换为隔离状态是通过禁止所述附连的处理器单元上的普及的和/或调试接口来实现的。
6.一种用于在局部存储器的动态分配的分区中鉴别代码或数据的系统,该系统包括通过处理器总线连接到主处理单元的附连的处理器复合体,该附连的处理器复合体包含:
局部存储器,其中所述局部存储器被配置为响应于来自所述主处理单元的加载命令被划分为非隔离区域和仅可由附连的处理器单元访问的隔离区域;
加载和退出状态机,其可用于将所述代码或数据加载到所述局部存储器的隔离区域,所述加载和退出状态机进一步可用于对所述局部存储器的所述隔离区域的内容进行鉴别;以及
附连的处理器单元,其被连接到所述局部存储器,所述附连的处理器单元被配置为执行所述局部存储器中被鉴别的代码。
7.权利要求6的系统,其中所述附连的处理器单元进一步被配置为通过禁止其普及的和/或调试接口而被转换为隔离状态。
8.权利要求6的系统,其中所述附连的处理器单元进一步被配置为在发出一局部存储器解除隔离命令之前,清除所述局部存储器的所述隔离区域的内容。
9.权利要求6的系统,其中所述加载和退出状态机存储有不可从外部访问的主密钥;且所述对所述局部存储器的所述隔离区域的内容进行鉴别是使用所述主密钥完成的。
10.根据权利要求9的系统,其中所述附连的处理器复合体进一步被配置为使用所述主密钥对所述局部存储器的所述隔离区域的内容或其一部分进行解密,从而生成另一密钥,以及使用所述另一密钥验证和/或解密另一组计算机指令和/或数据。
11.一种用于为了代码或数据的鉴别而动态划分和解除划分附连的处理器复合体的局部存储器的方法,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包括被配置为存储计算机指令和数据的所述局部存储器,以及连接到所述局部存储器的附连的处理器单元,该方法包括以下步骤:
将所述局部存储器划分为非隔离区域和仅可由所述附连的处理器单元访问的隔离区域;
将代码或数据加载到所述隔离区域;以及
鉴别所述局部存储器的所述隔离区域中的所述代码或数据。
12.权利要求12的方法,其中所述局部存储器的所述划分是由一加载命令发起的。
13.权利要求13的方法,其中所述加载命令是由一主处理器单元发出的。
14.权利要求12的方法,进一步包括执行在所述局部存储器的隔离区域中的已鉴别的代码或数据。
15.权利要求15的方法,进一步包括在执行所述已鉴别的代码之后擦除所述局部存储器的隔离区域中的代码或数据。
16.权利要求16的方法,进一步包括将所述局部存储器解除划分为非隔离状态。
17.权利要求17的方法,其中所述解除划分是通过执行退出命令来启动的。
18.权利要求12的方法,进一步包括:
使用主密钥从所述已加载的代码中解密出至少一个已解密密钥;
利用所述至少一个已解密密钥对其他已加载的代码或数据进行解密。
19.一种用于为了鉴别代码或数据而动态地划分附连的处理器复合体的局部存储器的装置,其中该附连的处理器复合体通过处理器总线连接到主处理单元,并包括被配置为存储计算机指令和数据的所述局部存储器,以及连接到所述局部存储器的附连的处理器单元,所述装置包括:
用于将所述局部存储器划分为非隔离区域和仅可由所述附连的处理器单元访问的隔离区域的装置;
用于将代码或数据加载到所述隔离区域的装置;以及
用于鉴别所述隔离区域中的代码或数据的装置。
CNB2004100481582A 2003-06-23 2004-06-16 鉴别代码和/或数据的方法和系统 Expired - Fee Related CN100375422C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/601,374 2003-06-23
US10/601,374 US8838950B2 (en) 2003-06-23 2003-06-23 Security architecture for system on chip

Publications (2)

Publication Number Publication Date
CN1574730A CN1574730A (zh) 2005-02-02
CN100375422C true CN100375422C (zh) 2008-03-12

Family

ID=34079539

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100481582A Expired - Fee Related CN100375422C (zh) 2003-06-23 2004-06-16 鉴别代码和/或数据的方法和系统

Country Status (3)

Country Link
US (1) US8838950B2 (zh)
JP (1) JP4288209B2 (zh)
CN (1) CN100375422C (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7475257B2 (en) 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US8176564B2 (en) * 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
JP4596247B2 (ja) * 2005-01-31 2010-12-08 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
JP4600750B2 (ja) * 2005-01-31 2010-12-15 ソニー株式会社 データ処理回路、データ処理装置、データ処理方法、データ処理制御方法、データ処理プログラム及びデータ処理制御プログラム
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8468361B2 (en) * 2005-09-21 2013-06-18 Broadcom Corporation System and method for securely provisioning and generating one-time-passwords in a remote device
US20070180271A1 (en) * 2006-02-02 2007-08-02 Ibm Corporation Apparatus and method for providing key security in a secure processor
US8438658B2 (en) * 2006-02-02 2013-05-07 International Business Machines Corporation Providing sealed storage in a data processing device
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US20070288739A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for masking a boot sequence by running different code on each processor
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288740A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for secure boot across a plurality of processors
US8108905B2 (en) * 2006-10-26 2012-01-31 International Business Machines Corporation System and method for an isolated process to control address translation
US8364975B2 (en) * 2006-12-29 2013-01-29 Intel Corporation Methods and apparatus for protecting data
US8307426B2 (en) * 2007-01-26 2012-11-06 Mips Technologies, Inc. Systems and methods for controlling the use of processing algorithms, and applications thereof
US7913074B2 (en) * 2007-09-28 2011-03-22 Microsoft Corporation Securely launching encrypted operating systems
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
US8819839B2 (en) * 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US9424712B2 (en) * 2008-06-27 2016-08-23 Bally Gaming, Inc. Authenticating components in wagering game systems
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
KR101682092B1 (ko) * 2009-11-12 2016-12-05 삼성디스플레이 주식회사 박막 트랜지스터 표시판 및 이를 포함하는 액정 표시 장치
US8424100B2 (en) * 2010-03-29 2013-04-16 Motorola Solutions, Inc. System and method of vetting data
US8954490B2 (en) 2010-06-24 2015-02-10 International Business Machines Corporation Speculative and coordinated data access in a hybrid memory server
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US9177177B1 (en) * 2012-10-04 2015-11-03 Symantec Corporation Systems and methods for securing storage space
US9164694B1 (en) * 2013-06-19 2015-10-20 Western Digital Technologies, Inc. Data storage device detecting read-before-write conditions and returning configurable return data
US9071581B2 (en) * 2013-09-23 2015-06-30 Nvidia Corporation Secure storage with SCSI storage devices
US10237073B2 (en) 2015-01-19 2019-03-19 InAuth, Inc. Systems and methods for trusted path secure communication
US11115205B2 (en) 2016-09-29 2021-09-07 Nokia Technologies Oy Method and apparatus for trusted computing
KR20210016764A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 시스템 온 칩
CN110704362B (zh) * 2019-09-12 2021-03-12 无锡江南计算技术研究所 一种处理器阵列局部存储混合管理方法
KR20210069473A (ko) 2019-12-03 2021-06-11 삼성전자주식회사 사용자에 대한 인증을 통해 유저 데이터에 대한 권한을 부여하는 시큐리티 프로세서 및 이를 포함하는 컴퓨팅 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501354A (ja) * 1994-06-01 1998-02-03 クワンタム・リープ・イノヴェーションズ・インコーポレーテッド コンピュータ・ウィルス・トラップ装置
WO2001006374A2 (en) * 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
WO2001075595A2 (en) * 2000-03-31 2001-10-11 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
WO2002101504A2 (en) * 2001-06-08 2002-12-19 Hewlett-Packard Company Secure machine platform that interfaces to operating systems and customized control programs
CN1423766A (zh) * 2000-02-17 2003-06-11 通用仪器公司 提供安全控制软件或固件代码下载和接收下载代码的计算装置的安全操作的方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1013023B1 (en) 1997-02-13 2005-10-26 Walter A. Helbig, Sr. Security coprocessor for enhancing computer system security
US6275938B1 (en) 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
US7082615B1 (en) * 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6769062B1 (en) * 2000-10-25 2004-07-27 Ericsson Inc. Method and system of using an insecure crypto-accelerator
CA2426794C (en) 2000-11-06 2009-10-06 International Business Machines Corporation Method and system for processing a request of a customer
US7346928B1 (en) 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
GB2371125A (en) 2001-01-13 2002-07-17 Secr Defence Computer protection system
EP1329787B1 (en) * 2002-01-16 2019-08-28 Texas Instruments Incorporated Secure mode indicator for smart phone or PDA
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US20030226014A1 (en) * 2002-05-31 2003-12-04 Schmidt Rodney W. Trusted client utilizing security kernel under secure execution mode

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501354A (ja) * 1994-06-01 1998-02-03 クワンタム・リープ・イノヴェーションズ・インコーポレーテッド コンピュータ・ウィルス・トラップ装置
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
WO2001006374A2 (en) * 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
CN1423766A (zh) * 2000-02-17 2003-06-11 通用仪器公司 提供安全控制软件或固件代码下载和接收下载代码的计算装置的安全操作的方法和装置
WO2001075595A2 (en) * 2000-03-31 2001-10-11 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
WO2002101504A2 (en) * 2001-06-08 2002-12-19 Hewlett-Packard Company Secure machine platform that interfaces to operating systems and customized control programs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
单片机构成多处理器在LED矩阵显示中的应用. 辛阳,陈曙,李庆利.单片机与嵌入式系统应用,第9卷. 2001 *

Also Published As

Publication number Publication date
JP2005018770A (ja) 2005-01-20
CN1574730A (zh) 2005-02-02
US20050021944A1 (en) 2005-01-27
JP4288209B2 (ja) 2009-07-01
US8838950B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
CN100375422C (zh) 鉴别代码和/或数据的方法和系统
CN106462708B (zh) 认证变量的管理方法和装置
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
RU2444783C2 (ru) Архитектура виртуального модуля безопасности
US8332653B2 (en) Secure processing environment
US8909940B2 (en) Extensible pre-boot authentication
US8572410B1 (en) Virtualized protected storage
EP1964316B1 (en) Secure system-on-chip
US20070180271A1 (en) Apparatus and method for providing key security in a secure processor
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
US20060026417A1 (en) High-assurance secure boot content protection
DK1964016T3 (en) Secure System-on-Chip
CN100432890C (zh) 计算机开机身份认证系统及其认证方法
EP1429224A1 (en) Firmware run-time authentication
WO2003090051A2 (en) Protection against memory attacks following reset
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
US11531626B2 (en) System and method to protect digital content on external storage
US20080104711A1 (en) System and method for an isolated process to control address translation
JP4591163B2 (ja) バスアクセス制御装置
US20230114687A1 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
WO2017163204A1 (en) A memory management system and method
US10592663B2 (en) Technologies for USB controller state integrity protection
US20190042800A1 (en) Technologies for authenticated usb device policy enforcement
JP7287115B2 (ja) 集積回路及び集積回路の制御方法
CN113343265B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080312

Termination date: 20200616

CF01 Termination of patent right due to non-payment of annual fee