CN111125686B - 信息处理装置及其控制方法 - Google Patents

信息处理装置及其控制方法 Download PDF

Info

Publication number
CN111125686B
CN111125686B CN201911036270.7A CN201911036270A CN111125686B CN 111125686 B CN111125686 B CN 111125686B CN 201911036270 A CN201911036270 A CN 201911036270A CN 111125686 B CN111125686 B CN 111125686B
Authority
CN
China
Prior art keywords
control unit
program
clock
frequency
system bus
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
Application number
CN201911036270.7A
Other languages
English (en)
Other versions
CN111125686A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of CN111125686A publication Critical patent/CN111125686A/zh
Application granted granted Critical
Publication of CN111125686B publication Critical patent/CN111125686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开一种信息处理装置及其控制方法。一种信息处理装置包括存储程序的存储器,系统总线,其被配置为经由系统总线读取程序并判断所读取的程序是否被篡改的第一控制单元,被配置为经由系统总线从存储器读取判断为未被篡改的程序,并执行程序的第二控制单元,以及被配置控制将要向系统总线和第一控制单元的至少一个模块供应的时钟的频率的时钟控制单元,其中,时钟控制单元以如下方式控制时钟的频率:使从第一控制单元开始读取程序的时间点到读取完成的时间点的期间的时钟的频率高于在针对程序进行判断之后的时钟的频率。

Description

信息处理装置及其控制方法
技术领域
本发明涉及一种信息处理装置及其控制方法。
背景技术
攻击软件漏洞以篡改软件从而滥用计算机一直是个问题。
WO 09/013825讨论了一种信息处理装置,其包括第一中央处理单元(CPU),第二CPU和存储将由第二CPU执行的程序的非易失性存储器。在信息处理装置中,第一CPU从非易失性存储器读取要由第二CPU执行的程序,验证程序是否被篡改,并基于验证结果将程序输出到第二CPU。由此,第二CPU执行未篡改的程序,从而可以提高安全性。
发明内容
在从存储器读取程序并验证程序是否被篡改的系统中,如果向诸如系统总线和中央处理单元(CPU)等模块供应的时钟频率高,则检测程序是否被篡改所需的时间变短。同时,向模块供应高时钟频率导致从模块释放的热量增加并且导致其电力消耗增加。较少的散热量和较低的电力消耗是可取的。本公开使得完成验证所需的时间的减少,同时防止散热量和电力消耗的增加。
根据本发明的一方面,一种信息处理装置包括:存储程序的存储器;系统总线;第一控制单元,其被配置为经由所述系统总线读取所述存储器中存储的所述程序并判断所读取的程序是否被篡改;第二控制单元,其被配置为经由所述系统总线从所述存储器读取判断为未被篡改的程序,并执行所述程序;以及时钟控制单元,其被配置为控制将要向所述系统总线和所述第一控制单元的至少一个模块供应的时钟的频率,其中,所述时钟控制单元以如下方式控制将要向所述至少一个模块供应的时钟的频率:使从所述第一控制单元开始读取所述程序的时间点到至少是所述读取完成的时间点的期间将要供应的时钟的频率高于在针对所述程序进行所述判断之后将要供应的时钟的频率。
根据以下参照附图对示例性实施例的详细描述,本发明的其他特征将变得清楚。
附图说明
图1是例示根据第一示例性实施例的多功能外围设备(MFP)的硬件配置的框图。
图2是例示中央处理单元(CPU)进行篡改检测的处理中的电源状态的框图。
图3是例示MFP的软件配置的框图。
图4A和4B是例示启动时的操作的示意图。
图5是例示根据第一示例性实施例的处理的流程图。
图6是例示根据第一示例性实施例的处理的流程图。
图7是例示根据第二示例性实施例的MFP的硬件配置的框图。
图8是例示根据第二示例性实施例的处理的流程图。
具体实施方式
下文将参照附图详细描述本发明的示例性实施例。应当注意,本发明不限于下文描述的示例性实施例,而且对于本发明的技术方案来说,并非下述的每个特征组合总是必不可少的。此外,尽管下文描述了作为根据本发明示例性实施例的信息处理装置的示例的多功能外围设备(MFP)(例如,数字MFP),但是本发明的应用不限于MFP,并且本发明可以应用于任何信息处理设备。
图1是例示根据第一示例性实施例的MFP 10的硬件配置的框图。
控制器20包括将在下文描述的用于控制MFP 10的硬件模块101至137。在本示例性实施例中,硬件模块101至137将被描述为集成在一个或多个半导体芯片中。
时钟生成单元30生成时钟并供应适合于MFP 10中包括的各模块的频率的时钟信号(外部时钟)。在本示例性实施例中,时钟生成单元30向控制器20中包括的锁相环(PLL)123供应时钟信号31。PLL 123用作被配置为供应具有可变频率的时钟的时钟供应单元。可以通过时钟控制信号32改变时钟生成单元30的频率。
复位生成单元40是被配置为产生复位信号以复位MFP 10中包括的各模块的半导体芯片。虽然在本示例性实施例中仅例示了向控制器20输出的复位信号41,但是也可以向诸如扫描仪141和打印机142等其他模块输出复位信号。如果向MFP 10供电,则在预定的一段时间(例如,一直到供电电压变得稳定为止)内保持复位信号41有效,并在此后无效复位信号41以使控制器20的复位无效。如果控制器20的复位被无效,则控制器20中包括的模块开始运行。
中央处理单元(CPU)101执行MFP 10的软件程序并控制整个装置。
在CPU 101控制MFP 10时,随机存取存储器(RAM)103用于存储程序和临时数据。
硬盘驱动器(HDD)144存储部分程序和各种类型的数据。HDD 144存储将由CPU 101执行的程序214。
闪存145存储例如MFP 10的预定参数。闪存145存储将由CPU 101执行的基本输入/输出系统(BIOS)210。闪存145还存储将由CPU 101执行的加载器211、内核212和本机程序213。HDD 144和闪存145可以是相同的存储模块。
CPU 111执行篡改检测软件程序以检测将由CPU 101执行的软件程序中的篡改,并且MFP 10执行部分控制。
只读存储器(ROM)112存储例如下述篡改检测软件程序和公共密钥。ROM 112还存储要由CPU 111执行的引导程序209。
ROM 112是不允许重写数据内容的掩模ROM,或者是仅允许在制造时写入一次的一次性可编程(OTP)ROM。
RAM 113是在CPU 111控制MFP 10时用于存储程序和/或临时数据的随机存取存储器。RAM 103和113可以是同一模块。
电源控制单元(电力控制单元)120是被配置为控制向控制器20中包括的模块的供电的集成电路(IC)。在启动或操作控制器20(MFP 10)时,电源控制单元120可以向各模块供应预定量的电力或者停止供电。
时钟控制单元121使用内时钟控制信号33控制PLL 123。因此,PLL 123倍乘时钟信号31的频率,并向控制器20中包括的模块供应倍频的时钟信号。在启动或操作控制器20时,控制单元121通过改变针对PLL 123的乘法设置来执行控制,以使PLL 123向各模块供应具有最佳频率的时钟(内时钟)。此外,时钟控制单元121可以针对各模块独立地门控和停止时钟。
复位控制单元122复位控制器20中包括的模块单元。在启动或操作控制器20时,复位控制单元122对各模块进行复位或使复位无效。
扫描仪接口(I/F)控制单元131控制由扫描仪141执行的文档读取。打印机I/F控制单元132控制例如由打印机142执行的打印处理。面板控制单元133控制作为触摸面板的操作面板143,并控制各种类型的信息显示以及来自用户的输入指令。
HDD控制单元134控制从/向HDD 144的数据读取/写入。HDD控制单元134可以读取例如RAM 103中存储的图像数据,并经由系统总线109将图像数据存储到HDD 144中。
闪存控制单元135控制从/向闪存145读取/写入数据。闪存控制单元135能够读取闪存145中存储的程序,并在启动控制器20时经由系统总线109将读取的程序展开到RAM113上。
网络I/F控制单元136控制从/向网络146上的其他设备或服务器上的数据发送/接收。
外部端口控制单元137控制控制器20的输入和输出端口。例如,外部端口控制单元137控制输出端口,从而在必要时点亮发光二极管(LED)147,以向外部通知软件或硬件中的异常。
图像处理单元138是如下配置的处理单元:对从扫描仪141读取的图像数据执行阴影校正,并对图像数据执行半色调处理和平滑处理以向打印机142输出图像数据。
系统总线109将与系统总线109连接的模块彼此连接。经由系统总线109发送和接收来自CPU 101和111的控制信号或装置之间的数据信号。
图3是例示根据第一示例性实施例的MFP 10的软件模块的框图。在下面的描述中,该软件将由CPU 101或111执行。
通信管理单元207控制连接到网络146的网络I/F控制单元136,以经由网络146与外部发送和接收数据。
用户界面(UI)控制单元203经由面板控制单元133接收向操作面板143的输入,并基于该输入执行处理,然后将画面输出至操作面板143。
引导程序209是在开启MFP 10时由CPU 111执行的程序,并且针对控制器20执行启动序列作为启动相关处理。下文将参照4A和4B描述启动序列。引导程序209包括用于在启动后对BIOS 210执行篡改检测的BIOS篡改检测处理部201。
BIOS 210是在执行引导程序209后由CPU 101执行的程序。BIOS 210包括用于执行启动相关处理和对加载器211的篡改检测的加载器篡改检测处理部202。
加载器211是在BIOS 210执行的处理结束后由CPU 101执行的程序。加载器211包括用于执行启动相关处理和对内核212的篡改检测的内核篡改检测处理部204。
内核212是在加载器211的处理结束后由CPU 101执行的程序。内核212包括用于执行启动相关处理和对本机程序213的篡改检测的本机程序篡改检测处理部205。
本机程序213是由CPU 101执行的程序,并且包括被配置为与MFP 10存储中的Java程序214协作以提供功能的多个程序。多个程序包括例如用于控制扫描仪I/F控制单元131或打印机I/F控制单元132的程序和启动程序。通过内核212从本机程序213读取启动程序,并执行启动处理。本机程序213还包括用于对作为程序之一的Java程序214执行篡改检测的Java程序篡改检测处理部206。
Java程序214是由CPU 101执行,并被配置为与安装在MFP 10中的本机程序213协作提供各项功能的程序(例如,用于在操作面板143上显示画面的Java程序214)。
接下来,将参考图4A和图4B描述MFP 10的启动序列。
图4A是例示表示不执行篡改检测而启动MFP 10的顺序的启动序列的示意图。引导程序209启动BIOS 210,BIOS 210启动加载器211,加载器211启动内核212,内核212启动本机程序213的启动程序。在启动程序期间,Java程序214启动,随后本机程序213和Java程序214协作以提供MFP 10中内置的各项功能。
图4B是例示启动顺序的示意图,该启动顺序表示在对引导程序209、BIOS 210、加载器211、内核212、本机程序213和Java程序214执行篡改检测的同时启动它们的处理。图4B中的示意图还表示各程序的存储位置、数字签名(以下称为“签名”)和公共密钥。
签名例如是通过使用预定的哈希函数将正常程序(数据串)转换为哈希值,并使用与公共密钥对应的私人密钥对哈希值进行加密而获得的值。使用公共密钥对加密的哈希值进行解密,从而计算正常程序的哈希值,并且使用上述哈希函数将作为篡改验证目标的程序转换为哈希值。然后比较这两个哈希值。如果两个哈希值相等,则判断验证目标程序没有从正常程序被篡改。另一方面,如果两个哈希值不同,则判断验证目标程序从正常程序被篡改。如上所述那样通过使用签名来校验验证目标程序是否被篡改的方法将在下文中被称为“程序签名验证”。程序未被篡改的情况称为“签名验证成功”,而程序被篡改的情况称为“签名验证不成功”。尽管在本示例性实施例中采用使用签名和公共密钥的方法作为校验程序是否被篡改的方法,但是可以采用任何其他方法来校验是否存在篡改。
ROM 112存储引导程序209和用于BIOS签名验证的公共密钥300。闪存145存储BIOS210、加载器211、内核212、本机程序213。闪存145还存储BIOS签名302、用于加载器验证的公共密钥303、加载器签名304、用于内核验证的公共密钥305、内核签名306和用于本机程序验证的公共密钥307。本机程序签名309、用于Java程序验证的公共密钥308和也存储在闪存145中。HDD 144存储Java程序214和Java程序签名310。在MFP 10出厂前预先在ROM 112和闪存145中存储公共密钥和签名。
篡改检测处理部201、202、204、205和206验证下一个程序是否被篡改,如果验证的程序没有被篡改,则启动下一个程序。根据其中程序顺序地经过篡改检测和启动的启动序列来启动MFP 10。
将参照图5至图6描述在作为本示例性实施例的特征的启动序列中执行篡改检测程序时以最大速度操作频率的方法。
图5是例示由CPU 111执行的启动序列的处理的流程图。图6是示出了由CPU 101执行的启动序列的处理的流程图。
在本示例性实施例中,在初始状态下以下述设置执行操作,然后执行图5的流程图中所示的处理。
如果开启MFP 10,则电源控制单元120执行控制以对控制器20的组件供电。如果向时钟控制单元121供电,则时钟控制单元121向时钟生成单元30输出时钟控制信号32,从而执行控制以使时钟生成单元30的振荡器或振动器生成时钟信号31。时钟控制单元121将内时钟控制信号33输出到PLL 123,从而执行控制以使PLL 123生成控制器20的期望内时钟。在电源输入时的默认状态下,PLL 123的乘法功能不运行,并绕过时钟信号31,而将其输出为内时钟。因此,内时钟的频率较低,约为正常操作期间的频率的1/10。
接下来,复位生成单元40经由复位信号41使复位控制单元122的复位无效。
如果使复位控制单元122的复位无效,则复位控制单元122首先使CPU 111、ROM112和系统总线109的复位无效。此时,CPU 101的复位仍然保持无效。此外,CPU 111的复位向量是ROM 112的地址。具体地,如果使CPU 111的复位无效,则CPU 111执行ROM 112中存储的程序。CPU 101的复位向量是闪存145的地址。如果使CPU 101的复位无效,则CPU 101执行闪存145中存储的程序。
将参照图5描述由CPU 111执行的步骤S401至S410的启动序列。具体地,以下描述的处理由图3所示的软件模块执行并由CPU 111执行。在步骤S402、S403、S407和S408中执行启动序列的特征。具体地,在判断程序是否被篡改的处理(以下将该处理称为“篡改检测处理”)中,向篡改检测处理中所涉及的至少一个模块供应高频时钟,并且向控制器20中包括的仅仅部分模块供电。篡改检测处理中涉及的模块示例包括CPU 111和系统总线109。在篡改检测处理(图5)之后,向控制器20中包括的所有模块供电,并向至少一个模块供应低频时钟。例如,时钟控制单元121控制PLL 123,使得从CPU 111开始从ROM 112读取BIOS 210的时间点到至少是CPU 111完成读取BIOS 210的时间点的期间向CPU 111和系统总线109供应高频时钟。此外,时钟控制单元121控制PLL 123,使得在CPU 111执行由BIOS 210执行的篡改检测处理之后,向CPU 111和系统总线109供应低频时钟。
在步骤S401中,如果使CPU 111的复位无效,则CPU 111经由系统总线109读取ROM112中存储的引导程序209,并执行读取的引导程序209。
在步骤S402中,CPU 111根据引导程序209执行电源控制(电力控制)。在步骤S402中,CPU 111以仅向控制器20中包括的需要执行篡改检测的部分模块供电的方式执行控制。在本示例性实施例中,至少向篡改检测处理中所需的模块供电,例如时钟控制单元121、复位控制单元122、PLL 123和电源控制单元120。还向CPU 101、RAM 103、CPU 111、ROM 112、RAM 113、HDD控制单元134、闪存控制单元135、闪存145和外部端口控制单元137供电。不向图2中以灰色显示的模块供电。
在步骤S403中,CPU 111根据引导程序209执行以下所述的时钟控制。在控制器20的启动完成之后,控制器20中包括的各模块的操作频率根据MFP 10的产品规格变化。然而,为了减少启动时间,在执行篡改检测处理的时候最好将向篡改检测处理中涉及的模块(例如,CPU 111和系统总线109)供应的时钟频率设置为高频率。
因此,在本示例性实施例中,时钟控制单元121使用时钟控制信号32指示时钟生成单元30供应具有高频率的时钟信号31。在外部时钟改变的情况下,需要等待直到晶体振动器和晶体振荡器变得稳定为止。
时钟控制单元121使用内时钟控制信号33控制PLL 123,以便将向控制器20中包括的必要模块供应的内时钟的频率设置为高频率。这使得CPU 111、系统总线109和闪存控制单元135能够高速执行处理。
时钟控制单元121执行下述处理以改变内时钟的频率。具体地,时钟控制单元121执行控制以临时门控来自PLL 123的时钟,切换到绕过了PLL 123的外部时钟,然后在由PLL123生成的内时钟变得稳定之后向各模块供应用于高速操作的内时钟。由于用于切换内时钟的控制也停止了向CPU 111的时钟供应,因此使用时钟控制单元121中设置的硬件定序器来执行该控制。
时钟控制单元121对将要供应到CPU 101、RAM 103、CPU 111、ROM 112、RAM 113、系统总线109、HDD控制单元134、闪存控制单元135和闪存145的时钟频率进行设置。设置的时钟频率中的各个都高于下述步骤S407中设置的频率。针对要向其供应时钟的各模块,可以差异化地设置要供应的各时钟的频率。例如,可以供应不同频率的时钟,比如,向CPU 111供应150MHz,向系统总线109供应600MHz。这些时钟使执行下述处理所需的时间最小化。尤其,要从闪存145中读取的BIOS 210、加载器211和内核212的数据量很大,从而用于篡改检测处理的读取或加密/解密处理可能会明显地影响启动时间。因此,可以通过使系统总线109的操作频率以及闪存控制单元135和CPU 111的操作频率最大化来减少启动时间。
在步骤S404中,CPU 111使基于引导程序209的复位无效。CPU 111使检测处理中所需的模块的复位无效。具体地,使RAM 113、HDD控制单元134、闪存控制单元135和闪存145的复位无效。
在步骤S405中,CPU 111基于引导程序209验证BIOS 210的签名。引导程序209中包括的BIOS篡改检测处理部201从闪存145中读取BIOS 210和BIOS签名302,并将BIOS 210和BIOS签名302经由系统总线109写入RAM 113中。接下来,BIOS篡改检测处理部201使用将用于BIOS签名验证的公共密钥300来验证BIOS签名302。
在步骤S406中,CPU 111判断BIOS 210的签名验证是否成功。作为签名验证的结果,如果BIOS 210没有被篡改(如果哈希值和签名的值匹配),则CPU 111判断为签名验证成功(步骤S406为“是”),并且处理进入步骤S407。另一方面,如果BIOS 210被篡改(如果哈希值和签名的值不匹配),则CPU 111判断签名验证不成功(步骤S406中为“否”),并且处理进入步骤S410。
在步骤S407中,CPU 111控制时钟控制单元121,以将由PLL 123供应的时钟的频率从在步骤S403中设置的高频率变为与MFP 10的产品规格相对应的较低的操作频率。针对要向其供应时钟的各模块,可以差异化地设置要供应的各时钟的频率。例如,可以向CPU 111供应100MHz时钟,向系统总线109供应400MHz时钟。改变操作频率的方法与上述步骤S403中的方法相似,因此省略其的描述。
在步骤S408中,CPU 111控制电源控制单元120,以便向控制器20中包括的所有模块供电。
在步骤S409中,CPU 111控制复位控制单元122以使CPU 101和RAM 103的复位无效,并且引导程序209的处理结束。然后,启动序列进入到下面描述的步骤S501。具体地,CPU101执行BIOS 210,并启动BIOS 210。
在步骤S410中,BIOS篡改检测处理部201(CPU 111)控制外部端口控制单元137点亮LED 147,以通知步骤S406中签名验证不成功,并且引导程序209的处理结束。
可以使用与下述要由CPU 101执行的程序相对应的BIOS 210或内核212来执行步骤S407中的控制。通过这种方式,使用高速操作频率操作CPU 101的启动序列,并进一步减少了启动时间。由于某些产品规格具有电源容量和热容量,因此在保证高速操作的频率范围内执行时钟控制和电源控制。
CPU 101执行上述序列,从而执行未被篡改的BIOS 210。
下面将参考图6在步骤S501至S510中描述由CPU 101执行的启动序列。下述处理由图3所示的软件模块执行并由CPU 101执行。下述判断是否在程序(例如,加载器211、内核212、本机程序213和Java程序214)中检测到篡改的方法仅仅是示例,而且可以使用用于检测程序中的篡改的其他方法。
在步骤S501中,如果经由系统总线109从闪存145启动BIOS 210,则CPU 101执行各种类型的初始化处理。此时,BIOS 210中包括的加载器篡改检测处理部202从闪存145中读取加载程序211、用于内核验证的公共密钥305和加载器签名304,并将加载程序211、用于内核验证的公共密钥305以及加载器签名304写入RAM 103。在这里的初始化序列中,例如,初始化HDD控制单元134以便能够访问HDD 144。
在步骤S502中,加载器篡改检测处理部202使用用于加载器验证的公共密钥303和加载器签名304验证加载器211的签名,并判断签名验证是否成功。如果签名验证不成功(步骤S502中为“否”),然后在步骤S510中,加载器篡改检测处理部202初始化面板控制单元133,并在操作面板143上显示错误消息,并且处理结束。另一方面,如果签名验证成功(步骤S502中为“是”),则加载器篡改检测处理部202结束处理,并且BIOS 210启动已经写入RAM103的加载器211。
在步骤S503中,如果启动加载器211,则加载器211执行各种类型的初始化处理。在这里的初始化中,例如,初始化面板控制单元133并且在操作面板143上显示启动画面。此外,加载器211中包括的内核篡改检测处理部204从闪存145读出内核212、用于本机程序验证的公共密钥307和内核验证306。内核篡改检测处理部204将内核212、用于本机程序验证的公共密钥307和内核验证306写入RAM 103。
在步骤S504中,内核篡改检测处理部204使用用于内核验证的公共密钥305和内核签名306来验证内核212的签名,并判断签名验证是否成功。如果签名验证不成功(步骤S504中为“否”),则在步骤S510中,内核篡改检测处理部204在操作面板143上显示错误消息,并且处理结束。另一方面,如果签名验证成功(步骤S504中为“是”),则内核篡改检测处理部204结束处理,并且加载器211启动已经写入RAM 103的内核212。
在步骤S505中,如果启动内核212,则内核212执行各种类型的初始化处理。在这里的初始化中,例如,初始化网络I/F控制单元136以使得能够与网络146通信。接下来,内核212中包括的本机程序篡改检测处理部205从闪存145读取本机程序213、针对用于Java程序214的Java程序验证的公共密钥307,以及本机程序签名309,并将本机程序213、针对用于Java程序214的Java程序验证的公共密钥307,以及本机程序签名309写入RAM 103。
在步骤S506中,本机程序篡改检测处理部205使用用于验证的公共密钥307和本机程序签名309验证本地程序213的签名,并判断签名验证是否成功。如果签名验证不成功(步骤S506中为“否”),则在步骤S510中,本机程序篡改检测处理部205在操作面板143上显示错误消息,并且处理结束。另一方面,如果签名验证成功(步骤S506中为“是”),则本机程序篡改检测处理部205结束处理并启动本机程序213。
在步骤S507中,如果启动本地程序213中包括的执行篡改检测处理的Java程序篡改检测处理部206,则Java程序篡改检测处理部206从HDD 144读取Java程序214和Java程序签名310,并将Java程序214和Java程序签名310写入RAM 103。
在步骤S508中,Java程序篡改检测处理部206使用用于Java程序验证的公共密钥308和Java程序签名310验证Java程序214的签名,并判断签名验证是否成功。如果签名验证不成功(步骤S508中为“否”),则在步骤S510中,Java程序篡改检测处理部206在操作面板143上显示错误消息,并且处理结束。另一方面,如果签名验证成功(步骤S508中为“是”),则Java程序篡改检测处理部206结束处理。在步骤S509中,Java程序篡改检测处理部206启动Java程序214。
在步骤S510中的处理在操作面板143上显示错误消息时,可以如步骤S410那样通过控制外部端口控制单元137点亮LED 147来代替显示错误消息。或者,在点亮LED 147的同时在操作面板143上显示错误消息。
如上所述,根据第一示例性实施例,引导程序209高速执行用于检测BIOS 210中的篡改的处理,从而减少启动时间。
在本示例性实施例中,在引导程序209根据MFP 10的产品规格执行从最大频率变为正常操作频率的处理的同时执行时钟控制。用于执行时钟控制的程序并不限于本示例性实施例中的那些,BIOS 210或内核212也可以执行时钟控制。
尽管在本示例性实施例中将所有公共密钥描述为不同的密钥,但是公共密钥可以包括相同的公共密钥。除引导程序209以外的程序的存储位置不受限制,并且可以是其他存储介质。此外,程序的存储位置可以与上述的存储位置不同。加载器211可以存储在例如ROM112中。
将描述第二示例性实施例。在第一示例性实施例中,使用单个大规模集成电路(LSI)来配置控制器20。在根据第二示例性实施例的方法中,使用在启动时执行篡改检测的专用芯片。将仅描述与第一示例性实施例的不同之处。
图7例示了根据本示例性实施例的MFP 10的硬件块配置。与第一示例性实施例的不同之处在于,篡改检测控制器50是集成电路(IC)。篡改检测控制器50包括CPU 501、ROM502、RAM 503、LED 148和系统总线509,它们分别对应于根据第一示例性实施例的控制器20中包括CPU 111、ROM 112、RAM 113、LED 147和系统总线109。篡改检测控制器50还包括电源控制单元520、时钟控制单元521、复位控制单元522、外部端口控制单元504和闪存控制单元505。
将用于控制时钟生成单元30的时钟控制信号32和用于使控制器20的复位无效的控制器复位信号42连接至篡改检测控制器50。还将篡改检测控制器50与闪存145和LED 148连接。控制器20和篡改检测控制器50不能同时访问闪存145,从而开关149执行访问控制。具体地,在控制器20访问闪存145时,开关149禁止篡改检测控制器50访问闪存145。在篡改检测控制器50访问闪存145时,开关149禁止控制器20访问闪存145。
在本示例性实施例中,在下述初始状态中的设置下执行操作。
如果开启MFP 10,则电源控制单元520进行控制,从而向时钟控制单元521、复位控制单元522、CPU 501、ROM 502和RAM 503供电。复位生成单元40经由复位信号41使篡改检测控制器50的复位无效。如果向时钟控制单元521供电,则时钟控制单元521进行控制,以使得MFP 10中包括的时钟生成单元30的振荡器或振动器以及控制器20(未示出)中包括的PLL123各生成预定的时钟。如果使篡改检测控制器50的复位无效,则复位控制单元522使CPU501的复位无效。CPU 501的复位向量被设置为ROM 502的地址,如果使CPU 501的复位无效,则CPU 501首先执行ROM 502中存储的程序。同时,如果通过控制器复位信号42使控制器20的复位无效,则复位控制单元122使CPU 101的复位无效。如果将CPU 101的复位向量设置为闪存145的地址,则CPU 101在复位被无效后首先执行闪存145中存储的程序。
图8示出了使用配置为执行篡改检测的专用芯片的启动序列。在下文的描述中,CPU 501执行步骤S701至S710。由于除了步骤S709以外的步骤与第一示例性实施例中的步骤相似,因此省略其描述。具体地,步骤S701至S708和S710分别与步骤S401至S408和S410相似。在步骤S401至S410中作为控制器20中包括的模块的CPU 111、ROM 112和RAM 113与作为篡改检测控制器50中包括的模块的CPU 501、ROM 502和RAM 503相对应。闪存控制单元135、外部端口控制单元137和系统总线109分别对应于闪存控制单元505、外部端口控制单元504和系统总线509。电源控制单元120、时钟控制单元121和复位控制单元122分别对应于电源控制单元520、时钟控制单元521和复位控制单元522。
在步骤S709中,CPU 501控制复位控制单元522,从而针对控制器20使控制器复位信号42的复位无效,并且引导程序209的处理结束。
如上所述,根据第二示例性实施例,来自步骤S701到S710的启动序列使得能够通过引导程序209在BIOS 210上高速执行篡改检测处理,从而减少启动时间。
其他实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读取并执行程序的方法。
虽然参照示例性实施例描述了本发明,但是应当理解,本发明并不限于所公开的示例性实施例。应当对权利要求的范围赋予最宽的解释,以使其涵盖所有这些变型例以及等同的结构及功能。

Claims (10)

1.一种信息处理装置,所述信息处理装置包括:
存储第一程序和第二程序的存储器;
系统总线;
第一控制单元,其被配置为经由所述系统总线读取所述存储器中存储的所述第一程序,并基于读取的所述第一程序判断所述存储器中存储的第二程序是否被篡改;
第二控制单元,其被配置为经由所述系统总线从所述存储器读取判断为未被篡改的第二程序,并执行所述第二程序;以及
时钟控制单元,其被配置为控制具有不同频率的时钟的供应,
其中,在所述第一控制单元判断所述第二程序是否被篡改之前,所述时钟控制单元向所述系统总线供应第一频率的时钟,以及向所述第一控制单元供应低于所述第一频率的第二频率的时钟,以及
其中,在所述第一控制单元判断所述第二程序未被篡改之后,所述时钟控制单元将向所述系统总线供应的时钟的频率从第一频率改变为低于第一频率的第三频率,以及将向所述第一控制单元供应的时钟的频率从第二频率改变为低于第二频率的第四频率。
2.根据权利要求1所述的信息处理装置,所述信息处理装置还包括时钟供应单元,所述时钟供应单元被配置为向所述系统总线和所述第一控制单元的至少一个模块供应所述时钟,
其中,所述时钟控制单元将要通过所述时钟供应单元供应的时钟的频率设置到所述时钟供应单元,并控制所述时钟的频率。
3.根据权利要求1所述的信息处理装置,所述信息处理装置还包括电力控制单元,所述电力控制单元被配置为控制对所述第一控制单元和所述第二控制单元的供电,
其中,从所述第一控制单元开始读取所述第一程序的时间点到所述判断完成的时间点的期间,所述电力控制单元向所述第一控制单元供电,不向所述第二控制单元供电,而在所述判断完成后,所述电力控制单元向所述第一控制单元和所述第二控制单元供电。
4.根据权利要求1所述的信息处理装置,
其中,所述存储器存储使用私人密钥加密的第二程序的签名,
其中所述第一控制单元包括:
计算单元,其被配置为计算经由所述系统总线从所述存储器读取的所述第二程序的签名,
读取单元,其被配置为从所述存储器读取加密的签名,以及
解密单元,其被配置为使用公共密钥解密所读取的加密签名,以及
其中所述第一控制单元通过比较计算的签名和解密的签名判断所述存储器中存储的第二程序是否被篡改。
5.根据权利要求4所述的信息处理装置,其中,所述签名是所述第二程序的哈希值。
6.一种信息处理装置的控制方法,所述信息处理装置包括:
存储第一程序和第二程序的存储器,
系统总线,
第一控制单元,其被配置为经由所述系统总线读取所述存储器中存储的所述第一程序,并基于读取的所述第一程序判断所述存储器中存储的第二程序是否被篡改,以及
第二控制单元,其被配置为经由所述系统总线从所述存储器读取判断为未被篡改的第二程序,并执行所述第二程序,
所述方法包括向所述系统总线以及所述第一控制单元供应具有不同频率的时钟,
其中,在所述第一控制单元判断所述第二程序是否被篡改之前,向所述系统总线供应第一频率的时钟,以及向所述第一控制单元供应低于所述第一频率的第二频率的时钟,以及
其中,在所述第一控制单元判断所述第二程序未被篡改之后,将向所述系统总线供应的时钟的频率从第一频率改变为低于第一频率的第三频率,以及将向所述第一控制单元供应的时钟的频率从第二频率改变为低于第二频率的第四频率。
7.根据权利要求6所述的方法,
其中,所述信息处理装置还包括时钟供应单元,其被配置为生成要向所述系统总线和所述第一控制单元供应的时钟,以及
其中,所述控制设置将要向所述时钟供应单元供应的时钟的频率,并控制所述频率。
8.根据权利要求6所述的方法,所述方法还包括电力控制以控制向所述第一控制单元和所述第二控制单元供电,
其中,从所述第一控制单元开始读取所述第一程序的时间点到所述判断完成的时间点的期间,所述控制向所述第一控制单元供电,不向所述第二控制单元供电,在所述判断完成之后,所述控制向所述第一控制单元和所述第二控制单元供电。
9.根据权利要求6所述的方法,
其中,所述存储器存储使用私人密钥加密的第二程序的签名,
其中,通过所述第一控制单元进行的判断包括:
计算经由所述系统总线从所述存储器读取的第二程序的签名,
从所述存储器读取加密的签名,以及
使用公共密钥解密所读取的加密签名,以及
其中,所述第一控制单元通过比较计算的签名和解密的签名判断所述存储器中存储的第二程序是否被篡改。
10.根据权利要求9所述的方法,其中,所述签名是所述第二程序的哈希值。
CN201911036270.7A 2018-10-31 2019-10-29 信息处理装置及其控制方法 Active CN111125686B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-205876 2018-10-31
JP2018205876A JP7187267B2 (ja) 2018-10-31 2018-10-31 情報処理装置及びその制御方法

Publications (2)

Publication Number Publication Date
CN111125686A CN111125686A (zh) 2020-05-08
CN111125686B true CN111125686B (zh) 2023-12-08

Family

ID=70328742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911036270.7A Active CN111125686B (zh) 2018-10-31 2019-10-29 信息处理装置及其控制方法

Country Status (4)

Country Link
US (1) US20200134232A1 (zh)
JP (1) JP7187267B2 (zh)
KR (1) KR102547034B1 (zh)
CN (1) CN111125686B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
KR102395258B1 (ko) * 2020-10-15 2022-05-10 한국전자통신연구원 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312056A (ja) * 2001-04-16 2002-10-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2018032313A (ja) * 2016-08-26 2018-03-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4118789A (en) * 1977-06-06 1978-10-03 Allen-Bradley Company Program protection module for programmable controller
US7370189B2 (en) 2004-09-30 2008-05-06 Intel Corporation Method and apparatus for establishing safe processor operating points in connection with a secure boot
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8627133B2 (en) 2010-12-20 2014-01-07 Red Hat Israel, Ltd. Virtual machine boot speed-up by clock acceleration
JP2015064676A (ja) 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
US9654499B2 (en) * 2014-06-20 2017-05-16 Vencore Labs, Inc. System and Method for mitigating TOC/TOU attacks in a cloud computing enviroment
US9490826B1 (en) * 2015-08-19 2016-11-08 Qualcomm Incorporated Methods and apparatus for synchronizing frequency dividers using a pulse swallowing technique
US10348281B1 (en) * 2016-09-06 2019-07-09 Ampere Computing Llc Clock control based on voltage associated with a microprocessor
KR20180043617A (ko) * 2016-10-20 2018-04-30 삼성전자주식회사 피드백 제공 방법 및 이를 지원하는 전자 장치
WO2018226550A1 (en) * 2017-06-06 2018-12-13 Walmart Apollo, Llc Rfid tag tracking systems and methods in identifying suspicious activities
US11144605B2 (en) * 2018-10-12 2021-10-12 Verizon Media Inc. Transmitting content items using search history profiles

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312056A (ja) * 2001-04-16 2002-10-25 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2018032313A (ja) * 2016-08-26 2018-03-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Also Published As

Publication number Publication date
KR20200049658A (ko) 2020-05-08
JP2020071723A (ja) 2020-05-07
US20200134232A1 (en) 2020-04-30
JP7187267B2 (ja) 2022-12-12
CN111125686A (zh) 2020-05-08
KR102547034B1 (ko) 2023-06-26

Similar Documents

Publication Publication Date Title
EP2741228B1 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
CN111125686B (zh) 信息处理装置及其控制方法
US11354416B2 (en) Secure boot sequencer and secure boot device
US9881161B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
JP6538610B2 (ja) 外部不揮発性メモリに間接アクセスするセキュリティデバイス
EP1953666A2 (en) Method of booting electronic device and method of authenticating boot of electronic device
WO2022156513A1 (zh) 一种服务器操作系统引导方法、装置、设备及介质
US11914714B2 (en) Information processing apparatus and start-up method of the same
JP7263101B2 (ja) 情報処理装置、データ検証方法
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP2020091698A (ja) 情報処理装置及びその制御方法
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP7176379B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2018007215A (ja) 情報処理装置とその制御方法、及びプログラム

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