CN111695164B - 电子设备及其控制方法 - Google Patents
电子设备及其控制方法 Download PDFInfo
- Publication number
- CN111695164B CN111695164B CN201910739412.XA CN201910739412A CN111695164B CN 111695164 B CN111695164 B CN 111695164B CN 201910739412 A CN201910739412 A CN 201910739412A CN 111695164 B CN111695164 B CN 111695164B
- Authority
- CN
- China
- Prior art keywords
- memory
- area
- data
- command
- electronic device
- 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 29
- 230000015654 memory Effects 0.000 claims abstract description 79
- 230000008569 process Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 30
- 230000008859 change Effects 0.000 description 22
- 230000004048 modification Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 239000000470 constituent Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012795 verification 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/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/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/575—Secure boot
-
- 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
-
- 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/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施方式提供一种能够确保安全性而进行调试的电子设备及其控制方法。实施方式的电子设备具备第1处理器、非易失性的第1存储器、易失性的第2存储器和命令执行电路。第1存储器存储第1处理器所执行的程序。第2存储器包括存储从第1存储器读出的程序的第1区域、以及存储程序所参照的数据的第2区域。命令执行电路对从外部设备供给的第2存储器的改写命令进行认证,如果改写命令的认证成功,则执行改写命令。
Description
本申请基于日本专利申请2019-45133号(申请日:2019年3月12日)主张优先权,这里引用其全部内容。
技术领域
本发明的实施方式涉及电子设备及其控制方法。
背景技术
在电子设备故障的情况下,有时制造者对故障的原因进行解析(也称作调试,debug)。电子设备为了调试用而存储有日志(称作调试日志)。为了调试,制造者需要将故障的电子设备回收,从电子设备将调试日志读出。为了调试日志的读出而需要调试用接口。调试用接口在电子设备的出货前能够为了制造阶段的动作检查而使用,但在出货时被设为不能使用。
例如在植入设备等中,除了通常的固件以外还准备能够使用调试用接口的特殊的调试用固件。制造者将回收后的电子设备的固件更新为调试用固件。由此,调试用接口成为能够使用,调试日志成为能够读出,执行调试。另外,调试用固件不仅能够使用调试用接口,还将通常被设为无效的功能设为有效。
在调试用固件自身或安装着调试用固件的电子设备流出的情况下,发生不能确保电子设备的安全性的问题。
为了防止该问题,可以考虑为了使得能够由调试用固件使用调试用接口而进行用户认证。但是,由于用于认证的口令被植入在调试用固件中,所以如果调试用固件流出而固件被解析,则口令被获知,并没有解决问题。
发明内容
本发明的实施方式提供一种能够确保安全性而进行调试的电子设备及其控制方法。
实施方式的电子设备具备第1处理器、非易失性的第1存储器、易失性的第2存储器和命令执行电路。第1存储器存储第1处理器所执行的程序。第2存储器包括存储从第1存储器读出的程序的第1区域、以及存储程序所参照的数据的第2区域。命令执行电路对从外部设备供给的第2存储器的改写命令进行认证,如果改写命令的认证成功,则执行改写命令。
附图说明
图1是表示第1实施方式的电子设备的结构的一例的框图。
图2是表示第1实施方式的电子设备的第2CPU的功能结构的一例的框图。
图3的(a)、图3的(b)是表示第1实施方式的电子设备的第1CPU和第2CPU的地址映射的一例的图。
图4是表示第1实施方式的电子设备的第2CPU的引导(boot)处理的一例的流程图。
图5是表示第1实施方式的电子设备的数据改写动作的一例的流程图。
图6是表示第1实施方式的电子设备的调试动作的一例的流程图。
图7是表示第2实施方式的电子设备的第2CPU的功能结构的一例的框图。
图8是表示第2实施方式的电子设备的固件变更动作的一例的流程图。
图9是表示第3实施方式的电子设备的结构的一例的框图。
图10是表示第3实施方式的电子设备的第2CPU的功能结构的一例的框图。
图11的(a)、图11的(b)是表示第3实施方式的电子设备的第1CPU和第2CPU的地址映射的一例的图。
图12是表示第3实施方式的电子设备的数据改写动作的一例的流程图。
具体实施方式
以下,参照附图说明实施方式。以下的说明是例示用来将实施方式的技术的思想具体化的装置及方法的,实施方式的技术的思想并不限定于以下说明的构成要素的构造、形状、配置、材质等。本领域技术人员能够容易地想到的变形当然包含在本发明的范围中。为了使说明变得更明确,也有在图中将各要素的尺寸、厚度、平面尺寸或形状等相对于实际的实施方式变更而示意地表示的情况。也有在多个图中包含相互的尺寸的关系或比率不同的要素的情况。也有在多个图中对于对应的要素赋予相同的标号而省略重复的说明的情况。有对几个要素赋予多个称呼的情况,但这些称呼的例子只不过是例示,不是否定对这些要素赋予其他称呼。此外,关于没有被赋予多个称呼的要素,并不是否定赋予其他称呼。另外,在以下的说明中,“连接”不仅是直接连接,还指经由其他要素连接。
[第1实施方式]
实施方式的电子设备对怎样的电子设备都能够应用,但作为第1实施方式,说明由使用闪速存储器等的非易失性半导体存储器的固态硬盘驱动器(简称作Solid StateDrive:SSD)构成的存储装置20的例子。图1表示包括存储装置20和主机装置10的信息处理系统的一例。
[设备结构]
存储装置20具备作为存储介质的闪速存储器24和控制器22。闪速存储器24由例如NAND型的闪速存储器构成,但并不限于NAND型的闪速存储器,也可以使用其他的非易失性半导体存储器。主机装置10既可以是将大量且多种多样的数据保存在存储装置20中的服务器(也称作存储服务器),也可以是内置存储装置20的个人计算机。存储装置20既可以内置在主机装置10中,如图1所示,也可以经由线缆或网络与主机装置10连接。控制器22例如由SoC(System-on-chip:芯片上系统)构成。控制器22构成为,将数据向闪速存储器24写入并从闪速存储器24将数据读出。
控制器22具备通过系统总线33相互连接的主机I/F电路26、第1CPU28、寄存器28A、第2CPU30、寄存器30A、第1RAM32、第2RAM34、第1ROM36、第2ROM38及NAND I/F电路40。闪速存储器24与NAND I/F电路40连接。另外,第1RAM32和第2RAM34也可以作为不是经由系统总线33、而是经由本地总线或专用总线与第1CPU28和第2CPU30分别连接的紧密连接存储器TCM(Tightly-Coupled Memory)实现。
主机I/F电路26与主机装置10之间的接口可以使用例如Small Computer SystemInterface(SCSI)(注册商标)、PCI Express(注册商标)(也称作PCIe(注册商标))、SerialAttached SCSI(SAS)(注册商标)、Serial Advanced Technology Attachment(SATA)(注册商标)、Non Volatile Memory Express(NVMe(注册商标))、Universal Serial Bus(USB)(注册商标)等的标准,但并不限定于这些。
第1CPU28对向闪速存储器24的用户数据的写入和从闪速存储器24的用户数据的读出等的存储装置20的通常的动作进行控制。在存储装置20中,有将用户数据原样(以明文的原状)向闪速存储器24写入的非加密机型、和将用户数据在存储装置20的内部中加密后向闪速存储器24写入的加密机型的2种。实施方式既可以作为非加密机型也可以作为加密机型实现,但作为一例假设作为加密机型实现。在此情况下,第1CPU28也进行加密处理和解密处理。
进而,第1CPU28为了存储装置20的调试,将存储装置20的日志(也称作调试日志)也向闪速存储器24写入。调试日志也作为日志文件向闪速存储器24写入。调试日志包括例如日志事件的发生源、日期、时刻、日志的种类、注释等。
第2CPU30对第1CPU28用的RAM的改写进行控制。第2CPU30是安全性能比第1CPU28高的CPU。例如,将第2CPU30通过安全性较高的引导(安全引导:secure boot)引导,确保了安全性。另外,也可以代替第2CPU30而设置被认证的专用的硬件。
第1RAM32是被作为第1CPU28的工作区使用的易失性的存储器。第2RAM34是被作为第2CPU30的工作区使用的易失性的存储器。这里,假设第1RAM32、第2RAM34由控制器22内的SRAM构成,但也可以由设置在控制器22的外部的DRAM构成。第1RAM32、第2RAM34存储的数据的一例参照图2在后面叙述。另外,将第1CPU28的工作区和第2CPU30的工作区分别用不同的第1RAM32和第2RAM34构成,但也可以对1个RAM的不同的地址区域分配第1CPU28的工作区和第2CPU30的工作区。
第1ROM36是存储作为第1CPU28执行的程序的固件和用于第1CPU28的认证的信息的非易失性的存储器。第2ROM38是存储作为第2CPU30执行的程序的固件和用于第2CPU30的认证的信息的非易失性的存储器。第1ROM36、第2ROM36也可以由可写入的ROM、例如NOR型的串行闪速存储器、可光学地写入的ROM构成。在第1ROM36由NOR型的串行闪速存储器构成的情况下,第1CPU28也可以将调试日志代替闪速存储器24而向第1ROM36写入。另外,将第1CPU28的ROM和第2CPU30的ROM分别用不同的第1ROM36和第2ROM38构成,但也可以在1个ROM的不同的区域中存储第1CPU28的固件及用于认证的信息、以及第2CPU30的固件及用于认证的信息。
[功能结构]
图2是表示第1实施方式的第2CPU30的功能结构的一例的框图。主机I/F电路26具备命令输入输出部52。第2CPU30具备数据改写许可部54、认证处理部56、数据改写部58。数据改写许可部54、认证处理部56、数据改写部58可以通过第2CPU30执行固件而能够在软件上实现。但是,数据改写许可部54、认证处理部56、数据改写部58也可以由单独的硬件实现。
第1RAM32具备存储第1CPU28的固件的第1区域(也称作I-SRAM(InstructionSRAM))62、存储第1CPU28执行中的固件所参照的数据的第2区域(也称作D-SRAM(DataSRAM))64、其他数据的存储区域。第1CPU28如果被引导,则从第1ROM36将固件读出,保存到第1RAM32的第1区域62内,执行固件。由固件的执行生成的数据被保存到第1RAM32的第2区域64中。寄存器28A如图3的(a)所示,被与第1RAM32的第1区域62、第2区域64一起映射到能够从第1CPU28访问的地址空间上。另外,第1区域62和第2区域64也可以设置在分别不同的RAM上。
第2RAM34具备存储第2CPU30的固件的第1区域(也称作I-SRAM)72、存储第2CPU30执行中的固件所参照的数据的第2区域(也称作D-SRAM)74、其他数据的存储区域。第2CPU30如果被引导,则从第2ROM38将固件读出,保存到第2RAM34的第1区域72内,执行固件。通过固件的执行而生成的数据被保存到第2RAM34的第2区域74中。寄存器30A如图3的(b)所示,与第2RAM34的第1区域72、第2区域74一起映射到能够从第2CPU30访问的地址空间上。
如图3的(b)所示,在能够从第2CPU30访问的地址空间中,除了第2RAM34的第1区域72及第2区域74以及寄存器30A以外,还映射有第1RAM32的第1区域62及第2区域64以及寄存器28A。因此,第2CPU30能够对第2RAM34和寄存器30A访问,并且也能够对第1RAM32和寄存器28A访问。即,第2CPU30能够将第1CPU28的固件、第1CPU28的固件所参照的数据、寄存器28A的数据改写。
[引导处理]
参照图4的流程图说明第2CPU30的引导处理的一例。
在步骤S12中,通过由第2CPU30的硬件实现的微代码从第2ROM38将用于引导的固件读出,将固件向第2RAM34保存。在该固件中包含认证码。
在步骤S14中,第2CPU30根据在步骤S12中从第2ROM38读出并保存在第2RAM34中的固件计算认证码。
在步骤S16中,第2CPU30将计算出的认证码与在步骤S12中保存在第2RAM34中的固件中包含的认证码比较。
在步骤S18中,第2CPU30判定两认证码是否一致。在两认证码一致的情况下(步骤S18的是),在步骤S20中执行引导处理。在不一致的情况下(步骤S18的否),在步骤S22中执行错误处理。用来计算认证码的固件验证用的加密处理程序由于保存在第2ROM38中,所以难以篡改。因此,第2CPU30与第1CPU28相比能够进行安全性能较高的安全引导。
在第1CPU28的引导中不需要认证。
[数据改写处理]
图5是表示第1实施方式的数据改写处理的一例的流程图。这里,改写的数据的例子是第1CPU28的固件参照的数据。假设在该数据存储在第1RAM32的第2区域64或寄存器28A中。在实施方式中,第1RAM32的第2区域64内的数据或寄存器28A的数据的改写不是由第1CPU28、而是由第2CPU30进行。有时通过将这些数据改写,固件的处理结果变更。即,也有通过改写而固件实质上被变更(一部分的功能去除或一部分的功能追加)的情况。在第1实施方式中,被改写的数据是从1比特到几比特的较小的数据。
在第1CPU28及第2CPU30都被引导后,在步骤S102中,命令输入输出部52从主机装置10接收指示第1RAM32的第2区域64内的特定数据或寄存器28A内的特定的数据的改写的数据改写命令。数据改写命令包括“数据改写”的命令类别、改写对象的地址、改写的数据和认证数据。改写对象的地址是能够从第2CPU30访问的图3的(b)所示的地址空间上的第1RAM32的第2区域64内的改写对象的特定数据或寄存器28A内的特定的数据被映射的特定的地址。认证数据是存储装置20所固有的信息。
在步骤S104中,命令输入输出部52将接收命令解析,如果识别出接收命令是数据改写命令,则将数据改写命令向第2CPU30的数据改写许可部54发送,向数据改写许可部54委托数据改写。
在步骤S106中,数据改写许可部54向认证处理部56委托数据改写命令的认证。
在步骤S108中,认证处理部56基于与数据改写命令一起被供给的认证数据,使用例如AES等的共享密钥认证方式或RSA等的公开密钥认证方式等的认证算法对数据改写命令进行认证。由于认证数据是存储装置20固有的信息,所以即使认证数据流出,在其他的存储装置中认证也不会成功,防止执行伪造的数据改写命令。
在步骤S110中,认证处理部56判定认证是否成功。在认证成功的情况下(步骤S110的是),在步骤S112中数据改写许可部54将数据改写命令向数据改写部58供给,向数据改写部58委托数据改写。在认证失败的情况下(步骤S110的否),不执行步骤S112、S114,执行步骤S116。
在步骤S114中,数据改写部58将由命令指定的特定的地址的数据——即第1RAM32的第2区域64内的特定数据或寄存器28A内的特定的数据,改写为由命令指定的改写数据。
改写的一例,是将第1RAM32的第2区域64内的第1CPU28的固件所参照的特定的数据(1个比特或几个比特)改写。例如,在存储装置20故障的情况下,第1CPU28为了执行调试,需要使用调试用接口(也称作调试端口)从闪速存储器24将调试日志读出。通常,第1CPU28的固件不能使用调试端口。由于第1CPU28的固件能够使用调试端口,所以只要将固件变更就可以,但在固件的变更中花费时间。第1CPU28的固件根据特定的控制数据(例如被称作mode:模式)而许可/不许可调试端口的使用。因此,即使不将固件变更,通过将固件参照的控制数据mode改写,第1CPU28的固件也能够使用调试端口,第1CPU28的固件能够调试。
调试端口的例子有JTAG(Joint Test Action group:联合测试行动小组)或UART(Universal Asynchronous Receiver Transmitter:通用异步接收/发送器)等。例如,如果控制数据mode为“1”,则调试端口JTAG有效,能够经由调试端口将调试日志从闪速存储器24读出,如果控制数据mode是“0”,则JTAG无效,能够经由调试端口将调试日志从闪速存储器24读出。
固件参照的控制数据mode例如被保存在第1RAM32的第2区域64中。控制数据mode的初始值(制品出货时的值)是“0”。通过由数据改写命令的执行将控制数据mode改写为“1”,能够进行由第1CPU28进行的调试。
对于第1CPU28的固件参照的控制数据mode,不是第1CPU28的固件改写、而是第2CPU30的固件改写,是因为第2CPU30其安全性能更高。第2CPU30由于引导时的安全性较高,所以确保了安全性。如果第1CPU28的固件能够将第1CPU28的固件所参照的控制数据mode改写,则有可能被非法地改写。
在步骤S116中,数据改写许可部54将表示改写成功/改写失败的改写结果向命令输入输出部52返回。
在步骤S118中,命令输入输出部52将改写结果向主机装置10返回。另外,在认证失败的情况下,将改写失败返回而正常结束,但在认证失败的情况下,也可以异常结束。
另外,构成为,通过将第1RAM32的存储区域64内的控制数据mode改写而能够使用调试端口,但并不限于此,也可以构成为,通过将寄存器28A中的特定的数据改写也能够使用调试端口。
例如,在寄存器28A的特定的数据是“1”的情况下,能够向固件追加用于调试的功能(例如,输出调试日志的命令)。此外,调试日志能够读出,但在寄存器28A的其他特定的数据是“0”的情况下,也可以仅输出调试日志的一部分。在这样的情况下,通过将该数据设为“1”,第1CPU28的固件能够将全部的调试日志读出。此外,在别的特定的数据是“0”的情况下,虽然不能经由UART将调试日志读出,但如果该数据被变更为“1”,则能够经由UART将调试日志读出,也可以执行调试。
另外,假设寄存器28A和寄存器30A被安装在第1CPU28、第2CPU30的外部,但也可以内置在各CPU中,也可以具备内置的寄存器和外部安装的寄存器的两者。
[调试处理]
图6是表示第1实施方式的调试处理的一例的流程图。
在步骤S122中,第1CPU28经由命令输入输出部52接收来自主机装置10的调试命令。虽然没有图示,但假设第1CPU28也具备认证处理部,对调试命令进行认证,认证成功。
在步骤S124中,第1CPU28判定存储在第1RAM32的第2区域64中的控制数据mode是否是“1”。在控制数据mode是“1”的情况下(步骤S124的是),在步骤S126中许可调试端口的使用。
在步骤S128中,第1CPU28通过使用调试端口从闪速存储器24将调试日志读出等,执行调试命令。
在控制数据mode不是“1”的情况下(步骤S124的否),也可以异常结束。另外,在接收调试命令之前不执行图5所示那样的数据改写处理的情况下,由于控制数据mode是“0”,所以步骤S124的判定结果为NO。
[第1实施方式的总结]
根据第1实施方式,通过作为第1RAM32的第2区域64或寄存器28A内的数据、第1CPU28的固件所参照的数据被第2CPU30篡改,固件的功能的一部分被变更(包括功能的追加、去除)。追加的功能的一例是调试端口的使用许可,由此能够进行基于第1CPU28的调试。在调试结束后也是调试端口的使用被许可的原状,但如果存储装置20被关机,则第1RAM32及寄存器28A的数据丢失。即,存储在第1RAM32的第2区域64或寄存器28A中的被变更的控制数据mode挥发而不能永续,所以调试端口的使用被许可的状态通过关机而结束。接着,当存储装置20被引导时,由于控制数据mode的初始值是“0”,所以调试端口的使用不被许可。
这样,如果存储装置20被关机,则存储在第1RAM32的第2区域64或寄存器28A中的控制数据mode回到表示调试端口的使用不被许可的初始值。因此,即使安装着实施方式的固件的、调试端口的使用被许可的存储装置20流出,如果关机,调试端口的使用也不再被许可。结果,能保障存储装置20的安全性的保护。在不是将故障品回收而调试、而是在用户的站点进行调试的情况下,即使许可调试端口的使用的固件被从制造者的站点带出而导致固件流出,如果安装着固件的存储装置被关机,也不能非法地读取数据。
此外,由于由能够进行安全引导的第2CPU30将第1CPU28的第1RAM32或寄存器28A的数据改写,所以与由第1CPU28将第1RAM32或寄存器28A的数据改写相比,进行非法的改写的可能性较低。
[第2实施方式]
[功能结构]
图7是表示第2实施方式的第2CPU30的功能结构的一例的框图。在图7中,仅说明与图2所示的第1实施方式不同的地方。
在第1实施方式中,改写对象是第1RAM32的第2区域64或寄存器28A内的第1CPU28的固件所参照的数据,改写对象是至多是几个比特。在第2实施方式中,改写对象是第1RAM32的第1区域62内的第1CPU28的固件的一部分或全部。
第2CPU30具备FW(固件)变更许可部82、认证处理部84、补丁处理部86、FW变更部88。FW变更许可部82、认证处理部84、补丁处理部86、FW变更部88也可以通过第2CPU30执行固件来实现。但是,也可以将FW变更许可部82、认证处理部84、补丁处理部86、FW变更部88用单独的硬件来实现。
[固件变更(改写)处理]
图8是表示第2实施方式的固件变更处理的一例的流程图。第2实施方式也能够将固件整体变更,但如果目的只是能够进行调试,则也可以是仅固件的一部分的改写。
在步骤S142中,命令输入输出部52从主机装置10接收以第1RAM32的第1区域62内的固件为对象的FW变更命令。FW变更命令包括“FW变更”的命令类别、改写对象的地址、改写的数据(变更的FW的一部分)和认证数据。地址是能够从第2CPU30访问的图3的(b)所示的地址空间上的第1RAM32的第1区域62被映射的特定的地址。
在步骤S144中命令输入输出部52将接收命令解析,如果识别出接收命令是FW变更命令,则将FW变更命令向FW变更许可部82发送,向FW变更许可部82委托FW变更。
在步骤S146中,FW变更许可部82向认证处理部84委托FW变更命令的认证。
在步骤S148中,认证处理部84基于与FW变更命令一起供给的认证数据,使用例如AES等的共享密钥认证方式或RSA等的公开密钥认证方式等的认证算法,对FW变更命令进行认证。
在步骤S150中,认证处理部84判定认证是否成功。在认证失败的情况下(步骤S150的否),不执行步骤S152、S154、S156,执行步骤S158。在认证成功的情况下(步骤S150的是),在步骤S152中,FW变更许可部82向补丁处理部86供给FW变更命令,向补丁处理部86委托二进制补丁处理。FW变更命令中包含的改写数据是表示固件的变更的,例如表示将固件的第几字节怎样变更。
在步骤S154中,补丁处理部86求出二进制补丁,向FW变更部88委托FW变更。所谓的二进制补丁,是变更前和变更后的固件的二进制代码的差。二进制补丁的求出方式已知有各种各样的方法,但也可以使用例如radiff2的方法。
在步骤S156中,FW变更部88基于二进制补丁将第1RAM32的第1区域62内的第1CPU28的固件的一部分或全部变更。另外,在通常的固件的更新中,将ROM内的固件改写,但在第2实施方式中,存储在第1RAM32的第1区域62内的被改写后的固件不向第1ROM36写回。
在步骤S158中,FW变更许可部82将表示改写成功/改写失败的改写结果向命令输入输出部52返回。
在步骤S160中,命令输入输出部52将改写结果向主机装置10返回。另外,在认证失败的情况下,将改写失败返回而正常结束,但在认证失败的情况下也可以异常结束。
固件的变更的一例,例如有在图6所示那样进行调试处理的固件中、变更为将步骤S124所示的控制数据mode的判断步骤省略那样的固件的情况。如果这样固件被变更,则在步骤S122中接收调试命令,一旦认证成功,则不论控制数据mode如何,在步骤S126中都许可调试端口的使用。由此,第1CPU28的固件如果接收到调试命令则能够使用调试端口,能够无条件地进行调试。另外,并不限于固件的一部分,也可以将固件的全部变更。
[第2实施方式的总结]
通过第2实施方式,也能够通过由第2CPU30将第1RAM32的第1区域62内的固件的一部分或全部改写来变更第1CPU28的功能。例如,功能的变更与第1实施方式同样,是调试端口的使用许可,由此能够进行基于第1CPU28的调试。由于存储在第1RAM32的存储区域62内的被改写后的固件不向第1ROM36写回,所以第1ROM36内的固件是原始的原状(包括步骤S124所示的控制数据mode的判断步骤)。如果通过固件的改写而将步骤S124省略,则在调试结束后也是调试端口可使用的状态的原状,但如果存储装置20关机,则第1RAM32的数据丢失。即,存储在第1RAM32的第1区域62中的固件的变更部位被挥发而不能永续,所以调试端口的使用被许可的状态通过关机而结束。当存储装置20下次被引导时,第1ROM36内的固件是原始的原状,所以执行图6的步骤S124所示的控制数据mode的判断步骤。由于控制数据mode的初始值是“0”,所以调试端口的使用不被许可。
这样,存储在第1RAM32的第1区域62中的变更后的固件如果关机则被挥发。因此,即使调试端口的使用一度被许可的固件或安装着该固件的存储装置20流出,如果存储装置被关机,则调试端口的使用也不再被许可。结果,确保了存储装置的安全性的保护。
此外,由于通过能够进行安全引导的第2CPU30将第1CPU28的第1RAM32的数据改写,所以与通过第1CPU28将第1RAM32的数据改写相比,进行非法的改写的可能性非常低。
根据第2实施方式,仅通过将固件的一部分变更,就能得到与将固件整体更新的情况等价的效果。例如,能够容易地追加、变更调试端口的有效/无效以外的功能代码或命令,也能够追加经由UART接口输出调试打印的功能。
在通常的固件更新中,动作中的固件暂时结束,将更新后的固件向ROM保存。在下次起动时,更新后的固件的拷贝被写入到RAM中,通过RAM上的固件将CPU起动。因此,如果更新后的固件不正常地动作,则CPU不被起动,发生问题。但是,如果如第2实施方式那样将RAM上的动作中的固件的一部分或全部变更,则即使在更新后的固件没有正常动作而CPU没有被起动的情况下,也能够通过ROM内的原始的固件将CPU起动,所以也能够进行变更后的固件的动作保证。
[第3实施方式]
[整体结构]
在第1、第2实施方式中,设置第1CPU28用的第1RAM32和第1ROM36、第2CPU30用的第2RAM34和第2ROM38,第1CPU28的固件存储在第1ROM36中,第2CPU30的固件存储在第2ROM38中。相对于此,在第3实施方式中,没有设置第2CPU30专用的RAM和ROM,而构成为,第2CPU30对第1CPU28用的RAM、ROM的一部分的地址区域进行访问。第2CPU30访问的RAM、ROM的地址区域与第1CPU28访问的RAM、ROM的地址区域不同。
如图9所示,第3实施方式的控制器22具备主机I/F电路26、第1CPU28、寄存器28A、第2CPU30、寄存器30A、RAM42、ROM44、NAND I/F电路40。
RAM42是被作为第1CPU28及第2CPU30的工作区使用的易失性的存储器。假设RAM42由控制器22内的SRAM构成,但也可以由设置在控制器22的外部的DRAM构成。ROM44是存储第1CPU28及第2CPU30的固件和用于认证的信息的非易失性的存储器。ROM44也可以由可写入的ROM、例如NOR型的串行闪速存储器、可光学地写入的ROM构成。在ROM44由NOR型的串行闪速存储器构成的情况下,第1CPU28也可以将调试日志代替闪速存储器24而向ROM44写入。
[功能结构]
图10是表示第3实施方式的第2CPU30的功能结构的一例的框图。第3实施方式可以包括第1实施方式的变形例和第2实施方式的变形例。图10说明第1实施方式的变形例,但第2实施方式的变形例也同样能够作为第3实施方式实现。
主机I/F电路26具备命令输入输出部52。第2CPU30具备数据改写许可部54、认证处理部56、数据改写部58、访问控制部92。数据改写许可部54、认证处理部56、数据改写部58、访问控制部92可以通过第2CPU30执行固件来实现。访问控制部92由存储器保护单元MPU(Memory Protection Unit)构成,如果能够从第2CPU30访问的地址空间上的特定的地址被来自主机装置10的命令访问则该存储器保护单元MPU向主机装置10返回错误信号,可以将RAM42的特定的区域设定为访问禁止区域。但是,也可以将数据改写许可部54、认证处理部56、数据改写部58、访问控制部92通过单独的硬件实现。
RAM42具备存储第1CPU28的固件的第1区域102、存储第1CPU28的固件所参照的数据的第2区域104、存储第1CPU28的安全性信息(加密密钥等)的第3区域122、存储第2CPU30的固件的第4区域112、存储第2CPU30的固件所参照的数据的第5区域114、其他数据的存储区域。
第1CPU28如果被引导,则从ROM44将固件读出,保存到RAM42的第1区域102内,执行从RAM42读出的固件。通过固件的执行而生成的数据被保存到RAM42的第2区域104中。寄存器28A如图11的(a)所示,与RAM42的第1区域102、第2区域104、第3区域122一起被映射到能够从第1CPU28访问的地址空间上。能够从第1CPU28访问的地址空间不包括RAM42的第4区域112、第5区域114、寄存器30A被映射的地址。如图11的(b)所示,在能够从第2CPU30访问的地址空间中,除了RAM42的第4区域112、第5区域114、寄存器30A以外,还映射有RAM42的第1区域102、第2区域104、寄存器28A。因此,第2CPU30除了关于第2CPU30的存储区域112、114、寄存器30A以外还能够对关于第1CPU28的存储区域102、104、122和寄存器28A访问。但是,在存储安全性信息的第3区域122被访问控制部92设定为访问禁止区域的情况下,第2CPU30不能对第3区域122访问。
[数据改写处理]
图12是表示第3实施方式的数据改写处理的一例的流程图。图12与图5所示的第1实施方式的流程图大致相同,仅说明不同的地方。
在步骤S110中认证成功的情况下(步骤S110的是),在步骤S172中,数据改写许可部54对访问控制部92委托第3区域122的访问禁止,以使RAM42内的安全性信息不被访问。
在步骤S174中,访问控制部92将RAM42内的存储安全性信息的第3区域122设定为访问禁止区域。然后,如果第2CPU30对RAM42的第3区域122访问,则将错误信号向主机装置10返回。由此,第2CPU30不能从RAM42读出加密密钥等的安全性信息。
然后,与第1实施方式同样,在步骤S112中,数据改写许可部54将数据改写命令向数据改写部58供给,向数据改写部58委托数据改写。
[第3实施方式的总结]
在第1实施方式中,如果通过数据改写而能够进行调试端口的使用,则加密密钥等的安全性信息也能够读出,如果调试担当者以外的用户将安全性信息读出,则尽管可能性很小,但仍会发生不能确保存储装置的安全的可能性。但是,根据第3实施方式,虽然通过数据改写而能够进行调试端口的使用,但由于存储安全性信息的第3区域122是访问禁止(读出禁止),所以可靠地确保了存储装置的安全性。即使第2CPU30将闪速存储器24内的加密数据读出,由于不知道加密密钥,所以也不能解密,确保了存储装置的安全性。
另外,图12说明了将作为RAM42或寄存器28A内的数据、第1CPU28的固件所参照的数据改写的第1实施方式的变形例,但将RAM42内的第1CPU28的固件的一部分或全部变更的第2实施方式也能够与第1实施方式同样地变形。
另外,本发明并不原样限定于上述实施方式,在实施阶段中能够在不脱离其主旨的范围中将构成要素变形而具体化。此外,通过在上述实施方式中公开的多个构成要素的适当的组合能够形成各种发明。例如,也可以从实施方式所示的全部构成要素中删除几个构成要素。进而,也可以将跨越不同实施方式的构成要素适当组合。例如,上述的说明关于加密机型的存储装置20,但本发明对于非加密机型的存储装置也能够应用。此外,作为电子设备而说明了存储装置,但本发明对于具备数据存储功能的怎样的电子设备都能够应用。
标号说明
24…闪速存储器;28…第1CPU;30…第2CPU;32…第1RAM;52…命令输入输出部;54…数据改写许可部;56…认证处理部;58…数据改写部;62…第1CPU的固件存储区域;64…第1CPU的固件所参照的数据的存储区域;66…第1CPU的寄存器的值的存储区域。
Claims (13)
1.一种电子设备,
具备:
第1处理器;
非易失性的第1存储器,存储上述第1处理器执行的程序;
易失性的第2存储器,包括存储从上述第1存储器读出的上述程序的第1区域、和存储上述程序所参照的数据的第2区域;
能够执行安全引导处理且安全性能比上述第1处理器高的第2处理器;以及
命令执行电路,设置于上述第2处理器,对从外部设备供给的上述第2存储器的改写命令进行认证,在上述改写命令的认证成功时,执行上述改写命令,
上述命令执行电路在执行上述改写命令之前,将上述第2存储器中的、存储上述第1处理器的安全性信息的区域设定为访问禁止区域。
2.如权利要求1所述的电子设备,
上述第2存储器由包括上述第1区域的第3存储器和包括上述第2区域的第4存储器构成。
3.如权利要求1所述的电子设备,
上述第1存储器包括存储上述程序的第3区域和存储上述电子设备的日志数据的第4区域;
上述第2存储器存储表示是否许可从上述第4区域读出上述日志数据的控制数据;
上述改写命令具备将存储在上述第2存储器中的上述控制数据的值改写为表示许可从上述第4区域读出上述日志数据的值的命令。
4.如权利要求3所述的电子设备,
上述第1存储器由包括上述第3区域的第5存储器和包括上述第4区域的第6存储器构成。
5.如权利要求3所述的电子设备,
上述控制数据的初始值表示不许可从上述第4区域读出上述日志数据。
6.如权利要求3所述的电子设备,
上述控制数据具备表示是否许可输出上述日志数据的接口的使用的数据。
7.如权利要求1所述的电子设备,
上述第1存储器包括存储上述程序的第3区域和存储上述电子设备的日志数据的第4区域;
存储在上述第1区域中的上述程序是不许可从上述第1存储器读出上述日志数据的程序;
上述改写命令具备将存储在上述第1区域中的上述程序的至少一部分改写以许可从上述第4区域读出上述日志数据的命令。
8.如权利要求7所述的电子设备,
上述第1存储器由包括上述第3区域的第5存储器和包括上述第4区域的第6存储器构成。
9.如权利要求7所述的电子设备,
上述改写命令具备将上述程序的至少一部分改写以许可输出上述日志数据的接口的使用的命令。
10.如权利要求1~9中任一项所述的电子设备,
上述改写命令具备将上述第1处理器执行的上述程序所参照的寄存器的数据改写的命令。
11.如权利要求1~9中任一项所述的电子设备,
上述第1存储器包括存储上述程序的第5区域和存储上述第1处理器所加密的数据的第6区域。
12.如权利要求11所述的电子设备,
上述第1存储器由包括上述第5区域的第6存储器和包括上述第6区域的第6存储器构成。
13.一种电子设备的控制方法,所述电子设备具备第1处理器、存储上述第1处理器执行的程序的非易失性的第1存储器、包括存储从上述第1存储器读出的上述程序的第1区域和存储上述程序所参照的数据的第2区域的易失性的第2存储器、能够执行安全引导处理且安全性能比上述第1处理器高的第2处理器、以及设置于上述第2处理器的命令执行电路,
该控制方法包括如下步骤:
通过上述命令执行电路,将上述第2存储器中的、存储上述第1处理器的安全性信息的区域设定为访问禁止区域;
在设定了上述访问禁止区域之后,对从外部设备供给的上述第2存储器的改写命令进行认证;以及
在上述改写命令的认证成功时,执行上述改写命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-045133 | 2019-03-12 | ||
JP2019045133A JP2020149236A (ja) | 2019-03-12 | 2019-03-12 | 電子機器及び電子機器の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111695164A CN111695164A (zh) | 2020-09-22 |
CN111695164B true CN111695164B (zh) | 2023-11-24 |
Family
ID=72423245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910739412.XA Active CN111695164B (zh) | 2019-03-12 | 2019-08-12 | 电子设备及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11113399B2 (zh) |
JP (1) | JP2020149236A (zh) |
CN (1) | CN111695164B (zh) |
TW (1) | TWI738020B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11280829B1 (en) * | 2019-12-19 | 2022-03-22 | Xlnx, Inc. | System-on-chip having secure debug mode |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690966A (zh) * | 2004-04-22 | 2005-11-02 | 三洋电机株式会社 | 控制装置 |
CN105808444A (zh) * | 2015-01-19 | 2016-07-27 | 株式会社东芝 | 存储装置及非易失性存储器的控制方法 |
TW201901407A (zh) * | 2017-05-23 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置之韌體更新之方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200500887A (en) | 2003-03-03 | 2005-01-01 | Nagracard Sa | Security modules deactivation and reactivation method |
US20090271875A1 (en) | 2005-03-31 | 2009-10-29 | Pioneer Corporation | Upgrade Module, Application Program, Server, and Upgrade Module Distribution System |
US9141580B2 (en) * | 2010-03-23 | 2015-09-22 | Citrix Systems, Inc. | Systems and methods for monitoring and maintaining consistency of a configuration |
US8522322B2 (en) | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
US9367700B2 (en) * | 2011-02-16 | 2016-06-14 | Adobe Systems Incorporated | System and method for establishing a shared secret for communication between different security domains |
CN104115136B (zh) * | 2011-09-30 | 2017-12-08 | 英特尔公司 | 非易失性随机访问存储器中存储bios的装置、方法和系统 |
GB2515364B (en) * | 2013-12-20 | 2015-06-17 | Nordic Semiconductor Asa | Updatable integrated-circuit radio |
JP6162652B2 (ja) * | 2014-06-20 | 2017-07-12 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
JP6584823B2 (ja) * | 2014-06-20 | 2019-10-02 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
US10089116B2 (en) * | 2016-03-18 | 2018-10-02 | Uber Technologies, Inc. | Secure start system for an autonomous vehicle |
US10783240B2 (en) * | 2017-09-29 | 2020-09-22 | Stmicroelectronics, Inc. | Secure environment in a non-secure microcontroller |
-
2019
- 2019-03-12 JP JP2019045133A patent/JP2020149236A/ja active Pending
- 2019-07-02 TW TW108123203A patent/TWI738020B/zh active
- 2019-08-12 CN CN201910739412.XA patent/CN111695164B/zh active Active
- 2019-08-13 US US16/539,908 patent/US11113399B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690966A (zh) * | 2004-04-22 | 2005-11-02 | 三洋电机株式会社 | 控制装置 |
CN105808444A (zh) * | 2015-01-19 | 2016-07-27 | 株式会社东芝 | 存储装置及非易失性存储器的控制方法 |
TW201901407A (zh) * | 2017-05-23 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置之韌體更新之方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111695164A (zh) | 2020-09-22 |
TWI738020B (zh) | 2021-09-01 |
US20200293659A1 (en) | 2020-09-17 |
TW202034159A (zh) | 2020-09-16 |
US11113399B2 (en) | 2021-09-07 |
JP2020149236A (ja) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9898368B1 (en) | Computing device with recovery mode | |
US7461268B2 (en) | E-fuses for storing security version data | |
US20140250290A1 (en) | Method for Software Anti-Rollback Recovery | |
US20220075873A1 (en) | Firmware security verification method and device | |
US11803366B2 (en) | Firmware updating system and method | |
JP7113115B2 (ja) | シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法 | |
US20170255384A1 (en) | Efficient secure boot carried out in information processing apparatus | |
EP2854066A1 (en) | System and method for firmware integrity verification using multiple keys and OTP memory | |
US8751817B2 (en) | Data processing apparatus and validity verification method | |
JPWO2002057904A1 (ja) | ダウンロード機能を有する制御装置 | |
CN112347518B (zh) | 储存装置 | |
CN103262092A (zh) | 基于储存驱动器的防恶意软件方法和装置 | |
JP6518798B2 (ja) | 安全な集積回路状態を管理する装置およびその方法 | |
US11941159B2 (en) | Configuration data deletion based on tamper status | |
CN112613011B (zh) | U盘系统认证方法、装置、电子设备及存储介质 | |
CN111695164B (zh) | 电子设备及其控制方法 | |
US11468159B2 (en) | Memory system | |
JP6622360B2 (ja) | 情報処理装置 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
CN112015582B (zh) | 自修正存储器系统、提供错误修正至存储器内容的方法 | |
CN107368743B (zh) | 信息处理设备和信息处理方法 | |
CN112817619A (zh) | 电脑系统及其安全管理方法以及电脑软件产品 | |
CN113742784A (zh) | 应用加速验证映像文件方法的系统 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Tokyo, Japan Applicant after: Kaixia Co.,Ltd. Address before: Tokyo, Japan Applicant before: TOSHIBA MEMORY Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |