CN110874323A - 信息处理装置、嵌入式系统以及调试控制方法 - Google Patents

信息处理装置、嵌入式系统以及调试控制方法 Download PDF

Info

Publication number
CN110874323A
CN110874323A CN201910159956.9A CN201910159956A CN110874323A CN 110874323 A CN110874323 A CN 110874323A CN 201910159956 A CN201910159956 A CN 201910159956A CN 110874323 A CN110874323 A CN 110874323A
Authority
CN
China
Prior art keywords
debug
server
debugging
software
system software
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.)
Granted
Application number
CN201910159956.9A
Other languages
English (en)
Other versions
CN110874323B (zh
Inventor
小池龙一
桥本干生
新保淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Publication of CN110874323A publication Critical patent/CN110874323A/zh
Application granted granted Critical
Publication of CN110874323B publication Critical patent/CN110874323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1064Restricting content processing at operating system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/20Means to switch the anti-theft system on or off
    • B60R25/2072Means to switch the anti-theft system on or off with means for preventing jamming or interference of a remote switch control signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

实施方式的信息处理装置、嵌入式系统以及调试控制方法适用于电子设备的嵌入式系统,该信息处理装置具备第一电路,该第一电路根据外部访问,向与所述信息处理装置不同的服务器请求判定能否进行调试或者进行软件变更。

Description

信息处理装置、嵌入式系统以及调试控制方法
相关申请
本申请享受以日本专利申请2018-161586号(申请日:2018年8月30日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。
技术领域
实施方式主要涉及适用于嵌入式系统的信息处理装置、嵌入式系统以及调试控制方法。
背景技术
近年来,例如在车辆等各种产品的绝大多数中搭载有进行计算机控制的嵌入式系统。因此,对于嵌入式系统来说,针对外部人员的不正当访问的安全对策变得重要。
不正当访问具体而言指的是,将调试器连接于嵌入式系统的微机(微型控制器又微型计算机),使微机的软件以调试模式动作。由于外部人员能够通过调试器对软件的存储器内容进行读出或者写入,其结果能够分析软件动作。另外,外部人员不仅能够进行软件动作的分析,也能够不正当地取得保密信息,或者篡改软件而使其进行不正当的动作。
作为嵌入式系统的安全对策,期望实现针对不正当调试的有效的访问限制功能。但是,低成本的嵌入式系统出于成本方面,难以装配能够可靠地执行针对不正当调试的有效的访问限制的功能。
因此,作为低成本的嵌入式系统的安全对策,要求实现针对不正当调试的有效的访问限制。
发明内容
作为低成本的嵌入设备的安全对策,实施方式提供能够可靠地执行针对不正当调试的有效的访问限制的信息处理装置、嵌入式系统以及调试控制方法。
实施方式的信息处理装置适用于电子设备的嵌入式系统,该信息处理装置具备第一电路,该第一电路根据外部访问,向与所述信息处理装置不同的服务器请求判定能否调试或者进行软件变更。
附图说明
图1是用于说明与实施方式相关的系统的构成的框图。
图2是用于说明与实施方式相关的控制器的构成的框图。
图3是用于说明与实施方式相关的微机的内部构成的框图。
图4是表示与实施方式相关的非易失性存储器的内部构成的图。
图5是表示与实施方式相关的ROM监视器的专用存储区域的内部构成的图。
图6是表示与实施方式相关的共享存储区域的内部构成的图。
图7是表示与实施方式相关的控制器与服务器的关系的图。
图8是用于说明与实施方式相关的ROM监视器与系统软件的功能的框图。
图9是用于说明与实施方式相关的微机的基本处理的流程图。
图10是用于说明与实施方式相关的ROM监视器的处理的流程图。
图11是表示与实施方式相关的调试许可请求消息的构成的图。
图12是用于说明与实施方式相关的系统软件的处理的流程图。
图13是用于说明与实施方式相关的调试能否的处理的流程图。
图14是用于说明与实施方式相关的通常处理的协作的时序图。
图15是用于说明与实施方式相关的调试许可请求处理的协作的时序图。
图16是用于说明与实施方式相关的调试许可请求消息的制作处理的协作的时序图。
图17是用于说明与实施方式相关的与服务器之间的通信处理的协作的时序图。
图18是用于说明与实施方式相关的调试许可证的验证处理的协作的时序图。
图19是表示与实施方式相关的车辆的车内网络的图。
图20是与实施方式的变形例相关的框图。
具体实施方式
以下,一边参照附图一边对实施方式进行说明。
[系统的构成]
图1是表示与本实施方式相关的系统的构成的框图。如图1所示,本实施方式的系统是具有服务器100、作为嵌入式系统搭载有控制器(后述)的车辆200、以及广域的网络300的构成。
在网络300分别有线连接有无线接入点310以及设置于维修工厂330的通信装置320。维修工厂330是例如进行车辆200的维修的设施,能够经由通信装置320而进行车辆200的控制器与网络300的连接。另外,车辆200的控制器能够通过与无线接入点310之间的无线通信,进行与网络300之间的连接。
车辆200的控制器包含在车辆200正在公路上等行驶的情况下经由无线接入点310以及网络300在与服务器100之间进行通信的通信功能。另外,车辆200的控制器包含在车辆200在维修工厂330中停止的情况下经由通信装置320以及网络300在与服务器100之间进行通信的通信功能。
服务器100例如是车辆200的成品车制造商所运营的计算机,对各车辆200进行管理。服务器100具有判定能否对于与本实施方式相关的车辆200上搭载的控制器的微机进行调试的功能(后述)。
图19是表示车辆200的车内网络的图。如图19所示,在车内网络连接有多个控制器10,分别控制着车辆的装备。例如,控制器10经由车辆内无线网络而与胎压传感器210连接。而且,例如,控制器10经由车辆内有线网络控制着发动机211、促动器212、或者空调等设备。另外,各控制器10分别经由网关(GW)213连接于有线通信装置214以及无线通信装置215。由此,各控制器10能够分别根据需要与车辆外的设备进行通信。
[控制器的构成]
图2是作为搭载于车辆200的内部的嵌入式系统、例如示出控制促动器21的控制器10的构成的框图。
如图2所示,控制器10包含作为主要部分的微机(微型计算机)11、调试端口12、以及有线/无线通信部13。微机11经由输入输出接口15连接于促动器21,驱动控制该促动器21。另外,微机11控制发动机的转速、制动器的操作等。
微机11能够经由调试端口12与外部的调试器20连接。本实施方式如后述那样,涉及限制经由调试端口12针对微机11的软件进行不正当调试的调试访问限制功能。
这里,在无本实施方式的调试访问限制功能的情况下,调试器20能够通过调试端口12无条件地将微机11切换为调试模式。成为调试模式的微机11能够向调试器20提供适合分析动作中的软件的环境。例如,变得能够读取微机11的寄存器值、存储器等各种信息,能够使软件的执行暂时停止,还能够改写程序。
微机11能够经由有线/无线通信部13以及通信接口16,通过无线连接于网络300。由此,微机11如后述那样,能够经由网络300在与服务器100之间进行各种信息交换。
[微机的构成]
图3是表示微机11的内部构成的框图。如图3所示,微机11包含命令执行单元30、动作软件判定单元31、调试单元32、控制寄存器33、以及通信单元35。
命令执行单元30是执行储存于后述的非易失性存储器36的各种软件所含的命令组的单元。命令执行单元30经由动作软件判定单元31以及控制寄存器33,执行内置硬件的各种控制。例如,命令执行单元30通过控制寄存器33向管理复位信号的输出的寄存器进行写入,从而能够将微机11整体复位。
另外,命令执行单元30通过控制寄存器33,执行通信单元35、非易失性存储器36、易失性存储器(例如random access memory:RAM)37、加密单元38、以及随机数生成器39的控制。另外,非易失性存储器36与易失性存储器37是连接于内部总线、所谓的片上存储器构成。
动作软件判定单元31通过辨别执行中的软件的种类,限制命令执行单元30对非易失性存储器36与易失性存储器37的一部分区域的读写,并且禁止向调试模式寄存器34B的写入。此时,动作软件判定单元31利用控制寄存器33内的动作软件寄存器34A辨别动作软件的种类。动作软件判定单元31在动作软件寄存器34A的值是0的情况下不执行限制,在0以外的情况下执行限制。
控制寄存器33包含存在改写限制的动作软件寄存器34A以及调试模式寄存器34B。
动作软件寄存器34A在终端的电源接通或者复位时必定被清零,之后仅进行一次值的写入。若值被写入,则直到进行终端的复位为止都不能再一次变更值。利用该性质,在刚复位之后动作的ROM监视器(后述)动作的期间,能够对非易失性存储器36、易失性存储器37、调试模式寄存器34B无限制地读写。另一方面,若ROM监视器将寄存器值变更为0以外,则向非易失性存储器36、易失性存储器37的一部分区域的读写被限制,不再能进行向调试模式寄存器34B的写入。动作软件寄存器34在AROM监视器即将把控制移至其他软件之前进行写入。
调试单元32连接于命令执行单元30以及微机11的外部的调试端口12。如果调试模式(调试功能)有效,则调试单元32根据外部的调试器20(参照图2)的指示,操作命令执行单元30。调试模式的有效或者无效的切换由控制寄存器33内的调试模式寄存器34B进行。
加密单元38是高效地执行在软件处理中需要时间的块加密处理的专用单元。加密方式例如是3DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。另外,随机数生成器39是执行在软件中难以安装的随机数的生成的专用单元。
通信单元35连接于微机11外部的有线/无线通信部13,以UART(UniversalAsynchronous Receiver-Transmitter)、CAN(Controller Area Network)等在车载用网络中经常使用的协议执行信息通信。
[非易失性存储器的内部构成]
图4是表示非易失性存储器36的内部构成(存储器映射)的图。如图4所示,非易失性存储器36包含储存有作为软件的ROM监视器的存储区域即ROM监视器区域40、以及储存有系统软件(有表述为system soft的情况)的存储区域即系统软件区域42。
ROM监视器是如后述那样仅执行与本实施方式的调试的访问限制相关的安全方面重要的处理的软件。系统软件是执行遵循微机11的利用目的一般处理的软件。
ROM监视器区域40是作为原则不被设想改写的区域,配置于非易失性存储器36的改写禁止区域。系统软件区域42配置于能够改写的区域,作为原则仅在系统软件的更新时被改写。
而且,非易失性存储器36包含用于保存各软件所利用的信息的ROM监视器专用存储区域41以及共享存储区域43。
图5是表示ROM监视器专用存储区域41的内部构成的图。ROM监视器专用存储区域41是仅ROM监视器能够读写的区域。由此,ROM监视器专用存储区域41是系统软件不能读写的区域。
如图5所示,ROM监视器专用存储区域41包含保存调试模式标志的调试模式标志区域50、以及保存随机数的随机数区域51。而且,ROM监视器专用存储区域41包含保存公共密钥的公共密钥区域52、以及保存可调试次数的可调试次数区域53。
调试模式标志是表示调试模式(调试功能)的有效或者无效的标志。随机数区域51的随机数是面向重复攻击对策在与服务器100通信时所使用的随机数。公共密钥区域52的公共密钥是微机11与服务器100相互保持的共用的公共密钥。另外,公共密钥按照各个微机的每一个被分配不同的密钥,设为在出厂前与服务器100之间完成建立对应。可调试次数是能够对微机11执行调试的剩余次数。
图6是表示共享存储区域43的内部构成的图。共享存储区域43是ROM监视器以及系统软件这两方能够进行读写的区域。各软件对共享存储区域43保存分别利用的信息,并且也保存跨过微机11的复位地向另一方的软件传递时的命令、信息等。
如图6所示,共享存储区域43包含面向ROM监视器的命令区域60、系统软件信息区域61、系统软件保密信息区域62、面向系统软件的命令区域63、以及调试消息缓冲区域(有表述为消息缓冲区域的情况)64的各存储区域。
面向ROM监视器的命令区域60是写入从系统软件向ROM监视器的命令的区域。在本实施方式中,作为具体的命令,定义有通常启动系统软件的命令(sys-boot)、以及制作调试许可请求消息的命令(make-req)这两种。另外,这些命令并非由命令执行单元30直接解释的机械语言命令,而是针对ROM监视器以及系统软件的命令。
系统软件信息区域61是保存系统软件所收集到的任意信息的区域。系统软件保密信息区域62保存系统软件正利用的保密信息的区域。面向系统软件的命令区域63是写入从ROM监视器向系统软件的命令的区域。在本实施方式中,作为具体的命令,定义有使系统软件仅进行通常处理的命令(normal)、以及向服务器100发送调试许可请求消息的命令(send-req)这两种。消息缓冲区域64是保存在与服务器100之间收发的各种消息的区域。
[ROM监视器与调试模式寄存器的构成]
这里,返回图3,对本实施方式的ROM监视器与调试模式寄存器34B的构成进行说明。
如前述那样,非易失性存储器36的ROM监视器专用存储区域41是在ROM监视器的执行中仅ROM监视器能够进行读写的区域。另一方面,对于控制寄存器33所含的调试模式寄存器34B的写入也限定在ROM监视器的执行中。
作为它们的执行机构,与动作软件判定单元31有关。动作软件判定单元31监视着命令执行单元30执行命令时命令执行所涉及的访问目的地(操作对象(operand))是ROM监视器、还是ROM监视器专用存储区域41以及调试模式寄存器34B、还是除此以外的区域。动作软件判定单元31也判定执行中软件的种类,因此仅在ROM监视器的命令的情况下,无操作对象的限制地执行命令。换言之,仅在ROM监视器执行中的时刻能够进行ROM监视器专用存储区域41、调试模式寄存器34B的改写。另外,在本实施方式中,ROM监视器专用存储区域41虽然设定于非易失性存储器36,但也可以使易失性存储器37的一部分为ROM监视器专用存储区域41。
ROM监视器仅具有复位以及非可屏蔽中断(NMI:Non-Maskable Interrupt)这两个入口点。ROM监视器不能进行来自这两个入口点以外的地址的执行。即,ROM监视器仅在复位时或者NMI时执行。
[车辆的控制器与服务器的关系]
图7是表示与调试相关的车辆200的控制器10与服务器100的关系的图。如前述那样,在本实施方式中,车辆200的控制器10和服务器100能够经由网络300连接并进行信息交换。
如图7所示,在希望调试车辆200的控制器10所含的微机11内的软件的情况下,调试器20从外部连接于调试端口12。在本实施方式中,微机11对于来自调试器20的调试访问,向服务器100询问是否可以进入调试模式的判断。
服务器100基于从车辆200的控制器10接收到的信息,判断能否调试,并回送其判断结果。微机11基于来自服务器100的判断结果,对调试模式执行切换。或者微机11拒绝向调试模式切换,执行对调试器20断开调试访问的处理。
如图7所示,出于安装上的观点,车辆200的控制器10经由网络300将调试许可请求消息70向服务器100发送。服务器100根据该调试许可请求消息70,如果许可调试就将调试许可证71向控制器10回送。微机11利用该调试许可证71,判定为已被赋予了调试许可。
即,本实施方式为如下构成:对于来自调试器20的调试访问,以在服务器100中而并非微机11侧判断能否调试的方式,将向服务器100侧的调试许可权限分离。由此,能够由运营服务器100的例如车辆200的成品车制造商侧掌握各车辆200的调试状况。
其中,本实施方式的机制当然需要由车辆200的微机11遵守服务器100侧的判断。作为具体例,例如,如果因存在恶意的攻击导致微机11的系统软件陷入了异常的状态,则系统软件可能忽略服务器100侧的判断。于是,产生了即使服务器100侧做出了正确的判断但在微机11侧还是忽略该判断而许可存在恶意的调试的情况。
为了避免这种情况,需要在微机11侧准备遵守服务器100侧的判断的机构。换言之,需要准备满足了以下两点的机构:一点是微机11侧不会受到存在恶意的攻击的影响而将正确的信息向服务器100侧传递,另一点是必定会基于服务器100侧的判断结果来执行。
[ROM监视器与系统软件的功能]
图8是用于说明ROM监视器与系统软件的功能的框图。如图8所示,微机11作为提供主要的功能的软件,具有ROM监视器80以及系统软件91。
ROM监视器80以及系统软件91分别如前述那样储存于非易失性存储器36的ROM监视器区域40以及系统软件区域42。非易失性存储器36作为各软件相关的存储区域,包含ROM监视器专用存储区域41以及共享存储区域43。ROM监视器专用存储区域41是仅ROM监视器80能够读写的区域。共享存储区域43是ROM监视器80以及系统软件91这两方能够进行读写的区域。
ROM监视器80如后述那样,包含面向ROM监视器的命令判定单元81、系统软件启动单元82、系统软件验证单元83、以及面向系统软件的命令变更单元84的各软件功能单元。而且,ROM监视器80包含调试许可证有效性判定单元85、调试端口设定变更单元86、以及调试许可请求消息准备单元87的各软件功能单元。
调试许可请求消息准备单元87包含随机数生成器88、调试许可请求消息保存单元89以及签名单元90的各软件功能单元。另外,ROM监视器80不包含通信单元。
系统软件91如后述那样,包含面向系统软件的命令判定单元92、面向ROM监视器的命令变更单元93、系统软件信息收集单元94、重新启动单元95、以及通信单元96的各软件功能单元。通信单元96包含调试许可请求消息发送单元97以及调试许可证接收单元98的各软件功能单元。
而且,微机11作为由硬件主体实现的功能,包含动作软件判定单元800以及调试端口访问限制单元810。这些硬件功能单元有通称地表述为HW820的情况。
动作软件判定单元800判定执行中的软件是ROM监视器80或者系统软件91中的哪一个。动作软件判定单元800是包含动作软件判定单元31的构成要素,并且是硬件安装。因此,即使软件陷入存在恶意的状态也不会受到影响。由此,能够防止ROM监视器80以外的软件改写ROM监视器专用存储区域41以及调试模式寄存器34B那样的情况。
调试端口访问限制单元810在外部的调试器20连接于调试端口12的情况下,实际执行其访问(调试访问)限制。调试端口访问限制单元810仅在调试模式有效时、即在控制寄存器33的调试模式寄存器34设定了有效标志时,许可与所连接的调试器20之间的通信(调试访问)。调试端口访问限制单元810在调试模式无效的情况下切断与调试器20之间的通信,拒绝调试访问。
这里,服务器100如前述那样,是区别于微机11的另一计算机,包含作为调试许可判定单元110的软件功能单元。调试许可判定单元110详查从微机11发送的调试许可请求消息的内容,如果没有问题,就将调试许可证向微机11回送。
[本实施方式的动作]
以下,参照图9至图18,对本实施方式的动作进行说明。图9是对微机的基本处理进行说明的流程图。图10是用于说明ROM监视器的处理的流程图。图11是表示调试许可请求消息的构成的图。图12是用于说明系统软件的处理的流程图。图13是用于说明调试能否的处理的流程图。图14至图18是说明HW820、ROM监视器80、系统软件91、以及服务器100的协作的时序图。
[微机的基本处理]
如图9所示,若从控制器10对微机11接通电源,则ROM监视器80启动(S1)。这里,ROM监视器80执行实现本实施方式的调试访问限制功能的安全相关处理。调试访问限制功能是能够执行针对例如调试器20的不正当调试访问而有效的访问限制的功能。另外,ROM监视器80被设为也不存在软件缺陷(software bug)以及软件的脆弱性。
ROM监视器80在将动作软件寄存器34A的值改写为0以外之后,启动系统软件91(S2)。系统软件91如前述那样,执行微机11的使用目的所对应的通常处理(S3)。通常处理例如是车辆200的发动机、空调的控制处理。系统软件91使通常处理持续至电源断开为止(S4的否,S5的否)。
这里,在通过控制寄存器33以软件施以复位的情况下,产生从系统软件91向ROM监视器80的处理转移(S4的是)。复位例如在ROM监视器80的执行中、或者系统软件91的通常处理开始前等各种定时产生。另外,该处理转移除了复位以外,也在对微机11再次开启了电源的情况下发生。
[ROM监视器的处理]
如图10所示,ROM监视器80在启动后,除了系统软件91的启动处理以外,大致执行两个安全相关处理(调试访问限制功能)。第一安全相关处理是调试许可请求消息的制作处理(S14)。第二安全相关处理是调试功能的有效化(S20)。以下,具体地对各处理进行说明。
ROM监视器80在启动后(S10),利用面向ROM监视器的命令判定单元81判定为在共享存储区域43所含的面向ROM监视器的命令区域60中从系统软件91写入了命令(make-req)的情况下,开始调试许可请求消息的制作处理(S11的是)。具体而言,ROM监视器80出于完整性的观点对系统软件91的状态进行检查(S12)。完整性的检查是确认非易失性存储器36上的系统软件整体未被篡改的处理。作为确认方法,可以在该定时进行基于哈希值以及公开密钥的验证,也可以相信基于以前进行的验证处理而命令生效了的系统软件的完整性是正确的(例如,参照日本专利公开公报2017-156945)。如果系统软件91的状态没有问题(S13的否),则ROM监视器80制作调试许可请求消息(S14),并将该调试许可请求消息保存于共享存储区域43的消息缓冲区域64。
之后,若利用系统软件91的面向ROM监视器的命令变更单元93,将面向ROM监视器的命令区域60改写为命令(sys-boot),则微机11通过控制寄存器33以软件方式复位。命令(sys-boot)是通常启动系统软件91的命令。因而,ROM监视器80在下次启动时,跳过调试许可请求消息的制作处理,执行用于启动系统软件91的处理(S11的否)。
图11是表示调试许可请求消息的构成的图。ROM监视器80利用调试许可请求消息准备单元87,将调试许可请求消息保存于调试许可请求消息保存单元89。
如图11所示,ROM监视器80写入表示向服务器100的调试许可请求的意思的命令(req-debug)。接下来,ROM监视器80写入利用随机数生成器88生成的随机数。随机数被保存于ROM监视器专用存储区域41的随机数区域51。
而且,ROM监视器80从共享存储区域43的系统软件信息区域61复制由系统软件91预先准备好的系统软件信息。系统软件信息中包含系统软件名、系统软件91的版本以及扩展信息。扩展信息是为了将系统软件名、版本以外的复杂信息传向服务器100侧而准备的信息。
ROM监视器80为了维持简单的构成,不设想以功能追加为目的而更新的情况。另一方面,系统软件91、服务器100根据状况被完成更新。一般来说,可以想到有根据运用的状况对于调试的能否判断来说需要追加信息的情况。由系统软件91收集这样的信息作为扩展信息。由此,在未来能够进行系统扩展。
最后,ROM监视器80通过签名单元90,使用与服务器100共享的公共密钥(共用的公共密钥),执行对于调试许可请求消息整体的电子签名。公共密钥保存于ROM监视器专用存储区域41的公共密钥区域52。
返回图10,ROM监视器80在面向ROM监视器的命令区域60未被写入命令(make-req)的情况下(S11的否)、或者系统软件91的状态为不正当的情况下(S13的是),不执行调试许可请求消息的制作处理。
系统软件的状态不正当指的是系统软件区域42被篡改而未维持完整性的情况下。篡改后的系统软件91进行不正当动作的可能性较高,调试许可请求自身不能被信赖。因此,ROM监视器80将会忽略调试许可请求。另一方面,如果系统软件91正常,则该软件所收集的信息也可以信赖。即,能够推断出调试许可请求消息所含的系统软件名、版本、扩展信息的各信息中也不会混入具有恶意的虚假情報。
ROM监视器80在面向ROM监视器的命令区域60未写入有命令(make-req)的情况下(S11的否),执行作为第二安全相关处理的调试功能的有效化的处理。这里,调试功能的有效化指的是使微机11为调试模式,进而能够从连接于调试端口12的调试器20操作系统软件91。
具体而言,ROM监视器80对共享存储区域43所含的消息缓冲区域64中是否保存有从服务器100接收到的调试许可证进行确认,在保存的情况下,读取该调试许可证(S15)。ROM监视器80利用调试许可证有效性判定单元85,验证是否被篡改等的正当性(S16)。
ROM监视器80在正当性的验证成功的情况下(S16的是),在ROM监视器专用存储区域41的调试模式标志区域50设定调试模式标志(S17)。这里,设定好的调试模式标志是表示调试模式(调试功能)有效的有效标志(1)。另外,ROM监视器80将验证完毕的调试许可证从消息缓冲区域64中删除。
接下来,ROM监视器80确认调试模式标志区域50的调试模式标志(S18)。如果有效标志已被设定(S19的是),则ROM监视器80使调试功能有效化(S20)。具体而言,微机11通过操作控制寄存器33的调试模式寄存器34B,使调试模式有效。此时,由于ROM监视器80为动作中,因此能够进行对调试模式寄存器34B的改写。之后,ROM监视器80使系统软件91启动(S21)。
另外,ROM监视器80也能够是不参照调试模式标志、而每次都进行调试许可证的验证的处理。但是,微机11由于启动时间的限制严格,因此也有不能确保验证时间的情况。因此,期望的是验证了一次调试许可证之后,基于有写入限制的调试模式标志进行控制。
这里,在调试许可证的验证中,调试许可证被确认(1)未被篡改、(2)由设想的正确的管理服务器发行、(3)未被再次利用这三个项目。项目(3)是针对作为“重复攻击”被熟知的攻击的对策。重复攻击是将以前收发的数据原样地再利用、从而带来某些负面影响的攻击。在无重复攻击对策的情况下,存在以前发出的调试许可证被挪用而在微机11侧许可原本应拒绝的调试(调试访问)的可能性。能否调试应考虑最近的微机11的状态来判断,需要避免以前发出的调试许可证的挪用。
[系统软件的处理]
如图12所示,系统软件91在启动后,在通常处理以外时执行调试许可请求处理。调试许可请求消息是用于从服务器100取得调试许可证的消息(参照图11)。以下,具体地进行说明。
系统软件91在启动后(S30),利用面向系统软件的命令判定单元92,确认共享存储区域43的面向系统软件的命令区域63中储存有命令(send-req)的话(S31的是),则执行通常处理以外的调试许可请求处理。
具体而言,系统软件91读取保存于共享存储区域43的消息缓冲区域64的调试许可请求消息(S32)。系统软件91利用通信单元96的调试许可请求消息发送单元97,将该调试许可请求消息向服务器100发送(S33)。
如后述那样,服务器100的调试许可判定单元110确认调试许可请求消息的正当性、内容。服务器100在许可调试的情况下,将调试许可证回复给系统软件91。
系统软件91在从服务器100回复了调试许可证的情况下,利用通信单元96的调试许可证接收单元98接收(S34的是),将该调试许可证保存于共享存储区域43的消息缓冲区域64(S35)。
系统软件91对于共享存储区域43的面向系统软件的命令区域63,改写为命令(normal)而执行复位。由此,系统软件91在复位后启动了的情况下,根据面向系统软件的命令区域63的命令(normal)(S31的否),执行前述那样的通常处理(S36)。系统软件91使通常处理持续至复位为止(S37的否)。
如以上那样,本实施方式是系统软件91可以说是以代理的方式利用通信单元96将ROM监视器80所制作的调试许可请求消息向服务器100发送的构成。由此,ROM监视器80能够不附加通信功能地维持相对较小且简单的软件构造。一般来说,通信用的代码由于处理可变长度的字段而复杂化。因此,大多成为软件的脆弱性的原因。在本实施方式中,ROM监视器80能够集中在制作调试许可请求消息的处理和验证调试许可书的处理上,从而能够排除脆弱性。
另一方面,系统软件91由于进行通信处理,因此含有脆弱性的概率变大。但是,系统软件91即使脆弱,也不会给调试限制功能带来较大的影响。其理由是因为,系统软件91只是在ROM监视器80与服务器100之间进行信息交换的传递,并未参与和调试(调试访问)限制相关的重要的判断处理。如前述那样,向调试模式的切换是由ROM监视器80判断的。ROM监视器80基于服务器100所发出的调试许可证来判断。另外,即使由不正当篡改后的系统软件91具有恶意地改写调试许可请求消息的内容,也能够利用服务器100或者ROM监视器80检测出该篡改。
[调试能否的处理]
图13是与图7相关并示出微机11的调试访问限制的处理的流程图。如图13所示,若调试器20从外部连接于调试端口12(S40),则微机11对于来自调试器20的调试访问,向服务器100询问是否可以进入调试模式的判断(S41)。即,微机11发送调试许可请求消息,向服务器100委托调试(调试访问)的能否判断。
微机11接收从服务器100发送的判断结果(S42)。微机11若接收调试许可证作为该判断结果(S43的是),则使调试功能(调试模式)有效化(S44)。由此,微机11根据来自调试器20的调试访问,许可对于系统软件91的调试的执行(S45)。
另一方面,微机11在作为该判断结果接收到不可调试时(S43的否),使调试功能(调试模式)无效化(S46)。由此,微机11断开来自调试器20的调试访问,拒绝对于系统软件91的调试的执行(S47)。
[系统的协作]
以下,参照图14至图18所示的时序图,从HW(硬件功能)820、ROM监视器80、系统软件91、以及服务器100的协作的观点说明本实施方式的动作。
另外,HW820如前述那样,指的是由微机11的硬件主体实现的功能,也包含动作软件判定单元800以及调试端口访问限制单元810等软件功能。而且,HW820也包含控制寄存器33的初始化、程序向非易失性存储器36内的控制转移、电源控制等功能。
作为图14至图18的共同事项,通过ROM监视器80与系统软件91的协作在处理中执行对于ROM监视器专用存储区域41、共享存储区域43的信息或者命令的读写动作(read或者write)。关于这些动作,以“读取‘信息或者命令’”、“将‘写入的值’写入‘区域名’”的形式明确记载。
作为具体例,ROM监视器80在从共享存储区域43读取面向ROM监视器的命令时,将箭头延伸至共享存储区域43,表述为“读取‘面向ROM监视器的命令’”。同样,系统软件91在对共享存储区域43的面向ROM监视器的命令区域60进行写入时,将箭头延伸至共享存储区域43,表述为“将‘make-req’写入‘面向ROM监视器的命令区域’”。
[通常处理]
图14是用于说明ROM监视器80与系统软件91的通常处理中的协作的时序图。在通常处理中,不包含与调试访问限制相关的安全相关处理。
如图14所示,在初始状态下,在共享存储区域43的面向ROM监视器的命令区域60中写入有表示系统软件91的启动的命令(sys-boot)。另外,在面向系统软件的命令区域63中写入有表示通常处理的执行的命令(normal)。共享存储区域43的消息缓冲区域64被设为未写入有意义的信息(清零或者被写入了表示非有意义的值的状态)。另外,ROM监视器专用存储区域41的调试模式标志区域50中设为未设定有有效标志的OFF状态(简单表述为OFF)。另外,在设定有有效标志的情况下简单表述为ON。
若对微机11接通电源,则使HW820、控制寄存器33初始化,并将调试模式寄存器34的标志设定为OFF(无效)。这里,在使调试模式寄存器34的标志为OFF的情况下,调试端口访问限制单元810拒绝连接的调试器20的通信,使调试访问无效。即,在初始状态下,微机11为不能执行基于调试器20的调试的状态。
接下来,HW820使ROM监视器80启动(boot)而转移控制。ROM监视器80通过面向ROM监视器的命令判定单元81,从共享存储区域43的面向ROM监视器的命令区域60读取面向ROM监视器的命令(sys-boot)(1400)。该命令(sys-boot)是使系统软件91启动的命令。
接下来,ROM监视器80利用调试端口设定变更单元86,从ROM监视器专用存储区域41的调试模式标志区域50读取标志,确认调试模式标志的ON或者OFF(1401)。这里,由于调试模式标志是OFF,因此不操作调试模式寄存器34。
ROM监视器80按照命令(sys-boot),利用系统软件启动单元82使系统软件91启动,将面向系统软件的命令向共享存储区域43的面向系统软件的命令区域63写入。系统软件91利用面向系统软件的命令判定单元92,确认从共享存储区域43的面向系统软件的命令区域63读出的命令(normal)(1402)。
系统软件91按照命令(normal),不执行安全相关处理,而是执行微机11的通常处理(1403)。此时,由于调试模式标志是OFF,因此微机11为不执行基于调试器20的调试的状态。
[调试许可请求处理]
图15是用于说明调试许可请求处理中的协作的时序图。在本实施方式中,系统软件91具有规定的接口,在连接有调试器20的状态下,以对于该接口的操作作为触发,向服务器100请求(委托)调试的许可。作为具体例,是控制器10的基板上的开关被操作、从UART发送特定的信号、从Web接口POST等的触发。在该情况下,进行车辆200的修理的经销商技术者、希望查明事故原因的制造商技术者等操作该接口,将微机11切换为调试模式。
如图15所示,系统软件91作为向服务器100的调试许可请求的准备,利用面向ROM监视器的命令变更单元93,将共享存储区域43的面向ROM监视器的命令区域60改写为命令(make-req)(1500)。由此,系统软件91将调试许可请求处理移至ROM监视器80。
接下来,系统软件91利用系统软件信息收集单元94,收集图11所示的那种系统软件名、版本以及扩展信息,对共享存储区域43的系统软件信息区域61执行写入(1501)。
最后,系统软件91利用重新启动单元95执行复位(1502),结束调试许可请求的准备处理。复位之后,ROM监视器80按照命令(make-req)开始调试许可请求消息的制作处理(参照图16)。
这里,在本实施方式中,利用单CPU的微机11,使ROM监视器80与系统软件91依次动作。若系统软件91启动,则向ROM监视器80转移的功能通过复位而实现。一般来说,在微机中,若复位进行,则易失性存储器37、硬件设定等被清空,成为完全排除了至此为止的软件动作的影响的状态。因此,之后动作的软件如果消除缺陷的影响,则能够期待按照开发者设想的那样动作。
在本实施方式中,复位后动作的软件是ROM监视器80。因此,ROM监视器80通过执行与调试相关的安全相关的处理,能够确保安全性。但是,期望的是ROM监视器80不附加通信功能,存储区域的读写也排除成为可变长度那样的部分,维持相对较小的简单的软件构造,排除脆弱性。
另外,在本实施方式中,复位是必须的构成,因此在多任务系统中广泛使用的利用了易失性存储器(DRAM,SRAM等)的信息的传递是不可以的。在一般的多任务系统中,在工序、任务间传递信息的情况下,大多使用类似共享存储器的结构。但是,在本实施方式中,在从系统软件91将处理移至ROM监视器80的情况下,产生复位。因此,不能经由易失性存储器来交换信息。因此,成为即使是极其简单的命令·信息也保存于非易失性存储器36的结构。因此,刚启动之后的ROM监视器80以及系统软件91参照非易失性存储器36而判断应处理的案件。
[调试许可请求消息的制作处理]
图16是用于说明调试许可请求消息的制作处理的协作的时序图。
通过基于前述的系统软件91的复位,HW820以维持调试模式寄存器34的OFF的状态启动ROM监视器80(boot)。ROM监视器80利用面向ROM监视器的命令判定单元81,从共享存储区域43的面向ROM监视器的命令区域60读取面向ROM监视器的命令(make-req)(1600)。由此,ROM监视器80按照命令(make-req)开始调试许可请求消息的制作处理。
另外,ROM监视器80从ROM监视器专用存储区域41的调试模式标志区域50读取标志(1601),确认调试模式标志为OFF。因此,不执行向调试模式的切换。ROM监视器80完全不受到外部的影响地推进之后的处理。
接下来,ROM监视器80利用系统软件验证单元83,验证系统软件91的完整性。首先,ROM监视器80从ROM监视器专用存储区域41的公共密钥区域52读取公共密钥(1602)。公共密钥(ABCD)是微机11与服务器100相互保持的共用的公共密钥。
接下来,ROM监视器80从共享存储区域43的系统软件保密信息区域62读取哈希值。ROM监视器80将以公共密钥附随于系统软件91的加密完毕的设想哈希值解码,之后进行比较。ROM监视器80在各哈希值相等的情况下,判定为系统软件91的完整性已被验证,书写了命令(make-req)的系统软件91的状态正确(1603)。
由此,ROM监视器80判断为不是具有恶意的调试许可请求而使处理继续进行。在该情况下,由于系统软件91的完整性已被验证,因此判定为系统软件91写入共享存储区域43的系统软件信息区域61的内容也同样正确。另外,ROM监视器80在各哈希值不一致的情况下,有系统软件91被不正当篡改或者改造的可能性,因此中止调试许可请求消息的制作处理。
接下来,ROM监视器80使调试许可请求消息准备单元87的各功能单元协作地开始该消息的制作准备。首先,随机数生成器88生成随机数(1604)。调试许可请求消息准备部87向ROM监视器专用存储区域41的随机数区域51写入随机数(1234)(1605)。随机数(1234)如后述那样针对调试许可证的重放攻击对策而被使用。
签名单元90使用公共密钥执行对于调试许可请求消息整体的电子签名。调试许可请求消息保存单元89制作图11所示的那种调试许可请求消息,保存于共享存储区域43的消息缓冲区域64(1606)。
接下来,ROM监视器80若识别到调试许可请求消息的制作处理已完成,则将共享存储区域43的面向ROM监视器的命令区域60改写为命令(sys-boot)(1607)。由此,在ROM监视器80重新启动时,按照命令(sys-boot)使系统软件91如通常那样启动。即,不会再次开始制作再次调试许可请求消息的处理。
最后,ROM监视器80利用面向系统软件的命令变更单元84,将共享存储区域43的面向系统软件的命令区域63,改写为命令(send-req)(1608)而复位(1609)。该命令(send-req)如后述那样,是作为ROM监视器80的代理而用于使系统软件91发送调试许可请求消息的命令。在复位后启动的系统软件91利用该命令(send-req),识别存在发送该消息的委托(参照图17)。
这里,ROM监视器80向ROM监视器专用存储区域41的随机数区域51写入随机数。该写入处理通过HW的动作软件判定单元800的功能实现。即,动作软件判定单元800由于ROM监视器80为动作中,因此向非易失性存储器36的存储器控制器或者控制寄存器33输出信号,设为对于ROM监视器专用存储区域41的写入能够被暂时执行的状态。在该情况下,ROM监视器80不会写入不正当的值。
这里,示出以式子的形式表现了ROM监视器80所准备的调试许可请求消息(MsgDebug Req)的一个例子“MsgDebugReq=Body||Signm”。其中,“Body=com_debugReq||SN||Ver|Rnd||EInfo,Signm=E_K[H[Body]]”。
式子的各要素的定义如以下所述。即,com_debugReq是向服务器要求调试许可的指令。K是服务器100与微机11中共享的公共密钥。SN是系统软件的名称(System softName)。Ver是微机11当前使用的系统软件的版本编号。Rnd是随机数。EInfo是扩展信息。E_K[A]指的是基于公共密钥K的数据A的公共密钥块加密。H[X]指的是对于数据X的哈希计算。||指的是要素的连结。例如,数据A与数据B的连结表现为A||B。
[与服务器的通信处理]
图17是说明服务器100的通信处理的协作并表示从服务器100取得调试许可证为止的处理的时序图。
如图17所示,利用基于前述ROM监视器80的复位,HW820以维持调试模式寄存器34的OFF的状态,启动(boot)ROM监视器80。ROM监视器80利用面向ROM监视器的命令判定单元81,从共享存储区域43的面向ROM监视器的命令区域60,读取面向ROM监视器的命令(sys-boot)(1700)。
另外,ROM监视器80利用调试端口设定变更单元86,从ROM监视器专用存储区域41的调试模式标志区域50读取标志(1701),识别调试模式标志为OFF。由此,ROM监视器80利用系统软件启动单元82,在调试模式保持无效的状态下使系统软件91启动。
启动后的系统软件91利用面向系统软件的命令判定单元92,从共享存储区域43的面向系统软件的命令区域63读取面向系统软件的命令(send-req)(1702)并识别。系统软件91按照命令(send-req),从共享存储区域43的消息缓冲区域64读取调试许可请求消息(1703)。
接下来,系统软件91利用调试许可请求消息发送单元97,将该调试许可请求消息向服务器100发送(1704)。在该情况下,系统软件91使用连接的适当的通信路径,执行服务器100的通信处理。
作为具体例,在物理上直接连结有通信服务器的情况下也可以是UART,如果是连接于所谓的有线LAN,则也可以利用Ethernet(注册商标)与TCP/IP。在本实施方式中,如前述那样,在系统软件91侧应对与服务器100之间的通信处理。另一方面,ROM监视器80不执行通信处理,而是执行调试许可请求消息的制作处理以及后述的调试许可证的验证处理。
服务器100利用调试许可判定单元110,确认调试许可请求消息的正当性(签名)、内容,判定是否没有问题。如果没有问题,则服务器100以相同的通信路径回复调试许可证,在存在问题的情况下回复其主旨。
这里,调试许可判定单元110作为一个例子,通过以下的顺序执行判定处理。首先,调试许可判定单元110从以前述式子的形式表示的调试许可请求消息(Msg Debug Req)取出作为主体部分的Body,计算哈希值H[Body]。接下来,以公共密钥K将签名(Signm)解码,计算作为设想哈希值的D_K[Signm]。这里,D_K[Y]指的是基于公共密钥K的Y的公共密钥块解码。
调试许可判定单元110在比较两者的哈希值而值相等时,将会确保ROM监视器80生成的该消息(Msg Debug Req)在微机11内以及通信路径上未被篡改。接下来,调试许可判定单元110调查系统软件91的名称(SN)的值,如果其是设想的名称,且没有问题,则推进处理。
调试许可判定单元110管理多个种类的系统软件(微机),以系统软件名(SN)判断请求源的型号等。这表示即使是出厂时也能够增减可调试微机的种类。即,有这样的余地:即使是出厂时不能进行调试的微机,只要根据状况更新服务器100侧的信息也能够调试。
另外,调试许可判定单元110也调查该消息(Msg Debug Req)的版本(Ver)的值。这也是在服务器100侧设想的值被设定,没有问题的话就推进处理。使哪个版本为调试许可对象可以根据运用而采用多种方式。例如,如果是始终只对最新软件认可利用这一运用方针,则将从旧软件发来调试请求自身设为不正当。由此,仅最新的版本的值成为设想值。另一方面,也存在虽然最新版的系统软件没有问题,但仅在特定版本中发现动作不良并进行调查的情况。在这种情况下,仅将特定版本的值暂时设定为设想值。
最后,调试许可判定单元110调查该消息(Msg Debug Req)的扩展信息(EInfo)。这包含系统软件名(SN)与版本(Ver)所不能表现的信息。这也是在服务器100侧设定设想值,并根据需要作为判断材料来使用。
如果系统软件名(SN)、版本(Ver)、扩展信息(EInfo)这三个信息没有问题,调试许可判定单元110就制作调试许可证(License Debug)而向微机11侧回复。
调试许可证(License Debug)的构成能够以式子“LicenseDebug=Res||Signl”的形式表现。其中,“Res=resp_debug_ok||RnD,Signl=E_K[H[Res]]”。
这里,随机数(Rnd)并非由服务器100新生成的,而是将调试许可请求消息(MsgDebug Req)所包含的内容原样复制的。另外,resp_debug_ok指的是表示许可了调试的应答(调试许可证)。另一方面,resp_degun_ng指的是表示不许可调试的应答。即,调试许可判定单元110在调试许可请求消息(Msg Debug Req)存在问题、不能发出调试许可证的情况下,回复应答(resp_degun_ng)。
系统软件91在从服务器100回复了调试许可证(License Debug)的情况下,利用通信单元96的调试许可证接收单元98接收(1705),并向共享存储区域43的消息缓冲区域64写入(1706)。系统软件91识别与服务器100的通信处理已完成时,将共享存储区域43的面向系统软件的命令区域63改写为命令(normal)(1707),执行复位(1708)。由此,系统软件91在下次的启动时开始通常处理,不执行与服务器100的通信处理。
[调试许可证的验证处理]
图18是说明调试许可证的验证处理的协作,并表示使调试模式有效化而许可调试为止的处理的时序图。
如图18所示,通过基于前述系统软件91的复位,HW820以维持调试模式寄存器34的OFF的状态,启动(boot)ROM监视器80。ROM监视器80利用面向ROM监视器的命令判定单元81,从共享存储区域43的面向ROM监视器的命令区域60读取面向ROM监视器的命令(sys-boot)(1800)并识别。由此,ROM监视器80开始调试许可证的验证处理而并非调试许可请求消息的制作处理,最终推进使系统软件91启动的处理。
ROM监视器80从共享存储区域43的消息缓冲区域64读出调试许可证(1801)。ROM监视器80利用调试许可证有效性判定单元85,开始验证调试许可证的有效性的处理。具体而言,通过以下的顺序验证有效性。
ROM监视器80从ROM监视器专用存储区域41的公共密钥区域52读出公共密钥(K)(1802)。接下来,ROM监视器80从作为前述式子的形式的调试许可证(License Debug)取出响应主体(Res),计算哈希值H[Res]。接下来,以公共密钥(K)将签名(Signl)解码,计算设想哈希值(D_K[Signl])。比较该两者而值相等的话,ROM监视器80就对调试许可证未被篡改、以及作为设想的发送者的服务器100已应答进行验证(1803)。
但是,通过该验证确认到的内容只是“过去有服务器100许可过调试的情况”这一事实。如果仅靠该事实赋予调试许可,则将过去发出的调试许可证多次再利用的重复攻击的情况会被允许。即,存在仅许可了一次调试的系统软件变得永远都能够进行调试的隐患。调试的能否判断应根据最近的状况每次都被进行,因此需要对策。
在本实施方式中,ROM监视器80利用调试许可证有效性判定单元85,作为重复攻击对策,通过以下的顺序执行验证处理。
首先,ROM监视器80从ROM监视器专用存储区域41的随机数区域51读取随机数(1234)(1804)。ROM监视器80进行该随机数和调试许可证(License Debug)的主体(Res)所含的随机数(Rnd)的比较。ROM监视器80在两者一致的情况下,判断为未被重复攻击(1805)。另一方面,在两者不一致的情况下,视为被重复攻击,将调试许可证自身判断为不正当。
以下,对判断的依据进行说明。ROM监视器专用存储区域41的随机数区域51中保存的随机数(1234)是制作调试许可请求消息时由ROM监视器80保存的值。因此,由ROM监视器80最近制作出的该消息中必然使用了相同的随机数的值。
另一方面,服务器100进行了取出该随机数而原样地向调试许可证复制(填入)的处理。因此,从服务器100回复的调试许可证中含有该随机数的话,就能够推测为是在时间上较近的定时制作出的。
ROM监视器80在调试许可证的验证处理完成、并且含有表示调试许可的命令(resp_debug_ok)的话,判断为正当性的验证成功。ROM监视器80利用调试端口设定变更单元86,在ROM监视器专用存储区域41的调试模式标志区域50将调试模式标志设定为ON(有效)(1806)。
接下来,ROM监视器80将验证完毕的调试许可证从消息缓冲区域64中删除(1807)。进而,ROM监视器80使控制寄存器33的调试模式寄存器34的调试模式为有效(ON)而使调试功能有效化。由此,调试端口访问限制单元810许可与连接的调试器20之间的通信(调试访问)。之后,ROM监视器80启动系统软件91。因而,成为能够利用外部的调试器20调试微机11的系统软件91的状态。
这里,在下一次以后,ROM监视器80在每次启动时访问ROM监视器专用存储区域41的调试模式标志区域50,确认调试模式标志的内容。在该情况下,不进行调试许可证的判定,调试模式成为有效(ON)。调试模式标志有效的状态永存的话存在问题,因此如前述那样,在ROM监视器专用存储区域41设有可调试次数区域53。可调试次数在使调试模式标志有效时被设定值。之后,每次微机11以调试模式启动时减少值。在可调试次数成为“0”的时刻,ROM监视器80使调试模式标志无效,再次开始调试许可证的再次取得。
作为可调试次数设定的值取决于微机11的用途而设定。例如,设想在网络环境差的场所运用的微机11,如果不将可调试次数多设置一些的话,就有在必要的定时不能进行调试的可能性。另一方面,在希望严格限制调试的微机11的情况下,也可以将可调试次数的值设定为“1”,每当有调试请求时,就需要调试许可证的发出。
如以上那样,根据本实施方式,在以低成本的单CPU内核为主要素的微机中,能够实现可针对来自外部的不正当调试可靠地进行有效的调试访问限制的调试访问限制功能。由此,能够预先防止从存在恶意的外部对微机的软件进行不正当动作、分析或者篡改那样的情况。
而且,本实施方式利用安全性高的ROM监视器,根据来自外部的调试请求,对作为与微机不同的计算机的服务器委托调试的能否判断。ROM监视器基于来自服务器的调试许可证,执行微机的调试功能的有效化或者无效化的处理。
即,通过实现将向服务器侧的调试能否判断的权限分离的构成,即使是低成本的微机的情况下,也能够确保针对外部的安全方面,并且实现可靠的调试访问限制功能。另外,由于由服务器侧进行调试能否判断,因此该服务器的运用侧即使在装配了微机的产品出厂后,也能够集中地管理微机的调试状况。
另外,本实施方式说明了适用于搭载于车辆的微机的情况,但并不限定于此,例如也能够适用于装配于家用电器、医疗设备等的微机。而且,本实施方式也能够适用于来自外部的系统软件的变更请求。
[变形例]
图20是与本实施方式的变形例相关的框图。本变形例是在图8所示的本实施方式的微机11的功能中作为HW所含的周边电路而附加了A/D转换器控制部830以及ROM监视器80所含的保密信息消除单元部840的构成。另外,关于其他构成与本实施方式相同,因此省略说明。
本变形例的A/D转换器控制部830以及保密信息消除单元部840都是以防止微机11内的保密信息的泄漏为目的构成要素。这里,在本变形例中,作为微机11内的保密信息,设为ROM监视器专用存储区域41的公共密钥以及共享存储区域43的系统软件保密信息区域62中储存的系统软件保密信息这两种信息。
公共密钥在执行本实施方式的各处理时的安全上的观点上确保安全性的保证,所以非常重要。在本实施方式中,仅安全性高的ROM监视器80具有公共密钥的读取权限,并且不含有将公共密钥以原样的形式保存于外部的处理,因此公共密钥泄漏的可能性极低。另一方面,公共密钥在微机出厂前被写入,基本上没有设想更新,因此泄漏时的影响较大。
另外,在系统软件91的通常处理中所保存的信息之中,系统软件保密信息的泄漏影响较大。例如,用户所利用的ID、密码、动作日志(语音数据、面部的图像等)为代表例。它们之中可能包含即使在调试时也不应让操作人员看到的信息。由此,系统软件91的设计者预先进行了意识到系统软件保密信息的设计。
以下,对用于防止微机11内的保密信息的泄漏的顺序进行说明。
首先,在使用公共密钥作为保密信息的情况下,作为公共密钥泄漏的路径,是电力分析时的来自微机11的输出。电力分析是对原本在软件上难以取得的信息通过分析电特征而推测的处理。具体而言,在微机11内进行基于公共密钥的签名验证处理时,由于测定微机11的电力消耗量、噪声,因此在该测定值的输出时有公共密钥的值泄漏出来的可能性。由此,期望致力于在微机11使用公共密钥而进行计算处理中,不使外部进行伴随着电力分析的测定。
因此,在本变形例中,A/D转换器控制部830在进行基于ROM监视器80的公共密钥的操作的期间(例如,加密单元38的动作中),使通过来自微机11的输出进行电力分析的电路的动作停止。作为用于进行电力分析的代表例的电路,有A/D转换器作为外部接口而被连接的情况。即,有经由A/D转换器而不正当取得例如微机11的运算处理的内容的可能性。
因此,在本变形例中,A/D转换器控制部830切断对外部接口的电源,使A/D转换器的动作停止。但是,并不局限于A/D转换器,即使在作为外部接口而连接的其他电路的情况下,也需要在微机11使用公共密钥进行计算处理中使动作停止的控制部。
而且,在微机11中,在运用系统软件91的情况下,有时伴随着通常处理将系统软件保密信息保存于共享存储区域43的系统软件保密信息区域62。在该保存后,按照请求例如由ROM监视器80执行使调试模式标志有效的处理的情况下,ROM监视器80的保密信息消除单元840立即消除系统软件保密信息区域62的内容。由此,能够防止也对进行调试的操作人员泄漏出来自系统软件保密信息区域62的保密信息那样的情况。
另外,为了维持ROM监视器80的简单性,系统软件保密信息区域62为固定长度。由此,存在因系统软件所保存的系统软件保密信息的容量而导致系统软件保密信息区域62的容量不足的可能性。在这种情况下,系统软件91也可以执行单独将系统软件保密信息加密、并仅将此时使用的密钥保存于系统软件保密信息区域62的运用。由此,在调试时,该密钥被可靠地删除,不再能将加密了的系统软件保密信息恢复。由于面向系统软件的通常处理而准备的非易失性存储器36的容量比系统软件保密信息区域62大,因此在该运用下,保密信息的容量在实用上不再有限制。
虽然说明了本发明的几个实施方式,但这些实施方式是作为例子而提出的,并不意图限定发明的范围。这些新的实施方式能够以其他各种方式实施,在不脱离发明的主旨的范围内能够进行各种省略、替换、变更。这些实施方式及其变形包含在发明的范围及主旨中,并且包含在权利要求书所记载的发明与其等效的范围内。

Claims (18)

1.一种信息处理装置,适用于电子设备的嵌入式系统,其特征在于,
具备第一电路,该第一电路对应于外部访问,向与所述信息处理装置不同的服务器请求判定能否进行调试或者进行软件变更。
2.如权利要求1所述的信息处理装置,其特征在于,
所述第一电路向所述服务器请求判定能否进行调试。
3.如权利要求1所述的信息处理装置,其特征在于,
还具备第二电路,该第二电路基于来自所述服务器的表示能否进行调试的判定结果,使所述调试有效化或者无效化。
4.如权利要求1所述的信息处理装置,其特征在于,
所述第一电路制作用于向所述服务器请求判定能否进行调试的消息。
5.如权利要求4所述的信息处理装置,其特征在于,
还具备第三电路,该第三电路将所述消息向所述服务器发送。
6.如权利要求5所述的信息处理装置,其特征在于,
所述第一电路制作包含用于确定软件的信息的所述消息,该软件是作为所述调试的对象的软件,
确定所述软件的信息为了基于预先规定的数字签名执行所述软件的完整性验证,包含从所述数字签名提取的规定的标识符。
7.如权利要求3所述的信息处理装置,其特征在于,
还具备第四电路,该第四电路接收从所述服务器发送的所述判定结果,验证所述判定结果的正当性。
8.如权利要求7所述的信息处理装置,其特征在于,
在所述判定结果具有正当性的情况下,当基于所述判定结果而调试被许可时,所述第二电路使所述调试有效化。
9.一种嵌入式系统,其特征在于,具有:
权利要求1所述的信息处理装置;以及
网络,能够在该信息处理装置与所述服务器之间进行通信而进行信息交换。
10.如权利要求9所述的嵌入式系统,其特征在于,
所述信息处理装置的第一电路制作用于向所述服务器请求判定能否进行所述调试的消息,并向所述服务器发送,
所述服务器验证所述消息的正当性,
所述服务器基于正当的所述消息来判定能否进行所述调试,
所述服务器将能否进行所述调试的判定结果向所述信息处理装置发送。
11.一种调试控制方法,在嵌入式系统中利用计算机所执行的软件来控制调试,其特征在于,该调试控制方法具备如下步骤:
接收请求调试的外部访问的步骤;以及
向与所述计算机不同的服务器请求判定能否进行所述调试的步骤。
12.如权利要求11所述的调试控制方法,其特征在于,
向所述服务器请求的步骤中包括:
制作用于向所述服务器请求判定能否进行调试的消息的步骤;以及
将所述消息向所述服务器发送的步骤。
13.如权利要求12所述的调试控制方法,其特征在于,还具备如下步骤:
接收从所述服务器发送的所述判定结果,验证所述判定结果的正当性的步骤。
14.如权利要求13所述的调试控制方法,其特征在于,还具备如下步骤:
在所述判定结果具有正当性的情况下,当基于所述判定结果而调试被许可时,使所述调试有效化的步骤。
15.如权利要求11所述的调试控制方法,其特征在于,
所述软件包含:
第一软件,被确保对于来自所述外部的访问的安全,控制调试;以及
第二软件,成为所述调试的对象,
所述第一软件向所述服务器请求判定能否调试。
16.如权利要求15所述的调试控制方法,其特征在于,
所述第一软件为了向所述服务器请求判定能否进行调试,制作包含用于确定所述第二软件的信息的消息。
17.如权利要求15所述的调试控制方法,其特征在于,
所述第二软件将所述消息向所述服务器发送。
18.如权利要求17所述的调试控制方法,其特征在于,
在从所述服务器发送的判定结果具有正当性的情况下,当基于所述判定结果而调试被许可时,所述第一软件使所述调试有效化。
CN201910159956.9A 2018-08-30 2019-03-04 信息处理装置、嵌入式系统以及调试控制方法 Active CN110874323B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018161586A JP6961553B2 (ja) 2018-08-30 2018-08-30 情報処理装置、システム及び方法
JP2018-161586 2018-08-30

Publications (2)

Publication Number Publication Date
CN110874323A true CN110874323A (zh) 2020-03-10
CN110874323B CN110874323B (zh) 2024-05-28

Family

ID=69640541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910159956.9A Active CN110874323B (zh) 2018-08-30 2019-03-04 信息处理装置、嵌入式系统以及调试控制方法

Country Status (3)

Country Link
US (1) US11418505B2 (zh)
JP (1) JP6961553B2 (zh)
CN (1) CN110874323B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625639A (zh) * 2022-03-03 2022-06-14 上海先楫半导体科技有限公司 一种基于片上系统的调试方法、系统以及芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799030A (zh) * 2003-05-29 2006-07-05 飞思卡尔半导体公司 用于确定访问许可的方法和设备
CN101427222A (zh) * 2006-04-24 2009-05-06 松下电器产业株式会社 数据处理装置、方法、程序、集成电路、程序生成装置
CN106557802A (zh) * 2015-09-30 2017-04-05 株式会社东芝 存储装置以及信息处理系统
GB201810544D0 (en) * 2018-06-27 2018-08-15 Nordic Semiconductor Asa Method of debugging a device

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2974601B2 (ja) 1994-12-28 1999-11-10 日本ヒューレット・パッカード株式会社 マイクロプロセッサ及びデバッグシステム
EP0720093B1 (en) 1994-12-28 2001-11-14 Kabushiki Kaisha Toshiba Microprocessor and debug system
GB9713094D0 (en) * 1997-06-21 1997-08-27 Philips Electronics Nv Optical disc drive
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US20050050159A1 (en) * 2003-09-03 2005-03-03 Zeev Suraski Remote debugging of web applications
JP2007226276A (ja) 2004-03-24 2007-09-06 Matsushita Electric Ind Co Ltd デバッグ許可装置システム
JP2006323726A (ja) 2005-05-20 2006-11-30 Nec Corp モニタプログラムおよびリアルタイムトレースシステム
US8239688B2 (en) * 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US9122859B1 (en) * 2008-12-30 2015-09-01 Google Inc. Browser based event information delivery mechanism using application resident on removable storage device
US9372699B2 (en) * 2011-04-08 2016-06-21 Insyde Software Corp. System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
US8756577B2 (en) * 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
JP5543949B2 (ja) 2011-09-21 2014-07-09 株式会社東芝 制御装置およびモニタプログラム
JP6244942B2 (ja) 2014-01-28 2017-12-13 株式会社リコー 起動制御装置、通信システム、プログラム、及び起動制御方法
KR102228454B1 (ko) * 2014-02-24 2021-03-16 삼성전자주식회사 보안 디버깅 회로를 갖는 디바이스 및 그것에 대한 디버깅 방법
JP6385842B2 (ja) 2015-02-02 2018-09-05 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム
JP2017033149A (ja) 2015-07-30 2017-02-09 株式会社東芝 情報処理装置、コントローラ、及び、情報処理装置の制御方法
JP6373888B2 (ja) 2016-03-01 2018-08-15 株式会社東芝 情報処理装置及び制御方法
US9971675B2 (en) * 2016-04-04 2018-05-15 International Business Machines Corporation Triggering debug processing within a scalable cloud environment
US10152404B2 (en) * 2016-11-07 2018-12-11 Vmware, Inc. Collaborative debugging
TWI615708B (zh) * 2017-03-17 2018-02-21 致伸科技股份有限公司 嵌入式裝置除錯系統及其方法
US10621026B2 (en) * 2017-06-04 2020-04-14 Apple Inc. Auto bug capture
US10565087B2 (en) * 2017-08-03 2020-02-18 Microsoft Technology Licensing, Llc Tentative execution of code in a debugger
US10599555B2 (en) * 2017-09-20 2020-03-24 Texas Instruments Incorporated Context-sensitive debug requests for memory access
KR20190038018A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 프로그램 변조 방어 장치 및 방법
US10545853B2 (en) * 2017-11-06 2020-01-28 Oracle International Corporation Stateless debugging of a script injected into a web application that is located in a mult-node cloud system
US10698792B2 (en) * 2018-05-02 2020-06-30 Microsoft Technology Licensing, Llc Execution control with cross-level trace mapping

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1799030A (zh) * 2003-05-29 2006-07-05 飞思卡尔半导体公司 用于确定访问许可的方法和设备
CN101427222A (zh) * 2006-04-24 2009-05-06 松下电器产业株式会社 数据处理装置、方法、程序、集成电路、程序生成装置
CN106557802A (zh) * 2015-09-30 2017-04-05 株式会社东芝 存储装置以及信息处理系统
GB201810544D0 (en) * 2018-06-27 2018-08-15 Nordic Semiconductor Asa Method of debugging a device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625639A (zh) * 2022-03-03 2022-06-14 上海先楫半导体科技有限公司 一种基于片上系统的调试方法、系统以及芯片
CN114625639B (zh) * 2022-03-03 2024-05-28 上海先楫半导体科技有限公司 一种基于片上系统的调试方法、系统以及芯片

Also Published As

Publication number Publication date
JP2020035202A (ja) 2020-03-05
CN110874323B (zh) 2024-05-28
US11418505B2 (en) 2022-08-16
US20200076805A1 (en) 2020-03-05
JP6961553B2 (ja) 2021-11-05

Similar Documents

Publication Publication Date Title
US10963543B2 (en) Secure communication between operating system and processes
US20170250818A1 (en) Method and System for Securely Updating Field Upgradeable Units
JP4708414B2 (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
US8909978B2 (en) Remote access diagnostic mechanism for communication devices
JP6373888B2 (ja) 情報処理装置及び制御方法
JP6385842B2 (ja) 情報処理端末、情報処理方法、及び情報処理システム
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
US10353830B2 (en) Method and memory module for security-protected write processes and/or read processes on the memory module
CN101369141B (zh) 用于可编程数据处理设备的保护单元
CN112948086B (zh) 一种可信plc控制系统
CN110445633A (zh) 用于在分布式网络中提供经认证更新的方法
CN110874323B (zh) 信息处理装置、嵌入式系统以及调试控制方法
US11537709B2 (en) Device such as a connected object provided with means for checking the execution of a program executed by the device
US20220300612A1 (en) Security processing device
EP3904161A1 (en) Information processing device
CN112219186B (zh) 用于将程序代码包安装到设备中的方法以及设备和机动车
WO2023205208A1 (en) Method for safety responses to security policy violations
Potteiger A Moving Target Defense Approach Towards Security and Resilience in Cyber-Physical Systems
CN117494232B (zh) 固件的执行方法和装置、系统、存储介质及电子设备
Nasser Securing safety critical automotive systems
CN114091008A (zh) 用于对控制设备进行安全更新的方法
US20220147615A1 (en) Data processing device, data processing method, and program
Juhász et al. Secure remote firmware update on embedded IoT devices

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