CN100578522C - 电子设备、用于电子设备的更新方法和集成电路 - Google Patents

电子设备、用于电子设备的更新方法和集成电路 Download PDF

Info

Publication number
CN100578522C
CN100578522C CN200680019338A CN200680019338A CN100578522C CN 100578522 C CN100578522 C CN 100578522C CN 200680019338 A CN200680019338 A CN 200680019338A CN 200680019338 A CN200680019338 A CN 200680019338A CN 100578522 C CN100578522 C CN 100578522C
Authority
CN
China
Prior art keywords
mentioned
distorting
detection
data
detected 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.)
Active
Application number
CN200680019338A
Other languages
English (en)
Other versions
CN101189617A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101189617A publication Critical patent/CN101189617A/zh
Application granted granted Critical
Publication of CN100578522C publication Critical patent/CN100578522C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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
    • 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/86Secure or tamper-resistant housings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/2129Authenticate client device independently of the user
    • 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/80Wireless

Landscapes

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

Abstract

本发明提供一种在更新与软件有关的文件时能够比过去抑制通信的数据量、且进行篡改检测的电子设备。该电子设备具有与应用软件的动作有关的应用文件,通过网络更新上述应用文件,存储由1个以上的数据构成的应用文件;通过上述网络从外部装置接收更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息;将上述位置信息表示的位置上存在的数据改写为上述更新数据,仅更新上述应用文件的一部分;确认所更新的上述应用文件是否被篡改。

Description

电子设备、用于电子设备的更新方法和集成电路
技术领域
本发明涉及通过网络更新电子设备所保持的软件并检测有无篡改的技术。
背景技术
从过去一直研究防止程序的非法篡改和解析的技术。例如,在非专利文献1中,记载了用于防止软件的解析的基本原则和具体方法。此外,在非专利文献2中,记载了作为用于防止软件的解析的工具而开发的TRCS(Tamper Resistant Coding System,即防篡改编码系统)的技术课题和其对策。这种防止软件的非法的解析和篡改的技术称为“防篡改技术”。下面,将非法的篡改仅称为“篡改”,将合法的篡改称为“更新”。
以上那样的防篡改技术已经实用化。例如,在PC上再现市售的DVD内容的软件就是这种技术。对于DVD的内容,为了防止非法复制而进行加密,为进行该再现,需要用于解密的密钥。若该密钥落入有恶意的用户手中,则有可能DVD内容容易被复制并通过因特网非法传播。因此,利用防篡改技术保护上述软件。
这样,近年来以DVD为代表的数字内容普及,对于如计算机那样的规格公开的系统上再现的软件,防篡改技术成为必不可少的技术。
在便携电话等电子设备中,也应用防篡改技术。在专利文献1中,为了防止对电子设备内的存储器的篡改,公开了使用了哈希函数的一种防篡改技术的篡改检测方式。
此外,近年来以便携电话为代表的电子设备在推进网络化,能够通过网络分发并更新在产品的出厂后也对已经安装的软件的不合适的部分进行修改的软件。
非专利文献1:“逆解析や改変からソフトを守ゐ”日経エレクトロニクス(“防止软件被反解析或改变”日经电子)1998.1.5(P209-220)
非专利文献2:“ソフトウエアの耐タンパ一化技術”富士ゼロツクステクニカル レポ一ト(“软件的防篡改技术”富士静电印刷术复制技术报告)No.13(P20-28)
专利文献1:(日本)特表2001-500293号公报
专利文献2:(日本)特开2005-018725号公报
在进行篡改检测的电子设备通过网络更新软件时,被更新的软件本身通过网络分发到电子设备,所以被更新的软件的大小越大,电子设备接收被更新的软件的时间越长。即,软件的更新时间变长,因此存在有对于利用者来说产生不满的问题。
发明内容
因此,本发明提供一种在更新与软件有关的文件时能够比过去抑制通信的数据量、且进行篡改检测的电子设备、更新服务器装置、密钥更新装置、更新方法、更新程序、取得软件的更新所需的信息的取得方法及取得程序。
为了实现上述目的,本发明的电子设备具有与应用软件的动作有关的应用文件,通过网络更新上述应用文件,其特征在于,具备:存储单元,存储有由1个以上的数据构成的应用文件;接收单元,通过上述网络从外部装置接收更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息;更新处理单元,将上述位置信息表示的位置上存在的数据改写为上述更新数据,仅更新上述应用文件的一部分;及篡改检测执行单元,确认所更新的上述应用文件是否被篡改。
根据上述结构,电子设备通过网络接收对于包含在应用文件中的数据的更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息,根据接收到的位置信息,将上述数据改写为上述更新数据,仅更新应用文件的一部分,所以与从外部装置接收被更新的应用文件的情况相比,能够减少通信的数据量。
这里,可以是上述接收单元接收至少1个以上的更新数据和位置信息的组;上述更新处理单元具备:位置确定部,根据由上述位置信息表示的位置,确定上述应用文件的更新位置;写入部,将所确定的上述更新位置作为上述更新数据的写入开始位置写入上述更新数据;及更新控制部,控制成进行上述位置确定部和上述写入部的处理,直到完成由上述接收单元接收的1个以上的所有更新数据的写入。
根据该结构,电子设备能够根据由接收的位置信息表示的位置,确定更新数据的写入开始位置,并从确定的写入开始位置起写入上述更新数据。
这里,可以是上述更新控制部控制成当完成所有更新数据的写入时开始上述篡改检测执行单元的处理。
根据该结构,电子设备在应用文件的更新后能够确认更新的应用文件是否被篡改,所以,可以保证更新后的应用文件的合法性。
这里,可以是上述更新处理单元还具备:标志存储部,存储有表示是第1信息或第2信息的标志,所述第1信息表示是应用文件的更新中,所述第2信息表示不是更新中;及标志变更部,变更上述标志表示的信息;在上述接收单元接收至少1个以上的更新数据和位置信息的组时,上述标志变更部将上述标志的信息变更为上述第1信息,在上述篡改检测执行单元未检测出篡改时,上述标志变更部将上述标志的信息变更为上述第2信息。
根据上述结构,电子设备能够通过利用标志识别是否在应用文件的更新中。
这里,可以是上述更新控制部进一步进行控制为,当向上述电子设备接通电源时,确认上述标志表示的信息,在是第1信息的情况下进行上述位置确定部和上述写入部的处理。
根据该结构,在电源接通时标志表示的信息是第1信息的情况下,电子设备再次进行应用文件的更新。由此,即使在应用文件的更新中电源被切断,通过其后接通电源,电子设备也能够可靠地进行应用文件的更新。
这里,可以是上述应用文件被分割为1个以上的块;上述更新数据包含在上述1个以上的块中的至少1个以上的更新对象块中,上述存储单元存储有篡改检测表,该篡改检测表具有对1个以上的上述各块的基准篡改检测值;上述接收单元还接收由对1个以上的上述各更新对象块的新的基准篡改检测值和篡改检测位置信息构成的组,所述篡改检测位置信息表示对上述1个以上的上述各更新对象块的基准篡改检测值在上述篡改检测表中的位置,上述更新处理单元还利用1个以上的新的基准篡改检测值和上述篡改检测值位置信息更新上述篡改检测表,上述篡改检测执行单元仅在上述更新的篡改检测表是合法的表的情况下,根据上述更新的篡改检测表具有的至少1个以上的基准篡改检测值,确认成为篡改检测的对象的块是否被篡改。
根据该结构,电子设备确认篡改检测表的合法性,所以能够防止对篡改检测值本身进行篡改来使非法的块被误认为是合法的行为。
这里,可以是上述应用文件被分割为1个以上的块,上述存储单元存储有篡改检测表,该篡改检测表具有对1个以上的上述各块的基准篡改检测值,上述篡改检测执行单元在启动上述应用软件时开始处理,并仅在上述篡改检测表是合法的表的情况下,根据上述篡改检测表具有的至少1个以上的篡改检测值,确认成为篡改检测的对象的块是否被篡改。
根据该结构,电子设备确认篡改检测表的合法性,所以能够防止对篡改检测值本身进行篡改而使非法的块被误认为是合法的行为。
这里,可以是上述篡改检测单元计算作为篡改检测对象的块的检测用篡改检测值,判断计算出的检测用篡改检测值和作为篡改检测对象的块的篡改检测值是否一致,在判断为一致的情况下设为上述应用文件未被篡改,在不一致的情况下设为上述应用文件被篡改。
根据该结构,电子设备利用对于篡改检测对象的块的检测用篡改检测值、和对于包含在篡改检测表中的上述块的篡改检测值,能够确认上述块是否被篡改。
这里,可以是上述存储部存储有部分密钥,上述篡改检测执行单元被防篡改化并存储主密钥,利用上述部分密钥和上述主密钥生成篡改检测密钥,利用生成的篡改检测密钥,计算出上述检测用篡改检测值。
根据该结构,由于篡改检测执行单元被防篡改化且存储有主密钥,所以电子设备使非法分析者不能分析篡改检测密钥的生成、及生成的篡改检测密钥。
这里,可以是上述接收单元接收不同于上述部分密钥的其它部分密钥、和表示上述部分密钥存储在上述存储部中的位置的密钥位置信息;上述更新处理单元根据上述密钥位置信息,将上述部分密钥更新为上述其它部分密钥。
根据该结构,电子设备能够更新部分密钥。由此,即使篡改检测密钥被非法分析者得知,电子设备也能够通过更新部分密钥来生成新的篡改检测密钥。
这里,可以是上述篡改检测表由数据部和标题部构成,所述数据部包含对上述1个以上的各块的基准篡改检测值,所述标题部包含对上述数据部的基准数据部篡改检测值;上述篡改检测执行单元计算对上述数据部的检测用数据部篡改检测值,在计算出的上述检测用数据部篡改检测和上述基准数据部篡改检测值一致的情况下,设为上述篡改检测表是合法的。
根据该结构,电子设备通过确认包含在篡改检测表中的对于数据部的篡改检测值,能够保证篡改检测表的合法性。由此,能够更准确地进行应用文件的篡改检测。
这里,可以是上述数据部被加密,上述篡改检测执行单元计算对被加密的上述数据部的检测用篡改检测值,在上述篡改检测表是合法的表的情况下,将被加密的上述数据部进行解密。
根据该结构,电子设备中,数据部被加密,所以非法分析者不能够得知包含在篡改检测表中的各块的篡改检测值。
这里,可以是在上述篡改检测表中,对于各基准篡改检测值,对应着表示对应的块是否应用作篡改检测的对象的判断信息;在上述判断信息表示不将块作为篡改检测的对象的情况下,上述篡改检测执行单元不进行对该块的篡改检测。
根据该结构,在判断信息表示不作为篡改检测的对象的意思的情况下,电子设备能够不进行对该块的篡改检测。由此,应用程序被更新的结果,不要一部分块时,可以省略对不要的块的篡改检测。
这里,可以是上述篡改检测表包括1个以上的、将对于上述1个以上的各块的基准篡改检测值和表示成为篡改检测的对象的应用软件的类别的应用类别对应起来的组;上述篡改检测执行单元根据对启动的应用软件的、对应于应用类别的各基准篡改检测值中至少1个以上的篡改检测值,确认成为篡改检测的对象的块是否被篡改。
根据该结构,电子设备能够利用启动的应用软件的对应于应用程序类别的1个以上的篡改检测值进行篡改检测。
这里,可以是具有多个与上述应用软件的动作有关的应用文件,上述应用文件的每一个被分割为1个以上的块;上述篡改检测表对于各应用文件将对1个以上的各块的基准篡改检测值存储为基准值组,并具有范围信息,该范围信息表示1个以上的上述基准值组中的、上述应用软件启动时用于篡改检测的至少1个以上的基准值组的范围;在上述应用软件启动时,上述篡改检测执行单元利用由上述篡改检测表具有的上述范围信息表示的至少1个以上的基准值组,确认成为篡改检测的对象的块是否被篡改。
根据该结构,在应用软件启动时,电子设备利用表示在范围信息中的至少1个以上基准值组优先进行篡改的检测,所以能够使花费在应用软件的启动的时间比利用所有的基准值组进行篡改检测的情况短。
这里,可以是上述更新处理单元及上述篡改检测执行单元被防篡改化。
根据该结构,电子设备的更新处理单元及篡改检测执行单元被防篡改化,所以使非法分析者不能分析更新处理的动作、篡改检测的动作。
此外,本发明的更新服务器装置,通过网络使电子设备进行上述电子设备具有且由1个以上的数据构成的应用文件的更新,其特征在于,具备:第1取得单元,取得更新后的应用文件;第2取得单元,从取得的上述更新后的应用文件中,取得更新数据和位置信息,该位置信息表示在更新前的应用文件中由上述更新数据更新的位置;发送单元,将取得的上述更新数据和上述位置信息向上述电子设备发送。
根据该结构,更新服务器装置取得对包含在应用文件中的数据的更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息,并将取得的更新数据及位置信息通过网络发送到电子设备,所以与发送应用文件的情况相比,可以减少通信的数据量。
这里,可以是上述更新前的应用文件被分割为由规定的大小构成的1个以上的更新前块;上述第1取得单元还取得更新前篡改检测表,该更新前篡改检测表由1个以上的上述各更新前块、和对于每个上述更新前块的基准篡改检测值构成;上述更新服务器装置还具备:篡改检测表生成单元,取得将上述更新后的应用文件分割为上述规定大小的1个以上的更新后块,对于所取得的1个以上的各更新后块再计算基准篡改检测值来生成新的篡改检测表;上述第2取得单元还从由上述篡改检测表生成单元生成的新的篡改检测表中,取得包含上述更新数据的更新后块、与该更新后块对应的再计算的基准篡改检测值、和表示与该更新后块对应的更新前块在上述更新前篡改检测表中的位置的篡改检测值位置信息;上述发送单元还将由上述第2取得单元取得的更新后块、上述基准篡改检测值、和上述篡改检测值位置信息发送到上述电子设备。
根据该结构,更新服务器装置将由第2取得单元取得的更新后块、其基准篡改检测值、和篡改检测值位置信息发送到电子设备,所以在电子设备中可以使对于更新的块的基准篡改检测值始终为最新的值。
这里,可以是上述篡改检测表生成单元存储有通过外部装置利用部分密钥和主密钥生成的篡改检测密钥,利用上述篡改检测密钥,计算对于上述1个以上的各更新后块的基准篡改检测值。
根据该结构,更新服务器装置能够利用由部分密钥和主密钥生成的篡改检测密钥,计算基准篡改检测值。
这里,可以是当接收到利用由外部装置更新的部分密钥和主密钥来更新的篡改检测密钥时,上述更新服务器装置将存储的上述篡改检测密钥更新为接收到的上述更新的篡改检测密钥,进而从上述外部装置接收上述更新的部分密钥;上述篡改检测表生成单元利用上述更新的篡改检测密钥,计算对于上述1个以上的各更新后块的基准篡改检测值;上述第2取得单元还取得表示上述部分密钥存储在上述电子设备中的位置的密钥位置信息;上述发送单元还向上述电子设备发送上述更新的部分密钥和上述密钥位置信息。
根据该结构,更新服务器可以更新篡改检测密钥。由此,即使篡改检测密钥被非法分析者得知,更新服务器装置也能够通过从外部装置接收新的篡改检测密钥,不利用被非法分析者得知的篡改检测密钥而计算出新的基准篡改检测值。
这里,可以是上述篡改检测表具有数据部,该数据部包括上述1个以上的各更新后块和对于每一个上述更新后块的基准篡改检测值;上述篡改检测表生成单元将生成的新的篡改检测表的数据部进行加密。
根据该结构,更新服务器装置的数据部被加密,所以能够使非法分析者不能得知包含在篡改检测表中的各块的篡改检测值。
这里,可以是上述更新后篡改检测表具有标题部,上述篡改检测表生成单元存储有由外部装置利用部分密钥和主密钥生成的篡改检测密钥,利用上述篡改检测密钥计算对于被加密的数据部的数据部篡改检测值,将计算出的数据部篡改检测值保存到上述标题部。
根据该结构,更新服务器装置计算对于被加密的数据部的数据篡改检测值,所以能够保证对被加密的数据部的合法性。
这里,可以是上述篡改检测表具有数据部,该数据部包括标题部、上述1个以上的上述各更新后块、及对于每一个上述更新后块的基准篡改检测值;上述篡改检测表生成单元存储有由外部装置利用部分密钥和主密钥生成的篡改检测密钥,利用上述篡改检测密钥计算对于上述数据部的数据部篡改检测值,并将计算出的数据部篡改检测值存储到上述标题部。
根据该结构,更新服务器装置计算对于数据部的数据篡改检测值,所以能够保证对数据部的合法性。
这里,可以是上述篡改检测表生成单元在计算出上述数据部篡改检测值之后,对上述数据部进行加密。
根据该结构,更新服务器装置的数据部被加密,所以使非法分析者不能得知包含在篡改检测表中的各块的篡改检测值。
此外,本发明的密钥生成装置,生成篡改检测密钥,该篡改检测密钥用于对于被分割为1个以上的块的应用文件按每个块计算篡改检测值;上述篡改检测密钥由主密钥和部分密钥生成;上述密钥生成装置具备:密钥取得单元,取得上述主密钥和更新的部分密钥;密钥生成单元,利用上述主密钥和上述更新的部分密钥生成新的篡改检测密钥;分发单元,将由上述密钥生成单元生成的篡改检测密钥分发给外部装置,该外部装置生成包含上述篡改检测值的篡改检测表。
根据该结构,即使从外部装置泄露了篡改检测密钥,密钥更新装置仅通过更新部分密钥,就可以生成与进行了非法行为的外部装置具有的篡改检测密钥不同的新的篡改检测密钥。
这里,上述分发单元向电子设备分发上述更新的部分密钥,该电子设备确认是否通过上述外部装置篡改了上述应用文件。
根据该结构,可以通过外部装置向电子设备分发更新的部分密钥。
附图说明
图1是表示程序更新系统1的概要的图。
图2是表示便携电话机10的结构的框图。
图3是表示哈希表122的数据结构的一例的图。
图4是表示更新数据表150的数据结构的一例的图。
图5是表示更新处理部103的结构的框图。
图6是表示篡改检测执行部105的结构的框图。
图7是表示更新服务器装置20的结构的框图。
图8是表示哈希表生成部203的结构的框图。
图9是表示密钥更新装置30的结构的框图。
图10是表示由更新服务器装置20进行的更新数据表、及哈希表的生成的动作的流程图。
图11是表示哈希表更新时的动作概要的流程图。
图12是表示由便携电话机10进行的更新处理的动作的流程图。下接图13。
图13是表示由便携电话机10进行的更新处理的动作的流程图。上接图12。
图14是表示由便携电话机10进行的AP启动时的动作的流程图。
图15是表示由便携电话机10进行的篡改检测处理的动作的流程图。下接图16。
图16是表示由便携电话机10进行的篡改检测处理的动作的流程图。上接图15。
图17是表示在第1实施方式中使用的各密钥的关系和利用密钥的场面之间的关系的图。
图18是表示哈希表122a的数据结构的一例的图。
图19是表示哈希表122b的数据结构的一例的图。
图20表示文件的块数从“8”减少到“7”时的哈希信息1030的一例。
图21是表示哈希表122c的数据结构的一例的图。
图22是表示哈希表122d的数据结构的一例的图。
图23是对于1个以上的AP文件组赋予1个哈希表及部分密钥时的存储部101的上续的框图。
标记说明
1      程序更新系统
10     便携电话机
20     更新服务器装置
30     密钥更新装置
40     便携电话网
50     因特网
101    存储部
102    控制部
103    更新处理部
104    更新文件接收部
105    篡改检测执行部
106    标记
107    扬声器
108    输入部
109    显示部
110    无线部
111    天线
161    标志存储部
162    更新控制部
163    更新数据读取部
164    更新数据分析部
165    写入位置确定部
166    更新数据写入部
167    更新确认部
171    检测控制部
172    篡改检测调用部
173    篡改检测处理部
174    文件读取部
175    主密钥存储部
176    主密钥
201    存储部
202    数据取得部
203    哈希表生成部
204    哈希表写入部
205    更新请求处理部
206    输入部
207    收发部
210    篡改检测密钥存储部
211    数据接收部
212    哈希表生成处理部
213    加密处理部
214    更新数据表生成部
215    篡改检测密钥
301    密钥取得部
302    篡改检测密钥生成部
303    篡改检测密钥分发部
304    输出部
具体实施方式
1.第1实施方式
以下参照附图说明本发明的第1实施方式。
1.1程序更新系统1的概要
图1是表示第1实施方式中的程序更新系统1的全体结构的图。
程序更新系统1包括:便携电话机10、更新服务器装置20、及密钥更新装置30。
密钥更新装置30对在更新服务器装置20或便携电话机10中使用的篡改检测密钥进行更新。在篡改检测密钥非法泄漏时,进行新的篡改检测密钥的发行。密钥更新装置30通过生成篡改检测密钥的机关严格地进行管理。篡改检测密钥由主密钥和部分密钥生成。主密钥是一次生成之后就不再变更的密钥,部分密钥是在进行篡改检测密钥的更新时被更新的密钥。
便携电话机10向更新服务器装置20发送请求更新有关应用软件(以下称为AP)的文件的更新请求信息,并接收与更新相关的数据即更新数据表。便携电话机10基于接收的更新数据表进行文件的更新。这里,AP具体地是音乐录音/再现软件或动画录像/再现软件那样的应用程序。并且,有关AP的文件是指AP其本身、或从AP调用的编码器、译码器、驱动器、以及提供AP动作的环境的Java(注册商标)VM那样的虚拟执行环境等,由1个以上的数据构成。
此外,便携电话机10在应用软件更新时及启动时确认与AP有关的文件是否被篡改。这里,篡改是指非法地改写文件的情况。
更新服务器装置20保存着更新数据表,当接收到来自便携电话机10的更新请求信息时,向便携电话机10发送更新数据表,该更新数据表与作为更新请求的对象的文件对应。
便携电话机10和更新服务器装置20通过便携电话网40及因特网50进行通信。
1.2便携电话机10的结构
如图2所示,便携电话机10包括存储部101、控制部102、更新处理部103、更新文件接收部104、篡改检测执行部105、话筒106、扬声器107、输入部108、显示部109、无线部110、及天线111。
(1)存储部101
如图2所示,存储部101存储着检测对象信息组120、120a、...、102m。并且,检测对象信息组120、120a、...、102m是全部相同的结构,所以这里对检测对象信息组120的结构进行说明。
如图2所示,检测对象信息组120存储着AP文件组121、哈希表122、及部分密钥。
(AP文件组121)
AP文件组121具有第1文件125、...、第n文件126。第1文件125、...第n文件126是成为篡改检测的对象的文件,具体而言,如上所述是AP其本身、或从AP调用的编码器、译码器、驱动器、提供AP动作的环境的Java(注册商标)VM那样的假想执行环境等。这里,n是1个以上的整数。即,在AP文件组121中存储着1个以上的文件。
并且,以下将第1文件125、...、第n文件126各自的文件名称为“file_1”、...、“file_n”。并且,各文件在便携电话机的制造时记录于固定的地址,以便可以进行局部更新。
(哈希表122)
哈希表122将第1文件125、...、第n文件126的篡改检测用的哈希值以表的形式保存。哈希表122在便携电话机的制造时记录于固定的地址,以便可以进行局部的更新。
这里,说明哈希表122。
图3是表示哈希表122的数据结构的一例的图。
哈希表122由未被加密的标题部130和被加密的数据部131构成。这里,用于加密的算法例如是XOR那样的逻辑运算或称作DES(DataEncryption Standard)、AES(Advanced Encryption Standard)的加密算法。加密算法DES、AES是公知的,所以省略说明。
标题部130由哈希表文件大小132和数据部哈希值133构成。哈希表文件大小132表示将标题部130和数据部131相加的哈希表122整体的数据大小。数据部哈希值133表示对数据部131应用哈希运算算法而计算出的哈希值。这里,假设哈希计算算法是在SHA-1或MD5等单向函数上捆绑密钥值的HMAC(Keyed-Hashing for Message Authentication)算法。下面,假设计算哈希值的哈希计算算法是HMAC算法。
数据部131由1个以上的哈希信息构成。这里,假设数据部131由哈希信息134、...、哈希信息135构成。哈希信息对成为篡改检测对象的文件至少存在1个。
哈希信息134由1个文件信息140和多个MAC信息141构成。
文件信息140包括:表示分割成为篡改检测对象的文件而生成的块的数量的块数142;和表示成为篡改检测对象的文件的文件名。这里,文件名按照包含有能够确定成为篡改检测对象的文件在文件系统中的绝对路径或相对路径等场所的路径的形式表示。
MAC信息141由1个以上的条目构成。这里,条目的数量是由块数142表示的值+1。
条目144包括:文件名143表示的文件被分割的块从开头地址起的偏移量、块的大小、对块应用哈希计算算法来计算出的哈希值。此外,由于到第(n-1)个为止的条目的结构相同,所以省略说明。存储在哈希表122中的哈希值在篡改检测时是作为用于判断是否被篡改的基准的基准值。
位于MAC信息141的最后的条目145是预约为更新用的空条目,取代记述偏移量、大小、及哈希值,分别记述有“Reserved”。并且,还将位于MAC信息141的最后的条目称为最后条目。
在位于数据部131的最后的哈希信息中的最后条目中,嵌有表示是哈希表122中的最后条目的信息“end of entry”。这里,哈希信息135是位于数据部131的最后的哈希信息,所以在该最后条目146中嵌有“end of entry”。此外,哈希信息135的其它构成要素在哈希信息134中除了最后条目145以外与其它构成要素相同,所以省略说明。
并且,如上所述,数据部131被加密。由文件信息140或MAC信息141的1条目的单位进行加密。因此,能够以文件信息140或MAC信息141的1条目的单位进行哈希表122的更新。
并且,在此,哈希表122与对哈希表122所属的检测对象信息组120中包含的AP进行识别的AP识别信息建立了对应。
(部分密钥123)
在执行篡改检测时,部分密钥123与主密钥一起用于篡改检测密钥的计算。部分密钥123在便携电话机的制造时记录于固定的地址,以便可以进行更新。
并且,这里,与哈希表122同样,部分密钥123与对部分密钥123所属的检测对象信息组120中包含的AP进行识别的AP识别信息建立了对应。
(2)控制部102
控制部102进行便携电话机10整体的控制。
控制部102从无线部110接收到通话的信号(声音信号)时,进行用于将接收的信号输出到扬声器107的信号处理。
控制部102进行从话筒106向无线部110输出通话信号(声音信号)的信号处理。
控制部102从输入部108接收到与AP有关的文件更新的更新指示时,向更新处理部103输出表示文件的更新处理的开始的更新开始指令。这里,在更新指示、及更新开始指令中,包括表示成为更新对象的AP的AP识别信息。
控制部102从更新处理部103接收到文件的更新完成的通知时,通过显示部109显示更新完成的消息。
控制部102从更新处理部103接收到文件的更新失败的通知时,通过显示部109显示更新失败的消息。此外,控制部102从输入部108接收到再更新的指示时,向更新处理部103输出表示开始文件的再更新的再更新开始指令。控制部102从输入部108接收到不进行再更新的指示时,向更新处理部103输出表示结束文件的更新处理的更新结束指令。
控制部102从输入部108接收到AP的启动指示时,进行成为启动的对象的AP的启动。这时,在本AP是篡改检测对象的情况下,被启动的AP通过控制部102向篡改检测执行部105输出检测开始指令和识别本AP的AP识别信息。此外,在篡改检测执行部105中,从控制部102接收检测开始指令。
控制部102从篡改检测执行部105接收到未被篡改的通知时,执行与有启动指示的AP有关的动作。
控制部102从篡改检测执行部105接收到检测出篡改的通知时,结束有启动指示的AP的动作。
(更新处理部103)
更新处理部103利用更新文件接收部104从更新服务器装置20接收的更新数据表150,更新成为更新对象的文件和表、或者密钥等数据。
这里,如图4所示,更新数据表150由1个以上的更新信息151、...、152构成。更新信息151由位置信息153、数据大小154、及更新数据155构成。位置信息153是表示更新的数据的位置的信息。例如,用文件名或从文件的开头起的偏移量、地址信息等表示位置信息153。数据大小154表示更新的数据的大小。更新数据155记录有应更新的信息即文件中成为更新对象的1个以上的块、哈希表122中的哈希表文件大小132、数据部哈希值133、文件信息、包含在MAC信息中的条目等。这里,在更新数据中包括1个以上的数据,包含在更新数据中的数据是哈希表文件大小或数据部哈希值等值、和用于执行应用软件的指令语句等。
例如,将文件分割为多个块,并更新第2~4个块时,在位置信息存储表示第2个块的位置的偏移量,在数据大小中存储有对第2~4个各块的大小进行合计的合计大小,在更新数据中存储更新后的第2~4个块。并且,哈希表也需要更新,所以这时表示包含第2个块的哈希值的条目的位置的偏移量存储在位置信息中,包括第2~4个块的哈希值的各条目的大小的合计值存储在数据大小中,对应于更新后的第2~4个块的各条目存储在更新数据中。
更新处理部103基于更新数据表150的内容,进行文件或哈希表122内的哈希表文件大小132、数据部哈希值133、文件信息、包含在MAC信息中的条目、部分密钥123的更新。
如图5所示,更新处理部103包括标志存储部161、更新控制部162、更新数据读取部163、更新数据分析部164、写入位置确定部165、更新数据写入部166、及更新确认部167。
用防止有恶意的用户分析的防篡改技术来保护更新处理部103。防篡改技术是公知的,所以省略说明。
(标志存储部161)
标志存储部161存储有表示是否进行有关AP的文件的更新的标志。这里,标志的值是“0”的情况下,表示更新处理部103未进行更新,值是“1”的情况下,表示更新处理部103进行更新。并且,标志存储部161具体是非易失性存储器。即,即使切断便携电话机10的电源,标志存储部161的存储内容也被保存。
(更新控制部162)
更新控制部162从控制部102接收到更新开始指令时,对控制部102设定中断禁止,以便其它指令的处理不被中断。
更新控制部162将存储在标志存储部161中的标志的值设定为“1”。
更新控制部162将包含在所接收的更新开始指令中的AP识别信息输出到更新数据读取部163。
更新控制部162从更新数据读取部163接收到表示结束所有更新数据的写入完了指令时,向篡改检测执行部105输出表示开始篡改检测的处理的检测开始指令和AP识别信息。
更新控制部162从篡改检测执行部105接收到未被篡改的通知时,向控制部102输出更新完了的通知。更新控制部162解除对控制部102的中断禁止,将存储在标志存储161中的标志的值设定为“0”。
更新控制部162从篡改检测执行部105接收到检测出篡改的通知时,向控制部102输出更新失败的通知。更新控制部162从控制部102接收到再更新开始指令时,再次向更新数据读取部163输出AP识别信息。
更新控制部162从控制部102接收到更新结束指令时,解除对控制部102的中断禁止,并将存储在标志存储部161中的标志的值设定为“0”。
当向便携电话机10接通电源并开始供给电源时,更新控制部162检查存储在标志存储部161中的标志的值。在值为“1”的情况下,判断为更新处理中的状态,对控制部102设定中断禁止。更新控制部162向更新数据读取部163输出表示更新处理的再开始的再开始指令。若从更新数据读取部163接收到表示不要再开始更新处理的不要再开始指令,更新控制部162就解除对控制部102的中断禁止,将存储在标志存储部161中的标志的值设定为“0”。
(更新数据读取部163)
更新数据读取部163从更新控制部162接收到AP识别信息时,向更新文件接收部104输出接收到的AP识别信息。
更新数据读取部163从更新文件接收部104接收到表示结束从更新服务器装置20接收更新数据表150的接收完了指令时,从接收到的更新数据表150读取1个未读的更新信息。
更新数据读取部163从更新确认部167接收到表示更新数据的写入正常结束的正常结束指令时,判断在接收的更新数据表150中是否存在未读的更新信息。在判断为存在的情况下,更新数据读取部163取得未读的更新信息。在判断为不存在的情况下,更新数据读取部163向更新控制部162及更新文件接收部104输出写入完了指令。更新数据读取部163从更新确认部167接收到表示更新数据的写入失败的异常结束指令时,再次读取上次读取的更新信息。
更新数据读取部163从更新控制部162接收到再开始指令时,向更新文件接收部104输出接收到的再开始指令。然后,更新数据读取部16从更新文件接收部104接收到接收完了指令时,3进行与上述同样的动作。
更新数据读取部163接收到不要再开始指令时,将接收到的不要再开始指令向更新控制部162输出。
(更新数据分析部164)
更新数据分析部164将由更新数据读取部163读取出的更新信息分割为位置信息、数据大小、及更新数据。由此,更新数据分析部164能够从更新信息中取得位置信息、数据大小、及更新数据。
(写入位置确定部165)
写入位置确定部165根据由更新数据分析部164取得的位置信息,确定更新数据在存储部101中的写入位置。
(更新数据写入部166)
更新数据写入部166将由写入位置确定部165确定的写入位置作为写入开始的开头位置,写入由更新数据分析部164取得的更新数据。
(更新确认部167)
更新确认部167确认更新数据写入部166的写入是否正常结束。
在判断为正常结束的情况下,向更新数据读取部163输出正常结束指令,在判断为未正常结束的情况下,向更新数据读取部163输出异常结束指令。
(4)更新文件接收部104
更新文件接收部104预先存储有识别便携电话机10的终端标识符。
更新文件接收部104具有:存储从更新处理部103接收到的AP识别信息的AP识别信息存储区域、及从更新服务器装置20接收到的更新数据表150的表存储区域。这里,AP识别信息存储区域、及表存储区域是非易失性存储器。
更新文件接收部104从更新处理部103的更新数据读取部163接收到AP识别信息时,通过无线部110,将接收到的AP识别信息、终端标识符、和更新请求信息向更新服务器装置20发送,将接收到的AP识别信息存储到AP识别信息存储区域。
更新文件接收部104通过无线部110从更新服务器装置20接收到更新数据表150时,将接收到的更新数据表150存储到表存储区域。并且,更新文件接收部104接收到的更新数据表150的存储结束时,消去在AP识别信息存储区域存储的AP识别信息,并向更新数据读取部163输出接收完了指令。
更新文件接收部104从更新数据读取部163接收到写入完了指令时,消去存储在表存储区域中的更新数据表150。
更新文件接收部104从更新数据读取部163接收到再开始指令时,判断是否存在存储于AP识别信息存储区域的AP识别信息。在判断为存在的情况下,更新文件接收部104通过无线部110向更新服务器装置20发送所存储的AP识别信息和终端标识符,并进行与上述同样的动作。
在判断为AP识别信息存储区域中不存在AP识别信息的情况下,更新文件接收部104判断在表存储区域中是否存储有更新数据表150。在判断为存储着的情况下,向更新数据读取部163输出接收完了指令。在判断为未存储的情况下,向更新数据读取部163输出不要再开始指令。
(5)篡改检测执行部105
如图6所示,篡改检测执行部105包括检测控制部171、篡改检测调用部172、篡改检测处理部173、及文件读取部174。
用防止有恶意的用户分析的防篡改技术保护篡改检测执行部105。由于防篡改技术是公知的,所以省略说明。
(检测控制部171)
检测控制部171从控制部102或更新处理部103的更新控制部162中的任一个接收检测开始指令和AP识别信息时,向篡改检测调用部172输出接收到的检测开始指令和AP识别信息。
检测控制部171从篡改检测处理部173接收未被篡改的通知或检测出篡改的通知中的任一个。
检测控制部171向作为检测开始指令及AP识别信息的输出端的控制部102或更新处理部103的更新控制部162中的任一个输出接收到的通知。具体而言,从控制部102接收到检测开始指令时,检测控制部171向控制部102输出从篡改检测处理部173接收到的通知。并且,从更新控制部162接收到检测开始指令的情况下,检测控制部171向更新控制部162输出从篡改检测处理部173接收到的通知。
(篡改检测调用部172)
篡改检测调用部172从检测控制部171接收到检测开始指令和AP识别信息时,读取与从存储部101接收到的AP识别信息对应的哈希表122。
篡改检测调用部172向篡改检测处理部173输出读取出的哈希表122和接收到的检测开始指令及AP识别信息。
(篡改检测处理部173)
如图6所示,篡改检测处理部173具有主密钥存储部175。主密钥存储部175存储着主密钥176。
篡改检测处理部173从篡改检测调用部172接收到哈希表122、检测开始指令及AP识别信息时,开始篡改检测的处理。
篡改检测处理部173从存储部101读取与接收到的AP识别信息对应的部分密钥123。
篡改检测处理部173利用读取出的部分密钥123、主密钥176、和特定的算法计算篡改检测密钥。这里,假设特定的算法例如是XOR(排他的逻辑和)那样的逻辑运算、或DES、AES那样的加密算法。
篡改检测处理部173利用算出的篡改检测密钥和哈希计算算法,计算对于接收到的哈希表122的数据部131的哈希值。篡改检测处理部173判断计算出的哈希值和包含在哈希表122的标题部130中的数据部哈希值133是否一致。
在判断为不一致的情况下,篡改检测处理部173向检测控制部171输出检测出篡改的通知。
在判断为一致的情况下,篡改检测处理部173利用篡改检测密钥对数据部131进行解密。并且,解密中使用与对数据部131进行加密的算法对应的解密算法。
篡改检测处理部173从解密的数据部读取未读的哈希信息。篡改检测处理部173将包含在所读取的哈希信息中的文件信息向文件读取部174输出,然后接收表示结束了从文件读取部174读取文件的文件读取完了指令。
篡改检测处理部173从读取出的哈希信息中取得未读取的条目,判断取得的条目是否是最后条目。
在判断为不是最后条目的情况下,篡改检测处理部173读取包含在取得的条目中的偏移量及大小,基于读取出的偏移量及大小,从由文件读取部174读取的文件中取得检测对象的块。篡改检测处理部173利用计算出的篡改检测密钥和哈希计算算法,计算对于取得的块的检测用哈希值。篡改检测处理部173判断计算出的检测用哈希值和取得的条目中包含的哈希值是否一致。在判断为一致的情况下,篡改检测处理部173从读取出的哈希信息中取得未读取的条目,进行上述动作。在判断为不一致的情况下,篡改检测处理部173向检测控制部171输出检测出篡改的通知。
在判断为取得的条目是最后条目的情况下,篡改检测处理部173判断是否存在未读的哈希信息。在判断为存在的情况下,篡改检测处理部173读取未读取的哈希信息,进行上述的动作。在判断为不存在的情况下,篡改检测处理部173向检测控制部171输出未被篡改的通知。
(文件读取部174)
文件读取部174具有暂时存储读取的文件的文件存储区域。
文件读取部174从篡改检测处理部173接收到文件信息时,基于包含在接收到的文件信息中的文件名,从存储部101读取篡改检测对象的文件。
文件读取部174将读取出的文件存储在文件存储区域中,向篡改检测处理部173输出文件读取完了指令。
(6)话筒106
话筒106接收使用者的声音,将接收到的声音变换为声音信号,向控制部102输出变换的声音信号。
(7)扬声器107
扬声器107将由控制部102处理的声音信号以声音的形式输出。
(8)输入部108
输入部108通过使用者的操作收到更新指示时,向控制部102输出收到的更新指示。
在篡改检测对象的文件的更新失败的情况下,若通过使用者的操作收到进行再更新的指示,输入部108就向控制部102输出收到的进行再更新的指示。此外,在篡改检测对象的文件的更新失败的情况下,输入部108通过使用者的操作接收到不进行再更新的指示时,向控制部102输出所接收到的不进行再更新的指示。
输入部108通过使用者的操作接收到AP启动指示时,向控制部102输出接收到的启动指示。
(9)显示部109
显示部109从控制部102接收到更新完了的消息时,显示接收到的消息。
显示部109从控制部102接收到更新失败的消息时,显示接收到的消息。
(10)无线部110
无线部110具备天线111,进行无线信号的收发。
1.3更新服务器装置20的结构
如图7所示,更新服务器装置20包括存储部201、数据取得部202、哈希表生成部203、哈希表写入部204、更新请求处理部205、输入部206、及收发部207。
(1)存储部201
存储部201具有:存储1个以上的对存储在便携电话机10中的检测对象信息组的更新数据表的区域;和用于存储哈希表的区域。
在此,假设存储有1个以上的对于检测对象信息组120的更新数据表。此外,所存储的各更新数据表与包含更新对象的文件的AP的AP识别信息对应,还被实施版数的管理。此外,假设便携电话机10的终端标识符和发送到便携电话机10的更新数据表的版数被对应起来管理。此外,哈希表与对应的AP的AP识别信息建立了对应。
(2)数据取得部202
数据取得部202从输入部206接收到初始设定指示时,还取得成为篡改检测对象的1个以上的文件及目标路径表。这时,取得源例如是外部装置。数据取得部202向哈希表生成部203输出接收到的初始设定指示、取得的1个以上的文件、及目标路径表。这里,所谓目标路径表是存储有路径名的表,该路径名由表示成为篡改检测对象的1个以上的各文件存储在文件系统中的存储位置的绝对路径、或相对路径等构成。并且,初始设定指示包含与生成的哈希表对应的AP的AP识别信息。
数据取得部202从输入部206接收到表示有过检测对象的文件的更新的第1更新指示时,进而取得对于成为更新对象的1个以上的各文件的更新文件、及成为更新对象的1个以上的文件的目标路径表。并且,假设第1更新指示中包含成为更新的对象的AP的AP识别信息。这时,取得源例如是外部装置。数据取得部202从存储部201取得与包含在第1更新指示中的AP识别信息对应的哈希表。数据取得部202向哈希表生成部203输出接收到的第1更新指示、所取得的1个以上的更新文件、目标路径表、及哈希表。这里,所谓更新文件是消除了在原文件中存在的不良状况的最新文件。
数据取得部202从密钥更新装置30接收到表示有过部分密钥的更新的第2更新指示、和更新后的部分密钥时,进而取得利用了更新的部分密钥的、成为篡改检测的对象的1个以上的文件、及目标路径表。并且,假设在第2更新指示中包含与更新的部分密钥对应的AP的AP识别信息。这时取得源例如是外部装置。数据取得部202从存储部201取得与包含在第2更新指示中的AP识别信息对应的哈希表。数据取得部202向哈希表生成部203输出接收到的第2更新指示及部分密钥、1个以上的文件、目标路径表、及哈希表。
(3)哈希表生成部203
如图8所示,哈希表生成部203包括篡改检测密钥存储部210、数据接收部211、哈希表生成处理部212、加密处理部213、及更新数据表生成部214。
这里,哈希表生成部203可以作为1个装置(哈希表生成装置)。
(篡改检测密钥存储部210)
篡改检测密钥存储部210存储有篡改检测密钥215。
(数据接收部211)
数据接收部211从数据取得部202接收初始设定指示、第1更新指示、及第2更新指示中的某一个。
数据接收部211接收到初始设定指示时,进而接收成为篡改检测对象的1个以上的文件、及目标路径表,向哈希表生成处理部212输出接收到的初始设定指示、1个以上的文件、及目标路径表。
数据接收部211接收到第1更新指示时,进而接收对于成为更新对象的1个以上的各文件的更新文件、成为更新对象的1个以上的文件的目标路径表、及哈希表,向哈希表生成处理部212输出接收到的第1更新指示、1个以上的更新文件、目标路径表及哈希表。
数据接收部211接收到第2更新指示时,进而接收部分密钥、利用了更新的部分密钥的成为篡改检测的对象的1个以上的文件、目标路径表、及哈希表,向哈希表生成处理部212输出接收到的第2更新指示、部分密钥、1个以上的文件、目标路径表及哈希表。
(哈希表生成处理部212)
哈希表生成处理部212从数据接收部211接收初始设定指示、第1更新指示、及第2更新指示中的某一个。
[接收到初始设定指示的情况]
哈希表生成处理部212接收到初始设定指示时,进而接收成为篡改检测对象的1个以上的文件及目标路径表。
哈希表生成处理部212将接收的1个以上的文件中的1个文件分割为由规定的大小构成的1个以上的块。哈希表生成处理部212从目标路径表读取表示被分割的文件存储在便携电话机10中的位置的路径名,生成由分割的块的数量和读取的路径名构成的文件信息。此外,哈希表生成处理部212从篡改检测密钥存储部210读取篡改检测密钥215。哈希表生成处理部212以分割为规定的大小的块单位,利用读取出的篡改检测密钥215和哈希计算算法计算出哈希值,并对于各块生成表示块的开头位置的偏移量、块的大小、计算出的哈希值构成的条目,生成包含所生成的各条目的MAC信息。哈希表生成处理部212生成由所生成的文件信息和MAC信息构成的哈希信息。并且,这时,哈希信息未被加密。对接收到的所有文件进行该动作。
哈希表生成处理部212生成对于接收的1个以上的各文件的哈希信息时,生成由所生成的所有哈希信息构成的数据部。这时,数据部未被加密。以下,为了区分加密的数据部,将未加密的数据部称为非加密数据部。
哈希表生成处理部212向加密处理部213输出所生成的非加密数据部。
哈希表生成处理部212从加密处理部213接收到被加密的数据部时,对于被加密的数据部应用哈希计算算法来计算出哈希值,记录为哈希表的数据部哈希值。哈希表生成处理部212计算哈希表的大小,将计算结果记录为哈希表文件大小。由此,哈希表生成处理部可以生成哈希表的标题部。
哈希表生成处理部212生成哈希表,该哈希表由所生成的标题部和从加密处理部213接收的被加密的数据部构成。
哈希表生成处理部212将生成的哈希表存储在存储部,并输出到哈希表写入部204。这时,生成的哈希表、和包含在初始设定指示中的AP识别信息建立对应。
(接收了第1更新指示的情况)
哈希表生成处理部212从数据接收部211接收到第1更新指示时,进而接收对于成为更新对象的1个以上的各文件的更新文件、成为更新对象的1个以上的文件的目标路径表、及哈希表。下面,将从数据接收部211接收的哈希表称为旧哈希表。
哈希表生成处理部212将接收到的1个以上的更新文件中的1个更新文件分割为由规定大小构成的1个以上的块。哈希表生成处理部212从目标路径表读取表示被分割的更新文件在便携电话机10中的存储位置的路径名,生成由分割的块数量和读取的路径名构成的文件信息。并且,哈希表生成处理部212从篡改检测密钥存储部210读取篡改检测密钥215。哈希表生成处理部212以分割为规定大小的块单位,利用读取出的篡改检测密钥215和哈希计算算法计算哈希值,对各块生成由表示块的开头位置的偏移量、块的大小、计算出的哈希值构成的条目,生成包含所生成的各条目的MAC信息。哈希表生成处理部212生成由所生成的文件信息和MAC信息构成的哈希信息。并且,这时,哈希信息未被加密。对接收的所有更新文件进行该动作。
哈希表生成处理部212生成对于接收到的1个以上的各更新文件的哈希信息时,生成由所生成的所有哈希信息构成的非加密数据部。
哈希表生成处理部212向加密处理部213输出生成的非加密数据部。
哈希表生成处理部212从加密处理部213接收到被加密的数据部时,对于被加密的数据部应用哈希计算算法来计算哈希值,记录为哈希表的数据部哈希值。哈希表生成处理部212计算哈希表的大小,将计算结果记录为哈希表文件大小。由此,哈希表生成处理部能够生成哈希表的标题部。
哈希表生成处理部212生成新哈希表,该新哈希表由所生成的标题部、从加密处理部213接收的被加密的数据部构成。
哈希表生成处理部212向更新数据表生成部214输出第1更新指示、所生成的新哈希表、从数据接收部211接收到的旧哈希表及1个以上的更新文件。
(接收了第2更新指示的情况)
哈希表生成处理部212从数据接收部211接收到第2更新指示时,进而接收部分密钥、成为检测对象的1个以上的文件、目标路径表、及旧哈希表。
哈希表生成处理部212将接收到的1个以上的文件中的1个文件分割为由规定大小构成的1个以上的块。哈希表生成处理部212从目标路径表读取表示被分割的更新文件在便携电话机10中存储的位置的路径名,生成由分割的块的数量和读取的路径名构成的文件信息。并且,哈希表生成处理部212从篡改检测密钥存储部210读取篡改检测密钥215。哈希表生成处理部212以分割为规定大小的块单位利用读取出的篡改检测密钥215和哈希计算算法来计算哈希值,对各块生成由表示块的开头位置的偏移量、块的大小、计算出的哈希值构成的条目,并生成包含所生成的各条目的MAC信息。哈希表生成处理部212生成由所生成的文件信息和MAC信息构成的哈希信息。并且,这时,哈希信息未被加密。对接收到的所有文件进行该动作。
哈希表生成处理部212生成对于接收的1个以上的各文件的哈希信息时,生成由所生成的所有哈希信息构成的非加密数据部。
哈希表生成处理部212向加密处理部213输出所生成的非加密数据部。
哈希表生成处理部212从加密处理部213接收到被加密的数据部时,对被加密的数据部应用哈希计算算法计算哈希值,并记录为哈希表的数据部哈希值。哈希表生成处理部212计算哈希表的大小,将计算结果记录为哈希表文件大小。由此,哈希表生成处理部能够生成哈希表的标题部。
哈希表生成处理部212生成新哈希表,该新哈希表由所生成的标题部、从加密处理部213接收到的被加密的数据部构成。
哈希表生成处理部212向更新数据表生成部214输出第2更新指示、所生成的新哈希表、从数据接收部211接收到的旧哈希表及部分密钥。
(加密处理部213)
加密处理部213从哈希表生成处理部212接收到非加密数据部时,从篡改检测密钥存储部210读取篡改检测密钥215。
加密处理部213利用读取出的篡改检测密钥,对接收到的非加密数据部进行加密。用于加密的算法例如是XOR那样的逻辑运算或称为DES、AES的加密算法,是对应于在便携电话机10中使用的解密算法的算法。这时,以文件信息或MAC信息的1个条目作为单位进行加密。
加密处理部213向哈希表生成处理部212输出被加密的数据部。
(更新数据表生成部214)
更新数据表生成部214接收第1更新指示及第2更新指示中的某一个。
(接收了第1更新指示的情况)
更新数据表生成部214进而从哈希表生成处理部212接收新哈希表、旧哈希表和1个以上的更新文件。
更新数据表生成部214比较接收到的旧哈希表和新哈希表,从新哈希表中抽取信息不同的部位。这里,被抽取的信息是数据部中的条目或标题部中的数据部哈希值。
更新数据表生成部214利用抽取出的信息和1个以上的更新文件生成更新数据表。这时,更新数据表生成部214根据抽取出的信息,确定更新文件的更新部位。这是因为,在分割文件时,各块被分割为规定的大小,因此,不发生变更的块的哈希值与以前的哈希值相同。发生变更的块的哈希值与以前的哈希值不同,所以通过比较旧哈希表和新哈希表,抽取对于包含变更的部位的块的条目。如上所述,块被分割为规定的大小,所以可以从抽取的条目中确定更新文件中的更新部位。更新数据表生成部214将确定的更新部位作为更新数据,取得更新数据(即,包含更新部位的块)的位置信息及块的大小。并且,在包含更新部位的块连续的情况下,可以结合为1个更新数据。这时的位置信息成为连续的块中位于开头的块的位置信息,可以根据连续的块的个数计算大小。
更新数据表生成部214生成1个以上的由更新数据、位置信息、及块的大小构成的更新信息,进而生成由生成的1个以上的更新信息构成的更新数据表。
更新数据表生成部214向存储部201存储新哈希表和生成的更新数据表。这时,生成的更新数据表和包含在第1更新指示中的AP识别信息建立了对应。并且,存储在存储部201中的旧哈希表被消去。
(接收了第2更新指示的情况)
更新数据表生成部214进而从哈希表生成处理部212接收新哈希表、旧哈希表、部分密钥。
更新数据表生成部214比较接收到的旧哈希表和新哈希表,从新哈希表中抽取信息不同的部位。这里,被抽取的信息是数据部中的条目或标题部中的数据部哈希值。
更新数据表生成部214生成将各抽取出的信息和接收的部分密钥作为更新数据的更新数据表。将部分密钥作为更新数据的更新信息的生成如下进行。更新数据表生成部214取得表示部分密钥在便携电话机10中的存储位置的位置信息、和所接收的部分密钥的数据大小。更新数据表生成部214生成由取得的位置信息、数据大小、和更新数据即部分密钥构成的更新信息。
并且,将抽取的信息作为更新数据的更新信息的生成方式与在接收到第1更新指示的情况下所示的更新数据的生成方式相同,所以省略这里的说明。
更新数据表生成部214生成由所生成的1个以上的更新信息构成的更新数据表。
更新数据表生成部214向存储部201存储新哈希表和所生成的更新数据表。这时,生成的更新数据表和包含在第2更新指示中的AP识别信息建立了对应。并且,存储在存储部201中的旧哈希表被消去。
(4)哈希表写入部204
哈希表写入部204在制造便携电话机时与制造中(出厂前)的便携电话机连接,可以对便携电话机的存储部进行存取。
哈希表写入部204从哈希表生成部203接收到哈希表时,将接收到的哈希表写入所连接的便携电话机的存储部。写入哈希表的地址是如上所述固定的地址。
(5)更新请求处理部205
更新请求处理部205通过收发部207从便携电话机10接收AP识别信息、终端标识符、及更新请求信息时,就利用接收到的AP识别信息、终端标识符,确定应向便携电话机10发送的更新数据表的版数。如上所述,更新服务器装置20将各更新数据表与包含更新对象的文件的AP的AP识别信息对应起来并进行版数的管理,并且,将便携电话机10的终端标识符和发送到便携电话机10的更新数据表的版数对应起来进行管理,所以能够确定应发送的更新数据表。
更新请求处理部205从存储部201取得应发送的更新数据表,并通过收发部207将所取得的更新数据表发送给便携电话机10。
(6)输入部206
输入部206通过使用者的操作接收到初始设定指示时,向数据取得部202输出所收到的初始设定指示。
输入部206通过使用者的操作接收到第1更新指示时,将接收到的第1更新指示输出给数据取得部202。
(7)收发部207
收发部207向更新请求处理部205输出通过便携网40及因特网50从便携电话机10接收到的信息。
收发部207通过因特网50及便携电话网40向便携电话机10发送从更新请求处理部205接收到的信息。
1.4密钥更新装置30的结构
如图9所示,密钥更新装置30包括密钥取得部301、篡改检测密钥生成部302、篡改检测密钥分发部303、及输出部304。
密钥更新装置30在篡改检测密钥被有恶意的用户解析而非法流出的情况下,更新存储在更新服务器装置20中的篡改检测密钥。由正式发行密钥的机构严格地管理密钥更新装置30。
(1)密钥取得部301
密钥取得部301从外部装置取得主密钥及更新的部分密钥、对应于更新的部分密钥的AP的AP识别信息。并且,取得的主密钥与存储在便携电话机10中的主密钥相同。
密钥取得部301向篡改检测密钥生成部302输出接收到的主密钥及更新的部分密钥。
密钥取得部301从篡改检测密钥分发部303接收到表示对更新服务器装置20分发完篡改检测密钥的分发完了指令时,向输出部304输出包含AP识别信息的第2更新指示和被更新的部分密钥。
(2)篡改检测密钥生成部302
篡改检测密钥生成部302从密钥取得部301接收到主密钥及更新的部分密钥时,利用接收的主密钥、更新的部分密钥、以及特定的算法计算篡改检测密钥。并且,这里使用的特定的算法与在便携电话机10的篡改检测处理部173中使用的算法相同。
篡改检测密钥生成部302向篡改检测密钥分发部303输出计算出的篡改检测密钥。
(3)篡改检测密钥分发部303
篡改检测密钥分发部303与更新服务器装置连接,可以对篡改检测密钥存储部210进行存取。
篡改检测密钥分发部303从篡改检测密钥生成部302接收到篡改检测密钥时,向篡改检测密钥存储部210写入接收到的篡改检测密钥。这时,存储在篡改检测密钥存储部210中的以前的篡改检测密钥被消去。
篡改检测密钥分发部303结束篡改检测密钥的写入时,向密钥取得部301输出分发完了指令。
(4)输出部304
输出部304与更新服务器装置20的数据取得部202连接。
输出部304从密钥取得部301接收到第2更新指示和更新的部分密钥时,向数据取得部202输出接收到的第2更新指示和更新的部分密钥。
1.5更新服务器装置20的动作
在此,用图10所示的流程图说明由更新服务器装置20进行的更新数据表及哈希表的生成动作。
数据接收部211从数据取得部202接收初始设定指示、第1更新指示、及第2更新指示中的某一个(步骤S5)。
数据接收部211接收到第1更新指示时(步骤S10中的“第1更新指示”)、对于成为更新对象的1个以上的各文件的更新文件、成为更新对象的1个以上的文件的目标路径表、及哈希表(步骤S15)。
数据接收部211向哈希表生成处理部212输出接收到的第1更新指示、1个以上的更新文件、目标路径表、及哈希表(以下、旧哈希表)。哈希表生成处理部212从数据接收部211接收第1更新指示、对于1个以上的各文件的更新文件、成为更新对象的1个以上的文件的目标路径表、及旧哈希表。
哈希表生成处理部212将接收到的1个以上的更新文件中的1个更新文件,分割为由规定大小构成的1个以上的块。哈希表生成处理部212从目标路径表读取表示被分割的更新文件存储在便携电话机10中的位置的路径名,生成由分割的块的数量和读取的路径名构成的文件信息。此外,哈希表生成处理部212以分割为规定大小的块单位应用哈希计算算法来计算哈希值,对各块生成由表示块的开头位置的偏移量、块的大小、计算出的哈希值构成的条目,生成包含所生成的各条目的MAC信息。哈希表生成处理部212生成由生成的文件信息和MAC信息构成的哈希信息。并且,这时,哈希信息未被加密。对所接收的所有更新文件进行该动作。
哈希表生成处理部212生成对于接收到的1个以上的各更新文件的哈希信息时,生成由所生成的所有哈希信息构成的非加密数据部(步骤S20)
哈希表生成处理部212向加密处理部213输出所生成的非加密数据部。加密处理部213从哈希表生成处理部212接收到非加密数据部时,从篡改检测密钥存储部210读取篡改检测密钥215。加密处理部213利用读取出的篡改检测密钥对接收到的非加密数据部进行加密(步骤S25)。这时,以文件信息或MAC信息的1条目为单位进行加密。
加密处理部213向哈希表生成处理部212输出加密的数据部。哈希表生成处理部212从加密处理部213接收被加密的数据部时,对于被加密的数据部应用哈希计算算法来计算哈希值,记录为哈希表的数据部哈希值(步骤S30)。
哈希表生成处理部212计算哈希表的大小,并将计算结果记录为哈希表文件大小。由此,哈希表生成处理部能够生成哈希表的标题部。
哈希表生成处理部212生成新哈希表(步骤S35),该新哈希表由所生成的标题部和从加密处理部213接收到的被加密的数据部构成。
哈希表生成处理部212向更新数据表生成部214输出第1更新指示、生成的新哈希表、从数据接收部211接收到的旧哈希表及1个以上的更新文件。更新数据表生成部214从第1更新指示、哈希表生成处理部212接收新哈希表、旧哈希表、和1个以上的更新文件。
更新数据表生成部214比较接收到的旧哈希表和新哈希表,从新哈希表抽取信息不同的部位。这里,抽取出的信息是数据部中的条目或标题部中的数据部哈希值。更新数据表生成部214利用抽取出的信息、和1个以上的更新文件生成更新数据表(步骤S40)。
更新数据表生成部214向存储部201存储新哈希表和所生成的更新数据表(步骤S45)。这时,生成的更新数据表和包含在第1更新指示中的AP识别信息建立了对应。并且,存储在存储部201中的旧哈希表被消去。
数据接收部211接收到第2更新指示(步骤S10中的“第2更新指示”)时,取得部分密钥、成为检测对象的1个以上的文件、目标路径表、及哈希表(步骤S50),并进行从步骤S20到步骤S45的动作。并且,这时输出及接收的各构成要素的指示成为第2更新指示。并且,在步骤S40生成的更新数据表是根据旧哈希表、新哈希表、及部分密钥生成。并且,在步骤S45中,将所生成的更新数据表和包含在第2更新指示中的AP识别信息建立对应。
数据接收部211接收到初始设定指示(步骤S10中的“初始设定指示”)时,取得成为篡改检测对象的1个以上的文件及目标路径表(步骤S55)。
数据接收部211向哈希表生成处理部212输出接收到的初始设定指示、1个以上的文件、及目标路径表。
哈希表生成处理部212接收到初始设定指示时,进而接收成为篡改检测对象的1个以上的文件、及目标路径表,则生成哈希表(步骤S60)。并且,关于哈希表的生成,由于在概念上与从步骤S20到步骤S35的动作相同,所以省略这里的详细说明。
哈希表生成处理部212将生成的哈希表存储在存储部中,并且向哈希表写入部204输出。哈希表写入部204从哈希表生成部203接收到哈希表时,将接收到的哈希表写入被连接的便携电话机的存储部(步骤S65)。
1.6哈希表更新时的动作概要
这里,利用图11所示的流程图说明哈希表更新时的动作概要。
便携电话机10中的更新处理部103的更新控制部162接收到更新指示(步骤S100)时,对控制部102进行中断禁止的设定(步骤S105)。
更新控制部162将存储在标志存储部161中的标志的值设定为“1”(步骤S110)。
更新控制部162向更新数据读取部163输出包含在所接收的更新开始指令中的AP识别信息。
更新文件接收部104从更新处理部103的更新数据读取部163接收到AP识别信息时,通过无线部110将接收的AP识别信息、预先存储的终端标识符、更新请求信息发送给更新服务器装置20(步骤S115)。更新文件接收部104将接收的AP识别信息存储到AP识别信息存储区域。
更新服务器装置20的更新请求处理部205通过收发部207从便携电话机10接收AP识别信息、终端标识符和更新请求信息(步骤S120)。
更新请求处理部205利用接收的AP识别信息和终端标识符,确定应发送给便携电话机10的更新数据表的版数。更新请求处理部205从存储部201取得应发送的更新数据表(步骤S125),通过收发部207将所取得的更新数据表发送给便携电话机10(步骤S130)。
便携电话机10从更新服务器装置20接收更新数据表,进行更新处理(步骤S135)。
1.7更新处理的动作
这里,用图12及图13所示的流程图说明由图11的步骤S135所示的更新处理的动作。
更新文件接收部104通过无线部110从更新服务器装置20接收到更新数据表时,将接收的更新数据表存储到表存储区域(步骤S200)。
更新文件接收部104一结束所接收的更新数据表的存储,就消去存储在AP识别信息存储区域中的AP识别信息,向更新数据读取部163输出接收完了指令。更新数据读取部163从更新文件接收部104接收表示结束了从更新服务器装置20接收更新数据表的接收完了指令。
更新数据读取部163从存储在更新文件接收部104的表存储区域中的更新数据表读取未读的1个更新信息(步骤S205)。
更新数据分析部164将由更新数据读取部163读取的更新信息分割为位置信息、数据大小、及更新数据(步骤S210)。
写入位置确定部165基于由更新数据分析部164取得的位置信息,确定存储部101中的更新数据的写入位置(步骤S215)。
更新数据写入部166将由写入位置确定部165确定的写入位置作为写入开始的开头位置,写入由更新数据分析部164取得的更新数据(步骤S220)。
更新确认部167确认更新数据写入部166的写入是否正常结束(步骤S225)。
在判断为未正常结束的情况下(步骤S225中的“是”),更新确认部167向更新数据读取部163输出异常结束指令。更新数据读取部163从更新确认部167接收异常结束指令时,再次读取与由步骤S205读取的更新信息相同的更新信息(步骤S230),并返回步骤S210。
在判断为正常结束的情况下(步骤S225中的“是”),更新确认部167向更新数据读取部163输出正常结束指令。更新数据读取部163从更新确认部167接收正常结束指令时,判断存储在更新文件接收部104的表存储区域中的更新数据表中是否存在未读的更新信息(步骤S235)。
在判断为存在的情况下(步骤S235中的“是”),更新数据读取部163返回步骤S205。在判断为不存在的情况下(步骤S235中的“否”),更新数据读取部163向更新控制部162及更新文件接收部104输出写入完了指令。更新文件接收部104从更新数据读取部163接收到写入完了指令时,消去存储在表存储区域的更新数据表150。更新控制部162从更新数据读取部163接收到写入完了指令时,向篡改检测执行部105输出表示开始篡改检测处理的检测开始指令和AP识别信息。
篡改检测执行部105从更新控制部162接收到检测开始指令和AP识别信息时,进行篡改检测处理(步骤S240)。
更新控制部162从篡改检测执行部105接收到篡改检测处理的处理结果时,判断接收到的处理结果是未被篡改的通知还是检测出篡改的通知(步骤S245)。
在判断为未检测出篡改即接收到未被篡改的通知的情况下(步骤S245中的“否”),更新控制部162向控制部102输出更新完成的通知。控制部102从更新处理部103接收到文件的更新完成的通知时,通过显示部109显示更新完成的消息(步骤S250)。
更新控制部162解除对控制部103的中断禁止(步骤S255),将存储在标志存储部161中的标志的值设为“0”(步骤S260)。
在判断为检测出篡改即接收到检测出篡改的通知的情况下(步骤S245中的“是”),更新控制部162向控制部102输出更新失败的通知。控制部102从更新处理部103接收到文件的更新失败的通知时,通过显示部109显示更新失败的消息(步骤S265)。并且,控制部102从输入部108接收到再更新的指示时,向更新处理部103输出再更新开始指令。控制部102从输入部108接收到不进行再更新的指示时,向更新处理部103输出更新结束指令。
更新控制部162从控制部102接收到再更新开始指令及更新结束指令中的某一个时,判断接收的指令是否是再更新开始指令(步骤S270)。在判断为是再更新开始指令即进行再更新的情况下(步骤S270中的“是”),更新控制部162向更新数据读取部163再次输出AP识别信息,返回步骤S200。这时,更新数据读取部163再次进行更新数据表的接收。
在更新控制部162判断为接收的指令是更新结束指令即判断为不进行再更新的情况下(步骤S270中的“否”),更新控制部162解除对控制部102的中断禁止(步骤S255),将存储在标志存储部161中的标志的值设定为“0”(步骤S260)。
1.8AP启动时的动作
这里,利用图14所示的流程图说明AP启动时的动作。
控制部102从输入部108接收篡改检测对象的AP的启动指示(步骤S300)。控制部102进行AP的启动。这时,启动的AP在本AP是篡改检测对象的情况下,通过控制部102向篡改检测执行部105输出检测开始指令和识别本AP的AP识别信息。
篡改检测执行部105从控制部102接收检测开始指令和AP识别信息时,进行篡改检测处理(步骤S305)。
控制部102从篡改检测执行部105接收篡改检测处理的处理结果时,判断接收的处理结果是未被篡改的通知还是检测出篡改的通知(步骤S310)。
在判断为未检测出篡改即接收到未被篡改的通知的情况下(步骤S310中的“否”),控制部102执行与有过启动指示的AP有关的动作(步骤S315)。
在判断为检测出篡改即接收到检测出篡改的通知的情况下(步骤S310中的“是”),控制部102结束与有过启动指示的AP有关的动作(步骤S320)。
1.9篡改检测处理的动作
这里,利用图15及图16所示的流程图,说明图12的步骤S240及图14的步骤S305中分别表示的篡改检测处理的动作。
检测控制部171从控制部102或更新处理部103的更新控制部162中的某一个接收到检测开始指令和AP识别信息时,将接收到的检测开始指令和AP识别信息向篡改检测调用部172输出。
篡改检测调用部172从检测控制部171接收到检测开始指令和AP识别信息时,从存储部101读取与接收到的AP识别信息对应的哈希表(步骤S400)。
篡改检测调用部172向篡改检测处理部173输出所读出的哈希表122、和接收到的检测开始指令及AP识别信息。篡改检测处理部173从篡改检测调用部172接收到哈希表122、检测开始指令及AP识别信息时,从存储部101读取与接收到的AP识别信息对应的部分密钥123。篡改检测处理部173利用读取出的部分密钥123、主密钥176、和特定的算法来计算篡改检测密钥(步骤S405)。
篡改检测处理部173利用计算出的篡改检测密钥和哈希计算算法,计算出对于接收到的哈希表的数据部的哈希值(步骤S410)。篡改检测处理部173判断计算出的哈希值和包含在哈希表的标题部的数据部哈希值是否一致(步骤S415)。
在判断为不一致的情况下(步骤S415中的“否”),篡改检测处理部173向检测控制部171输出检测出篡改的通知。检测控制部171从篡改检测处理部173接收检测出篡改的通知中的某一个。检测控制部171将接收到的通知向作为调用源(即,检测开始指令及AP识别信息的输出源)的控制部102或更新处理部103的更新控制部162中的某一个输出(步骤S420)。
在判断为一致的情况下(步骤S415中的“是”),篡改检测处理部173利用篡改检测密钥对数据部131进行解密(步骤S425)。并且,在解密中使用与对数据部进行加密的算法对应的解密算法。
篡改检测处理部173从解密的数据部读取未读的哈希信息(步骤S430)。
篡改检测处理部173向文件读入部174输出包含在读取出的哈希信息中的文件信息。文件读入部174从篡改检测处理部173接收到文件信息时,根据包含在所接收的文件信息中的文件名,从存储部101读取篡改检测对象的文件(步骤S435)。
文件读取部174在文件存储区域存储读取出的文件,向篡改检测处理部173输出文件读取完了指令。从文件读入部174接收表示完成了读取文件的文件读取完了指令。
篡改检测处理部173从读取出的哈希信息中取得未读的条目(步骤S440),判断取得的条目是否是最后条目(步骤S445)。
在判断为不是最后条目的情况下(步骤S445中的“否”),篡改检测处理部173读取包含在所取得的条目中的偏移量及大小,根据读取出的偏移量及大小,从由文件读取部174读取的文件中取得检测对象的块(步骤S450)。篡改检测处理部173利用计算出的篡改检测密钥和哈希计算算法计算对于所取得的块的检测用哈希值(步骤S455)。篡改检测处理部173判断计算出的检测用哈希值和包含在所取得的条目中的哈希值是否一致(步骤S460)。在判断为一致的情况下(步骤S460中的“是”),篡改检测处理部173返回步骤S440。在判断为不一致的情况下(步骤S460中的“否”),返回步骤S420。
在判断为取得的条目是最后条目的情况下(步骤S445中的“是”),篡改检测处理部173判断是否存在未读的哈希信息(步骤S465)。在判断为存在的情况下(步骤S465中的“是”),返回步骤S430。在判断为不存在的情况下(步骤S465中的“否”),篡改检测处理部173向检测控制部171输出未被篡改的通知。检测控制部171从篡改检测处理部173接收未被篡改的通知。检测控制部171向作为调用源(即,检测开始指令及AP识别信息的输出源)的控制部102或更新处理部103的更新控制部162中的某一个输出接收到的通知(步骤S470)。
1.10便携电话机10的启动时的动作
对便携电话机10的启动时的更新处理及篡改检测处理的动作进行说明。
向便携电话机10投入电源开始供电时,更新控制部162对存储在标志存储部161中的标志的值进行检查。
在标志的值为“0”的情况下,便携电话机10判断为完成了前次的更新处理,不进行更新处理及篡改检测处理。
在标志的值为“1”的情况下,判断为更新处理中的状态,对控制部102设定中断禁止。更新控制部162向更新数据读取部163输出表示更新处理的再开始的再开始指令。
更新数据读取部163从更新控制部162接收到再开始指令时,向更新文件接收部104输出接收到的再开始指令。
更新文件接收部104从更新数据读取部163接收到再开始指令时,判断是否存在存储于AP识别信息存储区域的AP识别信息。在判断为存在的情况下,便携电话机10进行图11所示的步骤S115以后的动作。
在判断为不存在存储于AP识别信息存储区域的AP识别信息的情况下,更新文件接收部104判断在表存储区域是否存储有更新数据表。
在判断为存储有更新数据表的情况下,向更新处理部103输出接收完了指令。更新处理部103的更新数据读取部163从更新文件接收部104接收接收完了指令。更新处理部103进行图12所示的步骤S205以后的动作。
在判断为未存储更新数据表的情况下,向更新数据读取部163输出不要再开始指令。更新数据读取部163接收到不要再开始指令时,向更新控制部162输出接收到的不要再开始指令。更新控制部162从更新数据读取部163接收到表示不要再开始更新处理的不要再开始指令时,解除对控制部102的中断禁止,将存储在标志存储部161的标志的值设定为“0”。
2.检测密钥和各动作的关系
图17表示用于本实施方式的各密钥的关系和利用密钥的情形的关系。
利用主密钥、部分密钥及特定的算法计算篡改检测密钥。通过密钥更新装置30的篡改检测密钥生成部302、及图15所示的步骤S405,由便携电话机10进行该生成作业。
在如下地生成哈希表时及利用了哈希表的篡改检测处理时,使用生成的篡改检测密钥。
(哈希表生成时)
在计算对于检测对象的文件中的1个以上的各块的哈希值时,使用篡改检测密钥。具体而言,对应于图10所示的步骤S20的动作。
并且,在对哈希表的数据部进行加密时,使用篡改检测密钥。具体而言,对应于图10所示的步骤S25的动作。
并且,在计算哈希表的数据部的哈希值(数据部哈希值)时,使用篡改检测密钥。计算出的哈希值被嵌入哈希表的标题部。具体而言,对应于图10所示的步骤S30的动作。
(篡改检测处理时)
在计算哈希表的数据部的哈希值时,使用篡改检测密钥。具体而言,对应于图15所示的步骤S410的动作。这时,便携电话机10通过比较计算出的哈希值和预先嵌入的哈希值(数据部哈希值)来检测有无篡改。
此外,在对哈希表的数据部进行解密时,使用篡改检测密钥。具体而言,对应于图15所示的步骤S425的动作。
此外,在计算检测对象的文件中的各块的哈希值(检测用哈希值)时,使用篡改检测密钥。具体而言,对应于图16所示的步骤S455的动作。这时,便携电话机10通过比较计算出的检测用哈希值和预先存储的哈希值来检查篡改的有无。
3.变形例
并且,基于上述实施方式说明了本发明,但是,本发明当然不限于上述实施方式。如下的情况也包含在本发明中。
(1)在上述第1实施方式中,将便携电话机用作检测篡改的装置,但是不限于此。
检测篡改的装置可以是具备通信功能的HDD记录装置/DVD记录装置、游戏机、PDA那样的设备。即,只要是能够通过更新服务器装置和网络等连接的电子设备即可。
(2)哈希表的数据部的加密考虑安全强度,数据部131的加密单位可以对数据部全体应用共通密钥密码方式中的如连锁那样的加密算法。这时的哈希表的更新单位成为哈希表全体。
(3)在上述第1实施方式中,哈希表的更新时,篡改检测对象的文件的大小增大而增加了更新前的MAC信息的条目数量时,更新服务器装置可以生成图18所示的哈希表122a。在图18中,对应于文件信息140a的MAC信息141a的最后的条目,成为指向包含在MAC信息1000中的条目1001的地址的链接条目144a。普通条目和链接条目的大小及哈希不同。各链接条目中不存储数值而存储“-”。由此,可以区分普通条目和链接条目。
链接条目144a的偏移量作为指向条目1001的地址的值,存储来自哈希表内的文件的偏移量。
这时包含在文件信息140a中的块数142a在MAC信息141a和MAC信息1000中,成为除了链接条目144a、MAC信息1000的空条目1002(最后条目)以外的条目数即“4”。
以下表示这时的哈希表的生成方法的一例。
哈希表生成处理部212读取篡改检测密钥215。并且,利用篡改检测密钥215进行旧哈希表的数据部的解密,生成被解密的旧哈希表。以下,将被解密的旧哈希表称为解密哈希表。
哈希表生成处理部212对于从数据接收部211接收的1个以上的更新文件,以分割为规定大小的块单位应用与篡改检测处理部173相同的哈希计算算法来计算哈希值,并从目标路径表读取便携电话10中的文件路径,与解密哈希表进行比较,生成数据部未被加密的哈希表。这时,在生成的哈希表的大小大于解密哈希表的文件的更新的情况下,哈希表生成处理部212将生成的哈希表变换为图18所示的利用了链接条目的哈希表。
(4)在上述第1实施方式中,将篡改检测执行部105的篡改检测处理部173和文件读入部174作为单独的结构,但是不限于此。
可以将篡改检测处理部173和文件读入部174作为一个构成要素。
(5)在上述第1实施方式中,在文件的更新时,将包含指定的AP的检测对象信息组作为更新的对象,但是不限于此。
通过1次更新指示,将所有检测对象信息组作为更新的对象。
(6)在上述第1实施方式中,仅利用更新数据表,更新了与AP有关的文件,但是不限于此。
更新服务器装置可以向便携电话机发送更新数据表和成为更新对象的1个以上的更新文件。这时,被发送的更新数据表仅由哈希表的更新信息构成。
(7)在上述第1实施方式中,检测对象的文件以预定的大小的块单位被分割,但是不限于此。
更新服务器装置通过用户的操作接收被分割的块的大小,作为输入值。由此,可以灵活地设定块的大小。
(8)在上述第1实施方式中,更新服务器装置在数据部的加密之后进行了数据部哈希值的计算,但是不限于此。
更新服务器装置可以在数据部的加密之前进行数据部哈希值的计算。
这时,执行篡改检测时,在数据部的解密后计算对数据部的哈希值,进行哈希表自身的篡改检测。
(9)在上述第1实施方式中,假设用于哈希表的数据部的加密的密钥和用于哈希计算的密钥为相同的密钥(篡改检测密钥),但是也可以不相同。
(10)在上述第1实施方式中,假设更新数据表包含哈希表的更新内容和更新文件的更新内容、及被更新的部分密钥,但是不限于此。
更新数据表可以分为哈希表用的更新数据表、更新文件用的更新数据表、及部分密钥用的更新数据表。
(11)在上述第1实施方式中,哈希表的更新基于使用便携电话机的使用者的要求,但是也可以是来自更新服务器装置的强制更新。
例如,由密钥更新装置对更新服务器装置嵌入新的篡改检测密钥的情况下,更新服务器装置将被更新的部分密钥发送给便携电话机,所以生成更新数据表,将生成的更新数据表直接向便携电话机发送。
(12)在上述第1实施方式中,其它便携电话机可以具有与便携电话机10相同的主密钥,也可以具有不同的主密钥。
在便携电话之间具有不同的主密钥的情况下,密钥更新装置管理多个主密钥,根据更新的部分密钥计算出的篡改检测密钥也不同,所以在更新服务器装置中也管理多个篡改检测密钥。
(13)可以将在上述第1实施方式中所示的哈希表作为图19所示的哈希表122b。图19所示的哈希表122b在标题部130b中具有表示哈希表的版数的哈希表版本号1010。
这时,便携电话机在向更新服务器装置发送更新请求信息时,还发送哈希表版本号1010。
更新服务器装置按照生成的哈希表的每个哈希表版本号码管理更新数据表,将对应于从便携电话机接收的哈希表版本号1010的更新数据表向便携电话机发送。
(14)在上述第1实施方式中,篡改检测处理利用包含在哈希表中的MAC信息具有的所有条目进行了篡改检测,但是不限于此。
在进一步要求速度的情况下,在各MAC信息中,偏移量可以是仅检查第0个条目的顺序。并且,可以是读入文件信息的块数、检查其一半部分块数的顺序。
即,篡改检测处理只要是在各MAC信息中检查1个以上的条目的即可。
(15)在上述第1实施方式中,设为哈希表的更新时及检测对象的AP启动时执行篡改检测,但是不限于此。
可以在便携电话机的启动中执行篡改检测,也可以在执行检测对象的AP时以后台方式执行。
或者,在该便携电话机的启动中,便携电话机可以定期执行篡改检测,也可以启动检测对象的AP的期间定期执行对于启动的AP的篡改检测。
(16)在图15所示的步骤S425中,便携电话机对数据部整体进行了解密,但是不限于此。
便携电话机可以是按MAC信息的每个条目进行解密。
这时,便携电话机执行图15所示的步骤S415之后,省略步骤S425,执行从步骤S430到步骤S440。这时,读取出的条目被加密。然后,便携电话机对读取出的条目进行解密,进行步骤S445以后的步骤。或者,便携电话机可以在执行图15所示的步骤S415之后,省略步骤S425,执行从步骤S430到步骤S445,然后进行解密。
(17)在上述第1实施方式中,在哈希表的更新时,篡改检测对象的文件大小变小的情况下,将包含在不要的条目中的大小设定为“0”。
图20表示文件的块数量从“8”减小为“7”的情况的一例。
这时,在更新前即哈希信息1020中,包含在第8个块的条目1021中的大小存储120。通过文件的更新,块数量从“8”减少为“7”时,将包含在第8个块的条目1031中的大小设为“0”,生成哈希信息1030。这时,条目1031当然也成为更新的对象。
在执行篡改检测时,当包含在条目中的大小为“0”的情况下,便携电话机忽视该条目,不进行对该条目的篡改的检查。
并且,包含在条目1031中的哈希值设为更新前的值,但是也可以将哈希值设为“0”。
由此,便携电话机能够将存储为大小的值用作判断包含该大小的条目是否是篡改检测的对象的判断信息。即,若值为“0”,则判断为不是篡改检测的对象,在为“0”以外的值的情况下,能够判断为是篡改检测的对象。
(18)在2个便携电话机(这里,设为便携电话机11、12)中,便携电话机11具备包含功能A(例如,声音数据的再现功能)的第1AP、和包含功能B(例如,将内容加密并存储在SD卡中的SD-Binding功能)的第2AP,便携电话机12具备包含功能A及功能B的两者的综合AP时,如由上述第1实施方式所示,可以对每个AP赋予不同的哈希表,也可以如下所示赋予1个哈希表。
图21表示对第1AP、第2AP、及综合AP赋予的1个哈希表122c的数据结构的一例。并且,标题部130c的数据结构与由第1实施方式所示的哈希表122的标题部130的数据结构相同,所以省略在此的说明。
与第1实施方式所示的哈希表122不同的点是对文件信息追加了类别这一点。类别用于识别在执行篡改检测时使用的哈希信息,例如由数值1、2、...及ALL构成。若对类别设定ALL,则表示包含在哈希表中的所有哈希信息用于检测,若设定数值,则具有包含所设定的类别(数值)的文件信息的哈希信息成为检测对象。
这时,各AP(第1AP、第2AP、及综合AP)存储有自身的类别,将启动时存储的类别向篡改检测执行部传递。这里,对第1AP、第2AP、及综合AP的每一个设定有类别1、2、ALL。
在便携电话机11中,若启动第1AP,则如图21所示,具有包含类别“1”的文件信息1040的哈希信息134c成为篡改检测的对象。
在便携电话机11中,若启动第2AP,则具有包含类别“2”的文件信息1041的哈希信息135c成为篡改检测的对象。
在便携电话机12中,当启动综合AP时,综合AP存储着类别“ALL”,所以包含在数据部131c中的所有哈希信息成为篡改检测的对象。
(19)在上述第1实施方式所示的哈希表中,对成为篡改检测的对象的至少1个以上的文件设定优先执行篡改检测的优先级。这时,例如,对于优先进行篡改检测的文件,在AP的启动时执行篡改检测,对于其它篡改检测对象的文件,完成AP的启动,并在具有AP的功能的动作中以后台方式执行篡改检测。
图22表示利用了优先级的哈希表122d的数据结构的一例。并且,标题部130d的数据结构与第1实施方式所示的哈希表122的标题部130的数据结构同样,所以省略在此的说明。
与第1实施方式所示的哈希表122不同点在于,在数据部131d上追加了由第1偏移量1050和第2偏移量1051构成的组合。
第1偏移量是表示优先进行篡改检测的哈希信息的开头位置的偏移量值,第2偏移量是表示优先进行篡改检测的哈希信息的最终位置的偏移量值。
例如,在第1偏移量中存储有表示哈希信息134d的开头位置的偏移量值、第2偏移量中存储有表示哈希信息134d的最终位置的偏移量值的情况下,对文件名“file_1”的文件的篡改检测是在AP启动时进行,对其它文件的篡改检测是在动作中以后台方式进行。
此外,在第1偏移量中存储有表示哈希信息134d的开头位置的偏移量值、第2偏移量中存储有表示哈希信息136d的最终位置的偏移量值的情况下,对文件名“file_1”的文件及文件名“file_2”的各文件的篡改检测是在AP启动时进行,对其它文件的篡改检测是在动作中以后台方式进行。
(20)在上述第1实施方式中,对1个AP文件组即1个AP赋予了1个哈希表,但是不限于此。
对1个以上的AP文件组可以赋予1个哈希表及部分密钥。
图23表示这时的存储部101的结构。
在图23中,存储部101具有1个检测对象信息组1200。
检测对象信息组1200具有1个以上的AP文件组1060、1061、...1062、哈希表122e、以及部分密钥123e。
在哈希表122e的数据部中包含有在AP文件组1060、1061、...1062中的各文件的哈希信息。
包含在检测对象信息群1200中的1个AP被启动的情况下,便携电话机可以将包含在对象信息组1200中的所有文件作为篡改检测对象,仅将有关启动的AP的1个以上的文件设为篡改检测的对象。
(21)在上述第1实施方式中,在接通便携电话机10的电源时,更新控制部162进行标志的值的检查,在标志的值为“1”的情况下,自动进行了文件的更新,但不限于此。
在更新控制部162判断为标志的值为“1”时,便携电话机10通知是否再次进行文件的更新,并在从用户接收到进行再次更新的指示的情况下,可以再次进行文件的更新。
此外,在自动进行文件的更新的情况下,可以向用户通知再次更新。
或者,在便携电话机10的电源接通时,更新控制部162进行标志的值的检查,在标志的值为“1”的情况下,可以仅对未更新的数据进行更新。即,便携电话机10可以从更新处理的途中(电源切断时正在动作的时刻)进行更新的动作。
(22)在上述第1实施方式中,哈希表的数据部被加密,但是不限于此。
数据部可以不被加密。
(23)本发明中的应用文件是应用软件本身、或从应用软件调用的编码器、解密器、驱动器、提供应用软件动作的环境的Java(注册商标)VM那样的虚拟执行环境等。此外,可以在应用文件的概念中包含部分密钥。
(24)在上述第1实施方式中,假设密钥更新装置从外部装置取得被更新的部分密钥,但是不限于此。
可以是由密钥更新装置生成新的部分密钥来取得。
此外,主密钥可以由密钥更新装置存储,也可以从外部装置取得。
(25)在上述第1实施方式中,假设包含在更新数据表中的更新数据记录有作为应更新的信息的文件中成为更新对象的1个以上的块、哈希表中的哈希表文件大小、数据部哈希值、文件信息、包含在MAC信息中的条目等,但是不限于此。
代替将应更新的信息的文件中成为更新对象的1个以上的块记录为更新数据,可以仅记录用于执行应用软件的指令语句等的被更新的数据。
此外,可以将作为更新对象的块包含在本申请发明的“数据”的概念中。
(26)在上述第1实施方式中,作为篡改检测用的值(篡改检测值)利用哈希值进行了篡改的检测,但是不限于此。
可以使用与哈希值不同的值和数据。例如,可以将对验证对象的数据加密的结果等用作篡改检测值。
(27)上述的各装置具体是由微处理器、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等构成的计算机系统。在上述RAM或硬盘单元中存储有计算机程序。上述微处理器通过随着上述计算机程序动作,各装置实现其功能。这里,计算机程序是为了实现规定的功能而组合了多个表示对计算机的指令的指令代码而构成的。
(28)构成上述各装置的构成要素的一部分或全部,可以由1个系统LSI(Large Scale Inegration:大规模集成电路)构成。系统LSI是将多个构成部集成在1个芯片上来制造的超多功能LSI,具体是包含微处理器、ROM、RAM等构成的计算机系统。在上述RAM中,存储有计算机程序。通过上述微处理器随着上述计算机程序动作,系统LSI实现该功能。
这里,设为系统LSI,但是因集成度不同,有时称为IC、LSI、系统LSI、超LSI、超级LSI。
此外,集成电路化的方法不限于LSI,可以通过专用电路或通用处理器实现。在LSI制造后,可以利用可进行规划的FPGA(FieldProgrammable Gate Array)或可重构LSI内部的电路单元的连接或设定的可重构(reconfiguration)处理器。
进而,若随着半导体技术的进步或衍生的其它技术,出现替换LSI的集成电路技术,当然也可以利用该技术进行功能块的集成。有可能应用生物技术。
(29)构成上述各装置的构成要素的一部分或全部可以由可拆卸于各装置的IC卡或单独的块构成。上述IC卡或上述块是由微处理器、ROM、RAM等构成的计算机系统。上述IC卡或上述块可以包含上述的超多功能LSI。通过微处理器随着计算机程序动作,上述IC卡或上述块实现该功能。该IC卡或该块可以具有防篡改性。
(30)本发明可以是上述所示的方法。并且,也可以是将这些方法通过计算机实现的计算机程序,也可以是由上述计算机程序构成的数字信号。
此外,本发明也可以是将上述计算机程序或上述数字信号记录在计算机可读取的记录介质、例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等的形式。此外,也可以是记录在这些记录介质中的上述数字信号。
此外,本发明可以将上述计算机程序或上述数字信号经由电通信线路、无线或有线通信线路、以因特网为代表的网络等传送。
此外,本发明可以是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器随着上述计算机程序动作。
此外,可以是将上述程序或上述数字信号记录在上述记录介质中传送,或者将上述程序或上述数据信号经由上述网络等传送,从而可以通过独立的其它计算机系统实施。
(31)还可以分别组合上述实施方式及上述变形例。
4.总结
根据本发明,可以提供能够在可更新程序的电子设备中实现的篡改检测方式。此外,使更新时的更新部位停留于最小限度,因此,可以抑制更新时花费的通信成本。进而根据电子设备具有的规格,可以提供可调节执行时的速度的篡改检测方式。
此外,在不同于更新服务器的其它场所管理篡改检测时所需要的密钥的生成所需的信息,因此,可以提供万一该密钥被泄露也可以发行密钥以及更新电子设备的密钥的篡改检测方式。
工业可利用性
构成上述所示的程序更新系统的各装置可以在电器设备制造产业中经营性地即反复且持续地利用。
此外,本发明的可更新程序的电子设备中的篡改检测方式,在以需要安全执行程序的便携电话为代表的组装设备具有程序更新功能的情况下有用。

Claims (20)

1.一种电子设备,具有与应用软件的动作有关的应用文件,通过网络更新上述应用文件,其特征在于,具备:
存储单元,存储有由1个以上的数据构成的应用文件;
接收单元,通过上述网络从外部装置接收更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息;
更新处理单元,将上述位置信息表示的位置上存在的数据改写为上述更新数据,仅更新上述应用文件的一部分;及
篡改检测执行单元,确认所更新的上述应用文件是否被篡改,
上述应用文件被分割为1个以上的块;
上述更新数据包含在上述1个以上的块中的至少1个以上的更新对象块中,
上述存储单元存储有篡改检测表,该篡改检测表具有对应于1个以上的上述各块的基准篡改检测值;
上述接收单元还接收由对应于1个以上的上述各更新对象块的新的基准篡改检测值和篡改检测位置信息构成的组,所述篡改检测位置信息表示上述新的基准篡改检测值在上述篡改检测表中的位置,
上述更新处理单元还利用1个以上的新的基准篡改检测值和上述篡改检测值位置信息更新上述篡改检测表,
上述篡改检测执行单元仅在上述更新的篡改检测表是合法的表的情况下,根据上述更新的篡改检测表具有的至少1个以上的基准篡改检测值,确认成为篡改检测的对象的块是否被篡改。
2.如权利要求1所述的电子设备,其特征在于,
上述接收单元接收至少1个以上的更新数据和位置信息的组;
上述更新处理单元具备:
位置确定部,根据由上述位置信息表示的位置,确定上述应用文件的更新位置;
写入部,将所确定的上述更新位置作为上述更新数据的写入开始位置写入上述更新数据;及
更新控制部,控制成进行上述位置确定部和上述写入部的处理,直到完成由上述接收单元接收的1个以上的所有更新数据的写入。
3.如权利要求2所述的电子设备,其特征在于,
上述更新控制部控制成当完成所有更新数据的写入时开始上述篡改检测执行单元的处理。
4.如权利要求3所述的电子设备,其特征在于,
上述更新处理单元还具备:
标志存储部,存储有表示是第1信息或第2信息的标志,所述第1信息表示是应用文件的更新中,所述第2信息表示不是更新中;及
标志变更部,变更上述标志表示的信息;
在上述接收单元接收至少1个以上的更新数据和位置信息的组时,上述标志变更部将上述标志的信息变更为上述第1信息,在上述篡改检测执行单元未检测出篡改时,上述标志变更部将上述标志的信息变更为上述第2信息。
5.如权利要求4所述的电子设备,其特征在于,
上述更新控制部进一步进行控制为,当向上述电子设备接通电源时,确认上述标志表示的信息,在是第1信息的情况下进行上述位置确定部和上述写入部的处理。
6.如权利要求1所述的电子设备,其特征在于,
上述篡改检测执行单元在启动上述应用软件时开始处理,并仅在上述篡改检测表是合法的表的情况下,根据上述篡改检测表具有的至少1个以上的篡改检测值,确认成为篡改检测的对象的块是否被篡改。
7.如权利要求6所述的电子设备,其特征在于,
上述篡改检测单元计算作为篡改检测对象的块的检测用篡改检测值,判断计算出的检测用篡改检测值和作为篡改检测对象的块的基准篡改检测值是否一致,在判断为一致的情况下设为上述应用文件未被篡改,在不一致的情况下设为上述应用文件被篡改。
8.如权利要求7所述的电子设备,其特征在于,
上述存储部存储有部分密钥,
上述篡改检测执行单元被防篡改化并存储主密钥,利用上述部分密钥和上述主密钥生成篡改检测密钥,利用生成的篡改检测密钥,计算出上述检测用篡改检测值。
9.如权利要求8所述的电子设备,其特征在于,
上述接收单元接收不同于上述部分密钥的其它部分密钥、和表示上述部分密钥存储在上述存储部中的位置的密钥位置信息;
上述更新处理单元根据上述密钥位置信息,将上述部分密钥更新为上述其它部分密钥。
10.如权利要求6所述的电子设备,其特征在于,
上述篡改检测表由数据部和标题部构成,所述数据部包含对应于上述1个以上的各块的基准篡改检测值,所述标题部包含对上述数据部的数据部基准篡改检测值;
上述篡改检测执行单元计算对应于上述数据部的数据部检测用篡改检测值,在计算出的上述数据部检测用篡改检测值和上述数据部基准篡改检测值一致的情况下,设为上述篡改检测表是合法的。
11.如权利要求10所述的电子设备,其特征在于,
上述数据部被加密,
上述篡改检测执行单元计算对应于被加密的上述数据部的数据部检测用篡改检测值,在上述篡改检测表是合法的表的情况下,将被加密的上述数据部进行解密。
12.如权利要求6所述的电子设备,其特征在于,
在上述篡改检测表中,对于各基准篡改检测值,对应着表示对应的块是否应用作篡改检测的对象的判断信息;
在上述判断信息表示不将块作为篡改检测的对象的情况下,上述篡改检测执行单元不进行对该块的篡改检测。
13.如权利要求6所述的电子设备,其特征在于,
上述篡改检测表包括1个以上的组,该组是将对于上述1个以上的各块的基准篡改检测值、和表示成为篡改检测的对象的应用软件的类别的应用类别相对应起来的组;
上述篡改检测执行单元,根据与表示启动的应用软件的类别的应用类别相关联的、至少1个以上的基准篡改检测值,确认成为篡改检测的对象的块是否被篡改。
14.如权利要求6所述的电子设备,其特征在于,
具有多个与上述应用软件的动作有关的应用文件,
上述应用文件的每一个被分割为1个以上的块;
上述篡改检测表对于各应用文件将对应于1个以上的各块的基准篡改检测值存储为基准值组,并具有范围信息,该范围信息表示1个以上的上述基准值组中的、上述应用软件启动时用于篡改检测的至少1个以上的基准值组的范围;
在上述应用软件启动时,上述篡改检测执行单元利用由上述篡改检测表具有的上述范围信息表示的至少1个以上的基准值组,确认成为篡改检测的对象的块是否被篡改。
15.如权利要求2所述的电子设备,其特征在于,
上述更新处理单元及上述篡改检测执行单元被防篡改化。
16.如权利要求1所述的电子设备,其特征在于,
上述篡改检测执行单元还确认所更新的上述应用文件在启动上述应用软件时是否被篡改。
17.如权利要求1所述的电子设备,其特征在于,
上述应用文件包括对应于第1功能的第1应用文件和对应于第2功能的第2应用文件;
上述存储单元还存储:(i)用于检测上述第1应用文件是否被篡改的第1基准篡改检测值;(ii)用于识别上述第1基准篡改检测值的第1识别信息;(iii)用于检测上述第2应用文件是否被篡改的第2基准篡改检测值;以及(iv)用于识别上述第2基准篡改检测值的第2识别信息;
当上述存储单元将上述第1应用文件和上述第2应用文件存储为独立的应用文件时,上述篡改检测执行单元进行下列操作:(a)根据在上述第1应用文件启动时由上述第1识别信息所识别的上述第1基准篡改检测值,检查上述第1应用文件是否被篡改;以及(b)根据在上述第2应用文件启动时由上述第2识别信息所识别的上述第2基准篡改检测值,检查上述第2应用文件是否被篡改;
当上述存储单元将上述第1应用文件和上述第2应用文件存储为一个完整的应用文件时,上述篡改检测执行单元根据在上述一个完整的应用文件启动时分别由上述第1识别信息和上述第2识别信息所识别的上述第1基准篡改检测值和上述第2基准篡改检测值,检查上述一个完整的应用文件是否被篡改。
18.如权利要求1所述的电子设备,其特征在于,
上述存储单元还存储:(i)多个应用文件,该多个应用文件中的每一个由1个以上的数据构成;(ii)对应于上述1个以上的数据中的每一个的一个基准篡改检测值;(iii)表示基准篡改检测值优先执行篡改检测的开始位置的第1位置信息;以及(iv)表示基准篡改检测值优先执行篡改检测的结束位置的第2位置信息;
上述篡改检测执行单元进行下列操作:(a)检查在包括与从上述第1位置信息到上述第2位置信息的基准篡改检测值相对应的数据的应用软件启动时,该数据是否被篡改;以及(b)在包括不与从上述第1位置信息到上述第2位置信息的基准篡改检测值相对应的另外的数据的应用软件正被执行时,在后台对该另外的数据执行篡改检测。
19.一种用于电子设备的更新方法,该电子设备具有与应用软件的动作有关的应用文件、并通过网络更新上述应用文件,其特征在于,
上述电子设备具备存储单元,该存储单元存储有由1个以上的数据构成的应用文件;
上述更新方法包括:
接收步骤,通过上述网络从外部装置接收更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息;
更新处理步骤,将上述位置信息表示的位置上存在的数据改写为上述更新数据,更新上述应用文件;及
篡改检测执行步骤,确认所更新的上述应用文件是否被篡改,
上述应用文件被分割为1个以上的块;
上述更新数据包含在上述1个以上的块中的至少1个以上的更新对象块中,
上述存储单元存储有篡改检测表,该篡改检测表具有对应于1个以上的上述各块的基准篡改检测值;
上述接收步骤还接收由对应于1个以上的上述各更新对象块的新的基准篡改检测值和篡改检测位置信息构成的组,所述篡改检测位置信息表示上述新的基准篡改检测值在上述篡改检测表中的位置,
上述更新处理步骤还利用1个以上的新的基准篡改检测值和上述篡改检测值位置信息更新上述篡改检测表,
上述篡改检测执行步骤仅在上述更新的篡改检测表是合法的表的情况下,根据上述更新的篡改检测表具有的至少1个以上的基准篡改检测值,确认成为篡改检测的对象的块是否被篡改。
20.一种集成电路,是电子设备的集成电路,该电子设备具有与应用软件的动作有关的应用文件、并通过网络更新上述应用文件,其特征在于,
上述电子设备具存储单元,该存储单元存储有由1个以上的数据构成的应用文件;
上述集成电路具备:
接收单元,通过上述网络从外部装置接收更新数据、和表示在上述应用文件中用上述更新数据更新的位置的位置信息;
更新处理单元,将上述位置信息表示的位置上存在的数据改写为上述更新数据,仅更新上述应用文件的一部分;及
篡改检测执行单元,确认所更新的上述应用文件是否被篡改,
上述应用文件被分割为1个以上的块;
上述更新数据包含在上述1个以上的块中的至少1个以上的更新对象块中,
上述存储单元存储有篡改检测表,该篡改检测表具有对应于1个以上的上述各块的基准篡改检测值;
上述接收单元还接收由对应于1个以上的上述各更新对象块的新的基准篡改检测值和篡改检测位置信息构成的组,所述篡改检测位置信息表示上述新的基准篡改检测值在上述篡改检测表中的位置,
上述更新处理单元还利用1个以上的新的基准篡改检测值和上述篡改检测值位置信息更新上述篡改检测表,
上述篡改检测执行单元仅在上述更新的篡改检测表是合法的表的情况下,根据上述更新的篡改检测表具有的至少1个以上的基准篡改检测值,确认成为篡改检测的对象的块是否被篡改。
CN200680019338A 2005-06-01 2006-05-30 电子设备、用于电子设备的更新方法和集成电路 Active CN100578522C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP161358/2005 2005-06-01
JP2005161358 2005-06-01

Publications (2)

Publication Number Publication Date
CN101189617A CN101189617A (zh) 2008-05-28
CN100578522C true CN100578522C (zh) 2010-01-06

Family

ID=37481583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680019338A Active CN100578522C (zh) 2005-06-01 2006-05-30 电子设备、用于电子设备的更新方法和集成电路

Country Status (6)

Country Link
US (1) US7934256B2 (zh)
EP (1) EP1887731A1 (zh)
JP (1) JP4891902B2 (zh)
KR (1) KR20080013940A (zh)
CN (1) CN100578522C (zh)
WO (1) WO2006129654A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL133584A (en) * 1999-12-19 2010-02-17 Enco Tone Ltd Method for the acoustic encodification of dynamic identification codes
JP4640083B2 (ja) * 2005-09-29 2011-03-02 セイコーエプソン株式会社 デバイス管理システム
JP4751785B2 (ja) * 2006-07-31 2011-08-17 富士通株式会社 伝送装置およびソフトウェア自動更新方法
US8412926B1 (en) * 2007-04-11 2013-04-02 Juniper Networks, Inc. Using file metadata for data obfuscation
US20100191949A1 (en) * 2007-07-26 2010-07-29 Panasonic Corporation Information processing terminal and falsification verification method
JP2009053901A (ja) * 2007-08-27 2009-03-12 Seiko Epson Corp プリンタ
CN101382885B (zh) * 2007-09-06 2012-05-09 联想(北京)有限公司 一种数据文件的多版本控制方法及装置
US8413130B2 (en) * 2007-10-03 2013-04-02 International Business Machines Corporation System and method for self policing of authorized configuration by end points
US8806220B2 (en) * 2009-01-07 2014-08-12 Microsoft Corporation Device side host integrity validation
US8225316B1 (en) * 2009-02-11 2012-07-17 Symantec Corporation Methods and systems for creating and applying patches for virtualized applications
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
JP5681028B2 (ja) * 2010-04-26 2015-03-04 パナソニック株式会社 改ざん監視システム、管理装置及び管理方法
US8977739B2 (en) * 2010-05-03 2015-03-10 Salesforce.Com, Inc. Configurable frame work for testing and analysis of client-side web browser page performance
WO2012124270A1 (ja) * 2011-03-15 2012-09-20 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
JP5708107B2 (ja) 2011-03-23 2015-04-30 日本電気株式会社 重複ファイル検出装置
CN102831362B (zh) * 2012-07-25 2014-12-10 飞天诚信科技股份有限公司 一种安全生产智能密钥设备的方法及装置
US9552296B2 (en) * 2013-03-15 2017-01-24 International Business Machines Corporation Verifying shared memory integrity
US9633227B2 (en) * 2013-07-29 2017-04-25 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and system of detecting unauthorized data modification
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
CN105335181A (zh) * 2014-08-06 2016-02-17 中兴通讯股份有限公司 一种实现ota升级的方法和终端
CN110377310B (zh) * 2014-11-12 2023-04-07 松下电器(美国)知识产权公司 更新管理方法、更新管理装置以及计算机可读取的记录介质
CN111512593B (zh) 2018-01-19 2023-08-29 瑞萨电子株式会社 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
JP7000895B2 (ja) * 2018-02-09 2022-01-19 株式会社デンソー 配布対象データの配布システム、及び配布対象データの取得方法
JP6697038B2 (ja) * 2018-07-31 2020-05-20 日本電信電話株式会社 情報処理装置、検証方法および検証プログラム
CN111135581B (zh) * 2019-12-26 2023-09-12 网易(杭州)网络有限公司 游戏更新的方法与装置
JP7034390B1 (ja) * 2021-04-07 2022-03-11 三菱電機株式会社 コード補正装置、および、コード補正方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6191701B1 (en) * 1995-08-25 2001-02-20 Microchip Technology Incorporated Secure self learning system
US6026293A (en) 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6453383B1 (en) * 1999-03-15 2002-09-17 Powerquest Corporation Manipulation of computer volume segments
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
JP3798605B2 (ja) * 2000-06-30 2006-07-19 株式会社東芝 情報配信方法及び情報配信装置
JP2002070636A (ja) * 2000-08-31 2002-03-08 Suzuki Motor Corp 車載電子制御装置、データ書換システム、データ書換方法、及び記憶媒体
EP1337917A4 (en) * 2000-11-17 2009-04-08 Hewlett Packard Development Co SYSTEM AND METHOD FOR UPDATING AND DISTRIBUTING INFORMATION
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US20020181732A1 (en) * 2001-04-10 2002-12-05 Motorola, Inc Method of collaborative watermarking of a digital content
JP2003044155A (ja) * 2001-07-30 2003-02-14 Hitachi-Lg Data Storage Inc ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US7558953B2 (en) * 2002-01-18 2009-07-07 Telefonaktiebolaget L M Ericsson (Publ) Loading data into a mobile terminal
JP2003317387A (ja) * 2002-04-16 2003-11-07 Matsushita Electric Ind Co Ltd 情報記録装置および記録媒体への情報記録方法
JP4475894B2 (ja) 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
EP1603001B1 (en) 2002-08-01 2007-10-31 Matsushita Electric Industrial Co., Ltd. Apparatusses and methods for decrypting blocks of data and locating the decrypted blocks of data in memory space used for execution
JP2004152136A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム
US7337309B2 (en) * 2003-03-24 2008-02-26 Intel Corporation Secure online BIOS update schemes
JP4257150B2 (ja) * 2003-05-16 2009-04-22 沖電気工業株式会社 印刷文書の改ざん検出装置および改ざん検出方法
JP4462852B2 (ja) * 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US20040268068A1 (en) * 2003-06-24 2004-12-30 International Business Machines Corporation Efficient method for copying and creating block-level incremental backups of large files and sparse files
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
EP1519530A1 (en) * 2003-09-29 2005-03-30 STMicroelectronics S.r.l. Method for establishing an encrypted communication by means of keys
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
US7673148B2 (en) * 2004-10-15 2010-03-02 Microsoft Corporation Versioning component for applications
US7310716B2 (en) * 2005-03-04 2007-12-18 Emc Corporation Techniques for producing a consistent copy of source data at a target location
US7177994B2 (en) * 2005-03-04 2007-02-13 Emc Corporation Checkpoint and consistency markers
US7822200B2 (en) * 2005-03-07 2010-10-26 Microsoft Corporation Method and system for asymmetric key security

Also Published As

Publication number Publication date
US7934256B2 (en) 2011-04-26
KR20080013940A (ko) 2008-02-13
EP1887731A1 (en) 2008-02-13
JP4891902B2 (ja) 2012-03-07
CN101189617A (zh) 2008-05-28
WO2006129654A1 (ja) 2006-12-07
US20090193521A1 (en) 2009-07-30
JPWO2006129654A1 (ja) 2009-01-08

Similar Documents

Publication Publication Date Title
CN100578522C (zh) 电子设备、用于电子设备的更新方法和集成电路
CN100484159C (zh) 便携式信息终端和数据保护方法
EP1479187B2 (en) Controlling access levels in phones by certificates
CN1816192B (zh) 用于应用的执行的安全管理的方法
US8438402B2 (en) Electronic terminal, control method, computer program and integrated circuit
CN101300583B (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
JP5126447B1 (ja) アプリケーションプログラムの実行方法
US20050120232A1 (en) Data terminal managing ciphered content data and license acquired by software
US20080162949A1 (en) Program Conversion Device and Program Execution Device
CN110858249B (zh) 一种数据库文件加密方法、解密方法和相关装置
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
KR20080032228A (ko) 보안 소프트웨어 갱신
US20080010686A1 (en) Confidential Information Processing Device
CN105843653A (zh) 一种安全应用配置方法及装置
KR100790602B1 (ko) 디바이스 제어기, 디바이스 제어 방법 및 디바이스 제어프로그램이 저장된 기록 매체
KR20070105989A (ko) 보안처리장치 및 보안처리 시스템
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
EP1950680A1 (en) Communication terminal device, server terminal device, and communication system using the same
CN102622251A (zh) 导航软件升级管理的方法及服务器
JP5056995B1 (ja) 改竄検知が可能なアプリケーションプログラムの配布実行方法
CN109977692B (zh) 数据处理方法和装置、存储介质及电子设备
WO1999041651A2 (en) Method for protecting bytecode
CN112068779A (zh) 一种数据存储系统
CN107862202A (zh) 软件禁用处理方法和装置
CN112866235B (zh) 一种数据处理方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant