首页> 中国专利> 信息处理装置、管理装置、非法模块检测系统、非法模块检测方法、记录非法模块检测程序的记录媒体、管理方法、记录管理程序的记录媒体和集成电路

信息处理装置、管理装置、非法模块检测系统、非法模块检测方法、记录非法模块检测程序的记录媒体、管理方法、记录管理程序的记录媒体和集成电路

摘要

本发明的目的在于不向检测模块通知保护控制模块的密钥数据或功能,而进行保护控制模块的篡改检测,本发明的检测模块通过验证保护控制模块进行的应用的解密处理的输入数据与输出数据的对应是否正确,进行保护控制模块的篡改检测。进而,本发明通过由多个检测模块分别验证不同的分割数据,能够防止应用的输出数据泄漏到检测模块。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-11-12

    授权

    授权

  • 2012-09-05

    实质审查的生效 IPC(主分类):G06F21/22 申请日:20100916

    实质审查的生效

  • 2011-11-30

    公开

    公开

说明书

技术领域

本发明涉及一种确定有可能进行非法动作的模块的技术。

背景技术

近年来,为了使具有隐匿数据的应用程序不被有恶意的第三者(下面称 为“攻击者”)解析,开发出利用软件来保护应用程序的技术。

作为利用软件来保护应用程序的技术,例如有使用哈希值的篡改验证、 或在不利用应用程序时加密并保存、仅在利用时才解密并加载到存储器的 解密加载功能等。

但是,即便利用这种技术,保护应用程序的软件(下面称为“保护控制 模块”)自身也有可能被攻击者篡改。若保护控制模块被篡改,则应用程序 曝露于攻击者的攻击之下。因此,使用进行保护控制模块的篡改检测的检 测模块,来进行保护控制模块的篡改检测。

检测模块读入保护控制模块的全部数据,计算MAC(Message  Authentication Code:消息认证码)值,从而进行保护控制模块的篡改检测。

先行技术文献

专利文献

专利文献1:日本专利第3056732号公报

专利文献2:WO2008/099682

非专利文献

非专利文献1:冈本龙明,山本博资,“现代暗号”,产业图书(1997年)

非专利文献2:ITU-T Recommendation X.509(1997E):Information  Technology-Open Systems Interconnection-The Directory:Authentication  Framework,1997

非专利文献3:F.Preparata,G.Metze and R.T.Chien,“On The  Connection Assignment Problem of Diagnosable Systems,”IEEE Trans. Electronic Computers,vol.16,pp.848-854,1968.

发明的概要

发明要解决的问题

但是,在进行保护控制模块的篡改检测的检测模块被篡改、安全性恶 化的情况下,存在保护控制模块中包含的密钥数据或保护控制模块的功能 自身被检测模块非法利用的危险性。如果这样,则有可能通过检测模块来 安装非法应用程序,通过该应用程序泄漏用户的个人信息或内容等。

发明内容

本发明是鉴于上述问题而做出的,其目的在于,提供一种信息处理装 置、管理装置、非法模块检测系统、非法模块检测方法、记录非法模块检 测程序的记录媒体、管理方法、记录管理程序的记录媒体和集成电路,不 用向检测模块通知保护控制模块的密钥数据或功能,就可进行保护控制 模块的篡改检测。

用于解决问题的手段

为了实现上述目的,本发明的信息处理装置,包括具有保护应用的功 能的保护控制模块和多个检测模块,其特征在于,所述保护控制模块具备 解密单元,加密后的所述应用作为输入数据而被输入,将所述输入数据进 行解密,并将解密结果作为输出数据来输出;分割单元,将所述输出数据 分割为至少k(k≥2)个分割数据;以及分配单元,将分割后的k个分割数据 分配给任一检测模块,所述多个检测模块分别具备验证单元,该验证单元 使用被分配的分割数据、根据所述输入数据和所述解密单元进行了正常动 作时所期望的分割数据的值来生成的验证数据、以及输入数据,判断被分 配的分割数据是否正确。

发明效果

根据本发明,各检测模块不进行使用保护控制模块自身的数据的验证, 而验证保护控制模块执行的应用的解密处理,所以能够防止向各检测模块 泄漏保护控制模块所具有的隐匿数据。

另外,根据本发明,多个检测模块分别对不同的分割数据进行验证, 所以能够防止对各检测模块泄漏应用的数据。

附图说明

图1是实施方式1中的非法模块检测系统1的整体结构图。

图2是实施方式1中的保护控制模块120的框图。

图3是实施方式1中的检测模块131的框图。

图4是实施方式1中的设备100的硬件结构图。

图5是实施方式1中的设备100的软件分层图。

图6是实施方式1中的判断部210的框图。

图7是实施方式1中的验证基数据分发部220的框图。

图8是表示实施方式1中的非法模块检测系统1的整体动作的流程图。

图9是实施方式1中的初始设计处理的时序图。

图10是实施方式1中的检测模块初始化处理的流程图。

图11是实施方式1中的验证基数据生成处理的流程图。

图12是用于说明实施方式1中的数据分割的图。

图13是表示实施方式1中的分割数据1的验证数据(证书)701的数据 结构的图。

图14是表示实施方式1中的分割数据2的验证数据(证书)702的数据 结构的图。

图15是表示实施方式1中的分割数据3的验证数据(证书)703的数据 结构的图。

图16是实施方式1中的检测处理的时序图。

图17是实施方式1中的检测处理的时序图。

图18是实施方式1中的验证基数据更新处理的时序图。

图19是实施方式1中的相互监视处理的时序图。

图20是实施方式2中的检测处理的时序图。

图21是实施方式2中的检测处理的时序图。

图22是实施方式2中的检测处理的时序图。

图23是实施方式3中的保护控制模块120a的框图。

图24是实施方式3中的检测模块131a的框图。

图25是实施方式3中的验证基数据分发部220a的框图。

图26是表示实施方式3中的非法模块检测系统的整体动作的流程图。

图27是实施方式3中的初始设计处理的时序图。

图28是实施方式3中的初始设计处理的时序图。

图29是实施方式3中的检测模块初始化处理的流程图。

图30是实施方式3中的解析判断处理的时序图。

图31是实施方式3中的相互认证处理的时序图。

图32是实施方式3中的相互认证处理的时序图。

图33是实施方式3中的恢复处理的流程图。

图34是实施方式3中的相互监视处理的时序图。

图35是实施方式3中的更新处理的时序图。

图36是实施方式3中的更新处理的时序图。

图37是用于说明实施方式3中的相互监视处理与更新处理的联携动作 的图。

图38是实施方式3中的再加密处理的时序图。

图39是实施方式3中的下一轮准备处理的时序图。

图40是实施方式4中的非法模块检测系统2的整体结构图。

图41是实施方式4中的更新模块141的框图。

图42是实施方式4中的保护控制模块120b的框图。

图43是实施方式4中的访问控制模块140的框图。

图44是实施方式4中的设备100b的硬件结构图。

图45是实施方式4中的设备100b的软件分层图。

图46是实施方式4中的判断部210b的框图。

图47是实施方式4中的更新用软件分发部240的框图。

图48是实施方式4中的模块无效化部250的框图。

图49是表示实施方式4中的非法模块检测系统2的整体动作的流程 图。

图50是用于说明实施方式4中的初始设计处理的图。

图51是实施方式4中的初始设计处理的时序图。

图52是实施方式4中的更新模块初始化处理的流程图。

图53是实施方式4中的检测处理的时序图。

图54是实施方式4中的解析判断处理的时序图。

图55是实施方式4中的相互认证处理的时序图。

图56是实施方式4中的相互认证处理的时序图。

图57是实施方式4中的恢复处理的流程图。

图58是实施方式4中的相互监视处理的时序图。

图59是实施方式4中的更新处理的时序图。

图60是实施方式4中的更新处理的时序图。

图61是用于说明实施方式4中的相互监视处理与更新处理的联携动作 的图。

图62是实施方式4中的再加密处理的时序图。

图63是实施方式4中的下一轮准备处理的时序图。

图64是实施方式4中的无效化处理的时序图。

图65是实施方式5中的保护控制模块120c的框图。

图66是实施方式5中的更新模块141c的框图。

图67是实施方式5中的更新用软件分发部240c的框图。

图68是实施方式5中的初始设计处理的时序图。

图69是实施方式5中的初始设计处理的时序图。

图70是实施方式5中的更新模块初始化处理的流程图。

图71是实施方式5中的验证基数据生成处理的流程图。

图72是表示实施方式5中的验证基数据1200的数据结构的图。

图73是实施方式5中的检测处理的时序图。

图74是实施方式5中的再加密处理的时序图。

图75是实施方式5中的下一轮准备处理的时序图。

图76是实施方式5中的验证基数据更新处理的时序图。

图77是用于说明实施方式6中将解密处理分割为多个解密部分处理的 具体例的图。

图78是表示实施方式6中的验证基数据1300的数据结构的图。

图79是实施方式6中的验证基数据生成处理的流程图。

图80是实施方式6中的检测处理的时序图。

图81是实施方式6中的检测处理的时序图。

图82是表示实施方式6中的解密部分处理1的验证数据1301的数据 结构的图。

图83是表示实施方式6中的解密部分处理2的验证数据1302的数据 结构的图。

图84是表示实施方式6中的解密部分处理3的验证数据1303的数据 结构的图。

图85表示实施方式7中的验证基数据1400的数据结构的图。

图86是表示实施方式7中的验证数据1401的数据结构的图。

图87是实施方式8中的检测处理的时序图。

图88是实施方式8中的检测处理的时序图。

图89是表示实施方式9中的验证数据1500的数据结构的图。

图90是实施方式9中的初始设计处理的时序图。

图91是实施方式9中的初始设计处理的时序图。

图92是实施方式9中的验证数据生成处理的流程图。

图93是实施方式9中的检测处理的时序图。

图94是实施方式9中的检测处理的时序图。

图95是实施方式9中的下一轮准备处理的时序图。

图96是实施方式9中的验证数据更新处理的时序图。

图97是实施方式10中的检测处理的时序图。

图98是实施方式10中的检测处理的时序图。

图99是实施方式10中的检测处理的时序图。

图100是用于说明变形例8中的应用的分割方法的具体例的图。

图101是表示变形例41中的验证基数据1600的数据结构的图。

具体实施方式

技术方案1所述的方式是一种信息处理装置,包含具有保护应用的功 能的保护控制模块和多个检测模块,其特征在于,所述保护控制模块具备 解密单元,加密后的所述应用作为输入数据而被输入,对所述输入数据进 行解密,并将解密结果作为输出数据来输出;分割单元,将所述输出数据 分割为至少k(k≥2)个分割数据;和分配单元,将分割后的k个分割数据分 配给任一检测模块,所述多个检测模块分别具备验证单元,该验证单元使 用被分配的分割数据、根据所述输入数据和所述解密单元进行了正常动作 时所期望的分割数据的值来生成的验证数据、和输入数据,判断被分配的 分割数据是否正确。

技术方案2所述的方式的特征在于,所述保护控制模块保持记述了所 述输出数据的分割方法的分割信息,所述分割单元使用所述分割信息来分 割所述输出数据,所述分配单元还将对分配给各检测模块的分割数据各自 的验证数据和所述输入数据发送给各检测模块。

根据该结构,保护控制模块可生成用于分配给所述多个检测模块的分 割数据。

技术方案3所述的方式的特征在于,所述各检测模块还具备验证确认 单元,该验证确认单元从其他检测模块取得被分配给该其他检测模块的分 割信息,并根据预先提供的判定信息,确认是否由其他检测模块的验证单 元进行了验证处理。

根据该结构,各检测模块能够确认根据所述输出数据生成的k个分割 数据是否全部被验证,所以能够够更正确地检测保护控制模块的非法。

权利要求4所述的方式的特征在于,所述各检测模块在所述验证单元 执行验证之后,消除被分配的分割数据,确认其他检测模块是否消除了被 分配的分割数据。

根据该结构,由于检测模块内不累积分割数据,所以能够防止由分割 数据泄漏保护控制模块的信息或应用程序的信息。

技术方案5所述的方式的特征在于,所述各检测模块具备进行其他检 测模块的篡改验证的相互监视单元,在由所述相互监视单元检测到篡改的 情况下,判断为所述其他检测模块未消除分割数据,在未检测到篡改的情 况下,判断为所述其他检测模块消除了分割数据。

检测模块具有消除分割数据的功能(消除程序)。因此,若能利用相互 监视处理确认检测模块自身未被篡改,则能够保证所述消除程序正常动作, 分割数据被消除。

技术方案6所述的方式的特征在于,所述分割单元通过取所述输出数 据的互为素数的k个约数,来分割为k个分割数据,所述分割信息表示分 割数k和k个约数的值,所述判定信息表示将k个约数的值相乘而得到的 值。

根据该结构,能够通过使用中国剩余定理,根据k个分割数据来复原 原始的输出数据。

技术方案7所述的方式的特征在于,所述检测模块分别具备将验证结 果发送给外部的管理装置的发送单元,所述多个检测模块中的至少一个检 测模块具备更新单元,该更新单元在由所述外部的管理装置判断为所述保 护控制模块被篡改的情况下,更新所述保护控制模块。

根据该结构,在外部的非法管理装置利用各检测模块的验证处理来判 断为保护控制模块被篡改的情况下,能够将被篡改的保护控制模块更新为 新的保护控制模块,所以能够防止泄漏应用所保持的隐匿数据。

技术方案8所述的方式是一种信息处理装置,包括具有保护应用的功 能的保护控制模块和多个检测模块,其特征在于,所述保护控制模块具备 解密单元,对加密后的所述应用程序,执行由k个处理工序构成的解密处 理;和分配单元,将作为所述k个处理工序各自的输出数据的k个被验证 数据分配给所述多个检测模块,所述多个检测模块分别具备验证单元,该 验证单元使用被分配的被验证数据、向与所述被验证数据对应的处理工序 的输入数据、以及根据所述输入数据和所述解密单元进行了正常动作时所 期望的输出数据来生成的验证数据,判断所述被验证数据是否正确。

根据该结构,各检测模块不执行使用保护控制模块自身的数据的验证, 而验证保护控制模块执行的应用的解密处理,所以能够防止向各检测模块 泄漏保护控制模块具有的隐匿数据。

另外,根据本发明,多个检测模块分别进行对不同的处理工序的验证, 所以能够防止向各检测模块泄漏应用的数据。

另外,根据本发明,还能够检测解密处理中哪个处理工序被篡改。

技术方案9所述的方式的特征在于,所述保护控制模块具备:多个应 用;验证基数据保持单元,保持k个验证基数据;以及验证数据生成单元, 根据所述k个验证基数据,生成分发给各检测模块的k个验证数据,所述k 个验证基数据对应于所述k个处理工序中的各个处理工序,对于所述多个 应用中的各个应用包含:加密后的应用;验证值,表示所述解密单元进行 了正常动作时所期望的各处理工序的输入数据与输出数据的对应关系;以 及结合数据验证值,根据将多个所述验证值结合而得到的数据来生成,所 述验证数据生成单元从所述k个验证基数据中删除与所述解密单元所解密 的应用对应的验证值、以及该应用以外的加密后的应用的数据,从而生成k 个验证数据。

权利要求10所述的方式的特征在于,各检测模块的验证单元根据所述 被验证数据和在接收到的所述验证数据中包含的加密后的应用的数据,生 成验证值,将生成的所述验证值与在接收到的所述验证数据中包含的多个 验证值结合而生成结合数据,根据所述结合数据,生成结合数据验证值, 验证所生成的结合数据验证值与在接收到的所述验证数据中包含的所述结 合数据验证值是否一致。

根据该结构,能够从保护控制模块向各检测模块分配仅公开了与保护 控制模块解密的应用有关的信息的验证数据,所以能够防止向检测模块公 开验证中不需要的信息(有关其他应用的信息)。

各检测模块能够使用被提供的验证数据,来进行保护控制模块的验证。

技术方案11所述的方式的特征在于,所述检测模块分别在所述验证单 元进行验证之后,消除接收到的验证数据,确认其他检测模块是否消除了 接收到的验证数据。

根据该结构,检测模块内不会累积验证数据,所以能够防止由验证数 据泄漏保护控制模块的信息或应用的信息。

技术方案12所述的方式的特征在于,所述检测模块分别具备进行其他 检测模块的篡改验证的相互监视单元,在由所述相互监视单元检测到篡改 的情况下,判断为所述其他检测模块未消除验证数据,在未检测到篡改的 情况下,判断为所述其他检测模块消除了所述验证数据。

根据该结构,检测模块具有消除验证数据的功能(消除程序)。因此, 若能利用相互监视处理确认检测模块自身未被篡改,则能够保证所述消除 程序正常动作,验证数据被消除。

技术方案13所述的方式是一种信息处理装置,包括具有保护应用的功 能的保护控制模块和多个检测模块,其特征在于,所述保护控制模块具备: 处理单元,对输入数据实施规定的处理,输出输出数据;询问数据接收单 元,从所述多个检测模块中的各个检测模块接收询问数据;以及发送单元, 将对所述处理单元输入了询问数据时的输出数据即响应数据发送给各检测 模块,所述多个检测模块分别具备:保持单元,对于多个询问数据,保持 表示在将各询问数据作为输入数据时所述处理单元进行了正常动作的情况 下所期望的输出数据与所述询问数据的对应关系的验证数据;询问数据发 送单元,将一个询问数据发送给所述保护控制模块;响应数据接收单元, 从所述保护控制模块接收所述响应数据;以及验证单元,使用所述验证数 据,验证接收到的所述响应数据,至少两个检测模块根据同一响应数据来 验证所述保护控制模块。

技术方案14所述的方式的特征在于,所述验证数据包含多个询问数 据,所述询问数据发送单元从所述验证数据所包含的所述多个询问数据中 选择一个询问数据,发送给所述保护控制模块。

根据该结构,各检测模块不执行使用保护控制模块自身的数据的验证, 而验证保护控制模块执行的处理,所以能够防止向各检测模块泄漏保护控 制模块具有的隐匿数据。另外,根据本发明,能够防止向各检测模块泄漏 应用的数据。

技术方案15所述的方式的特征在于,所述保护控制模块生成表示所述 k个处理工序的处理顺序的顺序信息,向各检测模块发送所生成的所述顺序 信息,各检测模块的验证单元按照接收到的所述顺序信息表示的处理顺序, 验证所述被验证数据。

技术方案16所述的方式的特征在于,各检测模块具备:被验证数据接 收单元,从进行了与该检测模块所验证的处理工序的紧前的处理工序有关 的验证处理的检测模块,接收所述被验证数据;和被验证数据发送单元, 若所述验证单元进行的验证成功,则参照所述顺序信息,确定进行与下一 处理工序有关的验证处理的检测模块,向确定的所述检测模块发送被验证 数据,所述验证单元使用所述被验证数据接收单元接收到的所述被验证数 据,进行验证处理。

技术方案17所述的方式的特征在于,各检测模块还具备:输入数据验 证单元,验证所述接收单元接收到的所述被验证数据与所述输入数据是否 一致;和通知单元,在所述被验证数据与所述输入数据不一致的情况下, 将该情况通知给外部。

根据该结构,能够验证所述解密单元是否按正确的顺序执行了k个处 理工序。

另外,若各处理工序未按正确的顺序执行,则可视为保护控制模块进 行非法动作,将该情况通知给合法的管理装置。

技术方案18所述的方式的特征在于,所述验证数据包含外部的管理装 置的数字签名。

技术方案19所述的方式的特征在于,所述验证数据是对所述输入数据 和所述解密单元进行了正常动作时所期望的输出数据的、外部的管理装置 的数字签名。

根据该结构,能够保证验证数据的合法性。

技术方案20所述的方式的特征在于,所述检测模块分别具备将验证结 果发送给外部的管理装置的发送单元,所述多个检测模块中的至少一个验 证模块具备更新单元,该更新单元在由所述管理装置判断为所述保护控制 模块被篡改的情况下,更新所述保护控制模块。

根据该结构,在外部的合法的管理装置利用各检测模块进行的验证处 理、判断为保护控制模块被篡改的情况下,能够将被篡改的保护控制模块 更新为新的保护控制模块,所以能够防止泄漏应用所保持的隐匿数据。

根据技术方案21所述的方式,一种管理装置,具备:解密单元,将输 入的加密数据进行解密,并将解密结果作为输出数据来输出;以及分割单 元,将所述输出数据分割为多个分割数据,所述管理装置与验证各分割数 据的信息处理装置连接,所述管理装置的特征在于,具备验证基数据生成 单元,根据所述输入数据和所述解密单元进行正常动作时所期望的各分割 数据,生成验证基数据;和发送单元,将所述验证基数据发送给所述信息 处理装置。

根据该结构,信息处理装置能够使用由管理装置生成的验证基数据来 验证分割数据(解密单元的处理),所以能够保证验证的合法性。

技术方案22所述的方式的特征在于,所述管理装置还具备接收单元, 从所述信息处理装置接收各分割数据的验证结果;判断单元,根据接收到 的多个所述验证结果,判断所述解密单元是否被篡改;和更新指示单元, 在由所述判断单元判断为被篡改的情况下,向所述信息处理装置指示所述 解密单元的更新。

根据该结构,能够更新被篡改的解密单元,所以能够防止泄漏信息处 理装置所保持的隐匿数据。

技术方案23所述的方式是一种管理装置,具备经多个处理工序将输入 的加密数据进行解密的解密单元,并与验证各处理工序的信息处理装置连 接,其特征在于,具备:验证基数据生成单元,根据至所述多个处理工序 的输入数据与所述解密单元进行了正常动作时所期望的来自各处理工序的 输出数据,生成验证基数据;和发送单元,将生成的所述验证基数据发送 给所述信息处理装置。

技术方案24所述的方式的特征在于,所述信息处理装置的所述解密单 元对加密后的多个应用进行解密,所述验证基数据生成单元生成多个所述 验证基数据,该多个所述验证基数据对应于所述多个处理工序中的各个处 理工序,对于所述多个应用中的各个应用包含:加密后的应用;验证值, 表示所述解密单元进行了正常动作时所期望的各处理工序的输入数据与输 出数据的对应关系;以及结合数据验证值,根据将多个所述验证值结合而 得到的数据来生成。

技术方案25所述的方式的特征在于,具备询问数据生成单元,生成多 个询问数据;验证数据生成单元,将各询问数据作为输入数据,生成表示 与规定处理正常动作时所期望的输出数据的对应关系的验证数据;和发送 单元,向信息处理装置发送所述询问数据和所述验证数据。

根据该结构,由于信息处理装置能够利用由管理装置生成的验证基数 据来验证各处理工序,所以可保证验证的合法性。

以下,参照附图来详细说明本发明的实施方式。

<实施方式1>

这里,作为实施方式1,说明适用本发明的信息处理装置和管理装置 的非法模块检测系统1。

1.非法模块检测系统1的结构

图1是非法模块检测系统1的整体结构图。

非法模块检测系统1如图1所示,由作为本发明的信息处理装置的设 备100和本发明的管理装置的管理装置200构成。设备100与管理装置200 经网络连接。

(1)设备100的结构

设备100是经网络向用户提供各种服务的设备。例如,设备100访问 内容分发服务器,购买音乐或映像等内容后再现,或访问金融机构的系统, 利用网络银行(存款的余额查询或转账等)。

如图1所示,设备100包括应用软件(下面称作应用。)110、应用111、 应用112、应用113、应用114、保护控制模块120和检测模块组130。

应用110、111、112、113、114分别是用于经网络向使用设备100的 用户提供各种功能的软件。例如,是从内容分发服务器(未图示)购买音乐内 容或映像内容并再现该购买的内容的软件,或用于访问金融机构的系统(未 图示)、利用余额确认或转账等网络银行的软件。

各应用具有用于与内容分发服务器或金融机构的系统进行认证的认证 密钥等隐匿数据。隐匿数据是需要进行保护以使不被有恶意的第三者(下面 称为“攻击者”。)从应用中提取、被非法利用的数据。

保护控制模块120是控制用于保护各应用的功能、以免攻击者解析各 应用、提取认证密钥等隐匿数据的模块。作为用于保护应用的功能,有如 下功能:在不利用应用时加密后保存、并仅在利用应用时才解密后加载到 存储器的解密加载功能、或检查应用是否被篡改的检测功能、检查调试器 等解析工具是否动作的解析工具检测功能等。

保护控制模块120控制这些功能的动作,检查各应用是否被攻击者解 析等。当检测到攻击者攻击时,保护控制模块120停止被检测到攻击的应 用的动作,进行该应用所利用的存储器、尤其是记录隐匿数据的存储区域 的清理(例如用“0”填充存储区域)等处理,防止隐匿数据泄漏。

检测模块组130如图1所示,包括3个检测模块131、检测模块132 和检测模块133。

检测模块131、132、133为了验证保护控制模块120是否被篡改,判 断保护控制模块120进行的加密内容解密处理的结果是否正确。

另外,检测模块131、132、133为了防止由攻击者篡改检测模块、并 非法利用篡改后的检测模块,而实施相互监视处理。所谓相互监视处理是 检测模块相互实施篡改检测处理。由此,即便在检测模块组130中包含的 部分检测模块受到攻击的情况下,也能够检测出该情况,所以设备100的 可靠性提高。

各检测模块将对保护控制模块120的验证结果和检测模块间的相互监 视处理的结果经网络发送给管理装置200。

另外,下面,对于应用110、111、112、113、114,在未具体指定哪个 来说明时,省略符号。

同样,对于检测模块131、132、133,在未具体指定哪个来说明时, 省略符号。

(保护控制模块120的详细结构)

图2是表示保护控制模块120的功能结构的功能框图。

如图2所示,保护控制模块120包括接收部301、发送部302、控制部 303、解密加载部304、篡改检测部305、解析工具检测部306、加解密密钥 保持部307、验证基数据保持部308、验证数据生成部309和应用分割部310。

接收部301从各检测模块接收分散信息或各种委托等。

发送部302向各检测模块发送各种委托等。

控制部303控制解密加载部304、篡改检测部305和解析工具检测部 306,在各应用被攻击者攻击的情况下,检测该情况。

解密加载部304在执行被加密的应用110、111、112、113、114时, 执行使用加解密密钥进行解密并加载到存储器上的处理。另外,若在应用 110、111、112、113、114的执行中发生向其他应用的上下文切换,则解密 加载部304使用加密钥密钥来加密存储器上的数据。之后,当再次向应用 110、111、112、113、114进行了上下文切换时,执行将加密的数据进行解 密的处理。

篡改检测部305执行各应用是否被篡改的篡改检测处理。在篡改检测 处理中,有使用附加于各应用的篡改检测用证书的方法和比较MAC值的 方法。

解析工具检测部306在安装调试器等解析工具或在解析工具动作时检 测该情况。这是因为预想到非法攻击者为了攻击各应用而安装解析工具或 使该解析工具动作。作为检测方法,例如使用检索文件名的方法、或调查 是否使用调试器使用的特殊寄存器的方法、或检测调试器设定的中断的方 法等。

加解密密钥保持部307保持用于加解密各应用的加密钥密钥。

验证基数据保持部308保持从管理装置200接收到的验证基数据。关 于验证基数据的结构,在后面叙述。

验证数据生成部309根据验证基数据保持部308保持的验证基数据, 生成验证数据。关于验证数据生成处理,在后面叙述。

应用分割部310分割由解密加载部304解密的各应用的数据。

(检测模块131的详细结构)

下面,说明检测模块131、132、133的细节。

图3是表示检测模块131的功能结构的功能框图。检测模块132、133 也具有同样的结构。

检测模块131包括接收部401、发送部402、控制部403、验证部404、 MAC值生成部405、MAC值表更新部406、和验证数据保持部407。

接收部401从管理装置200接收各种指示。另外,接收部401从其他 检测模块接收进行相互监视所需的、该其他检测模块的主体。并且,接收 部401接收向其他模块委托的处理的结果、或其他检测模块进行的保护控 制模块120的验证结果等。

发送部402向管理装置200、保护控制模块120和其他检测模块发送 各种处理结果或证书等数据。

控制部403根据接收部401接收到的各种指示,控制验证部404,进 行保护控制模块120和其他检测模块的验证处理。

验证部404使用验证数据保持部407中保持的验证数据,验证保护控 制模块120是否正常动作。

另外,验证部404使用附加于各检测模块的证书或预先计算出的验证 用MAC值等,验证各检测模块是否被篡改。预先由管理装置200提供验 证部404在哪个定时进行哪个模块的篡改检测处理。验证部404在由管理 装置200指示了篡改检测对象的模块的变更或进行篡改检测的定时的变更 的情况下,按照指示进行变更。

MAC值生成部405保持验证密钥。MAC值生成部405在验证部404 在篡改检测处理中使用MAC值的情况下,使用验证密钥生成MAC值。

MAC值表更新部406更新存储了各模块的MAC值的MAC值表。MAC 值表中成对存储用于识别模块的模块识别符和与该模块对应的MAC值。 MAC值生成部405取得作为篡改检测处理对象的模块,计算MAC值。验 证部404通过比较计算出的MAC值与MAC值表中存储的对象模块的MAC 值,进行篡改检测。

验证数据保持部407保持用于验证保护控制模块120的解密加载部 304是否正常动作的验证数据。验证数据由保护控制模块120提供。

另外,关于签名方式,在非专利文献1中详细说明。关于证书,在非 专利文献2中详细说明。另外,关于分散信息,在专利文献2中详细说明。

(设备100的硬件结构)

下面,用图4来说明设备100的硬件构成。

如图4所示,设备100包含CPU(Central Processing Unit:中央处理单 元)171、作为非易失性存储器的EEPROM(Electrically Erasableand  Programmable ReadOnly Memory:电可擦编程只读存储器)172、 RAM(Random Access Memory:随机存取存储器)173和NIC(Network  Interface Card:网络接口卡)174等而构成。另外,这些经总线相互可通信 地连接。

EEPROM172中存储保护控制模块120、检测模块131、132、133和各 应用等。

通过CPU171执行EEPROM172中存储的各种模块,来实现各种模块 的各功能部。各功能部具体地由计算机程序来记述。

RAM173用作CPU171的工作区域。向RAM173加载各检测模块和各 应用。作为篡改检测处理对象的检测模块是在RAM173上动作的更新模块。

NIC174是用于连接网络的扩展卡。

(设备100的软件层级)

接着,用图5来说明设备100的软件层级。

如图5所示,检测模块组130组入OS180中。应用110、111、112、 113、114在OS180上动作,保护控制模块120及引导(boot)加载器150位 于OS180的管理之外。

当设备100起动时,首先起动保护控制模块120和检测模块组130, 执行应用。

(2)管理装置200的结构

下面,返回图1,说明管理装置200的结构。

管理装置200是生成验证保护控制模块120是否正确动作所需的验证 基数据、并分发给设备100的装置。管理装置200包括判断部210、验证基 数据分发部220和通信部230。通信部230经网络与设备100进行通信。设 备100与管理装置200的通信中也可使用将通信数据加密的安全的通信路 径。

管理装置200具体地是具备CPU、ROM、RAM、硬盘单元等的计算 机系统。通过由CPU根据存储在ROM或硬盘单元中的计算机程序进行动 作,管理装置200发挥上述功能。

(判断部210的详细结构)

图6是功能性地表示判断部210的结构的功能框图。如图6所示,判 断部210包括接收部501、发送部502、指示生成部503和模块确定部504。

接收部501从各检测模块接收验证结果或各种委托等,输出给指示生 成部503。并且,接收部501若从验证基数据分发部220接收处理完成的通 知,则向指示生成部503通知该情况。

发送部502向验证基数据分发部220发送由指示生成部503生成的指 示。

指示生成部503将从各检测模块接收到的篡改检测结果(下面有时称为 “相互监视结果”。)输出给模块确定部504。另外,指示生成部503从模块 确定部504取得识别被篡改的非法检测模块的信息,并根据取得的信息, 生成对验证基数据分发部220的指示。另外,指示生成部503若从各检测 模块接收验证数据生成委托,则生成对验证基数据分发部220的指示。

模块确定部504使用从各检测模块接收到的相互监视结果,确定非法 的检测模块。模块确定部504将识别非法检测模块的信息输出给指示生成 部503。

模块确定部504例如将判断为两个检测模块“被篡改”的检测模块确 定为非法的更新模块。

(验证基数据分发部220的详细结构)

图7是功能性地表示验证基数据分发部220的结构的功能框图。

如图7所示,验证基数据分发部220包括接收部601、发送部602、控 制部603、认证部604、证书生成部605、签名秘密密钥保持部606、加密 密钥保持部607、数据分割部608、应用保持部609、验证基数据生成部610 和保护控制模块保持部611。

接收部601接收基于各检测模块的保护控制模块的验证结果和检测模 块间的相互监视结果。

发送部602向设备100发送各应用和保护控制模块120的篡改验证的 委托或检测模块组130的相互监视处理的委托、验证所需的验证基数据等。

控制部603控制验证基数据分发部220内部的各结构要素。

认证部604在与各检测模块及保护控制模块120之间进行相互认证。

证书生成部605使用签名秘密密钥保持部606中保持的签名秘密密钥, 生成对保护控制模块120的解密加载部304执行的加密应用解密处理的签 名数据。

签名秘密密钥保持部606保持由证书生成部605生成签名数据时利用 的管理装置200的签名秘密密钥。

加密密钥保持部607保持与保护控制模块120共享的加密密钥。

数据分割部608将由保护控制模块120的解密加载部304执行的加密 应用的解密处理的输出数据(解密后的纯文本的应用的数据)分割为多个分 割数据。

应用保持部609保持安装在设备100中的各应用。

验证基数据生成部610根据输入到解密加载部304的加密后的各应用 数据(输入数据)、以及由数据分割部608对解密加载部304正常动作时输出 的纯文本的各应用的数据进行分割而得到的各分割数据,生成验证基数据。 验证基数据生成部610将生成的验证基数据发送给设备100。关于验证基数 据的结构,将在后面叙述。

保护控制模块保持部611保持安装在设备100中的保护控制模块120。

2.非法模块检测系统1的动作

(1)整体的动作概要

图8是表示非法模块检测系统1整体的动作概要的流程图。

首先,在工场中制造设备100时进行初始设计处理(步骤S1)。在初始 设计处理中,将更新保护控制模块120所需的各种密钥数据、或软件更新 后所需的数据(使用秘密分散法分散的分散信息)等埋入检测模块131、132、 133各自中。

之后,设备100从工场出厂,供用户利用。

当用户利用设备100时,在设备100内部,保护控制模块120保护各 应用不被攻击者攻击。并且,检测模块131、132、133进行保护控制模块 120的检测处理(步骤S2)。

另外,非法模块检测系统1进行检测模块131、132、133相互执行篡 改检测的相互监视处理。相互监视处理在步骤S2的检测处理中定期执行。

(2)初始设计处理的动作

这里,说明步骤S1的初始设计处理。

图9是表示初始设计处理的动作的时序图。这里,将各检测模块分别 单独进行的处理记载为检测模块组130进行的处理。

在工场制造设备100时,管理装置200将保护控制模块保持部611中 保持的保护控制模块120和应用保持部609中保持的各应用发送给设备 100(步骤S11)。

设备100安装接收到的应用和保护控制模块120(步骤S12)。另外,设 备100除应用、保护控制模块120外,还安装检测模块131、132、133或 设备100的动作所需的软件。向安装的软件附加用于验证有无篡改的证书 (篡改检测用证书)。该篡改检测用证书利用管理装置200的签名秘密密钥来 实施签名。

若软件的安装结束,则设备100进行测试软件是否正常动作的初始化 处理(步骤S13)。

检测模块组130进行检测模块初始化处理(步骤S14)。

保护控制模块120委托管理装置200发送验证基数据(步骤S 15)。管理 装置200若从保护控制模块120接收委托,则进行验证基数据生成处理(步 骤S16)。之后,管理装置200将验证基数据发送给保护控制模块120(步骤 S17)。保护控制模块120从管理装置200接收验证基数据,并存储接收到 的验证基数据(步骤S18)。

(3)检测模块初始化处理的动作

这里,说明步骤S14的检测模块初始化处理。

图10是表示检测模块130的初始化处理的动作的流程图。

检测模块131验证附加于作为篡改检测对象的其他检测模块中的篡改 检测用证书(步骤S21)。

篡改检测用证书的验证通过根据检测模块的数据生成验证值、比较生 成的验证值与篡改检测用证书中记述的验证值来进行。另外,验证值使用 哈希值或签名等。

在生成的验证值与篡改检测用证书中记述的验证值一致的情况下(步 骤S22中是),检测模块131对其他检测模块和保护控制模块120分别生成 MAC值,保持在MAC值保持部中(步骤S23)。

在生成的验证值与篡改检测用证书中记述的验证值不一致的情况下 (步骤S22中否),输出错误并停止(步骤S24)。

(4)验证基数据生成处理的动作

这里,说明步骤S16的验证基数据生成处理。

图11是表示验证基数据生成处理的动作的流程图。

验证基数据生成部610使用加密密钥保持部607中保持的加密密钥, 加密应用保持部609中保持的多个应用(步骤S31)。

另一方面,数据分割部608如图12所示,分割各应用的数据(步骤S32)。

分割方法既可以以规定尺寸分割加载于存储器上的应用的数据,也可 以分割为为分别不同的尺寸。另外,也可以取应用的数据的约数。为了能 够复原分割后的应用的数据,也可以使用中国剩余定理来分割。中国剩余 定理记载于非专利文献1的15页中。

这里,利用将应用的数据进行3分割的实例来说明。

验证基数据生成部610生成表示加密应用与由数据分割部608分割的 各分割数据(分割数据1、分割数据2、分割数据3)的对应的证书(步骤S33)。 并且,验证基数据生成部610生成包含步骤S33中生成的证明的验证基数 据(步骤S34)。

用图13、图14和图15来说明验证基数据。

图13中记载的证书701是表示加密应用与分割数据1的对应的证书。 图14中记载的证书702是表示加密应用与分割数据2的对应的证书。图15 中记载的证书703是表示加密应用与分割数据3的对应的证书。

各证书由分割信息、判定信息、应用各自的各应用识别信息、对应于 识别信息的加密应用的数据和验证值以及解密处理证书构成。

分割信息是表示该分割信息相应于全部分割数据中哪个部分的信息。

例如,在将应用的数据以规定尺寸进行了3分割的情况下,分割信息 1记载为(3,1)。这表示分割数为3、是其中第1个数据。同样,分割信息 2为(3,2),分割信息3为(3,3)。另外,在取应用的数据的约数的情况下, 分割信息记载为(3,17)。这表示分割数为3、约数的值为17。

另外,分割信息不限于此,只要使用能够区别各个分割数据的信息即 可。

判定信息是用于判定分割的数据是否全部被验证的信息。例如,在将 应用的数据以规定尺寸进行3分割的情况下,记载分割数“3”。由此,若 齐备3个不同的分割数据,则可知所有的分割数据均被验证。另外,在对 于应用的数据分别以7、11、17取约数的情况下,记载将7、11和17相乘 的值“1309”。由此可知中国剩余定理成立。

另外,为了使中国剩余定理成立,在应用的加密和解密中使用公开密 钥加密方式的RSA加密的情况下,判定信息只要是比作为RSA加密的公 开密钥的n(=p×q)(p、q为素数)的值大的值即可。另外,在使用公共密钥 加密方式的AES加密的情况下,判定信息只要是比128位大的值即可。关 于RSA加密,在非专利文献1的110页至113页中记载。

另外,判定信息也可不包含于证书中,而由各检测模块预先保持。另 外,也可由任一检测模块保持,发送给其他检测模块。

验证值是将加密的应用的数据与分割数据结合而得到的数据的哈希 值。作为计算哈希值的对象数据,也可包含应用的识别信息或保护控制模 块120的识别信息等。

解密处理证书是计算结合了5个验证值的数据的哈希值、并对计算出 的哈希值、使用管理装置200的签名秘密密钥来生成的签名数据。

包含图13、图14和图15中记载的3个证书来构成验证基数据。

(5)检测处理的动作

这里说明步骤S2的检测处理。

图16和图17是表示检测处理的时序图。

若保护控制模块120接收执行应用110的指令,则由解密加载部304 对被加密的应用110进行解密(步骤S41)。

接着,应用分割部310根据验证基数据保持部308中保持的验证基数 据中包含的分割信息,分割解密后的应用110(步骤S42)。若分割信息中记 载进行3分割,则将应用进行3分割。下面,说明将应用进行3分割的情 况。

保护控制模块120将应用的识别信息、分割数据以及对应于分割数据 的验证数据分配给各检测模块。这里,所谓验证数据是图13-15中所示的 证书。验证数据生成部309从验证基数据保持部308中保持的验证基数据 中,选择对应于分割数据的证书,将选择的证书作为验证数据。

这里,保护控制模块120向检测模块131发送应用识别信息、分割数 据1和验证数据(图13的证书701)(步骤S43),向检测模块132发送应用识 别信息、分割数据2和验证数据(图14的证书702)(步骤S44),向检测模块 133发送应用识别信息、分割数据3和验证数据(图15的证书703)(步骤 S45)。

各检测模块使用接收到的验证数据来验证基于保护控制模块120的应 用的解密结果是否正确(步骤S46)。

具体地,各检测模块根据验证数据中包含的加密应用的数据和分割数 据,生成验证值。之后,比较生成的验证值与验证数据中包含的验证值, 判断两者是否一致。并且,各检测模块执行解密处理证书的签名验证。

各检测模块在验证值不一致或签名不正确的情况下,判定为保护控制 模块120被篡改(步骤S47中是),向判断部210发送检测结果(步骤S48)。

各检测模块在验证值一致且签名正确的情况下,判定为保护控制模块 120未被篡改(步骤S47中否),向其他检测模块发送验证数据中包含的分割 信息(步骤S49)。

之后,各检测模块确认从保护控制模块120发送的全部分割数据是否 都被验证。下面,具体说明。

检测模块131将分割信息1发送给检测模块132和检测模块133。分 割信息1是表示分割数为3、是其中第1个数据的信息。

检测模块131从检测模块132接收分割信息2,从检测模块133接收 分割信息3。检测模块131通过参照验证数据中包含的判定信息,可知应用 的数据被进行了3分割。之后,检测模块131通过确认接收到的分割信息2 和分割信息3的内容,可知第2个数据与第3个数据分别被检测模块132 和133验证。

由此,各检测模块能够确认从保护控制模块120发送的全部分割数据 被某一检测模块验证。

在未验证全部分割数据的情况下,或在全部分割数据被发送到一个检 测模块的情况下,判定为保护控制模块120进行非法动作,保护控制模块 120被篡改(步骤S50中是),向判断部210发送检测结果(步骤S51)。

(6)验证基数据更新处理的动作

在非法模块检测系统1中,向设备100追加新的应用的情况下,需要 更新保护控制模块120保持的验证基数据。

这里,使用图18的时序图,使用向设备100追加新的应用(记载为“应 用115。)的情况作为具体例,说明验证基数据更新处理的动作。

若向设备100下载新的应用115,则保护控制模块120接收应用115(步 骤S61)。保护控制模块120使用加解密密钥保持部307中保持的加解密密 钥,加密应用115(步骤S62)。之后,保护控制模块120将应用115的识别 信息、加密后的应用115以及验证基数据的发送委托发送给管理装置200(步 骤S63)。

管理装置200利用保护控制模块保持部611保持的保护控制模块120 的加解密密钥,将加密的应用115进行解密。之后,生成包含解密的应用 115的新的验证基数据(步骤S64)。管理装置200将新的验证基数据发送给 保护控制模块120(步骤S65)。保护控制模块120接收并存储新的验证基数 据(步骤S66)。

(7)相互监视处理的动作

下面,使用图19的时序图,说明检测模块组130的相互监视处理。

检测模块131进行检测模块132的篡改检测处理(步骤S71),检测模块 132进行检测模块133的篡改检测处理(步骤S72),检测模块133进行检测 模块131的篡改检测处理(步骤S73)。

步骤S71-73的篡改检测处理通过使用验证密钥来计算各检测模块的 MAC值,并比较计算出的MAC值与MAC值表中保持的MAC值来进行。 另外,也可以代替MAC值而使用各检测模块的哈希值。

各检测模块在检测到篡改的情况下(步骤S74中是),将检测结果发送 到判断部210(步骤S75)。

判断部210从各检测模块接收检测结果(步骤S76),并判定是否存在被 篡改的检测模块(步骤S77)。在存在被篡改的检测模块的情况下(步骤S77 中是),判断部210向设备100的各检测模块通知检测处理(步骤S2)的停止 (步骤S78)。在没有被篡改的检测模块的情况下(步骤S77中否),继续处理。

这里,判断部210使用相互监视处理的结果,判定各检测模块是否被 篡改。但是,不限于此,判断部210也可以在不发送上述分割数据的验证 结果的情况下,判定为该检测模块被篡改。

3.实施方式1的效果

在实施方式1中,由验证保护控制模块120执行的加密应用的解密处 理,所以能够不使用保护控制模块120保持的加解密密钥来判定保护控制 模块是否被篡改。

另外,各检测模块验证分割数据,所以各检测模块不用知道应用的全 部数据就能够进行验证。

由此,即便检测模块被篡改、执行非法动作,也不会泄露保护控制模 块120的信息或应用的信息,所以能够提高系统的安全性。

<实施方式2>

这里,说明本发明的实施方式2。

1.概要

在实施方式1中,若各检测模块收集应用的分割数据,则有可能泄漏 应用的数据。因此,在实施方式2中,通过在分割数据的验证完成之后, 消除分割数据和验证数据,来防止应用的数据泄漏。另外,在实施方式2 中,通过在消除分割数据和验证数据之后进行相互监视处理,来相互确认 分割数据和验证数据是否被消除。

2.检测处理的动作

用图20到图22的时序图来说明实施方式2的检测处理的动作。各结 构要素的符号使用与实施方式1相同的符号。

步骤S81到步骤S91的动作与实施方式1的步骤S41到步骤S51的动 作一样,所以省略说明。

这里,从图22的步骤S92开始说明。

各检测模块消除接收到的分割数据和验证数据保持部407中存储的验 证数据(步骤S92)。

接着,各检测模块为了确认是否消除了分割数据和验证数据,相互执 行篡改检测。

具体地,检测模块131执行检测模块132的篡改检测处理(步骤S93), 检测模块132执行检测模块133的篡改检测处理(步骤S94),检测模块133 执行检测模块131的篡改检测处理(步骤S95)。各检测模块执行的篡改检测 处理与相互监视处理的篡改检测处理一样。

各检测模块在检测到篡改的情况下(步骤S96中是),将检测结果发送 给判断部210(步骤S97)。判断部210从各检测模块接收检测结果(步骤S98), 并判定各检测模块是否被篡改。

在判定为检测模块被篡改的情况下,判断部210视为保护控制模块的 检测处理未正确进行,决定进行保护控制模块的再检测(步骤S99中是)。之 后,向保护控制模块120通知进行再检测处理(步骤S100)。

在判定为检测模块未被篡改的情况下,判断部210判断为分割数据和 验证数据被消除。

3.实施方式2的效果

在实施方式2中,确认消除了分割数据和验证数据,所以即便一个检 测模块进行非法动作,也仅一个分割数据泄漏,能够防止两个以上的分割 数据的泄漏以及应用的整体数据的泄漏。

<实施方式3>

这里,作为本发明的实施方式3,说明软件更新系统。

1.概要

实施方式3的软件更新系统在检测到保护控制模块的篡改的情况下, 将被篡改的保护控制模块更新为新的保护控制模块。

2.结构

(1)保护控制模块120a的详细结构

图23是功能性地表示实施方式3的保护控制模块120a的结构的功能 框图。

保护控制模块120a除实施方式1的保护控制模块120(图2)的结构要 素外,还包括加解密密钥分散部321、证书生成部322和加解密密钥复原部 323。

加解密密钥分散部321在初始设计时和下一轮准备时,使用秘密分散 法,根据加解密密钥生成分散信息。

证书生成部322保持保护控制模块120a的签名秘密密钥。之后,证书 生成部322当复原了根据加解密密钥生成的分散信息时,使用签名秘密密 钥,生成用于验证是否正确复原了的证书。

加解密密钥复原部323根据配置信息,从各更新模块取得分发到各更 新模块的分散信息。并且,加解密密钥复原部323根据取得的分散信息, 复原加解密密钥,将复原后的加解密密钥发送给解密加载部304。

(2)检测模块的详细结构

图24是功能性地表示实施方式3的检测模块131a的结构的功能框图。

检测模块131a除实施方式1的检测模块131(图3)的结构要素外,还 包括更新部410和分散信息保持部411。

更新部410与管理装置200联携,更新设备100的软件(各应用、保护 控制模块120a、各检测模块)。

分散信息保持部411保持保护控制模块120a根据各应用的加解密处理 中使用的加解密密钥来生成的分散信息、以及保护控制模块120a分发分散 信息时的配置信息。配置信息是记述哪个分散信息分发到哪个检测模块的 信息。

认证部412保持认证密钥对(认证秘密密钥和认证公开密钥),与其他 模块进行认证处理。

(3)验证基数据分发部220a的详细结构

图25是功能性地表示实施方式3的验证基数据分发部220a的结构的 功能框图。

验证基数据分发部220a除实施方式1的验证基数据分发部220(图7) 的结构要素外,还包括加密密钥生成部620、加密处理部621和检测模块选 择部622。

加密密钥生成部620生成将更新用软件发送给某个检测模块时使用的 加密密钥。

加密处理部621使用加密密钥生成部620生成的加密密钥,加密更新 用软件。另外,加密处理部621使用检测模块选择部622选择到的检测模 块固有的密钥,加密所述加密密钥。

检测模块选择部622当更新保护控制模块120a时,选择更新中使用的 检测模块。

3.动作

这里,说明实施方式3的软件更新系统的动作。

(1)整体的动作概略

图26是表示软件更新系统整体的处理流程的流程图。

软件更新系统首先进行初始设计处理(S101)。之后,由各检测模块进 行保护控制模块120a的验证处理,进行判断保护控制模块120a是否被篡 改的检测处理(步骤S102)。

接着,软件更新系统在步骤S102检测到保护控制模块120a的篡改的 情况下,执行解析保护控制模块120a、判断是否需要更新的解析判断处理 (步骤S103)。

接着,软件更新系统进行用于确认各检测模块与验证基数据分发部 220a彼此是否是正确的软件的相互认证处理(步骤S104)。

之后,软件更新系统进行恢复处理(步骤S105)。所谓恢复处理是在检 测模块之间相互进行篡改检测处理之后,将更新用的保护控制模块安装到 设备100的处理,和在设备100中使用埋入各检测模块中的分散信息来更 新保护控制模块的处理。

之后,软件更新系统进行生成更新所需的密钥数据或分散信息,并埋 入各检测模块中的下一轮准备处理(步骤S106),以备下次需要保护控制模 块的更新的情况。之后,软件更新系统返回到步骤S102的检测处理,继续 处理。

(2)初始设计处理的动作

这里,用图27和图28的时序图来说明步骤S101的初始设计处理的动 作。另外,步骤S111到步骤S113的动作与实施方式1中已说明的动作一 样,所以省略说明。

保护控制模块120a根据加解密密钥,使用秘密分散法生成分散信息(步 骤S114)。并且,保护控制模块120a使用签名秘密密钥,来生成加解密密 钥证书(步骤S115)。保护控制模块120a将生成的分散信息以及加解密密钥 证书发送给各检测模块(步骤S116)。

另外,保护控制模块120a向各检测模块发送分散信息的组,以使检测 模块131、132、133分别保持不同的分散信息的组。并且,保护控制模块 120a将表示将哪个分散信息发送到哪个检测模块的配置信息发送给各检测 模块。发送到各检测模块的配置信息是同一信息。

关于根据加解密密钥、使用秘密分散法生成分散信息的方式或将分散 信息发送给检测模块的方法,在专利文献2的47页-49页中详细说明,所 以这里省略说明。

从保护控制模块120a接收到分散信息、配置信息和加解密密钥证书的 检测模块组进行检测模块初始化处理(步骤S117)。

步骤S118-步骤S121的保护控制模块120a的初始化处理与实施方式1 中说明的动作一样,所以省略说明。

(3)检测模块初始化处理的动作

这里,使用图29所示的流程图,说明步骤S117的检测模块初始化处 理。

检测模块131a从保护控制模块120a接收分散信息、配置信息和加解 密密钥证书,并保持在分散信息保持部411中(步骤S131)。之后的动作与 实施方式1一样,所以省略说明。

(4)检测处理的动作

实施方式3的检测处理(步骤S102)与实施方式1和实施方式2的检测 处理的动作一样,所以省略说明。

(5)解析判断处理的动作

这里,用图30所示的时序图,说明步骤S103的解析判断处理的动作。 将各检测模块分别单独执行的处理在图30中记载为检测模块组130的动 作。

在检测处理中,若从各检测模块接收对保护控制模块的篡改检测结果, 则判断部210根据接收到的篡改检测结果,判定保护控制模块120a是否被 篡改(步骤S141)。

作为判定方法一例,在规定数量的检测模块检测到被篡改的情况下, 判定为保护控制模块120a被篡改,另外,在小于规定数量的检测模块检测 到被篡改的情况下,判定为保护控制模块120a未被篡改。所谓规定数量也 可以是检测模块组130中包含的检测模块的过半数。另外,也可从各检测 模块接收分割数据和验证数据,使用分割数据和验证数据来判定保护控制 模块120a有无篡改。

在判定为保护控制模块120a被篡改的情况下(步骤S141中是),判断 部210为了判断是否需要恢复保护控制模块120a,对检测模块组130委托 保护控制模块120a的哪个部分被篡改等篡改信息的通知(步骤S142)。

检测模块组130若被委托篡改信息的通知,则收集篡改信息(步骤 S143),通知给判断部210。

判断部210根据篡改信息,判断恢复保护控制模块120a、还是废除 (Revoke)设备100、还是什么也不执行(步骤S144)。

在恢复保护控制模块120a的情况下(步骤S144中是),判断部210准 备更新用保护控制模块(步骤S145),向检测模块组130指示开始更新处理 (步骤S146)。

另外,在废除设备100的情况下,委托对各应用提供服务的服务器废 除设备100。在什么也不执行的情况下(步骤S144中否),返回到检测处理。

在步骤S141中判断为保护控制模块120a未被篡改的情况下(步骤 S141中否),返回到检测处理。

(6)相互认证处理的动作

接着,用图31和图32所示的时序图,说明步骤S104的相互认证处理。

判断部210在解析判断处理中判断为需要恢复保护控制模块120a的情 况下,判断部210指示验证基数据分发部220a恢复保护控制模块120a。

验证基数据分发部220a在指示各检测模块开始更新处理之后,与各检 测模块之间分别进行一对一的相互认证处理。由此,防止设备100与非法 服务器连接,或管理装置200与非法设备连接。在相互认证处理中,验证 基数据分发部220a使用签名秘密密钥和签名公开密钥,各更新模块使用认 证密钥对(认证秘密密钥和认证公开密钥)。

图31是检测模块131a认证验证基数据分发部220a时的时序图。另外, 检测模块132a、133a也与图31的检测模块131a一样动作,认证验证基数 据分发部220a。

检测模块131a使用随机数生成器生成随机数(询问数据)(步骤S151), 将生成的询问数据发送给验证基数据分发部220a(步骤S152)。此时,将用 于识别检测模块131a的检测模块识别符与询问数据一起发送。

验证基数据分发部220a对接收到的询问数据,使用签名秘密密钥生成 签名数据(步骤S153),将生成的签名数据作为响应数据,回送给检测模块 131a(步骤S154)。

检测模块131a若从验证基数据分发部220a接收响应数据,则使用签 名公开密钥来验证响应数据是否与询问数据的签名数据一致(步骤S155)。

验证的结果,在响应数据正确、验证基数据分发部220a为合法模块的 情况下(步骤S156中是),检测模块131a继续处理。在响应数据不正确、更 新用软件分发部220为非法模块的情况下(步骤S156中否),检测模块131a 输出错误,并停止处理。

接着,验证基数据分发部220a认证检测模块131a、132a、133a。

图32是验证基数据分发部220a认证各检测模块时的时序图。

验证基数据分发部220a对发送了询问数据的各检测模块,使用随机数 生成器生成分别不同的随机数(询问数据)(步骤S161),将生成的询问数据单 独发送给各更新模块(步骤S162)。

各检测模块对接收到的询问数据,使用认证秘密密钥生成签名数据(步 骤S163),将生成的签名数据作为响应数据,回送给更新用软件数据分发部 220。

此时,各检测模块将认证公开密钥和认证密钥证书与响应数据一起发 送给验证基数据分发部220a(步骤S164)。

验证基数据分发部220a从各个检测模块接收响应数据、认证公开密钥 和认证密钥证书。验证基数据分发部220a验证认证密钥证书是否是自身发 行的证书,进而使用认证密钥证书来验证认证公开密钥的合法性(步骤 S165)。

若认证密钥证书和认证公开密钥非法(步骤S165中否),则验证基数据 分发部220a停止处理。

若认证密钥证书和认证公开密钥合法,则验证基数据分发部220a使用 认证公开密钥,验证接收到的响应数据是否与询问数据的签名数据一致(步 骤S166)。

接着,验证基数据分发部220a判断回送了正确的响应数据的检测模块 (合法的检测模块)的数量是否为预先设定的恢复处理所需的数量以上(步骤 S167)。

在合法的检测模块的数量小于恢复处理所需的数量的情况下(步骤 S167中否),不能执行恢复处理,所以验证基数据分发部220a停止处理。 在合法的更新模块的数量满足恢复处理所需的数量的情况下(步骤S167中 是),结束相互认证处理,转移到恢复处理。

另外,验证基数据分发部220a在相互认证处理中,制作记载了合法性 受到确认的全部检测模块的检测模块识别符的认证列表。并且,在之后的 恢复处理中,仅利用认证列表中记载有识别符的检测模块。

(7)恢复处理的动作

接着,用图33-37来说明步骤S105的恢复处理的细节。恢复处理是在 上述相互认证处理中、相互认证成功的情况下、将被篡改的保护控制模块 120a更新为新的更新用保护控制模块的处理。

图33是表示恢复处理的动作的流程图。

首先,各检测模块进行相互监视处理(步骤S171)。在相互监视处理中, 各检测模块执行其他检测模块的篡改检测处理。

并且,使用更新用保护控制模块,进行更新保护控制模块120a的更新 处理(步骤S172)。

接着,进行将已加密的应用110、111、112、113、114进行再加密的 再加密处理(步骤S173)。

(8)相互监视处理

图34是步骤S171的相互监视处理的详细时序图。

实施方式3的相互监视处理虽然与实施方式1的相互监视处理大致一 样,但实施方式3的相互监视处理在各检测模块总是向判断部210发送篡 改检测结果这点上与实施方式1不同(步骤S184)。

另外,在实施方式3的相互监视处理中,在存在被篡改的检测模块的 情况下,在步骤S187中停止恢复处理。

(9)更新处理

接着,用图35和图36的时序图来说明步骤S172的更新处理的细节。

首先,验证基数据分发部220a的证书生成部605使用签名秘密密钥, 生成更新验证证书(步骤S191)。更新验证证书是用于各检测模块确认新的 保护控制模块是否正确安装的证书。验证基数据分发部220a将生成的证书 发送给各检测模块(步骤S192)。

接着,验证基数据分发部220a的加密密钥生成部620生成两个用于将 新的保护控制模块进行多重加密的加密密钥(第1密钥及第2密钥)(步骤 S193)。加密处理部621使用第2密钥将保护控制模块进行加密,生成加密 新保护控制模块(步骤S194)。加密处理部621使用第1密钥进一步对加密 新保护控制模块进行加密,生成多重加密新保护控制模块(步骤S195)。

验证基数据分发部220a从检测模块组130中选择一个合法的检测模块 (步骤S196),将选择的检测模块的识别符通知给判断部210。这里,作为一 例,设选择检测模块131a。

验证基数据分发部220a向选择的检测模块131a发送多重加密新保护 控制模块(步骤S197),进而发送第1密钥(步骤S198)。

检测模块131a接收多重加密新保护控制模块和第1密钥。检测模块 131使用第1密钥,对多重加密新保护控制模块进行解密,取得加密新保护 控制模块(步骤S199)。并且,若解密结束,则将该情况通知给验证基数据 分发部220a(步骤S200)。

验证基数据分发部220a若接收解密结束通知,则从检测模块组130中, 选择一个合法的、且与步骤S196中选择的检测模块不同的检测模块(步骤 S201)。这里,作为一例,设选择检测模块132a。

验证基数据分发部220a向选择的检测模块132a发送第2密钥(步骤 S202)。这样,验证基数据分发部220a控制向检测模块组130发送用于将 多重加密的新保护控制模块进行解密的多个密钥的定时,从而使攻击者难 以获得未加密的新保护控制模块。

另外,验证基数据分发部220a委托检测模块131a将步骤S199中取得 的加密新保护控制模块发送给检测模块132a(步骤S203)。

检测模块131a接受来自验证基数据分发部220a的委托,将加密新保 护控制模块发送给检测模块132a(步骤S204)。

检测模块132a从验证基数据分发部220a接收第2密钥,从检测模块 131a接收加密新保护控制模块。并且,使用第2密钥对加密新保护控制模 块进行解密,取得新的保护控制模块(步骤S205)。

检测模块132a将步骤S205中取得的新的保护控制模块覆盖到保护控 制模块120a并更新(步骤S206)。并且,检测模块132a将更新的结束通知 给其他检测模块(步骤S207)。

之后,各检测模块进行确认保护控制模块的更新完成的处理。在实施 方式3中,与专利文献3中记载的验证不同,通过使更新后的新的保护控 制模块执行解密处理,来确认更新的完成。

各检测模块使用预先接收到的确认用验证数据。确认用验证数据由验 证值与加密随机数构成。加密随机数是用新的保护控制模块的加密密钥将 随机数进行加密而生成的数据。验证值是对于随机数和加密后的随机数、 使用签名秘密密钥来生成的签名数据。

各检测模块分别将确认用验证数据内的加密后的随机数发送给更新后 的保护控制模块(步骤S208)。保护控制模块解密接收到的加密随机数(步骤 S209),将解密后的数据发送给各检测模块(步骤S210)。

各检测模块从保护控制模块接收解密后的数据,使用确认用验证数据 的验证值进行接收到的数据的验证(步骤S211)。各检测模块将验证结果通 知给验证基数据分发部220a(步骤S212)。

验证基数据分发部220a若接收从各检测模块发送的验证结果,则根据 接收到的验证结果,判定保护控制模块是否被正确更新(步骤S213)。在判 定为未被正确更新的情况下(步骤S213中否),验证基数据分发部220a使设 备100停止。

在被正确更新的情况下(步骤S213中是),验证基数据分发部220a将 更新处理结束通知给各检测模块(步骤S214)。

(10)相互监视处理与更新处理的关系

上述相互监视处理与更新处理相互联携而执行。

相互监视处理在由验证基数据分发部220a以检测模块组130中包含的 检测模块为发送目的地发送多个密钥时、和加密后的更新用保护控制模块 的检测模块组130中包含的检测模块的解密处理中定期实施。定期实施时 的时间间隔例如为比更新用保护控制模块通过通信路径完全输出到外部为 止的时间短的间隔。若完全输出到外部为止花费1秒,则例如以比1秒短 的500毫秒间隔的定时来执行监视处理。

这里,使用图37来说明相互监视处理与更新处理的联携动作。

首先,设备100在由管理装置200发送多重加密新保护控制模块之前, 实施相互监视处理(相互监视1)。这是为了选择非法的检测模块,不执行更 新处理。

之后,设备100在检测模块131a接收由管理装置200发送的第1密钥 之前,实施相互监视处理(相互监视2),确认当设备100接收第1密钥时未 选择非法的检测模块。

并且,在检测模块131a接收第1密钥、使用第1密钥将多重加密新保 护控制模块进行解密的期间,定期中断检测模块131a的解密处理,实施相 互监视处理(相互监视3-1、3-2)。由此,即便在解密处理中检测模块131a、 132a、133a受到攻击,也可在加密新保护控制模块全部泄漏之前,检测出 检测模块被攻击,防止泄漏。

之后的处理与上述一样。即,设备100在检测模块132a接收由管理装 置200发送的第2密钥之前,实施监视处理(相互监视4),确认当设备100 接收密钥时、在更新处理中未选择非法检测模块。

并且,在检测模块132a接收第2密钥、使用第2密钥将加密新保护控 制模块进行解密的期间,定期中断检测模块132a的解密处理,实施相互监 视处理(相互监视5-1、5-2)。最后,实施相互监视处理(相互监视6)。

由此,在新保护控制模块全部泄漏之前,检测出检测模块被攻击,能 够防止泄漏。

这里,在相互监视处理中,在检测模块中检测到篡改的情况下,停止 恢复处理。由此,管理装置200能够中止第1密钥或第2密钥的发送,攻 击者不能获得用于将多重加密新保护控制模块进行解密的密钥。

(11)再加密处理

接着,用图38的时序图来说明步骤S173的再加密处理的细节。

首先,更新后的保护控制模块对检测模块131a、132a、133a委托各自 保持的分散信息和加解密密钥证书的发送(步骤S221)。

各检测模块接受来自保护控制模块的委托,发送分散信息和加解密密 钥证书(步骤S222)。

保护控制模块从各更新模块接收分散信息和加解密密钥证书,并根据 接收到的分散信息,将更新前的保护控制模块120a使用的加解密密钥(这 里称为“旧加解密密钥”。)复原(步骤S223)。并且,保护控制模块使用加 解密密钥证书,验证旧加解密密钥是否被正确复原(步骤S224)。

在旧加解密密钥未被正确复原的情况下(步骤S224中否),保护控制模 块查出(expose)非法的检测模块(确定哪个检测模块发送了非法的分散信 息)(步骤S225)。确定的非法的检测模块被通知到管理装置200。

在旧加解密密钥被正确复原的情况下(步骤S224中是),保护控制模块 生成新的加解密密钥(这里称为“新加解密密钥”)。并且,解密加载部使用 旧加解密密钥将被加密的各应用进行解密,并使用新加解密密钥将各应用 再加密(步骤S226)。

这里,说明步骤S225中用于确定非法检测模块的方法。首先,保护控 制模块从各检测模块收集分散信息的组,向收集到的分散信息附加用于识 别各检测模块的识别信息。

之后,将在初始设计时设定为相同值而分发的分散信息汇集成组。并 且,比较各组中包含的分散信息的值,将相同值的分散信息进一步汇集成 一个子组。并且,生成全部的从所有组中将子组一个个选出的组合。

对生成的组合分别生成旧加解密密钥,验证是否生成了正确的旧加解 密密钥。在验证OK的情况下,向该组合中包含的子组附加表示验证OK 的验证通过识别信息。

在对全部组合进行旧加解密密钥的生成、验证之后,将附加有验证通 过识别信息的子组中包含的分散信息去除。

未被去除而残留的分散信息变为非法值。因此,利用附加于该分散信 息的识别信息,可确定发送了成为非法值的分散信息的检测模块。由识别 信息确定的检测模块被确定为非法更新模块。

关于根据分散信息来复原旧加解密密钥的方法或非法检测模块的确定 方法,在专利文献2的50页到52页中详细说明。

(12)下一轮准备处理的动作

接着,用图39的时序图来说明步骤S106的下一轮准备处理的细节。 在下一轮准备处理中,在恢复处理结束之后,进行下一恢复处理用的准备。 下面具体说明。

首先,更新后的保护控制模块根据新加解密密钥,使用秘密分散法, 生成分散信息(步骤S231),进而,使用签名秘密密钥,生成新加解密密钥 证书(步骤S232)。并且,保护控制模块将生成的分散信息和加解密密钥证 书发送给检测模块131a、132a、133a(步骤S233)。

这里,与初始设计处理时一样,将分散信息生成与检测模块的数量相 同的数量,并进行发送以使各个检测模块保持不同的分散信息的对。新加 解密密钥证书向各检测模块发送相同证书。

检测模块131a、132a、133a从保护控制模块接收分散信息和新加解密 密钥证书,并将接收到的分散信息和新加解密密钥证书保持在分散信息保 持部411中(步骤S234)。

保护控制模块在步骤S233中向检测模块发送分散信息和加解密密钥 证书之后,将应用的识别信息、被加密的应用以及验证基数据的发送委托 发送给管理装置200(步骤S235)。然后,管理装置200执行验证基数据生成 处理(步骤S236)。

下一轮准备处理的验证基数据生成处理与初始设计处理的验证基数据 生成处理稍有不同。

在下一轮准备处理的验证基数据生成处理中,使用更新处理中生成的 新加解密密钥,将接收到的加密应用进行解密。之后,根据加密应用和解 密的应用来生成验证基数据的处理与初始设计处理的验证基数据生成处理 一样,所以这里省略。

管理装置200将生成的验证基数据发送给保护控制模块(步骤S237), 保护控制模块存储接收到的验证基数据(步骤S238)。

4.实施方式3的效果

在实施方式3中,在检测处理中检测到保护控制模块120a的篡改的情 况下,更新保护控制模块,所以可提高系统的安全性。

<实施方式4>

这里,作为本发明的实施方式4,说明非法模块检测系统2。在实施方 式4中,详细说明将检测出是非法的保护控制模块更新为新的保护控制模 块的的构成、和将检测出是非法的更新模块无效化的构成。对与实施方式 1-3重复的部分省略或简化说明。

1.非法模块检测系统2的结构

图40是非法模块检测系统2的整体结构图。如图所示,非法模块检测 系统2包括设备100b和更新服务器200b。设备100b与更新服务器200b 经网络连接。

(1)设备100b的结构

设备100b与实施方式1的设备100一样,是经网络向用户提供各种服 务的设备。

设备100b包括应用110、应用111、保护控制模块120b、更新模块组 130b和访问控制模块140。应用110、111和保护控制模块120b的概要与 上述实施方式1-3一样。

更新模块组130b由多个更新模块构成。在实施方式4中,更新模块组 130b包括更新模块141、更新模块142和更新模块143等3个更新模块。

各更新模块分别检测保护控制模块120b有无篡改。各更新模块具有如 下功能,即在保护控制模块120b被篡改的情况下,从更新服务器200下载 更新用保护控制模块,更新被篡改的保护控制模块。

另外,更新模块141、142、143也可具有更新应用110和应用111的 功能。

另外,更新模块组130b为了防止攻击者篡改各更新模块,非法利用各 更新模块,更新模块彼此相互实施篡改检测。之后,将篡改检测结果发送 给更新服务器200。在由更新服务器200判断为某个更新模块被篡改的情况 下,其他正常的更新模块接受来自更新服务器200的无效化指示,将被篡 改的更新模块无效化。

由此,即便在更新模块组130中包含的一部分更新模块被攻击、被篡 改的情况下,也可检测出该情况并应对攻击。

访问控制模块140保持各更新模块消除其他模块所需的访问信息。访 问信息例如是配置了作为消除对象的模块的地址、或写有消除所需的步骤 的步骤书等。另外,访问信息按每个作为消除对象的模块都分别由单独的 访问信息取得密钥加密。

(更新模块的详细结构)

这里,说明更新模块141、142、143的细节。

图41是表示更新模块141的功能结构的功能框图。更新模块142和 143也具有同样的结构。

更新模块141包括接收部801、发送部802、控制部803、更新部804、 验证部805、MAC值生成部806、MAC值表更新部807、和分散信息保持 部808。

更新模块141的各结构要素具有与实施方式3的检测模块131a(图24) 中包含的各结构要素一样的功能。

(保护控制模块120b的详细结构)

图42是保护控制模块120b的功能框图。如图42所示,保护控制模块 120b包括接收部901、发送部902、控制部903、解密加载部904、篡改检 测部905、解析工具检测部906、加解密密钥保持部907、加解密密钥生成 部908、加解密密钥分散部909、证书生成部910和加解密密钥复原部911。

保护控制模块120b的各结构要素具有与实施方式3的保护控制模块 120a(图23)中包含的各结构要素一样的功能。另外,图23中未记载的加解 密密钥生成部908生成用于将应用110和应用111加解密的加解密密钥。

(访问控制模块140的详细结构)

图43是功能性地表示访问控制模块140的结构的功能框图。如图43 所示,访问控制模块140包括接收部1001、发送部1002和访问信息保持部 1003。

接收部1001从更新模块141、142、143接收消除被篡改的更新模块所 需的信息即访问信息的取得委托。

发送部1002相应于访问信息取得委托,向委托了访问信息取得的更新 模块发送访问信息。

访问信息保持部1003按每个更新模块141、142、143,保持用于消除 该模块的访问信息。

各访问信息附加有用于识别作为消除对象的更新模块的更新模块识别 符。另外,各访问信息由访问信息取得密钥加密。

若从更新模块141、142、143接受访问信息取得委托,则访问信息保 持部1003将附加了消除对象的更新模块识别符的访问信息发送给委托源的 更新模块。

(设备100b的硬件结构)

下面,用图44来说明设备100b的硬件结构。

如图44所示,设备100b包括CPU171、作为非易失性存储器的 EEPROM172、RAM173和NIC174等。另外,这些经总线相互可通信地连 接。

EEPROM172中存储保护控制模块120b、更新模块141、142、143和 应用110、应用111等。

通过由CPU171执行EEPROM172中存储的各种模块,实现各种模块 的各功能部。各功能部具体通过计算机程序来记述。

RAM173用作CPU171的工作区域。向RAM173加载更新模块141、 142、143和应用110、应用111。作为篡改检测处理和无效化处理对象的更 新模块是在RAM173上动作的更新模块。

NIC174是用于与网络连接的扩展卡。

(软件层级)

接着,用图45来说明设备100b的软件层级。

如图45所示,访问控制模块140和更新模块组130b组入OS180中。 应用110和应用111在OS180上动作,保护控制模块120b和引导加载器 160在OS180的管理之外。

当设备100b起动时,首先起动保护控制模块120b和更新模块组130b 之后,执行应用。

(2)更新服务器200b的结构

下面,返回图40,说明更新服务器200b。

更新服务器200b作为非法模块确定装置起作用,从设备100b的更新 模块组130b接收篡改检测结果,根据接收到的篡改检测结果,确定应无效 化的非法的更新模块。并且,更新服务器200b还起软件分发装置的作用, 对设备100b分发将在设备100b上动作的软件(例如保护控制模块120b)更 新所需的更新用软件。

(整体构成)

如图40所示,更新服务器200b包括判断部210b、通信部230、更新 用软件分发部240、和模块无效化部250。更新服务器200b具体而言是具 备CPU、ROM、RAM、硬盘单元等的计算机系统。通过由CPU按照存储 在ROM或硬盘单元中的计算机程序动作,更新服务器200b发挥上述功能。

判断部210b从设备100b的更新模块组130b接收篡改检测结果,根据 接收到的篡改检测结果,确定应无效化的非法的更新模块。

通信部230在设备100b与更新服务器200b内部的各部之间进行信息 的收发。例如,通信部230将从设备100b接收到的篡改检测结果发送给判 断部210b。另外,在设备100b与更新服务器200b之间的通信中,也可以 使用将数据进行加密等确保安全性的通信路径。

更新用软件分发部240在更新保护控制模块120b时,与更新模块141、 142、143联携而动作,向设备100b安全发送更新用的软件。

模块无效化部250若从更新模块141、142、143接受访问信息取得密 钥取得请求,则向请求源的更新模块发送访问信息取得密钥。

接着,说明更新服务器200b的各结构要素。

(判断部210b的详细结构)

图46是功能性地表示判断部210b的结构的功能框图。

如图46所示,判断部210包括接收部1101、发送部1102、指示生成 部1103和模块确定部1104。

判断部210b的各结构要素具有与实施方式1的判断部210(图6)中包 含的各结构要素一样的功能。

(更新用软件分发部240的详细结构)

图47是表示更新用软件分发部240的功能结构的功能框图。

如图47所示,更新用软件分发部240包括接收部1201、发送部1202、 加密密钥生成部1203、加密处理部1204、认证部1205、更新模块选择部 1206、控制部1207、证书生成部1208、签名秘密密钥保持部1209、更新用 软件保持部1210和加密密钥保持部1211。

更新用软件分发部240的各结构要素具有与实施方式3的验证基数据 分发部220a(图25)中包含的各结构要素一样的功能。更新用软件保持部 1210保持在保护控制模块120b被攻击时用于更新的更新用保护控制模块。

(模块无效化部250的详细结构)

图48是表示模块无效化部250的功能结构的功能框图。

如图所示,模块无效化部250包括接收部1301、发送部1302、访问信 息取得密钥保持部1303和更新模块选择部1304。

接收部1301从判断部210b接收将被篡改的非法更新模块进行无效化 的指示。另外,接收部1301从更新模块141、142、143接收访问信息取得 密钥的取得委托。

发送部1302相应于访问信息取得密钥的取得委托,向委托源的更新模 块发送访问信息取得密钥。

访问信息取得密钥保持部1303保持用于将访问控制模块140所保持的 访问信息进行解密的密钥、即访问信息取得密钥。

更新模块选择部1304选择进行被篡改的非法更新模块的无效化处理 之更新模块,向选择的更新模块指示非法更新模块的无效化。

另外,在从模块选择部1304选择的更新模块委托了访问信息取得密钥 的取得的情况下,发送部1302向访问信息取得密钥附加作为消除对象的更 新模块的识别符,发送给所述更新模块。

2.非法模块检测系统2的动作

接着,说明非法模块检测系统2的动作。

(1)整体的动作概要

图49是表示非法模块检测系统2整体的动作流程的流程图。非法模块 检测系统2整体的处理与实施方式3(图26)一样。

(2)初始设计处理的动作

图51是初始设计处理的时序图。

非法模块检测系统2中,在工场制造设备100b时,向设备100b的非 易失性存储器安装各种软件(步骤S261)。

这里,使用图50来说明初始设计处理时埋入设备100b中的密钥。图 50是示意地表示埋入设备100b中的密钥的图。这里,更新模块组130的内 部仅包含更新模块141。实际上也包含更新模块142和143,但这里省略。

如图50所示,在保护控制模块120b中埋入加解密密钥,在更新模块 141中埋入签名公开密钥、验证密钥和认证密钥对(此刻在更新模块中还未 埋入分散信息的组)。并且,在更新模块141中埋入用于识别各个更新模块 的更新模块识别符,在该状态下安装于设备100b中。

加解密密钥是用于将应用110和应用111进行加密和解密的密钥。各 应用在使用加解密密钥加密的状态下存储到非易失性存储器中,执行时由 保护控制模块120b使用加解密密钥进行解密后执行。

在设备100b切换上下文来执行多个应用的情况下,在上下文切换的定 时,使用加解密密钥进行各应用所使用的数据的加密和解密,由此防止在 各应用执行时由调试器等解析工具提取数据。

埋入各更新模块的密钥中,签名公开密钥是全部更新模块共同的密钥。 验证密钥与认证密钥对是在各个更新模块中不同的密钥。

步骤S261到步骤S267的处理与实施方式3的步骤S113-步骤S117(图 27)一样。

(3)更新模块初始化处理

图52是表示更新模块初始化处理(图51的步骤S267)的动作的流程图。 图52中,仅记载更新模块141,但更新模块142和143的动作也基本相同。

更新模块初始化处理的动作与实施方式3(图29)一样。

(4)检测处理的动作

接着,用图53的时序图来说明非法模块检测系统2的检测处理(图49 的步骤S252)的细节。

设备100b若结束初始设定处理,则从工场出厂,发送到用户源,由用 户源使用设备100b。

在设备100b中各应用进行动作时,在设备100b内部,保护控制模块 120b控制解密加载功能、篡改检测功能、解析工具检测功能等功能,保护 各应用不被攻击者攻击。

实施方式4的检测处理与实施方式1-3的检测处理不同。

首先,各更新模块实施保护控制模块120b的篡改检测(步骤S281)。篡 改检测通过使用验证密钥计算保护控制模块120b的MAC值、比较计算出 的MAC值与MAC值表中保持的MAC值来进行。

若MAC值一致,则判定为保护控制模块120b未被篡改,若MAC值 不一致,则判定为保护控制模块120b被篡改。

另外,在图53中简化记载,记载为仅有更新模块141进行保护控制模 块120的篡改检测,但当然更新模块142和143也进行同样的处理。

判定保护控制模块120b是否被篡改,即MAC值是否一致(步骤S282), 在判定为保护控制模块120b被篡改的情况下(步骤S282中是),更新模块 141将该情况通知给更新服务器200b的判断部210b和其他更新模块(步骤 S283)。

在判定为保护控制模块120b未被篡改的情况下(步骤S282中否),更 新模块141不通知判断部210b或其他更新模块,返回篡改检测处理。

从其他更新模块接收到保护控制模块120b被篡改的通知的更新模块 使用验证密钥和MAC值,实施保护控制模块120b的篡改检测(步骤S284 和步骤S286)。并且,将篡改检测结果通知给判断部210b和其他更新模块(步 骤S285和步骤S287)。

(5)解析判断处理的动作

图54是表示解析判断处理(图49的步骤S253)的动作的时序图。图54 中,将更新模块141、142、143分别单独进行的处理统一记载为更新模块 组130b进行的处理。

解析判断处理的动作与实施方式3(图30)一样。

(6)相互认证处理的动作

图55和图56是表示非法模块检测系统2执行的相互认证处理的动作 流程的时序图。

与实施方式3一样,在解析判断处理中,在判断部210b判断为需要恢 复保护控制模块120的情况下,判断部210b向更新用软件分发部240进行 恢复指示。更新用软件分发部240在向各更新模块指示了更新处理的开始 之后,在更新用软件分发部240与各更新模块之间,分别进行一对一的相 互认证处理。

图55表示更新模块141对更新用软件分发部240进行认证的处理的动 作。这里,记载更新模块141,但其他更新模块的动作也相同。

更新模块141对更新用软件分发部240进行认证的动作与图31所示的 实施方式3的检测模块131a对验证基数据分发部220a进行认证的动作一 样。

接着,更新用软件分发部240对更新模块141、142、143进行认证。 图56表示更新用软件分发部22(4)0对各更新模块进行认证的处理动作。

更新用软件分发部240对各更新模块进行认证的动作与图32所示的实 施方式3的验证基数据分发部220a对各更新模块进行认证的动作一样。

(7)恢复处理的动作

图57是表示非法模块检测系统2的恢复处理(图49的步骤S255)的动 作的流程图。恢复处理是在上述相互认证处理中相互认证成功的情况下、 将被篡改的保护控制模块120b更新为新的更新用保护控制模块的处理。

恢复处理与实施方式3(图33)一样,包括相互监视处理(步骤S321)、 更新处理(步骤S322)和再加密处理(步骤S323)。

(8)相互监视处理

图58是表示相互监视处理(图57的步骤S321)的动作的时序图。

在相互监视处理中,更新模块141、142、143对更新模块组130b内的 其他更新模块执行篡改检测处理。在相互监视处理中,对哪个更新模块执 行篡改检测处理,记述在更新模块保持的监视模式中。监视图模式中记述 了与作为篡改检测对象的模块有关的信息(模块识别符、存储器上的位置、 尺寸、地址、文件名等)。

实施方式4的相互监视处理的动作与实施方式3的相互监视处理(图34) 的动作一样。

(9)更新处理

接着,用图59和图60的时序图来说明更新处理(图57的步骤S322)。

步骤S341到步骤S357与实施方式3(图35和图36)的步骤S191到步 骤S207一样。

更新模块141、142、143分别使用事先接收到的更新验证证书,验证 保护控制模块是否被正确更新(步骤S582),并将验证结果通知给更新用软 件分发部240(步骤S359)。

更新用软件分发部240若接收从各更新模块发送的验证结果,则根据 接收到的验证结果,判定保护控制模块是否被正确更新(步骤S360)。

在判定为未被正确更新的情况下(步骤S360中否),更新用软件分发部 240使设备100b停止。

在被正确更新的情况下(步骤S360中是),更新用软件分发部240将更 新处理结束通知给各更新模块(步骤S361)。

各更新模块若接收更新处理结束通知,则生成新的保护控制模块的 MAC值(步骤S362),并将生成的MAC值与保护控制模块的识别符的组写 入MAC值表中。

(10)相互监视处理与更新处理的关系

实施方式4的相互监视处理与更新处理与实施方式3一样,相互联携 而执行。

图61是示意地表示相互监视处理与更新处理的联携动作流程的图。细 节已在实施方式3(图37)中说明,所以这里省略说明。

(11)再加密处理

图62是表示再加密处理(图57的步骤S323)的动作的时序图。实施方 式4的再加密处理与实施方式3(图38)一样。

(12)下一轮准备处理的动作

图63是表示下一轮准备处理(图49的步骤S256)的动作的时序图。在 下一轮准备处理中,在恢复处理结束之后,进行下一恢复处理用的准备。

首先,更新后的保护控制模块根据新加解密密钥,使用秘密分散法生 成分散信息(步骤S381),进而,使用签名秘密密钥来生成新加解密密钥证 书(步骤S382)。并且,保护控制模块将生成的分散信息和加解密密钥证书 发送给各更新模块141、142、143(步骤S383)。

这里,与初始设计处理时一样,将分散信息生成与更新模块的数量相 同的数量,并进行发送以使各个更新模块保持不同的分散信息的对。作为 新加解密密钥证书,向各更新模块141、142、143发送相同的证书。

各更新模块141、142、143从保护控制模块接收分散信息和新加解密 密钥证书,并保持接收到的分散信息和新加解密密钥证书(步骤S384)。

(13)无效化处理的动作

接着,用图64的时序图来说明无效化处理的细节。

无效化处理是在存在相互认证时认证失败的更新模块的情况、恢复处 理内的监视处理中检测到被篡改的更新模块的情况、恢复处理内的再加密 处理中查出了非法更新模块的情况等情况下、将在设备100b内部存在的非 法(被篡改)模块进行无效化的处理。

这里,以更新模块143被篡改、由更新模块141和142检测到该情况 时的处理为例,说明无效化处理的动作细节。

判断部210b根据从更新模块141、142、143接收到的相互监视结果, 判定哪个更新模块被篡改(步骤S391)。作为判定方法,例如将过半数的更 新模块判断为“被篡改”的更新模块判定为非法更新模块。

判断部210b将无效化的指示与被篡改的更新模块的识别信息一起输 出给模块无效化部250(步骤S392)。

模块无效化部250委托判定为未被篡改的更新模块141和142中的某 一个(这里设为更新模块141)被篡改的更新模块143的无效化(步骤S393)。

更新模块141若从模块无效化部250接收更新模块143的无效化委托, 则委托模块无效化部250发送用于将更新模块143无效化的访问信息取得 密钥(步骤S394)。进而,更新模块141委托访问控制模块140取得用于将 更新模块143无效化的访问信息(步骤S395)。

模块无效化部250若接收访问信息取得密钥的发送委托,则确认更新 模块141是否为未被篡改的合法的更新模块、和被委托的访问信息取得密 钥是否为用于将被篡改的非法的更新模块143无效化的访问信息取得密钥 (步骤S396)。该确认利用从判断部210b通知给模块无效化部250的更新模 块的信息来进行。

确认的结果,在委托是来自被篡改的更新模块143的委托、或是对未 被篡改的更新模块141、142的访问信息取得密钥的取得委托的情况下(步 骤S396中否),停止无效化处理。

确认的结果,若没有问题(步骤S396中是),则向发出了委托的更新模 块141发送用于将更新模块143无效化的访问信息取得密钥(步骤S397)。

更新模块141从模块无效化部250接收访问信息取得密钥,并且从访 问控制模块140接收加密后的访问信息(步骤S398)。更新模块141根据访 问信息取得密钥和加密后的访问信息,取得访问信息(步骤S399)。取得的 访问信息是用于消除更新模块143的专用驱动程序。更新模块141利用专 用驱动程序,消除被篡改的非法的更新模块143(步骤S400)。

如果无效化处理结束,则更新模块141消除访问信息取得密钥、被加 密的访问信息和访问信息等,向模块无效化部250发送完成通知(步骤 S401)。模块无效化部250如果从更新模块141接收到完成通知,则向判断 部210b发送无效化的完成通知(步骤S402)。

另外,在利用无效化处理将保持了分散信息的更新模块进行了无效化 的情况下,该更新模块所保持的分散信息也被消除。因此,在将保持有分 散信息的更新模块进行无效化的情况下,需要进行考虑了分散信息的消除 的无效化处理。

关于考虑了分散信息的消除的无效化处理,在专利文献2的56页到 64页中作为“退出处理”详细说明。

<实施方式5>

下面说明本发明的实施方式5。

实施方式4在保护控制模块是否被篡改的验证中使用了MAC值。

相对于此,实施方式5使用在应用执行时从保护控制模块输出的验证 数据,来验证保护控制模块是否被篡改。

1.结构

实施方式5的非法模块检测系统与实施方式4一样,由设备100b与更 新服务器200b构成。下面,以与实施方式4不同的部分为中心进行说明。

(1)保护控制模块120c的结构

图65是表示实施方式5的保护控制模块120c的功能结构的功能框图。 对于与实施方式4具有一样功能的结构要素附加相同符号,省略说明。

与实施方式4的保护控制模块120b相比,保护控制模块120c不具备 加解密密钥生成部908。另外,新具备保护控制模块120b中不存在的验证 数据生成部912和验证基数据保持部913。

验证基数据保持部913保持从更新服务器200b接收到的验证基数据。

验证数据生成部912根据验证基数据保持部913中保持的验证基数据, 生成验证数据,发送给更新模块。

(2)更新模块141c的结构

图66是功能性地表示实施方式5的更新模块141c的结构的功能框图。 对于与实施方式4具有一样功能的结构要素附加相同符号,省略说明。

与实施方式4的更新模块141相比,更新模块141c新具备检测部810 和验证数据保持部811。

验证部805进行保护控制模块120c和各更新模块是否正常动作的验 证。验证部805使用事先计算出的MAC值或哈希值,验证各更新模块。

验证部805在保护控制模块120c的验证中使用检测部810。验证部805 若从保护控制模块120c接收验证数据,则将验证数据存储在验证数据保持 部811中。另外,验证部805若从保护控制模块120c接收应用解密处理的 输出数据,则将该输出数据输出给检测部810。并且,验证部805从检测部 810接收表示保护控制模块120c是否正常动作的验证结果。

检测部810使用从验证部805接收到的输出数据和验证数据保持部811 中存储的验证数据,验证包含于验证数据中的签名。通过验证签名,验证 保护控制模块120c的应用解密处理的输入输出的对应关系是否正确。检测 部810将验证结果发送给验证部805。

验证数据保持部811存储从验证部805接收到的验证数据。

(3)更新软件分发部240c的结构

图67是功能性地表示实施方式5的更新用软件分发部240c的结构的 功能框图。对于与实施方式4具有同样的功能的结构要素附加相同符号, 省略说明。

与实施方式4的更新用软件分发部240相比,更新软件分发部240c新 具备更新用软件执行部1220、应用保持部1221、和验证基数据生成部1222。

更新用软件执行部1220使用更新用软件保持部1210中保持的更新用 保护控制模块,执行加密应用,取得解密处理的输入输出数据。

应用保持部1221保持安装于设备100b中的应用。

验证基数据生成部1222生成保证保护控制模块120c的解密加载部904 正常动作时的、加密应用解密处理的输入输出数据的对应关系的验证基数 据,并将生成的验证基数据发送给设备100b。验证基数据的细节如后所述。

2.动作

(1)初始设计处理的动作

这里,说明根据实施方式5的初始设计处理的动作。

图68和图69是表示初始设计处理的动作的流程图。另外,这里说明 与实施方式4不同的部分。

更新服务器200b将更新用软件保持部1210中保持的保护控制模块 120c发送给设备100b(步骤S501)。

步骤S502~步骤S511与实施方式4一样。

保护控制模块120c在步骤S509和步骤S510中向更新模块组130发送 分散信息和加解密密钥证书之后,委托更新服务器200b发送验证基数据(步 骤S512)。

更新服务器200b生成验证基数据(步骤S513)。并且,更新服务器200b 将生成的验证基数据发送给保护控制模块120c(步骤S514)。

保护控制模块120c接收并存储验证基数据(步骤S515)。

(2)更新模块初始化处理

图70是表示更新模块初始化处理的动作的流程图。

更新模块141c在步骤S522中进行更新模块142c和更新模块143c的 篡改检测用证书的验证。

在实施方式5中,当执行保护控制模块120c的篡改检测时,不执行使 用MAC值的验证。因此,在步骤S522中,更新模块141c不执行保护控 制模块120c的篡改检测用证书的验证。

(3)验证基数据生成处理

图71是表示验证基数据生成处理的动作的流程图。

验证基数据生成部1222利用保护控制模块120c的加解密密钥来加密 安装于设备100b中的多个应用(步骤S531)。

接着,验证基数据生成部1222生成证书(对应关系证书)(步骤S532)。

证书是对于保护控制模块120c正常动作时的输入数据和输出数据,使 用更新服务器200的签名秘密密钥保持部1209的签名秘密密钥来生成的签 名。输入到保护控制模块120c中的数据是加密后的应用,从保护控制模块 120c输出的数据是解密后的纯文本应用。另外,作为签名生成的对象的数 据不仅包含保护控制模块120c的输入数据和输出数据,还可以包含应用的 识别信息或表示应用的内容的信息(DVD或BD的再现应用、网络银行的应 用等)。另外,也可包含保护控制模块120c的识别信息。

最后,验证基数据生成部1222生成由应用的识别信息、加密后的应用 的数据以及证书构成的验证基数据(步骤S533)。

图72是表示验证基数据的数据结构的图。

验证基数据1200对于多个应用、按每个应用记载应用的识别信息、对 应于该识别信息的加密应用的数据以及证书来构成。

(4)检测处理的动作

图73是表示检测处理的动作的时序图。

保护控制模块120c将各应用加密而进行保护。实施方式5的检测处理 的特征在于当应用执行时验证保护控制模块120c。

这里,以由保护控制模块120c执行应用110的情况为具体例来说明。 在执行其他应用时验证保护控制模块120c的情况也一样。

保护控制模块120c若接受执行应用110的指令,则将验证数据生成部 912生成的验证数据、应用110的识别信息、和作为解密结果的应用110 的数据发送给更新模块141c(步骤S541)。图73中,将记载简化,仅有更新 模块141c执行保护控制模块120c的验证,但更新模块142c和143c也执 行同样的处理。

关于之后的处理,也省略了更新模块142c和143c,但基本上执行与 更新模块141c一样的处理。

更新模块141c使用验证数据,验证基于保护控制模块120c的应用110 的解密处理的输入输出对应是否正确(步骤S542)。更新模块141c使用验证 数据中包含的加密的应用110的数据(输入数据)与接收到的解密结果(输出 数据)来进行验证。

在基于保护控制模块120c的解密处理的输入输出不正确的情况下(步 骤S542为“不正确”),更新模块141c判定为保护控制模块120c被篡改, 将验证结果通知给判断部210b和其他更新模块(步骤S543)。

在基于保护控制模块120c的解密处理的输入输出正确的情况下(步骤 S542为“正确”),验证模块141c不通知判断部210b或其他更新模块,在 下一应用执行时再次进行保护控制模块120c的验证。

更新模块142c和143c在由更新模块141c通知了保护控制模块120c 被篡改的验证结果的情况下,委托保护控制模块120c发送应用的识别信息、 解密的应用的数据以及验证数据(步骤S544)。

保护控制模块120c若从更新模块142c和143c接受发送委托,则发送 应用的识别信息、解密的应用的数据以及验证数据(步骤S545)。

更新模块142c和143c分别根据接收到的应用的识别信息、解密的应 用的数据以及验证数据,验证基于保护控制模块120c的应用110的解密处 理的输入输出对应是否正确(步骤S546)。并且,更新模块142c和143c向 判断部210b发送验证结果(步骤S547),判断部210b接收验证结果。

(5)更新处理的动作

在将保护控制模块120c更新为更新用的新保护控制模块的情况下,在 实施方式5中,新保护控制模块的加解密密钥保持部在保持由更新用软件 分发部240c生成的新加解密密钥的状态下,安装于设备100b中。

(6)再加密处理的动作

图74是表示再加密处理的动作的时序图。

在实施方式5中,新保护控制模块的加解密密钥保持部中已保持有新 加解密密钥。因此,在图74所示的再加密处理中,不像实施方式4(图62) 的步骤S376那样生成新加解密密钥。

并且,保护控制模块复原旧加解密密钥,并使用旧加解密密钥将被加 密的应用进行解密,使用已保持的新加解密密钥,将应用进行再加密(步骤 S556)。

(7)下一轮准备处理的动作

图75是表示下一轮准备处理的动作的时序图。

保护控制模块120c在步骤S563中向各更新模块发送分散信息和加解 密密钥证书之后,将应用的识别信息、被加密的应用以及验证基数据的发 送委托发送给更新服务器200b(步骤S567)。之后,更新服务器200b进行验 证基数据生成处理(步骤S568)。

下一轮准备处理中的验证基数据生成处理与初始设计处理中的验证基 数据生成处理稍有不同。

更新服务器200b使用更新处理中生成的新加解密密钥,将接收到的加 密应用进行解密。并且,对被加密的应用和解密后的应用,生成证书(对应 关系证书)。证书是使用更新服务器200b的签名秘密密钥来生成的签名。 另外,验证基数据的结构与图72所示的结构一样。

更新服务器200b向保护控制模块发送生成的验证基数据(步骤S569)。 保护控制模块接收并存储验证基数据(步骤S570)。

(8)验证基数据更新处理

图76是表示验证基数据更新处理的动作的时序图。

在向设备100b追加应用的情况下,需要还追加验证基数据。这里,以 向设备100b追加新的应用(记为“应用115”。)的情况为例进行说明。

用户在向设备100b追加应用的情况下,设备100b内的保护控制模块 120c接收下载的应用115(步骤S581)。接着,保护控制模块120c使用加解 密密钥将接收到的应用115进行加密(步骤S582)。并且,保护控制模块120c 将应用的识别信息、被加密的应用以及验证基数据的发送委托发送给更新 服务器200b(步骤S583)。

更新服务器200b进行验证基数据生成处理(步骤S584)。

验证基数据更新处理中的验证基数据生成处理与上述下一轮准备处理 中的验证基数据生成处理一样。

更新服务器200b使用更新处理中生成的新加解密密钥,将接收到的加 密应用进行解密。并且,更新服务器200b对被加密的应用和解密的应用生 成证书(对应关系证书)。证书是使用更新服务器200b的签名秘密密钥来生 成的签名。另外,验证基数据的结构是图72所示的结构。

更新服务器200b将生成的验证基数据发送给保护控制模块120c(步骤 S585)。保护控制模块120将接收到的验证基数据存储到验证基数据保持部 420中(步骤S586)。

3.实施方式5的效果

在实施方式5中,通过验证保护控制模块120c进行的应用的解密处理 是否被正确执行,来验证保护控制模块120c有无篡改。

由此,各更新模块不用知道保护控制模块120c的数据就能够验证保护 控制模块120c。因此,即便假设更新模块进行非法动作,也能够防止保护 控制模块120c的数据泄漏,能够进一步提高系统的安全性。

<实施方式6>

下面,说明本发明的实施方式6。这里,使用与实施方式5相同的符 号来说明。

1.概要

实施方式6的特征在于通过将保护控制模块120c进行的应用的解密处 理分割为多个处理、并验证各处理的输入输出的对应,来执行保护控制模 块120c的篡改检测。

图77是表示将保护控制模块120c的解密处理分割为多个处理的概要 的图。在实施方式6中,作为一例,将解密处理分割为解密部分处理1、解 密部分处理2、和解密部分处理3等3个。

各更新模块使用按每个解密部分处理生成的验证数据,验证各解密部 分处理的输入输出的对应。另外,从安全性的观点来看,期望不是一个更 新模块全部验证3个解密部分处理,而是3个更新模块分别验证不同的解 密部分处理。

2.结构

这里,说明与实施方式5不同的结构。

在实施方式6中,验证基数据生成部1222生成的验证基数据的结构不 同。

图78是表示实施方式6中的验证基数据的数据结构的图。

验证基数据1300包含有关解密部分处理1的数据1300a、有关解密部 分处理2的数据1300b和有关解密部分处理3的数据1300c。

数据1300a对于应用110-114的全部应用,包含各应用的识别信息、 对应于该识别信息的加密应用的数据、和根据加密应用的数据及作为解密 部分处理1的输出数据的中间值1来生成的对应关系证书。

数据1300b对于应用110-114的全部应用,包含各应用的识别信息、 对应于该识别信息的中间值1的数据、和根据中间值1及作为解密部分处 理2的输出数据的中间值2来生成的对应关系证书。

数据1300c对于应用110-114的全部应用,包含各应用的识别信息、 对应于该识别信息的中间值2的数据、和根据中间值2及作为解密部分处 理3的输出数据的解密后的应用的数据来生成的对应关系证书。

另外,中间值1、中间值2、和解密后的应用的数据通过由更新用软件 执行部1220执行应用的解密处理来取得。

另外,各对应关系证书对于保护控制模块120c正常动作时的各个解密 部分处理的输入数据和输出数据,使用更新服务器200b的签名秘密密钥来 生成。

解密部分处理1的对应关系证书是对于将加密后的各应用的数据分别 设为输入数据时的输入数据和保护控制模块120c正常动作时的输出数据、 使用更新服务器200b的签名秘密密钥来生成的签名。

解密部分处理2的对应关系证书是对于将各应用的中间值1分别设为 输入数据时的输入数据和保护控制模块120c正常动作时的输出数据、使用 更新服务器200b的签名秘密密钥来生成的签名。

解密部分处理3的对应关系证书是对于将各应用的中间值2分别设为 输入数据时的输入数据和保护控制模块120c正常动作时的输出数据、使用 更新服务器200b的签名秘密密钥来生成的签名。

3.动作

(1)初始设计处理的动作

实施方式6中的初始设计处理的动作与实施方式5(图68和图69)一样。 在实施方式6中,步骤S501中从更新服务器200b发送给设备100b的保护 控制模块120c如图77所示,包含通过3个解密部分处理将加密应用进行 解密的解密程序。

另外,关于步骤S513的验证基数据生成处理的细节,在后面叙述。

(2)验证基数据生成处理

图79是表示实施方式6的验证基数据生成处理的动作的流程图。

验证基数据生成部1222利用保护控制模块120c的加解密密钥来将应 用保持部1221中保持的多个应用进行加密(步骤S601)。

接着,更新用软件执行部1220执行保护控制模块120c的解密处理, 将多个加密应用进行解密而取得作为各解密部分处理的输出数据的中间值 和解密后的应用(步骤S602)。

接着,证书生成部1208对加密应用的数据与中间值1的组、中间值1 与中间值2的组、以及中间值2与解密后的应用的数据的组,使用签名秘 密密钥保持部1209中保持的签名秘密密钥,生成证书(对应关系证书)(步骤 S603)。

最后,验证基数据生成部1222生成由应用的识别信息、对各解密部分 处理的输入数据、以及对应关系证书构成的验证基数据(步骤S604)。

(3)检测处理的动作

图80和图81是表示实施方式6的检测处理的动作的时序图。

这里,作为具体例,说明设备100b执行应用110时、进行保护控制模 块120c的检测处理的情况。

保护控制模块120c若接收执行应用110的指令,则根据验证基数据保 持部913中保持的验证基数据(图78),生成验证数据(步骤S611)。

验证数据生成部912生成图82所示的解密部分处理1的验证数据 1301、图83所示的解密部分处理2的验证数据1302、以及图84所示的解 密部分处理3的验证数据1303。

验证数据生成之后,保护控制模块120c将被加密的应用110进行解密 (步骤S612)。

保护控制模块120c选择一个更新模块(这里设为更新模块141c),向选 择的更新模块141c发送应用110的识别信息、中间值1以及解密部分处理 1的验证数据(步骤S613)。

保护控制模块120c选择与在先选择的更新模块不同的更新模块(这里 设为更新模块142c),向选择的更新模块142c发送应用110的识别信息、 中间值2以及解密部分处理2的验证数据(步骤S614)。

并且,保护控制模块120c选择与在先选择的两个更新模块不同的更新 模块(这里设为更新模块143c),向选择的更新模块143c发送应用110的识 别信息、解密的应用的数据以及解密部分处理3的验证数据(步骤S615)。

并且,各更新模块使用接收到的验证数据,验证解密部分处理的输入 输出对应是否正确(步骤S616、617、618)。

各更新模块在判定为解密部分处理的输入输出不正确的情况下,判定 为保护控制模块120c被篡改(步骤S619、S620、S621中是),将验证结果 通知给判断部210b和其他更新模块(步骤S622)。图81中,记载为仅有更 新模块141c通知验证结果,但更新模块142c和143c也同样通知验证结果。

各更新模块在判定为解密部分处理的输入输出正确、保护控制模块 120c未被篡改的情况下(步骤S619、620、621中否),不通知判断部210b 或其他更新模块,在下一应用执行时再次进行保护控制模块120c的验证。

(4)下一轮准备处理的动作

实施方式6中的下一轮准备处理的动作与实施方式5(图75)一样。但 是,在实施方式6中,更新服务器200b生成的验证基数据是图78所示的 验证基数据1300。

(5)验证基数据更新处理的动作

实施方式6中的验证基数据更新处理的动作是与实施方式5(图76)一 样的动作。但是,在实施方式6中的验证基数据更新处理的验证基数据生 成处理中,更新用软件执行部1220从加密应用中取得中间值1、中间值2、 和解密后的应用的数据。并且,验证基数据生成部1222根据取得的数据, 生成图78所示的验证基数据1300。

4.实施方式6的效果

在实施方式6中,将保护控制模块120c执行的解密处理分割为部分处 理,按每个部分处理来验证输入输出数据的对应关系。因此,即便假设更 新模块进行非法动作,也能够防止保护控制模块120c执行的解密处理整体 泄漏。并且,能够知道保护控制模块120c执行的解密处理整体中哪个部分 被篡改。

<实施方式7>

下面,说明本发明的实施方式7。这里,使用与实施方式5相同的符 号来说明。

1.结构

实施方式7中验证基数据生成部1222生成的验证基数据的结构与实施 方式5不同。

图85是表示实施方式7中的验证基数据的数据结构的图。

验证基数据1400由对各应用的应用识别信息、与该识别信息对应的加 密应用的数据及验证值、以及解密处理证书构成。

加密应用的数据通过由更新用软件执行部1220执行保护控制模块 120c、并使用加解密密钥将应用保持部1221中保持的各应用进行加密来生 成。

验证值是将以加密后的应用的数据为输入数据时的输入数据和保护控 制模块120c正常动作时的解密结果即输出数据进行结合而得到的数据的哈 希值。另外,作为验证值,也可以代替哈希值而使用签名。另外,计算哈 希值的对象数据不仅是输入数据和输出数据,也可以包含应用的识别信息 或表示应用的内容的信息(DVD或BD的再现应用、网络银行的应用等)。 并且,也可包含保护控制模块120c的识别信息。

解密处理证书如下生成。首先,将应用110的验证值、应用111的验 证值、应用112的验证值、应用113的验证值、和应用114的验证值全部 结合,根据结合后的值,计算哈希值。接着,对计算出的哈希值,使用更 新服务器200b的签名秘密密钥来生成签名。生成的签名成为解密处理证书。

另外,实施方式7中保护控制模块120c的验证数据生成部912生成的 验证数据与实施方式5不同。验证数据生成部912根据验证基数据保持部 913中保持的验证基数据(图85的验证基数据1400),生成验证数据,并发 送给各更新模块。

这里,作为具体例,说明执行应用110时、验证数据生成部912生成 的验证数据。

图86是表示执行应用110时、验证数据生成部912生成的验证数据 1401的数据结构的图。

验证数据生成部912从验证基数据1400中删除应用110以外的应用 111、112、113、114的识别信息及加密应用的数据、以及应用110的验证 值,由此生成验证数据1401。

另外,验证数据生成部912对其他应用也通过同样的方法生成验证数 据。即,验证数据生成部912从验证基数据1400中删除执行的应用以外的 应用的识别信息、加密应用的数据、以及执行的应用的验证值,由此生成 验证数据。

2.动作

(检测处理)

实施方式7中的检测处理的动作基本上与实施方式5(图73)一样。

在实施方式7中,步骤S542的验证方法不同。

在步骤S542中,更新模块141c根据验证数据中包含的加密应用的数 据和接收到的解密应用的数据,计算哈希值。并且,根据将计算出的哈希 值与在验证数据中包含的其他应用的验证值进行结合而得到的数据,进一 步计算哈希值。最后,更新模块141c使用验证数据中包含的解密处理证书 和计算出的哈希值,验证应用的解密处理的输入输出是否正确。

3.实施方式7的效果

实施方式7的验证数据仅公开了与保护控制模块120c所解密的应用有 关的信息。由此,即便更新模块进行非法动作,也不会从验证数据泄漏有 关其他应用的信息。

另外,在实施方式7中,通过使验证数据由加密应用的数据、验证值(哈 希值)和解密处理证书(对根据结合哈希值来生成的哈希值的签名)构成,能 够验证保护控制模块120c正确进行解密处理。

<实施方式8>

下面,说明本发明的实施方式8。这里,使用与实施方式5相同的符 号来说明。

1.概要

实施方式8的特征在于将各更新模块在检测处理中使用的验证数据在 验证后消除。并且,实施方式8的特征在于各更新模块相互进行篡改检测 处理,相互确认消除了验证数据。另外,各装置的结构与实施方式5一样。

2.动作

(检测处理)

图87和图88是表示实施方式8的检测处理的动作的时序图。

图87的步骤S651~步骤S657与实施方式5(图73)一样。这里,从图 88的步骤S661开始说明。

各更新模块消除在验证数据保持部811中存储的验证数据(步骤S661)。 接着,各更新模块为了确认是否消除了验证数据,相互进行篡改检测处理。

更新模块141c进行更新模块142c的篡改检测处理(步骤S662),更新 模块142c进行更新模块143c的篡改检测处理(步骤S663),更新模块143c 执行更新模块141c的篡改检测处理(步骤S664)。

另外,篡改检测处理通过使用验证密钥计算各更新模块的MAC值、 并比较MAC值表中保持的MAC值与计算的MAC值来进行。另外,也可 以代替MAC值而计算各更新模块的哈希值,比较预先附加于各更新模块 的证书中记述的哈希值与算出的哈希值来进行。

各更新模块将篡改检测结果发送给判断部210b(步骤S665)。

判断部210b从各更新模块接收篡改检测结果(步骤S667),判定进行了 保护控制模块120c的检测处理的更新模块是否被篡改(步骤S668)。

在判定为更新模块被篡改的情况下(步骤S668中是),判断部210b判 断为保护控制模块120c的检测处理未正确执行,并执行被篡改的更新模块 的无效化处理(步骤S669)。之后,判断部210b通知保护控制模块120c再 次执行检测处理(步骤S670)。

在判定为更新模块未被篡改的情况下(步骤S668中否),可视为步骤 S661中正确进行了验证数据的消除。

3.实施方式8的效果

在实施方式8中,各更新模块相互确认消除了检测处理中使用的验证 数据的情况,由此能够防止更新模块中累积验证数据。由此,即便一个更 新模块进行非法动作,也仅泄漏一个应用的验证数据,能够防止其以上的 验证数据泄漏。

<实施方式9>

下面,说明本发明的实施方式9。这里,使用与实施方式5相同的符 号来说明。

1.概要

实施方式9的特征在于在保护控制模块的检测处理中不使用应用的数 据而使用从更新服务器200b预先接收到的验证数据。

2.结构

用图89来说明实施方式9中的验证数据。

验证数据1500对于更新服务器200b生成的5个数据中的每个数据, 包括识别各数据的识别信息、该识别信息所表示的加密数据、以及对加密 数据和解密数据生成的证书(对应关系证书)。

另外,对应关系证书是对于将加密数据设为输入数据时的输入数据与 保护控制模块120c正常动作时的输出数据,使用更新服务器200b的签名 秘密密钥生成的签名。

3.动作

(1)初始设计处理的动作

图90和图91是表示实施方式9的初始设计处理的动作的时序图。

实施方式9的初始设计处理的动作与实施方式5(图68)一样。步骤S713 中更新服务器200b执行的验证数据生成处理与实施方式5不同。

(2)验证数据生成处理

图92是表示实施方式9的验证数据生成处理的动作的流程图。

更新服务器200b生成任意多个数据,分别用保护控制模块120c的加 解密密钥将生成的数据进行加密(步骤S721)。

并且,更新服务器200b对生成的所述多个数据中的每个数据,对将纯 文本数据和加密数据建立对应的数据,生成对应关系证书(步骤S722)。

最后,更新服务器200b生成由各数据的识别信息、加密数据以及对应 关系证书构成的验证数据(步骤S723)。

(3)检测处理的动作

图93和图94是表示实施方式9的检测处理的动作的时序图。

更新模块141c从已保持的验证数据中选择一个加密数据,发送给保护 控制模块120c(步骤S731)。

保护控制模块120b使用加解密密钥将接收到的加密数据进行解密(步 骤S732)。保护控制模块120c将解密后的数据发送给更新模块141c(步骤 S733)。

另外,图93和图94中,仅有更新模块141c进行保护控制模块120c 的检测处理,但更新模块142c和143c也进行同样的处理。

更新模块141c使用验证数据和接收到的解密数据,验证保护控制模块 120c的解密处理的输入输出的对应是否正确(步骤S734)。

在解密处理的输入输出不正确的情况下(步骤S734中“不正确”),更 新模块141c判定为保护控制模块120c被篡改,向判断部210b、更新模块 142c和更新模块143c通知验证结果(步骤S735)。

在解密处理的输入输出正确的情况下(步骤S734中“正确”),更新模 块141c不向判断部210b或其他更新模块通知验证结果。

之后,更新模块141c在任意定时进行保护控制模块120c的验证。更 新模块141c可以定期进行保护控制模块120b的验证,也可以在保护控制 模块120c执行应用时执行。另外,也可以将记载了进行验证的定时的信息 预先从更新服务器200b提供给更新模块141c。

更新模块141c和143c若接受保护控制模块120c被篡改的验证结果, 则从已保持的验证数据中选择一个加密数据,发送给保护控制模块120c(步 骤S736和步骤S737)。

保护控制模块120c分别使用加解密密钥将接收到的加密数据进行解 密(步骤S738),将解密后的数据发送给对应的更新模块142c和143c(步骤 S739和步骤S740)。

更新模块142c和143c使用验证数据和接收到的验证数据,验证保护 控制模块120c的解密处理的输入输出的对应是否正确(步骤S741和步骤 S742)。

更新模块142c和143c将验证结果发送给判断部210b(步骤S743和步 骤S744),判断部210b接收验证结果。

(4)下一轮准备处理的动作

图95是表示实施方式9的下一轮准备处理的动作的时序图。

步骤S801~步骤S814的处理与实施方式5(图75)一样。这里,说明步 骤S802以后的步骤。

各更新模块在保持分散信息之后,向更新服务器200b发送验证数据的 发送委托(步骤S805、步骤S806和步骤S807)。

更新服务器200b进行验证数据生成处理(步骤S808)。在下一轮准备处 理的验证数据生成处理中,与初始设计处理的验证数据生成处理稍有不同。 更新服务器200b使用在更新处理中生成的新加解密密钥,将任意数据进行 加密。并且,对将纯文本数据和加密数据建立对应后的数据。生成对应关 系证书。此外,验证数据的结构与图89所示的验证数据1500一样。

更新服务器200b将生成的验证数据发送给各更新模块(步骤S809)。各 更新模块接收并存储验证数据(步骤S810)。

(5)验证数据更新处理的动作

在实施方式9中,更新服务器200b使用由任意数据生成的验证数据, 进行保护控制模块120c的检测处理。

因此,在重复进行检测处理的情况下,保护控制模块120c有可能进行 将解密处理的输入输出数据进行存储,并将之发送给更新模块的非法处理。 如果这样,各更新模块不能正确进行保护控制模块120c的检测处理。

因此,在实施方式9中,通过更新验证数据,能够增加验证中使用的 加密数据的种类,构筑安全性更高的系统。另外,验证数据更新处理既可 以定期进行,也可以不定期进行。

图96是表示验证数据更新处理的动作的时序图。这里,作为具体例, 说明更新模块141c,但更新模块142c和143c也一样。

更新模块141c为了更新验证数据,将验证数据的发送委托发送给更新 服务器200b(步骤S831)。

更新服务器200b执行验证数据生成处理(步骤S832)。

验证数据更新处理的验证基数据生成处理与下一轮准备处理的验证数 据生成处理一样。更新服务器200b将生成的验证数据发送给更新模块 141c(步骤S833)。

更新模块141c接收并存储验证数据(步骤S834)。

4.实施方式9的效果

在实施方式9中,更新模块从验证数据中任意选择验证中使用的加密 数据。因此,保护控制模块120c难以进行非法动作。由此,能够提高系统 的安全性。

<实施方式10>

最后说明本发明的实施方式10。这里,使用与实施方式5相同的符号 来说明。

1.概要

在实施方式10中,与实施方式6一样,将保护控制模块120c执行的 应用的解密处理分割为多个解密部分处理而进行检测处理。实施方式10的 特征在于还对执行了解密部分处理的顺序进行验证。

2.结构

在实施方式10中,使用表示解密部分处理的顺序的顺序信息。顺序信 息是表示解密部分处理的顺序、以及若部分处理不是最后的处理则进行下 一顺序的解密部分处理的验证的更新模块的信息。

例如,在将更新模块141c、142c、143c的识别信息分别设为ID1、ID2、 ID3,按更新模块141c、142c、143c的顺序进行解密部分处理的情况下, 将顺序信息记载为(ID1、ID2、ID3)。

3.动作

(检测处理的动作)

图97至图99是表示实施方式10的检测处理的动作的时序图。

步骤S901~步骤S902与实施方式6(图80)的处理一样。从步骤S903 开始说明。

保护控制模块120c选择一个更新模块(这里设为更新模块141c),向选 择的更新模块141c发送应用110的识别信息、中间值1、解密部分处理1 的验证数据以及顺序信息(步骤S903)。

保护控制模块120c选择与在先选择的更新模块不同的更新模块(这里 设为更新模块142c),向选择的更新模块142c发送应用110的识别信息、 中间值2、解密部分处理2的验证数据以及顺序信息(步骤S904)。

进而,保护控制模块120c选择与在先选择的两个更新模块不同的更新 模块(这里设为更新模块143c),向选择的更新模块143c发送应用110的识 别信息、解密的应用的数据、解密部分处理3的验证数据以及顺序信息(步 骤S905)。

更新模块141c使用接收到的验证数据,验证解密部分处理1的输入输 出对应是否正确(步骤S906)。在判定为解密部分处理的输入输出对应不正 确的情况下,判定为保护控制模块120c被篡改(步骤S907中是),通知给判 断部210b(步骤S908)。

在判定为保护控制模块120c未被篡改的情况下(步骤S907中否),更 新模块141c不通知判断部210b,而按照顺序信息中包含的更新模块识别信 息,向下一更新模块142c发送中间值1(步骤S909)。

更新模块142c验证从更新模块141c接收到的中间值1是否与从保护 控制模块120c接收到的验证数据中包含的中间值1一致(步骤S910)。

接着,更新模块142c使用从保护控制模块120c接收到的中间值2和 验证数据,验证解密部分处理2的输入输出对应是否正确(步骤S911)。在 步骤S901中中间值1不一致的情况下,或步骤S911中解密部分处理2的 输入输出不正确的情况下,更新模块142c判定为保护控制模块120c被篡 改。

在保护控制模块120c被篡改的情况下(步骤S912中是),更新模块142c 通知判断部210b(步骤S913)。在保护控制模块120c未被篡改的情况下(步 骤S912中否),更新模块142c不通知判断部210b,而按照顺序信息中包含 的更新模块识别信息,向下一更新模块143c发送中间值2(步骤S914)。

更新模块143c验证从更新模块142c接收到的中间值2是否与从保护 控制模块120c接收到的验证数据中包含的中间值2一致(步骤S915)。

接着,更新模块142c使用从保护控制模块120c接收到的中间值2和 验证数据,验证解密部分处理3的输入输出对应是否正确(步骤S916)。在 步骤S915中中间值2不一致的情况下,或步骤S916中解密部分处理3的 输入输出不正确的情况下,更新模块143c判定为保护控制模块120c被篡 改。

在保护控制模块120c被篡改的情况下(步骤S917中是),更新模块143c 通知判断部210b(步骤S918)。在保护控制模块120c未被篡改的情况下(步 骤S917中否),不通知判断部210b,结束检测处理。

3.实施方式10的效果

在实施方式10中,能够使用顺序信息来验证解密部分处理是否按照正 确的顺序执行。

另外,各更新模块通过验证解密部分处理的输出数据与验证数据中包 含的数据是否一致,可知保护控制模块120c或其他更新模块执行非法动作。

<其他变形例>

另外,根据上述实施方式说明了本发明,但本发明当然不限于上述实 施方式。以下的情况也包含于本发明中。

(1)在上述实施方式中,在基于检测模块组和更新模块组的相互监视处 理中判定为存在被篡改的检测模块或更新模块的情况下,判断部立即向检 测模块通知检测处理的停止。

但是,本发明不限于此,也可以将被篡改的检测模块或更新模块无效 化,或在以后的保护控制模块检测处理中不使用被篡改的检测模块或更新 模块。

(2)在上述实施方式的检测处理中,在应用执行时验证保护控制模块的 解密处理。但是,本发明不限于此,也可以在将应用进行加密的处理中验 证。此时,代替图16的检测处理时序图中步骤S41和步骤S42,由应用分 割部分割加密前的应用,由解密加载部加密分割后的应用。步骤S43以后 的处理一样。由此,能够确认保护控制模块正确进行加密处理、保护着应 用。

另外,也可以在追加应用时进行的应用加密处理或应用的再加密时进 行的加密处理中验证保护控制模块。

(3)在上述实施方式的检测处理中,检测模块向其他检测模块发送分割 信息,确认是否验证了全部的分割数据。但是,本发明不限于此,检测模 块也可以预先保持全部的分割信息。

也可以是,检测模块选择分割信息,由检测模块向保护控制模块委托 发送对应于选择的分割信息的分割数据。

另外,也可以是,各检测模块共享分别选择了哪个分割信息,确认是 否从保护控制模块发送了与其他检测模块所选择的分割信息对应的分割数 据。

(4)在上述实施方式的检测处理中,每当执行应用时,从保护控制模块 向检测模块发送分割数据和对应的验证数据,检测模块进行验证。但是, 本发明不限于此。也可以是,保护控制模块在步骤S42之后,累积分割数 据,在从检测模块接受委托的时刻,发送所累积的分割数据和对应的验证 数据。

根据该结构,能够减少检测模块执行的检测处理的执行次数。

另外,通过在检测处理之前在检测模块组中执行相互监视处理,能够 使用判断为合法的检测模块的检测模块来执行保护控制模块的检测处理。

另外,也可以是,在保护控制模块内累积分割数据时,保护控制模块 与各检测模块共享密钥,使用各检测模块的公共密钥,将分割数据进行加 密并保持。另外,也可以使用保护控制模块的认证部所保持的公开密钥, 来将分割数据进行加密。

另外,也可以使用多个检测模块的密钥对一个分割数据进行加密。另 外,可以由保护控制模块选择使用哪个检测模块的密钥,也可以由管理装 置选择并指示给保护控制模块。并且,也可以附加用于证明管理装置进行 了选择的证书。

(5)在上述实施方式的解析判断处理中,使用检测模块的检测结果来判 断保护控制模块有无篡改。

但是,本发明不限于此。也可以是,检测模块组执行相互监视处理, 仅使用合法的检测模块的检测结果来判断有无保护控制模块的篡改。另外, 也可以是,在相互监视处理中检测到非法的检测模块的情况下,仅使合法 的检测模块再次执行检测处理。

(6)在上述实施方式中,保护控制模块和检测模块安装在同一设备中, 但也可以分别安装在不同设备中。此时,例如可以将保护控制模块安装在 发行证书的认证站的装置中,将检测模块安装在监查装置中。监查装置也 可以由检测证书的发行是否正确的系统使用。

(7)在上述实施方式中,作为具体例,将解密后的纯文本应用的数据分 割为3个,检测模块验证各个分割数据之一。

但是,本发明不限于此,也可以将应用的数据分割为k个,向各检测 模块发送k-1个以下的分割数据,使其进行验证。

只要不取得k个分割数据,则不能复原应用的数据,所以即便从一个 检测模块泄漏分割数据,也不会泄漏应用的数据。

(8)在上述实施方式中,将解密后的纯文本应用的数据分割为3个,能 够由3个分割数据复原应用的数据。

但是,本发明不限于此,也可以设为将应用的数据分割为m个,能够 由m个中的k个分割数据复原应用的数据。

此时,保护控制模块选择发送分割数据的检测模块,向选择的各检测 模块发送k-1个以下的分割数据和对应的验证数据。检测模块使用接收到 的k-1个以下的分割数据和验证数据进行验证。

具体用实例来说明。作为分割方法,可以使用(k、m)阈值法将应用的 数据分割为m个,能够由k个复原。(k、m)阈值法记载于非专利文献1的 214页至216页中。

在(k、m)阈值法中,y轴切片使用成为应用的数据的k-1次多项式f(x)。 在多项式f(x)中,x=1、…、m时的m个信息成为分割数据。根据m个分 割数据中的k个分割数据,唯一地确定多项式f(x),所以y轴切片的应用的 数据也唯一地确定。此时的判定信息为k。另外,在将RSA加密中的公开 密钥n(=pq)设为1189(=29×41)的情况下,判定信息变为1189。此时,在将 应用的数据分割为以7、11、13、17、19取约数的5个时,若使用中国剩 余定理则能够复原应用的数据,以超过1189、例如(7,11,17)或(7,13, 19)。

在将应用的数据按每规定尺寸(例如5字节)进行分割的情况下,也可 以分割为如图100所示。分割数据1为从第0字节起5字节量,分割数据2 为从第5字节起5字节量,分割数据3为从第10字节起5字节量,分割数 据4为从第3字节起5字节量,分割数据5为从第8字节起5字节量。

此时的判定信息的结构为((1,2,3)、(1,3,4,5))。

保护控制模块根据判定信息来决定向检测模块发送哪个分割数据。例 如,在保护控制模块决定为使用判定信息(1,3,4,5)来验证的情况下,选 择由应用分割部分割的分割数据中的分割数据1、3、4、5,将各个分割数 据与对应的验证数据发送给任一检测模块。检测模块利用接收到的分割数 据和验证数据进行验证。进而,检测模块根据判定信息,使用其他检测模 块的分割信息来确认分割数据1、2、3或分割数据1、3、4、5被验证。

(9)在上述实施方式的检测处理中,也可以是,管理装置预先决定向哪 个检测模块发送哪个分割数据,并生成为控制信息,从管理装置向保护控 制模块发送生成的控制信息。

另外,检测模块也可以使用规定的决定算法来决定。决定算法例如产 生随机数,根据该随机数来决定进行检测处理的检测模块。此时,设为在 全部的检测模块中共享同一的决定算法,以相同的定时生成相同值的随机 数。决定的检测模块委托保护控制模块发送分割数据和验证数据。

(10)在上述实施方式中,也可以不验证保护控制模块的应用解密处理 或应用加密处理,而验证签名生成处理、签名验证处理、实现著作权保护 功能的处理(内容的权利更新等权利管理)、实现网络银行的处理(以电子货 币为主的电子价值的管理)等。

此时,管理装置预先生成对这些处理的验证基数据,发送给保护控制 模块。

(11)在上述实施方式中,验证数据中包含对全部的应用的解密处理证 书,但不限于此,在验证数据中也可以仅包含对要验证的应用的解密处理 证书。

(12)在上述实施方式2中,在通过相互监视处理未检测到篡改的情况 下,视为分割数据被消除。但是,确认分割数据的消除的方法不限于此。 例如,也可以通过确认在验证数据保持部中是否存储有数据来确认分割数 据被消除。

另外,检测模块也可以保持在消除分割数据的程序在检测模块内动作 时出现的标志,通过确认该标志,确认分割数据被消除。

(13)在上述实施方式的验证基数据更新处理中,也可以是,在生成验 证基数据时,从保持有追加应用的管理装置向保护控制模块发送追加应用, 在保护控制模块中生成加密应用。另外,也可以是,保护控制模块向管理 装置送回加密应用,管理装置生成验证基数据。

另外,也可以是,设备从记录媒体安装追加应用,用加解密密钥将安 装的应用进行加密,将加密应用发送给管理装置。

(14)在上述实施方式中,在向设备追加应用时,执行验证基数据的更 新处理,但本发明不限于此,也可以定期或不定期地更新验证基数据。

例如,也可以在向下载应用的服务器追加应用时,在该追加应用安装 到设备之前进行验证基数据更新处理。由此,在将追加应用安装到设备时, 不需要将设备连接于管理装置。

(15)在上述实施方式中,作为验证基数据的更新处理动作,在向设备 追加应用时进行,但不限于此,也可以预先生成追加到设备的能取得的应 用的数据的验证基数据。

(16)在上述实施方式中的验证基数据更新处理中,管理装置也可以认 证保护控制模块。作为认证方法,既可以验证保护控制模块的解密处理, 也可以使用询问-响应。

(17)在上述实施方式中,也可以将程序的混淆(obfuscate)技术组合而 对解密处理或解密部分处理实施混淆。由此,即使检测模块进行了非法动 作,保护控制模块的信息也难以进一步泄漏。

(18)在上述实施方式的初始设计处理中,在将保护控制模块安装在设 备中后,由管理装置生成验证基数据,发送给保护控制模块。

但是,本发明不限于此,也可以在将保护控制模块安装于设备时,在 保护控制模块的验证基数据保持部中预先埋入验证基数据的状态下安装。

另外,在更新处理中,在将更新后的新的保护控制模块发送给设备时, 也可以同样在新的保护控制模块的验证基数据保持部中预先埋入验证基数 据的状态下发送。

(19)在上述实施方式的检测处理中,在执行应用时,从保护控制模块 向检测模块发送验证数据、应用的识别信息、以及解密后的应用的数据, 但本发明不限于此。

例如,也可以将对用户执行应用时的执行指令进行管理的管理模块安 装于设备,在管理模块检测执行指令时,从管理模块向检测模块通知执行 应用,接收到通知的检测模块委托保护控制模块发送验证数据和解密后的 应用的数据。

另外,也可以在检测模块侧监视应用的执行,当执行应用时委托保护 控制模块发送验证数据和解密后的应用的数据。

(20)在上述实施方式的检测处理中,也可以是,在未从保护控制模块 向检测模块发送应用的识别信息、分割数据和验证数据的情况下,检测模 块判定为保护控制模块被篡改。

(21)在上述实施方式中,保护控制模块也可以将能够复原应用的数据 的最小分割数据中的、削减了1位以上信息量的分割数据作为被验证数据, 发送给检测模块。

此时,保护控制模块也可以将被验证数据发送给一个检测模块。另外, 也可以是,保护控制模块向各检测模块发送被验证数据,以使如果使用发 送到所有检测模块的被验证数据,则能够复原应用的数据。

(22)在上述实施方式中,检测模块也可以是仅具有验证保护控制模块 的功能的程序。

(23)在上述实施方式中,将保护控制模块进行更新,但本发明也可以 更新保护控制模块以外的模块。

这里,以更新检测模块133的情况为例,说明检测模块的更新处理。

更新用软件分发部使用多个密钥对更新用的新的更新模块进行多重加 密,并发送给检测模块组中包含的其他检测模块。接收到更新用的新的检 测模块的检测模块更新检测模块133。

(24)上述实施方式中的更新模块可以仅由监视处理所需的结构要素(控 制部和验证部)构成,也可以仅由更新处理所需的结构要素(控制部和更新部) 构成,也可以仅由无效化处理所需的结构要素(控制部303和更新部304)构 成。

(25)在上述实施方式中,在更新模块进行其他更新模块或保护控制模 块的篡改检测时,也可以不执行模块整体的篡改检测,而执行模块内的一 部分、例如指定的功能或函数、密钥等的篡改检测。

另外,可以按将篡改检测对象的数据以规定尺寸分割而得到的每个分 割数据来进行篡改检测,也可以按以功能或函数单位分割而得到的每个分 割数据来进行篡改检测。并且,对于篡改检测对象的分割数据,可以从数 据的开头起依次检查,也可以按随机的顺序检查。

(26)在上述实施方式中,也可以将更新模块和保护控制模块保存在防 篡改的区域中,并在受到保护以不被攻击者攻击的区域中动作。

也可以是,在仅由监视处理所需的结构要素构成的更新模块保存在防 篡改的区域中的情况下,其他模块无条件地接受从该更新模块接收的通知, 实施更新处理或无效化处理。或者,也可以将从该更新模块接收的通知作 为重要度比来自其他模块的通知高的通知来处理,进行更新处理或无效化 处理的判断。

另外,也可以在保护模式(防篡改的区域)下执行保护控制模块,在通 常模式(非防篡改的区域)下执行更新模块。

(27)在上述实施方式中,模块无效化部存在于更新服务器内,访问控 制模块存在于设备内。但本发明不限于此,模块无效化部和访问控制模块 也可以均存在于设备内,也可以均存在于更新服务器内。在存在于设备内 的情况下,可以保存在防篡改的区域中。

(28)在上述实施方式中,也可以在工场出厂后进行设备的初始设计处 理。另外,设备的初始设计处理不仅可以进行1次,也可以进行2次以上。

(29)在上述实施方式中,验证用证书、认证密钥证书和对应关系证书 均是使用更新用软件分发部所保持的签名秘密密钥来生成的。但本发明不 限于此,各个证书也可以分别使用不同的密钥来生成。另外,各个证书也 可以是由更新用软件分发部以外的证书发行装置发行的证书。

(30)在上述实施方式的初始设计处理或下一轮准备处理中,构成为由 更新模块保持分散信息。但也可以构成为分散信息由应用保持,也可以构 成为由更新模块和应用保持。

(31)在上述实施方式的检测处理中,在更新模块检测到保护控制模块 的篡改的情况下,向判断部和其他全部的更新模块通知该情况。但本发明 不限于此,也可以仅通知判断部,也可以仅通知其他更新模块中的某一个 更新模块。

另外,在上述实施方式中,在更新模块未检测到保护控制模块的篡改 的情况下,不通知判断部,但也可以向判断部通知未检测到篡改的情况。

(32)在上述实施方式的检测处理中,各更新模块也可以与其他更新模 块共享检测结果。另外,在存在不共享检测结果的更新模块的情况下,也 可以将该更新模块判断为非法的更新模块,并进行无效化。

(33)在上述实施方式中,作为解析判断处理的动作,根据篡改信息来 判定是否更新保护控制模块120,但不限于此,也可以利用发出了被篡改的 通知的更新模块的数量来判定是否更新。另外,作为解析判断时的动作, 判断了是否更新保护控制模块120及是否将保护控制模块120无效化,但 不限于此,也可判断是否停止设备100。

(34)在上述实施方式的相互认证处理中,更新模块对更新用软件分发 部进行认证,之后,更新用软件分发部对各个更新模块进行认证。但认证 顺序也可相反。也可以是,更新用软件分发部对各个更新模块进行认证, 之后,更新模块对更新用软件分发部进行认证。

另外,相互认证处理中使用的询问数据也可以在全部的更新模块中为 相同值,也可以将更新模块分为多个组,使询问数据在各个组中为不同的 值。

(35)在上述实施方式的相互认证处理中,各更新模块分别具有单独对 更新用软件分发部进行认证的结构。

但是,本发明不限于此,也可以将各更新模块进行了签名验证的结果 通知给其他更新模块,在更新模块间共享验证结果。也可以使用本更新模 块的认证结果和从其他更新模块接收到的认证结果,例如在过半数等的更 新模块认证成功的情况下,判定为更新用软件分发部合法,在不成功的情 况下,判定为非法。

(36)在上述实施方式的相互认证处理中,根据合法的更新模块的数量 是否为恢复处理所需的数量以上,来判断是否进行恢复处理。

也可以代替它而根据非法的更新模块的数量是否小于预先设定的允许 数量,来判断是否进行恢复处理。

另外,在判定为合法的更新模块的数量小于恢复处理所需的数量的情 况下,也可以代替停止设备,而将非法的更新模块进行无效化。

(37)在上述实施方式的相互认证处理中,各更新模块将认证公开密钥 及认证密钥证书与响应数据一起发送给更新用软件分发部。但也可以是, 响应数据与认证公开密钥及认证密钥证书分别以不同的定时发送。另外, 也可以是,认证公开密钥及认证密钥证书在由更新用软件分发部进行请求 的情况下发送。

更新用软件分发部也可以从全部的更新模块接收认证公开密钥及认证 密钥证书,也可以从恢复处理所需的数量的更新模块接收认证公开密钥及 认证密钥证书。

(38)在上述实施方式中,在1次解密处理中执行2次监视处理(监视3-1、 3-2、5-1、5-2)。但是,监视处理不限于2次,根据解密处理所需的时间, 执行多少次均可。

另外,不限于在解密处理中进行监视处理的情况,也可以在密钥或更 新用保护控制模块的接收处理时或检测处理时、相互认证处理时进行。

另外,监视处理也可以以规定时间间隔定期实施,也可以以随机时间 间隔实施,也可以以由更新服务器指定的时间间隔实施。

另外,各更新模块也可以从外部服务器取得表示执行监视处理的定时 的同步信息,并按照所取得的同步信息来执行监视处理。由此,由于各更 新模块能够以与其他更新模块相同定时执行监视处理,所以能够提高非法 更新模块的检测精度。

(39)在上述实施方式6中,将解密处理分割为多个解密部分处理,但 本发明不限于此,也可以将应用进行多重加密,并将被多重加密的应用进 行解密。

以将应用进行了三重加密的情况为例进行说明。解密部分处理1是将 三重加密应用解密为二重加密应用的处理。解密部分处理2是将二重加密 应用解密为加密应用的处理。解密部分处理3是将加密应用解密为纯文本 应用的处理。

(40)在上述实施方式6的检测处理中,由一个更新模块进行了各解密 部分处理的验证,但不限于此,也可以由多个更新模块进行各解密部分处 理的验证。

(41)上述实施方式5和实施方式6中的验证基数据为包含各应用的对 应关系证书的结构。但是,验证基数据的结构不限于此。例如,实施方式5 和实施方式6中使用的验证基数据也可以是图101所示的结构。

验证基数据1600由对各应用的应用识别信息、与该识别信息对应的加 密应用的数据和证书构成。

多个加密应用的数据通过由更新用软件执行部执行保护控制模块并将 各应用进行加密来生成。

证书是将各加密应用的数据作为输入数据、结合保持控制模块正常动 作时输出的各输出数据、并对结合后的数据使用更新服务器签名秘密密钥 来生成的签名。

(42)在上述实施方式8的检测处理中,也可以将保护控制模块视为一 个程序数据,对规定的一部分数据进行篡改检测。此时,各更新模块也可 以对保护控制模块的不同部分的数据进行篡改检测。

另外,也可以将保护控制模块的数据进行分割,分割后的全部数据必 由一个以上的更新模块进行篡改检测。

另外,也可以在篡改检测后,在各更新模块中消除篡改检测对象的数 据,各更新模块相互进行篡改检测,从而确认篡改检测对象的数据被消除。

(43)在上述实施方式4-10中,,、更新模块也可以是仅具有验证保护控 制模块的功能的检测模块。

(44)在上述实施方式中,将解密处理分割为3个解密部分处理。但本 发明不限于此,也可以将解密处理分割为2个,也可以分割为4个以上。 另外,分割解密处理的单位可以是任何单位。既可以按解密处理中包含的 每个函数分割,也可以按每个运算命令分割。也可以按函数或命令的每个 块分割。

(45)在上述实施方式6的检测处理中,也可以代替由更新模块保持验 证数据,而由保护控制模块保持验证数据。也可以是,保护控制模块解密 从更新模块发送的加密数据,将与解密后的数据一起保持的所述验证数据 发送给更新模块。

(46)也可以通过分别组合上述实施方式,对于保护控制模块的检测处 理,将(a)对应用的解密处理的验证、和(b)使用更新服务器生成的任意数据 的验证组合。

(47)具体而言,上述各模块分别既可以是单独的计算机程序,也可以 是组入操作系统的模块,也可以是从操作系统调用的驱动程序,也可以是 应用程序。

(48)上述各装置具体而言是包括微处理器、ROM、RAM、硬盘单元、 显示器单元、键盘、鼠标等的计算机系统。在所述RAM或硬盘单元中存 储计算机程序。通过由所述微处理器按照所述计算机程序动作,各装置实 现其功能。这里,计算机程序为了实现规定功能,将多个表示对计算机的 指令的命令代码来构成。

(49)构成上述各装置的结构要素的一部分或全部可以由一个系统 LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是将多个构成 部集成在一个芯片上来制造的超多功能LSI,具体而言,是包含微处理器、 ROM、RAM等来构成的计算机系统。所述RAM中存储了计算机程序。通 过由所述微处理器按照所述计算机程序动作,系统LSI实现其功能。

另外,构成上述各装置的结构要素的各部既可以单独集成在一个芯片 上,也可以以包含部分或全部的方式集成在一个芯片上。

另外,这里设为系统LSI,但根据集成度的不同,有时称为IC、LSI、 超(super)LSI、超级(ultra)LSI。另外,集成电路化的方法不限于LSI,也可 以用专用电路或通用处理器来实现。另外,也可以在LSI制造之后,利用 可以编程的FPGA(Field Programmable Gate Array:现场可编程门阵列)、或 可以将LSI内部的电路单元的连接或设定重构的可重构处理器。

并且,若通过半导体技术的进步或派生的其他技术出现置换LSI的集 成电路化技术,则当然也可以使用该技术来进行功能块的集成化。可以适 用生物技术等。

(50)构成上述各装置的结构要素的一部分或全部也可以由可拆装于各 装置上的IC卡或单体模块构成。所述IC卡或所述模块是由微处理器、 ROM、RAM等构成的计算机系统。所述IC卡或所述模块也可以包含上述 超多功能LSI。微处理器按照计算机程序动作,从而所述IC卡或所述模块 实现其功能。该IC卡或该模块也可以具有防篡改性。

(51)本发明也可以是如上所述的方法。另外,也可以是由计算机实现 这些方法的计算机程序。

另外,本发明也可以是将所述计算机程序记录在计算机可读取的记录 媒体、例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、 BD(Blu-ray Disc)、半导体存储器等中而成的。

另外,本发明也可以经由电通信线路、无线或有线通信线路、以因特 网为代表的网络、数据广播等来传送所述计算机程序。

另外,本发明也可以是具备微处理器和存储器的计算机系统,所述存 储器存储上述计算机程序,所述微处理器按照所述计算机程序动作。

另外,也可以通过将所述程序记录在所述记录媒体中移送,或通过将 所述程序经由所述网络等移送,由独立的其他计算机系统来实施。

(52)将上述实施方式和上述变形例分别组合的情况也包含于本发明 中。

<总结>

如上所述,本发明是一种信息处理装置,包括验证规定的应用是否被 篡改的保护控制模块和多个检测模块,其特征在于,所述保护控制模块具 备:解密单元,将所述应用进行解密;以及发送单元,发送作为所述解密 部分的输出数据的被验证数据,所述多个检测模块中的至少两个检测模块 分别具备:接收单元,从所述保护控制模块接收所述被验证数据;验证数 据保持单元,保持验证数据;以及第1验证单元,根据所述被验证数据和 所述验证数据来验证所述保护控制模块,所述验证数据是表示所述解密单 元进行了正常动作时的输入数据与输出数据的对应关系的数据,所述至少 两个检测模块根据同一被验证数据来验证所述保护控制模块。

另外,本发明是一种信息处理装置,包括验证至少包含第1应用和第 2应用的多个应用是否被篡改的保护控制模块和检测模块,其特征在于,所 述保护控制模块具备:保持单元,保持验证基数据;解密单元,将加密的 所述第1应用和加密的所述第2应用进行解密;验证数据生成单元,生成 验证数据;以及发送单元,发送所述验证数据和作为所述解密单元的输出 数据的被验证数据,所述检测模块具备:接收单元,从所述保护控制模块 接收所述被验证数据和所述验证数据;以及第1验证单元,根据所述被验 证数据和所述验证数据来验证所述保护控制模块,所述验证基数据包含: 加密所述第1应用和所述第2应用各自而得到的数据;将加密所述第1应 用和所述第2应用各自而得到的数据作为输入数据时的、表示所述解密单 元进行了正常动作时的输入数据与输出数据的对应关系的第1验证值和第 2验证值;以及由结合至少包含所述第1验证值和所述第2验证值的多个验 证值全部的结合数据生成的结合数据验证值,在由所述保护控制模块解密 所述第1应用的情况下,所述验证数据由从所述验证基数据中删除所述第1 验证值及所述第1应用以外的加密后的应用的数据的数据构成,在由所述 保护控制模块解密所述第2应用的情况下,由从所述验证基数据中删除所 述第2验证值及所述第2应用以外的加密后的应用的数据的数据构成。

工业实用性

本发明能够在制造和销售信息处理装置及对所述信息处理装置提供软 件的管理装置或更新服务器的产业中,利用为检测在信息处理装置上动作 的非法软件的技术和安全地更新非法软件的技术。

符号说明

1非法模块检测系统

2非法模块检测系统

100、100b设备

120、120a、120b、120c保护控制模块

130检测模块组

130b更新模块组

131、131a、132、132a、133、133a检测模块

140访问控制模块

141、141c、142、142c、143、143c更新模块

200管理装置

200b更新服务器

210、210b判断部

220、220a验证基数据分发部

230通信部

240、240c更新软件分发部

250模块无效化部

301接收部

302发送部

303控制部

304更新部

304解密加载部

305篡改检测部

306解析工具检测部

307加解密密钥保持部

308验证基数据保持部

309验证数据生成部

310应用分割部

321加解密密钥分散部

322证书生成部

323加解密密钥复原部

401接收部

402发送部

403控制部

404验证部

405MAC值生成部

406MAC值表更新部

407验证数据保持部

410更新部

411分散信息保持部

412认证部

420验证基数据保持部

501接收部

502发送部

503指示生成部

504模块确定部

601接收部

602发送部

603控制部

604认证部

605证书生成部

606签名秘密密钥保持部

607加密密钥保持部

608数据分割部

609应用保持部

610验证基数据生成部

611保护控制模块保持部

620加密密钥生成部

621加密处理部

622检测模块选择部

801接收部

802发送部

803控制部

804更新部

805验证部

806MAC值生成部

807MAC值表更新部

808分散信息保持部

810检测部

811验证数据保持部

901接收部

902发送部

903控制部

904解密加载部

905检测部

906解析工具检测部

907加解密密钥保持部

908加解密密钥生成部

909加解密密钥分散部

910证书生成部

911加解密密钥复原部

912验证数据生成部

913验证基数据保持部

1001接收部

1002发送部

1003访问信息保持部

1101接收部

1102发送部

1103指示生成部

1104模块确定部

1201接收部

1202发送部

1203加密密钥生成部

1204加密处理部

1205认证部

1206更新模块选择部

1207控制部

1208证书生成部

1209签名秘密密钥保持部

1210更新用软件保持部

1211加密密钥保持部

1220更新用软件执行部

1221应用保持部

1222验证基数据生成部

1301接收部

1302发送部

1303访问信息取得密钥保持部

1304更新模块选择部

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号