CN103946806B - 用于提供存储器访问控制的装置、系统和方法 - Google Patents
用于提供存储器访问控制的装置、系统和方法 Download PDFInfo
- Publication number
- CN103946806B CN103946806B CN201180075091.XA CN201180075091A CN103946806B CN 103946806 B CN103946806 B CN 103946806B CN 201180075091 A CN201180075091 A CN 201180075091A CN 103946806 B CN103946806 B CN 103946806B
- Authority
- CN
- China
- Prior art keywords
- main frame
- nonvolatile memory
- memory
- pairing
- state
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000006378 damage Effects 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 45
- 230000008569 process Effects 0.000 description 26
- 239000000463 material Substances 0.000 description 25
- 239000000306 component Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000018199 S phase Effects 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012533 medium component Substances 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000682 polycarbomethylsilane Polymers 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本文描述的是用于提供对受保护软件(例如,固件备份)和其他数据的存储器访问控制的装置、系统和方法。该方法包括由处理器在存储器中提供用于存储软件的备份映像的受保护存储区域;检测软件中的破坏;从所述受保护存储区域访问所述软件的所述备份映像;以及使用备份映像更新被破坏的软件,其中该受保护存储区域是存储器中的预留存储区域。
Description
技术领域
本发明的实施例一般涉及软件安全性的领域。更具体地来说,本发明的一些实施例涉及用于提供存储器访问控制以保护软件的装置、系统和方法。
背景技术
计算机平台(或仅平台)集成了运行称为固件(也称为平台固件)的专用软件的多个组件(例如,CPU处理器、芯片组、视频处理器/卡等)。硬编码或存储在只读存储器(ROM)中的固件的部分视为不可改变,并且因此预期不会随时间推移而变化。平台固件包括由计算机系统执行的第一组指令。为了保护此重要的指令集免于攻击或无意破坏,目前的解决方案通过使其成为信任根的一部分来保护该固件的映像。始发于平台硬件的信任根经由平台的固件从硬件传递到软件,并由此固件成为信任链的关键部分。
为了校正固件的缺陷和/或添加功能,常常有可编程和可更新的平台固件的另一个部分。使平台固件安全性折衷的方法一直在开发。使平台固件安全性折衷(Compromising)使得大量非常有用的工具能够攻击计算机系统。不同于软件攻击,安全性折衷的固件难以检测且对于计算机系统从其中恢复是困难的。安全性折衷的固件多半对于计算机系统的软件层,包括大多数反病毒和间谍软件的工具是不可见的。固件的这种不可见特性使之对于隐匿程序是理想的。隐匿程序是平台中获取运行软件的最高可能特权和最低可见性的紧凑且潜在恶意的挂钩(hook)。它们的主要功能是为被感染系统上的病毒和蠕虫提供应用编程接口(API)。
而且,由于固件的永久性特性,来自恶意固件攻击的潜在损害远大于软件攻击。例如,系统软件堆栈上的服务拒绝磁盘操作系统(DOS)攻击可能导致被破坏的操作系统(OS)攻击,将需要重新安装。对比之下,安全性折衷的固件DOS攻击可能导致完全不可引导和不可使用的平台。对于此类固件破坏的恢复解决方案可能需要重新安装固件的备份映像。
可以在主机端通过操作系统或ring-0软件来保护非易失性存储器上的内容(例如,硬盘驱动器、固态驱动器)。但是,任何ring-0恶意软件能够获得非易失性存储器的访问权,并由此破坏该非易失性存储器上的任何数据,包括固件的备份映像或需要保护的任何软件。启用非易失性存储器密码来保护非易失性存储器中的数据也易于受到恶意攻击。例如,当引导时提示用户输入非易失性存储器的密码时,密码的内容不再受保护而免于外部/内部软件攻击。此外,非易失性存储器上的存储器区域的分区并未在硬盘驱动器本身中提供有意义的数据安全性。
当前的技术对于提供平台固件的备份映像或需要保护的任何其他软件的受保护存储存在非常差的机制(如果有的话)。
发明内容
本发明实施例涉及提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问的装置、系统和方法。
在一个实施例中,该方法包括由处理器在存储器中提供用于存储软件的备份映像的受保护存储区域;检测软件中的破坏;从受保护存储区域访问该软件的备份映像;以及使用备份映像更新被破坏的软件,其中该受保护存储区域是存储器中的预留存储区域。
在一个实施例中,由存储器控制器将软件的备份映像存储在非易失性存储器的预留存储区域中;通过从主机部署私密和公共密钥与该主机配对,以进入配对且未获特权的状态;通过质询响应协议对主机进行认证以从配对且未获特权的状态进入配对且已获特权的状态;以及响应进入配对且已获特权的状态,对主机允许软件的备份映像的安全访问。
在一个实施例中,该系统包括主机,主机包括处理器;耦合到主机的显示器;以及耦合到主机的固态驱动器(SSD),该SSD包括:耦合到非易失性存储器的存储器控制器,该存储器控制器可操作以执行:将软件的备份映像存储在非易失性存储器的预留存储区域中;通过从主机部署私密和公共密钥与该主机配对,以进入配对且未获特权的状态;通过质询响应协议对主机进行认证以从配对且未获特权的状态进入配对且已获特权的状态;以及响应进入配对且已获特权的状态,对主机允许软件的备份映像的安全访问。
在一个实施例中,上文论述的方法由计算机可执行指令来执行。在一个实施例中,该装置包括包含计算机可执行指令的机器可读存储介质,在被执行时,所述计算机可执行指令促使处理器执行上文论述的方法。
虽然发明内容是结合其特定实施例来描述的,但是本领域技术人员根据前文描述将显见到此类实施例的许多替代、修改和变化。本发明的实施例理应涵盖所有此类替代、修改和变化视为落在所附权利要求的广义范围内。
附图说明
通过下文给出的详细描述以及参考本发明多种实施例的附图,将更全面地理解本发明的实施例,但是,这不应该视为将本发明限于这些特定的实施例,而仅出于解释和理解目的。
图1是根据本发明的一个实施例的高层系统,其包括耦合到非易失性存储器的主机,该非易失性存储器可操作以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问。
图2是根据本发明的一个实施例的高层系统,其示出非易失性存储器中的受保护存储的组件。
图3是根据本发明的一个实施例的表,其示出用于非易失性存储器中的受保护存储的操作模式。
图4是根据本发明的一个实施例的高层流程图,其在用于非易失性存储器的受保护存储的工作模式之间的转换。
图5A是根据本发明的一个实施例的由主机的处理器执行以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储的方法。
图5B是根据本发明的一个实施例的用于从受保护存储区域访问备份映像的方法。
图5C是根据本发明的一个实施例的用于主机和具有受保护存储的非易失性存储器的互相认证的方法。
图5D是根据本发明的一个实施例的用于从非易失性存储器的配对且已获特权的状态退出到配对且未获特权的状态的方法。
图6A是根据本发明的一个实施例的由非易失性存储器的处理器/控制器执行以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问的方法。
图6B是根据本发明的一个实施例的由非易失性存储器的处理器/控制器执行用于主机和具有受保护存储的非易失性存储器的互相认证的方法。
图7是根据本发明的一个实施例的系统级示意图,其包括耦合到固态驱动器(SSD)的主机,该固态驱动器(SSD)可操作以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储。
具体实施方式
本发明实施例涉及提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问的装置、系统和方法。在一个实施例中,重复使用对存储器中的日志的读和写的现有命令和现有存储器结构(也称为日志或存储器空间)来提供对非易失性存储器,例如固态驱动器(SSD)、硬盘驱动器(HDD)等的安全访问。在一个实施例中,将附加安全性层置于SDD常规工作层之上,以提供对非易失性存储器的受保护日志/区域的排他性操作模式。在一个实施例中,HDD的非易失性存储器是磁介质。
在一个实施例中,该方法包括由主机中的处理器在存储器中提供用于存储软件的备份映像的受保护存储区域;检测软件中的破坏;从受保护存储区域访问该软件的备份映像;以及使用备份映像更新被破坏的软件,其中该存储区域是存储器中的预留存储区域。在一个实施例中,存储器的预留存储区域是存储器的供应商相关存储区域。
在一个实施例中,该方法包括由SSD中的存储器控制器将软件的备份映像存储在非易失性存储器的预留供应商相关存储区域中;通过从主机部署私密和公共密钥与该主机配对,以进入配对且未获特权的状态;通过质询响应协议对主机进行认证以从配对且未获特权的状态进入配对且已获特权的状态;以及响应进入配对且已获特权的状态,对主机允许软件的备份映像的安全访问。
术语“部署”在本文是指由一个组件(主机处理器)将密钥材料(例如,公共密钥、私用密钥、私密密钥)赋予另一个组件(例如,HDD、SSD或任何其他非易失性存储器或包括非易失性存储器的组件),以使其他组件能够访问该另一个组件。
本文论述的实施例的技术效果用于提供对非易失性存储器中的备份固件或任何类型的数据(例如,操作系统二进制、应用、最终用户数据等)的安全访问以及保护对这些数据或备份固件的访问(只读、只写或其他特权)。
在下文描述中,论述大量细节,以便更透彻地解释本发明的实施例。但是对于本领域人员来说,将显见到本发明的实施例可以在没有这些特定细节的一些的情况下实施。在其他情况中,以框图形式示出公知的结构和装置,而没有进行详细示出,以避免妨碍对本发明实施例的理解。
注意,在实施例的对应附图中,信号以直线表示。一些直线可能较粗,以指示更多组成信号的路径,和/或在一端或多个端具有箭头,以指示主信息流方向。此类指示无意构成限制。相反,将这些直线与一个或多个示范实施例结合使用以便有助于更容易地理解电路或逻辑单元。按设计要求或偏好所指示的,任何表示的信号实际可以包括可以按任一方向行进的一个或多个信号,并且可以利用任何适合类型的信号方案来实现。
在下文描述和权利要求中,可能使用到术语“耦合”以及其派生。术语“耦合”本文是指处于(以物理、电、磁、光等方式)直接接触的两个或更多个元件。术语“耦合”在本文还可以是指彼此未直接接触但是仍彼此协作或交互的两个或更多个元件。
正如本文使用的,除非另行指定,否则使用序数形容词“第一”、“第二”、“第三”等来描述共同的对象仅仅表示指代相似对象的不同实例,并且无意要暗示如此描述的对象必须在时间上、空间上、按评级或按任何其他方式处于给定的次序中。
术语“公共/私用密钥”在本文描述用于公共密钥密码加密的一组加密密钥。密钥对构成“公共密钥”和“私用密钥”。可以使用密钥对来进行加密,在此情况中,使用公共密钥来加密数据,以及使用私用密钥来将该数据解密。还可以将密钥对用于数字签名,在此情况中,使用私用密钥来对消息签名,以及使用公共密钥来验证该消息。
正如本文所使用的,“公共密钥”是密钥对的公共半部分。在其他用途中,可以使用公共密钥来将数据加密以确保它仅可以被拥有对应的私用密钥的实体解密,或可以使用公共密钥来验证拥有私用密钥的实体创建的签名。正如本文所使用的,“私用密钥”是密钥对的私用或私密半部分。在其他用途中,可以使用私用密钥来将已利用对应公共密钥加密的数据解密,或可以使用私用密钥以将项目进行数字“签署”。
术语“私密密钥”在本文中是指对称加密方案中使用的一组位(与非对称或公共密钥密码加密相比),即,对于将明文消息加密成其对应的加密文本,以及将该加密文本解密成原始明文消息使用相同的密钥。私密密钥在参与加密的消息交换的各方之间共享。
图1是根据本发明的一个实施例的高层系统100,其包括耦合到一个或多个非易失性存储器的主机101,该一个或多个非易失性存储器可操作以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储。在一个实施例中,该非易失性存储器是SSD130的一部分。在一个实施例中,该非易失性存储器是服务器150的一部分。在一个实施例中,该非易失性存储器是相变存储器(PCM)、堆栈式PCM(PCMS,也会称为PCM和开关)、只读存储器(ROM)、电可擦写可编程只读存储器(EEPROM)或任何其他类型的非易失性存储器器件。在一个实施例中,该非易失性存储器是移动驱动器,例如通用串行总线(USB)存储棒140、闪存卡等。在一个实施例中,该非易失性存储器是HDD的一部分。
在如下的实施例中,描述SSD 130与主机101之间的安全访问的模式。虽然本文中是参考SSD来描述这些实施例的,但是这些实施例可应用于具有非易失性存储介质的任何组件,如HDD。在一个实施例中,本文论述的过程被封装为HDD的固件更新。
在一个实施例中,主机101包括封装190,封装190经由总线180在工作上耦合到非易失性存储器(其是SSD 130的一部分)。在一个实施例中,总线180串行高级技术连接(SATA)输入输出(I/O)总线。在一个实施例中,总线180是串行连接的小系统计算机(SAS)输入输出(I/O)。在一个实施例中,可以将其他类型的总线(例如,通用串行总线(USB)、外设互连Express(PCI Express))用于总线180而不改变本文论述的实施例的本质。
在一个实施例中,封装190包括耦合到高速缓存115和受信源120的处理器(CPU)110。在一个实施例中,受信源120是处理器安全存储(PSS),处理器安全存储(PSS)存储处理器可经由安全接口访问的公共、私用和私密密钥。在一个实施例中,受信源120是处理器110的私用存储器,其中该私用存储器配置成存储处理器110和/或系统100的信任根。在一个实施例中,受信源120驻留在封装190外部。在一个实施例中,受信源120是包括非易失性随机存取存储器(NVRAM)的射频识别标签(RFID)。在一个实施例中,该NVRAM是NAND闪存存储器。在一个实施例中,该NVRAM是NOR闪存存储器。在其他实施例中,可以在RFID标签120中使用其他类型的非易失性存储器。在一个实施例中,公共和/或私密密钥被存储在NVRAM中。在一个实施例中,通过密码加密来保护该公共和/或私密密钥。在一个实施例中,处理器110经由集成电路间(I2C)接口或RF接口从受信源120检索私密密钥。
在一个实施例中,主机101还包括基本输入/输出系统(BIOS)芯片125,BIOS芯片125包含BIOS映像。BIOS映像是平台固件的示例,其映像被存储在作为103的一部分的非易失性存储器的专用存储区域130a中。在一个实施例中,主机101还包括芯片组处理器170,芯片组处理器170与包括SSD 130、USB设备140、服务器150、显示器(未示出)等的多个外围设备通信。在一个实施例中,该主机包括操作系统160。
在一个实施例中,130、140和150中的非易失性存储器分别包括专用存储区域130a、140a和150a。在一个实施例中,SSD 130中的专用/预留存储区域130a是供应商相关区域。本文论述的实施例描述通过SATA命令(例如,READ LOG EXT、READ LOG DMA EXT、WRITELOG EXT和WRITE LOG DMA EXT,如美国国家标准协会在T13/2015-D工作草案项目,INCITSATA/ATAPI命令集-2,修订版2,2009年8月3日发布中所描述的)。在其他实施例中,可以将其他命令用于主机101对非易失性存储器204的安全访问。本文论述的实施例可以用于提供对非易失性存储器中的任何预留区域的安全访问。正如上文提到的,使用SSD 130作为示例实施例,以及本文描述的概念可以用于具有非易失性存储器的其他类型的海量存储设备(例如,HDD、存储棒、CD、DVD等)。
图2是示出根据本发明一个实施例的高层系统200,其示出非易失性存储器204中的受保护存储的组件。在一个实施例中,SSD 130包括存储器控制器201。在一个实施例中,存储器控制器201是包括耦合到存储器控制器201的处理器的芯片上系统(SOC)的一部分。在一个实施例中,SOC包括其他组件,例如无线天线、存储器等。在一个实施例中,SSD 130被置于个人计算机、平板电脑、智能电话(也称为智能设备)等内部。
在一个实施例中,存储器控制器201耦合到非易失性存储器204,非易失性存储器204具有预留供应商相关存储区域2051-N。每个预留供应商相关区域包括用于存储软件/固件映像和关联的有效位206和擦写位207的区域。在一个实施例中,SSD 130包括公共密钥202和私用密钥203用于与主机101互相认证一获取对受保护区域2051、206和207的访问权。受保护区域2051、206和207被包含在SSD 130的受保护区域130a中。有效位206和擦写位207参考工作模式来论述。
图3是示出根据本发明一个实施例的表300,其示出非易失性存储器的受保护存储的工作模式。图3参考图1-2来描述。在一个实施例中,描述三种模式以提供对预留供应商相关存储区域2051的安全访问。这三种模式按二维分组。第一维包括取决于SSD 130当前是否部署有特定密钥材料的模式,即,已获特权的模式302。第二维包括确定SSD 130与主机101认证的模式,即,配对模式301。本文中的术语“配对”是指两个设备之间用于互相认证的通信连接。配对是通过部署相同的密钥材料以将主机101与SSD 130链接,以便主机101和SSD130可以使用该密钥材料彼此认证的方式。
在一个实施例中,三种模式是有效的,它们是:未配对模式305、配对306但未获特权303的模式、以及配对306但已获特权304的模式。在其他实施例中,可以添加多于三种模式以便增强在SSD的操作层上添加的的安全性层。在一个实施例中,仅三种模式是有效的。
在未配对模式305中,SSD 130未与主机101配对。未配对模式305不是已获特权的模式。在一个实施例中,当SSD 130和主机101处于未配对模式305中时,它们无法彼此通信以访问预留供应商相关区域2051-N。在一个实施例中,未配对模式305是旧有模式。在一个实施例中,在未配对模式305中,允许对映像2051-N的READ LOG EXT和READ LOG DMA EXT命令。在一个实施例中,对映像2051-N的WRITE LOG EXT和WRITE LOG DMA EXT 命令仅在有效位206为清除的情况下才被允许。
配对306和未配对303组合模式是指SSD 130和主机101具有共有的私密以彼此认证时的模式。配对306且已获特权304的组合模式是指SSD 130与主机101互相认证以及SSD130与主机101之间的通信的特殊命令未锁定时的模式,即,该特殊命令在此模式下有效。配对306且已获特权304的模式中允许的操作的示例包括:创建、删除或修改复制SSD 130所存储的平台固件映像。在一个实施例中,这些示范操作只能在配对306且已获特权304的模式下执行,以便防止恶意软件执行这些示范操作并使固件映像的副本的安全性受损。在一个实施例中,未配对305但已获特权304的组合模式是安全SSD 130访问的无效模式。
图4是根据本发明一个号实施例的高层流程图400,其示出非易失性存储器的受保护存储的工作模式之间的转换。
虽然流程图400中的框是按特定顺序示出的,但是这些动作的顺序可以被修改。因此,可以按不同顺序来执行图示的实施例,以及一些动作/框可以并行地执行。作为附加,在提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问的多种实施例中可以省略一个或多个动作/框。图4的流程图是参考图1-3的实施例来图示的。
在一个实施例中,该安全访问通过初始化SSD 130与主机101(可互换地称为处理器110)之间的配对403过程开始。在一个实施例中,SSD 130与主机101的成功配对促使从未配对模式305转换到配对且未获特权的模式401。在一个实施例中,配对过程403由主机101将来自受信源120的密钥材料部署到SSD 130来执行。
在一个实施例中,认证过程404是允许SSD 130从配对且未获特权的模式401进入到配对且已获特权的状态402的模式交易。在一个实施例中,认证基于来自主机101的请求而被发起。在一个实施例中,SSD 130使用其密钥材料通过加密协议(例如,202和203)对主机101进行认证。在一个实施例中,当互相认证成功时,主机101对受保护日志2051-N、206和207具有完全访问权。
在一个实施例中,退出过程405是允许SSD 130离开配对且已获特权的状态402而进入配对且未获特权的状态401的模式交易。在一个实施例中,在配对且未获特权的状态401中,主机101能够读取受保护日志2051-N,但是不能修改它们。
在一个实施例中,取消部署过程406是允许SSD 130与主机101未配对,并从配对且未获特权的状态401返回到其初始状态,即未配对状态305。在一个实施例中,取消部署过程406通过质询响应协议来实现。在一个实施例中,质询响应协议包括公共密钥密码加密和使用来自受信源120的部署的密钥材料和/或密钥材料202和203。在一个实施例中,使用公共密钥202验证取消部署的许可证。例如,如果来自信息技术(IT)部门的人员期望在没有与SSD已配对的私密密钥的情况下在另一个系统中安装该SSD,则此人使用公共密钥202来验证取消部署许可证。
在一个实施例中,未配对过程407是允许SSD 130直接将配对且已获特权的状态402退出到未配对状态305。在一个实施例中,主机101检测密钥材料202和203而不经过取消部署过程406。
在一个实施例中,重新部署过程408是允许SSD 130获得更新的密钥材料202和203的模式转换。在此类实施例中,SSD 130保持在配对且已获特权的状态402中。在一个实施例中,主机101在预定时间逝去(例如,24小时)之后重新部署密钥材料。
再次参考图2,在一个实施例中,存储器日志2011-N 中每一个具有对应的有效位206和擦写位207。在一个实施例中,存储器日志2011-N在除了有效位206启用为1以指示存储器日志2011-N被锁定时以外的任何模式(305、401、402)中均是可写的。在一个实施例中,有效位206只能在配对且已获特权的模式402中进行修改。
在一个实施例中,主机101通过对密钥材料202和203和/或受信源120中的密钥材料的访问执行专用软件来管理SSD 130上的备份映像2051。在一个实施例中,该专用软件在最终用户接口上启动(例如,通过按下主机101的电源按钮预定时间(例如2秒))。在一个实施例中,该专用软件获授权以特殊处理器模式在最终用户接口上启动。在一个实施例中,该特殊处理器模式包括虚拟机监视器(VMM)、安全飞地、系统管理模式(SMM)。SSM是处理器能够经由BIOS执行平台相关任务的特殊模式。在此类实施例中,主机101能够进入SSD 130的配对且已获特权的模式420。在一个实施例中,在配对且已获特权的模式402中,主机101可操作以检查存储器日志2051-N的一个或多个存储器日志中软件映像的有效性,然后对于它要锁定任何可写访问的存储器将有效位206设为1。在此类实施例中,保护与所设置的有效位206对应的软件映像(一个或多个存储器日志2051-N)免于破坏的任何可能性,直到认证的主机101将有效位206清除为0为止。
在一个实施例中,擦写位207是在任何模式(305、401和402)中可写的。在一个实施例中,擦写位207用于撤销存储器垃圾2051-N的一个或多个存储器日志中计算机平台不再需要的受保护日志。例如,主机101可能将平台组件的新固件映像编程到SSD 130有效位206被清除,即设为0的存储器日志2051-N的一个或多个存储器日志中,并通过将擦写位207设为1来标记存储器日志2051-N的一个或多个存储器日志中的固件映像的先前版本。
在一个实施例中,一旦主机101认证到SSD 130,即,在配对且已获特权的模式402中,主机101可以读取存储器日志2051-N的对应一个或多个存储器日志的擦写位207,并且确定是否要将与该存储器日志对应的有效位206清除为1。
虽然参考图5A-D和图6A-B的流程图中的框是按特定顺序示出的,但是这些动作的顺序可以修改。因此,图示的实施例可以按不同的顺序来执行,并且一些动作/框可以并行地执行。作为附加,在提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储和访问的多种实施例中可以省略一个或多个动作/框。图5A-D和图6A-B的流程图是参考图1-4的实施例来图示的。
图5A是根据本发明的一个实施例的由主机101的处理器110执行以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储的方法500。
在框501处,主机101的处理器110在存储器204中提供受保护存储区域以用于存储软件的备份映像2051。在框502处,处理器110检测到任何恶意软件或病毒在软件中导致的破坏。在框503处,处理器110开始从非易失性存储器204的受保护存储区域130a访问软件的备份映像2051。在框504处,处理器110以备份映像更新破坏的软件,其中存储区域是存储器中的预留供应商相关存储区域130a。
图5B是根据本发明的一个实施例的用于从受保护存储区域130a访问503备份映像2051的方法520。在下文流程图中,主机101和处理器110是可互换的。
在框521处,处理器标识SSD 130是否与处理器110(或主机101)配对。在框522处,作出有关配对的状态的确定。如果SSD 130与处理器110未配对,则方法520进行到框523,否则,方法520继续标识是否发生配对。在框523处,处理器110通过向SSD 130发送命令将密钥材料从受信源120发送到SSD 130来与SSD 130配对。
在一个实施例中,密钥材料是存储在存储器控制器201中的专用位置中的私密密钥203。在一个实施例中,私密密钥203被存储在非易失性存储器204中的专用位置中。在一个实施例中,私密密钥是128位密钥。在一个实施例中,处理器110从SSD 130接收其接收到私密密钥的确认。将私密密钥从受信源120传递到SSD 130也称为私密密钥部署。
在一个实施例中,处理器110将公共密钥从受信源120发送到SSD 130。在一个实施例中,公共密钥被存储在存储器控制器201中的专用位置中。在一个实施例中,在取消部署交易中使用公共密钥,取消部署交易能够由例如服务提供商(ISP)在远程执行。在一个实施例中,处理器110从SSD 130接收其接收到公共密钥的确认。将公共密钥从受信源120传递到SSD 130也称为公共密钥部署。SSD 130响应成功的配对403进入配对且未获特权的状态。
在框524处,最初处于配对且未获特权的状态/模式,处理器110通过认证404存储器进入与SSD 130配对且已获特权的状态/模式。在一个实施例中,处理器110向SSD 130发送触发互相认证的质询响应协议的命令。在一个实施例中,SSD 130响应SSD 130从处理器110接收到启动用于互相认证的质询响应协议 – 第一认证的命令,对处理器130进行认证。在一个实施例中,由处理器110响应SSD 130从处理器110接收到启动用于互相认证的质询响应协议 – 第二认证的命令,对对SSD 130进行认证。在一个实施例中,第一和第二认证均是顺序地/依次地执行。在一个实施例中,第一认证在第二认证之前执行。在另一个实施例中,第二认证在第一认证之前执行。在一个实施例中,第一和第二认证均是并行地,即同时地执行。
图5C是根据本发明的一个实施例的用于主机和具有受保护存储的非易失性存储器的互相认证的方法流程图530。
在框531处,处理器110从存储器接收第一加密的随机数,第一加密的随机数利用密钥加密。在一个实施例中,第一加密的随机数是SSD 130为处理器110生成的质询。处理器110然后将生成对该质询的响应。在一个实施例中,第一随机数的加密使用密码加密执行。在一个实施例中,密码加密利用高级加密标准(AES)和与处理器配对403中使用的私密密钥203来执行。在其他实施例中,可以使用其他形式的密码加密,例如公共密钥加密。在一个实施例中,第一随机数是128位随机数,SSD 130基于AES执行加密以从AES加密生成128位加密的结果。在其他实施例中,可以使用其他大小的随机数。
在框532处,处理器110将第一加密的随机数(质询)解密以生成第一解密的消息(响应)。在一个实施例中,处理器110利用来自受信源120的其私密密钥将第一加密的随机数以生成第一解密的消息(响应)。
在框533处,处理器110将第一解密的消息发送到SSD 130,其中SSD 130验证来自处理器110的第一解密的消息以对处理器110进行认证。在一个实施例中,如果SSD 130验证第一解密的消息与第一随机数相同,则SSD 130断言它已对处理器110进行认证。在一个实施例中,SSD 130向处理器110发送确认消息:它已成功地验证第一解密的消息,并由此质询响应协议成功。在此类实施例中,SSD 130进入配对且已获特权的状态402。框531-533对应于参考图5B论述的第一认证。
再次参考图5C,在框534处,处理器110向SSD 130发送第二加密的随机数,第二加密的随机数(质询2)通过利用密钥将第二随机数加密来生成。在一个实施例中,该密钥是来自受信源120的私密密钥。在一个实施例中,该加密通过密码加密来执行。在一个实施例中,该密码加密利用基于AES的加密和与SSD 130配对403中使用的来自受信源120的私密密钥来执行。在其他实施例中,可以使用其他形式的密码加密,例如公共密钥加密。
在一个实施例中,第二随机数是128位随机数,处理器110执行AES以从AES加密生成128位加密的结果。在其他实施例中,可以使用其他大小的随机数。
在框535处,处理器110从SSD 130接收第二解密的消息,其中SSD 130通过将第二加密的随机数(质询2)解密来生成第二解密的消息(响应2)。在一个实施例中,SSD 130利用其私密密钥203将第二加密的随机数解密。
在框536处,如果第二解密的消息(响应2)与第二随机数匹配,则处理器110向SSD130发送确认。在此类实施例中,SSD 130进入配对且已获特权的状态402。框534-536对应于参考图5B论述的第二认证。正如上文提到的,在一个实施例中,第二认证在第一认证之后执行。在一个实施例中,仅第一认证足够进入配对且已获特权的状态402。
图5D是根据本发明的一个实施例的用于从非易失性存储器204的配对且已获特权的状态402退出到405配对且未获特权的状态401的方法流程图540。在一个实施例中,在框541处,退出405的过程在处理器110向SSD 130发送关闭安全会话的命令时开始。在框544处,响应发送到SSD 130的关闭安全会话的命令,SSD 130和处理器110从配对且已获特权的状态402退出,并进入配对且未获特权的状态401。
在一个实施例中,在框542处,退出405的过程在SSD 130复位时开始。在一个实施例中,在框543处,退出405的过程在链接(与处理器110的输入输出通信)复位或进入训练模式时开始。在其他实施例中,当处理器不再需要对存储器日志2051-N的安全访问时,例如,处理器110或计算机平台的任何组件认识到计算机平台中发生安全性破坏时,其他事件可以触发退出过程405。
在一个实施例中,处理器110通过向SSD 130发送处理器110和SSD 130应该取消配对的命令来启动取消部署过程406。在一个实施例中,利用另一个机器(例如,服务器)和SSD130启动质询响应协议,以使处理器110和SSD 130能够远程安全地取消配对。在此类实施例中,SSD 130从配对且未获特权的模式401返回到未配对模式305。在一个实施例中,可以在质询响应协议中,将公共密钥密码加密与部署的密钥材料(例如,202和/或203)结合来使用。
在一个实施例中,处理器110或主机101向SSD 130发送它不再希望保持两个设备的配对的命令。此过程对应于取消配对过程407。在此类实施例中,SSD 130删除密钥材料(例如,202和/或203),并从配对且已获特权的模式402返回到未配对模式305。
在一个实施例中,处理器110可能期望与SSD 130重新部署408其密钥材料。在一个实施例中,处理器110向SSD 130发送附有来自其受信源120的新密钥材料的命令,该新密钥材料将覆盖SSD 130上的现有密钥材料(例如,202和/或203)。在此类实施例中,SSD 130处于配对且已获特权的状态402。在一个实施例中,SSD 130利用来自处理器110的新密钥材料覆盖密钥材料(例如,202和/或203),然后向处理器110发送它已经成功地重新部署密钥的确认消息。在另一个实施例中,SSD 130质询处理器110,以便即使SSD 130处于配对且已获特权的状态402,处理器110通过质询响应协议向SSD证明处理器110知道该密钥材料(例如,私密密钥)。
图6A是根据本发明的一个实施例的由非易失性存储器204的存储器控制器201执行以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储的方法600。图6A-B的方法是由SSD 130执行的方法,并且涵盖与参考图5A-D论述的过程相似的过程,只是由SSD 130而非处理器110或主机101来执行。所以为了不重复赘述,不再描述所有细节。
在框601处,SSD 130的存储器控制器201将软件的备份映像存储在非易失性存储器204的预留供应商相关存储区域2051-N中。在框602处,SSD 130的存储器控制器201通过从主机101部署私密和公共密钥与主机101(对于处理器110可互换地使用)配对403,以进入配对且未获特权的状态401。在框603处,SSD 130的存储器控制器201通过质询响应协议对主机101进行认证,以从配对且未获特权的状态401进入配对且已获特权的状态402。在框604处,SSD 130的存储器控制器201向主机101发送有关SSD 130与主机101成功认证的确认消息,并响应进入配对且已获特权的状态402允许主机对软件的备份映像的安全访问。
图6B是根据本发明的一个实施例的由非易失性存储器204的处理器/控制器201执行用于主机和具有受保护存储的非易失性存储器204(或SSD 130)的互相认证的方法620。框621-623对应于参考图5A-D论述的第一认证。框624-627对应于参考图5A-D论述的第二认证。
在框621处,SSD 130的存储器控制器201向主机101发送第一加密的随机数(质询)。在一个实施例中,利用私密密钥203将第一随机数加密来生成第一加密的随机数。在框622处,响应发送第一加密的随机数,SSD 130的存储器控制器201从主机101接收响应,其中主机101通过将第一加密的随机数解密来生成响应。在框623处,SSD 130的存储器控制器201验证该响应以对主机101进行认证,在验证响应成功时主机101通过认证。SSD 130然后向主机101发送确认消息。
在框624处,SSD 130的存储器控制器201从主机101接收第二加密的随机数(质询2)。在一个实施例中,利用来自受信源120的私密密钥将第二随机数加密来生成第二加密的随机数。在框625处,SSD 130的存储器控制器201将第二加密的随机数解密以生成解密的消息(响应2)。在框626处,SSD 130的存储器控制器201将解密的消息发送到主机101,以用于主机101将解密的消息与第二随机数匹配。在框627处,在发送解密的消息之后,SSD 130的存储器控制器201从主机101接收确认。
图7是根据本发明的一个实施例的系统级示意图,其包括耦合到固态驱动器(SSD)的主机,该固态驱动器(SSD)可操作以提供用于平台固件的备份映像或需要保护的任何其他软件的受保护存储。
图7是根据本发明的一个实施例的系统级示意图,其包括用于刷新非易失性存储器的处理器和/或存储器控制器。图5还包括机器可读存储介质以执行用于执行多种实施例的方法的计算机可读/可执行指令。这些计算机可读/可执行指令由处理器(例如,处理器111、存储器控制器201)来执行。实施例的要件还作为用于存储计算机可执行指令(例如用于实现图5A-D和图6A-B的流程图以及描述中论述的其他过程的指令)的机器可读介质来提供。在一个实施例中,SSD 130的存储器控制器201执行的过程驻留在SSD 130的非易失性存储器中。
该机器可读介质可以包括但不限于,闪存存储器、光盘、HDD、SSD、CD-ROM、DVDROM、RAM、EPROM、EEPROM、磁卡或光卡、或适于存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本发明的实施例可以作为计算机程序(例如,BIOS)来下载,该计算机程序可以通过数据信号的方式经由通信链路(例如调制解调器或网络连接)从远程计算机(例如服务器)传输到请求计算机(例如客户端)。
在一个实施例中,系统1300包括但不限于桌上型计算机、膝上型计算机、上网本、平板电脑、笔记本计算机、个人数字助理(PDA)、服务器、工作站、蜂窝电话、移动计算设备、智能电话、因特网电器或任何其他类型的计算设备。在另一个实施例中,系统1300实现本文披露的方法,并且可以是芯片上系统(SOC)系统。
在一个实施例中,处理器1310具有一个或多个处理核1312和1312N,其中1312N表示处理器1310内的第N个处理器核,其中N是正整数。在一个实施例中,系统1300包括多个处理器,这些处理器包括处理器1310和1305,其中处理器1305具有与处理器1310的逻辑相似的或完全相同的逻辑。在一个实施例中,系统1300包括多个处理器,这些处理器包括处理器1310和1305,以使处理器1305具有完全独立于处理器1310的逻辑的逻辑。在此类实施例中,多封装系统1300是多样性多封装系统,因为处理器1305和1310具有不同的逻辑单元。在一个实施例中,处理核1312包括但不限于用于提取指令的预提取逻辑、用于将指令解码的解码逻辑、用于执行指令的执行逻辑等。在一个实施例中,处理器1310具有用于缓存系统1300的指令和/或数据的高速缓存存储器1316。在本发明的另一个实施例中,高速缓存存储器1316包括一级、二级和三级高速缓存存储器,或处理器1310内任何其他配置的高速缓存存储器。
在一个实施例中,处理器1310包括存储器控制集线器(MCH)1314,其可操作以执行使得处理器1310能够访问存储器1330以及与之通信的功能,存储器1330包括易失性存储器1332和/或非易失性存储器1334。在一个实施例中,将存储器控制集线器(MCH)1314设在处理器1310外部作为独立的集成电路。
在一个实施例中,处理器1310可操作以与存储器1330和芯片组1320通信。在一个实施例中,处理器1310(与图1的110相同)和芯片组1320是图1的主机101的一部分。在一个实施例中,芯片组1320(与图1的170相同)经由SATA总线1350(与图1的总线180相同)耦合到SSD 1380(与图1的130相同)。在一个实施例中,SSD 1380包括用于存储计算机可执行指令的机器可读介质,这些计算机可执行指令用于实现图6A-B的流程图以及描述中论述要由SSD 130的存储器控制器201执行的其他过程。在此类实施例中,当SSD 1380通电时,SSD1380中的处理器执行这些计算机可执行指令。
在一个实施例中,处理器1310还耦合到无线天线1378以与配置成传送和/或接收无线信号的任何设备通信。在一个实施例中,无线天线接口1378根据但不限于电气和电子工程师协会(IEEE)802.11标准以及其相关的系列、HomePlug AV(HPAV)、超宽带(UWB)、蓝牙、WiMAX或任何形式的无线通信协议来工作。
在一个实施例中,易失性存储器1332包括但不限于同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)或任何其他类型的随机存取存储器器件。非易失性存储器1334包括但不限于,闪存存储器(例如,NAND、NOR)、相变存储器(PCM)、只读存储器(ROM)、电可擦写可编程只读存储器(EEPROM)或任何其他类型的非易失性存储器器件。
存储器1330存储信息和处理器1310要执行的指令。在一个实施例中,处理器1310执行指令时,存储器1330还可以存储临时变量或其他中间信息。在一个实施例中,芯片组1320经由点到点(PtP或P-P)接口1317和1322与处理器1310连接。在一个实施例中,芯片组1320使处理器1310连接到系统1300中的其他模块。在本发明的一个实施例中,接口1317和1322根据如INTEL® QuickPath Interconnect(QPI)等的PtP通信协议工作。
在一个实施例中,芯片组1320可操作以与处理器1310、1305、显示设备1340以及其他设备1372、1376、1374、1360、1362、1364、1366、1377等通信。在一个实施例中,芯片组1320还耦合到无线天线1378以与配置成传送和/或接收无线信号的任何设备通信。
在一个实施例中,芯片组(1320)经由接口1326连接到显示设备1340。在一个实施例中,显示器1340包括但不限于液晶显示器(LCD)、等离子、阴极射线管(CRT)显示器或任何其他形式的可视显示设备。在本发明的一个实施例中,将处理器1310和芯片组1320合并到单个SOC中。此外,芯片组1320连接到一个或多个总线1350和1355,一个或多个总线1350和1355将多种模块1374、1360、1362、1364和1366互连。在一个实施例中,如果总线速度或通信协议中存在不匹配,则总线1350和1355可以经由总线桥1372互连在一起。在一个实施例中,芯片组1320与但不限于非易失性存储器1360、海量存储设备1362、键盘/鼠标1364和网络接口1366耦合,以及经由接口1324与智能TV 1376、消费电子产品1377等耦合。
在一个实施例中,海量存储设备1362包括但不限于固态驱动器、硬盘驱动器、通用串行总线闪存存储器驱动器或任何其他形式的计算机数据存储介质。在一个实施例中,网络接口1366通过任何类型的公知网络接口标准来实现,包括但不限于,以太网接口、通用串行总线(USB)接口、外围组件互连(PCI)Express接口、无线接口和/或任何其他适合类型的接口。在一个实施例中,该无线接口1378根据但不限于IEEE 802.11标准以及其相关的系列、HomePlug AV(HPAV)、超宽带(UWB)、蓝牙、WiMAX或任何形式的无线通信协议来工作。
虽然图5所示的模块示出为系统1300内的分开框,但是这些框的其中一些执行的功能可以集成在单个半导体电路内或可以使用两个或更多个分开的集成电路来实现。例如,虽然高速缓存存储器1316示出为处理器1310内的分开框,但是高速缓存存储器1316能够分别并入到处理器核1312中。在一个实施例中,在本发明的另一个实施例中,系统1300可以包括多于一个处理器/处理核。
说明书中对“一个实施例”、“实施例”或“一些实施例”的引述表示结合该实施例描述的一个特定特征、结构或特点被包含在至少一些实施例中,但是不一定包含在所有实施例中。不同位置出现“一个实施例”或“一些实施例”不一定全部指相同的实施例。如果说明书陈述“可以”、“可能”或“能够”包含组件、特征、结构或特点,则不一定要包含该特定组件、特征、结构或特点。如果说明书或权利要求涉及“一个”元件,则不表示存在这些元件的仅其中一个。如果说明书或权利要求涉及“一个附加”元件,则不排除存在多于一个该附加元件。
虽然本发明是结合其特定实施例来描述的,但是本领域技术人员根据前文描述将显见到此类实施例的许多替代、修改和变化。本发明的实施例理应涵盖所有此类替代、修改和变化视为落在所附权利要求的广义范围内。
Claims (31)
1.一种用于提供存储器访问控制的方法,包括:
由处理器在非易失性存储器中提供用于存储软件的备份映像的受保护存储区域;
检测所述软件中的破坏;
从所述受保护存储区域访问所述软件的所述备份映像;以及
使用所述备份映像更新被破坏的软件,其中所述受保护存储区域是所述非易失性存储器中的供应商专用预留的日志信息存储区域。
2.如权利要求1所述的方法,其中从所述受保护存储区域访问所述软件的所述备份映像包括:
标识所述非易失性存储器是否与所述处理器配对;以及
响应标识所述非易失性存储器未与所述处理器配对,通过向所述非易失性存储器发送以在所述非易失性存储器的专用区域中写入密钥的命令来与所述非易失性存储器配对,其中与所述非易失性存储器的成功配对促使所述非易失性存储器进入配对且未获特权的状态。
3.如权利要求2所述的方法,还包括响应配对,通过在所述配对且未获特权的状态中对所述非易失性存储器进行认证来进入与所述非易失性存储器的配对且已获特权的状态。
4.如权利要求3所述的方法,其中对配对的非易失性存储器进行认证包括,向所述非易失性存储器发送命令,所述命令触发与所述非易失性存储器和所述处理器的质询响应协议以进行所述非易失性存储器和所述处理器的互相认证。
5.如权利要求4所述的方法,其中互相认证包括:
从所述非易失性存储器接收第一加密的随机数,所述第一加密的随机数利用所述密钥加密;
将所述第一加密的随机数解密以生成第一解密的消息;以及
将所述第一解密的消息发送到所述非易失性存储器;
其中所述非易失性存储器验证来自主机的所述第一解密的消息以对所述主机进行认证。
6.如权利要求4所述的方法,其中认证还包括:
向所述非易失性存储器发送第二加密的随机数,所述第二加密的随机数通过利用所述密钥将第二随机数加密而生成;
从所述非易失性存储器接收第二解密的消息,其中所述非易失性存储器通过将所述第二加密的随机数解密来生成所述第二解密的消息;以及
如果所述第二解密的消息与所述第二随机数匹配,则向所述非易失性存储器发送确认。
7.如权利要求3所述的方法,还包括通过向所述非易失性存储器发送关闭安全会话的命令以从所述非易失性存储器的所述配对且已获特权的状态退出到所述配对且未获特权的状态。
8.如权利要求2所述的方法,还包括通过向所述非易失性存储器发送触发与另一个机器的质询响应协议的命令来将所述非易失性存储器从所述非易失性存储器的所述配对且未获特权的状态取消部署以到未配对状态。
9.如权利要求3所述的方法,还包括通过向所述非易失性存储器发送删除所述密钥的命令来将所述非易失性存储器与主机取消配对,其中在所述取消配对之前,所述非易失性存储器处于所述配对且已获特权的状态中。
10.如权利要求3所述的方法,还包括通过向所述非易失性存储器发送覆盖所述非易失性存储器中存储的所述密钥的命令以将所述非易失性存储器重新部署回所述配对且已获特权的状态。
11.如权利要求1所述的方法,其中所述软件的所述备份映像包含计算机平台的一个或多个组件的软件的备份映像,以及其中所述非易失性存储器是固态驱动器SSD的一部分。
12.一种用于提供存储器访问控制的方法,包括:
由存储器控制器将软件的备份映像存储在非易失性存储器中的供应商专用预留的日志信息存储区域中;
通过从主机部署私密密钥和公共密钥与该主机配对,以进入配对且未获特权的状态;
通过质询响应协议对主机进行认证以从配对且未获特权的状态进入配对且已获特权的状态;以及
响应进入所述配对且已获特权的状态,对所述主机允许所述软件的所述备份映像的安全访问。
13.如权利要求12所述的方法,其中通过部署所述私密密钥和公共密钥来与所述主机配对包括:
从所述主机接收所述私密密钥和公共密钥;
存储所述私密密钥和公共密钥;以及
响应存储所述私密密钥和公共密钥向所述主机发送确认。
14.如权利要求12所述的方法,其中对所述主机进行认证包括:
向所述主机发送第一加密的随机数,所述第一加密的随机数通过利用所述私密密钥将第一随机数加密而生成;
响应发送所述第一加密的随机数,从所述主机接收响应,其中所述主机通过将所述第一加密的随机数解密来生成所述响应;以及
验证所述响应以对所述主机进行认证,在验证所述响应成功时所述主机通过认证。
15.如权利要求14所述的方法,还包括:
向所述主机接收第二加密的随机数,所述第二加密的随机数通过利用所述私密密钥将第二随机数加密而生成;
将所述第二加密的随机数解密以生成解密的消息;
将所述解密的消息发送到所述主机,以用于将所述解密的消息与所述第二随机数匹配;以及
在发送所述解密的消息之后,从所述主机接收确认。
16.如权利要求12所述的方法,还包括响应来自所述主机的命令,退出所述配对且已获特权的状态。
17.如权利要求12所述的方法,还包括通过将所述非易失性存储器取消配对并进入未配对状态来将所述非易失性存储器取消部署,其中取消部署通过与服务器进行质询响应协议来执行。
18.如权利要求12所述的方法,还包括通过删除先前从所述主机部署的所述私密密钥,以将所述非易失性存储器取消配对,其中在所述取消配对之前,所述非易失性存储器处于所述配对且已获特权的状态中。
19.如权利要求12所述的方法,还包括响应来自所述主机的命令,通过覆盖所述私密密钥来重新部署所述非易失性存储器,其中在所述重新部署之前和之后,所述非易失性存储器处于所述配对且已获特权的状态中。
20.如权利要求12所述的方法,其中所述存储器控制器和所述非易失性存储器是固态驱动器SSD的一部分。
21.一种用于提供存储器访问控制的系统,其包括:
主机,所述主机包括处理器;
耦合到所述主机的显示器;以及
耦合到所述主机的固态驱动器SSD,所述SSD包括:
耦合到非易失性存储器的存储器控制器,所述存储器控制器能够操作以执行:
将软件的备份映像存储在所述非易失性存储器中的供应商专用预留的日志信息存储区域中;
通过从所述主机部署私密密钥和公共密钥与所述主机配对,以进入配对且未获特权的状态;
通过质询响应协议对所述主机进行认证以从所述配对且未获特权的状态进入配对且已获特权的状态;以及
响应进入所述配对且已获特权的状态,对所述主机允许所述软件的所述备份映像的安全访问。
22.如权利要求21所述的系统,其中所述存储器控制器能够操作以通过执行包括如下的方法来与所述主机配对:
从所述主机接收所述私密密钥和公共密钥;
存储所述私密密钥和公共密钥;以及
响应存储所述私密密钥和公共密钥向所述主机发送确认。
23.如权利要求21所述的系统,其中所述存储器控制器能够操作以通过执行包括如下的方法来对所述主机进行认证:
向所述主机发送第一加密的随机数,所述第一加密的随机数通过利用所述私密密钥将第一随机数加密而生成;
响应发送所述第一加密的随机数,从所述主机接收响应,其中所述主机通过将所述第一加密的随机数解密来生成所述响应;以及
验证所述响应以对所述主机进行认证,在验证所述响应成功时所述主机通过认证。
24.如权利要求23所述的系统,其中所述方法还包括:
向所述主机接收第二加密的随机数,所述第二加密的随机数通过利用所述私密密钥将第二随机数加密而生成;
将所述第二加密的随机数解密以生成解密的消息;
将所述解密的消息发送到所述主机,以用于将所述解密的消息与所述第二随机数匹配;以及
在发送所述解密的消息之后,从所述主机接收确认。
25.如权利要求21所述的系统,其中所述存储器控制器能够操作以响应来自所述主机的命令,退出所述配对且已获特权的状态。
26.如权利要求21所述的系统,其中所述存储器控制器能够操作以通过将所述非易失性存储器取消配对并进入未配对状态来将所述非易失性存储器取消部署,其中取消部署通过与服务器进行质询响应协议来执行。
27.如权利要求21所述的系统,其中所述存储器控制器能够操作以通过删除先前从所述主机部署的所述私密密钥,以将所述非易失性存储器取消配对,其中在所述取消配对之前,所述非易失性存储器处于所述配对且已获特权的状态中。
28.如权利要求21所述的系统,其中所述存储器控制器能够操作以响应来自所述主机的命令通过覆盖所述私密密钥来重新部署所述非易失性存储器,其中在所述重新部署之前和之后,所述非易失性存储器处于所述配对且已获特权的状态中。
29.如权利要求21所述的系统,其中所述显示器是触摸屏平板。
30.如权利要求21所述的系统,其中所述软件是固件。
31.一种用于提供存储器访问控制的装置,包括:
用于将软件的备份映像存储在非易失性存储器中的供应商专用预留的日志信息存储区域中的部件;
用于通过从主机部署私密和公共密钥与该主机配对以进入配对且未获特权的状态的部件;
用于通过质询响应协议对主机进行认证以从配对且未获特权的状态进入配对且已获特权的状态的部件;以及
用于响应进入所述配对且已获特权的状态而对所述主机允许所述软件的所述备份映像的安全访问权的部件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/053961 WO2013048407A1 (en) | 2011-09-29 | 2011-09-29 | Apparatus, system, and method for providing memory access control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103946806A CN103946806A (zh) | 2014-07-23 |
CN103946806B true CN103946806B (zh) | 2017-06-16 |
Family
ID=47996150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075091.XA Active CN103946806B (zh) | 2011-09-29 | 2011-09-29 | 用于提供存储器访问控制的装置、系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235719B2 (zh) |
KR (1) | KR101636816B1 (zh) |
CN (1) | CN103946806B (zh) |
WO (1) | WO2013048407A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012084071A (ja) | 2010-10-14 | 2012-04-26 | Toshiba Corp | デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置 |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
US9411748B2 (en) | 2011-12-20 | 2016-08-09 | Intel Corporation | Secure replay protected storage |
US9405707B2 (en) | 2011-12-20 | 2016-08-02 | Intel Corporation | Secure replay protected storage |
JP2014089644A (ja) * | 2012-10-31 | 2014-05-15 | Toshiba Corp | プロセッサ、プロセッサ制御方法及び情報処理装置 |
US9201811B2 (en) * | 2013-02-14 | 2015-12-01 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
US20150033034A1 (en) * | 2013-07-23 | 2015-01-29 | Gideon Gerzon | Measuring a secure enclave |
US20150113241A1 (en) * | 2013-10-21 | 2015-04-23 | Jason Martin | Establishing physical locality between secure execution environments |
US10620855B2 (en) | 2016-09-06 | 2020-04-14 | Samsung Electronics Co., Ltd. | System and method for authenticating critical operations on solid-state drives |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
JP6934951B2 (ja) * | 2017-03-22 | 2021-09-15 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | 装置を横断する普遍的データアクセス |
US10394542B1 (en) * | 2018-04-16 | 2019-08-27 | Infineon Technologies Ag | Low-power device recovery using a backup firmware image |
CN108762791B (zh) * | 2018-06-07 | 2022-09-16 | 深圳市元征科技股份有限公司 | 固件升级方法及装置 |
TWI676987B (zh) * | 2018-08-06 | 2019-11-11 | 新唐科技股份有限公司 | 資料處理系統與資料處理方法 |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US10846162B2 (en) * | 2018-11-29 | 2020-11-24 | Oracle International Corporation | Secure forking of error telemetry data to independent processing units |
US11321468B2 (en) * | 2018-12-31 | 2022-05-03 | Micron Technology, Inc. | Systems for providing access to protected memory |
US11308243B2 (en) * | 2019-09-11 | 2022-04-19 | International Business Machines Corporation | Maintenance of access for security enablement in a storage device |
EP4097593A4 (en) * | 2020-01-27 | 2023-10-04 | Hewlett-Packard Development Company, L.P. | FIRMWARE CORRUPTION RECOVERY |
US11743058B2 (en) * | 2020-03-05 | 2023-08-29 | International Business Machines Corporation | NVDIMM security with physically unclonable functions |
US11520937B2 (en) * | 2020-08-12 | 2022-12-06 | Dell Products L.P. | NVMe over fabrics authentication system |
US11483148B2 (en) | 2021-01-15 | 2022-10-25 | Micron Technology, Inc. | Batch transfer of control of memory devices over computer networks |
US20220231838A1 (en) * | 2021-01-15 | 2022-07-21 | Micron Technology, Inc. | Server System to Control Memory Devices over Computer Networks |
JP7408593B2 (ja) * | 2021-03-23 | 2024-01-05 | 株式会社東芝 | 制御装置、情報処理装置、および情報処理システム |
CN114035833A (zh) * | 2022-01-10 | 2022-02-11 | 深圳市安信达存储技术有限公司 | ssd的固件在线烧录方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477484A (zh) * | 2009-01-20 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种恢复被破坏主引导程序的方法及设备 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6742080B1 (en) | 1996-09-06 | 2004-05-25 | Intel Corporation | Disk block allocation optimization methodology and application |
US6253296B1 (en) | 1996-09-06 | 2001-06-26 | Intel Corporation | Disk block allocation optimization methodology and applications |
US5920896A (en) | 1997-03-21 | 1999-07-06 | Intel Corporation | Reducing operating system start-up/boot time through disk block relocation |
US6434663B1 (en) | 1996-09-06 | 2002-08-13 | Intel Corporation | Disk block allocation optimization methodology with accommodation for file system cluster size greater than operating system memory page size |
US5802593A (en) | 1996-09-06 | 1998-09-01 | Intel Corporation | Method and apparatus for improving disk drive performance |
US6023713A (en) | 1996-09-06 | 2000-02-08 | Intel Corporation | Optimized CD/DVD authoring employing block reallocation |
US5845297A (en) | 1997-06-30 | 1998-12-01 | Intel Corporation | Disk block relocation de-optimization detection methodology and applications |
US6711675B1 (en) | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
US6934807B1 (en) | 2000-03-31 | 2005-08-23 | Intel Corporation | Determining an amount of data read from a storage medium |
US20020083331A1 (en) * | 2000-12-21 | 2002-06-27 | 802 Systems, Inc. | Methods and systems using PLD-based network communication protocols |
DE10200288A1 (de) * | 2002-01-07 | 2003-07-17 | Scm Microsystems Gmbh | Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung |
US7000077B2 (en) | 2002-03-14 | 2006-02-14 | Intel Corporation | Device/host coordinated prefetching storage system |
US7103724B2 (en) | 2002-04-01 | 2006-09-05 | Intel Corporation | Method and apparatus to generate cache data |
US6917992B2 (en) | 2002-09-30 | 2005-07-12 | Intel Corporation | Method and apparatus for efficient command queuing within a serial ATA environment |
US7113003B2 (en) | 2002-12-11 | 2006-09-26 | Intel Corporation | Presence indication signal associated with an attachment |
US7107369B2 (en) | 2002-12-19 | 2006-09-12 | Intel Corporation | Connecting storage devices to a processor-based device |
JP4252301B2 (ja) * | 2002-12-26 | 2009-04-08 | 株式会社日立製作所 | 記憶システム及びそのデータバックアップ方法 |
US6986008B2 (en) | 2003-01-14 | 2006-01-10 | International Business Machines Corporation | Backup firmware in a distributed system |
US20040193737A1 (en) | 2003-03-31 | 2004-09-30 | Huffman Amber D. | Apparatus, method and system to couple one or more hosts to a storage device using unique signal from host |
KR100584338B1 (ko) * | 2003-09-17 | 2006-05-26 | 삼성전자주식회사 | 소프트웨어 업데이트 방법 및 시스템 |
US20050064859A1 (en) * | 2003-09-23 | 2005-03-24 | Motorola, Inc. | Server-based system for backing up memory of a wireless subscriber device |
US7124248B2 (en) | 2003-10-20 | 2006-10-17 | Intel Corporation | Current media status determination for a storage device |
US7515528B2 (en) | 2004-03-31 | 2009-04-07 | Intel Corporation | Host fail-over switch presence detection compatible with existing protocol and host controllers |
US7774781B2 (en) | 2005-09-30 | 2010-08-10 | Intel Corporation | Storage subsystem access prioritization by system process and foreground application identification |
US20070079015A1 (en) | 2005-09-30 | 2007-04-05 | Intel Corporation | Methods and arrangements to interface a data storage device |
US20070156955A1 (en) | 2005-12-30 | 2007-07-05 | Royer Robert J Jr | Method and apparatus for queuing disk drive access requests |
KR100791293B1 (ko) * | 2006-03-09 | 2008-01-04 | 삼성전자주식회사 | 네트워크 내 컴퓨터 시스템의 데이터 관리 장치 및 방법 |
US20090144347A1 (en) | 2007-11-30 | 2009-06-04 | Boyd James A | Storage volume spanning with intelligent file placement and/or rearrangement |
KR20090060774A (ko) | 2007-12-10 | 2009-06-15 | 한국전자통신연구원 | 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법 |
US8365983B2 (en) | 2009-11-20 | 2013-02-05 | Intel Corporation | Radio-frequency reconfigurations of microelectronic systems in commercial packages |
US8522322B2 (en) | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
KR101064164B1 (ko) * | 2011-03-02 | 2011-09-15 | (주)아이넷캅 | 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법 |
WO2013100908A1 (en) | 2011-12-27 | 2013-07-04 | Intel Corporation | Optimized cold boot for non-volatile memory |
-
2011
- 2011-09-29 US US13/992,222 patent/US9235719B2/en active Active
- 2011-09-29 WO PCT/US2011/053961 patent/WO2013048407A1/en active Application Filing
- 2011-09-29 KR KR1020147008421A patent/KR101636816B1/ko active IP Right Grant
- 2011-09-29 CN CN201180075091.XA patent/CN103946806B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477484A (zh) * | 2009-01-20 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种恢复被破坏主引导程序的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
US9235719B2 (en) | 2016-01-12 |
KR101636816B1 (ko) | 2016-07-20 |
CN103946806A (zh) | 2014-07-23 |
US20130262877A1 (en) | 2013-10-03 |
WO2013048407A1 (en) | 2013-04-04 |
KR20140069068A (ko) | 2014-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103946806B (zh) | 用于提供存储器访问控制的装置、系统和方法 | |
TWI514187B (zh) | 提供儲存裝置上防有毒軟體保護之系統與方法 | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
KR101608510B1 (ko) | 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법 | |
CN109858265A (zh) | 一种加密方法、装置及相关设备 | |
WO2004006075A1 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
CN102262599B (zh) | 一种基于可信根的移动硬盘指纹认证方法 | |
TW200949601A (en) | Microprocessor apparatus providing for secure interrupts and exceptions | |
TWI424321B (zh) | 雲端儲存系統及方法 | |
CN109614769A (zh) | 按照参考平台清单和数据封装的安全操作系统启动 | |
CN109804598B (zh) | 信息处理的方法、系统及计算机可读介质 | |
WO2015079196A1 (en) | Controlled storage device access | |
JP7256862B2 (ja) | 保護されたコンテナ間のセキュア通信方法およびそのシステム | |
CN107832589A (zh) | 软件版权保护方法及其系统 | |
CN111160879A (zh) | 一种硬件钱包及其安全性提升方法和装置 | |
CN102024115B (zh) | 一种具有用户安全子系统的计算机 | |
US20210243030A1 (en) | Systems And Methods To Cryptographically Verify An Identity Of An Information Handling System | |
CN103051593A (zh) | 一种数据安全摆渡的方法及系统 | |
JPWO2017208618A1 (ja) | 情報処理装置および情報処理システム | |
JP6357091B2 (ja) | 情報処理装置、及びコンピュータプログラム | |
US20190044709A1 (en) | Incorporating software date information into a key exchange protocol to reduce software tampering | |
US11783027B2 (en) | Systems and methods for managing state | |
Gupta et al. | Security and Cryptography | |
JP2008306685A (ja) | セキュリティ情報設定システム、そのマスタ端末、一般端末、プログラム | |
Plaga et al. | Secure your SSH Keys! Motivation and practical implementation of a HSM-based approach securing private SSH-Keys |
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 |