CN112181860B - 具有快闪存储器仿真功能的控制器及其控制方法 - Google Patents
具有快闪存储器仿真功能的控制器及其控制方法 Download PDFInfo
- Publication number
- CN112181860B CN112181860B CN201911179841.2A CN201911179841A CN112181860B CN 112181860 B CN112181860 B CN 112181860B CN 201911179841 A CN201911179841 A CN 201911179841A CN 112181860 B CN112181860 B CN 112181860B
- Authority
- CN
- China
- Prior art keywords
- controller
- flash memory
- host
- instructions
- platform module
- 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 234
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 title abstract description 29
- 238000004088 simulation Methods 0.000 title abstract description 4
- 238000004891 communication Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 6
- 230000006386 memory function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供一种具有快闪存储器仿真功能的控制器及其控制方法,其包含一主机接口以及一处理器。主机接口与一主机进行通信。处理器可通过主机接口从主机接收在非易失性存储器(NVM)中执行的多个指令,并从多个指令中识别出有关于安全单向性计数器且试图在嵌有安全单向性计数器的NVM中执行的指令,接着执行所识别的指令且代替此NVM向主机回应此指令。
Description
相关申请的交叉引用
此申请书为于2019年4月7日所提交的美国专利申请号16/377,211的部分继续申请案,其为于2015年5月17日所提交的美国专利申请号14/714,298的部分继续申请案,其主张于2014年7月24日所提交的美国临时申请案号第62/028,345的优先权。
技术领域
本发明有关于安全计算环境,特别是有关于一种用于仿真(emulate)具有嵌入式安全单向性计数器快闪存储器的方法以及系统。
背景技术
个人电脑(PC)平台通常使用串列快闪存储器来存储非易失性数据,例如,基本输入输出系统(BIOS)程序码。在一些情况下串列快闪存储器亦提供永久存储功能以支援重要的功能,例如安全以及电源管理。
为了符合安全需求,快闪存储器装置可包含一个或多个重放保护单向性计数器(replay protection monotonic counter,RPMC),其耦接密钥以及适当的软件,用以保护快闪存储器防范未经授权操作,例如重放攻击(replay attack)。
目前本技术领域已知有多种使用单向性计数器的安全技术,例如美国专利案号9,405,707,其描述一种系统包含一快闪存储器装置,其包含一单向性计数器以及一主机装置,该主机装置与快闪存储器装置耦接并可进行通信,用以产生鉴别凭证、使用此鉴别凭证以及一装置金钥产生的第一签章,从快闪存储器装置的单向性计数器要求一数值,从单向性计数器接收此数值以及从快闪存储器装置接收此鉴别凭证,再传送一指令以及上述装置金钥产生的第二签章以增加快闪存储器的单向性计数器的数值。其中快闪存储器装置可用自己的金钥验证上述从单向性计数器要数值的要求以及指令,以增加单向性计数器。
发明内容
为解决上述问题,本发明提供一种控制器,其包含:一主机接口,用以与一主机进行通信;以及一处理器,用以通过该主机接口从该主机接收在一非易失性存储器(NVM)执行的多个指令,在该多个指令之中识别初一有关于安全单向性计数器且在嵌有安全单向性计数器的一NVM中执行的指令,以及执行该所识别的指令,并取代该NVM向该主机回应该所识别的指令。
根据一实施例,控制器,更包含一存储器接口,而处理器通过该存储器接口与一不具有嵌入式安全单向性计数器的NVM进行通信,以及将该所识别的指令以外的该指令转送至该NVM以执行。根据一实施例,当处理器执行该所识别的指令时,该处理器覆盖一芯片选择(CS)信号,该主机将该芯片选择信号设定有效以选择该NVM。根据一实施例,处理器通过拦截一芯片选择信号以接收试图存取该NVM的指令,该主机将该芯片选择信号设定有效以选择该NVM。
根据一实施例,处理器用以与一信任平台模块(TPM)结合执行该所识别的指令。根据一实施例,信任平台模块整合在该控制器中。根据一实施例,信任平台模块位于该控制器外部,该控制器更包含一信任平台模块接口用以与该信任平台模块进行通信。根据一实施例,信任平台模块位于该控制器外部且连接至该主机,该处理器通过该主机接口与该信任平台模块进行通信。
根据一实施例,所识别的指令符合一重放保护单向性计数器(replay-protectedmonotonic counter,RPMC)规范,该处理器根据该RPMC规范用以执行该所识别的指令。
本发明再提供一种控制方法,其包含:在一控制器中,从一主机接收用以在一非易失性存储器(NVM)中执行的多个指令;从该多个指令中识别出一与安全单向性计数器有关且试图在一嵌有安全单向性计数器的NVM中执行的指令;以及由该控制器代替该NVM执行该所识别的指令。
附图说明
图1为根据本发明的一实施例示意性绘示具有从属附加快闪存储器(Slave-Attached-Flash,SAF)组态的运算系统的方块图,该SAF组态执行重放保护单向性计数器(RPMC)快闪存储器仿真。
图2为根据本发明的另一实施例示意性绘示具有主机附加快闪存储器组态(host-attached Flash configuration)的运算系统的方块图,该主机附加快闪存储器组态执行RPMC快闪存储器仿真。
图3为根据本发明的又一实施例示意性绘示具有一SAF组态的运算系统的方块图,SAF组态执行RPMC快闪存储器仿真。
图4为根据本发明的再一实施例示意性绘示具有主机附加快闪存储器组态的运算系统的方块图,该主机附加快闪存储器组态执行RPMC快闪存储器仿真。
图5为根据本发明的第五实施例示意性绘示具有SAF组态的运算系统的方块图,该SAF组态执行RPMC快闪存储器仿真。
符号说明:
100、200、300、400、500:运算系统
102、202、302、402、502:主机
104、204、304、414、514:TPM
106、206、306、406、506:快闪存储器
108、208、308、408、508:控制器
110、210、310、410、510:处理器
112、212、312、412、512:主机接口
114、214、414、514:I2C端口
116、316、516:SPI端口
318:快闪存储器应用驱动程序
320:服务驱动程序
具体实施方式
以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
当在此使用时,除非文中另行明确地表示,否则「一」、「该」、「此」等单数型式亦旨在包含多型式。图式中相似的参考符号代表相似的元件。
非易失性存储器(NVM)装置,例如快闪存储器,可用于存储电脑系统使用的启动代码或其他敏感信息,其为敏感信息而有电脑骇客会尝试骇入。传统NVM提供非常低程度的保护,例如NVM的区段有防写保护。RPMC规范包含一写入256位的“根金钥"的指令。根金钥存储在快闪存储器而不可从外部读取。经验证的指令以及回应使用杂凑值信息验证码(HashMessage Authentication Code,HMAC)金钥签章。可使用HMAC验证此签章。HMAC金钥存储在快闪存储器内且不可通过测试模式读取。经验证的"HMAC金钥更新指令"可用于衍生一256位的HMAC金钥。
安全单向性计数器的示例为重放保护单向性计数器(replay protectedmonotonic counter,RPMC)。英特尔2013年修订版0.7的“Serial Flash harden ProductExternal Architecture Specification(EAS)"规范(文件编号:328802-001EN)有描述RPMC规范,其包含架构以及指令集。其做为参考文献通过引用并入本文。
RPMC规范包含一写入256位的“根金钥”的指令。此根金钥存储在快闪存储器内且不可从外部读取。根金钥只能在系统制造期间一次性编程。32位单向性计数器与根金钥相关。不管根金钥的值为何,当有效256位写入根金钥操作执行时,32位单向性计数器会初始化为零。
经过验证的指令以及回应为使用杂凑信息验证码金钥(HMAC Key)签章的指令以及回应。可使用HMAC验证此签章。HMAC金钥存储在快闪存储器内且不可通过测试模式读取,一经过验证的"HMAC金钥更新指令"可用于衍生一256位HMAC金钥。HMAC金钥使用HMAC-SHA-256在从根金钥以及在此指令期间供应的金钥数据所取得。因此,此指令会执行两个HMAC-SHA-256操作,其中一个用于取得HMAC金钥,而另一个用于验证签章。
其他经过验证的指令用于支援增加以及读取RPMC计数器。RPMC规范要求四个计数器的最小相关资源,例如支援根金钥暂存器(root key register)以及HMAC金钥暂存器(HMAC key register)。上述英特尔RPMC规范的2.1段落中有列出RPMC指令的清单。
本发明的实施例揭露一种方法以及系统,其使用一非安全性快闪存储器以及一控制器以仿真(emulate)一具有嵌入式单向性计数器的安全性NVM(例如,支援RPMC的快闪存储器)。控制器位于非安全性快闪存储器的外部,且可为一嵌入控制器(EC)、一基板管理控制器(BMC)、一超级输入输出(super I/O)控制器、或是其他任何适合控制器。在一实施例中,运算系统包含一控制器,其与一主机以及一非安全性快闪存储器(例如,传统串列式快闪存储器装置)进行通信。主机执行快闪存储器指令,包含存取存储在快闪存储器中的数据的指令、以及安全相关的指令(例如RPMC指令)。控制器配合非安全性快闪存储器进行操作,以对仿真(emulate)一面向该主机的安全性快闪存储器。
虽然下列说明主要参考RPMC,但本发明的技术适用其他嵌在NVM中的任何适合类型的安全单向性计数器。虽然下列说明主要参考串列式快闪存储器(serial Flash),但是本发明的技术适用其他任何适合类型的NVM。以下对串列式快闪存储器以及RPMC的说明仅是示例,而非为限制本发明。
为了方便起见,以下内容会将支援安全功能的快闪存储器称为安全性快闪存储器(Secure-Flash),而不支援安全功能的快闪存储器称为非安全性快闪存储器(non-Secure-Flash)。进一步,以下内容会将支援RPMC的安全性快闪存储器称为RPMC快闪存储器(RPMC-Flash),而不支援RPMC的快闪存储器称为非RPMC快闪存储器(non-RPMC-Flash)。
在一实施例中,运算系统包含一控制器,其与主机以及非安全性快闪存储器(例如非安全性快闪存储器)进行通信。主机执行快闪存储器指令,其包含存取存储在快闪存储器中的数据的指令、以及存取安全相关的指令(例如RPMC指令)。控制器配合非安全性快闪存储器进行操作以仿真一面向对主机的安全性快闪存储器。例如,在一个包含一非安全性快闪存储器以及一控制器的系统中,主机可发布一增加单向性计数器的指令,由RPMC-Flash执行。控制器可拦截此指令,以及面对主机通透地(transparent)代替快闪存储器执行此指令。
在一些实施例中,控制器包含一主机接口用以与主机进行通信;以及一处理器用于通过主机接口从主机接收多个在安全性快闪存储器中执行的指令。处理器会识别出安全相关的快闪存储器指令(例如RPMC指令),并执行此些安全相关指令中的至少一些,以回应主机。非安全性快闪存储器可执行主机发出的非安全相关指令。
根据本发明的其他实施例,运算系统包含一非安全性快闪存储器装置,此控制器包含一快闪存储器接口单元耦接于非安全性快闪存储器,在此组态中,经由控制器连接至主机的快闪存储器称为从属附加快闪存储器(slave-attached-flash,SAF)。处理器通过主机接口单元从主机接收多个快闪存储器指令。处理器执行安全相关的指令,并经由快闪存储器接口传送非安全相关的指令(non-security-related instruction)至非安全性快闪存储器中执行。处理器接着通过主机接口单元回应主机。
在一些实施例中,主机通过串列汇流排,例如序列周边接口(SPI)或是延伸增强序列周边设备接口(eSPI),与控制器进行通信;串列汇流排包含,例如,双向数据线、时脉线以及多条芯片选择(CS)线。对应每一装置的CS线连接至串列汇流排。被主机设定有效以与一安全性快闪存储器进行通信的CS线连接至控制器,并通过控制器转达(relay)CS信号至一非安全性快闪存储器。针对非安全相关的指令,控制器将此CS信号转达至快闪存储器;针对安全相关的指令(例如RPMC指令),控制器会对非安全性快闪存储器覆盖此CS信号。
根据本发明的其他实施例,非安全性快闪存储器通过SPI汇流排或是eSPI汇流排连接至主机,而主机为了与一安全性快闪存储器进行通信而产生的CS信号连接至非安全性快闪存储器的CS输入端。然而,非安全性快闪存储器不会回应安全相关指令,其表示非安全性快闪存储器无法执行安全相关指令。控制器会拦截(intercept)主机传送至快闪存储器的CS信号,并检查此指令类型。控制器将执行快闪存储器无法执行的指令。
在一些实施例中,执行安全相关指令的操作包含处理安全功能,例如进行安全签章(security-signing)或是验证安全签章(verification of a security signature)。在一实施例中,主机包含一信任平台模块(TPM)。信任平台模块为一安全加密处理的国际标准(ISO/IEC11889),其专用于微控制器设计以使用整合加密金钥保护硬件安全。控制器以及信任平台模块可共用一用于致能控制器与信任平台模块的间通信的机密数据。控制器可处理主机使用信任平台模块作为具有安全连结的安全NV存储单元而发出的安全相关指令。
在本发明的一些实施例中,控制器包含一信任平台模块,而控制器与信任平台模块的间的通信以本来就安全的方式(或是至少比芯片间(I2C)通信还安全的方式)在芯片内完成。
在其他的实施例,控制器不包含用于信任平台模块(TPM)的接口,而是通过主机与信任平台模块进行通信。为了存取信任平台模块,控制器传送一要求至主机,主机将要求转达至信任平台模块。当信任平台模块有回应,主机接收此回应并将其传送至控制器。
在本发明的一些实施例中,由控制器代替安全性快闪存储器执行的安全相关指令包含RPMC指令,其由RPMC规范或是其一部分所定义。
能遵守上述RPMC规范的快闪存储器装置称为RPMC快闪存储器,其包含唯一控制(unique control)、状态以及组态暂存器以及机制。RPMC快闪存储器装置回应多个专用RPMC指令。控制器仿真此RPMC指令,并当检测到RPMC指令时,控制器可覆盖非RPMC快闪存储器的CS信号。除此之外,控制器可包含一快闪存储器忙碌暂存器(flash busy register)用于覆盖非安全性快闪存储器的快闪存储器忙碌信号、一快闪存储器延伸状态暂存器用于仿真RPMC的延伸状态暂存器、以及一串列式快闪存储器可发现参数(serial flashdiscoverable parameter,SFDP)结构。
控制器亦可包含RPMC快闪存储器所要求的一部分快闪存储器暂存器以及一些扩充数据的存储器快取(例如镜射),存储器快取可代表快闪存储器进行回应。
在一些实施例中,快闪存储器可包含一些但非所有定义在RPMC规范的RPMC功能,例如快闪存储器可实现规范定义的四个RPMC计数器中的两个;控制器可仿真其他漏掉的功能。
因此,本发明的实施例可包含一控制器以及一信任平台模块;并对于不包含安全性快闪存储器的系统,本发明的实施例可提供安全性快闪存储器的仿真。在一些实施例中,信任平台模块为一分离的模块;然而,在其他的实施例中,信任平台模块可嵌入于控制器中。在一些实施例中,主机直接耦接非安全性快闪存储器;在其他的实施例中,例如在一从属附加快闪存储器组态(slave-attached-flash configuration),非安全性快闪存储器经由控制器连接至主机。
虽然上述RPMC规范的范例有关串列式快闪存储器中RPMC的特殊规范,但可以理解的是本发明的实施例不限于此规范,并可用于任何适合的串列式快闪存储器、并列式快闪存储器、或是其他任何类型NVM的RPMC规范。
在一些实施例中,例如,当快闪存储器支援被要求的RPMC架构的一子集合时,中央处理单元发出的一些指令的执行可由非安全性快闪存储器以及控制器联合完成。
系统说明
图1为根据本发明的第一实施例示意性绘示具有附属附加快闪存储器(SAF)组态的运算系统100的方块图。运算系统包含一主机102用以执行软件指令,此指令包含与安全性快闪存储器装置(例如,具有重放保护单向性计数器(RPCM)的快闪存储器装置)安全存取相关的指令。一信任平台模块104,用以实现安全功能;一非安全性快闪存储器106,其不支援一些或是所有主机发布至快闪存储器装置的指令;以及一控制器108,用以仿真主机发出的快闪存储器安全功能。
在图1所示的实施例中,主机在SPI汇流排上与信任平台模块(TPM)进行通信,而并在eSPI汇流排上与控制器进行通信。控制器在I2C汇流排上与信任平台模块进行通信,而在SPI汇流排上与快闪存储器进行通信。可以理解的是,本发明的其他实施例可使用其他任何适合汇流排,例如串列式或是并列式汇流排。
图1的示例实施例中,快闪存储器附加于一控制器,且由控制器完与快闪存储器的所有通信。此组态称为从属附加快闪存储器(SAF)组态。
主机所执行的有关于存取快闪存储器的一些指令包含快闪存储器读/写功能以及快闪存储器安全功能(例如RPMC指令)。在以下说明内容,所有有关于存取快闪存储器的指令称为快闪存储器指令。
控制器的详细方块图绘制于图1的下方。控制器包含处理器110;主机接口112,其用以与主机102以及处理器110之间的通信,且包含一eSPI端口(eSPI port);一I2C端口114,其用于信任平台模块104以及处理器110之间的通信;以及一SPI端口(SPI port)116,其用以快闪存储器106以及处理器110之间的通信。
主机执行快闪存储器指令以及非快闪存储器指令。为了执行快闪存储器指令,主机在eSPI汇流排上与快闪存储器装置进行通信。在图1的示例性SAF组态中,控制器接收且回应主机发出的快闪存储器指令。
在控制器108中,处理器110经由主机接口112接收快闪存储器指令。处理器可将一些指令导向非安全性快闪存储器106,由其直接执行。处理器执行其他指令,例如非安全性快闪存储器无法执行的指令。其他指令的执行可能会需要存取非安全性快闪存储器,以及经由I2C端口114存取信任平台模块104。
处理器可通过回传任何所要求的数据至主机,及/或回传一指令执行完成的指示,以结束一些快闪存储器指令。
综上所述,根据图1绘示的示例实施例,运算系统可包含一不支援一些安全功能的附属附加快闪存储器,其经由控制器连接至主机。控制器与快闪存储器以及信任平台模块进行通信,并通透(transparently)至主机,直接执行或是结合非安全性快闪存储器及/或信任平台模块执行所有快闪存储器指令。因此,本发明的运算系统可实现安全性快闪存储器功能,其成本比具有快闪存储器以实现所有快闪存储器指令的运算系统更低。
图2为根据本发明的第二实施例示意性绘示具有主机附加快闪存储器组态(configuration)的运算系统200的方块图。运算系统包含主机202,其用以执行包含快闪存储器指令的软件指令;一信任平台模块(TPM)204,其用以实现安全功能;一快闪存储器(在以下内容称为非安全性快闪存储器)206,其不支援主机发出给快闪存储器装置的一些或是所有指令;一控制器208,其用以仿真主机202发出要求的快闪存储器安全功能。
在图2的示例实施例,主机202在SPI汇流排上与信任平台模块204、控制器208以及非安全性快闪存储器206进行通信。可以理解的是,其他实施例可使用其他任何适合汇流排,例如串列式或是并列式汇流排。
在图2的示例实施例,非安全性快闪存储器206可接收所有快闪存储器通信数据;然而,非安全性快闪存储器206仅回应其能支援的指令。例如,若主机202发出一RPMC指令,非安全性快闪存储器206不支援RPMC指令,则非安全性快闪存储器206会忽视此指令。
控制器208的详细方块图绘示于图2的下方。控制器208包含一处理器210;一主机接口212,其用于主机202以及处理器210之间的通信;以及一I2C端口214,其用于信任平台模块204以及控制器208之间的通信。
为了执行快闪存储器指令,主机202在SPI汇流排上与安全性快闪存储器装置进行通信。当与安全性快闪存储器进行通信时,主机202将芯片选择(CS)线设定有效(assert),且此芯片选择线(图2中以Flash CS表示)连接至非安全性快闪存储器206以及控制器208。当主机202发出非安全性快闪存储器206不支援的一安全相关的指令时,控制器208会读取并执行此安全相关指令。
在控制器208中,主机接口212连接至SPI汇流排,其包含上述的CS线。处理器210经由主机接口212接收所有来自主机202的快闪存储器指令。若处理器210识别出非安全性快闪存储器206无法执行所接收的指令,例如RPMC指令,则处理器210将执行此指令。当非安全性快闪存储器206无法执行的指令进行执行时,可能会经由I2C端口214存取信任平台模块204。例如,若信任平台模块204中有一些RPMC计数器而主机202发出一读RPCM指令,则处理器210将经由I2C端口214存取信任平台模块204,并要求信任平台模块204回传存储在RPCM计数器中的数值。处理器210接着经由主机接口212回传所要求到的数据给主机202。
通过回传任何所要求的数据、及/或回传指令执行完成的指示,处理器210可结束此多个快闪存储器指令中的一些。
综上所述,根据图2绘示的示例实施例,运算系统可包含一非安全性快闪存储器,其经由串列汇流排与控制器并联并连接至主机。非安全性快闪存储器可执行快闪存储器指令的一子集合(subset),而控制器执行非安全性快闪存储器不支援的其他快闪存储器指令。上述实现安全性快闪存储器功能的运算系统的成本可比具有安全性快闪存储器的运算系统更低。
图3为根据本发明的第三实施方式示意性绘示具有SAF组态的运算系统300的方块图。图3绘示的示例实施例与图1的示例实施例相似,而不同处在于图3的示例实施例的控制器不是直接耦接至信任平台模块。
运算系统300包含一主机302,其用以执行包含快闪存储器指令的软件指令,其包含安全指令以及非安全指令。一信任平台模块304,用以实现安全功能;一非安全性快闪存储器306,其不支援主机发出至快闪存储器装置的多个指令的一些或是所有;以及,一控制器308,用以仿真主机302发出的快闪存储器安全功能。
图3的示例实施例,主机302在SPI汇流排上与信任平台模块304进行通信,并在eSPI汇流排上与控制器308进行通信;控制器308在SPI汇流排上与快闪存储器306进行通信。可以理解的是,其他实施例可使用其他任何适合汇流排,例如串列式或是并列式汇流排。在图3的示例实施例中,在SAF组态中,快闪存储器附加于(attached to)控制器。
主机302执行快闪存储器指令,其包含非安全性快闪存储器306可执行的指令以及非安全性快闪存储器306不支援而会由控制器308执行的指令。
控制器308的详细方块图绘示在图3的下方。控制器308包含一处理器310;一主机接口312,用于主机302以及处理器之间的通信,且包含一eSPI端口;一SPI端口316,其用于快闪存储器306以及处理器310之间的通信。
主机302在eSPI汇流排上与快闪存储器装置进行通信。在图3的SAF组态的示例中,控制器308接收且回应主机302发出的快闪存储器指令。
在此控制器308中,处理器310经由主机接口312接收快闪存储器指令。处理器310可将一些指令导向非安全性快闪存储器306以直接执行。或者,处理器310将执行其他指令,例如,非安全性快闪存储器306无法执行的指令。其他指令执行时可能会需要经由主机302存取信任平台模块304以及存取非安全性快闪存储器306。以下将详细描述。
处理器310可回传任何所要求的数据给主机、及/或回传表示指令已经执行完成的指示,以结束一些快闪存储器指令。
以下将搭配图3简单说明根据本发明的实施例的软件驱动程序的范例。在图3绘示的示例实施例中,主机302中有至少二驱动程序同时处于活动状态,即快闪存储器应用驱动程序318以及安全服务驱动程序320。
快闪存储器应用驱动程序318提供软件接口至快闪存储器装置。在图3的示例实施例中,快闪存储器应用驱动程序318与控制器308进行通信。然而,所述的驱动程序可与主机在一包含安全性快闪存储器的运算系统中使用的驱动程序相似(或是相同。快闪存储器驱动程序318亦可使用于图1以及图2所示的示例实施例。
安全服务驱动程序320提供一介于安全服务用户端以及信任平台模块304之间的接口。在图3所示的示例实施例中,处理器310可经由主机接口312要求来自安全服务驱动程序320的信任平台模块服务(TPM service)。安全服务驱动程序可存取信任平台模块304以执行服务,并经由控制器308的主机接口312回复处理器310。
在一些实施例中,在早期开机前阶段(类似电脑的ME开机),信任平台模块(TPM)驱动程序尚未启动,因此信任平台模块无法用于一些安全功能,例如单向性计数器功能。此时,控制器308可通过回报存储在非安全性快闪存储器内的单向性数值,在上电期间支援追溯(retro-active)RPMC功能,并等待来自信任平台模块的经验证的单向性计数器的读数。此单向性计数器的读数存储在一缓冲器中。若单向性计数器的读数无法在一预先定义期间内通过验证,则控制器308可重置或中断主机302,并发出安全故障的警告。
综上所述,根据图3所示的示例实施例,运算系统可包含不支援一些安全功能的附属附加快闪存储器(Slave-Attached-Flash),其经由控制器连接至主机。控制器不包含对向信任平台模块的接口,而是改成控制器经由主机运行的服务驱动程序来存取信任平台模块(TPM)。运算系统实现此安全性快闪存储器功能的成本低于具有能实现所有快闪存储器指令的快闪存储器的运算系统。
图4为根据本发明的第四实施例示意性绘示具有主机附加快闪存储器的运算系统400的方块图。在本实施例中,控制器包含一信任平台模块。
运算系统400包含一主机402,其用以执行包含快闪存储器指令的软件指令;一非安全性快闪存储器406;以及一控制器408,其用以仿真主机402发出要求的快闪存储器安全功能。
在图4的示例实施例中,主机402在一SPI汇流排上与控制器408以及非安全性快闪存储器406进行通信。可以理解的是,其他实施例可使用其他任何适合的汇流排,例如串列式(serial)或是并列式(parallel)汇流排。
在图4的示例实施例中,非安全性快闪存储器406接收所有快闪存储器的通信数据;然而,快闪存储器406只回应其有支援的指令。例如,若主机402发布一RPMC指令,而非安全性快闪存储器406不支援RPMC指令,则非安全性快闪存储器406将忽视此RPMC指令。
控制器408的详细方块图绘示在图4的下方。控制器408包含一处理器410;一主机接口412,其用于主机402以及处理器410之间的通信;以及一内嵌式信任平台模块(embedded TPM)414,其用以实现安全功能。
为了执行快闪存储器指令,主机402在SPI汇流排上与一安全性快闪存储器装置进行通信。当主机402欲与安全性快闪存储器进行通信时,主机402会将芯片选择(CS)线设定有效,而此CS线连接至非安全性快闪存储器406以及控制器408。当主机402发布一安全相关指令,而非安全性快闪存储器406不支援此安全相关指令时,控制器408会读取并执行此安全相关指令。
在此控制器408中,主机接口412连接至SPI汇流排,其包含上述CS线。处理器410经由主机接口412从主机402接收所有快闪存储器指令。若处理器410识别出所接收的指令(例如RPMC指令)无法由非安全性快闪存储器406执行,则将由处理器410执行此指令。非安全性快闪存储器406无法执行的指令在执行时可能需要存取嵌入式信任平台模块414。例如,若嵌入式信任平台模块414中有一些RPMC计数器而主机402发出一读取RPCM指令,则处理器410将存取嵌入式信任平台模块414并要求嵌入式信任平台模块414回传存储在RPCM中的数值。处理器410接着经由主机接口412将回传所要求的数据给主机402。
处理器410可通过回传任何所要求的数据给主机402、及/或回传指令执行完成的指示,以结束一些快闪存储器指令。
综上所述,根据图4绘示的示例实施例,运算系统可包含非安全性快闪存储器,其经由串列汇流排连接至主机,且与控制器并联。非安全性快闪存储器执行快闪存储器指令的子集合,而控制器执行非安全性快闪存储器不支援的快闪存储器指令。上述可实现安全性快闪存储器功能的运算系统的成本低于具有安全性快闪存储器的运算系统。
图5为根据本发明的第五实施例示意性绘示具有SAF组态的运算系统500的方块图。在本实施例中,控制器508包含一信任平台模块514,而此非安全性快闪存储器所用的组态为附属附加快闪存储器(SAF)组态。
运算系统500包含一主机502,其用以执行多个软件指令,其包含快闪存储器指令。非安全性快闪存储器506;以及一控制器508,其用以仿真主机502发出要求的快闪存储器安全功能。
在图5的示例实施例中,主机502传送包含安全指令的多个快闪存储器指令给控制器508。非安全性快闪存储器506连接至控制器508。控制器508包含一处理器510、一主机接口512、一嵌入式信任平台模块514以及一SPI端口516。
在控制器508中,处理器510经由主机接口512接收快闪存储器指令。处理器510可将此些指令中的一部分导向非安全性快闪存储器506以直接执行。处理器510可执行其他指令,例如,非安全性快闪存储器506无法执行的指令。此些指令的执行可能需要存取嵌入式信任平台模块514以及存取非安全性快闪存储器506。
处理器510可通过回传任何所要求的数据给主机502、及/或回传指令执行完成的指示,以结束此些快闪存储器指令的一部分。
综上所述,根据图5绘示的示例实施例,在SAF组态中,运算系统可包含非安全性快闪存储器,其经由控制器连接至主机。控制器执行所有快闪存储器指令(包含安全相关指令以及非安全相关指令),并存取附加的非安全性快闪存储器以及内部嵌入式信任平台模块。上述可实现安全性快闪存储器功能的运算系统的成本可低于具有安全性快闪存储器的运算系统。
可以理解的是,图1至图5绘示的运算系统的实施例仅为举例,而非为限制本发明。本发明的运算系统不限于上述示例实施例。例如,在其他实施例,可使用其他类型的非易失性存储器,而连接系统的多种元件的汇流排可与上述实施例的汇流排不同。在一些实施例中,可包含多个主机、多个安全性快闪存储器装置、及/或多个控制器。在一实施例中,单一控制器可耦接多个快闪存储器装置及/或多个信任平台模块(TPM)。
在一些实施例中,主机可发布指令以在原子程度上读取快闪存储器以及增加RPMC。处理器通过存取非安全性快闪存储器的数据以及存取信任平台模块以增加对应的RPMC,以仿真此指令。
在一些实施例中,单一信任平台模块除了作为信任平台模块服务主机之外,可使用作为电路板上其他元件的一般用途安全NV存储装置。在一实施例中,上述控制器的功能可实现在信任平台模块中,而不需要使用控制器。
在一些非SAF实施例中,主机用于快闪存储器的CS线连接至控制器而非快闪存储器,而快闪存储器接收的CS线连接至控制器而非主机;回应于控制器从主机接收的CS线,控制器产生CS信号;而回应于其他快闪存储器存取周期,控制器启动以执行安全性快闪存储器功能。
在本发明的一些实施例中,控制器可包含一快取存储器,用于频繁存取安全数据,例如金钥。
控制器108、208、308、408以及508、或是其元件,可用任何适合硬件来实现,例如特殊应用集成电路(ASIC)或是现场可程序逻辑门阵列(FPGA)。在一些实施例中,控制器的一些或是全部元件可使用软件、硬件、或是硬件以及软件元件的组合来实现。
通常,主机102、202、302、402以及502包含一通用处理器,其可用软件编程以执行上述内容中的功能。此软件可从一网路以电子信号形式下载至处理器,或是可提供及/或存储在非暂时性有形媒体上,例如磁性存储器、光学存储器、或是电子存储器。
虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明,任何本领域内技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的权利要求所界定者为准。
Claims (14)
1.一种控制器,其特征在于,包含:
一主机接口,用以与一主机进行通信;以及
一处理器,用以:
通过所述主机接口从所述主机接收在一非易失性存储器执行的多个指令;
在所述多个指令之中识别出一有关于安全单向性计数器且在嵌有安全单向性计数器的非易失性存储器中执行的指令;以及
执行所识别的所述指令,并取代所述非易失性存储器向所述主机回应所述所识别的指令;
还包含一存储器接口,所述处理器通过所述存储器接口与一不具有嵌入式安全单向性计数器的非易失性存储器进行通信,以及将所述所识别的指令以外的所述指令转送至所述不具有嵌入式安全单向性计数器的非易失性存储器以执行;
所述所识别的指令符合一重放保护单向性计数器规范,所述处理器根据所述重放保护单向性计数器规范用以执行所述所识别的指令。
2.根据权利要求1所述的控制器,其特征在于,当所述处理器执行所述所识别的指令时,所述处理器覆盖一芯片选择信号,所述主机将所述芯片选择信号设定有效以选择所述非易失性存储器。
3.根据权利要求1所述的控制器,其特征在于,所述处理器通过拦截一芯片选择信号以接收试图存取所述非易失性存储器的指令,所述主机将所述芯片选择信号设定有效以选择所述非易失性存储器。
4.根据权利要求1所述的控制器,其特征在于所述处理器用以与一信任平台模块结合执行所述所识别的指令。
5.根据权利要求4所述的控制器,其特征在于,所述信任平台模块整合在所述控制器中。
6.根据权利要求4所述的控制器,其特征在于,所述信任平台模块位于所述控制器外部,所述控制器更包含一信任平台模块接口用以与所述信任平台模块进行通信。
7.根据权利要求4所述的控制器,其特征在于,所述信任平台模块位于所述控制器外部且连接至所述主机,所述处理器通过所述主机接口与所述信任平台模块进行通信。
8.一种控制方法,其特征在于,包含:
在一控制器中,从一主机接收用以在一非易失性存储器中执行的多个指令;
从所述多个指令中识别出一与安全单向性计数器有关且试图在一嵌有安全单向性计数器的非易失性存储器中执行的指令;以及
由所述控制器代替所述非易失性存储器执行所识别的所述指令;
与一不具有嵌入式安全单向性计数器的非易失性存储器进行通信,以及将所述所识别的指令以外的所述指令转送至所述不具有嵌入式安全单向性计数器的非易失性存储器以执行;
所述所识别的指令符合一重放保护单向性计数器规范,处理器根据所述重放保护单向性计数器规范用以执行所识别的所述指令。
9.根据权利要求8所述的控制方法,其特征在于,执行所述所识别的指令的步骤包含:覆盖一芯片选择信号,其中所述主机将所述芯片选择信号设定有效以选择所述非易失性存储器。
10.根据权利要求8所述的控制方法,其特征在于,接收试图存取所述非易失性存储器的所述指令的步骤包含:拦截一芯片选择信号,其中所述主机将所述芯片选择信号设定有效以选择所述非易失性存储器。
11.根据权利要求8所述的控制方法,其特征在于,执行所述所识别的指令的步骤包含:结合一信任平台模块以执行所述所识别的指令。
12.根据权利要求11所述的控制方法,其特征在于,所述信任平台模块整合在所述控制器中。
13.根据权利要求11所述的控制方法,其特征在于,所述信任平台模块位于所述控制器外部,所述控制器更包含一信任平台模块接口用以与所述信任平台模块进行通信。
14.根据权利要求11所述的控制方法,其特征在于所述信任平台模块位于所述控制器外部且连接至所述主机,其中执行所述所识别的指令的步骤包含:通过一主机接口与所述信任平台模块进行通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/503,501 US10846438B2 (en) | 2014-07-24 | 2019-07-04 | RPMC flash emulation |
US16/503,501 | 2019-07-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181860A CN112181860A (zh) | 2021-01-05 |
CN112181860B true CN112181860B (zh) | 2023-11-24 |
Family
ID=73919520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911179841.2A Active CN112181860B (zh) | 2019-07-04 | 2019-11-27 | 具有快闪存储器仿真功能的控制器及其控制方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7293163B2 (zh) |
CN (1) | CN112181860B (zh) |
TW (1) | TWI728572B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI775436B (zh) | 2021-05-17 | 2022-08-21 | 新唐科技股份有限公司 | 匯流排系統 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388053A (zh) * | 2007-06-20 | 2009-03-18 | 英特尔公司 | 对数据进行加密、完整性和防重发保护的方法、系统和装置 |
US8554968B1 (en) * | 2010-08-16 | 2013-10-08 | Pmc-Sierra, Inc. | Interrupt technique for a nonvolatile memory controller |
CN103988185A (zh) * | 2011-12-20 | 2014-08-13 | 英特尔公司 | 安全的重放保护存储 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013101178A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Using a trusted platform module for boot policy and secure firmware |
CN103247612B (zh) * | 2013-04-09 | 2015-09-23 | 北京兆易创新科技股份有限公司 | 一种增强型flash芯片和一种芯片封装方法 |
TWI640895B (zh) * | 2013-07-12 | 2018-11-11 | 華邦電子股份有限公司 | 可認證的非揮發性記憶體元件及其操作及製造方法 |
US9407636B2 (en) * | 2014-05-19 | 2016-08-02 | Intel Corporation | Method and apparatus for securely saving and restoring the state of a computing platform |
US10303880B2 (en) * | 2014-07-24 | 2019-05-28 | Nuvoton Technology Corporation | Security device having indirect access to external non-volatile memory |
US9716710B2 (en) * | 2015-06-26 | 2017-07-25 | Intel Corporation | Technologies for virtualized access to security services provided by a converged manageability and security engine |
-
2019
- 2019-11-26 TW TW108142984A patent/TWI728572B/zh active
- 2019-11-27 CN CN201911179841.2A patent/CN112181860B/zh active Active
-
2020
- 2020-04-16 JP JP2020073271A patent/JP7293163B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388053A (zh) * | 2007-06-20 | 2009-03-18 | 英特尔公司 | 对数据进行加密、完整性和防重发保护的方法、系统和装置 |
US8554968B1 (en) * | 2010-08-16 | 2013-10-08 | Pmc-Sierra, Inc. | Interrupt technique for a nonvolatile memory controller |
CN103988185A (zh) * | 2011-12-20 | 2014-08-13 | 英特尔公司 | 安全的重放保护存储 |
Also Published As
Publication number | Publication date |
---|---|
JP7293163B2 (ja) | 2023-06-19 |
JP2021012679A (ja) | 2021-02-04 |
CN112181860A (zh) | 2021-01-05 |
TW202102999A (zh) | 2021-01-16 |
TWI728572B (zh) | 2021-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846438B2 (en) | RPMC flash emulation | |
EP3582129B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
Lentz et al. | Secloak: Arm trustzone-based mobile peripheral control | |
CN106605233B (zh) | 使用处理器提供可信执行环境 | |
CN109918919B (zh) | 认证变量的管理 | |
US7028149B2 (en) | System and method for resetting a platform configuration register | |
US9384367B2 (en) | Measuring platform components with a single trusted platform module | |
JP5153887B2 (ja) | プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置 | |
US8332604B2 (en) | Methods to securely bind an encryption key to a storage device | |
EP3329416B1 (en) | Secure input/output device management | |
US10783250B2 (en) | Secured master-mediated transactions between slave devices using bus monitoring | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US20230342472A1 (en) | Computer System, Trusted Function Component, and Running Method | |
US11921655B2 (en) | Dynamic memory protection device system and method | |
CN112181860B (zh) | 具有快闪存储器仿真功能的控制器及其控制方法 | |
CN113268447A (zh) | 计算机架构及其内的访问控制、数据交互及安全启动方法 | |
US7676608B1 (en) | System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
KR20050123152A (ko) | 신뢰할 수 있는 플랫폼에서의 물리적 존재 판정 방법 | |
TWI751962B (zh) | 安全裝置、安全方法、安全系統以及安全設備 | |
US11734457B2 (en) | Technology for controlling access to processor debug features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |