CN115114609A - 信息处理装置、程序的验证方法、存储介质和图像处理装置 - Google Patents

信息处理装置、程序的验证方法、存储介质和图像处理装置 Download PDF

Info

Publication number
CN115114609A
CN115114609A CN202210274979.6A CN202210274979A CN115114609A CN 115114609 A CN115114609 A CN 115114609A CN 202210274979 A CN202210274979 A CN 202210274979A CN 115114609 A CN115114609 A CN 115114609A
Authority
CN
China
Prior art keywords
program
stored
positive solution
processing apparatus
solution value
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.)
Pending
Application number
CN202210274979.6A
Other languages
English (en)
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 CN115114609A publication Critical patent/CN115114609A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/0097Storage of instructions or parameters, e.g. customised instructions or different parameters for different user IDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种信息处理装置、程序的验证方法、存储介质和图像处理装置。该信息处理装置被构造为参考预先存储在第一存储部中的正解值来验证存储在第一存储部中的本地程序;并且当在与第一存储部不同的第二存储部中存储有追加程序时,在第二存储部中存储对应于追加程序的正解值。除了验证存储在第一存储部中的本地程序之外,该信息处理装置还参考存储在第二存储部中的正解值来验证追加程序。

Description

信息处理装置、程序的验证方法、存储介质和图像处理装置
技术领域
本发明涉及信息处理装置、程序的验证方法、计算机可读存储介质和图像处理装置。
背景技术
涉及通过利用软件的漏洞来篡改软件以滥用计算机的攻击已经成为一个问题。作为对付这种攻击的对策,已知通过预先存储哈希值和签名作为程序的正解值(correctvalue)来进行篡改检测。作为对付存储器篡改本身的保护,已知一种方法,该方法涉及确认对试图访问存储器的指令没有篡改,并且,如果确认,则允许该指令访问存储器(例如,日本特开第2011-86313号公报)。
对于具有有限存储区域并且允许稍后在其中追加地安装程序的信息处理装置,难以在该装置中预先存储用于对稍后安装的程序的篡改检测的正解值。日本特开第2011-86313号公报中公开的方法不能防止在断电状态下篡改存储区域的攻击,并且存在不能通过该方法保护的情况。
发明内容
本发明即使在难以预先存储用于篡改检测的正解值的环境中,也对稍后安装的程序进行篡改检测。
根据本发明的一个方面,提供一种信息处理装置,该信息处理装置包括:
验证部,其用于参考预先存储在第一存储部中的正解值来验证存储在第一存储部中的本地程序;以及
追加部,其用于当在与第一存储部不同的第二存储部中存储有追加程序时,在第二存储部中追加地存储对应于追加程序的正解值,其中
除了验证存储在第一存储部中的本地程序之外,验证部还参考存储在第二存储部中的正解值来验证追加程序。
根据本发明的另一方面,提供了一种非暂态计算机可读存储介质,其存储程序,其中,该程序被构造为使计算机:
参考预先存储在第一存储单元中的正解值来验证存储在第一存储单元中的本地程序;以及
当在与第一存储单元不同的第二存储单元中存储有追加程序时,在第二存储单元中追加地存储对应于追加程序的正解值,其中
该程序使计算机:除了验证存储在第一存储单元中的本地程序之外,还参考存储在第二存储单元中的正解值来验证追加程序。
根据本发明的另一个方面,提供了一种由信息处理装置执行的程序的验证方法,该方法包括:
信息处理装置参考预先存储在第一存储单元中的正解值来验证存储在第一存储单元中的本地程序;以及,
当在与第一存储单元不同的第二存储单元中存储有追加程序时,信息处理装置在第二存储单元中追加地存储对应于追加程序的正解值,其中
除了验证存储在第一存储单元中的本地程序之外,信息处理装置还参考存储在第二存储单元中的正解值来验证追加程序。
根据本发明的又一个方面,提供一种图像处理装置,该图像处理装置包括:
验证部部,其用于参考预先存储在第一存储部中的正解值来验证存储在第一存储部中的本地程序;以及
删除加载部,其用于当存储在不同于第一存储部的第二存储部中的可执行追加程序被执行时,删除加载在第二存储部中的所述可执行追加程序,然后重新加载并执行所述可执行追加程序。
根据本发明,即使在难以预先存储用于篡改检测的正解值的环境中,也可以对稍后安装的程序进行篡改检测。
根据下面参照附图对示例性实施例的描述,本发明的另外的特征将变得清楚。
附图说明
图1是多功能外围设备的硬件构造图。
图2是多功能外围设备的软件构造图。
图3A、图3B、图3C、图3D、图3E和图3F是示出在激活期间进行篡改检测时由多功能外围设备执行的处理的流程图。
图4A是示出Java(注册商标)程序和签名的示意图。
图4B是示出Java(注册商标)程序和签名的示意图。
具体实施方式
在下文中,将参照附图详细地描述实施例。注意,以下实施例不旨在限制要求保护的发明范围。在实施例中描述了多个特征,但是并不限制发明需要所有这些特征,并且可以适当地组合多个这样的特征。此外,在附图中,相同的附图标记被给予相同或相似的构造,并且省略其赘述。
将描述作为根据实施例的信息处理装置的示例的多功能外围设备 (数字多功能外围设备/MFP/多功能外围设备)。然而,本发明的适用范围不限于多功能外围设备,并且本发明可以应用于任何信息处理装置。
第一实施例
硬件
图1是示出根据第一实施例的多功能外围设备100的硬件构造的框图。
CPU(或者也称为处理器)101执行多功能外围设备100的软件程序,并进行装置的整体控制。CPU 101在本示例中被视为单个处理器,但也可以由多个处理器形成。ROM是只读存储器,存储多功能外围设备100 的引导程序、固定参数等。RAM 103是随机存取存储器,并且当CPU 101 控制多功能外围设备100时,用于例如存储程序和临时数据。HDD 104 是硬盘驱动器,存储稍后安装的程序和各种类型的数据。闪速存储器114 存储多功能外围设备100的操作所需的最少程序,其包括BIOS、加载器和内核。另外,闪速存储器114保存用于篡改检测的正解值列表和正解值列表的签名。闪速存储器114可以通过诸如串行ATA(SATA)的接口连接,并且可以是固定的,但也可以是可移除的。例如,在闪速存储器 114中,程序和数据可以以等同于硬盘的形式作为文件存储。
网络I/F控制单元105控制向网络113发送数据/从其接收数据。扫描器I/F控制单元106控制由扫描器111进行的文档读取。打印机I/F控制单元107控制由打印机110进行的打印处理等。面板控制单元108控制触摸面板型的操作面板112,并且控制各种类型的信息的显示以及来自用户的指令的输入。总线109将CPU 101、ROM 102、RAM 103、HDD 104、网络I/F控制单元105、扫描器I/F控制单元106、打印机I/F控制单元107、面板控制单元108和闪速存储器114彼此连接。来自CPU 101的控制信号和装置之间的数据信号经由总线109发送和接收。
软件
图2是示出根据第一实施例的多功能外围设备100的软件模块的框图。所有这些软件模块都由CPU 101处理。
通信管理单元207控制连接到网络113的网络I/F控制设备105,以经由网络113将数据发送到外部/从外部接收数据。
UI控制单元203经由面板控制单元108接收对操作面板112的输入,并根据该输入进行处理或将画面输出到操作面板112。
引导程序200被存储在ROM 102中,并且当多功能外围设备100通电时首先由CPU101执行。在激活处理期间,引导程序200使用BIOS 篡改检测处理单元206对闪速存储器114中存储的BIOS 201进行篡改检测。
BIOS 201是在完成引导程序200的处理之后执行的程序,并且从闪速存储器114被读取到RAM 103中以供执行。在激活处理期间,BIOS 201 使用加载器篡改检测处理单元202对存储在闪速存储器114中的加载器210进行篡改检测。
加载器210是在完成BIOS 201的处理之后执行的程序,并且从闪速存储器114被读取到RAM 103中以供执行。在激活处理期间,加载器 210使用内核篡改检测处理单元211对闪速存储器114中存储的内核212 进行篡改检测处理。
内核212是在完成加载器210的处理之后执行的程序,并且从闪速存储器114被读取到RAM 103中以供执行。内核212进行与激活相关的处理,并且还包括对本地程序213进行篡改检测的本地程序篡改检测处理单元205。本地程序篡改检测处理单元也被称为程序篡改检测处理单元。
本地程序213由CPU 101执行,并且包括提供多功能外围设备100 的功能的多个程序。其示例包括用于控制扫描器I/F控制单元106和打印机I/F控制单元107的程序以及激活程序。激活程序由内核212从本地程序调用,并进行激活处理。本地程序213可以存储在闪速存储器114 中,并被读入到RAM 103中以供执行。此外,本地程序213可以经由通信来提供,并且可以被追加到HDD 104,或者换句话说,被追加地安装。追加地安装的程序也称为追加程序。可以从例如Java(注册商标,在下文中省略)程序214使用由本地程序提供的功能。Java程序管理单元204 作为本地程序213之一被包括在内。然而,在本示例中,Java程序管理单元204在装运时被安装在闪速存储器114中,而不是被追加地安装。本地程序也称为本地应用。本地程序(或本地应用)是使用可在包括处理器和操作系统的特定环境中执行的本地代码来编码的程序。因此,本地程序213在多功能外围设备100中执行,并且与其他环境不兼容。
Java程序214由CPU 101执行,并在装运后由用户稍后追加和使用,并存储在HDD104中。例如,装运后可以经由通信来提供Java程序214。例如,Java程序也可以被称为应用或捆绑软件。为了安装Java程序214, Java程序214需要使用安装许可文件进行认证。例如,许可文件包括数字签名。在这种情况下,通过验证签名来认证许可,从而可以安装Java 程序214。
Java程序管理单元204是当用户稍后追加Java程序时使用签名来确认该Java程序是合法程序的程序,并且如果确认,则将该Java程序记录在HDD 104中。另外,Java程序管理单元204响应于来自激活程序的指令而激活该Java程序。
在激活期间由多功能外围设备进行的处理
首先,参照图3A所示的流程图,描述在没有稍后安装的Java程序 214的情况下的激活期间进行篡改检测时由多功能外围设备100进行的处理。
当多功能外围设备100通电时,存储在ROM 102中的引导程序200 以及存储在闪速存储器114中的BIOS 201、加载器210和内核212由CPU 101依次执行。
当多功能外围设备100通电时,由CPU 101执行来自ROM 102的引导程序200,引导程序200向BIOS篡改检测处理单元206发出指令以进行篡改检测处理。BIOS篡改检测处理单元206在接收到该指令时,使用存储在闪速存储器114中的BIOS 201和用于BIOS 201的签名以通过签名认证对BIOS 201进行篡改检测处理(S300)。结果,如果BIOS签名验证失败,则引导程序200在操作面板112上显示错误消息(S308)。如果签名验证成功,则引导程序200将BIOS 201从闪速存储器114读入RAM 103,并执行BIOS 201。
在激活时,BIOS 201进行各种类型的初始化处理,然后向加载器篡改检测处理单元202给出指令以进行篡改检测处理。加载器篡改检测处理单元202在接收到该指令时,使用存储在闪速存储器114中的加载器 210和用于加载器210的签名以进行签名认证(S301)。结果,如果签名验证失败,则BIOS 201在操作面板112上显示错误消息(S308)。如果签名验证成功,则BIOS 201将加载器210从闪速存储器114读入RAM 103,并执行加载器210。在激活时,加载器210进行各种类型的初始化处理,然后向内核篡改检测处理单元211给出指令以进行篡改检测处理。内核篡改检测处理单元211在接收到该指令时,使用存储在闪速存储器114中的内核212和用于内核的签名以进行签名认证(S302)。结果,如果签名验证失败,则加载器210在操作面板112上显示错误消息(S308)。如果签名验证成功,则加载器210将内核212从闪速存储器114读入RAM 103,并执行内核212。
内核212进行各种类型的初始化处理,然后向本地程序篡改检测处理单元205给出指令以进行篡改检测处理。在接收到该指令时,本地程序篡改检测处理单元205对存储在闪速存储器114中的正解值列表进行签名认证(S303)。表1是正解值列表的示意图。正解值列表是这样的列表,其中存储在闪速存储器114中的每个程序的位置与该程序的哈希值相互关联地存储。正解值列表和签名由外部信息处理装置生成,与对应的程序一起被写入闪速存储器114,并被更新。
[表1]
Figure RE-GDA0003709164030000071
作为验证的结果,如果正解值列表的签名验证失败,则本地程序篡改检测处理单元205在S308中向UI控制单元203给出指令以在操作面板112上显示错误消息。
如果正解值列表的签名验证成功,则本地程序篡改检测处理单元205 基于关于正解值列表中的程序的位置的信息来计算相关程序(例如,存储在闪速存储器114中的程序)的哈希值。这里,本地程序篡改检测处理单元205针对正解值列表中包括的所有程序计算哈希值。本地程序篡改检测处理单元205确定计算出的哈希值是否与正解值列表中存储的各对应哈希值匹配(S304),如果有任何不匹配,则本地程序篡改检测处理单元205进行S308中的处理。即,显示错误消息。
另一方面,所有程序的哈希值与正解值列表中各对应哈希值匹配,本地程序篡改检测处理单元205通知内核212签名验证成功,并且内核 212激活本地程序213(S305)。因此,作为本地程序213之一的Java程序管理单元204也被激活。
激活的Java程序管理单元204使用存储在HDD 104中的签名来验证存储在HDD 104中的各个Java程序214(S306)。如果验证失败,则Java 程序管理单元204指示UI控制单元106在操作面板112上显示错误消息 (S308)。另一方面,如果验证成功,或者换句话说,如果安装许可的认证成功,则执行验证成功的Java程序214。
稍后安装的Java程序的常规验证
接着,将参照图3B所示的流程图描述在稍后追加Java程序214时在上述多功能外围设备100中进行的常规处理。
在经由网络113从用户接收到安装Java程序的指令时,Java程序管理单元204使用签名和接收到的Java程序来验证该Java程序是否已经被篡改(S320)。这里,签名用于确定该Java程序是否合法。由多功能外围设备的供应商将该签名给予Java程序,该Java程序通过了在多功能外围设备100外部进行的测试(例如确定该程序是否为恶意的测试)。签名对应于上述安装许可。
如果Java程序已经被篡改,则Java程序管理单元204指示UI控制单元203在操作面板112上显示错误消息(S324)。如果Java程序没有被篡改,则Java程序管理单元204将该Java程序214和用于在步骤S320 中的验证的签名存储在HDD 104中(S321)。此后,Java程序管理单元 204执行Java程序214(S322)。这里,用于验证给予Java程序的签名的公钥预先保存在HDD 104中。
假定在具有这样的构造的多功能外围设备100中,在激活期间将本地程序加载并存储在HDD 104中并且当Java程序被激活时执行该本地程序的Java程序作为Java程序214被安装。在这种情况下,每当多功能外围设备100被激活时,记录在闪速存储器114中的本地程序均经受S304 中的篡改检测。然而,记录在HDD 104中的本地程序在不经受篡改检测的情况下被执行。这造成了这样的问题:可以通过篡改存储在HDD 104 中的本地程序来篡改多功能外围设备100。
在第一实施例中的稍后安装Java程序的验证
对于解决该问题的处理,首先,将参照图3C所示的流程图描述本实施例中的Java程序的安装处理。S320、S321、S322和S324中的处理操作等同于图3B中的处理操作,因此省略了其描述。在该方法中,当进行测试以确定是否向Java程序给予签名时,确定本地程序是否作为要安装的对象而被包括。如果确定包括本地程序,则将要安装的本地程序的正解值列表和该正解值列表的签名给予该Java程序。
图4A是示出不包括本地程序的Java程序和签名的示意图。另一方面,图4B是示出包括本地程序的Java程序404的示意图。其示出了在 Java程序404包括本地程序400、对应于本地程序400的正解值列表401 以及正解值列表401的签名402的状态下分发Java程序404。在这种两种情况下,将签名给予该Java程序。
在图3C中,Java程序管理单元204在S320中进行对Java程序的签名验证。被验证的对象是Java程序404。如果Java程序404包括本地程序400、正解值列表401和正解值列表401的签名402,则这些都包括在要被验证的对象中。如果签名验证成功,则在S330中确定要被安装的Java 程序中是否包括本地程序。本地程序存在与否可以通过例如在该Java程序中包括指示本地程序存在与否的信息并且测试该信息来确定。如果不包括本地程序,则执行S321中的处理。这种情况下的处理与图3B所示的相同。
另一方面,如果包括本地程序,则Java程序管理单元204在S331 中进行对与本地程序400一起包括的正解值列表401的签名验证。这里,用于验证签名402的公钥预先保存在HDD 104中。如果签名验证成功,并且确定正解值列表401正确,则Java程序管理单元204在S332中将正解值列表401和正解值列表401的签名402记录(保存)在HDD 104中。随后,Java程序管理单元204进行S321中的处理,并将Java程序404 及其签名记录在HDD 104中。
其后,在S322中的Java程序的激活处理期间,Java程序404进行用于检索其中包括的本地程序400的处理,并且以可执行方式将本地程序400记录在HDD 104中。以可执行方式记录可以包括例如将本地程序400 登记在诸如OS的执行环境中以便响应于对其的调用而被调度。以可执行方式记录也可以称为以可执行方式放置,或简称为放置。
如果在步骤S331中签名验证失败,则Java程序管理单元204进行 S324中的处理。在S324中,输出与发生的错误相对应的消息。
在激活期间根据本实施例由多功能外围设备进行的处理
将参照图3D描述在根据图3C所示的过程已经安装了Java程序404 后的多功能外围设备100的激活处理。图3D也适用于没有安装Java程序404的情况,并且包含图3A所示的过程。请注意,与图3A中所示的步骤相同的步骤以相同的附图标记表示。S300到S304的处理操作与图 3A所示的相同,因此省略了其描述。
如果在步骤S304中确定闪速存储器114中的本地程序的哈希值与对应的正解值匹配,则确定本地程序是否已安装在HDD 104中(S341)。例如,该确定可以基于正解值列表的存在与否或者正解值列表中包括的正解值的存在与否来进行。如果确定本地程序尚未安装在HDD 104中,则该过程分支到步骤S305。如果确定已安装本地程序,则本地程序篡改检测处理单元205使用HDD 104上的正解值列表401和签名402来进行正解值列表的签名验证(S342)。
如果签名验证失败,则本地程序篡改检测处理单元205认为本地程序已被篡改,并进行S308中的处理。这里,输出与发生的错误有关的错误消息。如果签名验证成功,则本地程序篡改检测处理单元205基于正解值列表401中描述的该程序的位置来计算存储在HDD104中的本地程序400的哈希值。本地程序篡改检测处理单元205确定计算的哈希值是否与正解值列表中存储的值匹配(S343),如果不匹配,则本地程序篡改检测处理单元205认为本地程序已被篡改,并进行S308中的处理。如果计算出的哈希值与存储在正解值列表中的值匹配,则本地程序篡改检测处理单元205进行步骤S305中和之后的处理操作。这些处理操作与图3A 所示的处理操作相同,因此省略了其描述。请注意,在本实施例中,闪速存储器114中的本地程序在步骤S305中被激活,并且HDD 104中的本地程序在这里没有被激活。HDD104中的本地程序响应于调用该本地程序的Java程序的激活而被激活。
如到此为止所描述的,根据第一实施例,即使在本地程序与稍后安装的Java程序一起安装的情况下,也可以对这些程序进行彻底的验证。这使得即使在稍后安装的Java程序包括本地程序并执行本地程序的构造中,也可以进行篡改检测。
已经描述了假定所安装的Java程序的数量是一个的本实施例。然而,当安装多个Java程序时,可以采用针对各个程序保存正解值列表401和签名402的构造。在这种情况下,也可以采用这样的构造,其中如果确定一些Java程序已经被篡改,则只有被篡改的Java程序不被激活。
对于在步骤S341中进行的确定,可以将没有内容的正解值列表401 和签名402预先存储在HDD 104中。在这种情况下,如果没有内容的正解值列表401和签名402存在于HDD中,则可以确定HDD中没有安装本地程序。
此外,可以采用这样的构造,其中如果在S343中哈希值不匹配,则删除与相关的本地程序一起保存在HDD 104中的Java程序。在步骤S307 中Java程序404的激活处理期间,执行如下处理:将由Java程序404使用的保存在HDD 104中的本地程序以可执行方式存储在HDD 104中。因此,如果Java程序404被删除,则将不会执行怀疑被篡改的本地程序。这允许该装置在程序没有被篡改的状态下操作。
第二实施例
在根据第一实施例的方法中,需要在多功能外围设备100外部将正解值列表401和正解值列表的签名402给予包括本地程序400的Java程序404。这造成了多功能外围设备100无法自行完成处理的问题。
在第二实施例中,多功能外围设备100针对Java程序404中包括的本地程序400自行创建正解值列表401,并自行给予该正解值列表的签名 402。将参照图3E描述该方法。请注意,与图3C的不同之处在于省略了 S331,并将S332替换为S350,因此省略了对其他步骤的描述。
如果在S330中确定包括作为要安装的对象的本地程序,则Java程序管理单元204在S350中生成对应于要安装的本地程序的正解值列表,并将该正解值列表存储在HDD 104中。接下来,Java程序管理单元204生成公钥和私钥,使用私钥根据正解值列表生成签名,并将公钥和该签名存储在HDD 104中。预先向多功能外围设备100提供用于创建公钥和私钥的库,通过提供密码和适当的ID等作为参数,可以创建公钥和私钥。
除了使用在S350中存储在HDD 104中的公钥来进行S342中的处理之外,多功能外围设备100的激活期间的处理与第一实施例的图3D中所示的处理相同。
请注意,在本示例中,即使当稍后安装的本地程序被包括在Java程序中时,本地程序的正解值列表及其数字签名也不包括在该Java程序中。因此,经受签名验证的Java程序也不包括本地程序的正解值列表及其数字签名。
如到此为止所描述的,根据第二实施例,即使在稍后安装的Java程序包括本地程序并装修该本地程序的构造中,也可以进行本地程序的篡改检测。另外,与第一实施例不同,多功能外围设备100能够自行完成处理。
第三实施例
根据第一和第二实施例的方法需要将正解值列表和该正解值列表的签名重新存储在HDD 104中,因此造成了这样的问题:这些方法不能由具有小的存储区域的装置实施。因此,在第三实施例中,将描述不使用正解值列表和该正解值列表的签名的方法。用于安装Java程序的方法与图3B所示的相同,因此省略其描述。
将参照图3F描述在多功能外围设备100的激活期间进行的处理。当多功能外围设备100通电时,存储在ROM 102中的BIOS和存储在闪速存储器114中的加载器和内核212依次经受由CPU 101进行签名验证,如果签名验证成功则被执行(S300至S302)。结合图3A描述这些步骤。
内核212进行各种类型的初始化处理,然后给予本地程序篡改检测处理单元205指令以进行篡改检测处理。在接收到该指令时,本地程序篡改检测处理单元205在S360中删除HDD 104上的所有本地程序。其后的处理操作与图3A所示的步骤S303至S308中的处理操作相同。在 S307中的Java程序404的激活处理中,执行如下处理:将包括在Java 程序中并保存在HDD 104中的本地程序以可执行方式存储在HDD 104 中。因此,即使以可执行方式存储在HDD 104中的本地程序已经被篡改,该装置也可以通过在每次激活Java程序时重写该本地程序来以该本地程序未被篡改的状态操作。
如到此为止所描述的,根据第三实施例,即使在稍后安装的Java程序包括本地程序并且该本地程序也在稍后安装的构造中,也可以进行本地程序的篡改检测。此外,可以节省存储区域。
其他实施例
本发明的(多个)实施例也可以通过如下实现:一种系统或装置的计算机,该系统或装置读出并执行在存储介质(其也可被更充分地称为非暂时性计算机可读存储介质)上记录的计算机可执行指令(例如,一个或多个程序),以执行上述(多个)实施例中的一个或多个的功能,并且/或者,该系统或装置包括用于执行上述(多个)实施例中的一个或多个的功能的一个或多个电路(例如,专用集成电路(ASIC));以及由该系统或者装置的计算机执行的方法,例如,从存储介质读出并执行计算机可执行指令,以执行上述(多个)实施例中的一个或多个的功能,并且/或者,控制所述一个或多个电路以执行上述(多个)实施例中的一个或多个的功能。该计算机可以包括一个或更多处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括分开的计算机或分开的处理器的网络,以读出并执行所述计算机可执行指令。所述计算机可执行指令可以例如从网络或存储介质被提供给计算机。所述存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD) 或蓝光光盘(BD)TM)、闪速存储器设备以及存储卡等中的一者或更多。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU) 读出并执行程序的方法。
实施例描述了本发明,但是,应该理解,本发明不限于公开的示例性实施例。下述权利要求的范围被赋予最宽的解释,以便涵盖所有这样的修改以及等同的结构和功能。

Claims (11)

1.一种信息处理装置,其包括:
验证部,其用于参考预先存储在第一存储部中的正解值来验证存储在第一存储部中的本地程序;以及
追加部,其用于当在与第一存储部不同的第二存储部中存储有追加程序时,在第二存储部中追加地存储对应于追加程序的正解值,其中
除了验证存储在第一存储部中的本地程序之外,验证部还参考存储在第二存储部中的正解值来验证追加程序。
2.根据权利要求1所述的信息处理装置,
其中,在执行追加程序时对该追加程序进行验证。
3.根据权利要求1或2所述的信息处理装置,
其中,追加程序和对应于所述追加程序的正解值被包括在使用追加程序的应用中,并与所述应用一起存储在第二存储部中。
4.根据权利要求3所述的信息处理装置,
其中,正解值为追加程序的哈希值。
5.根据权利要求3所述的信息处理装置,
其中,对应于所述应用的数字签名还与所述应用一起存储在第二存储部中,
如果所述应用中包括正解值,则在所述应用中还包括对应于所述正解值的数字签名,并且,
当所述应用存储在第二存储部中时,验证对应于所述应用的数字签名和对应于正解值的数字签名。
6.根据权利要求1或2所述的信息处理装置,所述信息处理装置还包括:生成部,其用于生成对应于追加程序的正解值,其中
追加程序被包括在使用所述追加程序的应用中,并且所述追加程序和正解值与所述应用一起存储在第二存储部中。
7.根据权利要求6所述的信息处理装置,所述信息处理装置还包括:生成部,其用于生成所生成的正解值的数字签名,其中
对应于所述应用的数字签名还与所述应用一起存储在第二存储部中,并且,
当应用存储在第二存储部中时,验证对应于应用的数字签名和对应于正解值的数字签名。
8.根据权利要求5所述的信息处理装置,
其中,同样在执行追加程序时,还验证对应于应用的数字签名和对应于正解值的数字签名。
9.一种非暂态计算机可读存储介质,其存储程序,其中,所述程序被构造为使计算机:
参考预先存储在第一存储单元中的正解值来验证存储在第一存储单元中的本地程序,以及,
当在与第一存储单元不同的第二存储单元中存储有追加程序时,在第二存储单元中追加地存储对应于追加程序的正解值,其中
所述程序使计算机:除了验证存储在第一存储单元中的本地程序之外,还参考存储在第二存储单元中的正解值来验证追加程序。
10.一种由信息处理装置执行的程序的验证方法,所述方法包括:
信息处理装置参考预先存储在第一存储单元中的正解值来验证存储在第一存储单元中的本地程序;以及,
当在与第一存储单元不同的第二存储单元中存储有追加程序时,信息处理装置在第二存储单元中追加地存储对应于追加程序的正解值,其中
除了验证存储在第一存储单元中的本地程序之外,信息处理装置还参考存储在第二存储单元中的正解值来验证追加程序。
11.一种图像处理装置,包括:
验证部,其用于参考预先存储在第一存储部中的正解值来验证存储在第一存储部中的本地程序;以及
删除加载部,其用于当存储在不同于第一存储部的第二存储部中的可执行追加程序被执行时,删除加载在第二存储部中的所述可执行追加程序,然后重新加载并执行所述可执行追加程序。
CN202210274979.6A 2021-03-23 2022-03-21 信息处理装置、程序的验证方法、存储介质和图像处理装置 Pending CN115114609A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-049149 2021-03-23
JP2021049149A JP2022147763A (ja) 2021-03-23 2021-03-23 情報処理装置及びプログラムの検証方法とプログラム

Publications (1)

Publication Number Publication Date
CN115114609A true CN115114609A (zh) 2022-09-27

Family

ID=83324873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210274979.6A Pending CN115114609A (zh) 2021-03-23 2022-03-21 信息处理装置、程序的验证方法、存储介质和图像处理装置

Country Status (3)

Country Link
US (1) US20220309145A1 (zh)
JP (1) JP2022147763A (zh)
CN (1) CN115114609A (zh)

Also Published As

Publication number Publication date
US20220309145A1 (en) 2022-09-29
JP2022147763A (ja) 2022-10-06

Similar Documents

Publication Publication Date Title
CN109684849B (zh) 信息处理装置、其控制方法和存储介质
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US7788730B2 (en) Secure bytecode instrumentation facility
US20130160126A1 (en) Malware remediation system and method for modern applications
CN102279760A (zh) 利用初始保护组件来进行设备引导
US20170255775A1 (en) Software verification systems with multiple verification paths
JP2010182196A (ja) 情報処理装置およびファイル検証システム
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US11681809B2 (en) Information processing apparatus, control method, and storage medium
CN112835628A (zh) 一种服务器操作系统引导方法、装置、设备及介质
US20210144014A1 (en) Information processing apparatus, method for ensuring files and storage medium
US11526597B2 (en) Information processing apparatus, method of controlling the same, and storage medium
US20220358207A1 (en) Information processing apparatus, information processing method, and storage medium
KR101763184B1 (ko) 백업을 이용한 파일 복구 방법
CN115114609A (zh) 信息处理装置、程序的验证方法、存储介质和图像处理装置
EP2370926B1 (en) Extensible activation exploit scanner
US20230351029A1 (en) Information processing apparatus, control method for the same, and storage medium
US20220253521A1 (en) Image forming apparatus capable of executing application programs, control method therefor, and storage medium
US11429721B2 (en) Information processing apparatus, information processing method, and storage medium
US20120096254A1 (en) System, method and computer program product for retrieving data at boot time
EP2083372A1 (en) Application information falsification monitoring device and method
JP7456271B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20220113990A1 (en) Information processing apparatus, information processing method, and storage medium
JP6564549B1 (ja) 正当性認証起動管理システム
US20230126541A1 (en) Information processing apparatus, control method for controlling the same and storage medium

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