CN101755269B - 具有安全虚拟机的设备 - Google Patents
具有安全虚拟机的设备 Download PDFInfo
- Publication number
- CN101755269B CN101755269B CN2008800251892A CN200880025189A CN101755269B CN 101755269 B CN101755269 B CN 101755269B CN 2008800251892 A CN2008800251892 A CN 2008800251892A CN 200880025189 A CN200880025189 A CN 200880025189A CN 101755269 B CN101755269 B CN 101755269B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- processor
- program
- identifier
- equipment
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Abstract
本发明提供了一种安全计算设备(100),包括具有密钥生成单元(124)的安全密码模块(120),所述密钥生成单元(124)用于根据接收的输入来生成密码密钥。存储器(140)用于存储在处理器(110)上可执行的虚拟机(142)以及在虚拟机上可执行的至少一个程序(144)。虚拟机管理器(130)包括:用于确定与所述虚拟机相关联5的标识符的装置(132);用于向所述安全密码模块提供所述标识符的表示并且从所述安全密码模块检索密码密钥的装置(134);以及用于在所述处理器执行所述虚拟机时,在所述密码密钥的控制下,对输入至所述处理器的至少一部分数据进行解密并且对从所述处理器输出的至少一部分数据进行加密的装置(136)。
Description
技术领域
本发明涉及具有安全虚拟机的设备。
背景技术
在计算设备的环境中,安全性仍具有重要性。虽然这一主题曾一度仅与服务器相关,现在其已经经由台式机向所有类型的基于处理器的设备扩展。计算元件变得小、分散、无人监督、以及在物理上暴露。除了传统计算机之外,现今的很多设备包括其软件可以改变的处理器。例如,PDA、智能电话以及卫星导航设备可以下载可以在该设备的操作系统上运行的应用程序。同时,随着供应商的数量增加,在给定设备上运行的应用的数量正在增加,这使得更难以将与安全级别相关的事务认为是确定的。相对于运行越来越多软件的不同安全敏感平台的数量增长的背景,不利因素正在增加。一些应用还可以对受保护的内容进行操作,例如音轨、电影、有声读物等等。由于将更敏感的信息和责任放在设备上,安全漏洞的代价正在增长。典型地,使用数字权利管理(DRM)系统来保护这种内容。在音乐和/或视频下载中使用的常见DRM应用,如Windows Media DRM或者Apples Fairplay,对消费者施加使用规则,例如可以在哪种类型或数量的平台上呈现内容;可以呈现内容的最大持续时间;对可以进行复制的次数的限制,等等。实现这种DRM系统(提供软件媒体播放器或者具有这种媒体播放器的便携式设备)的公司不得不同意典型地需要最小安全级别的健壮性规则,以确保例如不能用简单的手段来破坏这种实现。当安全性被破坏时,可以存在严厉的惩罚。
通常,由于攻击者具有对操作系统和应用(如DRM播放器或者移动代理)的完全控制,因此可以绕过保护。为了解决这些新出现的威胁,已经做出大量的努力来建立安全计算平台,该安全计算平台使得用户能够对平台及其软件进行认证。来自Trusted Computing Group的可信平台模块(Trusted Platform Module)、来自微软的下一代安全计算库(Next Generation Secure Computing Base)、以及来自ARM的TrustZone都并入了认证机制。如果在这些安全平台上实现DRM机制,则内容提供商可以仅针对执行可信DRM软件的特定设备来对其保护的内容进行加密。尽管这些系统可以检测篡改操作系统或者用户应用的攻击,但是它们不能抵御物理攻击进行,物理攻击对系统中的芯片或者总线进行窃听(tap)或者探测(probe)。在G.Edward Suh等人的“Aegis:A single-chip secure processor”,Information SecurityTechnical report(2005)10,63-73,Elsevier中,介绍了一种称作AEGIS的单芯片安全处理器。除了用于认证平台和软件的机制之外,处理器并入了用于保护应用的完整性和隐私性免受物理攻击以及软件攻击的机制。两个关键原语,即物理随机函数(通常称作PUF)以及芯片外存储器保护,实现了系统的物理安全性。AEGIS处理器通过在执行程序前保护该程序、在执行期间保护该程序以及在处理器模式转换期间保护该程序,来屏蔽软件和物理攻击。当应用刚开始运行时,处理器使用程序散列处理技术来验证该程序在未受保护的存储器中没有受到破坏。在执行期间,处理器使用完整性验证、存储器加密以及接入许可检查来保证在四种不同的安全执行模式下的安全性。对于存储器加密,AEGIS处理器使用通过选择随机加密/解密密钥来确定的一次性密码本(one-time-pad)加密方案。AEGIS处理器还允许用户认证处理器和软件。为此,每一个处理器具有使用PUF安全嵌入的唯一秘密密钥。例如,每一个处理器可以具有其自己的私有密钥,该私有密钥相对应的公共密钥对用户已知。然后,处理器可以用私有密钥来对消息进行签名以向用户认证它自己。为了支持软件认证,处理器将程序散列与数字签名(如在微软NGSCB或TPM中)相结合。当操作系统启动并且进入安全执行模式时,处理器计算操作系统的可信部分(称作安全内核)的密码散列。在安全的芯片上寄存器中存储该程序散列,并且在签名中始终包括该程序散列。因此,当用户验证来自处理器的签名时,他们知道该消息是来自在特定处理器上运行的特定安全内核。安全内核通过当用户应用进入安全计算模式时计算它们的散列来向用户应用提供相同的认证机制。
另一种使遵循安全性要求更容易的方案是虚拟化。在实际机器中创建运行一个或者更多安全敏感应用的“虚拟机”(VM)。单一CPU上支持的虚拟机的数量可以变化,例如可以为每一个用户创建相应的VM,或者为每一个应用、或者甚至为应用的部分创建相应的VM。通过使用VM来增加安全性的基础思想是将安全问题包含在所涉及的虚拟机中。将恶意程序部分(例如应用)限制在虚拟机中,在虚拟机内执行该恶意程序部分并且不会影响所涉及的VM之外的任何程序部分。一个众所周知的虚拟机是Java。Java应用在沙盒(sandbox)中运行,沙盒对Java应用进行屏蔽以免受运行在该设备上的其它虚拟机影响。
但是,即使使用虚拟化,依然存在问题。首先,运行在VM内的应用可能尝试“闯出”。由于虚拟化软件中的缺陷,或者由于可能固有地难以虚拟化的平台的特征(例如,可能难以对特定共享硬件组件进行虚拟化,如I/O端口),使得这种情况可能发生。第二个问题是,出于法律和责任的原因,必须对虚拟化的质量给予保证,这对于大型软件程序来说较为困难。最后,创建完全安全的虚拟机是困难和昂贵的。
发明内容
提供一种所述类型的具有增强安全性的系统和方法将是有利的。
为了更好的解决该问题,在本发明的第一方面中,一种安全计算设备包括:
-安全密码模块,包括输入、用于根据接收的输入来生成密码密钥的密钥生成单元以及用于产生密码密钥的输出;
-处理器;
-存储器,包括在处理器上可执行的虚拟机,以及在虚拟机上可执行的至少一个程序;以及
-虚拟机管理器,包括:用于确定与虚拟机相关联的标识符的装置、用于向安全密码模块提供所述标识符的表示并且从安全密码模块检索密码密钥的装置、以及用于在处理器执行虚拟机时在密码密钥的控制下对输入至处理器的至少一部分数据进行解密并且对从处理器输出的至少一部分数据进行加密的装置。
根据本发明,确定依赖于与虚拟机相关联的标识符的密码密钥。这将对数据的密码操作绑定至虚拟机。因此,不容易在虚拟机外部使用在虚拟机执行期间离开处理器的加密数据。这种加密对于虚拟机是专一性的(virtual machine-specific)。因此,由于加密数据仅在虚拟机内可直接使用,因此,对从虚拟机闯出的尝试变得不那么重要。因此,更加限制了虚拟机中的漏洞的影响。
在实施例中,密钥生成单元包括物理不可复制函数(PUF)。对PUF的输入与虚拟机相关联。因此,PUF将密码密钥和用该密钥加密的数据绑定至虚拟机。由于PUF是不可复制的并且是高度防篡改的,对安全数据的复制变得无用。在没有原始PUF的情况下,对复制的内容项的操作将不产生所需结果。
在实施例中,所述标识符是从至少虚拟机本身和/或程序中导出的。该标识符可以直接基于虚拟机,例如使用虚拟机的标识符或者确定虚拟机的散列。通过至少部分地从程序中导出标识符,将PUF绑定至程序应用本身。这使得对程序的复制或者篡改更加困难得多。该程序可以是应用程序,但是也可以是操作系统或者操作系统的一部分。该程序与虚拟机相关联,并且因此从该程序导出的标识符也与虚拟机相关联。通过将该标识符绑定至程序,恶意方将不容易闯出程序的环境,并且由于程序被设计为在特定虚拟机上运行,该程序还不容易在另一个虚拟机上使用。
在实施例中,该设备包括多个程序;每一个程序在虚拟机上可执行并且对数据存储器中存储的相关联数字内容项进行操作;并且虚拟机管理器被配置为根据程序和/或与程序相关联的数字内容项来导出标识符的表示,使得标识符的表示对程序是唯一的。该程序对存储器中存储的数字内容进行操作。具体地,该数字内容可以是受保护的内容,如使用DRM系统保护的音频/视频。然后,该程序可以是播放器。通过确保标识符依赖于程序本身和/或内容,使标识符对程序是唯一的。因此,可以将程序以及内容(如果需要)绑定至虚拟机。可以以仅当在相关联的虚拟机上运行时可以解密的形式对内容(或者其部分)进行加密。
在实施例中,安全计算设备在被配置为执行与虚拟机相关联的多个过程的操作系统的控制下进行操作;用于确定标识符的装置被配置为:
-在激活过程的时刻确定会话标识符,其中会话标识符对所述过程或者与所述过程相关联的程序是唯一的;
-提供会话标识符作为与虚拟机相关联的标识符;
-将安全密码模块生成的输出作为会话密钥与所述过程相关联地进行安全存储;以及
-在激活过程的时间段期间,使用与所述过程相关联地存储的会话密钥作为密码密钥,来对所述过程所操作的数据的至少一部分进行加密/解密。
在这种情形中,对于每一个执行会话分别保护每一个单个过程。因此,分析程序和处理器外部的存储器之间的数据交换以破解加密密钥将不会得到在下一个会话中可使用的密钥。如果需要,会话标识符对于所述过程是其一部分的程序是唯一的,使得具有相同程序的过程可以使用相同的会话标识符,使得在单一程序的过程之间能够容易地进行数据交换。
在实施例中,会话标识符依赖于以下至少一项:过程标识符、随机数或者时间戳。优选地,会话标识符直接依赖于过程,例如通过使用输入至安全密码模块的过程标识符。为了使会话密钥对于每一个会话是唯一的,优选使用其它信息,如时间戳(例如基于激活的时刻)和/或随机数。
在实施例中,所述设备被配置为对处理器对处理器外部的以下单元中的至少一个的访问和来自以下单元中的至少一个的访问进行密码保护:存储器、电子主存储器、程序高速缓存、数据高速缓存、I/O总线、寄存器。通过保护与处理器外部的这些单元中的一个或者更多单元交换的数据,可以选择合适的安全级别。
在实施例中,所述设备包括:用于计算与虚拟机相关联的标识符的散列的装置;密钥生成单元根据所述散列来生成密码密钥。使用散列,使标识符依赖于大量数据变得容易,可以将大量的软件和/或数据绑定至虚拟机。
在实施例中,在相同的防篡改单元中实现虚拟机管理器和处理器。这样保护了处理器和虚拟机管理器之间的明文数据交换。可以将虚拟机管理器制作成与处理器组合在一个防篡改封装中的单独集成电路。然后,可以容易地与不同类型处理器相结合地使用虚拟机管理器。
在实施例中,以软件来实现虚拟机管理器并且将虚拟机管理器配置为在处理器上执行。以软件来实现虚拟机管理器并且在虚拟机管理器所保护的处理器上执行虚拟机管理器,使得固有地更难以截取明文数据。可选地,可以在防篡改封装中实现该处理器。
在实施例中,PUF与虚拟机管理器物理集成。通过将PUF与虚拟机管理器物理集成,建立增强PUF所生成的密钥与虚拟机管理器之间的结合的物理联系。
在实施例中,在半导体设备上实现虚拟机管理器并且在半导体设备上集成PUF。通过将PUF集成入半导体设备中,可以实现经济和较强的绑定。在另一个实施例中,PUF是光类型或者电子类型的。使用电子PUF是非常经济的,由于它们不需要附加处理步骤。使用集成在半导体设备中的光PUF提供了强大的保护。
为了解决该问题,在本发明的另一个方面中,提供了一种对与安全计算设备中的处理器交换的数据进行保护的方法,其中,所述方法包括:
-在处理器中加载虚拟机并且执行虚拟机;
-将在虚拟机上可执行的至少一个程序加载至处理器;
-确定与虚拟机相关联的标识符,
-在安全密码模块中,根据所述标识符的表示来生成密码密钥;以及
-当处理器执行虚拟机时,在密码密钥的控制下,对输入至处理器的至少一部分数据进行解密并且对从处理器输出的至少一部分数据进行加密。
参照下文中描述的实施例,本发明的这些和其它方面将变得显而易见并得以阐明。
附图说明
附图中:
图1示出了可以使用本发明的示例系统的框图。
图2以软件分级的形式示出了虚拟机管理器、虚拟机以及程序的作用。
图3示出了密钥生成单元包括PUF的实施例。
图4示出了使用散列的实施例。
图5示出了可以由处理器以密码安全方式访问的、处理器外部的单元。
图6示出了由处理器以软件形式来执行虚拟机管理器的实施例;以及
图7示出了将安全密码模块与处理器物理集成为单一封装的实施例。
具体实施方式
除非另行指出,在图中使用相同的参考标号表示相同的功能。图1示出了示例设备100的框图,在示例设备100中可以使用本发明。该设备用于安全地执行计算机程序。可以在虚拟机上执行程序。虚拟机(如Java)是众所周知的,因此虚拟机不是本发明的主题。在存储器140中存储程序(程序)144和相关联的虚拟机(VM)142。可以使用任何合适的存储器,如硬盘、光存储器(例如CD、DVD、蓝光碟、或者HD-DVD族)、或者在半导体设备(例如闪存、MRAM、智能卡等等)中嵌入存储器。设备100还包括处理器110。处理器可以是任何合适类型,如在台式计算机、膝上型计算机、服务器、机顶盒中典型使用的处理器。处理器110还可以是如微控制器或者专用信号处理器类型,或者甚至是典型地在较小的游戏机或者便携式设备(如移动电话或者甚至智能卡)中使用的VLIW。在处理器110上可执行虚拟机142。典型地,从存储器140中将虚拟机142加载至主存储器(如RAM)中,然后在处理器110上执行。然后在虚拟机的环境中加载并执行程序144。因此,将程序受限于虚拟机提供的功能。典型地,程序将对数字数据进行操作。可以在相同的数据存储器140中存储数据,但是也可以经由其它硬件装置(如I/O端口)来访问数据。甚至可以从外部设备接收或者向外部设备发送数据。数据本身可以采用任意形式,如文档(例如字处理产生的文档、电子表格、演示)、程序(例如具有源代码、可执行形式或者可解释形式,如Java)、数字音频(例如具有MP3、WMA、AAC格式等等的内容项)、静态图像、视频等等。数据还可以非常小,如在智能卡中存储的信息。然后,数据的内容项可以是使用该数据的一个特定应用程序所需要的信息。例如,智能卡可以包含用于银行、商店、加油站等等的相应内容项(或者内容项的集合)。系统100还包括安全密码模块(SCM)120。如将在下面详细描述的,在优选实施例中,安全密码模块(SCM)120包括物理不可复制函数(PUF)。安全密码模块120包括用于接收质询的输入122以及用于产生对质询的响应的输出126。由根据经由输入122接收的质询/输入来生成密码密钥的密钥生成单元124来计算该响应。原则上,可以使用任何合适的密码密钥生成算法,如在X9.44(Public Key Cryptography for the FinancialServices Industry)中描述的KDF算法(密钥导出函数),其中生成的密钥依赖于输入。安全计算设备100还包括虚拟机管理器(VMM)130。虚拟机管理器130包括用于确定与虚拟机相关联的标识符的装置132。原则上,可以使用任何合适的标识符。在实施例中,标识符从以下至少一项中导出:
-虚拟机本身。例如,可以在数据存储器140中以与虚拟机相关联的方式存储虚拟机标识符。虚拟机标识符可以是单一标识符或者复合标识符。例如,它可以标识一类虚拟机(例如Java)以及版本标识符(例如SE 5.0)。
-程序。程序可以是应用程序,但是也可以是操作系统或者操作系统的一部分。程序与虚拟机相关联并且因此从程序导出的标识符也与虚拟机相关联。通过将它绑定至程序,恶意方不能容易地闯出程序的环境,并且由于程序被设计为在特定虚拟机上运行,程序也不能容易地在另一个虚拟机上使用。基于程序的标识符可以简单地是程序名称的数字表示。还可以用任何合适的方式来建立程序与虚拟机的关联,例如,以文件名扩展的形式(例如.java)。
在实施例中,安全计算设备100包括可以全部存储在存储器140中的多个程序。每一个程序在虚拟机142上可执行并且对数据存储器(例如也存储程序的相同存储器140)中存储的相关联的数字内容项进行操作。虚拟机管理器(更具体地,单元132)被配置为根据程序和/或与程序相关联的数字内容项来导出标识符的表示,使得标识符的表示对于程序是唯一的。
设备100还包括用于向安全密码模块120提供标识符的表示并且从安全密码模块120中检索密码密钥的装置134。可以以非常直接的形式来实现装置134,例如通过简单地将装置132的输出连接至安全密码模块120的输入122并且将该模块的输出126连接至加密/解密单元136来以硬件实现。加密/解密单元136形成用于在处理器执行虚拟机时,在密码密钥的控制下,对输入至处理器的至少一部分数据进行解密并且对从处理器输出的至少一部分数据进行加密的装置。一种合适的加密算法是CTR或CBC模式(计数器模式或者密码块链接模式)中的AES-128。加密/解密单元136还可以执行增加处理器110外的信息的安全性的其它密码技术。例如,可以使用认证,例如在数据存储器中存储基于处理器外的数据来计算的密码数字签名以用于稍后的验证。当使用该数据时,读取并且验证该签名。
在实施例中,在与处理器110分离的组件中实现虚拟机管理器130。然后,可以用硬件、软件或者二者组合的形式来实现虚拟机管理器130。在该实施例中,优选在相同的防篡改单元(如防篡改IC封装)中实现虚拟机管理器和处理器。用于制造防篡改封装的技术是众所周知的。在图5中示出了这种组合并且将在下面参照图5来更详细地进行描述。
在备选实施例中,以软件形式实现虚拟机管理器130,并且将其配置为在处理器110上执行。在图6和7中也示出了该情形,并且将在下面参照图6和7来更详细地进行描述。
图2以软件分级形式示出了图1的虚拟机管理器(VMM)130、虚拟机142和程序144的作用。VMM形成了在分级上低于虚拟机的核心层。图中示出了虚拟机VM-1、VM-2、VM-3。分级上低于意味着在可以激活虚拟机之前必须先激活VMM。因此,虚拟机在VMM之上运行。如果用硬件实现VMM(或者至少实现为与处理器130分离的单元),则VMM典型地形成底层。如果实际上用软件来实现VMM并且在处理器130上执行VMM,则VMM可以(但不必须)是运行在操作系统(示为OS-1)上的程序(或者程序模块/库的集合)。操作系统可以是在典型地基于Windows或者Linux的PC平台上的任何合适的传统操作系统。它还可以是仅提供核心功能的、操作系统的大小缩减的内核,其它功能由VMM或者虚拟机来提供。当设备100是小型设备(如便携式设备或者智能卡)时,使用大小缩减的内核是特别有利的。
如针对虚拟机VM-1和VM-2所示,可以将虚拟机直接加载到虚拟机管理器VMM之上。对于虚拟机VM-1,示出了在虚拟机内加载了操作系统OS-2,向程序P1和P2提供功能。这种场景从PC中是众所周知的,在PC中可以在Windows环境(作为OS-1)内执行Linux(作为OS-2)或者反过来。对于VM-2,示出了直接在虚拟机VM-2之上加载程序P3和P4,其中虚拟机VM-2提供程序所需的功能。这种场景例如从Java中是众所周知的,在Java中由Java虚拟机来执行(例如,解释)Java小应用(程序),可以将Java虚拟机加载至类似于Windows的操作系统中。图2还示出了另一个场景,其中将操作系统OS-3直接加载到虚拟机管理器VMM之上。在OS-3之上加载虚拟机VM-3。在所示的场景中,在虚拟机VM-3之上加载另一个操作系统OS-4,在该另一个操作系统OS-4之上加载程序P5。
可以使用图2中所示的所有场景。虚拟机提供用于操作系统的执行环境的场景(例如针对VM-1和VM-3所示)是优选的。在这种场景中,将应用程序及其操作系统限制在它们运行所在的虚拟机所创建的环境中。通常将这种场景称作“沙盒”。与让多个过程在操作系统的相同实例上运行的情况相比,沙盒可以通过让过程在不同的虚拟机和操作系统的不同实例上运行,来提供过程之间的更大程度的隔离。应当理解,根据本发明的设备可以执行一个或者更多虚拟机。虚拟机可以是相同类型的虚拟机的实例,但是同样也可以是不同类型的虚拟机。
众所周知形式的虚拟机是:
-应用虚拟机。这种虚拟机是一种将用户正在使用的应用与计算机隔离的计算机软件。由于为各种计算机平台编写虚拟机的版本,为虚拟机编写的任何应用可以在任何平台上操作,而不是必须为每一个计算机和操作系统产生单独版本的应用。应用使用解释器或者即时编译来在计算机上运行。应用虚拟机的一个最众所周知的示例是SunMicrosystem的Java虚拟机。
-虚拟环境(或者称作虚拟私有服务器)。虚拟环境事实上是一种用于运行用户级程序(即不是操作系统内核和驱动,而是应用)的虚拟化的环境。使用软件实现操作系统级虚拟化方法来创建虚拟环境,如Virtuozzo、FreeBSD Jails、Linux-VServer、Solaris Containers、chrootjail(chroot牢笼)以及OpenVZ。
如何执行这种虚拟化是众所周知的。使用下面三种主要方式:
-模拟,全系统仿真,或者“使用动态重编译的全虚拟化”——虚拟机仿真完整的硬件,允许用于完全不同CPU的未修改OS运行。
-超虚拟化(Paravirtualization)——虚拟机不仿真硬件而是提供需要OS修改的特殊API。
-原生虚拟化和“全虚拟化”——虚拟机仅部分仿真足够的硬件以允许未修改的OS以隔离方式运行,但是必须将访客OS设计用于相同类型的CPU。术语原生虚拟化有时也用于指定使用通过虚拟化技术的硬件辅助。
在根据本发明的实施例中,安全计算设备100在可以执行与虚拟机相关联的多个过程的操作系统的控制下操作。例如,过程可以涉及在虚拟机中执行的一个或者更多应用程序。它还可以是虚拟机本身的过程或者甚至是操作系统的过程。在本发明的上下文中,过程实际上是过程、任务、线程、纤程(fiber)或者可以调度的程序的类似执行的部分是无关紧要的。在本实施例中,优选地,用于确定标识符的装置132被配置为在激活过程的时刻确定唯一会话标识符。在操作系统中确定这种时刻并且执行过程的初始化是众所周知的。优选地将确定标识符与其结合。操作系统已经使用过程标识符,如数字和文本描述。原则上可以使用这些标识符。将会话标识符作为与虚拟机相关联的标识符提供给安全密码模块120。然后将安全密码模块120生成的输出与过程相关联地安全存储在例如虚拟机管理器130中的安全寄存器中作为会话密钥。安全存储器本身是已知的。然后,虚拟机管理器在激活过程的时间段期间使用与该过程相关联地存储的会话密钥作为密码密钥,用于单元136对该过程所操作的至少一部分数据进行加密/解密。作为对使用由过程确定的唯一标识符的备选方案,标识符还可以对于过程所属的程序是唯一的(例如基于程序标识符)。例如,在激活程序的第一过程的时刻,确定会话标识符。然后可以使用该会话标识符用于在该程序的当前执行会话内该程序的所有过程。下一次激活该程序时,则选择另一个会话标识符。使会话标识符基于程序具有下述优点:在相同程序的过程之间的数据交换更为容易。另一方面,如果不需要容易的交换(例如由不同方开发的过程,并且不应当容易地访问共享数据),则优选地会话标识符对于过程是唯一的。
如上所述,会话标识符优选地依赖于过程标识符或者程序标识符。在优选实施例中,通过让会话标识符也依赖于随机数和/或时间戳(例如激活过程/程序的时刻),也可以及时地使会话标识符唯一。
图3示出了密钥生成单元124包括物理不可复制函数(下文中称作PUF)的实施例。最近,由Pappu“Physical One-Way Functions”MIT,March 2001介绍了PUF作为生成用于密码目的的安全密钥的一种经济的方式。将PUF描述为作为散列函数使用并且用于认证目的。由于通过PUF,将数据本质上存储在材料中而不是电路中,该技术还可以作为需要认证的设备(如安全传感器)的一部分来使用。很多其它开发专注于开发不同类型的PUF。基于PUF的非常有用的属性:响应的唯一性和PUF的不可复制性,PUF的应用专注于使用PUF作为智能卡和信用卡的唯一标识符或者用于两方之间密钥生成(公共随机性)的“廉价”源,参见P.Tuyls等人的“Information-Theoretic Security Analysis ofPhysical Uncloneable Functions”。可以将PUF视为由物理系统实现的函数,使得容易对该函数进行评估,但是难以表征物理系统。PUF包括固有地不可复制的物理对象(由于在该对象的产生期间它包含很多不可控制(“随机”)的参数)。当对该对象应用激励(通常称为质询)时,它以可以测量的响应来做出反应。这种质询-响应行为完整地表征了结构。此外,这种结构是对篡改明显的,意味着如果物理损坏了该结构(由于攻击),这种质询-响应行为将明显改变。通过使用PUF来表示密码密钥,该密钥变得不可复制。因此,不可以将其给出或者进行拷贝。PUF是一种物理系统,被设计为使其以复杂的方式与激励(质询)进行交互并且产生唯一但不可预测的响应。因此,PUF类似于密钥操作的散列函数,其中材料承担密钥的作用。为了难以表征,该系统不应当允许通过测量来对其交互组件的相关属性进行高效提取。由不受控制的产生过程产生的物理系统(即包含一些随机性的物理系统)被证明是用于PUF的良好候选。由于这种随机性,难以产生PUF的物理拷贝。此外,如果物理功能基于很多复杂的交互,则数学建模也是非常困难的。将这两个属性统称为不可复制性。
显然,图3所示的PUF还包含物理材料127,该物理材料127具有该材料的物理属性中的固有的“随机”特征或者产生该材料的物理/化学过程中的固有的“随机”特征。PUF还包含用于根据经由输入122接收的值来测量/感测材料127的属性的探针128。PUF本身不是本发明的主题。原则上,可以使用任何合适的PUF。PUF还可以包含预处理单元123以及后处理单元125。预处理单元125可以例如对接收的输入执行散列运算。然后将散列运算的输出(散列)提供给探测单元128。后处理单元125可以对探针128的输出进行后处理。例如,如果探针提供与不具有信息的比特(例如很多“零”比特)相混合的有用信息,则可以使用散列来对该输出进行精简。探针受到噪声影响也是众所周知的。即使对于精确相同的质询(输入),探针产生的响应对于每一次评估可以略微不同。使用纠错码来“滤除”这种噪声是已知的。块125可以基于可以在PUF 120中的存储器(未示出)中存储的辅助数据来执行这种过滤。
已知PUF可以生成密码密钥。因此,可以直接将PUF的输出(响应)馈送至加密/解密单元136。如果需要,在将响应提供给加密/解密单元136之前,可以对该响应执行第一特定运算,如将该响应与其它类似密钥的数据相结合,和/或对该响应执行传统散列。这种后处理可以由图2所示的单元125来执行,但是也可以在虚拟机管理器130中执行。
在优选实施例中,将PUF与虚拟机管理器物理集成。这种集成优选以不可分离的方式进行,意味着如果攻击者尝试移除PUF,则该PUF受到破坏。这使得嵌入有PUF的虚拟机唯一可标识并且不可复制。例如,可以将整个单元120与单元130物理集成。通过将这两个组件进行集成,截取密钥也变得更加困难。通过简单地使用单一防篡改封装,还可以更容易地使这些单元更能够防篡改。此外,对PUF的材料进行篡改将揭露其本身。因此,已知让PUF的材料在提供防篡改中起到作用(例如通过将PUF材料集成入封装的涂层中)。由于不能拷贝PUF,也不能拷贝虚拟机管理器。优选地,处理器110也与PUF物理集成,将拷贝保护也扩展到处理器。该设备的越多部分物理绑定至PUF,则可以更好地在定性方面描述该设备,并且从而更适合对DRM实现中经常要求的安全性进行评估。
当在半导体设备上实现PUF时,原则上可以使用可以与电子设备集成的任何类型的PUF。正在开发使用半导体技术来实现的光类型的PUF,并且可以将其与电子电路进行集成。例如,正在使用半导体LED作为探针来开发的PUF。备选地,可以使用电子类型的PUF。当前正在开发几种这样的PUF。例如,PUF基于蚀刻电路的电阻或者电容的固有差异(例如在IC中的延迟线上测量的)、电子存储器的初始状态的固有差异(例如SRAM启动噪声)、IC上提供的分离涂层的固有差异(例如涂层中的具有电属性的粒子的随机图案的形式或者涂层的电容差异)、或者基于逻辑门(触发器PUF)的属性的产生变化。描述用于AEGIS处理器的硅PUF的示例。
此时,光PUF提供高安全级别。光PUF由包含一些随机分布的散射材料在内的物理结构构成。它们利用乱序光介质中激光的多次散射而导致的光斑图案的唯一性。输入(“质询”)可以是例如入射角度、激光束的焦距或者波长、激光的掩模图案阻挡部分、或者波阵面的任何其它改变。输出可以是光斑图案。出于两个原因,物理拷贝是困难的:
(i)光的漫射使散射体位置不明确
(ii)即使所有散射体位置已知,大量散射体的精确定位是非常困难且昂贵的,并且要求不同于原始随机化过程的产生过程。
目前已经开发了几种改进,导致第二代光PUF变得可用。
在另一个实施例中,如图4所示,该系统包括用于计算与数据存储器相关联的标识符的散列并且使用该散列作为向PUF提供的表示的装置136。有利地,该散列用于确保标识符(从而安全性)依赖于大量的数字数据。例如,可以基于整个程序144(或者其重要部分)、虚拟机142(或者其重要部分)、和/或程序144所处理的内容来计算该散列。可以使用任何数学散列(SHA-256或者SHA-512)来计算该散列。
在图5所示的实施例中,设备100被配置为对处理器对处理器外部的以下单元中至少一个的访问和从以下单元中至少一个的访问进行密码保护:
-存储器140,
-电子主存储器,
-程序高速缓存,
-数据高速缓存,
-I/O总线,示为510,
-寄存器。
可以以任何合适的方式来实现处理器110的封装510外部的程序高速缓存和/或数据高速缓存。图5示出了数据存储器140提供的具有高速缓存(CCH)146的形式的程序高速缓存和数据高速缓存。图5还示出了虚拟机管理器130和处理器110是集成在单一物理封装510中的分离电子电路的实施例。图5(以及接下来的图6)还示出了安全密码模块120与虚拟机管理器130以及与处理器110分离的实施例。寄存器典型地是在外部硬件单元中存储的数据(该外部硬件单元当然可以包括处理器,如协处理器或者图形处理器)。示出了单元520(HW-1)和530(HW-2)。通常经由设备100内的I/O总线510可以访问这些单元。如果需要,还可以使用其它总线或者甚至直接连接。未单独示出硬件单元中的寄存器。主存储器可以是任何合适的类型,典型地是电子存储器。根据设备,存储器可以是易失性的(例如DRAM)或者非易失性的(例如闪存)。可以使用任何合适的I/O总线。当前PC通常基于PCI Express。显然,越小的设备可以具有越受限制的I/O总线。
图6示出了与图5实施例类似的另一个实施例。在图6实施例中,处理器110以软件形式执行虚拟机管理器130。可以在与其他程序(如虚拟机142、应用程序144以及(如果适用)操作系统(图中未示出))相同的存储器140中存储用于虚拟机管理器的程序。如果需要,还可以在分离的存储器(例如ROM)中存储用于虚拟机管理器的程序。还可以将该程序与处理器110物理集成。
图7示出了另一个实施例,其中将安全密码模块120与处理器110物理集成为单一封装720。图7基于图6实施例,但是同样地可以与其它实施例相结合,如图5的实施例。
在根据本发明的实施例中,通过针对每一种不同用途使用不同的密钥,来进一步增加安全性。例如,针对存储器访问和针对高速缓存使用不同的密钥。可以通过采用不同的后处理功能或者通过将标识符也绑定至预期用途来实现这一点。
应当理解,根据本发明的安全计算设备对输入至处理器和/或从处理器输出的数据进行保护。典型地,所保护的数据是加载至虚拟机中的程序所操作的(部分)数据。如果需要,可以保护程序本身(或者其部分)或者甚至虚拟机本身的部分。另外,也可以使用其他一般加密方案。例如,可以用常规方式来加密可执行代码(例如使用多晶硅熔线(polyfuse)中的密钥、或者模糊在图像中),而用本发明详细描述的方式对应用和平台之间的通信进行加密。程序(可执行代码)还可以是媒体播放器,其中还使用DRM规定的加密来保护数据。
应当理解,可以以硬件组件以及以软件来实现本发明,例如在数字信号处理器(DSP)或者优化的VLIW处理器上实现。对于软件实现,可以将图中描述的模块视为表示功能软件单元。从而本发明还扩展至计算机程序,尤其是在载体上或载体中的计算机程序,适用于将本发明加以实现。程序可以是下列形式:源代码、目标代码、代码中间源和目标代码(如部分编译的形式)、或者具有适用于在根据本发明的方法的实现中使用的任何其它形式。载体可以是能够承载程序的任何实体或者设备。例如,载体可以包括存储介质,如ROM(例如CD ROM或者半导体ROM)、或者磁记录介质(例如软盘或者硬盘)。此外,载体还可以是可传输介质,如可以经由电缆或者光缆或者无线电或者其它装置传送的电或光信号。当在这种信号中实现程序时,可以由这种电缆或者其它设备或装置来构成载体。备选地,载体可以是嵌入有程序的集成电路,该集成电路适用于执行相关方法或者在相关方法的执行中使用。
应当注意,上述实施例示意而不是限制本发明,并且本领域技术人员将能够在不背离所附权利要求的范围的情况下设计出很多备选实施例。在权利要求中,不应当将在括号中放置的任何参考标记理解为限制权利要求。使用动词“包括”及其变形不排除除权利要求中所述的元件或步骤之外的其它元件或者步骤的存在。在元件之前的冠词“一”不排除多个这种元件的存在。可以通过包括多种不同元件的硬件以及通过合适编程的计算机来实现本发明。在列举多种装置的设备权利要求中,可以由一项以及相同的硬件来实现多个这些装置。仅通过互不相同的从属权利要求中引用特定措施的事实不指示不能使用这些措施的结合来进行改进。
Claims (14)
1.一种安全计算设备(100)包括:
-安全密码模块(120),包括输入(122)、用于根据接收的输入来生成密码密钥的密钥生成单元(124)以及用于产生所述密码密钥的输出(126);
-处理器(110);
-存储器(140),包括在处理器上可执行的虚拟机(142),以及在虚拟机上可执行的至少一个程序(144);以及
-虚拟机管理器(130),包括:
-用于确定与虚拟机相关联的标识符的装置(132);
-用于向安全密码模块提供所述标识符的表示并且从安全密码模块检索密码密钥的装置(134),所述密码密钥对于虚拟机是专一性的;以及
-用于在处理器执行虚拟机时在密码密钥的控制下对输入至处理器的至少一部分数据进行解密并且对从处理器输出的至少一部分数据进行加密的装置(136)。
2.根据权利要求1所述的设备,其中,所述密钥生成单元包括物理不可复制函数,以下称为PUF。
3.根据权利要求1所述的设备,其中,所述标识符是从以下至少一项中导出的:
-虚拟机本身,
-所述程序。
4.根据权利要求3所述的设备,其中,所述设备包括多个程序;每一个程序在虚拟机上可执行并且对数据存储器中存储的相关联数字内容项进行操作;并且虚拟机管理器被配置为根据所述程序和/或与所述程序相关联的数字内容项来导出所述标识符的表示,使得所述标识符的表示对所述程序是唯一的。
5.根据权利要求1所述的设备,其中,所述安全计算设备在被配置为执行与虚拟机相关联的多个过程的操作系统的控制下进行操作;用于确定标识符的装置被配置为:
-在激活过程的时刻确定会话标识符,其中所述会话标识符对所述过程或者与所述过程相关联的程序是唯一的;
-提供所述会话标识符作为与虚拟机相关联的标识符;
-将安全密码模块生成的输出作为会话密钥与所述过程相关联地进行安全存储;以及
-在激活过程的时间段期间,使用与所述过程相关联地存储的会话密钥作为密码密钥,来对所述过程所操作的数据的至少一部分进行加密/解密。
6.根据权利要求5所述的设备,其中,所述会话标识符依赖于以下至少一项:
-过程标识符,
-随机数,
-时间戳。
7.根据权利要求1所述的设备,其中,所述设备被配置为对以下访问进行密码保护:
由处理器对位于处理器外部的以下单元中的至少一个的访问和来自位于处理器外部的以下单元中的至少一个对处理器的访问:
-所述存储器,
-电子主存储器,
-程序高速缓存,
-数据高速缓存,
-I/O总线,
-寄存器。
8.根据权利要求1所述的设备,其中,所述设备包括:用于计算与虚拟机相关联的标识符的散列的装置;所述密钥生成单元根据所述散列来生成密码密钥。
9.根据权利要求1所述的设备,其中,虚拟机管理器以及处理器在相同的防篡改单元中实现。
10.根据权利要求1所述的设备,其中,虚拟机管理器以软件来实现,并且被配置为在处理器上执行。
11.根据权利要求2所述的设备,其中,PUF与虚拟机管理器物理集成。
12.根据权利要求11所述的设备,其中,虚拟机管理器在半导体设备上实现,并且PUF被集成在所述半导体设备上。
13.根据权利要求12所述的设备,其中,PUF是光类型或者电子类型的。
14.一种对与安全计算设备(100)中处理器(110)交换的数据进行保护的方法,所述方法包括:
-在处理器(110)中加载虚拟机(142)并且执行虚拟机;
-将在虚拟机上可执行的至少一个程序(144)加载至处理器;
-确定与虚拟机相关联的标识符,
-在安全密码模块(120)中,根据所述标识符的表示来生成密码密钥,所述密码密钥对于虚拟机是专一性的;以及
-在处理器执行虚拟机时,在所述密码密钥的控制下,对输入至处理器的至少一部分数据进行解密并且对从处理器输出的至少一部分数据进行加密。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07112858 | 2007-07-20 | ||
EP07112858.1 | 2007-07-20 | ||
PCT/IB2008/052859 WO2009013673A2 (en) | 2007-07-20 | 2008-07-16 | Device with a secure virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101755269A CN101755269A (zh) | 2010-06-23 |
CN101755269B true CN101755269B (zh) | 2012-06-27 |
Family
ID=40174843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800251892A Active CN101755269B (zh) | 2007-07-20 | 2008-07-16 | 具有安全虚拟机的设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8639949B2 (zh) |
EP (1) | EP2183695B1 (zh) |
CN (1) | CN101755269B (zh) |
WO (1) | WO2009013673A2 (zh) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100083251A1 (en) * | 2008-09-12 | 2010-04-01 | Hyper9, Inc. | Techniques For Identifying And Comparing Virtual Machines In A Virtual Machine System |
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 |
WO2010100015A1 (en) * | 2009-03-06 | 2010-09-10 | Intrinsic Id B.V. | System for establishing a cryptographic key depending on a physical system |
US8868861B2 (en) * | 2009-04-17 | 2014-10-21 | Pioneer Corporation | Information recording apparatus and copy management program for caching content data of digital content |
US9495190B2 (en) | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
US8295481B2 (en) | 2009-08-31 | 2012-10-23 | International Business Machines Corporation | Virtualization of cryptographic keys |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
CN102271124B (zh) * | 2010-06-01 | 2015-05-13 | 富士通株式会社 | 数据处理设备和数据处理方法 |
US9444620B1 (en) * | 2010-06-24 | 2016-09-13 | F5 Networks, Inc. | Methods for binding a session identifier to machine-specific identifiers and systems thereof |
US8627424B1 (en) * | 2010-06-30 | 2014-01-07 | Emc Corporation | Device bound OTP generation |
US8397245B2 (en) | 2010-07-12 | 2013-03-12 | International Business Machines Corporation | Managing loading and unloading of shared kernel extensions in isolated virtual space |
US8527989B2 (en) | 2010-07-12 | 2013-09-03 | International Business Machines Corporation | Tracking loading and unloading of kernel extensions in isolated virtual space |
US8448169B2 (en) * | 2010-07-12 | 2013-05-21 | International Business Machines Corporation | Managing unique electronic identification for kernel extensions in isolated virtual space |
US8694777B2 (en) * | 2010-08-13 | 2014-04-08 | International Business Machines Corporation | Securely identifying host systems |
CN102202052A (zh) * | 2011-04-20 | 2011-09-28 | 李计兰 | 一种基于虚拟机技术的信息系统密码管理方法 |
US8949929B2 (en) * | 2011-08-10 | 2015-02-03 | Qualcomm Incorporated | Method and apparatus for providing a secure virtual environment on a mobile device |
US9054865B2 (en) | 2011-11-16 | 2015-06-09 | V-Key, Inc. | Cryptographic system and methodology for securing software cryptography |
US8700916B2 (en) * | 2011-12-02 | 2014-04-15 | Cisco Technology, Inc. | Utilizing physically unclonable functions to derive device specific keying material for protection of information |
US8751800B1 (en) | 2011-12-12 | 2014-06-10 | Google Inc. | DRM provider interoperability |
US8751820B2 (en) * | 2011-12-13 | 2014-06-10 | Unisys Corporation | Interfaces for combining calls in an emulated environment |
US10079678B2 (en) | 2012-07-24 | 2018-09-18 | Intel Corporation | Providing access to encrypted data |
KR101653121B1 (ko) * | 2012-12-11 | 2016-08-31 | 미쓰비시덴키 가부시키가이샤 | 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법 |
US9390291B2 (en) * | 2012-12-29 | 2016-07-12 | Intel Corporation | Secure key derivation and cryptography logic for integrated circuits |
WO2014204453A1 (en) * | 2013-06-19 | 2014-12-24 | Empire Technology Development, Llc | Processor-optimized library loading for virtual machines |
US10275268B2 (en) | 2013-08-26 | 2019-04-30 | Red Hat, Inc. | Providing entropy to a guest operating system |
EP2876593B1 (en) * | 2013-11-21 | 2018-09-26 | Nxp B.V. | Method of generating a structure and corresponding structure |
WO2015137975A1 (en) | 2014-03-14 | 2015-09-17 | Hewlett Packard Development Company, L.P. | Resource restriction |
US10192066B2 (en) | 2014-03-14 | 2019-01-29 | Hewlett Packard Enterprise Development Lp | Semantic restriction |
US9411975B2 (en) | 2014-03-31 | 2016-08-09 | Intel Corporation | Methods and apparatus to securely share data |
US10536281B2 (en) | 2014-07-30 | 2020-01-14 | University Of South Florida | Magnetic memory physically unclonable functions |
US10185669B2 (en) * | 2014-08-04 | 2019-01-22 | Oracle International Corporation | Secure key derivation functions |
US20160092313A1 (en) * | 2014-09-25 | 2016-03-31 | Empire Technology Development Llc | Application Copy Counting Using Snapshot Backups For Licensing |
CN104486071B (zh) * | 2014-11-21 | 2018-04-10 | 褚万青 | 一种基于对位密码系统的算位方法及直接、间接通信法 |
US9560078B2 (en) * | 2015-02-04 | 2017-01-31 | Intel Corporation | Technologies for scalable security architecture of virtualized networks |
US9760737B2 (en) * | 2015-06-12 | 2017-09-12 | Qualcomm Incorporated | Techniques for integrated circuit data path confidentiality and extensions thereof |
US9875378B2 (en) | 2015-06-12 | 2018-01-23 | QUALCOMOM Incorporated | Physically unclonable function assisted memory encryption device techniques |
CN105184154B (zh) * | 2015-09-15 | 2017-06-20 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
US10200371B2 (en) | 2015-11-09 | 2019-02-05 | Silvercar, Inc. | Vehicle access systems and methods |
US9959133B2 (en) * | 2015-11-24 | 2018-05-01 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Identification and removal of zombie virtual machines |
US10069626B2 (en) | 2016-02-23 | 2018-09-04 | Red Hat, Inc. | Multiple encryption keys for a virtual machine |
US11063758B1 (en) | 2016-11-01 | 2021-07-13 | F5 Networks, Inc. | Methods for facilitating cipher selection and devices thereof |
WO2018175973A1 (en) | 2017-03-23 | 2018-09-27 | Arizona Board Of Regents On Behalf Of Arizona State University | Physical unclonable functions with copper-silicon oxide programmable metallization cells |
US10691837B1 (en) * | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
US10657071B2 (en) * | 2017-09-25 | 2020-05-19 | Intel Corporation | System, apparatus and method for page granular, software controlled multiple key memory encryption |
EP3624392B1 (en) * | 2018-09-17 | 2023-05-10 | Secure-IC SAS | Methods and devices for secure secret key generation |
US11269986B2 (en) * | 2018-10-26 | 2022-03-08 | STMicroelectronics (Grand Ouest) SAS | Method for authenticating a program and corresponding integrated circuit |
EP3720039A1 (de) * | 2019-04-05 | 2020-10-07 | Siemens Aktiengesellschaft | Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel |
US20220229908A1 (en) * | 2019-05-29 | 2022-07-21 | The Regents of the University of Calofornia | Methods, systems, and devices for trusted execution environments and secure data processing and storage environments |
US11537421B1 (en) * | 2019-06-07 | 2022-12-27 | Amazon Technologies, Inc. | Virtual machine monitor providing secure cryptographic operations |
EP3771140B1 (en) * | 2019-07-23 | 2021-08-25 | Nokia Technologies Oy | Securing a provable resource possession |
US11244722B2 (en) | 2019-09-20 | 2022-02-08 | Arizona Board Of Regents On Behalf Of Arizona State University | Programmable interposers for electrically connecting integrated circuits |
US11935843B2 (en) | 2019-12-09 | 2024-03-19 | Arizona Board Of Regents On Behalf Of Arizona State University | Physical unclonable functions with silicon-rich dielectric devices |
CN110955888B (zh) * | 2019-12-18 | 2023-10-27 | 海光信息技术股份有限公司 | 应用程序数据保护方法、装置、设备、存储介质 |
EP4327504A1 (en) * | 2021-04-23 | 2024-02-28 | Telefonaktiebolaget LM Ericsson (publ) | Secure removable hardware with puf |
EP4327503A1 (en) | 2021-04-23 | 2024-02-28 | Telefonaktiebolaget LM Ericsson (publ) | Systems and methods for puf slicing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535411A (zh) * | 2001-07-25 | 2004-10-06 | �����ɷ� | 用于在使用附属的存储设备的计算机系统中提升安全性的方法和系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100484209B1 (ko) * | 1998-09-24 | 2005-09-30 | 삼성전자주식회사 | 디지털컨텐트암호화/해독화장치및그방법 |
GB9929364D0 (en) | 1999-12-10 | 2000-02-02 | Microbar Security Limited | Improvements in or relating to coding techniques |
US7840803B2 (en) * | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
US7774597B2 (en) * | 2003-06-27 | 2010-08-10 | Ram Gopal Lakshmi Narayanan | System and method for nodes communicating in a shared network segment |
KR20060111452A (ko) * | 2003-10-23 | 2006-10-27 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 집적회로를 갖는 정보매체의 보호방법 |
WO2005043805A1 (en) * | 2003-10-29 | 2005-05-12 | Koninklijke Philips Electronics N.V. | System and method of reliable forward secret key sharing with physical random functions |
US7552433B2 (en) * | 2003-11-12 | 2009-06-23 | Hewlett-Packard Development Company, L.P. | Non-platform-specific unique indentifier generation |
US7432485B2 (en) | 2003-12-12 | 2008-10-07 | Koninklijke Philips Electronics N.V. | Method and apparatus for detection of a speckle based physically unclonable function |
US7330977B2 (en) * | 2003-12-30 | 2008-02-12 | Lenovo Pte Ltd | Apparatus, system, and method for secure mass storage backup |
US7552419B2 (en) | 2004-03-18 | 2009-06-23 | Intel Corporation | Sharing trusted hardware across multiple operational environments |
JP2009506613A (ja) * | 2005-08-23 | 2009-02-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 物理的な一方向関数による情報キャリア認証 |
BRPI0712152A2 (pt) * | 2006-06-09 | 2012-02-22 | Verisign, Inc. | método e aparelho para prover autetenticação e privacidade com dispositivos de baixa complexidade |
US8254579B1 (en) * | 2007-01-31 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Cryptographic key distribution using a trusted computing platform |
-
2008
- 2008-07-16 WO PCT/IB2008/052859 patent/WO2009013673A2/en active Application Filing
- 2008-07-16 EP EP08789328.5A patent/EP2183695B1/en active Active
- 2008-07-16 US US12/668,961 patent/US8639949B2/en active Active
- 2008-07-16 CN CN2008800251892A patent/CN101755269B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535411A (zh) * | 2001-07-25 | 2004-10-06 | �����ɷ� | 用于在使用附属的存储设备的计算机系统中提升安全性的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2183695B1 (en) | 2014-11-12 |
WO2009013673A3 (en) | 2009-03-12 |
CN101755269A (zh) | 2010-06-23 |
WO2009013673A2 (en) | 2009-01-29 |
US20100199104A1 (en) | 2010-08-05 |
US8639949B2 (en) | 2014-01-28 |
EP2183695A2 (en) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101755269B (zh) | 具有安全虚拟机的设备 | |
CN111741036B (zh) | 一种可信数据传输方法、装置及设备 | |
CN106687980B (zh) | 管理程序和虚拟机保护 | |
CN101894224B (zh) | 保护客户端平台上的内容 | |
US7243236B1 (en) | Systems and methods for using cryptography to protect secure and insecure computing environments | |
CN110264195B (zh) | 结合代码标注与交易、用户类型的收据存储方法和节点 | |
CN110266644B (zh) | 结合代码标注与交易类型的收据存储方法和节点 | |
CN109923548A (zh) | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 | |
CN110263087B (zh) | 基于多维度信息且具有条件限制的收据存储方法和节点 | |
CN108781210A (zh) | 具有可信执行环境的移动设备 | |
CN110278193B (zh) | 结合代码标注与交易、事件类型的收据存储方法和节点 | |
US20050060568A1 (en) | Controlling access to data | |
He et al. | Security analysis of cryptocurrency wallets in android-based applications | |
CN108416224A (zh) | 一种数据加解密方法及装置 | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
Shivanna et al. | Privacy preservation in cloud computing with double encryption method | |
Singh et al. | Data Leakage Detection and Prevention Using Cloud Computing | |
Nowroozi et al. | Cryptocurrency wallets: assessment and security | |
Sanz Maroto et al. | On the Struggle Bus: A Detailed Security Analysis of the m-tickets App | |
McHarris | Ransomware File Encryption Tactics, Techniques, and Procedures | |
CN115408713A (zh) | 一种风险数据查询方法、系统、可信单元和服务器 | |
Dharmadhikari et al. | Review of digital data protection using the traditional methods, steganography and cryptography | |
CN115941200A (zh) | 在区块链中存储联盟信息的方法、系统和区块链节点 | |
CN115442115A (zh) | 一种风险数据推送方法、系统、服务器和可信单元 | |
CN115442111A (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 |