CN101128833A - 安全处理装置和安全处理系统 - Google Patents

安全处理装置和安全处理系统 Download PDF

Info

Publication number
CN101128833A
CN101128833A CNA2006800060504A CN200680006050A CN101128833A CN 101128833 A CN101128833 A CN 101128833A CN A2006800060504 A CNA2006800060504 A CN A2006800060504A CN 200680006050 A CN200680006050 A CN 200680006050A CN 101128833 A CN101128833 A CN 101128833A
Authority
CN
China
Prior art keywords
program
protected
protected program
processing device
secure processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006800060504A
Other languages
English (en)
Inventor
芳贺智之
井藤好克
松岛秀树
庄田幸惠
木村重彦
奥山洋
大岩保树
贺川贵文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN101128833A publication Critical patent/CN101128833A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

程序存储部(111)存储多个被保护程序,在停用列表存储部(117)中存储被停用的被保护程序的信息。执行程序选择部(112)参考停用列表,来选择没有被停用的一个被保护程序。对于执行前或执行中的被保护程序,若检测出恶意解析,则恶意解析检测部(116)使所述被保护程序的执行中止,停用列表更新部(118)在停用列表上注册所述被保护程序被停用的消息。

Description

安全处理装置和安全处理系统
技术领域
本发明涉及防止程序的恶意篡改和解析的技术。
背景技术
使用PC或便携电话机进行视听用的付费数字内容会被发送,但是为了防止恶意的复制,加密数字内容后加以发送。因此,再现数字内容用的程序包含解密用的加密密钥。因此,若目的为进行恶意解析的恶意用户解析再现用的程序,从而可确定密钥,则会恶意复制数字内容。
防止这种程序的解析的技术在现有技术中就存在,一般,恶意的用户对实施了防解析技术的程序,每次尝试不同的恶意解析方法,同时渐渐地推进解析,最终取得密钥等秘密信息。因此,存在下述技术:若检测出恶意解析,则通过使之后的程序执行变得不可能,从而防止对该程序重复进行恶意解析。
但是,有时将没有进行程序的恶意解析和篡改的意图的善意用户的误操作作为恶意解析和篡改检测出的情况。在这种情况下,上述现有技术中,不能执行程序,之后,不能使用该程序。这对善意用户来说是不利的。
发明内容
本发明鉴于上述问题而作出,其目的是提供一种可以兼顾防止程序的恶意解析和对善意用户来说有利这两者的安全处理系统。
为了实现上述目的,本发明是安全处理装置,其特征在于,包括:程序存储单元,存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;停用单元,使作为解析对象的被保护程序停用;选择单元,从所述多个被保护程序中选择没有被停用的一个被保护程序;以及执行单元,执行所选择出的一个被保护程序。
发明效果:
根据上述结构,通过使作为解析对象的被保护程序停用,可防止恶意的用户再次尝试对同一被保护程序的解析。进一步,该安全处理装置存储多个被保护程序,所以在作为解析对象的被保护程序被停用的情况下,也可通过执行没有被停用的其他被保护程序,来保证善意的用户使用程序的权利。
这里,也可以构成为,所述安全处理装置具有解析检测单元,该解析检测单元在所述执行单元执行一个被保护程序时,判断所述被保护程序是否被作为解析对象;所述停用单元包括:停用列表存储部,存储表示被停用的被保护程序的停用列表;以及停用注册部,在由所述解析检测单元判断为所述被保护程序被作为解析对象时,在所述停用列表上注册所述被保护程序被停用的消息。
根据该结构,通过停用列表存储部存储停用列表,选择单元可识别被停用的被保护程序,作为要执行的被保护程序,可以选择没有被停用的被保护程序。另外,在由解析检测单元检测出作为解析对象的被保护程序时,通过停用注册部更新停用列表,所以选择单元总是可以参考新的停用列表,来选择没有被停用的被保护程序。
这里,也可构成为,所述停用列表添加有证明该停用列表的合法性用的签名数据;所述选择单元验证在所述停用列表上添加的所述签名数据,在所述签名数据的验证结果是检测出所述停用列表的非法的情况下,中止被保护程序的选择处理。
根据该结构,即使停用列表被尝试恶意解析的用户篡改的情况下,也可以通过验证签名数据,来判断有无停用列表的篡改。另外,在检测出停用列表的篡改的情况下,可以中止所有被保护程序的执行,可以防止恶意解析。
这里,也可以构成为,所述多个被保护程序是将原始程序混淆后的混淆程序,各被保护程序是因混淆的方法和/或混淆的程度各自不同而具有不同的代码的程序。
根据该结构,可以使恶意的用户进行的被保护程序的解析变得困难。
这里,也可构成为,在所述多个被保护程序内某些一个以上的被保护程序是:使用对所述原始程序中包含的多个部分程序内的不同部分程序进行加密的方法、来作为所述混淆的方法而生成的程序。
根据该结构,对于所述一个以上被保护程序来说,加密的部分程序、即加密的位置不同,所以即使在恶意的用户多次尝试解析的情况下,解析也很困难。
这里,也可构成为,通过对部分程序加密而生成的所述一个以上的被保护程序是:使用不同的加密算法和/或不同的密钥将作为加密对象的各部分程序加密后的程序。
根据该结构,对所述一个以上的被保护程序来说,不仅加密的位置不同,加密的算法和密钥也不同,所以可以使解析更加困难。
这里,也可构成为,所述多个被保护程序内的某些一个以上的被保护程序是:使用替换所述原始程序中包含的多个指令内作为彼此没有依赖关系的指令的并行指令的执行顺序的方法、来作为所述混淆的方法而生成的程序。
根据该结构,根据原始程序的并行性来生成所述一个以上的被保护程序,可以保证与原始程序相同的输出结果,同时,使恶意的用户进行的解析变得困难。
这里,也可构成为,所述多个被保护程序内的某些一个以上的被保护程序是:使用将所述原始程序中包含的指令替换为进行与该指令不同的处理且输出与该指令相同的结果的一个以上的指令所构成的恒等指令的方法、来作为所述混淆的方法而生成的程序。
根据该结构,使用原始程序的恒等指令来生成所述一个以上的被保护程序,可以保证与原始程序相同的输出结果,同时,使恶意的用户进行的解析变得困难。
这里,也可构成为,在所述多个被保护程序内的某些一个以上的被保护程序是:使用将作为对所述原始程序的结果没有影响的指令的伪指令插入到所述原始程序中的方法、来作为所述混淆的方法而生成的程序。
根据该结构,使用伪代码进行冗余化来生成所述一个以上的被保护程序,可以保证与原始程序相同的输出结果,同时,使恶意的用户进行的解析变得困难。
这里,也可构成为,所述安全处理装置具有解析检测单元,该解析检测单元在所述执行单元执行一个被保护程序时,判断所述被保护程序是否被作为解析对象。
根据该结构,因解析检测单元检测出被保护程序的解析的可能性,所以停用单元可以使存在暴露秘密信息的危险的被保护程序停用。
这里,也可构成为,所述解析检测单元具有:调试程序检测部,若在所述执行单元执行被保护程序的过程中,检测出调试程序,则使所检测出的调试程序停用;以及指示部,在通过所述调试程序检测部检测出调试程序时,对所述执行单元指示中止执行;所述执行单元在从所述指示部接受执行中止的指示时,立即中止执行在执行中的所述被保护程序。
根据该结构,所述安全处理装置具有检测调试程序的功能,进一步,通过使所检测出的调试程序停用,可以防止执行中的被保护程序被解析,而暴露要保密的信息。
这里,也可构成为,所述解析检测单元具有篡改检测部,检测出被保护程序的篡改;以及指示部,在通过所述篡改检测部检测出篡改时,对所述执行单元指示中止执行;所述执行单元在从所述指示部接受执行中止的指示时,中止执行所述被保护程序。
根据该结构,由于该安全处理装置可以执行除了检测出篡改的被保护程序之外的其他被保护程序,所以可以防止非法程序的执行,而不会损害善意的用户的利益。
这里,也可构成为,所述解析检测单元具有日志信息生成部,在判断为所述被保护程序被作为解析对象时,该日志信息生成部生成与所述解析有关的解析日志信息。
根据该结构,通过生成与解析有关的解析日志信息,可以知道进行了哪种解析行为。另外,可以在安全处理装置的开发阶段中的测试工程中,确认解析检测单元是否正确检测出解析行为。
这里,也可构成为,所述安全处理装置经网络与外部服务器相连,所述日志信息生成部将所生成的所述解析日志信息送到所述外部服务器。
根据该结构,通过将解析日志信息发送到外部服务器,可以通过外部服务器来分析进行了哪种解析行为。通过分析解析行为,可以生成解析更困难的被保护程序。
这里,也可构成为,所述解析检测单元还具有:阈值存储部,存储设置为预定的数值的阈值;以及解析次数计数部,保持判断为被保护程序被作为解析对象的次数,每次进行所述判断时,更新所保持的次数;所述停用单元在所述解析次数计数部所保持的次数超过所述阈值时,将所述被保护程序被停用的消息注册到所述停用列表。
根据该结构,仅在解析的次数超过了预定的阈值的情况下,被保护程序被停用。因此,可以防止因善意的用户的偶然的误操作,直接使执行中的被保护程序停用的情况。另外,若恶意的用户重复进行解析,则由于解析的次数超过预先设置的阈值,从而被保护程序被停用,所以可以防止暴露被保护程序中包含的要保密的信息。
也可构成为,所述选择单元参考所述停用列表,随机选择没有被停用的一个被保护程序。
根据该结构,由于每次随机决定要选择的被保护程序,即要执行的被保护程序,所以可以使恶意的用户的恶意解析变得困难。
这里,也可构成为,所述选择单元存储识别所选择出的被保护程序用的信息;参考所述信息和所述停用列表,随机选择未选择且没有被停用的一个被保护程序。
根据该结构,由于每次随机决定要选择的被保护程序、即要执行的被保护程序,且下次不选择曾执行过的被保护程序,所以可以使恶意的用户的恶意解析变得更加困难。
这里,也可构成为,所述选择单元预先存储预定的选择顺序,参考所述停用列表,按照所述选择顺序选择没有被停用的一个被保护程序。
根据该结构,通过存储预定的选择顺序,与随机选择要执行的被保护程序的情况相比较,可以省略随机数生成的处理等,可以缩短处理时间。
这里,也可构成为,所述选择单元对所述多个被保护程序,存储表示各被保护程序的混淆的程度的混淆度信息;参考所述混淆度信息和所述停用列表,以从混淆的程度高的被保护程序起依次加以执行的方式选择没有被停用的一个被保护程序。
根据该结构,通过从混淆的程度高的被保护程序、即解析困难的被保护程序起依次加以执行,可以有效防止恶意用户的恶意解析。
这里,也可构成为,所述选择单元对所述多个被保护程序,存储表示各被保护程序的混淆的程度的混淆度信息;参考所述混淆度信息,以从混淆的程度低的被保护程序起依次加以执行的方式选择没有被停用的一个被保护程序。
一般来说,越是混淆的程度高的被保护程序,程序执行速度越慢,越是混淆的程度高的被保护程序,程序执行速度越快。因此,根据该结构,从执行速度快的被保护程序起执行,对没有恶意解析的意图的善意用户来说,可以提供便利性高的安全处理装置。
这里,也可构成为,所述选择单元以从执行速度快的被保护程序起依次加以执行的方式选择没有被停用的一个被保护程序。
根据该结构,由于从执行速度快的被保护程序起执行,所以对没有恶意解析的意图的善意用户来说,可以提供便利性高的安全处理装置。
这里,也可构成为,所述安全处理装置经网络与保持被保护程序的程序更新服务器连接;所述选择单元具有:判断部,判断没有被停用的被保护程序的剩余数是否是预定的阈值以下;程序请求部,在通过所述判断部判断为是预定的阈值以下的情况下,对所述程序更新服务器请求发送新的被保护程序;以及程序接收部,从所述程序更新服务器中接收新的被保护程序。
根据该结构,在程序存储单元中存储的多个被保护程序全部被停用的情况下,安全处理装置也可从程序更新服务器中取得新的被保护程序,可以保证善意的用户使用程序的权利。
另外,即使是程序存储单元的存储容量少而不能预先存储多个被保护程序的安全处理装置,也可从外部的程序更新服务器取得被保护程序。
本发明是一种安全处理系统,包括经网络连接的安全处理装置和程序更新服务器,其特征在于:所述安全处理装置包括:第一存储单元,存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;停用单元,使作为解析对象的被保护程序停用;选择单元,从所述多个被保护程序中选择没有被停用的一个被保护程序;执行单元,执行选择出的一个被保护程序;以及请求单元,在所述第一存储单元中存储的多个被保护程序内没有被停用的被保护程序的剩余数是预定的阈值以下的情况下,对所述程序更新服务器请求发送被保护程序;所述程序更新服务器包括:第二存储单元,存储多个被保护程序;请求接受单元,从所述安全处理装置中接受被保护程序的发送请求;以及发送单元,在所述请求接受单元接受所述发送请求时,从所述第二存储单元中读出一个以上的被保护程序,并发送到所述安全处理装置。
根据该结构,通过使作为解析对象的被保护程序停用,可以防止恶意的用户重新尝试对同一被保护程序的解析。进一步,由于该安全处理装置存储多个被保护程序,所以即使在使作为解析对象的被保护程序停用的情况下,也可通过执行没有被停用的其他被保护程序,来保证善意的用户利用程序的权利。
此外,在第一存储单元中存储的多个被保护程序全部被停用的情况下,安全处理装置也可从程序更新服务器中取得新的被保护程序,可保证善意的用户利用程序的权利。
附图说明
图1是表示安全处理系统1的结构的系统结构图;
图2是功能性地表示便携电话机10的结构的功能框图;
图3是表示在程序存储部111中存储的被保护程序的图;
图4是对安全程序的特征加以说明用的图;
图5是说明恶意解析检测部116的功能用的图;
图6是表示篡改检测部402保持的篡改检测值表410的数据结构的图;
图7是表示恶意解析日志信息420的数据结构的图;
图8是表示停用列表500的数据结构的图;
图9是功能性地表示程序更新服务器20的结构的功能框图;
图10是表示更新用程序存储部604中存储的被保护程序的图;
图11是表示安全处理系统1整体的动作的流程图;
图12是表示安全处理系统1中的被保护程序的更新处理的流程图;
图13是表示安全处理系统1中的程序选择处理1的动作的流程图;
图14是表示安全处理系统1中的程序选择处理2的动作的流程图;
图15是表示安全处理系统1中的恶意检测时的处理的流程图。
符号说明
1     安全处理系统
10    便携电话机
20    程序更新服务器
30    网络
101   天线
102   发送接收部
103   通信控制部
104   存储部
105   显示部
106   操作部
107   扬声器
108    麦克风
109    安全处理部
111    程序存储部
112    执行程序选择部
113    程序装载部
114    程序装载区域
115    程序执行部
116    恶意解析检测部
117    停用列表存储部
118    停用列表更新部
401    调试程序检测部
402    篡改检测部
403    恶意解析通知部
601    发送接收部
602    控制部
603    恶意解析日志信息存储部
604    更新用程序存储部
具体实施方式
参考附图来说明作为本发明的实施方式的安全处理系统1。
<结构>
1.安全处理系统1
图1是表示安全处理系统1的结构的系统结构图。如该图所示,安全处理系统1具有便携电话机10、程序更新服务器20和网络30。
便携电话机10是使用无线电波来进行通信的可移动电话机。便携电话机10下载加密内容,并保持所下载的加密内容。此外,便携电话机10解密加密内容,并保持再现用的加密内容解密程序。这里,便携电话机10保持的加密内容是对音乐内容实施加密算法E后生成的数据。
程序更新服务器20经网络30与便携电话机10相连,进行便携电话机10解密加密内容所需的加密内容解密程序的更新。
这里,网络30的具体例是互联网。此外,图1中,省略了便携电话机网和无线基站等。
2.便携电话机10
图2是功能性地表示便携电话机10的结构的功能框图。如该图所示,便携电话机10具有天线101、发送接收部102、通信控制部103、存储部104、显示部105、操作部106、扬声器107、麦克风108和安全处理部109。这里,天线101、发送接收部102、通信控制部103、存储部104、显示部105、操作部106、扬声器107和麦克风108是实现作为通常的便携电话机的功能用的功能块,安全处理部109是本发明的特征性功能块。此外,便携电话机10具体是具有微处理器、ROM、RAM等的计算机系统。
发送接收部102经天线101进行通话、电子邮件发送接收、以及经网络3与程序更新服务器20的通信等。
通信控制部103存储通信控制用计算机程序,通过微处理器执行通信控制用计算机程序,来控制便携电话机10具有的通话、邮件发送接收和网络连接等的通信功能。
存储部104存储电话簿及调度簿、已发送接收的电子邮件数据和下载的加密内容等。
显示部105包含液晶显示器,将各种画面显示在液晶显示器上。
操作部106包括在便携电话机10的操作面上设置的多个按钮等,通过按钮的按下,来接受用户的输入。
扬声器107输出声音,麦克风108接受声音的输入。
安全处理部109具有程序存储部111、执行程序选择部112、程序装载部113、程序装载区域114、程序执行部115、恶意解析检测部116、停用列表存储部117和停用列表更新部118。
程序存储部111包括FlashROM、EEPROM或HDD。图3是表示程序存储部111的内部的图。如该图所示,程序存储部111存储包含被保护程序A(201)、被保护程序B(202)、...被保护程序C(203)的多个被保护程序。
对各被保护程序赋予程序标识符。具体来说,对被保护程序A(201)赋予程序标识符A:0001(211)、对被保护程序B(2002)赋予程序标识符B:0002(212)、对被保护程序C(203)赋予程序标识符C:0003(213)。
这里,使用图4来说明被保护程序的性质。
程序存储部11中存储的所有被保护程序是使作为加密内容解密程序的原始程序200混淆(Obfuscation)而生成的程序,如图4所示,原始程序200和各被保护程序在将加密内容301和解密密钥302作为输入值后,输出作为相同输出值的解密内容303。此外,本实施方式中的被保护程序在内部含有解密密钥302。
这里,所谓混淆是指下述技术,该技术的目的是通过不改变其结构含义而使程序复杂化,从而使程序的解析变困难,具体来说,通过对原始程序200的一部分或全部实施加密,或在原始程序200上插入对执行没有影响的不需要的伪代码,或将原始程序200中包含的一部分代码替换为与该一部分的代码不同,但是可得到同一结果的等价代码,或在原始程序200中包含的代码内,替换那些即使替换顺序也不会改变结果的代码的顺序,或将一个模块分割为多个模块,或使控制结构复杂化这样的方法来实现。
此外,各被保护程序通过分别用不同的方法来进行混淆,或分别组合使用不同的多种方法进行混淆、或分别使用不同的加密算法或加密密钥来加以加密,或分别加密原始程序200的不同部分,或分别以不同程度进行混淆,从而具有不同的二进制码。可以通过改变虚拟代码的追加大小、控制结构的复杂化模式、模块的分割数和加密算法的强度等来改变混淆的程度。
执行程序选择部112参考在停用列表存储117中存储的停用列表500,选择没有被停用的一个被保护程序。执行程序选择部112从停用列表中读出所选择出的被保护程序的程序开头地址和程序大小,并将所读出的程序开头地址和程序大小通知给程序装载部113。此外,执行程序选择部112使用随机数生成器来生成随机数,并根据所生成的随机数,选择要执行的被保护程序。后面描述被保护程序选择的细节。
这里,在通过参考停用列表500,判断为所有的被保护程序被停用的情况下,执行程序选择部112对停用列表更新部118请求新的被保护程序的下载。
程序装载部113在从执行程序选择部112中接受程序开头地址和程序大小后,将被保护程序装载到程序装载区域114上。程序装载区域114在本实施方式中作为具体例是RAM。
程序执行部115包含微处理器,执行在程序装载区域114上装载的被保护程序。
如之前所描述的,被保护程序是加密内容解密程序,所以程序执行部115通过执行被保护程序,从存储部104中读出加密内容,并使用内容解密密钥来对所读出的加密内容实施解密算法D,解密音乐内容。程序执行部115经通信控制部103将所解密的音乐内容输出到扬声器107。这里,解密算法D是将实施加密算法E加密后的密文变换为明文的算法。
恶意解析检测部116如图5所示,具有调试程序检测部104、篡改检测部402和恶意解析通知部403。
调试程序检测部401具有在程序执行部115的被保护程序的执行中,检测出在线仿真器(是注册商标)和软件调试程序的功能。调试程序检测部401在检测出调试程序时,通过切断调试程序接口等,使调试程序停用。调试程序检测部401在使调试程序停用后,向恶意解析通知部403通知检测出了恶意解析的内容。
篡改检测部402预先存储图6所示的篡改检测值表格410。篡改检测值表格410包含篡改检测值信息411、412、....413,各篡改检测值信息包含程序标识符和判断用篡改检测值。程序标识符是唯一识别被保护程序用的信息。判断用篡改检测值是对通过相对应的程序标识符识别出的被保护程序预先使用单向函数来算出的值,是用于判断有无篡改的数据。
这里,篡改检测值表格410对于程序存储部111中存储的所有被保护程序,包含与各被保护程序一一对应的篡改检测值信息。
具体来说,篡改检测值信息411包含程序标识符“0001”和判断用篡改检测值“检测值A”。程序标识符“0001”是与被保护程序A(201)对应的程序标识符,所以判断用篡改检测值“检测值A”是用于判断被保护程序A(201)有无篡改的数据。
此外,篡改检测值信息412包含程序标识符“0002”和判断用篡改检测值“检测值B”。程序标识符“0002”是与被保护程序B(202)对应的程序标识符,所以篡改检测值“检测值B”是用于判断被保护程序B(202)有无篡改的数据。
此外,篡改检测值信息413包含程序标识符“0003”和判断用篡改检测值“检测值C”。程序标识符“0003”是与被保护程序C(203)对应的程序标识符,所以篡改检测值“检测值C”是用于判断被保护程序C(203)有无篡改的数据。
篡改检测部402若随着新的被保护程序的下载,从停用列表更新部118接受判断用篡改检测值和程序标识符,则将这些信息新注册到篡改检测值表格410上。
篡改检测部402在将被保护程序装载到程序装载区域114上后,对所装载的被保护程序使用单向函数,来算出篡改检测值。篡改检测部402判断所算出的篡改检测值和篡改检测值表410中描述的判断用篡改检测值是否一致。在一致的情况下,判断为在程序装载区域114上装载的被保护程序没有被篡改,在不一致的情况下,判断为被保护程序被篡改。篡改检测部402在检测出被保护程序的篡改后,向恶意解析通知部403通知检测出了恶意解析的内容。判断用篡改检测值和篡改检测值作为一例,使用SHA(Secure HashAlgorithm:安全散列算法)-1算出。
恶意解析通知部403在从调试程序检测部401和篡改检测部402中接受到检测出恶意解析的内容的通知后,对程序执行部115指示中止程序的执行,进一步,生成恶意解析日志信息。恶意解析通知部403将所生成的恶意解析日志信息经通信控制部103、发送接收部102、天线101和网络30,发送到程序更新服务器20。
图7是表示恶意解析通知部403生成的恶意解析日志信息420的数据结构的图。如该图所示,恶意解析日志信息420包含程序标识符栏421、恶意解析检测代码栏422、通用寄存器值栏423、堆栈指针栏424、链接寄存器栏425和程序计数器栏426。
程序标识符栏421中描述了识别在恶意解析检测时程序执行部115所执行的被保护程序的程序标识符。恶意解析检测代码栏422中描述了表示检测出恶意解析的是调试程序检测部401和篡改检测部402的哪一个的恶意解析检测代码。恶意解析检测代码在调试程序检测部401检测出了调试程序的情况下,设置为“1”,在篡改检测部402检测出了篡改的情况下,设置为“2”。通用寄存器值栏423、堆栈指针栏424、链接寄存器栏425和程序计数器栏426中描述了调试程序检测时的微处理器内部的寄存器文件的各值。
另外,在使用具有调试程序寄存器的处理器的情况下,恶意解析通知部403也可在恶意解析日志信息中描述表示调试程序寄存器的状态的值和在调试程序寄存器上设置的地址值等。
停用列表存储部117保持图8所示的停用列表500。停用列表500包含多个程序停用信息,各程序停用信息包括程序标识符、程序开头地址、程序大小和停用标记。
程序标识符是唯一识别被保护程序用的信息。程序开头地址表示所对应的被保护程序在程序存储部111中的记录开始位置,程序大小是表示被保护程序的数据大小的信息。停用标记是表示所对应的被保护程序是否被停用的信息,设置为“0”和“1”的其中之一。“0”表示被保护程序没有被停用,“1”表示被保护程序被停用。
这里,停用列表500对于程序存储部111中存储的所有被保护程序,包含与各被保护程序一一对应的程序停用信息。具体来说,程序停用信息501对应于被保护程序A(201),程序停用信息502对应于被保护程序B(202),程序停用信息503对应于被保护程序C(203)。
停用列表更新部118在从执行程序选择部112接受被保护程序的下载请求后,经通信控制部103、发送接收部102、天线101和网络30,向程序更新服务器20发送所接受的下载请求。停用列表更新部118根据下载请求,经网络30、天线101、发送接收部102和通信控制部103接受从程序更新服务器20发送的被保护程序和判断用篡改检测值。停用列表更新部118将所接收的被保护程序写入到程序存储部111中,并将所接收的判断用篡改检测值和识别被保护程序的程序标识符输出到恶意解析检测部116的篡改检测部402。
另外,停用列表更新部118在如下的情况下,更新停用列表存储部117中存储的停用列表500。
(a)检测出恶意解析被保护程序的情况。即,停用列表更新部118在从恶意解析通知部403接受检测出恶意解析的被保护程序的程序标识符时,通过将与所接收的程序标识符相对应的停用标记从“0”改写为“1”,从而更新停用列表500。
(b)从程序更新服务器20接收了新的被保护程序的情况。即,停用列表更新部118在从程序更新服务器20接收到被保护程序和判断用篡改检测值后,生成与所接受的被保护程序有关的程序停用信息,而将所生成的程序停用信息注册到停用列表500中。
3.程序更新服务器20
图9是功能性地表示程序更新服务器20的结构的功能框图。如该图所示,程序更新服务器20具有发送接收部601、控制部602、恶意解析日志信息存储部603和更新用程序存储部604。程序更新服务器20具体来说是具有微处理器、ROM、RAM、硬盘单元等的计算机系统。
发送接收部601是网络连接单元,接收经网路30从便携电话机10发送的信息,并将所接收的信息输出到控制部602。另外,发送接收部601接受从控制部602输出的信息,并将所接收的信息经网络30,发送到便携电话机10。
控制部602控制程序更新服务器20整体。具体来说,控制部602经发送接收部601和网络30,从便携电话机10接收到被保护程序的下载请求后,从更新用程序存储部604中读出被保护程序和判断用篡改检测值,并将所读出的被保护程序和判断用篡改检测值输出到发送接收部601。另外,控制部602在经发送接收部601和网络30,从便携电话机10接收到恶意解析日志信息后,将所接收的恶意解析日志信息写入到恶意解析日志信息存储部603中。
恶意解析日志信息存储部603存储从便携电话机10发送的恶意解析日志信息。
图10是表示更新用程序存储部604的内部的图。如该图所示,更新用程序存储部604存储包含被保护程序X(611)、被保护程序Y(612)、...、被保护程序Z(613)的多个被保护程序。
对各被保护程序赋予程序标识符。具体来说,对被保护程序X(611)赋予程序标识符X:1001(621)、对被保护程序Y(612)赋予程序标识符Y:1002(622),对被保护程序Z(613)赋予程序标识符Z:1003(623)。
另外,更新用程序存储部604中存储的各被保护程序与便携电话机10的程序存储部111中存储的被保护程序同样,是使原始程序200混淆而生成的程序,分别具有不同的二进制码,进一步,具有图4所示的性质。即,被保护程序X(611)、被保护程序Y(612)、...、被保护程序Z(613)在将加密内容301和内容解密密钥302作为输入值后,作为输出值,输出解密内容303。
更新用程序存储部604与各被保护程序相对应地存储判断用篡改检测值。如图10所示,使被保护程序X(611)和判断用篡改检测值X(613)对应,使被保护程序Y(612)和判断用篡改检测值Y(632)对应,使被保护程序Z(613)和判断用篡改检测值Z(633)对应。各判断用篡改检测值是对所对应的被保护程序预先使用单向函数来算出的值,是用于判断有无所对应的被保护程序的篡改的数据。
<动作>
这里,使用图11到图15所示的流程图,来说明安全处理系统1的动作。
1.安全处理系统1整体的动作
图11是表示安全处理系统1整体的动作流程图。此外,这里所示的动作通过在便携电话机10中产生加密内容的解密请求而开始。
便携电话机10的执行程序选择部112读取在停用列表存储部117中存储的停用列表500(步骤S101)。执行程序选择部112读取停用列表500的停用标记,判断是否使程序存储部111中存储的所有被保护程序停用(步骤S102)。
在停用了所有的被保护程序的情况下(步骤S102中为“是”),即,停用列表500的停用标记全部设置为“1”的情况下,便携电话机10进行被保护程序的更新处理(步骤S103)。在存在没有停用的被保护程序的情况下,即,停用列表500中存在设置为“0”的停用标记的情况下(步骤S102中为“否”),执行程序选择部112进行被保护程序选择处理,而选择一个被保护程序(步骤S104)。
接着,程序装载部113将在步骤S104中选择出的一个被保护程序从程序存储部111装载到程序装载区域114上(步骤S105)。
接着,恶意解析检测部116的篡改检测部402算出程序装载区域114中装载的被保护程序的篡改检测值(步骤S106)。在检测出了被保护程序的篡改的情况下(步骤S107中为“是”),即,在步骤S106中算出的篡改检测值与预先保持的判断用篡改检测值不一致的情况下,进入到步骤S112。
在没有检测出被保护程序的篡改的情况下(步骤S107中为“否”),即,在步骤S106中算出的篡改检测值与预先保持的判断用篡改检测值一致的情况下,程序执行部115开始执行步骤S105中装载的被保护程序(步骤S108)。
在被保护程序的执行中,若恶意解析检测部116的调试程序检测部401没有检测出调试程序(步骤S109中为“否”),程序执行部115继续被保护程序的执行。
在被保护程序的执行中,若调试程序检测部401检测出调试程序(步骤S109中为“是”),则调试程序检测部401使调试程序停用,而进入到步骤S111。
检测出了篡改的篡改检测部402和检测出了调试程序的调试程序检测部401对恶意解析通知部403通知该内容,恶意解析通知部403对程序执行部115指示中止执行。之后,中止执行程序执行部115所执行的被保护程序(步骤S112)。
恶意解析通知部403进行恶意解析通知处理(步骤S113),便携电话机10结束处理。
2.被保护程序更新处理的动作
图12是表示被保护程序更新处理的动作的流程图。另外,这里所示的动作是图11所示的流程图中的步骤S103的细节。
便携电话机10的执行程序选择部112生成下载请求新的被保护程序用的下载请求(步骤S201)。执行程序选择部112将所生成的下载请求输出到停用列表更新部118中,停用列表更新部118经通信控制部103、发送接收部102、天线101和网络30,向程序更新服务器20发送下载请求,程序更新服务器20的发送接收部601接收下载请求(步骤S202)。
程序更新服务器20的控制部602在从发送接收部601接收下载请求后,从更新用程序存储部604中读出被保护程序和判断用篡改检测值(步骤S203)。控制部602将所读出的被保护程序和判断用篡改检测值输出到发送接收部601。
发送接收部601经网络30将被保护程序和判断用篡改检测值发送到便携电话机10,便携电话机10的发送接收部102经天线101,来接收被保护程序和判断用篡改检测值(步骤S204)。
停用列表更新部118生成与步骤S204中接收被保护程序有关的程序停用信息,并将所生成的程序停用信息注册到停用列表存储部117中存储的停用列表500上(步骤S205)。
接着,停用列表更新部118将步骤S204中接收的判断用篡改检测值和程序标识符输出到恶意解析检测部116的篡改检测部402,篡改检测部402使判断用篡改检测值与程序标识符相对应地注册到篡改检测值表格410上(步骤S206)。
进一步,停用列表更新部118将步骤S204中接收的被保护程序写入到程序存储部111中(步骤S207),在写入结束后(步骤S208),返回到图11的步骤S104继续处理。
3.程序选择处理1的动作
图13是表示程序选择处理1的动作的流程图。这里所示的动作是图11所示的流程图中的步骤S104的细节。
执行程序选择部112参考停用列表存储部117中存储的停用列表500,将停用列表500中注册的程序停用信息的总数,即,程序存储部111中存储的被保护程序的总数设作N(步骤S301)。
接着,执行程序选择部112通过随机数生成器,在1到N的整数范围中生成随机数r(步骤S302)。执行程序选择部112读出停用列表500中包含的N个程序停用信息内、上起第r个位置上的程序停用信息中包含的停用标记(步骤S303)。
在将停用标记设置为1的情况下(步骤S304中为“是”),由于所对应的被保护程序被停用,所以因执行程序选择部112不能选择该被保护程序,所以回到步骤S302,而继续选择另一被保护程序的处理。
在将停用标记设置为0的情况下(步骤S304中为“否”),由于所对应的被保护程序没有被停用,所以执行程序选择部112选择第r个被保护程序(步骤S305)。执行程序选择部112从停用列表中读出与所选择出的被保护程序有关的程序标识符、程序开头地址和程序大小,并将所读出的程序标识符、程序开头地址和程序大小通知给程序装载部113(步骤S306)。之后,回到图11的步骤S105,继续处理。
另外,基于执行程序选择部112的被保护程序选择处理并不限于上述的方法,也可使用下面说明的方法。
4.程序选择处理2的动作
这里,使用图14所示的流程图,来说明程序选择处理2的动作。程序选择处理2是之前说明的程序选择处理1的变形例,相当于图11所示的流程图的步骤S104的细节。
执行程序选择部112参考停用列表存储部117中存储的停用列表500,并将停用列表500中注册的程序停用信息的总数、即程序存储部111中存储的被保护程序的总数设作N(步骤S401)。
这里,执行程序选择部112在内部保持随机数列表。随机数列表是注册已经通过随机数生成器生成的随机数的列表。执行程序选择部112参考随机数列表(步骤S402),对在随机数列表中注册的随机数的总数进行计数。在随机数列表上注册的随机数的总数是N的情况下(步骤S403中为“是”),执行程序选择部112清除内部保持的随机数列表(步骤S404)。
在随机数列表上注册的随机数的总数比N小的情况下(步骤S403中为“否”),执行程序选择部112通过随机数生成器,在1到N的整数范围中,生成随机数r(步骤S405)。执行程序选择部112判断步骤S405中生成的随机数是否已经注册到随机数列表上。
在随机数r已经注册到随机数列表上的情况下(步骤S406中为“是”),执行程序选择部112回到步骤S401继续处理。在随机数r没有注册到随机数列表上的情况下(步骤S406中为“否”),将步骤S405中生成的随机数r注册到随机数列表上(步骤S407)。
接着,执行程序选择部112读取停用列表500中包含的N个程序停用信息内、上起第r个位置的程序停用信息中包含的停用标记(步骤S408)。
在将停用标记设置为1的情况下(步骤S409中为“是”),由于所对应的被保护程序被停用,所以执行程序选择部112不能选择该被保护程序,所以回到步骤S401继续处理。
在将停用标记设置为0的情况下(步骤S409中为“否”),由于所对应的被保护程序没有被停用,所以执行程序选择部112选择第r个被保护程序(步骤S410)。执行程序选择部112从停用列表中读出与所选择出的被保护程序有关的程序标识符、程序开头地址和程序大小,并将所读出的程序标识符、程序开头地址和程序大小通知给程序装载部113(步骤S411)。之后,回到图11的步骤S105,继续处理。
5.恶意解析通知处理的动作
这里,使用图15所示的流程图,来说明恶意解析通知处理的动作。另外,这里说明的动作是图11的步骤S113的细节。
恶意解析检测部116的恶意解析通知部403经程序执行部115取得在程序装载区域114上装载的被保护程序的程序标识符(步骤S501)。
接着,恶意解析通知部403判断检测出了恶意解析的是调试程序检测部401还是篡改检测部402。
在检测出恶意解析的是调试程序检测部401的情况下(步骤S502中是“检测出调试程序”),恶意解析通知部403将恶意解析检测代码设置为“1”(步骤S503)。之后,恶意解析通知部403从程序执行部115中包含的寄存器文件中取得通用寄存器、堆栈指针、链接寄存器和程序计数器的各值(步骤S504)。
在检测出恶意解析的是篡改检测部402的情况下(步骤S502中“检测出篡改”),恶意解析通知部403将恶意解析检测代码设置为“2”(步骤S505)。
恶意解析通知部403将所取得的程序标识符描述在恶意解析日志信息402的程序标识符421栏上,进一步,将设置为“1”和“2”中的其中之一的恶意解析检测代码描述在恶意解析检测代码栏422上。接着,恶意解析通知部403在步骤S504中取得了寄存器文件的各值的情况下,将所取得的各值描述在恶意解析日志信息420的通用寄存器值栏423、堆栈指针栏424、链接寄存器栏425和程序计数器栏426的各栏上,而生成恶意解析日志信息420(步骤S506)。
恶意解析通知部403将所生成的恶意解析日志信息420经通信控制部103、发送接收部102、天线101和网络30,发送到程序更新服务器20,程序更新服务器20接收恶意解析日志信息420(步骤S507)。
程序更新服务器20的控制部602在从发送接收部601接收到恶意解析日志信息420后,将所接收的恶意解析日志信息420写入到恶意解析日志信息存储部603中,恶意解析日志信息存储部603存储恶意解析日志信息420(步骤S508)。
另一方面,便携电话机10的恶意解析通知部403将检测出恶意解析的情况与步骤S501中取得程序标识符一起通知给停用列表更新部118(步骤S509)。停用列表更新部118在接受恶意解析的检测后,从停用列表中将通过所接收的程序标识符识别出的程序停用信息的停用标记设置为“1”(步骤S510)。之后,回到图11的流程图。
<其他变形例>
(1)本发明中的被保护程序可以是对原始程序整体来实施混淆处理而生成的程序,也可以是对原始程序的一部分实施混淆处理而生成的程序。
(2)上述实施方式中,便携电话机10的程序存储部111具有存储包括各自不同的二进制码的多个被保护程序的结构,但是本发明中,程序存储部111并不必须存储作为二进制码的被保护程序,例如,也可以是存储实施了不同的混淆的作为软件程序的被保护程序的结构。这时,构成为,使得程序执行部115使用编译器来执行各被保护程序。
(3)上述实施方式中,便携电话机10的篡改检测部402具有使用单向函数来进行篡改检测的结构,但是当然本发明中的篡改检测的方法并不限于单向函数,例如,也可使用下述方法等,该方法为,存储预先对各被保护程序加密后的加密被保护程序,比较对由执行程序选择部112选择出的被保护程序实施了同样的加密处理后的结果、和预先存储的加密被保护程序,从而检测出有无篡改。
(4)上述实施方式中,便携电话机10的执行程序选择部112具有通过实施图13所示的程序选择处理1或图14所示的程序选择处理2来选择没有被停用的一个被保护程序的结构,但是本发明的被保护程序的选择方法并不限于这些,例如,下面的这种情况也包含在本发明中。
(a)执行程序选择部112也可预先存储预定的选择顺序,并根据该选择顺序,来选择要执行的被保护程序。
具体来说,执行程序选择部112存储根据选择顺序而排列的程序标识符,在产生加密内容的解密请求后,执行程序选择部112读出选择顺序为上级的程序标识符。接着,执行程序选择部112从停用列表存储部117中读出停用列表500,并判断通过之前读出的程序标识符识别出的被保护程序是否被停用。在没有被停用的情况下,选择该被保护程序,并将程序开头地址和程序大小通知给程序装载部113。在被停用的情况下,执行程序选择部112读出选择顺序接着的程序标识符,而重复上述处理。这样,执行程序选择部112根据预定的选择顺序,来选择没有被停用的一个被保护程序。
(b)执行程序选择部112也可预先存储与各被保护程序的混淆的程序相对应的选择顺序,并根据该选择顺序来选择要执行的被保护程序。如上述实施方式所述,各被保护程序的混淆的程度根据虚拟代码的追加大小、控制结构的复杂化模式、模块的分割数和加密算法的强度等而分别不同,混淆的程度越高,被保护程序的解析和篡改越困难。
执行程序选择部112以混淆程度高的顺序来存储程序标识符,在产生加密内容的解密请求后,执行程序选择部112读出上级的、即混淆的程度高的被保护程序的程序标识符。之后,执行程序选择部112进行与(a)相同的处理,从混淆的程度高的被保护程序起顺序选择没有被停用的一个被保护程序。
另外,执行程序选择部112也可构成为从混淆的程度低的被保护程序起依次选择没有被停用的一个被保护程序。这是因为一般越是混淆的程度高的被保护程序,执行速度越慢,所以对于不进行恶意解析的善意用户来说,希望从执行速度快的程序,即,混淆的程度低的程序起优先选择。
此外,也可构成为不依赖于混淆的程序,而以实际的执行速度从快到慢的顺序,来选择没有被停用的被保护程序。这时,执行程序选择部112也可与识别各被保护程序的程序标识符相对应地存储表示各被保护程序的执行速度的信息,也可构成为每次便携电话机10下载被保护程序时,执行测试,并测量所下载的被保护程序的执行速度。
(5)上述实施方式中,篡改检测部402具有在将被保护程序装载到程序装载区域114上时,进行篡改检测值的运算,并判断有无篡改的结构,但是发明中的被保护程序的篡改检测也可在装载被保护程序之前对程序存储部111中存储的程序进行,可在被保护程序的执行前进行,也可在对所装载的程序执行中定期进行。
(6)上述实施方式中,恶意解析检测部116的恶意解析通知部403具有在从调试程序检测部401和篡改检测部402的其中一个中接受检测出了恶意解析的内容的通知后,无条件对程序执行部115指示中止被保护程序的执行,并生成恶意解析日志信息的结构,但是例如在下面这种情况下,也包含在本发明中。
恶意解析通知部403预先保持表示预定数的阈值。恶意解析通知部403在每次从调试程序检测部401和篡改检测部402接收检测出恶意解析的内容的通知时,计数该次数。若计数的次数超过所保持的阈值,则恶意解析通知部403构成为对程序执行部115指示中止被保护程序的执行,并生成恶意解析日志信息。由此,可以防止将善意的用户的误操作判断为恶意解析,而直接停止执行中的程序。
(7)上述实施方式中,具有被检测出恶意解析(检测出调试程序或检测出篡改)的被保护程序将停用列表的停用标记从“0”改写为“1”从而加以停用的结构,但是本发明中的程序的停用除了停用标记的改写之外,也可通过对程序存储部111内的被保护程序清零,或通过随机数据来重写存储器,从而实际上不执行程序。这样,通过使有可能被解析的被保护程序成为不能执行,也可降低因用户的误动作等而再次执行应该停用的被保护程序的危险。
此外,也可构成为替换将停用后的被保护程序的停用标记改写为“1”的结构,而从停用列表中删除程序停用信息。通过从停用列表中删除程序停用信息,删除了与所停用的被保护程序的地址等有关的信息,所以可以减少因用户的误动作等而再次执行应该停用的被保护程序的危险。
另外,上述实施方式中,具有通过停用标记来判断被保护程序是否被停用的结构,但是该结构并不是必须,替换标记,通过其他信息来加以判断的情况也包含在本发明中。
(8)也可对本发明中的停用列表赋予从合法的机关发出的签名数据。这时,执行程序选择部112构成为在步骤S101(图11)中读取了停用列表后,进行签名数据的验证,在签名数据的验证成功的情况下,继续进行步骤S102之后的处理,在签名数据的验证失败的情况下,即停用列表是非法的情况下,不进行步骤S102之后的处理。若根据该结构,可以防止被停用的被保护程序因停用列表的篡改而判断为没有被停用并加以执行的情况。
(9)上述实施方式中,保护对象程序仅仅是作为加密内容解密程序的原始程序200,但是本发明中,也可存在多个保护对象的程序。
这时,对于多个保护对象程序的每一个,生成多个被保护程序,在程序存储部111中存储这多个被保护程序。另外,在停用列表存储部117上对每个保护对象程序分别存储停用列表。
(10)在本发明中,便携电话机10可以将从程序更新服务器20下载的被保护程序重写在程序存储部111内的存储被停用的被保护程序的区域上,也可存储在程序存储部111内的其他区域上。由此,可以一次进行被停用的被保护程序的删除和新的被保护程序的追加。另外,由于将被停用的被保护程序的存储区域作为所追加的新的被保护程序的存储区域而再次使用,所以可以有效利用程序存储部111的容量。
(11)上述实施方式中,便携电话机10具有在判断出程序存储部111中存储的所有被保护程序被停用后,从程序更新服务器下载新的被保护程序的结构,但是该结构并不是必须,对于从程序更新服务器来下载被保护程序的定时并不特别加以限定。例如,也可在每次使一个被保护程序停用时,便携电话机10从程序更新服务器20中下载新的被保护程序。
此外,便携电话机10也可在程序存储部111中存储的所有被保护程序没有被停用而留有有效的被保护程序的状态下,从程序更新服务器20中下载新的被保护程序。例如,也可构成为在程序存储部111中存储的有效的被保护程序的数目是预定数目以下时,便携电话机10保持过去的选择历史,在选择了同一被保护程序的概率为预定值以上的情况下,下载新的被保护程序。
根据该结构,便携电话机10在有效的被保护程序的数目减小后,取得新的被保护程序,所以可以保证可某种程度地随机选择所执行的被保护程序。
(12)本发明中,也可构成为便携电话机10和程序更新程序20之间的通信也可构成为,建立安全的通信路径,即所谓的SAC(Secure Authentication Channel),并经SAC,来进行被保护程序的下载处理、恶意解析日志信息的发送接收处理。另外,对于SAC也可在Secure Sockets Layer(SSL:安全套接字层)等中使用,由于可通过现有的技术来实现,所以省略说明。
(13)本发明可以是上面所示的方法。也可以是通过计算机来实现这些方法的计算机程序,也可以是由所述计算机程序构成的数字信号。
此外,本发明也可将所述计算机程序或前述的数字信号记录在计算机可读取的记录介质,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc:蓝光光盘)、半导体存储器等上。也可以是在这些记录介质上记录的所述计算机程序或所述数字信号。
本发明也可经电通信线路、无线或有线通信线路、以及以互联网为代表的网络等来传送所述计算机程序或所述数字信号。
本发明是具有微处理器和存储器的计算机系统,所述存储器可以存储上述计算机程序,所述微处理器根据所述计算机程序来动作。
也可通过将所述程序或所述数字信号记录到所述记录介质上加以移送,或将所述程序或所述数字信号经所述网络等移送,来通过独立的其他计算机系统加以实施。
(14)此外,本发明中,将上述实施方式中的便携电话机10和程序更新服务器20的功能块的一部分或全部作为集成电路的LSI实现的情况也包含在本发明中。这些可以单独单芯片化,也可包含一部分或全部地单芯片化。这里,虽然为LSI,但是根据集成度的不同,还称作IC、系统LSI、超级LSI和顶级LSI。
集成电路的方法并不限于LSI,也可通过专用电路来实现。也可在LSI制造后,利用可进行编程的FPGA(Field ProgrammableGate Array:现场可编程门阵列)和可重构LSI内部的电路单元的连接和设置的可重构处理器。
进一步,若因半导体技术的进步或所派生出的其他技术从而替换LSI的集成电路出现,当然也可使用该技术来进行功能块的集成。作为可能性有生物技术的适应等。
(15)分别组合所述实施方式和所述变形例的结构也包含在本发明中。
工业实用性
本发明可以在发送数字内容的业务中,作为防止因恶意解析而暴露了要保密的信息的情况的结构使用。另外,本发明也可在生产对数字内容进行再现的再现装置的制造业中使用。

Claims (25)

1.一种安全处理装置,其特征在于,包括:
程序存储单元,存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;
停用单元,使作为解析对象的被保护程序停用;
选择单元,从所述多个被保护程序中选择没有被停用的一个被保护程序;以及
执行单元,执行所选择出的一个被保护程序。
2.根据权利要求1所述的安全处理装置,其特征在于:
所述安全处理装置具有解析检测单元,该解析检测单元在所述执行单元执行一个被保护程序时,判断所述被保护程序是否被作为解析对象;
所述停用单元包括:
停用列表存储部,存储表示被停用的被保护程序的停用列表;以及
停用注册部,在由所述解析检测单元判断为所述被保护程序被作为解析对象时,在所述停用列表上注册所述被保护程序被停用的消息。
3.根据权利要求2所述的安全处理装置,其特征在于:
所述停用列表添加有证明该停用列表的合法性用的签名数据;
所述选择单元验证在所述停用列表上添加的所述签名数据,在所述签名数据的验证结果是检测出所述停用列表的非法的情况下,中止被保护程序的选择处理。
4.根据权利要求1所述的安全处理装置,其特征在于:所述多个被保护程序是将原始程序混淆后的混淆程序,各被保护程序是因混淆的方法和/或混淆的程度各自不同而具有不同的代码的程序。
5.根据权利要求4所述的安全处理装置,其特征在于:所述多个被保护程序内的某些一个以上的被保护程序是:使用对所述原始程序中包含的多个部分程序内的不同部分程序进行加密的方法、来作为所述混淆的方法而生成的程序。
6.根据权利要求5所述的安全处理装置,其特征在于:通过对部分程序加密而生成的所述一个以上的被保护程序是:使用不同的加密算法和/或不同的密钥将作为加密对象的各部分程序加密后的程序。
7.根据权利要求4所述的安全处理装置,其特征在于:所述多个被保护程序内的某些一个以上的被保护程序是:使用替换所述原始程序中包含的多个指令内的并行指令的执行顺序的方法、来作为所述混淆的方法而生成的程序,该并行指令是彼此没有依赖关系的指令。
8.根据权利要求4所述的安全处理装置,其特征在于:所述多个被保护程序内的某些一个以上的被保护程序是:使用将所述原始程序中包含的指令替换为进行与该指令不同的处理且输出与该指令相同的结果的一个以上的指令所构成的恒等指令的方法、来作为所述混淆的方法而生成的程序。
9.根据权利要求4所述的安全处理装置,其特征在于:所述多个被保护程序内的某些一个以上的被保护程序是:使用将伪指令插入到所述原始程序中的方法、来作为所述混淆的方法而生成的程序,所述伪指令是对所述原始程序的结果没有影响的指令。
10.根据权利要求1所述的安全处理装置,其特征在于:
所述安全处理装置具有解析检测单元,该解析检测单元在所述执行单元执行一个被保护程序时,判断所述被保护程序是否被作为解析对象。
11.根据权利要求10所述的安全处理装置,其特征在于:
所述解析检测单元具有:
调试程序检测部,若在所述执行单元执行被保护程序的过程中,检测出调试程序,则使所检测出的调试程序停用;以及
指示部,在通过所述调试程序检测部检测出调试程序时,对所述执行单元指示中止执行;
所述执行单元在从所述指示部接受执行中止的指示后,立即中止执行正在执行中的所述被保护程序。
12.根据权利要求10所述的安全处理装置,其特征在于:
所述解析检测单元具有:
篡改检测部,检测出被保护程序的篡改;以及
指示部,在通过所述篡改检测部检测出篡改时,对所述执行单元指示中止执行;
所述执行单元在从所述指示部接受执行中止的指示时,中止执行所述被保护程序。
13.根据权利要求10所述的安全处理装置,其特征在于:
所述解析检测单元具有日志信息生成部,在判断为所述被保护程序被作为解析对象时,该日志信息生成部生成与所述解析有关的解析日志信息。
14.根据权利要求13所述的安全处理装置,其特征在于:
所述安全处理装置经网络与外部服务器相连;
所述日志信息生成部将所生成的所述解析日志信息送到所述外部服务器。
15.根据权利要求10所述的安全处理装置,其特征在于:
所述解析检测单元还具有:
阈值存储部,存储设置为预定的数值的阈值;以及
解析次数计数部,保持判断为被保护程序被作为解析对象的次数,每次进行所述判断时,更新所保持的次数;
所述停用单元在所述解析次数计数部所保持的次数超过所述阈值时,使所述被保护程序停用。
16.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元随机选择没有被停用的一个被保护程序。
17.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元,
存储用于识别所选择出的被保护程序的信息;
参考所述信息,随机选择未选择且没有被停用的一个被保护程序。
18.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元,
预先存储预定的选择顺序;
按照所述选择顺序选择没有被停用的一个被保护程序。
19.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元,
对所述多个被保护程序,存储表示各被保护程序的混淆的程度的混淆度信息;
参考所述混淆度信息,以从混淆的程度高的被保护程序起依次加以执行的方式,选择没有被停用的一个被保护程序。
20.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元,
对所述多个被保护程序,存储表示各被保护程序的混淆的程度的混淆度信息;
参考所述混淆度信息,以从混淆的程度低的被保护程序起依次加以执行的方式,选择没有被停用的一个被保护程序。
21.根据权利要求1所述的安全处理装置,其特征在于:
所述选择单元以从执行速度快的被保护程序起依次加以执行的方式,选择没有被停用的一个被保护程序。
22.根据权利要求1所述的安全处理装置,其特征在于:
所述安全处理装置经网络与保持被保护程序的程序更新服务器连接;
所述选择单元具有:
判断部,判断没有被停用的被保护程序的剩余数是否是预定的阈值以下;
程序请求部,在由所述判断部判断为是预定的阈值以下的情况下,对所述程序更新服务器请求发送新的被保护程序;以及
程序接收部,从所述程序更新服务器中接收新的被保护程序。
23.一种集成电路,其特征在于,包括:
程序存储单元,存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;
停用单元,使作为解析对象的被保护程序停用;
选择单元,从所述多个被保护程序中选择没有被停用的一个被保护程序;以及
执行单元,执行所选择的一个被保护程序。
24.一种安全处理方法,在安全处理装置中使用,其特征在于:
所述安全处理装置存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;
所述安全处理方法包含步骤:
停用步骤,使作为解析对象的被保护程序停用;
选择步骤,从所述多个被保护程序中选择没有被停用的一个被保护程序;以及
执行步骤,执行选择出的一个被保护程序。
25.一种安全处理系统,包括经网络连接的安全处理装置和程序更新服务器,其特征在于:
所述安全处理装置包括:
第一存储单元,存储根据原始程序生成的、可得到与所述原始程序相同的结果的多个被保护程序;
停用单元,使作为解析对象的被保护程序停用;
选择单元,从所述多个被保护程序中选择没有被停用的一个被保护程序;
执行单元,执行选择出的一个被保护程序;以及
请求单元,在所述第一存储单元中存储的多个被保护程序内没有被停用的被保护程序的剩余数是预定的阈值以下的情况下,对所述程序更新服务器请求发送被保护程序;
所述程序更新服务器包括:
第二存储单元,存储多个被保护程序;
请求接受单元,从所述安全处理装置中接受被保护程序的发送请求;以及
发送单元,在所述请求接受单元接受到所述发送请求时,从所述第二存储单元中读出一个以上的被保护程序,并发送到所述安全处理装置。
CNA2006800060504A 2005-02-25 2006-02-23 安全处理装置和安全处理系统 Pending CN101128833A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005050419 2005-02-25
JP050419/2005 2005-02-25

Publications (1)

Publication Number Publication Date
CN101128833A true CN101128833A (zh) 2008-02-20

Family

ID=36927437

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800060504A Pending CN101128833A (zh) 2005-02-25 2006-02-23 安全处理装置和安全处理系统

Country Status (5)

Country Link
EP (1) EP1862937A1 (zh)
JP (1) JP4796050B2 (zh)
KR (1) KR20070105989A (zh)
CN (1) CN101128833A (zh)
WO (1) WO2006090800A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262093A (zh) * 2010-12-10 2013-08-21 国际商业机器公司 利用mems执行ic功能的非破坏性和安全停用的切换器及其方法
CN105229654A (zh) * 2013-03-27 2016-01-06 爱迪德技术有限公司 保护软件应用
CN112051804A (zh) * 2019-06-05 2020-12-08 发那科株式会社 数值控制装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4048382B1 (ja) 2006-09-01 2008-02-20 富士ゼロックス株式会社 情報処理システムおよびプログラム
JP4898823B2 (ja) * 2006-10-20 2012-03-21 パナソニック株式会社 アプリケーション情報改竄監視装置及び方法
JP4743783B2 (ja) * 2006-11-02 2011-08-10 株式会社メガチップス メモリシステム
JP5133973B2 (ja) * 2007-01-18 2013-01-30 パナソニック株式会社 難読化支援装置、難読化支援方法、プログラムおよび集積回路
JP2008287441A (ja) * 2007-05-16 2008-11-27 Toshiba Corp 情報処理装置およびプログラムの不正利用抑止方法
JP2009271884A (ja) * 2008-05-12 2009-11-19 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
US8555067B2 (en) * 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
DE112012004661T5 (de) * 2011-08-05 2014-09-11 Kpit Technologies Ltd. System zum Schutz von eingebettetem Software-Code
KR101322402B1 (ko) * 2011-11-25 2013-11-21 농업협동조합중앙회 어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기
JP6654652B2 (ja) * 2015-03-13 2020-02-26 エバースピン コーポレーション 動的なセキュリティーモジュール生成方法及び生成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4302922B2 (ja) * 2001-12-21 2009-07-29 キヤノン電子株式会社 電子機器、電子機器の制御方法、および電子機器の制御プログラム
US7254586B2 (en) * 2002-06-28 2007-08-07 Microsoft Corporation Secure and opaque type library providing secure data protection of variables
KR100568228B1 (ko) * 2003-05-20 2006-04-07 삼성전자주식회사 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262093A (zh) * 2010-12-10 2013-08-21 国际商业机器公司 利用mems执行ic功能的非破坏性和安全停用的切换器及其方法
CN103262093B (zh) * 2010-12-10 2016-06-15 国际商业机器公司 利用mems执行ic功能的非破坏性和安全停用的切换器及其方法
CN105229654A (zh) * 2013-03-27 2016-01-06 爱迪德技术有限公司 保护软件应用
US10013553B2 (en) 2013-03-27 2018-07-03 Irdeto B.V. Protecting software application
CN105229654B (zh) * 2013-03-27 2019-02-19 爱迪德技术有限公司 保护软件应用
CN112051804A (zh) * 2019-06-05 2020-12-08 发那科株式会社 数值控制装置
CN112051804B (zh) * 2019-06-05 2024-03-26 发那科株式会社 数值控制装置

Also Published As

Publication number Publication date
JP4796050B2 (ja) 2011-10-19
KR20070105989A (ko) 2007-10-31
JPWO2006090800A1 (ja) 2008-07-24
WO2006090800A1 (ja) 2006-08-31
EP1862937A1 (en) 2007-12-05

Similar Documents

Publication Publication Date Title
CN101128833A (zh) 安全处理装置和安全处理系统
US20080168562A1 (en) Secure Processing Device and Secure Processing System
JP4891902B2 (ja) 電子機器、更新サーバ装置、鍵更新装置
CN101853352B (zh) 程序执行设备
US7818741B1 (en) Method and system to monitor installation of a software program
EP2425367B1 (en) Method and apparatus for improving code and data signing
EP1710724B1 (en) Application program verification system, application program verification method and computer program
CN110719166A (zh) 芯片烧录方法、芯片烧录装置、芯片烧录系统及存储介质
US20060168580A1 (en) Software-management system, recording medium, and information-processing device
US20080250403A1 (en) Method and apparatus for generating firmware update file and updating firmware by using the firmware update file
CN102163268B (zh) 在执行期间验证软件代码的完整性的方法和设备
CN101325485A (zh) 处理电子设备中信息的方法、系统、电子设备和处理块
CN103946856A (zh) 加解密处理方法、装置和设备
CN102419804A (zh) 具有冗余安全性的可靠的软件产品验证和激活
KR20050053668A (ko) 전자 장치에의 데이터 로딩
KR100601706B1 (ko) Drm 시스템에 있어서 시스템 키를 공유하고 생성하는방법 및 장치
CN102265285A (zh) 信息处理装置、管理装置、非法模块检测系统、非法模块检测方法、记录非法模块检测程序的记录媒体、管理方法、记录管理程序的记录媒体和集成电路
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
WO2002059894A1 (fr) Support d&#39;enregistrement, dispositif de traitement d&#39;informations, serveur de distribution de contenu, procede, programme et son support d&#39;enregistrement
CN110598377A (zh) 基于区块链的软件序列号管理方法以及装置
CN111339201A (zh) 基于区块链的测评方法及系统
CN100489877C (zh) 防止终端软件被盗用的方法及装置
CN102682244B (zh) 信息处理设备和程序执行方法
JP2021118444A (ja) 情報処理装置、情報処理方法及びプログラム
CN114172720A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication