CN112487509B - 安全装置及安全方法 - Google Patents
安全装置及安全方法 Download PDFInfo
- Publication number
- CN112487509B CN112487509B CN202010459272.3A CN202010459272A CN112487509B CN 112487509 B CN112487509 B CN 112487509B CN 202010459272 A CN202010459272 A CN 202010459272A CN 112487509 B CN112487509 B CN 112487509B
- Authority
- CN
- China
- Prior art keywords
- transaction
- bus
- memory device
- processor
- transactions
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000002093 peripheral effect Effects 0.000 claims abstract description 164
- 230000004044 response Effects 0.000 claims abstract description 32
- 230000000977 initiatory effect Effects 0.000 claims abstract description 6
- 230000000903 blocking effect Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 description 47
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Storage Device Security (AREA)
- Burglar Alarm Systems (AREA)
- Forging (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明揭露一种安全装置及安全方法,该安全装置包含一接口与一处理器,此接口连接一服务至少一周边装置的总线,至少其中的一周边装置为存储器装置。处理器连接至总线以及周边装置,并保存一用于区分对于存储器装置已经授权的事务以及未经授权的事务的定义,用以辨识出在总线上总线主装置尝试存取存储器装置的事务,并回应根据此定义辨识出此事务为未经授权时,启动一回应措施。
Description
相关申请的交叉引用
此申请书主张依2018年4月18日所提交的美国专利申请号15/955,715的部分继续申请案,其为2016年3月21日所提交的美国专利申请号15/075,219的部分继续申请案,其主张2015年6月8日所提交的美国临时申请案号第62/172,298的优先权。
技术领域
本发明有关于一种电子系统安全技术,特别是有关于用于保护对周边装置的安全存取的装置及方法。
背景技术
电子系统使用各种总线接口以在主机装置与周边装置间通讯。例如,总线接口可包含集成电路(Inter-Integrated-Circuit,I2C)总线及串行外设接口(SPI)总线。I2C总线例如在“I2C总线规范和用户手册”UM10204,NXP半导体,修订版6,2014年4月4日,其通过引用并入本文。
发明内容
本发明的目的在于提出一种安全装置,其包含一接口以及一处理器。此接口连接一总线,该总线服务一个或多个周边装置,其中至少其中的一该周边装置为一存储器装置。处理器连接至该总线以及该一个或多个周边装置,该处理器用以保存区分与该存储器装置进行的已经授权以及未经授权的事务的定义,以辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应当根据该定义辨识出该事务未经授权时启动一回应措施。
根据本发明的一实施例,总线包含一个或多个专用信号以及一个或多个共用信号,每一专用信号分别专用于其中一该周边装置,该一个或多个共用信号在该总线所服务的该周边装置之中共用,该处理器借由阻断与该存储器装置相关的该专用信号,以阻断在该总线上的该事务。根据本发明的一实施例,与该存储器装置相关的该专用信号为该存储器装置的一芯片选择信号,以及该处理器借由将该芯片选择信号选择该存储器装置的一持续时间延伸超出(beyond)该事务的实际结束时间(an actual end of the transaction),以避免该存储器装置执行该事务,借以阻断该事务。
根据本发明的一实施例,此定义载明对该存储器装置进行的已经授权事务,以及其中回应当辨识出该事务未载明在该定义,则该处理器启动该回应措施。
根据本发明的一实施例,处理器用以定义一个或多个事务群组,以保持一个或多个分别对应该一个或多个事务群组的计数器,以监控该总线,以及回应当辨识出在该总线上该总线主装置以及该存储器装置之间的一既定事务时,增加该既定事务所属的群组所对应的计数器的计数。
根据本发明的一实施例,处理器辨识在该总线上一个或多个指示该存储器装置进入一既定运作模式的模式进入事务以及一个或多个指示该存储器装置离开该既定运作模式的模式离开事务,以辨识是否该存储器装置操作在该既定运作模式。根据本发明的一实施例,当该存储器装置操作在该既定运作模式时,该处理器对一个或多个事务给予一第一解释(interpretation),以及当该存储器装置不是操作在该既定运作模式时,该处理器对该一个或多个事务给予一不同的第二解释。根据本发明的一实施例,当该存储器装置操作在该既定运作模式时,该处理器中止启动回应措施。
根据本发明的一实施例,处理器从该总线主装置接收该事务,以验证是否该事务已经授权,以及当决定该事务已经授权,该处理器在该存储器装置中执行该事务。根据本发明的一实施例,处理器接收该事务作为多个事务的数列的一部分,该处理器验证是否该事务已经授权,作为对该多个事务的数列进行共同验证的一部分。
根据本发明的一实施例,事务为一由该总线主装置写入一数据至该存储器装置的写入事务,其中该处理器对数据执行一加密操作,并于该加密操作成功时判断该事务已经授权。
本发明的再一目的在于提出一种安全装置,其包含一接口以及一处理器。此接口用以连接一总线,该总线服务一个或多个周边装置,其中至少其中的一该周边装置为一存储器装置。处理器连接至该总线以及该一个或多个周边装置,该处理器用以辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应对该事务的辨识,启动一回应措施,代替该存储器装置回应该总线主装置。
根据本发明的一实施例,根据对该事务的辨识,该处理器阻断在该总线上的该事务、或是发出一警讯。
根据本发明的一实施例,事务为对存储器装置的功能的查询,处理器以一修改过的功能回应该总线主装置,而修改过的功能与该存储器装置的实际功能不同。根据本发明的一实施例,此查询包含一串行快闪存储器可发现参数读取指令,以及其中该处理器以修改过的串行快闪存储器可发现参数回应该串行快闪存储器可发现参数读取指令。
根据本发明的一实施例,在来自该总线主装置的查询之前,该处理器从该存储器装置取得该存储器装置的该实际功能,且该处理器修改该实际功能以产生该修改过的功能以回应该总线主装置。根据本发明的一实施例,处理器在该修改过的功能中增加一该存储器装置不支持的功能。根据本发明的一实施例,处理器省略一该存储器装置支持的功能,以产生该修改过的功能。
本发明的再一目的在于提出一种安全方法,其包含下列步骤:使用一安全装置在一总线上进行通讯,该安全装置连接至该总线以及一个或多个周边装置,至少其中的一该周边装置为一存储器装置;保存一区分与该存储器装置进行的已经授权以及未经授权的事务的定义;以及使用该安全装置辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应当根据该定义辨识出该事务未经授权时启动一回应措施。
本发明的再一目的在于提出一种安全方法,其包含下列步骤:使用一安全装置在一总线上进行通讯,该安全装置连接至该总线以及一个或多个周边装置,其中至少其中的一该周边装置为一存储器装置;使用该安全装置辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应对该事务的辨识,启动一回应措施,代替该存储器装置回应该总线主装置。
本发明的再一目的在于提供一种安全装置,其包含一接口以及一处理器。此接口用于连接一服务至少一周边装置的总线。此总线包含(i)至少一专用信号,其分别专用于其中一周边装置;(ii)至少一共用信号,其由总线所服务的周边装置共用。除了周边装置,处理器连接至总线作为一额外装置,借由阻断一既定周边装置相关的专用信号,以阻断在总线上总线主装置(bus-master device)尝试存取此既定周边装置的事务。
在一些实施例中,当阻断事务时,处理器保持共用信号在总线上连续传送。在一实施例中,此接口包含(i)一输入端,用以接收来自总线主装置的专用信号;(ii)一输出端,用以传送专用信号至既定周边装置,而处理器借由阻止输入端接收的专用信号从输出端输出,以阻断事务。在一些实施例中,当阻断专用信号时,处理器代替此既定周边装置回应总线主装置。在一示例性实施例,专用信号包含一芯片选择(CS)信号。
在本发明揭露的实施例中,处理器监控总线,以检测待阻断的事务。在其他实施例中,处理器通过一总线外部的辅助接口与总线主装置通讯,以检测待阻断的事务。
在一实施例中,处理器无限时地(indefinitely)阻断专用信号,直到处理器被重置。在另一实施例中,在检测到事务之后,处理器在有限时间周期内阻断专用信号。在一实施例中,借由阻断事务,处理器可造成至少一周边装置舍弃一事务。在一些实施例中,在阻断事务之后,处理器恢复正常操作。
根据本发明一实施例,本发明再提供一安全装置,其包含一接口以及一处理器。此接口连接一服务至少一周边装置的总线。处理器分别连接至总线以及周边装置,并代替一既定周边装置回应总线主装置,借此阻断在总线上总线主装置尝试存取此既定周边装置的事务。
在一实施例中,此总线包含(i)至少一专用信号,每一专用信号专用于其中一周边装置;(ii)至少一共用信号,其由总线所服务的周边装置所共用。处理器可借由(i)阻断既定周边装置相关的专用信号,以及(ii)阻断专用信号时回应总线主装置,以阻断此事务。
在一些实施例中,既定周边装置包含一存储器装置,处理器辨识此事务中来自总线主装置对存储器装置读取数据的请求,并以存储在安全装置内部的另一数据回应此请求。在一示例性实施例,回应辨识出此总线主装置请求存取存储器装置中预先定义的地址区时,处理器阻断事务并以另一数据回应总线主装置。
在另一实施例中,根据在事务期间既定周边装置回传至总线主装置的数据,处理器辨识总线主装置尝试存取既定周边装置的事务。在其他实施例中,处理器根据事务使用的一指令码(command code),以辨识总线主装置尝试存取既定周边装置的事务。
根据本发明一实施例,本发明提供一种方法,其包含使用一安全装置通过一总线进行通讯,除了至少一周边装置连接至总线,安全装置连接至总线作为一额外装置,其中总线包含(i)至少一专用信号,每一专用信号专用于其中一周边装置,以及(ii)至少一共用信号,其由总线所服务的周边装置所共用。使用安全装置阻断一既定周边装置相关的专用信号,以阻断在总线上总线主装置尝试存取此既定周边装置的事务。
根据本发明一实施例,本发明再提供一种方法,其包含使用一安全装置通过一总线进行通讯,至少一周边装置连接至总线,而安全装置连接至总线。借由使用安全装置代替既定周边装置回应总线主装置,以阻断在总线上此总线主装置尝试存取既定周边装置的事务。
在本发明所述的实施例中,提供了一种装置包含接口跟处理器。接口被设置为通过总线通讯,处理器被设置为在总线主装置未通过授权要存取周边装置时,强制地并行写入一个或多个虚拟值至总线的至少一条线上以中断至少一部分事务(transaction)。
在一个实施例中,处理器被设置为强制写入虚拟值至总线上的数据线,以阻断通过数据线接收或周边装置所传送的数据值。附加地或替代地,处理器被设置为强制写入虚拟值至总线上的时钟线,以中断事务所使用的时钟信号。进一步附加地或替代地,处理器被设置为强制写入虚拟值至总线上的芯片选择线,以中断总线主装置(bus-master device)选择周边装置。
在一些实施例中,总线包含一个具有预设逻辑值的开集总线(open-collectorbus)或开漏总线(open-drain bus),且处理器被设置为强制写入与预设逻辑值相反的虚拟值至总线上的至少一线路。
在一些实施例中,通过强制写入虚拟值,处理器可覆写总线主装置或周边装置上被写入的至少一线路的对应值。在一个举例的实施例中的,处理器被设置为通过驱动其驱动强度大于总线主装置或周边装置的至少一线路,来覆写(override)总线主装置或周边装置上被写入的至少一线路的对应值。在另一个实施例中,此装置包含至少一电阻,其被设置于至少一线路上,电阻设置用以将被写入至总线主装置或周边装置的值减弱(attenuate)到比处理器所写入的虚拟值还弱。
在一些实施例中,处理器被设置为仅通过被用于在总线主装置与周边装置之间通讯的总线的现有的一线路上强制写入虚拟值。在一些实施例中,处理器被设置为通过监控总线来检测要阻断的事务。在一个实施例中,处理器通过在总线主装置外部的辅助接口上与总线主装置通讯,来检测要阻断的事务。
在一个公开的实施例中,处理器无限时地强制写入虚拟值直到此装置被重置。在另一个实施例中,处理器被设置为在检测到事务时,在有限时间内强制写入虚拟值。在一个实施例中,处理器被设置为在事务被中断后,适度地恢复总线的正常操作。
根据本发明的实施例,还提供了一种包括周边装置和安全装置的系统。周边装置可以通过总线存取一个或多个总线主装置。此安全装置被设置为在总线主装置未通过授权要存取周边装置时,强制地并行写入一个或多个虚拟值至总线的至少一条线上,以阻断至少一部分事务(transaction)。
依据实施例,本发明还提供了一种方法,包含使用耦合到总线的安全装置,决定是否中断总线主装置未经授权尝试存取周边装置的事务,并通过强制地并行写入一个或多个虚拟值至总线的至少一条线上,以阻断至少一部分事务。
从下面结合附图对其实施例的详细描述中,将更全面地理解本发明。
附图说明
图1为本发明实施例中多个装置通过I2C总线进行通讯的安全系统的方块示意图;
图2为本发明实施例通过I2C总线保护对周边装置的存取的方法的流程图;
图3至图5为本发明的一个替代的实施例中,多个装置通过SPI总线进行通讯的安全系统的方块示意图;
图6为根据本发明的一实施例的一安全装置的示意方块图;
图7为根据本发明的一实施例的使主机装置安全开机的方法一示意流程图;
图8为根据本发明的另一实施例的安全系统的示意方块图,在安全系统中多个装置在SPI总线上进行通讯;
图9为根据本发明的一实施例的使用事务组计数器(transaction-groupcounter)监控SPI事务的方法的示意流程图;
图10为一根据本发明的一实施例的在主机以及SPI快闪存储器之间对写入/抹除事务的安全调解(secure mediation)的方法的示意流程图。
上述图式为示意性且并未按比例缩放。图式中相对尺寸与比例因精确与/或方便的目的而放大或缩小,且尺寸为任意的且不限于此。于图式中相似的参考符号代表相似的元件。
20、70、90、110、130、132:系统;
24、74:主机装置;
28、78:周边装置;
32:I2C总线;
36:安全装置;
40:接口;
44:处理器;;
48:存储器;
82:SPI总线;
86:安全装置;
91:从属接口逻辑电路;
92:接口管理逻辑电路;
94:处理器;
98:内部存储器;
100:电阻;
134:与门;
50、54、58、62、66、100a、104、108、112、116、120、140、144、148、152、156、160、164、170、174、178、182、186、190、194:步骤。
具体实施方式
以下将配合图式及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
当在此使用时,除非文中另行明确地表示,否则「一」、「该」、「此」等单数型式亦旨在包含复数型式。
本发明的实施例为叙述改进的方法与装置如何通过总线接口保护对周边装置的存取。周边装置可包含加密引擎(cryptographic engine)、存储敏感数据(sensitivedata)的存储器装置、或任何可通过总线存取的装置。本发明的一些实施例主要以串行快闪存储器装置(serial Flash memory device)进行说明,但本发明所揭露的技术不限于任何特定类型的周边装置。
在一些被揭露的实施例中,安全装置监控总线上的事务,并且在主机装置或其他总线主装置试图存取周边装置却未经授权时将其识别出。事务可通过各种合适的标准(criterion)或策略(policy)被分类为经授权或未经授权。
识别出未经授权的事务时,安全装置平行地通过在总线上的一条或多条线上强制写入数据或信号至某个虚拟值以将其阻断。强制写入虚拟值可被执行在,例如,时钟信号、数据信号及/或芯片选择(Chip-Select)信号。
强制写入虚拟值适用于阻断总线上的信号,例如适用于开漏或开集的总线,例如I2C总线或推挽式(push-pull)的总线,例如SPI总线。与总线上的事务并行地强制写入虚拟值使与周边装置的通讯中断,且/或阻断各自的时钟信号。
本文描述了用于阻断I2C和SPI总线上的未授权事务的几种技术范例,还描述了用于在阻断之后恢复正常操作的技术。在一些实施例中,安全装置可以阻断事务,但不须先在总线上检测到此事务,或者甚至根本不监控总线。例如,安全装置可以强行输入某个主机的芯片选择(CS)线上的虚拟值,直到或者除非该主机被授权。
在一些实施例中,例如SPI总线,由此安全装置保护的总线包含一个或多个专用信号,其各自由不同周边装置专用;以及一个或多个共用信号,其通过总线在多个周边装置之间共用。例如,共用信号可为数据信号以及时钟信号。例如,专用信号可为CS信号。在一些实施例中,安全装置借由阻断受保护的周边装置相关的专用信号,而维持总线上的共用信号不受阻断,借以阻断事务。然而,应注意的是,并非所有总线都具有专用信号。例如,在I2C总线中所有信号都是共用信号。
在其他的实施例中,安全装置借由代替受保护的周边装置回应未经授权的主机,借此阻断事务。在一示例性实施例,周边装置包含一快闪存储器,此快闪存储器包含一个或多个地址区(address zone)用以存储敏感数据,例如密钥、配置数据及/或启动代码。借由选择性覆写快闪存储器的CS信号,安全装置可覆盖对快闪存储器的数据的存取,且由安全装置使用其内存数据来回应主机。本发明将会说明此类型的安全开机程序(secure bootprocess)。
此处揭露的技术在逐笔操作的等级(transaction-by-transaction level)上提供即时的安全选择性存取至周边装置。在本文所描述的大多数技术中,仅使用总线的现有信号来执行事务的识别和阻断。因此,所揭露的技术不需要额外的引脚或互连线路(interconnection),从而减小了整个系统尺寸和成本。
通过I2C总线对周边装置安全存取数据
图1为本发明实施例中受安全保护的系统20的方块示意图。在本发明的实施例中,系统20包含一主机装置24及一周边装置28,其皆连接至I2C总线32。为了简洁起见,本文中,主机装置24和周边装置28也被称为主机(host)和周边(peripheral),主机装置24亦可为总线主装置(bus master)。
安全装置36通过监控I2C总线32上的事务,以保护对周边装置28的数据存取,并避免主机装置24或其他具有总线主装置功能的装置尝试未经授权的存取周边装置28。安全装置36有时也被称为控制装置或可信平台模块(TPM)。在本发明的实施例中,安全装置36包含一接口40、一存储器48以及一处理器44,接口40用于连结至I2C总线32,处理器44用以执行本发明的技术,存储器48用于存储一个或多个由处理器44所实行的安全策略。
处理器44可依据任何预先定义或是设定策略来将事务分类为未经授权的。通常未经授权的事务可能会尝试对周边装置28写入数据、读取周边装置28的数据、设置或发送命令至周边装置28,或是以其他合适的方式存取周边装置28。由安全装置36所实施的策略可包含肯定策略(如:白名单)、否定策略(如:黑名单)、取决于装置地址或寄存器偏移(register offset)的策略、或其他任何形式的策略。
例如,安全装置36可以要求主机在经授权存取周边装置28之前,对主机的身份进行认证,由未经授权的主机所尝试的事务可被视为未授权。认证可以通过如在主机与安全装置间进行挑战应答程序(challenge-response process)来执行。另外地或可选择地,可以要求主机以其他的某种合适方式证明其身份,或是成功的完成安全开机程序。
此外,附加的或替代的,有些类型的事务(如:读取事务)可被视为被授权的,而其他类型的事务(如:写入事务)可被视为未经授权的。在又另一个实施例中,对被选定的周边装置的地址存取可被视为被授权的,而存取其他地址则可被视为未经授权的。另一个实施例,总线上的某些比特序列(bit sequences)可被视为未授权事务。
通常处理器44可通过任何合适的方法分辨事务是否经授权。存储器48存储了一个或多个策略以分辨事务是否经授权。
I2C总线32包含带有串行数据信号的串行数据(SDA)线及带有串行时钟信号的串行时钟(SCL)线。术语"线"、"线路"与"信号"在本文中可被交互使用。通过监控SDA线及SCL线,处理器44得以监控I2C总线32上的所有事务,并辨识出未经授权的事务。
在识别出未经授权事务后,处理器44通过强行写入一个或多个虚拟值至I2C总线32上的SDA线及/或SCL线,以阻断事务。此机制由于I2C总线具有开漏/开集结构而可能实现。通常SDA线与SCL线都使用上拉电阻而被预设上拉至逻辑"1"的状态。任何装置皆可随时在SDA线或SCL线上写入逻辑"0"值,而不管其他装置可能同时写入的值。
因此,在一些实施例中,当识别出未经授权的事务时,安全装置36中的处理器44会通过接口40在I2C总线32的SDA线或SCL线上强行输入逻辑值"0"(预设逻辑值"1"的相反值)。在本文中"0"值被视为虚拟值(dummy value)。在SDA线上强制写入的"0"值将改写任何同时由主机装置24送至周边装置28的值或主机装置24从周边装置28读取的值,或改写预设的逻辑值"1"。强制写入"0"值在SCL线上将使时钟信号停止,在上述任一情况之下,事务将被阻断。
在一些实施例中,处理器44将持续强制写入"0"值,直到装置被重置。在其他实施例中,处理器44允许从中断中适度恢复(graceful recovery),即允许主机装置24和周边装置28从阻断中恢复事务,并恢复正常运作。一些主机及/或周边装置无法从时钟暂停(clockstall)中恢复。因此,若之后需要对简单主机及周边装置适度恢复时,则较佳的是在SDA线上强行写入虚拟值而非在SCL线上。
在一个实施例中,为了在中断事务后恢复正常运作,处理器44会在总线上生成I2C停止条件或I2C重新启动条件。在本文中,I2C停止条件或I2C重新启动条件可包含任何总线信号值序列,其可指示该装置总线处于闲置状态且可以开始事务。
处理器44可使用各种技术允许事务被阻断后进行适度恢复。在一个实施例中,处理器44在预定时间长度内持续强制写入"0"值,其被视为足以阻断未经授权的事务。任何预定时间长度皆可被使用。例如,SM总线定义的暂停时间长度为25mS。因此,在SM总线于I2C的应用中,将预定义的持续时间设置为至少25mS是有意义的,以便触发暂停。
在另一个实施例中,处理器44在预定时间内持续在SDA线上强制写入“0”值,直到检测到SCL线为逻辑高值,例如在非扰动(not toggling)状况。此条件可以指示主机中止或舍弃事务。处理器44可以接着释放SDA线,并且可能产生I2C停止条件。
在又另一个实施例中,对于阻断从周边装置读取的事务有用的是,将安全装置36设置为具有跟周边装置28同样地址的I2C从属装置。安全装置36中的处理器44使用"0"数据值来回应任何未经授权的读取要求。周边装置28同样会并行回应这些读取要求至处理器44,但其数据值会被安全装置36所传的"0"值覆写。此过程会持续至主机结束事务,例如通过停止条件。须注意,依据I2C规范,I2C从属装置在发送数据时并不会驱动ACK/NEGACK比特。
在另一个实施例中,同时对于阻断读及写的事务有用的方式是由处理器44在SDA线上强制写入"0"值。接着,若主机装置24没有识别出此阻断,则此事务以总线上的"0"数据正常结束,而非从周边装置28发送的数据。若主机装置24检测到此中断并舍弃事务,例如,因为主机装置24支持I2C多主机仲裁(multi-master arbitration),则处理器44通常可通过在SCL线上生成额外的时钟周期,以接管主机装置24舍弃的事务。处理器44可以接着完成正在被传送的当前比特组,并通过发出停止条件来中止此事务。
上面描述的阻断和恢复技术仅通过实施例来说明。在一个替代的实施例中,安全装置36的处理器44可以通过任何其他技术来阻断事务及/或从阻断中进行恢复。
在上述实施例中,仅使用总线的现有线路来实现对未经授权事务的检测、阻断及阻断后的恢复。在一个替代的实施例中,安全装置36和主机装置24也通过在总线32外部的一些辅助接口连接。例如,当安全装置36和主机装置24整合在同一集成电路(IC)中并且共享集成电路的SDA和SCL引脚时,这种机制是可行的。
在这些实施例中,安全装置36和主机装置24使用辅助接口(auxiliaryinterface)来验证是否有其他主机装置存取周边装置28。在一个示范的实施例中,当主机装置24存取周边装置28时,主机装置24通过辅助接口通知安全装置36。为回应该通知,处理器44不强制写入虚拟值"0"至总线,并允许事务实行。在检测到存取周边装置28但未在辅助接口上报告的事务时,处理器44会假定该事务由一些未经授权的主机发出,并且通过强制写入“0”值来中断它。
图2为本发明实施例通过I2C总线32保护对周边装置28的存取的方法的流程图。此方法在监控步骤50时启动,安全装置36上的处理器44通过接口40监控I2C总线32上的事务。
在事务检测步骤54时,处理器44识别出主机装置24试图存取周边装置28的事务。在检查步骤58时,处理器44检查事务是否经过授权。例如,处理器44可以检查此事务是否违反存储于存储器48的安全策略。
若此事务被授权,则在一允许步骤62,处理器44将允许事务正常进行。否则,若检测出此事务未经授权,则在阻断步骤66,处理器44会通过强制写入虚拟值"0"至I2C总线32的SCL及/或SDA线,以中断此事务。
通过SPI总线安全存取周边装置
图3为本发明的一个替代的实施例中,受安全保护的系统70的方块示意图。如图3所示,系统70包含主机装置74、周边装置78以及安全装置86,其均连接至SPI总线82。
在主机装置74未经授权的尝试存取周边装置78时,安全装置86会识别并阻断此事务。在本发明的实施例中,安全装置86包含接口90,其连接于SPI总线82;处理器94,其被设置为执行本发明的技术;存储器98,其被设置为存储一个或多个由处理器94所实行的安全策略。
用于区分授权和未经授权的事务的安全策略,以及安全装置86的处理器94识别未经授权的事务的方式,基本与上述系统20所描述的相似。以下描述的技术与上述技术的不同点在于,安全装置86在总线82上强制写入虚拟值以阻断未经授权的事务。
SPI总线82包含时钟(CLK)线、及被称为主输出从输入(MOSI)和主输入从输出(MISO)的两条数据传输线。CLK线、MISO线和MOSI线对于所有装置(在本实施例中为装置74、78和86)是共用的。此外,每个从属装置可通过专用的芯片选择线来选择。在本实施例中,主机装置74使用标记为CS2#的CS线来选择周边装置78,并且使用标记为CS1#的CS线来选择安全装置86。
作为主控装置的主机装置74连接到所有CS线。另一方面,由于周边装置78是从属装置,因此每个周边装置78仅连接到其自己的CS线。通常,主机装置74通过使用相应的CS线选择期望的周边装置78来启动事务,然后使用CLK、MOSI和MISO线与装置进行通讯。MOSI线用于从主机装置74向周边装置78发送信号,MISO线则用于从周边装置78发送信号至主机装置74。
安全装置86与常规SIP从属装置不同,其被定义为从属装置但能驱动所有CS线。如图3所示,安全装置86的接口90被配置为与主机装置74并行地驱动CS2#线。当系统70包含多个具有相对应CS线的周边装置78时,安全装置86通常被设置为可平行地驱动任何连结至主机装置74的CS线。
在一些实施例中,系统70被设计为当主机装置74与安全装置86以相反逻辑值驱动CS线时,安全装置86所驱动的逻辑值将覆写主机装置74所驱动的逻辑值。也可以说,当主机装置74与安全装置86在CS线上驱动相反的逻辑值时,周边装置78会收到并执行由安全装置86所驱动的逻辑值。
覆写CS线是阻止总线上的事务以中断主机和周边装置78之间的未经授权事务的另一种范例。上述覆盖机制可通过各种方式实现。下面的描述涉及用于选择周边装置78的CS2#线,但当使用多个周边装置78及多个相对应的CS线时,应使用同样的机制。
在一个实施例中,安全装置86通过接口90驱动CS2#线的线驱动器比主机装置74驱动CS2#线的线驱动器要强。在一个替代的实施例中,串联电阻100可以在主机装置74的输出处插入CS2#线中。相对于安全装置86对CS2#的线驱动器的输出,串联电阻100会减弱主机装置74对CS2#线的线驱动器的输出。另外,安全装置86可以被设置为以其他任何合适的方式覆盖主机装置74驱动CS2#线的信号。
安全装置86的处理器94可以通过监控SPI总线82的CS线、CLK线、MISO线及/或MOSI线,并以任何合适的方式识别未经授权的事务。在一些实施例中,在辨识出主机装置74未授权地尝试存取某个周边装置78的事务时,安全装置86的处理器94通过设定周边装置78的CS线失效(de-assert)来中断事务。由于安全装置86被设置为在覆写主机装置74对CS2#线的驱动,所以周边装置78将被取消选择,且事务中断。另一方面,当确定事务以被授权时,处理器94将停止自己的CS2#线驱动器,从而使主机不被中断的存取周边装置78。
图4为本发明另一个实施例中安全系统110的方块示意图。系统110同样是基于SPI总线82,与图3的系统70相似。然而,在系统110中,安全装置86通过在CLK线、MISO线及/或MOSI线上强制写入虚拟值来破坏未经授权的事务,而不是覆写CS线。
在本示例中,系统110用以使得安全装置86覆写主机装置74对CLK线、MISO线及/或MOSI线的驱动。如图所示,为达到此目的,串联电阻100插置在CLK线、MISO线以及MOSI中。由于CS2#线在此例中没有被覆盖,所以不须插置串联电阻。
在其他实施例,覆写机制可用使安全装置86的CLK线、MISO线及/或MOSI线的线驱动器比主机装置74的线驱动器更强来实现。
在其他实施例中,同时使用覆写CS线(如图3所示)及覆写CLK线、MISO线及/或MOSI线(如图4所示)的混合方案也是可行的。
覆写专用点对点信号以保护周边装置存取安全
总线的信号,例如SPI总线,可区分成共用信号以及专用信号。共用信号在总线上平行连接至多个(例如,所有)周边装置的信号。共用SPI信号的例子为数据(MOSI以及MISO)信号以及时钟(CLK)信号。专用信号为专用于特殊周边装置的信号。专用信号的例子为芯片选择(CS)信号。除此之外,总线可扩充有带外专用信号(out-of-band dedicated signal),例如,写入保护(write protect,WP)信号,例如周边装置包含一存储器装置,可使用WP信号。专用信号亦可称为一点对点(PTP)线。
在一些实施例中,在传送至周边装置之前,一个或多个专用信号先通过安全装置86。相反地,共用信号从传统路线传送至周边装置且不通过安全装置。此连线机制可使安全装置有效保护周边装置的安全。以下将详细描述。
图5根据本发明的再一实施例的系统130的示意方块图。受安全保护的系统130与图3的系统70相似。然而,在此实施例,CS2#信号不受周边装置78的输入端直接驱动。取而代之,来自主机装置74的CS2#线输入至安全装置86,而由安全装置86驱动CS2_O#信号输入至周边装置78。
在此实施例中,信号CS2#作为专用点对点(PTP)信号的例子,其通过安全装置重新连接至受保护的周边装置。如图5所示,在主机装置74以及周边装置78之间的共用信号(MOSI、MISO以及CLK)不会被阻断。
安全装置86借由选择性让CS2#信号达到至周边装置、或是阻止CS2#信号传送至周边装置,以阻断主机装置74以及周边装置78之间的事务。在图5的例子中,借由设定控制信号MASK_CS2#有效(assert)或是失效(de-assert),以执行上述选择。
图6根据本发明的一实施例的图5所示系统130的安全装置86的方块图。在本示例中,安全装置86包含一接口90、一处理器94以及一存储器98。接口90连接SPI总线82。处理器94执行本发明揭露的技术。存储器98存储一个或多个由处理器94实施的安全策略。处理器94包含一从属接口逻辑电路91以及一接口管理逻辑电路(IML)92。从属接口逻辑电路91处理安全装置86以及主机装置74之间的通讯。接口管理逻辑电路92监控、控制控制以及选择性覆写主机装置74对周边装置78的存取。
在一实施例中,安全装置86辨识以及阻断在SPI总线82上主机尝试对周边装置78的未经授权的事务。从图5及图6可了解的是,图3所示的系统的任何安全特征亦可实现在图5的系统。
在一些实施例中,安全装置86的处理器94的接口管理逻辑电路92包含一组寄存器或其他适合数据结构,其用以定义已经授权的事务以及未经授权的事务。例如,当周边装置78为SPI快闪存储器装置,上述定义可载明视为已经授权的指令以及相关地址范围。根据定义的分类,安全装置86让符合规定的指令以及对应地址范围的事务通过,并阻断不符合定义的事务。在一实施例中,一些指令并不强制有地址范围的规范,例如抹除指令,其不规定地址。
除了阻断事务,接口管理逻辑电路(IML)92可发出警讯至较高软件层,或是启动其他任何适合回应措施,例如,重置系统或是重置系统的一部分、接管快闪存储器装置的控制、以及从另一位置恢复黄金映像档(golden image),或是甚至永久停止系统并防止以后的任何开机动作。
在一些实施例中,已经授权事务以及未经授权事务的规范会遵循一"白名单"逻辑,例如,安全装置86只让明确规定在接口管理逻辑电路92中的已经授权事务通过,并拒绝以及阻断未明确规定的事务。
在上述实施例,安全装置连接至总线以及作为一额外从属装置。然而,在其他的实施例中,安全装置可连接作为一主控元件。例如,此实现方式适用于支持多主控装置(multi-master)功能的总线协议(bus protocol)。
代替周边装置回应未经授权事务的保护措施
在另一实施例中,安全装置86可代替周边装置78回应所选的主机的事务。以下说明主要参考图5及图6的配置,进行示例性说明。一般而言,本发明的技术不限于特殊系统配置,也可应用于其他任何配置,例如图3或是图4所示的配置。
在图5及图6所示的一示例性实施例的配置中,依照对周边装置78的地址空间中的某一地址区读取指令形式的检测,接口管理逻辑电路92可对CS2_O#强加"高位准信号",并从安全装置的内部存储器98服务一主机读取指令(或是读取指令的一部分)。主机装置74通常不知道此回应不是来自周边装置。在一些实施例中,此情境亦适用于图4的系统110,例如,安全装置可覆写MISO信号。
在此机制的另一例子,系统的周边装置78包含一SPI快闪存储器装置,安全装置86用以覆写快闪存储器地址空间的一部分,借此仿真(emulate)一受保护的快闪存储器的地址区。例如,安全装置86可包含一可信平台模块(TPM),其使用接口管理逻辑电路92覆写存储初始主机启动代码(其为主机开机时第一个提取(fetch)的开机指令)的快闪存储器地址区。可信平台模块可用独有且经过验证的初始启动代码来覆写此快闪存储器地址区,例如此独有且经过验证的初始启动代码可在系统跳至执行之前验证其余程序码。
在一些实施例中,安全装置86还包含一用于SPI快闪存储器装置的主控接口。除此之外,安全装置86可包含一适当的接口以及电路,用以当存取SPI快闪存储器装置时将主机装置74保持在重置状态,其可作为系统开机程序的一部份。例如,安全装置86可为一嵌入式控制器(embedded controller,EC)、一超级输入输出(super I/O,SIO)装置或是一基板管理控制器(baseboard management controller,BMC)装置。
图7为根据本发明的一实施例的安全开机程序的示意流程图。方法从系统上电(例如系统电力有效)开始,在一保持重置步骤100a,安全装置86将主机装置74保持在重置状态,并进行开机,例如,可从SPI快闪存储器(周边装置78)开始开机。在一初始载入步骤104(此为可选的步骤),安全装置86从SPI快闪存储器载入一数据段,验证此数据段的真实性,并将其存储在存储器98内。
在一覆写步骤108,安全装置86设置接口管理逻辑电路92以覆写对SPI快闪存储器(例如,本发明的周边装置78)的至少一预先定义地址区的存取。此地址区可包含,例如一个或多个密钥、主机装置74的配置数据(configuration data)及/或初始开机数据段(initial boot block)。
在一重置解除步骤112,安全装置86将主机从重置状态解除。因此,在一开机步骤116,主机装置74开始开机程序。在一区域存取子步骤120中,由安全装置86从内部存储器98服务开机程序的一部份对此预先定义地址区的存取。
在此方式中,敏感信息例如密钥、配置数据及/或初始启动代码可由安全装置安全地提供。主机装置74不知道此信息是由安全装置提供而非SPI快闪存储器。
图7的方法绘示一安全装置如何能覆写对周边装置的预先定义地址区的存取的实施例。在其他实施例,其他任何适当方法也可使用于使方法。此外,当冒充SPI快闪存储器装置时。安全装置可借由其他任何适当方式来覆写及/或阻断未经授权的事务,以保护此快闪存储器装置(或其他周边装置)。
再者,对未经授权事务覆写手段不限于保护一特殊预先定义地址区。例如,可根据受保护的周边装置的回传数据或是根据SPI指令码触发此覆写手段。例如,安全装置可实施禁用程序化、抹除、写入、状态、配置及/或其他任何指令或是快闪存储器装置的功能的安全策略。华邦(Winbond)电子公司2015年8月24日出版的"SPI Flash-3V Serial FlashMemory with Dual/Quad SPI and QPI"数据已经规定SPI快闪存储器指令以及命令的示例规范。
在另一实施例,图7所示的方法中,敏感信息一开始存储于快闪存储器装置中,在开机程序的一部份是安全装置从快闪存储器装置读取敏感信息。在其他实施例,敏感信息可一开始存储在安全装置中(用以取代快闪存储器,或是敏感信息也有存储于快闪存储器)。在此实施例中,安全装置不需要从快闪存储器装置读取信息。
在另一示例中,图7的方法与搭配一SPI总线。在其他实施例,安全装置可使用其他总线的任何专用信号及/或共用信号,以在其他总线以及协议中覆写对一周边装置的预先定义地址区的存取。例如,I2C总线为一双向上拉总线(pull-up bidirectional bus),其设计以支持多个从属装置以及多个主控元件。因此,此通讯协议具有一嵌入式机制以处理装置之间的竞争关系。例如,当I2C装置检测在SDA线上的"0",便尝试设定"1"(上拉),此装置假定出现竞争并解除总线直到下一事务。在一实施例中,I2C安全装置(例如,图1的安全装置36)用以迭合(overlap)另一周边装置从属(例如,图1的安全装置28)的一些地址空间。例如,此安全装置可回答另一周边装置所期待的相同数据。若安全装置检测到数据不符合的情况,例如安全装置尝试上拉成"1"但是却检测到SDA线上仍是"0",则安全装置可启动回应措施,例如,造成一停止条件,在一个或多个数据线上驱动信号"0",以设定一无限时钟延长或是其他任何适当动作。此技术可使用传统的I2C从属装置在数据位准监控装置,而不须改变实体层硬件。
在又一实施例,安全装置86(使用ILM 92)亦监控SPI地址的数据相位(dataphase)。当辨识出数据不符合,安全装置可启动回应措施,例如,断开事务、重置系统、锁住对密钥的存取、或是其他任何适当动作。
在一示例情境,安全装置86保存有存储在SPI快闪存储器中的某一代码部份的签名(signature)或是摘要(digest)。安全装置监控主机装置74对SPI快闪存储器的存取,并在背景下计算此代码部份的签名或是杂凑值。若检测到错误签名、错误杂凑值或是错误的SPI提取数列(SPI fetch sequence),安全装置86可启动适当回应措施。
在又一实施例,安全装置可在总线上监控一个以上的周边装置78,并验证对不同装置的存取命令是否与预期相同。
在又一实施例,当检测到对周边装置78进行的事务已经授权时,安全装置86可使用一个或多个CS之外的信号,以限制对周边装置78的存取,或是实施某一系统状态。以下描述上述信号的类型或用途,但其仅为举例而非为限制本发明。
·搭配图4的安全系统而呈现的任何信号
·快闪存储器的防写信号
·重置控制信号
·电力管理控制信号
·控制一个或多个装置的电力
·禁用系统通讯,例如禁用网络接口控制器(network interface controller,NIC)
·系统重置
此外,上述信号或是其他任何适当信号可用于产生系统警讯及/或启动任何适当回应措施。
借由延长CS持续时间以阻断对SPI快闪存储器的未经授权的事务
图8为根据本发明的另一实施例的受安全保护的系统132中多个装置在SPI总线上进行通讯的示意性方块图。图8的系统132与图5的系统130相似,不同之处在于图8的系统132额外具有一与门134以及一控制信号MASK_LOW_CS2。在图8中,周边装置78为一SPI快闪存储器装置。如同图5的说明,安全装置86借由选择性让CS2#信号到达周边装置或是阻止CS2#信号到达周边装置,以阻断主机装置74以及周边装置78之间的事务。图5中,借由设定控制信号MASK_CS2#有效或无效,以执行此选择动作。
在一实施例中,周边装置78为一SPI快闪存储器装置。在本实施例中,将快闪存储器装置CS信号(图中所示的CS2_O#)设定成"低位准",表示选择快闪存储器装置;反之,将CS信号设定成"高位准",表示不选择此快闪存储器装置。
图5所示的范例中,安全装置86借由在事务结束之前设定MASK_CS2#信号为高位准,以阻断主机装置74以及快闪存储器78之间的事务。此操作在事务结束之前将快闪存储器装置的CS信号设定成"高位准",而不选择此快闪存储器装置。
然而,在一些情况,上述技术可能无法阻断一些未经授权的事务。例如,当一已经授权的事务与一未经授权的事务的差别只有最后一个比特。例如,在一实施例中,指令操作码0x60已经授权,但指令操作码0x61未经授权而应该阻断。在此情况,在取样最后一比特后不选择快闪存储器装置的CS信号则将不会阻断事务。
图8的其他实施例可克服此问题。在图8的配置中,MASK_LOW_CS2信号通常设定成"高位准"。回应检测到未经授权事务,安全装置86可设定MASK_LOW_CS2为"低"位准。此操作可将快闪存储器装置78的CS信号的持续时间延长超出此事务的实际结束时间。因此,快闪存储器装置78可以检测到事务的长度超过预期长度一个或多个时钟周期,则阻止执行此事务。
当使用图8所示的技术时,安全装置86可延长CS信号的持续时间至任何适当长度,例如,延长一个时钟周期、几个时钟周期、或是无限个时钟周期,例如直到下一次重置或是上电。
在图8的示例性实施例(以及图5的示例性实施例),借由使用CS1#信号选择安全装置86,可让安全装置86在SPI总线82上与主机装置74进行通讯。在其他实施例,安全装置非强制必须有一个别CS信号。此安全装置可使用其他任何适当接口,直接或是间接与主机装置进行通讯。在一些实施例中,只要安全装置能在没有接口的情况下监控SPI事务以及保护总线安全,主机装置以及安全装置之间也可以没有接口。
使用事务组计数器监控SPI快闪存储器的事务
在一些实施例中,安全装置86的处理器94会载明一个或多个SPI事务群组(groupof SPI transactions),以及在每一群组中保持对SPI事务数量的持续计数。每一SPI事务群组可包含一个或多个符合一些预先定义标准的SPI事务。
在一示例中,一事务群组可包含多种类型的读取事务,而另一事务群组可包含多种类型的写入事务。在另一范例,一事务可包含多种类型的已经授权事务,而另一事务群组可包含多种类型的未经授权事务。此外,可使用其他任何适当的事务分类。处理器94可定义任何适当数量的群组。此群组不必包含所有可能的事务类型。此分类可以是使用者自订的。
在一实施例中,安全装置86包含多个由硬件实现或由软件实现的计数器,其为本发明的事务组计数器(transaction-group counter)。处理器94分别分配一计数器给每一事务群组。处理器94的软件可重置一既定计数器,例如,当系统重置或是上电后重置、读取计数器之后重置、计数器达到某一门槛值之后重置、或是符合其他任何适当条件或是事件后重置。
一般而言,某一事务类型可出现在一个以上事务群组,其表示一个事务可能会让多个计数器增加计数。例如,考量一实施例,包含一具有所有写入事务类型的第一群组、一具有所有读取事务类型的第二群组、以及一具有所有未经授权事务的第三群组。然而,在此例中,写入事务的一些类型已经授权而其他类型未经授权。3个计数器可分别界定为3个群组所用。在本实施例中,回应辨识到一未经授权的写入事务,处理器94将增加第一计数器以及第三计数器的计数。此外,其他任何计数群组可省略未经授权的事务。
在正常操作期间,处理器94持续增加计数器。因此,在一个给定的时间点,每一事务组计数器可表示在此既定时间中属于其群组的SPI事务的发生数量。安全装置86或其他装置可使用此信息来判断主机装置74的操作状况,以检测主机装置74的可能为安全威胁的反常行为,或是使用此信息于其他任何适当用途。在一些实施例中,如果计数器数值表现出主机装置74的可疑行为特征,例如写入或是抹除事务的数量出乎预料的高,处理器94可发出一警讯或是触发另一些回应措施。
图9为根据本发明的一实施例的使用事务组计数器监控SPI事务的方法的示意流程图。在此方法中,一开始,在分群以及指定步骤140,处理器94将多种类型的SPI事务区分成至少二群组,并将个别事务组计数器分配给至少其中的一群组。
在事务辨识步骤144,处理器94辨识在SPI总线上主机装置74以及SPI快闪存储器78之间的SPI事务。在分类步骤148,处理器94辨识事务属于哪一个SPI事务群组。
在检查授权步骤152,处理器94检查是否所辨识的SPI事务已经授权。如果已经授权,则进行事务接受步骤156,处理器94允许事务执行完成。如果未经授权,则进行事务阻断步骤160,处理器94阻断事务。
在增加计数步骤164,处理器94增加在步骤148辨识出的群组所对应的事务组计数器。接着,此方法返回步骤144,处理器94继续监控SPI总线82后续的事务。
图9的流程仅为范例以清楚解释概念。其他任何适当流程可用于其他实施例。例如,在一些实施例中,处理器94不必阻断未经授权事务,而是处理器94可启动适当回应措施,例如触发警讯或是进入警示模式。另一范例,使用事务组计数器机制也不一定需要检查未经授权事务,例如,不去判断任何事务是否为未经授权。
在安全装置支持SPI快闪存储器模式
在一些实施例中,SPI快闪存储器装置78支持专用运作模式。回应来自主机装置的专用SPI指令,例如模式进入事务(mode-entry transaction)或是模式离开事务(mode-exit transaction),可进入专用模式(dedicated mode)或是离开专用模式。依据SPI快闪存储器装置是否在专用模式,一些SPI事务可具有不同的格式或是解释。在一些实施例中,安全装置86的处理器94知道并支持SPI快闪存储器78的专用模式。
例如,专用模式可为一“连续读取”模式,其也称为XIP模式。华邦电子公司在2015年11月13日发表的“W25Q257FV SPI Flash-3V 256M-Bit Serial Flash Memory withDual/Quad SPI&QPI”的数据表中描述此用语“XIP模式”。当操作在连续读取模式,快闪存储器装置预期只会接收到读取事务,因此主机装置不会在每个指令传送读取操作码。此外,安全装置86的处理器94可支持其他任何适当专用模式。
在一些实施例中,处理器94可借由以下方式支持某一专用模式:(i)辨识出主机装置74(在SPI总线82上)指示快闪存储器装置78进入此专用模式的SPI事务,以进入专用模式;(ii)借由辨识主机装置74指示快闪存储器装置78离开专用模式的SPI事务,以从专用模式离开;(iii)依据快闪存储器装置是否在专用模式下操作,以符合安全装置操作。
在一些实施例中,根据对进入专用模式的辨识,处理器94可实现此专用模式的实际逻辑,其与在快闪存储器装置78实现的逻辑相似。在此些实施例,在此专用模式下处理器94继续监控SPI事务,并将此事务解释与此模式定义相适配(adapt)。例如,在“连续读取”模式,处理器94假设所省略的读取指令操作码与前一个读取指令操作码相同,并从此事务的起始位置(CS#信号变成低位准的第一周期开始)便监控/分析地址比特。换句话说,当该存储器装置操作在该既定运作模式时,该处理器对一个或多个事务给予一第一解释(firstinterpretation),以及当该存储器装置不是操作在该既定运作模式时,该处理器对该一个或多个事务给予一不同的第二解释(second interpretation)。
在其他的实施例中,依照对进入专用模式的辨识,处理器94中止对SPI事务的监控直到离开此专用模式。因为处理器94只被要求辨识进入专用模式以及离开专用模式,而不须实现整个专用模式的操作逻辑,上述方式更容易实现。此方式适用于只预期有已经授权事务(因此事务不会阻断)的专用模式。例如,在一实施例,安全装置86只被要求防范未经授权的写入事务,因此当进入"连续读取(continuous read)”模式时可以中止(suspend)对事务监控。
安全装置的串行快闪存储器可发现参数(SFDP)的操作
串行快闪存储器可发现参数(SFDP)标准规定内部参数表的标准组中串行快闪存储器装置的功能性以及特征功能。主机系统软件可查询(interrogate)此些参数表。
SFDP规定在JEDEC JESD216标准系列,并在旺宏国际公司(MarconixInternational Co.)2011年发表的应用说明"Introduction-Serial Flash DiscoverableParameter Structure",以及在美光科技公司(Micron Technology Inc.)在2012年发表的技术说明"Serial Flash Discovery parameter for MT25Q Family-Introduction"所有描述。
在一些实施例中,在主机装置74第一次与快闪存储器装置进行通讯之前,安全装置86的处理器94可从快闪存储器装置78取得SFDP。处理器94接着修改SFDP并将此修改后的SFDP提出(暴露)给主机装置74。为了清楚起见,以下内容以主要以SFDP进行说明,但是本发明可应用对存储器装置的功能(capabilities)进行查询的其他任何类型的事务。
在一些实施例中,修改SFDP时,处理器94可在SFDP中增加一个或多个快闪存储器装置78不支持的功能。当提出修改后的SFDP,主机装置74可能会尝试使用此快闪存储器装置不支持的新增功能。通常,当监控在SPI总线82上的SPI事务时,处理器94可辨识出此尝试,而安全装置86可代替快闪存储器装置实现此功能。例如,上述新增功能可以是支持重放保护单向性计数器(replay-protected monotonic counter,RPMC),其已经揭露在美国专利申请号16/503,501,标题为"RPMC Flash Emulation"的内容,其公开内容通过引用并入本文。此外,其他任何适当的功能也可增加至此SFDP中。
在一些实施例中,为了对主机装置74隐藏支持功能,修改SFDP时,处理器94可省略SFDP中快闪存储器装置78可以支持的一个或多个功能。例如,处理器94可隐藏一些模式的支持,例如双传输速率(DDR)功能、快速通道互联(QPI)功能、连续读取(XIP)功能、或是其他任何适当功能。在某些情况下,隐藏快闪存储器装置78可以支持的功能可能是有用处的,例如,可以让安全装置86的实现变得简单。当对主机装置隐藏某一功能时,安全装置就不会被要求要支持此功能,但是仍然通常会被要求辨识相关的SPI事务,而如果其出现在总线上,安全装置会阻断此SPI事务。
在各种实施例中,处理器94可在不同时期从快闪存储器装置78取得实际SFDP。例如,在系统整合或是测试期间,安全装置86的非挥发性存储器可预编程有快闪存储器装置78的实际SFDP。在另一范例,在主机装置存取装置之前,处理器94可在上电时序期间(power-up sequence),从快闪存储器装置78取得此SFDP。
随后,当主机装置74发出一SFDP读取事务,处理器94辨识此指令操作码,则阻断此事务,例如,将图5或是图8的CS2_O#信号设定成"高位准",接着在总线82的MISO线上供应修改过的SFDP给主机装置74,借此完成此事务。主机装置没有办法检测出此SFDP是由安全装置提供而非快闪存储器装置。
借由安全装置安全调解写入/抹除事务
在一些实施例中,安全装置86不仅监控在SPI总线上的事务,也会调解(mediate)主机装置以及快闪存储器装置。在此些实施例,安全装置86从主机装置78接收所选的SPI指令,例如写入指令或抹除指令,并验证此指令已经授权。只有当此事务已经授权,安全装置86才会让此事务完成,例如,代表主机装置74在快闪存储器装置78中执行此指令。
通常,安全装置86的验证处理包含评估(evaluate)待写入快闪存储器装置的数据。在一些实施例中,此评估包含加密操作,例如验证此数据的签名(signature)。此类验证工作通常要求相当多计算量,并比较不适用于即时动态验证(以及可能之后的阻断)在总线上的事务。
图10为根据本发明的一实施例的用以安全调解主机以及SPI快闪存储器之间的写入/抹除事务的示意性流程图。在此方法中,一开始,在一监控步骤170,安全装置86的处理器94监控在SPI总线上的事务。
在一辨识步骤174,处理器94辨识主机装置74要求对快闪存储器装置的写入事务。在一阻挡步骤178,处理器94阻挡所要求的写入事务在快闪存储器装置中执行。在一取得步骤182,在主机装置以及安全装置之间的SPI总线上或是其他任何适当接口上,处理器94从主机装置74取得此写入事务的指令以及数据。
在一评估步骤186,处理器94评估此写入事务。如上所述,此评估可包含对待写入的数据进行加密操作或其他操作。在一步骤190,如果此验证成功,例如,写入事务已经授权,则在一步骤194,处理器在快闪存储器装置78中代表主机装置74执行此写入事务。如果此验证未成功,例如,验证失败,则不执行此写入事务,而流程返回到步骤170。
图10的流程仅为一范例以清楚解释概念。其他实施例可使用其他任何适当流程。例如,图10的流程用于辨识、阻挡以及有条件地执行单一事务。在其他实施例,可阻挡、评估以及执行多个事务、或拒绝全体事务。例如,处理器94可依序辨识用于写入大量数据至存储器的多个写入事务。处理器可阻挡此些事务(如果其指向快闪存储器),从主机装置取得整个数据(多个事务的序列的数据),并评估整体数据。只有当全部数据都已经授权,处理器94才将此数据写入快闪存储器装置。
在本发明中,用语“写入事务”意指多种类型的事务,例如,编写快闪存储器(Flash-program)、抹除快闪存储器数据扇区/数据区块/全部芯片(sector/block/chip-erase)、写入使能、以及多种会改变快闪存储器装置状态的其他指令。
通常,为了支持此方法,安全装置86应能在总线82上开始SPI事务。安全装置以及主机装置之间应提供一适当接口(总线82或其他总线)。当安全装置控制总线时,主机装置应避免在SPI总线上传送事务。
为清楚描述概念起见,图1、图3-图6以及图8所示的系统20、70、110、130以及132的配置与多个系统元件例如安全装置36与86、总线32与82的配置仅为配置范例,而本发明不受其限制。在其他实施例,配置使用其他任何适当配置。
例如,为清楚起见,图中仅显示单一周边装置以及单一主机装置。在一些实施例中,安全系统可包含至少二周边装置及/或至少二主机装置。此外,本发明的实施例所以描述的I2C以及SPI总线仅为举例。在其他实施例,本发明所揭露的技术可经过必要的修改而实现在其他任何适当类型的总线。
为了清楚说明起见,本文中SPI相关的实施例主要参考单一比特SPI模式(single-bit SPI mode)。在其他实施例,本发明所揭露的技术可亦使用于其他SPI模式,例如双线式SPI、四线式SPI、快速通道互联(QPI)、或是DDR模式。本发明所揭露的技术可亦施加至其他模式,例如连续读取模式。
系统20、70、110、130以及132的不同元件可用任何适当硬件来实现,例如使用一专用集成电路(ASIC)或一现场可编程逻辑门阵列(FPGA)来实现。在一些实施例中,安全装置32与86的一些元件,例如处理器44或是94,可用软件、或是硬件以及软件元件的组合来实现。存储器48以及98可使用任何适当类型的存储器装置来实现,例如使用随机读取存储器(RAM)或是快闪存储器(Flash)来实现。
在一些实施例中,处理器44及/或处理器94可包含一通用可编程处理器,其可用软件编程以执行本发明所揭露的功能。可以通过网络将软件以电子形式下载到处理器,或者可附加的或可替换的以非暂态的有形媒体(non-transitory tangible media)如磁、光、电子存储器存储。
在上述实施例中,安全装置先通过监控总线以检测出未经授权的事务,接着中断事务。在一个替代的实施例中,安全装置不须先检测到事务便可以中断事务,甚至不须监控总线。例如,安全装置可以覆写某个主机的芯片选择(CS)线,直到或者除非该主机被授权。授权可以以任何合适的方式执行,并非必须使用相同的总线。
作为非限制性实施例,本文描述的方法和系统可用于各种应用,例如在安全存储器应用、物联网(IoT)应用、嵌入式应用或汽车应用中,在此仅举几个例子。
因此,应当理解的是,上述实施例以实施例的方式引用,并且本发明不限于上述具体示出和描述的内容。相反的,本发明的范围包括上述各种特征的组合及子组合,以及本领域技术人员在阅读前述描述时将想到的未揭露的技术。通过引用并入本申请的文件为本申请的一部分,除非在这些被并入的文件中有任何术语的定义与本文明确地或隐含地与本文相冲突时,应参考本文的定义。
虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本申请的权利要求范围所界定者为准。
Claims (18)
1.一种安全装置,其特征在于,包含:
一接口,用以连接一总线,该总线服务一个或多个周边装置,其中至少其中的一该周边装置为一存储器装置;以及
一处理器,连接至该总线以及该一个或多个周边装置,该处理器用以保存区分与该存储器装置进行的已经授权以及未经授权的事务的定义,以辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应当根据该定义辨识出该事务未经授权时启动一回应措施;
该总线包含一个或多个专用信号以及一个或多个共用信号,每一该一个或多个专用信号分别专用于其中一该周边装置,该一个或多个共用信号在该总线所服务的该周边装置之中共用,其中该处理器借由阻断与该存储器装置相关的该专用信号,以阻断在该总线上的该事务;
与该存储器装置相关的该专用信号为该存储器装置的一芯片选择信号,以及该处理器借由将该芯片选择信号选择该存储器装置的一持续时间延伸超出该事务的实际结束时间,以避免该存储器装置执行该事务,借以阻断该事务。
2.如权利要求1所述的安全装置,其特征在于,该定义载明对该存储器装置进行的已经授权事务,以及其中回应当辨识出该事务未载明在该定义,则该处理器启动该回应措施。
3.如权利要求1所述的安全装置,其特征在于,该处理器用以定义一个或多个事务群组,以保持一个或多个分别对应该一个或多个事务群组的计数器,以监控该总线,以及回应当辨识出在该总线上该总线主装置以及该存储器装置之间的一既定事务时,增加该既定事务所属的群组所对应的计数器的计数。
4.如权利要求1所述的安全装置,其特征在于,该处理器辨识在该总线上一个或多个指示该存储器装置进入一既定运作模式的模式进入事务以及一个或多个指示该存储器装置离开该既定运作模式的模式离开事务,以辨识是否该存储器装置操作在该既定运作模式。
5.如权利要求4所述的安全装置,其特征在于,当该存储器装置操作在该既定运作模式时,该处理器对一个或多个事务给予一第一解释,以及当该存储器装置不是操作在该既定运作模式时,该处理器对该一个或多个事务给予一不同的第二解释。
6.如权利要求4所述的安全装置,其特征在于,当该存储器装置操作在该既定运作模式时,该处理器中止启动回应措施。
7.如权利要求1所述的安全装置,其特征在于,该处理器从该总线主装置接收该事务,以验证是否该事务已经授权,以及当决定该事务已经授权,该处理器在该存储器装置中执行该事务。
8.如权利要求7所述的安全装置,其特征在于,该处理器接收该事务作为多个事务的数列的一部分,该处理器验证是否该事务已经授权,作为对该多个事务的数列进行共同验证的一部分。
9.如权利要求1所述的安全装置,其特征在于,该事务为一由该总线主装置写入一数据至该存储器装置的写入事务,其中该处理器对数据执行一加密操作,并于该加密操作成功时判断该事务已经授权。
10.一种安全方法,其特征在于,包含:
使用一安全装置在一总线上进行通讯,该安全装置连接至该总线以及一个或多个周边装置,至少其中的一该周边装置为一存储器装置;
保存一区分与该存储器装置进行的已经授权以及未经授权的事务的定义;以及
使用该安全装置辨识在该总线上一总线主装置尝试存取该存储器装置的事务,以及回应当根据该定义辨识出该事务未经授权时启动一回应措施;
该总线包含一个或多个专用信号以及一个或多个共用信号,每一该一个或多个专用信号分别专用于其中一该周边装置,该一个或多个共用信号在该总线所服务的该周边装置之中共用,其中启动该回应措施包含阻断与该存储器装置相关的专用信号,以阻断在该总线上的该事务;
该一个或多个专用信号为该存储器装置的一芯片选择CS信号,以及阻断该事务的步骤包含:
借由将该CS信号选择该存储器装置的一持续时间延伸超出该事务的一实际结束时间,以避免该存储器装置执行该事务。
11.如权利要求10所述的安全方法,其特征在于,该定义载明对该存储器装置进行的已经授权事务,以及回应当辨识出该事务未载明在该定义,启动该回应措施。
12.如权利要求10所述的安全方法,其特征在于,还包含定义一个或多个事务群组,以保持一个或多个分别对应该一个或多个事务群组的计数器,以监控该总线,以及回应当辨识出在该总线上该总线主装置以及该存储器装置之间的一既定事务时,增加该既定事务所属的群组所对应的计数器的计数。
13.如权利要求10所述的安全方法,其特征在于,还包含:
辨识在该总线上一个或多个指示该存储器装置进入一既定运作模式的模式进入事务以及一个或多个指示该存储器装置离开该既定运作模式的模式离开事务,以辨识是否该存储器装置操作在该既定运作模式。
14.如权利要求13所述的安全方法,其特征在于,还包含:
当该存储器装置操作在该既定运作模式时,对一个或多个事务给予一第一解释,以及当该存储器装置不是操作在该既定运作模式时,对该一个或多个事务给予一不同的第二解释。
15.如权利要求13所述的安全方法,其特征在于,还包含:
当该存储器装置操作在该既定运作模式时,中止启动该回应措施。
16.如权利要求10所述的安全方法,其特征在于,还包含:
从该总线主装置接收该事务,以验证是否该事务已经授权;以及
当决定该事务已经授权时,在该存储器装置中执行该事务。
17.如权利要求16所述的安全方法,其特征在于,接收该事务的步骤包含:
接收该事务作为多个事务的数列的一部分,并验证是否该事务已经授权,以作为对该多个事务的数列进行共同验证的一部分。
18.如权利要求10所述的安全方法,其特征在于,该事务为一由该总线主装置写入一数据至该存储器装置的写入事务,其中验证该事务是否已经授权的步骤包含:
对数据执行一加密操作,并于该加密操作成功时决定该事务已经授权。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/568,299 | 2019-09-12 | ||
US16/568,299 US10776527B2 (en) | 2015-06-08 | 2019-09-12 | Security monitoring of SPI flash |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112487509A CN112487509A (zh) | 2021-03-12 |
CN112487509B true CN112487509B (zh) | 2024-04-09 |
Family
ID=74863157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010459272.3A Active CN112487509B (zh) | 2019-09-12 | 2020-05-27 | 安全装置及安全方法 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP7079558B2 (zh) |
CN (1) | CN112487509B (zh) |
TW (1) | TWI791138B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014099185A (ja) * | 2013-12-16 | 2014-05-29 | Renesas Electronics Corp | 半導体装置 |
CN106156632A (zh) * | 2015-05-17 | 2016-11-23 | 新唐科技股份有限公司 | 安全装置及在其内提供安全服务至主机的方法、安全设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8006095B2 (en) * | 2007-08-31 | 2011-08-23 | Standard Microsystems Corporation | Configurable signature for authenticating data or program code |
US8813227B2 (en) * | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
KR102017828B1 (ko) * | 2012-10-19 | 2019-09-03 | 삼성전자 주식회사 | 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들 |
US10452582B2 (en) * | 2015-06-08 | 2019-10-22 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10095891B2 (en) * | 2015-06-08 | 2018-10-09 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
-
2020
- 2020-02-03 TW TW109103275A patent/TWI791138B/zh active
- 2020-04-28 JP JP2020079437A patent/JP7079558B2/ja active Active
- 2020-05-27 CN CN202010459272.3A patent/CN112487509B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014099185A (ja) * | 2013-12-16 | 2014-05-29 | Renesas Electronics Corp | 半導体装置 |
CN106156632A (zh) * | 2015-05-17 | 2016-11-23 | 新唐科技股份有限公司 | 安全装置及在其内提供安全服务至主机的方法、安全设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2021043944A (ja) | 2021-03-18 |
JP7079558B2 (ja) | 2022-06-02 |
TWI791138B (zh) | 2023-02-01 |
TW202112114A (zh) | 2021-03-16 |
CN112487509A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452582B2 (en) | Secure access to peripheral devices over a bus | |
US10691807B2 (en) | Secure system boot monitor | |
US10776527B2 (en) | Security monitoring of SPI flash | |
JP6703064B2 (ja) | バスを介して周辺デバイスを安全にアクセスするための方法 | |
US7917716B2 (en) | Memory protection for embedded controllers | |
US10303883B2 (en) | Firmware verification through data ports | |
US11188321B2 (en) | Processing device and software execution control method | |
CN112487509B (zh) | 安全装置及安全方法 | |
CN110390214B (zh) | 通过汇流排安全存取周边装置的安全装置及方法 | |
TWI738135B (zh) | 監控系統開機之安全裝置及其方法 | |
CN111625875B (zh) | 一种计算机外设接口关断与恢复的多层次协同控制方法 | |
TWI733399B (zh) | 安全裝置、安全方法、安全系統以及安全設備 | |
JP2003288564A (ja) | メモリカード | |
US20190042473A1 (en) | Technologies for enabling slow speed controllers to use hw crypto engine for i/o protection | |
WO2021096618A1 (en) | Access filter for security subsystem |
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 |