程序窜改检测装置、方法以及程序.pdf

上传人:a2 文档编号:1061200 上传时间:2018-03-29 格式:PDF 页数:37 大小:1.46MB
返回 下载 相关 举报
摘要
申请专利号:

CN200510007859.6

申请日:

2005.02.06

公开号:

CN1652057A

公开日:

2005.08.10

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 1/00变更事项:专利权人变更前:瑞萨电子株式会社变更后:瑞萨电子株式会社变更事项:地址变更前:日本神奈川变更后:日本东京|||专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 1/00变更事项:专利权人变更前:恩益禧电子股份有限公司变更后:瑞萨电子株式会社变更事项:地址变更前:日本神奈川变更后:日本神奈川|||授权|||实质审查的生效|||公开

IPC分类号:

G06F1/00; G06F12/14

主分类号:

G06F1/00; G06F12/14

申请人:

恩益禧电子股份有限公司;

发明人:

中泽武

地址:

日本神奈川

优先权:

2004.02.06 JP 2004-031272

专利代理机构:

中原信达知识产权代理有限责任公司

代理人:

穆德骏;陆弋

PDF下载: PDF下载
内容摘要

一种程序窜改检测装置,包括:外部存储器(4)、启动ROM(2)、以及CPU(3)。外部存储器(4)存储用于程序窜改检测的第一代码以及第一程序,其中第一程序被加密。启动ROM(2)存储用于解密第一程序的第二程序。CPU(3)电连接到外部存储器(4)和启动ROM(2)。CPU(3)通过执行第二程序来解密第一程序以获得解密的第一程序。CPU(3)基于第一代码与在解密的第一程序的第二代码上执行的预定操作的结果之间的比较,检测第一程序的窜改。

权利要求书

1: 一种程序窜改检测装置,包括: 外部存储器,其存储用于程序窜改检测的第一代码以及第一程 序,其中所述第一程序被加密; 启动ROM,其存储用于解密所述第一程序的第二程序;以及 CPU,电连接到所述外部存储器和所述启动ROM, 其中所述CPU通过执行所述第二程序来解密所述第一程序以获 得所述解密的第一程序,以及 所述CPU基于所述第一代码与在所述解密的第一程序的第二代 码上执行的预定操作的结果之间的比较,检测所述第一程序的窜改。
2: 根据权利要求1的程序窜改检测装置,进一步包括: RAM, 其中所述CPU将所述解密的第一程序存储在所述RAM中,并从 所述RAM中读取所述第二代码,以及基于所述比较来检测所述第一 程序的窜改。
3: 根据权利要求2的程序窜改检测装置,其中所述外部存储器 具有地址数据,该地址数据指定所述RAM中的地址, 所述CPU基于所述地址数据,将所述解密的第一程序存储在所 述RAM中,并且基于所述地址数据而从所述RAM读出所述第二代 码。
4: 根据权利要求1的程序窜改检测装置,其中所述启动ROM具 有启动程序,以及 所述CPU通过执行所述启动程序来执行所述第二程序,以获得 所述解密的第一程序。
5: 根据权利要求1的程序窜改检测装置,其中存在多个所述的 第二程序, 所述多个第二程序中的一个第二程序的加密方案与所述多个第二 程序中的别的第二程序的加密方案不同,以及 所述CPU选择并且执行所述多个第二程序中的一个第二程序。
6: 根据权利要求5的程序窜改检测装置,进一步包括: 第一存储部分,其存储使用所述CPU来选择包括在所述启动ROM 中的多个区域中的一个区域的区域数据, 其中所述CPU基于所述区域数据选择多个区域中的所述一个区 域,以及 所述CPU通过执行对应于多个区域中的所述选择的一个区域的 所述多个第二程序中的一个程序,来解密所述第一程序,以获得所述 解密的第一程序。
7: 根据权利要求1的程序窜改检测装置,进一步包括: 第二存储部分,其存储用于识别所述程序窜改检测装置的标识 符, 其中所述解密的第一程序具有标识符确认数据,以及 所述CPU通过检验所述标识符确认数据与所述标识符,来检测 所述第一程序的窜改。
8: 根据权利要求1的程序窜改检测装置,其中所述启动ROM具 有程序窜改报告程序, 通过响应所述第一程序的窜改检测而执行所述程序窜改报告程 序,所述CPU产生指示所述第一程序的窜改的消息,并且经由网络发 送所述消息到具有预定地址的设备。
9: 根据权利要求1的程序窜改检测装置,其中所述CPU和所述 启动ROM安装在单个半导体器件上,并且 所述半导体设备连接到所述外部存储器。
10: 根据权利要求6的程序窜改检测装置,其中所述CPU、所述 启动ROM以及所述第一存储部分安装在单个半导体设备上,并且 所述半导体设备连接到所述外部存存储器。
11: 根据权利要求1的程序窜改检测装置,其中当所述CPU未检 测到所述第一程序的窜改时,所述CPU执行所述解密的第一程序以解 码通过网络接收的数据。
12: 一种用于程序窜改检测装置的计算机程序产品,其中所述程 序窜改检测装置包括: 外部存储器,其存储用于程序窜改检测的第一代码以及第一程 序,其中所述第一程序被加密, 启动ROM,其存储用于解密所述第一程序的第二程序,以及 CPU,电连接到所述外部存储器和所述启动ROM, 所述计算机程序体现在计算机可读介质上并且包含代码,当执行 所述代码时,使得计算机执行以下步骤: (a)从所述启动ROM读取所述第二程序; (b)执行所述第二程序以获得所述解密的第一程序; (c)基于所述第一代码与在所述解密的第一程序的第二代码上 执行的预定操作的结果的比较,检测所述第一程序的窜改。
13: 根据权利要求12的计算机程序产品,其中所述程序窜改检 测装置进一步包括RAM, 所述步骤(b)包括: (b1)在所述RAM中存储所述解密的第一程序, 所述步骤(c)包括: (c1)从所述RAM中读取所述第二代码。
14: 根据权利要求13的计算机程序产品,其中所述步骤(b)进 一步包括: (b2)读出所述外部存储器中存储的地址数据,该地址数据指定 所述RAM内的地址, 所述步骤(b1)包括: (b12)基于所述地址数据,在所述RAM中存储所述解密的第 一程序,以及 所述步骤(c1)包括: (c12)基于所述地址数据,从所述RAM中读取所述第二代码。
15: 根据权利要求12的计算机程序产品,其中所述步骤(a)包 括: (a1)执行所述启动ROM中存储的启动程序以启动所述CPU。
16: 根据权利要求12的计算机程序产品,其中存在多个所述第 二程序,所述启动ROM具有多个区域, 所述多个区域的每一区域存储有所述多个第二程序中的相应一个 第二程序, 所述多个第二程序中的一个第二程序的加密方案与所述多个第二 程序中的别的第二程序的加密方案不同, 所述步骤(a)包括: (a2)选择所述多个区域之一,和 (a3)读取对应于多个区域中的所述选择的一个区域的所述多个 第二程序中的一个第二程序,以及 所述步骤(b)包括: (b3)执行所述多个第二程序中所述被读取的一个第二程序。
17: 根据权利要求16的计算机程序产品,其中所述程序窜改检 测装置进一步包括第一存储部分, 所述步骤(a2)包括: (a21)读取用于选择多个区域中的所述一个区域的区域数据, 所述区域数据存储在所述第一存储部分中,以及 (a22)基于所述区域数据,选择多个区域中的所述一个区域。
18: 根据权利要求12的计算机程序产品,其中所述程序窜改检 测装置进一步包括第二存储部分, 所述步骤(c)包括: (c2)读取用于识别所述程序窜改检测装置的标识符,所述标识 符存储在所述第二存储部分中, (c3)从所述解密的第一程序中提取标识符确认数据,以及 (c4)通过检验所述标识符确认数据与所述标识符,来检测所述 第一程序的窜改。
19: 根据权利要求12的计算机程序产品,进一步包括: (d)读取所述启动ROM中存储的程序窜改报告程序,以及 (e)通过响应所述第一程序的窜改的检测而执行所述程序窜改 报告程序,来产生指示所述第一程序被窜改的消息,并且经由网络发 送所述消息到具有预定地址的设备。
20: 一种程序窜改检测方法,包括: (a)读取用于解密的第二程序; (b)通过解密加密的第一程序,来执行所述第二程序以获得解 密的第一程序;以及 (c)基于预定的第一代码与对所述解密的第一程序的第二代码 执行的预定操作的结果的比较,来检测所述第一程序的窜改。
21: 根据权利要求20的程序窜改检测方法,其中所述步骤(b) 包括: (b1)读取地址数据,该地址数据指示RAM中的地址, (b2)基于所述地址数据,将所述解密的第一程序存储在所述 RAM中,以及 所述步骤(c)包括: (c1)基于所述地址数据,从所述RAM中读取所述第二代码。
22: 根据权利要求20的程序窜改检测方法,其中所述步骤(a) 包括: (a1)执行启动程序以便执行所述第二程序。
23: 根据权利要求20的程序窜改检测方法,其中存在多个所述 第二程序, 所述多个第二程序中的一个第二程序的加密方案与所述多个第二 程序中的别的第二程序的加密方案不同, 所述步骤(a)包括: (a2)选择所述多个第二程序中的一个第二程序,以及 (a3)读取多个第二程序中的所述一个第二程序,以及 所述步骤(b)包括: (b3)执行所述多个第二程序中所述被读取的一个第二程序。
24: 根据权利要求23的程序窜改检测方法,其中所述步骤(a3) 包括: (a31)读取用于选择多个区域中的所述一个区域的区域数据, 以及 (a32)基于所述区域数据,选择多个区域中的所述一个区域。
25: 根据权利要求20的程序窜改检测方法,所述步骤(c)包括: (c2)读取标识符, (c3)从所述解密的第一程序中提取标识符确认数据,以及 (c4)通过检验所述标识符确认数据与所述标识符,以检测所述 第一程序的窜改。
26: 根据权利要求20的程序窜改检测方法,进一步包括: (d)读取程序窜改报告程序,以及 (e)通过响应所述第一程序的窜改的检测而执行所述程序窜改 报告程序,来产生指示所述第一程序被窜改的消息,并且经由网络发 送所述消息到具有预定地址的设备。

说明书


程序窜改检测装置、方法以及程序

    【技术领域】

    本发明涉及防止窜改计算机程序的程序窜改检测装置、程序窜改检测方法,以及程序窜改检测程序。

    背景技术

    近几年来,随着计算机技术的快速发展,多种类的产品安装到计算机中。这样的计算机需要CPU(中央处理单元)和运行CPU的计算机程序。诸如家庭电子设备或通信装置那样的产品中所安装的计算机程序是基于那种产品唯一的规范而进行设计的。例如,付费广播系统中使用的接收器优选地仅用于同意接收合同的个人。因此,同样对将被安装到接收器中的计算机程序进行设计以便仅在适当地和合法地使用接收器的情况下可操作。用于启动这样的接收器的计算机程序存储在ROM(只读存储器)中并且在启动接收器的情况下被读取。计算机通过执行所读取的计算机程序来控制接收器。

    在使用计算机执行电子控制的装置的领域内,与该装置地主体的情况相似,用于研发装置内ROM中存储的计算机程序的成本会很高。这种计算机程序有重要的商业性。例如,对于上述付费广播系统来说,假设不具有接收合同的第三方知道了用于启动接收付费广播的接收器的程序。这意味着付费广播系统所提供的服务可能被非法的第三方使用。另外,计算机程序是该系统的一种知识产权。为了适当地保护作为一种知识产权的计算机程序,需要一种防止第三方轻易获悉计算机程序的技术。

    通常,通用CPU和ROM的规范广泛地向一般公众公开。在这些情况下,获得装置的第三方能够轻易地执行程序分析,其中所述装置包括具有CPU和ROM的计算机。关于这一点,存在防止第三方执行装置内ROM中存储的计算机程序的程序分析的已知技术。

    在随后的相关技术中示出了这些技术实例。

    日本未决专利申请(JP-Heisei11-126174 A)公开了一种存储数据的微处理器读取设备。该存储数据的微处理器读取装置包括微处理器、存储装置和读取装置。存储装置存储用于操作微处理器的信息数据。读取装置读取存储装置内的信息数据并且将该信息数据发送到微处理器。读取装置具有数据变换电路。数据变换电路通过信息数据读取期间动态改变的数据来变换从存储装置中读取的信息数据。

    日本未决专利申请(JP-Heisei08-305558 A)公开了一种加密程序操作设备。该加密程序操作设备包括第一存储器、第二存储器、以及读取保护装置。第一存储器至少存储有解密程序。第二存储器存储由第一存储器中存储的解密程序解密的加密程序。读取保护装置防止第二存储器中存储的解密加密程序被外界读取。

    日本未决专利申请(JP-Heisei05-197633 A)公开了一种集成电路。该集成电路包括CPU、解密装置和密钥存储装置。CPU执行数据处理。解密装置将加密指令代码解密为CPU能够执行数据处理的代码。密钥存储装置存储用于控制解密装置解密数据的密钥。

    日本未决专利申请(JP-Showa59-188897 A)公开了一种用于数据处理装置的数据安全保护设备。该数据安全保护设备包括用于数据处理的有内部存储器和逻辑电路的LSI。内部存储器不允许外部设备读取其的数据。逻辑电路执行从LSI外部的外部存储器读取的数据和从内部存储器读取的数据之间的适当的逻辑操作。内部存储器存储多个密钥。外部存储器存储变换的代码,所述变换的代码已经被变换以致于通过密钥和变换的代码之间适当的逻辑操作而能够获得规则的数据。数据安全保护设备通过从内部存储器和外部存储器中读取地址来产生规则的数据。

    另外,随着半导体技术的提高,非易失和可编程/可重编程的ROM(诸如闪速ROM)是可以利用的,并且广泛地用于上述装置。通过使用这些ROM,对操作该装置的计算机程序版本的更新变得更加的容易。对于使用这种可编程/可重编程ROM(以下为“可重编程ROM”)的装置来说,需要能够防止对ROM中存储的计算机程序进行非法重编程的技术。

    图1示出了具有CPU和ROM(以下为“闪速ROM”)的常规配置的框图。参考图1,常规装置具有闪速ROM101和CPU102,两者通过总线103彼此相连。此外,所述闪速ROM101具有普通区域101a和一次编程区域101b。

    普通区域101a是在其中编程的数据能够被重新编程并且存储加密的计算机程序的区域。一次编程区域101b非可重编程(仅一次可编程)的区域。一次编程区域101b存储用于解密被加密的程序的解密程序。一次编程区域101b存储用于启动装置的启动程序。

    在启动过程中,CPU102首先从一次编程区域101b中读取启动程序,并且开始启动装置。解密程序对闪速ROM101的普通区域101a中存储的加密程序进行解密,并且同时将解密程序加载到外部RAM(未示出)。此后,被加载的程序驱动装置工作。

    常规技术能够防止第三方非法使用装置。这些技术在防止非法分析计算机程序方面是优秀的。然而,需要更强的程序分析防止技术。另外需要防止窜改程序的技术。此外需要当计算机程序被窜改时用来检测窜改的计算机程序并且输出警告的技术。

    【发明内容】

    本发明的一个目的是在具有加密的计算机程序的装置中,提供一种具有如下配置的装置,使得不轻易地对外泄漏出其加密方案;以及为此的方法和程序。

    本发明的另一目的是提供一种具有如下配置的装置,使得即使泄漏了加密方案,也能够防止窜改加密的计算机程序;以及为此的方法和程序。

    本发明的又另一目的是提供一种具有如下配置的装置,使得在窜改的情况下,该装置能够检测对计算机程序的窜改,以及为此的方法和程序。

    通过参考随后的描述和附图,能够很容易地确定本发明的这个和其他目标,特征以及优点。

    为了实现本发明的一个方面,本发明提供一种程序窜改检测装置,包括:外部存储器;启动ROM;以及CPU。外部存储器存储用于程序窜改检测的第一代码以及第一程序,其中第一程序被加密。启动ROM,其存储用于解密第一程序的第二程序。CPU电连接到外部存储器和启动ROM。CPU通过执行第二程序来解密第一程序以获得解密的第一程序。CPU基于第一代码与在解密的第一程序的第二代码上执行的预定操作的结果之间的比较来检测第一程序的窜改。

    该程序窜改检测装置进一步包括RAM。在该情况下,CPU将解密的第一程序存储在RAM中,并从RAM中读取第二代码,并且基于比较来检测第一程序的窜改。

    在该程序窜改检测装置中,外部存储器可以具有地址数据,该地址数据指定RAM中的一个地址。在该情况中,CPU基于地址数据,将解密的第一程序存储在RAM中,并且基于地址数据而从RAM读出第二代码。

    在该程序窜改检测装置中,启动ROM具有启动程序。在该情况中,CPU通过执行启动程序来执行第二程序,以获得解密的第一程序。

    在程序窜改检测装置中,可以有多个第二程序。在该情况下,多个第二程序中的一个的加密方案与多个第二程序中的其它的加密方案不同。CPU选择并且执行多个第二程序的一个。

    程序窜改检测装置可以进一步包括:第一存储部分,其存储使用CPU来选择包括在启动ROM中的多个区域中的一个区域的区域数据。在该情况中,CPU基于区域数据选择多个区域中的一个区域。CPU通过执行对应于多个区域中一个选定区域的多个第二程序的一个程序,来解密第一程序,以获得解密的第一程序。

    程序窜改检测装置可以进一步包括:第二存储部分,其存储用于识别程序窜改检测装置的标识符。在该情况中,解密的第一程序具有标识符确认数据。CPU通过检验标识符确认数据与标识符,来检测第一程序的窜改。

    在程序窜改检测装置中,启动ROM可以具有程序窜改报告程序。在该情况中,CPU响应第一程序的窜改检测而执行程序窜改报告程序,以产生指示第一程序被窜改的消息,并且经由网络而向具有预定地址的设备发送该消息。

    在程序窜改检测装置中,CPU和启动ROM安装在单个半导体器件上。在该情况下,半导体器件连接到外部存储器。

    在程序窜改检测装置中,CPU、启动ROM和第一存储部分就可以安装在单个半导体器件上。在该情况下,半导体器件连接到外部存储器。

    在程序窜改检测装置中,当CPU不检测第一程序的窜改时,CPU执行解密的第一程序以解码通过网络接收的数据,并且将解码的数据输出到处理设备。

    为了实现本发明的另一方面,本发明提供一种用于程序窜改检测装置的计算机程序产品。程序窜改检测装置包括:外部存储器,启动ROM和CPU。外部存储器存储用于程序窜改检测的第一代码以及第一程序,其中第一程序被加密。启动ROM存储用于解密第一程序的第二程序。CPU电连接到外部存储器和启动ROM。计算机程序产品包含于计算机可读介质上并且包含代码,当执行程序时,使得计算机执行以下操作:(a)从启动ROM读取第二程序;(b)执行第二程序以获得解密的第一程序;(c)基于第一代码与在解密的第一程序的第二代码上执行的预定操作的结果的比较,来检测第一程序的窜改。

    在该计算机程序产品中,程序窜改检测装置可以进一步包括RAM。在该情况中,步骤(b)包括:(b1)在RAM中存储解密的第一程序。步骤(c)包括:(c1)从RAM中读取第二代码。

    在该计算机程序产品中,步骤(b)可以进一步包括:(b2)读出外部存储器中存储的地址数据,该地址数据指定RAM内的一地址。在该情况中,步骤(b1)包括:(b12)基于地址数据,在RAM中存储解密的第一程序,以及步骤(c1)包括:(c12)基于地址数据,从RAM中读取第二代码。

    在该计算机程序产品中,步骤(a)可以包括:(a1)执行启动ROM中存储的启动程序以启动CPU。

    在该计算机程序产品中,可以有多个第二程序。在该情况中,启动ROM具有多个区域。多个区域的每一区域存储有多个第二程序的相应一个第二程序。多个第二程序的一个第二程序的加密方案与多个第二程序的其它的第二程序的加密方案不同。步骤(a)包括:(a2)选择多个区域之一,以及(a3)读取对应于多个区域中选定区域的多个第二程序的一个第二程序。步骤(b)包括:(b3)执行多个第二程序中被读取的一个第二程序。

    在程序窜改检测装置中,程序窜改检测装置可以进一步包括第一存储部分。在该情况中,步骤(a2)包括:(a21)读取用于选择多个区域中的一个区域的区域数据,区域数据存储在第一存储部分,以及(a22)基于区域数据,选择多个区域中的一个区域。

    在程序窜改检测装置中,程序窜改检测装置可以进一步包括第二存储部分。在该情况中,步骤(c)包括:(c2)读取用于识别程序窜改检测装置的标识符,标识符存储在第二存储部分,(c3)从解密的第一程序中提取标识符确认数据,以及(c4)通过检验标识符确认数据与标识符,来检测第一程序的窜改。

    该计算机程序产品可以进一步包括:(d)读取启动ROM中存储的程序窜改报告程序,以及(e)通过响应第一程序的窜改的检测而执行程序窜改报告程序,来产生指示第一程序的窜改的消息,并且经由网络而向具有预定地址的设备发送该消息。

    为了实现本发明的又另一方面,本发明提供一种程序窜改检测方法,包括:(a)读取用于解密的第二程序;(b)执行第二程序,以通过解密加密的第一程序来获得解密的第一程序;以及(c)基于预定的第一代码与对解密的第一程序的第二代码执行的预定操作的结果的比较,来检测第一程序的窜改。

    在该程序窜改检测方法中,步骤(b)可以包括:(b1)读取地址数据,该地址数据指示RAM中的一个地址,(b2)基于地址数据,将解密的第一程序存储在RAM。在该情况中,步骤(c)包括:(c1)基于地址数据,从RAM中读取第二代码。

    在程序窜改检测方法中,步骤(a)可以包括:(a1)执行启动程序以便执行第二程序。

    在该程序窜改检测方法中,可以有多个第二程序。在该情况中,多个第二程序的一个第二程序的加密方案与多个第二程序的其它的第二程序的加密方案不同。步骤(a)包括:(a2)选择多个第二程序中的一个第二程序,以及(a3)读取多个第二程序中的一个第二程序。步骤(b)包括:(b3)执行多个第二程序中被读取的一个第二程序。

    在该程序窜改检测方法中,步骤(a3)可以包括:(a31)读取用于选择多个区域中的一个区域的区域数据,以及(a32)基于区域数据,选择多个区域中的一个区域。

    在该程序窜改检测方法中,步骤(c)可以包括:(c2)读取标识符,(c3)从解密的第一程序中提取标识符确认数据,以及(c4)通过检验标识符确认数据与标识符,以检测第一程序的窜改。

    该程序窜改检测方法可以进一步包括:(d)读取程序窜改报告程序,以及(e)通过响应第一程序的窜改的检测而执行程序窜改报告程序,来产生指示第一程序被窜改的消息,并且经由网络而向具有预定地址的设备发送该消息。

    【附图说明】

    图1是示出了具有CPU和ROM的常规配置的框图;

    图2是示出了系统配置实例的框图,其中根据本发明的计算机21适用于付费广播系统的接收器;

    图3是示出了在根据本发明第一实施例的计算机21中提供的程序窜改检测装置的配置的框图;

    图4是示出了可重编程的外部ROM4的内部格式30的视图;

    图5是示出了第一实例操作的流程图;

    图6是示出了在根据本发明第二实施例的计算机21中提供的程序窜改检测装置的配置的框图;

    图7A和7B是示出了第二实施例的操作的流程图;

    图8是示出了在根据本发明第三实施例的计算机21中提供的程序窜改检测装置的配置的框图;以及

    图9是示出了第三实施例的操作的流程图。

    【具体实施方式】

    以下将参考附图描述根据本发明的程序窜改检测装置的实施例。

    计算机21作为程序窜改检测装置的范例。该计算机21具有程序窜改检测功能,并且适用于通过使用计算机来执行电子控制的任一产品或装置。下文中,作为该说明书的一个实例,具有计算机21的产品用在该产品与信息通信网络相连接的情况中。特别地,用于付费广播系统的接收器作为该产品实例而进行描述。用于付费广播系统的接收器会引起产品中所安装的计算机程序被窜改的问题。

    (第一实施例)

    图2示出了系统配置实例的框图,其中根据本发明的计算机21适用于付费广播系统的接收器。参考图2,付费广播系统包括传递装置24,控制装置25和接收器20。传递装置24提供在广播传递侧。接收器20提供在接收侧以便接收付费广播。传递装置24经由网络23传输付费广播。该付费广播是付费广播系统提供的服务。控制装置25控制例如付费广播的发送状态和接收器20的接收状态。通过网络23,接收器20接收从传递装置24所传输的付费广播的数据,并且将其输出到显示单元。这里,显示单元在图中没有示出。

    接收器20包括计算机21和通信接口22。计算机21具有LSI1,或是在第二实施例中的LSI11,或是在第三实施例中的LSI14、可重编程的外部ROM4以及RAM5。计算机21经由通信接口22连接到网络23。连接到网络23的通信接口22将计算机21输出的数据经由网络23而传输到传递装置24。

    图3示出了在根据本发明第一实施例的计算机21中提供的程序窜改检测装置的配置的框图。参考图3,根据第一实施例的程序窜改检测装置包括LSI1,外部ROM4和RAM5。LSI1包括启动ROM2,CPU3,和内部总线6。LSI1是单片配置的集成电路。LSI1经由数据线9连接到外部ROM4,并且经由数据线10而连接到RAM5。

    启动ROM2对存储于其中的数据是非可重新编程的。启动ROM2通过数据线7连接到内部总线6。启动ROM2还经由内部总线6连接到CPU3、外部ROM4、以及RAM5。启动ROM2仅在启动计算机21之后立即使用。启动ROM2存储CPU启动程序以及用于解密和加载外部ROM4中存储的加密程序的解密程序。通过CPU启动程序启动CPU3,并且基于CPU启动程序从启动ROM2中读取解密程序。CPU3基于解密程序而进一步读取外部ROM4中的加密的程序,并且对加密的程序执行解密。CPU3执行被解密和加载到RAM5中的程序,并且通过执行该程序来控制计算机21。CPU3经由数据线8而连接到内部总线6。CPU3还通过内部总线6而连接到启动ROM2、外部ROM4以及RAM5。

    可重编程的外部ROM4是一种允许存储于其中的数据重新编程并且具有非易失存储区域的存储设备。可重编程的外部ROM4通过数据线9而连接到LSI1,并且存储加密程序。可重编程的外部ROM4输出加密程序以响应LSI1的请求。RAM5是一种存储解密后(post-decryption)程序的存储设备。RAM5通过数据线10而连接到LSI1,并且存储加密程序,该加密程序通过启动ROM2中存储的解密程序被解密,作为解密后程序。

    接收器20通过网络23从传递装置24接收诸如MPEG流数据的多媒体数据。当计算机21判断未发生使用存储在外部ROM5中的用户代码的窜改时,计算机21执行解密后的程序来进行将接收到多媒体数据输入到MPEG解码器以正常地解码接收到的多媒体数据。这里,MPEG解码器在图中未示出。

    当计算机21判断发生了使用存储在外部ROM5中的用户代码的窜改时,计算机21控制MPEG解码器不解码接收到的数据。在这种情况下,计算机21通过网络23向传递装置24发送指示用户代码的窜改的消息。

    图4是示出了可重编程外部ROM4的内部格式30的视图。参考图4,可重编程ROM4的数据存储区域包括标题部分和除了标题部分的区域。标题部分包括多个区域。多个区域中的每一区域存储标题检测唯一代码31、用户程序代码量数据32、RAM加载目的地址数据33以及参考安全检验代码34之一。

    标题检测唯一代码31用于建立对可重编程外部ROM4中存储的数据的访问。用户程序代码量数据32、RAM加载目的地址数据33以及参考安全检验代码34是相继于标题检测唯一代码31而存储在可重编程外部ROM4中的数据。用户编程代码量数据32用于确定被载入RAM5中的解密程序的代码量是否达到预定代码量。RAM加载目的地址数据33是示出RAM5的地址的数据。在将解密的程序载入RAM5的情况中,CPU3基于RAM加载目的地址数据33而将解密的程序载入RAM5。此外,在读出RAM5中所存储的解密后程序的情况中,CPU3基于RAM加载目的地址数据33而执行数据的读取操作。参考安全检验代码34用于检测窜改的解密后程序。用户代码35是存储在可重编程外部ROM4中的加密程序。

    图5示出了第一实施例操作的流程图。下文中,随后的术语用于清楚地将加密的程序与解密的并载入RAM5中的程序区别开来。“用户代码”35指可重编程外部ROM4中存储的程序,或加密程序。“用户程序”指以其是加密程序的用户代码35被解密并载入RAM5的方式而形成的程序。

    参考图5,一旦通过启动,或复位接收器20来执行通电,就开始第一实施例的操作。在步骤S101中,启动ROM2执行启动ROM2中存储的CPU启动程序,以响应接收器20的启动,从而启动CPU3。被启动的CPU3经由内部总线6而访问启动ROM2,读取并执行启动ROM2中存储的解密程序。

    在步骤S102中,CPU3访问可重编程外部ROM4,然后对可重编程外部ROM4的标题部分中所存储的数据执行读取操作。在步骤S103中,CPU3判断CPU3是否检测到标题检测唯一代码31。如果CPU3检测到标题检测唯一代码31,处理进行到步骤S104。另一方面,如果CPU3没有检测到标题检测唯一代码31,那么处理返回到S102并且在其中再一次执行读取操作。也就是说,如果没有检测到标题检测唯一代码31,那么就执行从步骤S102到S103的操作。

    在步骤S104中,在检测标题检测唯一代码31之后,CPU3对相继于标题检测唯一代码31的数据执行读取操作,也就是,用户程序代码量数据32、RAM加载目的地址数据33、以及参考安全检验代码34。在步骤S105中,在执行用户程序代码量数据32、RAM加载目的地址数据33以及参考安全检验代码34的读取操作之后,CPU3对可重编程外部ROM4中存储的用户代码35执行读取操作。然后,CPU3执行解密程序,从而解密用户代码35并且将其载入RAM5。

    在该情况中,任一加密方案可以用作对解密的程序进行加密的加密方案。例如,方案可以以随后方式来加密用户代码35。即,首先,以其多个比特位为单位读取用户代码35,然后,通过使用预定的解密密钥执行EXOR操作,预定的解密密钥能够解密相应的多个比特位。作为选择,可以使用较为复杂发加密/解密方案,从而使构造一个较高安全性的系统成为可能。

    随后,在步骤S106中,CPU3基于预定算法,通过使用二进制代码的用户程序来执行安全检验代码的计算,用户程序是载入RAM5中的解密后程序。对于在此执行的算法来说,可以使用任一算法。

    随后,在步骤S107中,CPU3将载入RAM5中的用户程序的代码量与在步骤S104读取的用户程序代码量数据32进行比较。根据比较的结果,如果用户程序的代码量没有达到用户程序代码量数据32的值,那么处理返回到步骤S105。也就是,对读取的用户代码35进行解密,将其载入RAM5,以及计算下一安全检验代码。

    以下将较为详细地描述步骤S105-S107中的操作。例如,对预定算法进行EXOR操作,首先,在预定的区域中设置并且存储预定的32比特的第一固定值和32比特的第二固定值。CPU3执行第一固定值和用户代码35的最初32比特之间的EXOR操作,并且因此在步骤S105中获得32比特用户程序。然后在步骤S106中CPU3基于32比特用户程序和第二固定值之间的EXOR操作而执行计算以产生第一安全检验代码。

    在计算出第一安全检验代码之后,在步骤S107中,CPU3判断被载入RAM5的用户程序的代码量是否达到用户程序代码量数32的值。根据比较的结果,如果用户程序的代码量没有达到用户程序代码量数据32的值,那么处理返回到步骤S105。也就是,在步骤S105中,处理执行第一固定值和用户代码的随后32比特之间的EXOR操作,从而获得一个新的32比特用户程序。然后,在步骤S106中,CPU3执行所获得的新的32比特用户程序与第二固定值之间的EXOR操作,从而计算第二安全检验代码。

    CPU3重复从S105到S107的操作直到其发现用户程序的代码量与用户程序代码量数据32的值一致。CPU3确定两个值彼此一致的所获得的安全检验代码作为整个用户程序的最终安全检验代码。另外,基于用户程序的代码量与用户程序代码量数据32的值之间相一致,CPU3认为所有的用户代码35被解密。

    在步骤S108中,CPU3将计算出的最终安全检验代码与参考安全检验代码34相比较。在步骤S110中,根据比较的结果,如果计算出的最终安全检验代码与参考安全检验代码34不一致,那么CPU3判定用户代码35被窜改。在步骤S110中,如果用户代码35被窜改,计算机21的CPU3产生窜改检测消息并且将该消息输出到通信接口22。然后经由网络23,将输出的消息传送到付费广播系统的控制装置25。另一方面,如果计算出的安全检验代码与参考安全检验代码34相一致,那么处理进入到S109。在步骤S109中,计算机21的CPU3执行加载于RAM5中的用户程序,从而控制接收器20工作。在步骤S109中,通过加载于RAM5中的用户程序,计算机21的LSI1禁止对接收器20的启动ROM2访问以响应开始接收器20的操作。访问禁止持续到计算机21的操作结束,诸如断开电源。

    所以,基于流程图所示的操作,不但通过启动ROM2中存储的解密程序来执行安全检测,而且执行使用解密的用户程序的代码来的安全检验。这使得利用程序窜改检测功能以进一步加强保护计算机21中提供的程序成为可能。

    (第二实施例)

    图6示出了在根据本发明第二实施例的计算机21中提供的程序窜改检测装置的配置框图。与第一实施例相似,该实施例中的程序窜改检测装置适合于使用计算机执行电子控制的任何产品。与第一实施例相似,具有该实施例中的计算机21的产品在以下情况中使用,即该产品与信息通信网络相连接的情况。特别是,用于付费广播系统的接收器20作为产品的一个实例而进行描述。付费广播系统的接收器会引起产品中所安装的计算机程序被窜改的问题。

    参考图6,第二实施例中所描述的程序窜改检测装置包括LSI1可重编码的外部ROM4,以及RAM5。LSI11包括启动ROM2、CPU3、内部总线6,以及设备ID(标识符)数据存储部分12。与LSI1相似,LSI11是一种配置为单片的集成电路。LSI11的启动ROM2和CPU3与第一实施例中描述的LSI1的相应部件相似。因此,省略有关LSI11的启动ROM2和CPU3的描述。另外,该实施例中的可重编码外部ROM4和RAM5与第一实施例中的相应部件相似。因此,同样省略对该实施例中的可重编码外部ROM4和RAM5的描述。

    设备ID数据存储部分12是存储设备ID数据的存储器区域。设备ID数据表示被分配给半导体设备ID。该设备ID数据存储部分12具有寄存器或具有与该寄存器相同的数据存储功能,并且其通过数据线13连接到内部总线6。设备ID被设置为设计阶段所确定的值,设计相同的半导体设备被分配有相同的ID。设计相同而彼此由来不同的半导体设备的每一个以不同的由来为单位而分配不同的、唯一的ID。

    图7A和7B示出了第二实施例的操作的流程图。参考图7A和7B,在该操作中,第二实施例中的步骤S101到S109与第一实施例中的相应步骤基本相同。因此,以下将集中描述步骤S201到S205。

    在步骤S109中,LSI11的CPU3通过执行RAM5中所加载的用户程序来驱动接收器20操作。在步骤S201中,响应开始执行用户程序,CPU3从LSI11中提供的设备ID数据存储部分12中执行设备ID数据的读取操作。

    在步骤S202中,响应读取设备ID数据的结束,CPU3检索和/或提取加载到RAM5中的解密后用户程序中包含的设备检验ID。用户代码35预先包含加密的设备检验ID。CPU3通过解密可重编程外部ROM4中存储的用户代码35而能够从用户程序中检索设备检验ID。

    在步骤S203中,CPU3判断检索和/或提取的设备检验ID是否与读取的设备ID数据相一致。基于判断的结果,如果检索出的设备检验ID与读取的设备ID数据不一致,那么处理进入到S205并且停止执行用户程序。响应执行用户程序的停止,计算机21的CPU3产生程序停止消息并且输出该消息到通信接口22。然后经由网络23,将输出的消息传输到付费广播系统的控制装置25的地址。基于步骤S203中的判断结果,如果检索出的设备检验ID与读取的设备ID数据相一致,那么处理进入到S204。在步骤S204中,计算机21的CPU3通过执行RAM5中所加载的用户程序而继续接收器20的操作。

    所以,根据流程图中所示的操作,不但执行其中解密程序被存储在启动ROM2中的安全检测,而且使用根据解密的用户程序所计算出的安全检验代码来进行窜改检测。此外,通过使用用户程序中所包含的设备检验ID以及LSI11中存储的设备ID数据来执行安全检验。这使得进一步加强保护计算机21中所提供的程序成为可能。

    (第三实施例)

    图8示出了根据本发明第三实施例的计算机21中所提供的程序窜改检测装置的配置框图。与第一实施例相似,该实施例中的程序窜改检测装置适合于使用计算机来执行电子控制的任一产品。与第一实施例相似,具有该实施例中的计算机21的产品在以下情况中使用,即产品与信息通信网络相连接的情况。特别是,付费广播系统的接收器20作为产品实例而进行描述。付费广播系统的接收器会引起产品中所安装的计算机程序被窜改的问题。

    参考图8,第三实施例描述的程序窜改检测装置包括LSI14,可重编程外部ROM4以及RAM5。LSI14包括启动ROM2、CPU3、内部总线6,以及寄存器15。与LSI1相似,LSI14是一种配置为单片的集成电路。LSI14中的CPU3具有与第一实施例中描述CPU3相似的配置,从而省略CPU3的描述。另外,图8中的可重编码外部ROM4和RAM5与第一实施例中描述的可重编码外部ROM4和RAM5的配置相似。因此,省略对第三实施例中的可重编码外部ROM4和RAM5的描述。

    启动ROM2具有诸如第一区域2a,第二区域2b,第三区域2c等多个区域,每一区域存储的数据与LSI1中的启动ROM2存储的数据相似。另外,随着设计的改变,这些区域可以任意地增加或减少。寄存器15是LSI14中的存储电路。该寄存器15存储有用于从启动ROM2中的多个区域中选择特定区域的数据。寄存器15经由数据线16连接到内部总线6。启动ROM2具有多个解密程序。多个解密程序中的每一个存储在诸如第一区域2a,第二区域2b,第三区域2c等多个区域中相应的一个区域上。多个解密程序中的一个解密程序的加密方案与多个解密程序的别的解密程序的加密方案不同。多个区域中的一个以一一对应的关系对应于多个解密程序中的一个。用户程序通过与多个解密程序之一的解密程序相对应的加密方案而被加密为用户代码35。该用户代码35存储于可重编程的外部ROM4。

    此外,优选地向诸如SLI14的设备提供一个具体的外部终端,以便从多个区域中选择一个具体的区域,然后确定加密方案。在启动,或复位的时候,该装置基于从诸如复位信号或另一存储器设备的外部提供给具体外部终端的数据或信号来确定寄存器15,并且执行从寄存器15中读取存储值的操作。

    图9示出了第三实施例操作的流程图。参考图9,步骤S102到S109的操作与第一实施例中的相应操作基本相同。所以,以下将集中描述步骤S301到S303的操作。

    在步骤S301中,响应开始执行接收器20,通过LSI14中的启动ROM2中存储的CPU启动程序来启动CPU3。在启动之后,被启动的CPU3经由内部总线6而立即访问寄存器15。

    在步骤S302中,CPU3基于为启动而提供给特殊外部终端的数据,执行寄存器15中的存储值的读取操作。在步骤S303中,基于读取寄存器15的值,CPU3确定一区域,解密程序将被从启动ROM2的诸如第一区域2a,第二区域2b,第三区域2c等多个区域的该区域中读出。启动的CPU3通过内部总线6访问启动ROM2的确定区域,读出并执行启动ROM2中存储的解密程序。此后,处理进入到S102,并且执行与第一实施例中执行的步骤S102到S109,或步骤S110的处理相同的处理。

    根据流程图中示出的操作,能够选择存储在可重编程外部ROM4中的加密的用户程序的多个加密方案。另外,即使当对存储在可重编程外部ROM4中的加密的用户程序已经被分析,也很难与在启动中选择的加密方案相一致。因此这增强了具有序窜改检测的计算机21所安装的程序的安全性。此外,不但执行了解密程序存储在启动ROM2中的安全检测,而且执行了使用解密的用户程序的代码的安全检验。这能够使得具有程序窜改检测功能的计算机21中的程序的保护进一步被加强。

    此外,具有多个存储区域的产品能够选择单一、相同类型的诸如LSI的设备中的多个加密方案。因此,甚至当有其每个都具有计算机21的付费广播接收器20的多个不同制造商,也能向这些制造商提供不同的加密方案。虽然设备是相同的,但是一个制造商所使用的加密方案能够被独特地设置为与另一制造商所使用的加密方案不同。因此,能够为存储于单个可重编程外部ROM4中的单独的用户代码35执行强有力的安全检测。

    如上,已经分别描述了第一至第三实施例;然而,如果这些实施例之间不存在冲突的情况下,可以将它们相互结合。

    在一种具有加密的计算机程序的装置中,本发明具有如下配置,即其加密方案不会轻易地被向外泄漏,从而提供了防止装置中所存储的数据泄漏的增强的安全的效果。

    此外,本发明提供的一种效果在于即使当泄漏了加密方案,也能够防止窜改加密的计算机程序,并且能够进一步加强安全检测,因此能够增强安全性而防止装置中存储数据的漏出。

    此外,本发明提供一种效果在于如果出现计算机程序的窜改,那么执行检测窜改的操作,从而防止没有意识到被窜改而继续执行计算机程序。

程序窜改检测装置、方法以及程序.pdf_第1页
第1页 / 共37页
程序窜改检测装置、方法以及程序.pdf_第2页
第2页 / 共37页
程序窜改检测装置、方法以及程序.pdf_第3页
第3页 / 共37页
点击查看更多>>
资源描述

《程序窜改检测装置、方法以及程序.pdf》由会员分享,可在线阅读,更多相关《程序窜改检测装置、方法以及程序.pdf(37页珍藏版)》请在专利查询网上搜索。

一种程序窜改检测装置,包括:外部存储器(4)、启动ROM(2)、以及CPU(3)。外部存储器(4)存储用于程序窜改检测的第一代码以及第一程序,其中第一程序被加密。启动ROM(2)存储用于解密第一程序的第二程序。CPU(3)电连接到外部存储器(4)和启动ROM(2)。CPU(3)通过执行第二程序来解密第一程序以获得解密的第一程序。CPU(3)基于第一代码与在解密的第一程序的第二代码上执行的预定操作的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1