CN101427222B - 数据处理装置、方法、程序生成装置、方法 - Google Patents

数据处理装置、方法、程序生成装置、方法 Download PDF

Info

Publication number
CN101427222B
CN101427222B CN2007800147358A CN200780014735A CN101427222B CN 101427222 B CN101427222 B CN 101427222B CN 2007800147358 A CN2007800147358 A CN 2007800147358A CN 200780014735 A CN200780014735 A CN 200780014735A CN 101427222 B CN101427222 B CN 101427222B
Authority
CN
China
Prior art keywords
program
debugging
debugger
acl
obtains
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007800147358A
Other languages
English (en)
Other versions
CN101427222A (zh
Inventor
前田学
松岛秀树
井藤好克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101427222A publication Critical patent/CN101427222A/zh
Application granted granted Critical
Publication of CN101427222B publication Critical patent/CN101427222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

数据处理装置控制调试器对程序执行调试处理。程序中包含用于判定可否调试处理的验证值、和对程序的每个部分示出可否访问程序的访问控制列表。数据处理装置取得调试器的调试器ID、与程序中包含的验证值和访问控制列表。对应于调试器ID与验证值的比较结果,判定可否调试处理。另外,构成调试对象的程序的部分若在访问控制列表中示为可访问,则允许访问,若为不可访问,则不允许访问。

Description

数据处理装置、方法、程序生成装置、方法
技术领域
本发明涉及程序的保护,尤其涉及一种控制程序的调试处理执行的技术。
背景技术
保护用于著作权管理的程序等、不期望执行非法解析等非法行为的程序(下面称为‘保护程序’)的技术被广泛使用。这是因为若保护不充分,则不限于程序的权利者,在各个方面均会发生损害。
例如,若非法者能非法解析对加密后的数字内容执行解密处理后进行再现的程序并篡改该程序,则担心非法利用数字内容。即,非法者非法再现数字内容,或即便限制数字内容的复制次数或再现次数,该限制也被无效化。
作为保护程序等数据不被非法者非法解析等的技术,在下述非专利文献1中公开了一种LSI(Large Scale Integration:大规模集成电路)技术,即构筑具有防止从外部非法访问的机构的安全域,具备在安全域中执行处理的安全模式、与通过不使用安全域来执行处理的通常模式,切换通常模式与安全模式来进行动作。根据该技术,通过仅在安全模式时使保护程序动作,可保护该保护程序不被非法解析等。
但是,在开发在安全域中动作的程序的情况下,为了执行动作的验证或差错的修正,必需调试(debug)上述程序。而且,若无论是谁均能调试上述程序,则非法者会进行调试并插足非法解析等,所以必需将可调试者仅限定为上述程序的开发者等有关人员。
因此,以往,使用仅知道规定认证代码的人才能调试在安全域中动作的程序的技术(参照下述的专利文献1)。具体而言,专利文献1的技术中,只有在使用了认证代码的认证中成功的人,才能执行调试处理。
由此,由于不知道认证代码的人认证失败,所以可防止非法人员调试安全域中动作的程序。
专利文献1:日本特开2004-171565号公报
非专利文献1:TrustZone-Integrated Hardware and Software Security(http://www.arm.com/pdfs/TZ Whitepaper.pdf)
根据上述专利文献1的技术,在将程序的开发有关人员仅限于例如本公司内的特定组的情况下,只要适当管理认证代码,则可实现程序的保护。
另一方面,近年来,为了缓和程序开发的负担,有时多个程序分别由不同的权利者开发,这些程序协同动作。例如在以SD-Audio标准将以OMADRM(Open Mobile Alliance Digital Rights Management:开放移动联盟数字版权管理)标准分发的音乐内容输出到SD存储卡(Secure Digital MemoryCard:安全数字存储卡)的情况下,执行基于OMA DRM标准的处理的程序与执行基于SD-Audio标准的处理的程序分别由不同的权利者开发,这些程序协同动作。
开发这些协同动作的多个程序时发生差错,且涉及协同动作的程序的至少一部分是保护程序的情况下,开发者必需同时调试保护程序与其它程序。此时,在这些程序的权利者就各个程序不同的情况下,存在某个权利者的保护程序由其他权利者一方的开发者来进行调试的需要。
但是,上述专利文献1的技术使用认证代码来控制是否调试在安全域中动作的程序。知道认证代码的人可调试在安全域中动作的全部程序。
此时,上述其它权利者一方的开发者若知道认证代码,则不限于涉及协同动作的程序,所有的保护程序都可以调试。结果,对于上述某个权利者不期望调试的保护程序,若上述其它权利者一方的开发者能获得该保护程序,则也可进行调试。因此,上述某个权利者在共同开发协同动作的程序群的情况下,会承担不期望被调试的其它保护程序被解析等、机密信息也许泄漏到外部等巨大危险。伴随这种危险,在保护程序的同时分别由不同的权利者共同开发协同动作的程序群是困难的。
发明内容
因此,本发明的目的在于提供一种在保护程序的同时、使不同的权利者共同开发程序变得容易的数据处理装置、数据处理方法、集成电路、控制调试处理执行的程序、程序生成装置。
为了解决上述课题,本发明是一种数据处理装置,控制调试处理部的调试处理的执行,其特征在于:具备:第1取得部件,取得识别所述调试处理部的识别符;第2取得部件,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;判定部件,对从所述调试对象程序取得的所述验证值与由所述第1取得部件取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和控制部件,当判定为不允许时,禁止对所述调试对象程序执行调试处理。
发明效果
本发明的数据处理装置比较所取得的验证值与调试处理部的识别符,按照比较结果,控制调试处理部可否执行调试处理。即,若程序的权利者使某个验证值包含于该程序中,则允许该程序的调试处理的调试处理部的识别符被决定。
因此,该程序的权利者可利用自身包含于该程序中的验证值来指定可执行该程序的调试处理的调试处理部的识别符。
即,由于该程序的权利者可如自身希望的那样限定具有可执行该程序的调试处理的识别符的调试处理部,所以可避免让保持不具有该识别符的调试处理部的利害关系人员等不必要地调试该程序。
但是,作为程序的权利者,即便允许让其它权利者等调试该程序,也想限制该程序的调试。例如,在该程序中包含想保密的信息的情况下,由于若该秘密部分暴露,则在各个方面发生损害,所以对该秘密部分不希望被解析。
因此,也可以是,所述调试对象程序的所述规定部分中,包含表示对于构成所述调试对象程序的各部分允许或不允许访问的访问控制列表,所述第2取得部件包含访问控制列表取得部,该访问控制列表取得部取得所述调试对象程序的所述规定部分中包含的所述访问控制列表,所述数据处理装置还具备访问判定部件,该访问判定部件根据所述取得的所述访问控制列表,判定是否允许访问所述调试对象程序的一部分,所述控制部件,在所述判定部件判定为允许、且所述访问判定部件判定为不允许的第1情况下,禁止执行所述一部分的调试处理,在所述判定部件判定为允许、且所述访问判定部件判定为允许的第2情况下,使所述调试处理部执行所述一部分的调试处理。
由此,程序的权利者可使得该程序中包含想保密的信息的部分不被调试。
具体而言,所述访问控制列表所示的所述部分的每一个,表示与将所述调试对象程序加载到存储器时的加载目的地存储器地址的所述部分分别对应的地址范围,在所述访问控制列表中,将与所述部分分别对应的所述地址范围的每一个,与可否访问相对应,所述访问判定部件对于与将所述调试对象程序加载到存储器时的加载目的地存储器地址的所述一部分相对应的地址范围,通过参照在所述访问控制列表中相对应的可否访问,执行所述判定。
由此,可限制对配置在特定存储器地址的秘密信息的调试。
另外,也可以是,所述访问控制列表中所示的所述部分的每一个,表示所述调试对象程序中包含的符号,所述访问控制列表中,将所述符号的每一个与可否访问相对应,所述访问判定部件对于所述调试对象程序的所述一部分中包含的符号,通过参照在所述访问控制列表中相对应的可否访问,执行所述判定。
由此,可限制对特定符号的调试,可通过指定符号这样的简单处理,在符号处理秘密信息的情况下保护秘密信息。
但是,有时利害关系人员想灵活地设定程序的保护强度。例如,是想对关联公司具有的调试处理部宽松地允许调试处理的执行,对无关人员的调试处理部,包含秘密信息地限制调试处理的执行的情况等。
因此,也可以是,所述调试对象程序的所述规定部分中包含多个所述验证值,所述规定部分中包含一个以上所述访问控制列表,所述访问控制列表的每一个,与所述验证值的至少一个相对应,所述判定部件对于所述验证值的每一个,与所述取得的识别符进行比较,执行所述判定,所述访问判定部件根据与所述判定部件判定为允许的所述验证值相对应的所述访问控制列表,执行所述判定。
由此,可对具有分别对应于验证值的识别符的每个调试处理部,指定调试对象程序的可调试部分。即,程序的权利者可按照调试处理部的识别符来设定程序保护的部分。
另外,优选的是,所述数据处理装置还具备显示部,所述控制部件包含显示控制部,在所述第1情况下,该显示控制部使所述显示部执行表示禁止所述一部分的调试处理之意的显示,在所述第2情况下,该显示控制部使所述显示部显示所述调试处理的结果。
由此,执行调试的人可知道是否允许调试。
在上述数据处理装置中,判定部件的判定方式也可为所述判定部件对所述验证值与所述识别符进行比较,在所述验证值与所述识别符一致的情况下,判定为允许所述调试处理。
由此,程序的权利者可利用所述验证值来指定允许执行调试处理的调试处理部。另外,由于通过所述验证值与所述识别符是否一致这样的简单的运算来执行判定,所以可缩短判定所需的时间。
另外,作为判定的方式,也可以是,所述判定部件,包含比较值保持部,该比较值保持部以保护其不被非法访问的状态存储比较值,并且执行将所述验证值与所述识别符用作运算符的规定运算,在该运算结果与所述存储的所述比较值一致的情况下,判定为允许所述调试处理。
这样,即便假设所述验证值因某非法部件而被暴露,也由于使用规定的运算与比较值执行所述判定,所以难以从所述验证值得到允许调试处理的调试处理部的识别符。即,根据上述构成,可提高程序的保护强度。
该数据处理装置具体地也可通过下述构成实现,即,所述数据处理装置具有具备防止从外部非法访问的机构的安全域,所述数据处理装置具备通常模式与安全模式作为动作模式,切换所述通常模式与所述安全模式而动作,仅在所述安全模式时使用所述安全域而动作,所述数据处理装置还具备切换部,该切换部切换所述通常模式与所述安全模式,在所述通常模式下动作的程序,通过经由所述切换部将规定的处理请求通知给在所述安全模式下动作的程序,从而能访问在所述安全模式下动作的程序,所述调试对象程序存储在所述安全域中,所述第2取得部件在所述安全域中,从所述调试对象程序执行所述验证值的所述取得,所述判定部件在所述安全域中执行所述判定。
根据上述构成,所述调试对象程序存储在安全域中,另外,所述验证值由所述第2取得部件在安全域中取得。
因此,所述验证值在数据处理装置取得其的过程中,难以被利害关系人员或非法者等任何人知道。因此,非法者等即便获得程序,也难以确定具有可执行程序的调试处理的识别符的调试处理部,所以可减小非法调试程序的可能性。另外,由于程序中包含所述验证值,所以也不必将用于控制可否调试的信息事先存储在数据处理装置中。
在该构成中,也可以是,所述调试处理部在所述安全域之外在所述通常模式下动作,所述数据处理装置还具备在所述安全模式下执行调试处理的安全调试器,所述安全调试器包含于所述安全域中,所述调试处理部输出所述调试对象程序的调试处理请求,所述控制部件,在所述调试处理部输出所述调试处理请求时,使所述判定部件执行所述判定,当判定为不允许时,禁止所述安全调试器对涉及所述调试处理请求的所述调试对象程序进行调试处理。
根据上述构成,由于具备在通常模式下动作的调试处理部、和在安全模式下动作的安全调试器,所以即便调试处理部被非法地篡改等,也不影响安全调试器,可防止对在安全模式下动作的程序的非法解析。
另外,该构成中,也可以是,所述调试对象程序的所述规定部分中,包含表示对于构成所述调试对象程序的各部分允许或不允许访问的访问控制列表,所述第2取得部件包含访问控制列表取得部,该访问控制列表取得部取得所述调试对象程序的所述规定部分中包含的所述访问控制列表,所述数据处理装置还具备访问判定部件,该访问判定部件根据所述取得的所述访问控制列表,判定是否允许访问所述调试对象程序的所述一部分,所述访问判定部件在所述安全域中执行所述判定,所述控制部件,对于所述调试处理部输出的所述调试处理请求所涉及的所述调试对象程序,在所述判定部件判定为允许、且所述访问判定部件判定为不允许的情况下,禁止所述安全调试器执行所述一部分的所述调试处理,在所述判定部件判定为允许、且所述访问判定部件判定为允许的情况下,使所述安全调试器执行所述一部分的调试处理。
由此,程序的权利者可使得该程序中包含想保密的信息的部分不被调试。
另外,在程序协同动作的情况下,也可如下构成。
即,所述调试处理部具有对所述通常程序和与所述通常程序协同的所述调试对象程序执行调试处理的功能,所述调试处理部进行的所述调试对象程序的调试处理,通过所述调试处理部输出调试处理请求、并且所述调试处理部经所述切换部受理由所述安全调试器对所输出的所述调试处理请求执行的调试处理的结果来执行。
由此,无论协同动作的程序是在通常模式下动作的程序还是在安全模式下动作的程序,均可由在通常模式下动作的调试处理部同时执行调试处理,所以可高效地开发协同动作的程序。
但是,由于不能从在通常模式下动作的程序直接访问在安全模式下动作的程序,所以在安全模式下以通常模式动作的调试处理部不知从何时起在安全模式下调试对象程序动作。因此,对程序的开发者来说,难以调试在安全模式下动作的调试对象程序。
因此,也可以是,所述调试处理部输出识别该调试处理部所附着的通常程序的处理识别符,所述安全调试器,将位于与从所述调试处理部输出的所述处理识别符所示的通常程序协同动作的调试对象程序的入口点的命令,变更为断开命令。
由此,若调试对象程序开始动作,则利用中断命令暂时中止动作,所以可对程序的开发者执行调试处理执行用的设定等。
另外,也可以是,所述数据处理装置,当在所述安全模式下在执行所述调试对象程序过程中检测出调试例外时,经所述切换部向所述调试处理部通知调试例外的发生,所述调试处理部,当从所述切换部受理所述调试例外的发生通知时,输出表示调试处理的执行结果的调试信息的取得请求,所述安全调试器,当所述判定部件对于所述调试对象程序做出肯定的判定时,若受理所述调试信息的取得请求,则执行所述调试对象程序的调试处理,取得调试信息,经所述切换部将取得的调试信息输出到所述调试处理部。
由此,程序的开发者若允许调试处理,则可知道对安全模式下动作的程序的调试处理的结果。
另外,也可以是,所述数据处理装置还具备:第1结果显示部,将所述通常程序的调试处理的结果显示于第1显示区域;和第2结果显示部,将与所述通常程序的协同所涉及的调试对象程序的调试处理的结果,显示于与所述第1显示区域不同的第2显示区域,所述第1和第2结果显示部,在所述协同所涉及的调试对象程序与所述通常程序协同动作时,在所述第1显示区域和所述第2显示区域中,显示所述调试对象程序与所述通常程序的调试处理的结果。
由此,程序的开发者可在确认通常程序与调试对象程序双方的动作的同时,进行调试。
另外,也可以是,在所述通常模式下,通常OS动作,在所述安全模式下,保护OS动作,所述通常程序作为所述通常OS生成的处理,在所述通常模式下动作,所述调试处理部作为在所述通常OS中动作的调试器,在所述通常模式下动作,所述调试对象程序作为所述保护OS生成的处理,在所述安全模式下动作,所述安全调试器被实现为所述保护OS具有的功能。
另外,也可以是,所述控制部件,当所述调试处理部输出所述调试处理请求时,使所述判定部件执行所述判定,当判定为不允许时,向所述调试处理部输出表示禁止执行所述调试处理的不可调试处理通知。
由此,使用调试处理部进行调试的用户,在不允许调试对象程序的调试的情况下,可知道该情况。
另外,上述程序可如下生成。
即,一种程序生成装置,其特征在于:具备:程序取得部件,取得包含应保密的保护信息的程序;验证值生成部件,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和保护程序生成部件,向所述程序附加所述验证值生成部件对所述程序生成的验证值,生成保护程序。
这里,也可以是,所述程序生成装置还包含访问控制列表取得部,该控制列表取得部取得表示对于构成所述程序的各部分允许或不允许访问的访问控制列表,所述保护程序生成部件包含访问控制列表附加部,该访问控制列表附加部将所述取得的访问控制列表附加于所述程序。
根据该构成,由于程序的开发者自身使所述验证值包含于程序中,所以可如开发者希望的那样,控制程序的调试处理的执行。
另外,本发明是一种数据处理方法,控制调试处理部的调试处理的执行,其特征在于:包含:第1取得步骤,取得识别所述调试处理部的识别符;第2取得步骤,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;判定步骤,对从所述调试对象程序取得的所述验证值与在所述第1取得步骤中取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和控制步骤,当判定为不允许时,禁止对所述调试对象程序执行调试处理。
另外,本发明是一种计算机可读取的控制程序,在数据处理装置中执行,该数据处理装置控制调试处理部的调试处理的执行,其特征在于:包含:第1取得步骤,取得识别所述调试处理部的识别符;第2取得步骤,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;判定步骤,对从所述调试对象程序取得的所述验证值与在所述第1取得步骤中取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和控制步骤,当判定为不允许时,禁止对所述调试对象程序执行调试处理。
另外,本发明是一种集成电路,用于数据处理装置,该数据处理装置控制调试处理部的调试处理的执行,其特征在于:具备:第1取得部,取得识别所述调试处理部的识别符;第2取得部,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;判定部,对从所述调试对象程序取得的所述验证值与由所述第1取得部取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和控制部,当判定为不允许时,禁止对所述调试对象程序执行调试处理。
另外,本发明是一种程序生成方法,其特征在于:包含:程序取得步骤,取得包含应保密的保护信息的程序;验证值生成步骤,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和保护程序生成步骤,向所述程序附加所述验证值生成步骤中对所述程序生成的验证值,生成保护程序。
另外,本发明是一种计算机可读取的控制程序,用于使程序生成装置执行生成程序的处理,其特征在于:包含:程序取得步骤,取得包含应保密的保护信息的程序;验证值生成步骤,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和保护程序生成步骤,向所述程序附加所述验证值生成步骤中对所述程序生成的验证值,生成保护程序。
另外,本发明是一种集成电路,用于生成程序的程序生成装置,其特征在于:包含:程序取得部,取得包含应保密的保护信息的程序;验证值生成部,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和保护程序生成部,向所述程序附加所述验证值生成部对所述程序生成的验证值,生成保护程序。
附图说明
图1是本发明实施方式1的数据处理装置1的示意图。
图2是调试功能7的详细框图。
图3是调试器ID判定部22的详细框图。
图4是切换设备驱动器13的框图。
图5是表示加密后的保护程序73的图。
图6是表示访问判定部23取得的访问控制列表53的数据构造一例的图。
图7是表示调试功能7的动作图。
图8是本发明实施方式1的不执行调试时的通常程序12和保护程序8的执行的流程图。
图9是表示通常程序12需要执行保护程序8的功能时的动作的流程图。
图10是表示通常程序12a结束保护程序8a的使用时的动作的流程图。
图11是表示调试器14执行对通常程序12与保护程序8的调试处理用的预处理的流程图。
图12是在保护程序8a执行中发生基于断点的调试例外、并使用调试器14对保护程序8a执行调试处理时的流程图。
图13是说明本发明的保护程序8的生成方法用的图。
图14是保护程序生成装置72的构成图。
图15是表示保护程序生成装置72生成加密化的保护程序73的处理的流程图。
图16是说明调试器ID管理服务器执行的调试器ID的管理方法的图。
图17是表示调试器ID管理服务器81用于调试器ID管理的调试器ID管理文件90的数据构造的图。
图18是表示用于显示程序的动作信息的图形用户界面(GUI)的图。
图19是本发明实施方式5的基于字符的用户界面(CUI)的显示方法的说明图。
符号说明
1 数据处理装置
2 LSI
3 切换机构
6 保护OS
7 调试功能
8 保护程序
11 通常OS
12 通常程序
13 切换设备驱动器
14 调试器
15 调试器用切换设备驱动器
21 控制部
22 调试器ID判定部
23 访问判定部
24 安全调试器
25 调试信息取得部
26 断点设定部
27 寄存器值取得设定部
28 存储器值取得设定部
31 调试器ID比较部
32 调试器ID运算部
33 比较值保持部
41 切换操作部
42 请求分配部
43 通常请求受理部
44 调试请求受理部
51 保护程序主体
52 允许调试器ID信息
53 访问控制列表
54 解密用头信息
60 访问控制列表
61 开始地址
62 结束地址
63 访问允许信息
64 符号名
65 访问允许信息
71 保护程序源代码
72 保护程序生成装置
73 加密的保护程序
74 允许调试器ID存储文件
75 访问控制列表存储文件
76 秘密信息区域存储文件
77 编译器
78 连接程序
79 保护程序化工具
81 调试器ID管理服务器
82 保护程序开发装置
83 保护程序解析装置
90 调试器ID管理文件
91 管理序号
92 调试器ID
93 保护程序的开发者名
94 联络地址
150 GUI
151 代码显示部
152 寄存器显示部
153 存储器显示部
154 符号显示部
155 观察点显示部
156 调用堆栈显示部
157 窗口标题显示部
158 菜单显示部
159 模式显示部
160 通常程序用调试窗口
161 保护程序用调试窗口
170 CUI
171 调试处理结果的显示例
具体实施方式
下面,参照附图来说明本发明的一实施方式。
1实施方式1
图1是本发明实施方式1的数据处理装置1的示意图。数据处理装置1由具有保护机构的LSI2与切换机构3、保护OS6、调试功能7、保护程序8(8a、8b、..)、通常OS11、通常程序12(12a、12b、..)、切换设备驱动器13(下面称为‘切换设备驱动器13’)、调试器14、调试器用切换设备驱动器15(下面称为‘调试器用切换设备驱动器15’)构成。
1.1实施方式1中的各功能块的说明
1.1.1 LSI2
图1中,LSI2搭载用于保护程序不被非法解析或篡改的机构、即保护机构。保护机构具有防止从外部非法访问的硬件机构。作为保护机构的具体实例,例如暂时截断从外部访问等。
LSI2具备保护模式(或也可称为‘安全模式’)与通常模式,作为动作模式,切换保护模式与通常模式来动作。动作模式的切换使用后述的切换机构3来执行。
所谓保护模式是由保护机构保护程序不被非法解析或篡改的特殊模式,保护OS6或保护程序8动作。另一方面,所谓通常模式是不由保护机构保护程序的一般模式,通常OS11或通常程序12动作。
保护OS6使用切换机构3来执行从保护模式到通常模式的切换。位于通常OS11中的切换设备驱动器13等使用切换机构3来执行从通常模式到保护模式的切换。
1.1.2切换机构3
切换机构3具有受理来自保护OS6或通常OS11的动作模式切换指示、执行动作模式切换所需的处理用的硬件机构。动作模式的切换处理例如可适用非专利文献1中记载的技术。
此时,切换机构3无论在通常模式还是在保护模式下均动作,具有通常模式和保护模式均可访问的存储区域。在通常模式下LSI2动作的情况下,使从通常模式下动作的通常程序12向保护模式下动作的保护程序8的请求等暂时存储在上述存储区域中。在切换了动作模式之后,保护OS6或保护程序8读出所述存储的信息,由此实现通常模式下动作的程序与保护模式下动作的程序间的通信。
1.1.3保护OS6
保护OS6是LSI2为保护模式时的、控制数据处理装置1的动作的OS。
保护OS6执行在保护模式下动作的保护程序8的管理(处理管理)或资源管理、使用存储器管理单元(MMU)的保护程序间的访问控制、中断处理、使用切换机构3的向通常模式的切换处理、为了调试保护程序而使用调试功能7的调试处理等。
1.1.4调试功能7
调试功能7在调试器14执行对保护程序8的调试处理时,控制该调试处理的执行。
即,当调试器4调试保护程序8时,调试功能7判定是否允许调试器14调试保护程序8。在判定的结果为允许的情况下,根据来自调试器14的请求,对保护程序8执行调试信息的取得或断点(breakpoint)的设定、寄存器值或存储器值的取得、设定等处理。所谓调试信息是程序调试用的信息,表示目标文件中的程序代码与源代码的对应关系等。另外,调试功能7使用停止标志(flag),执行保护程序8的调试处理的预处理。调试功能7的细节如后所述。
1.1.5保护程序8
保护程序8是包含必需保护不被非法解析或篡改的信息(下面称为秘密信息)的应用程序。
作为秘密信息的实例,有用于对加密的数字内容进行解密的解密密钥或解密算法、存储涉及再现或拷贝的权利的权利信息等。另外,为了防止非法解析,保护程序8在开始执行之前以加密的状态被保持,在开始执行时由保护OS6解密。
1.1.5.1保护程序8的补充
保护程序8在开始执行之前,如图5所示的加密的保护程序73那样,以加密的状态被保持。
如图5所示,加密的保护程序73由保护程序主体51、允许调试器ID信息52、访问控制列表53、解密用头信息54构成。当使用解密用头信息54对加密的保护程序73进行解密时,得到保护程序8。保护程序8由保护程序主体51、允许调试器ID信息52、和访问控制列表53构成。
1.1.5.2保护程序主体51
保护程序主体51是程序的执行代码。
1.1.5.3允许调试器ID信息52
允许调试器ID信息52是用于判定是否允许对保护程序8的调试处理的验证值。在本实施方式中,设所谓允许调试器ID信息52表示允许对保护程序8的调试处理的调试器的识别符(调试器ID)。即,具有与允许调试器ID信息52所示的值相同的调试器ID的调试器,能够执行对保护程序8的调试处理。当调试功能7执行上述判定时,使用该允许调试器ID信息52。
1.1.5.4访问控制列表53
访问控制列表53是表示是否允许对保护程序8的规定区域进行访问的列表。所谓访问控制列表53主要是将构成保护程序8的各部分分别与是否允许访问相对应的列表。访问控制列表53的细节如后所述。
1.1.5.5解密用头信息54
解密用头信息54表示加密的保护程序73的解密所需的信息。例如,解密用头信息54中包含加密中所用的算法、或将保护程序8加载到存储器的地址等。在加密的算法中,附加解密所需的信息并执行程序解密的技术以往已被公知,不是本发明的主要构成要件,所以省略详细说明。
1.1.5.6各数据的配置
保护程序8中、允许调试ID信息52或访问控制列表53或保护程序主体51可任意配置。具体而言,也可将如何配置允许调试器ID信息52等信息,作为头信息等信息,附加于程序。
另外,也可事先定义包含于保护程序的哪个部分中,根据该定义,数据处理装置1的调试功能7读出允许调试器ID信息52。例如,事先定义表示允许调试ID信息52的比特数(或字节数)、与表示访问控制列表53的比特数,将从保护程序8的开头起、到规定比特为止,设为允许调试ID信息52,将从规定比特其到后续的规定比特为止,设为访问控制列表53。
在存在多个由允许调试器ID信息52与访问控制列表53构成的组的情况下,也可在保护程序的开头包含表示有几个这些组的信息。
另外,也可在解密用头信息54中包含在保护程序8内如何配置这些允许调试器ID信息52等。调试功能7通过读取表示这些允许调试器ID信息52等在保护程序8中所占位置的信息等,可取得允许调试器ID信息52或访问控制列表53。
保护程序8的细节在实施方式2中与其生成方法一起详细说明。
1.1.6通常OS11
通常OS11是LSI2为通常模式时的、控制数据处理装置1的动作的OS。
即,通常OS11在通常模式下动作时,执行在通常模式下动作的通常程序12的管理(处理管理)或资源管理、中断处理等。
1.1.7切换设备驱动器13
切换设备驱动器13作为通常OS11的设备驱动器动作,当通常程序12执行与保护程序8的通信时使用。虽然如后所述,但在调试器14执行与调试功能7的通信时,利用调试器用切换设备驱动器15。
具体而言,切换设备驱动器13执行通常程序12与保护程序8之间的通信数据的传递处理、和从通常模式向保护模式的切换处理。所谓通信数据的传递处理主要是受理通常程序12输出的数据,经由切换机构3,输出到保护程序8,以及,经由切换机构3,取得从保护程序8输出的数据,将取得的数据输出到通常程序12的处理。
切换设备驱动器13的细节如后所述。
1.1.8调试器用切换设备驱动器15
调试器用切换设备驱动器15作为通常OS11的设备驱动器动作,当调试器14执行与调试功能7的通信时使用。
调试器用切换设备驱动器15执行调试器14与调试功能7的通信数据的传递处理、和从通常模式向保护模式的切换处理。
1.1.9通常程序12
通常程序12(12a、12b、..)是在通常OS11上动作的应用程序。
通常程序12利用切换设备驱动器13与在保护模式下动作的保护程序8执行通信,与保护程序8协同动作。
1.1.10调试器14
调试器14具有对通常程序12执行调试处理的功能、和对保护程序8执行调试处理的功能。调试器14具有作为用于识别自身的识别符的调试器ID。当调试功能7判定是否允许调试时,使用该调试器ID。另外,调试器14的调试器ID的管理等在实施方式3中详细说明。
调试器14调试通常程序12的功能例如通过与Linux(注册商标)中使用的GDB等应用程序调试器一样的功能来实现。
另外,所谓对保护程序8执行调试处理的功能是如下功能,即,调试器14经调试器用切换设备驱动器15与保护OS6的调试功能7通信,调试功能7对保护程序8执行调试信息的取得或断点的设定、寄存器值或存储器值的取得、设定等调试处理,受理该调试处理的结果。
在下面的说明中,调试器14与通常模式下动作的通常程序12连接(attach),对所连接的通常程序(例如通常程序12a)和与该通常程序协同动作的保护程序(例如保护程序8a)执行调试处理。
本实施方式1的调试器14为在通常OS11上动作的应用程序调试器,但不限于此,例如也可以是在Linux(注册商标)中使用的KGDB等内核模式调试器,可执行通常模式或保护模式下动作的设备驱动器的调试。
1.2调试功能7的详细说明
下面,说明‘1.1.4调试功能7’中说明的调试功能7的细节。
图2是调试功能7的详细框图。调试功能7具有控制部21、调试器ID判定部22、访问判定部23、安全调试器24。安全调试器24具有调试信息取得部25、断点设定部26、寄存器值取得设定部27、存储器值取得设定部28。
如‘1.1.5保护程序8’中所述,保护程序8中包含允许调试器ID信息52与访问控制列表53,如‘1.1.10调试器14’中所述,调试器14具有调试器ID。
在下面的调试功能7的说明中,对于调试对象的保护程序,不将哪个程序特定为调试对象,统称为调试对象的保护程序8来进行说明。
1.2.1调试器ID判定部22
图2中,调试器ID判定部22判定是否允许调试器14对调试对象的保护程序8执行调试处理。
即,调试器ID判定部22取得调试器14具有的调试器ID、和调试对象的保护程序8中包含的允许调试器ID信息52。比较取得的调试器ID与允许调试器ID信息52。按照该比较结果,执行是否允许调试器14执行调试对象的保护程序8的调试(即由调试器14对调试对象的保护程序执行调试处理)的判定。
1.2.1.1调试器ID判定部22的详细说明
图3是调试器ID判定部22的详细框图。
如图3所示,调试器ID判定部22具有调试器ID比较部31、与调试器ID运算部32、比较值保持部33。调试器ID判定部22判定调试器14的调试器ID与调试对象的保护程序8中包含的允许调试器ID信息52所示的值是否一致。
具体而言,如图3所示,调试器ID运算部32受理调试器14的调试器ID与调试对象的保护程序8中包含的允许调试器ID信息52。从调试器ID中减去允许调试器ID信息52所示的值。将减法的结果作为运算结果,输出到调试器ID比较部31。
调试器ID比较部31比较调试器ID运算部32的运算结果与比较值保持部33保持的比较值,在一致的情况下,将‘可调试’通知给控制部21,在不一致的情况下,将‘不可调试’通知给控制部21。比较值保持部33保持“0”,作为用于与调试器ID运算部32的运算结果比较的比较值。
1.2.1.2调试器ID判定部22的补充说明
本实施方式1的调试器ID判定部22判定调试器14的调试器ID与调试对象的保护程序8中包含的允许调试器ID信息52所示的值是否一致,但不限于判定调试器ID的一致。即,调试器ID运算部32除减法之外,也可执行乘法或加密解密运算。另外,比较值保持部33也可保持“0”以外的值。
主要是,调试器ID判定部22将调试器14的识别符与调试对象的保护程序8中包含的验证值作为运算符,执行规定的运算,若其结果与比较值保持部33保持的比较值一致,则判定为‘可调试’,若不一致,则判定为‘不可调试’。
另外,也可以是在未图示的调试器ID保持部中事先保持保护程序8的允许调试器ID信息52所示的值,调试器ID判定部22比较从调试器14受理到的调试器14的调试器ID与调试器ID保持部中保持的值。此时,调试器ID运算部32不特别执行运算。
1.2.2访问判定部23
返回图2继续说明。
访问判定部23在调试器14对调试对象的保护程序8的规定区域请求访问的情况下,判定是否允许该访问。
即,访问判定部23从调试对象的保护程序8取得访问控制列表53,根据取得的访问控制列表53,判定是否允许调试器14访问要访问的区域。
1.2.2.1访问控制列表53的详细说明
这里,说明访问控制列表53的细节。
图6是表示访问判定部23取得的访问控制列表53的数据构造一例的图。
访问控制列表53由执行访问控制的区域、和涉及该区域的访问允许信息两个部分构成。在下面的说明中,说明以存储器地址执行访问控制时的访问控制列表53a、与利用符号执行访问控制时的访问控制列表53b。所谓符号(symbol)是识别程序中包含的变量或函数等的识别符。
1.2.2.2由存储器地址执行访问控制的情况
图6(a)是由存储器地址指定执行访问控制的区域时的访问控制列表53a的数据构造,执行访问控制的区域由开始地址与结束地址指定。
如图6(a)所示,访问控制列表53a的1条记录包含开始地址61a、结束地址62a与访问允许信息63a。
开始地址61a与结束地址62a表示执行访问控制的存储器区域的开始地址与结束地址。
访问允许信息63a表示是否允许对访问开始地址61a与结束地址62a所示的存储器区域进行访问。在允许的情况下,例如以1比特的信息表示‘可访问’,在不允许的情况下,例如以1比特的信息表示‘不可访问’。访问控制列表53a中包含多个由开始地址61a和结束地址62a所表示的存储器区域的组,这些组的每一个中对应存储是否允许访问。
在列表的开头,将未由开始地址61a与结束地址62a所示的区域定义为‘default’(缺省)。在本实施方式中,设对‘default’区域的访问为‘不可访问’。
另外,开始地址61a等所示的地址在本实施方式中是相对地址。即,保护程序8的解密用头信息54中示出将保护程序8加载到存储器时的存储器地址,开始地址61a等示出将该存储器地址的开头设为0的相对地址。当然,开始地址61a等所示的地址也可以是存储器的绝对地址。
1.2.2.3由存储器地址执行访问控制时的动作
访问判定部23取得访问控制列表53a与保护程序8a的调试信息。另外,使用保护程序8a的调试信息,将调试器14请求访问的符号变换为地址。
访问判定部23从列表的上方开始,顺序判定变换后的地址是否包含于访问控制列表53a中的开始地址61a和结束地址62a所示的存储器区域的每个中。若判定为包含,则取得与该区域对应的访问允许信息63a,将访问允许信息63a所示的信息、即‘可访问’或‘不可访问’通知给控制部21。另外,在不包含于列表中的存储器区域中的情况下,根据与列表开头的‘default’对应的访问允许信息63a,将‘可访问’或‘不可访问’通知给控制部21。
1.2.2.4由符号执行访问控制的情况
图6(b)是由符号名指定执行访问控制的区域时的访问控制列表53b的数据构造,执行访问控制的区域由符号名指定。
如图6(b)所示,访问控制列表53b的1条记录包含符号名64b与访问允许信息65b。
符号名64b表示构成访问控制对象的符号的名称。
访问允许信息65b表示是否允许访问符号名64b所示的符号。
如图6(b)所示,在访问控制列表53b中,对每个符号示出是否允许访问。
在列表的开头,将未由符号名64b所示的符号定义为‘default’。在本实施方式中,设对‘default’符号的访问为‘不可访问’。
1.2.2.5由符号执行访问控制时的动作
访问判定部23取得访问控制列表53b。从列表的上方开始顺序判定调试器14请求访问的符号名称是否与访问控制列表53b中的符号名64b所示的符号名一致。在与列表中的符号名一致的情况下,取得该符号名所对应的访问允许信息65b,将访问允许信息65b所示的信息、即‘可访问’或‘不可访问’通知给控制部21。在与列表中的符号名不一致的情况下,根据与列表开头的‘default’对应的访问允许信息65b,将‘可访问’或‘不可访问’通知给控制部21。
1.2.2.6补充说明
本实施方式1的访问控制列表53a、53b在其列表的开头,将未由访问控制列表53a、53b所示的符号作为‘default’,对应于‘default’存储访问允许信息63a、63b,但不限于此。
即,在访问判定部23中,也可在访问控制列表53a、53b中未包含的存储器区域或符号名的情况下,始终判定为‘可访问’,或相反始终判定为‘不可访问’。
另外,调试器14利用符号来请求访问,但不限于符号。例如,调试器14也可利用存储器的地址来指定访问的区域。
此时,在上述实例中使用了访问控制列表53a的访问允许判定中,执行将从调试器14指定的符号暂时变换为地址的处理,但也可利用从调试器14指定的地址直接判定。
1.2.3安全调试器24
安全调试器24对应于来自调试器14的委托,执行各种调试处理。
安全调试器24包含调试信息取得部25、断点设定部26、寄存器值取得设定部27、存储器值取得设定部28。
作为调试处理,由调试信息取得部25执行从调试对象的保护程序8取得符号信息等调试信息的处理。
另外,由断点设定部26执行在调试对象的保护程序8中设定断点的处理。
由寄存器值取得设定部27取得调试对象的保护程序8正使用的寄存器值,或设定调试对象的保护程序8使用的寄存器值。
由存储器值取得设定部28取得调试对象的保护程序8正使用的存储器值,或设定调试对象的保护程序8使用的存储器值。
1.2.4控制部21
控制部21根据调试器ID判定部22与访问判定部23的判定结果,确认是否允许调试器14对调试对象的保护程序8执行调试处理。
若确认的结果是允许执行调试处理,则控制部21对应于来自调试器14的委托,调用安全调试器24中包含的各处理(调试信息取得部25、断点设定部26、寄存器值取得设定部27、存储器值取得设定部28)。
控制部21在调试器ID判定部22判定为不允许调试器14调试处理调试对象的保护程序8的情况下、或由访问判定部23判定为对禁止调试器14访问的区域进行访问的情况下,不处理从调试器14委托的请求。即,不调用安全调试器24中包含的各处理。此时,为了将不调用安全调试器24中包含的各处理这一情况通知给调试器14,也可向调试器14输出表示不允许执行调试处理的不可调试处理通知。由此,调试器14可执行向调试器14的用户示出不允许执行调试处理等的处理。
如上所述,说明了使用允许调试器ID信息52与访问控制列表53来进行调试处理的执行的控制,但保护程序8中包含的允许调试器ID信息52所示的调试器ID可以是一个,也可以是多个。通过包含多个调试器ID,可允许多个开发者进行调试处理。例如,考虑多个开发者共同开发程序的情况等。
另外,保护程序8中也可包含将允许调试器ID信息52与访问控制列表53对应的多个组。
不用说,也可包含多个含有1个调试器ID的允许调试器ID信息52,使访问控制列表53对应于各个允许调试器ID信息52。此时,访问控制列表53表示对各个允许调试器ID信息52的每个不同的访问限制即可。由此,可对每个调试器ID,施加不同的访问限制。
控制部21使调试器ID判定部22对所保持的多个允许调试器ID信息52所示的调试器ID的每个执行判定,若存在判定为调试允许的调试器ID,则委托访问判定部23进行基于该调试器ID所对应的访问控制列表的访问判定。在将全部的调试器ID判定为不允许调试的情况下,不处理从调试器14委托的请求。
1.3切换设备驱动器13的详细说明
下面,说明‘1.1.7切换设备驱动器13’中说明的切换设备驱动器13的细节。
图4是切换设备驱动器13的框图。切换设备驱动器13具有切换操作部41、请求分配部42、通常请求受理部43、调试请求受理部44。
1.3.1切换操作部41
切换操作部41通过保存通常模式下使用的寄存器值等,保存通常模式下的数据处理装置的状态,之后,使用切换机构3,执行从通常模式切换到保护模式的处理。
并且,当从保护模式切换到通常模式时,执行所保存的状态的恢复处理,将来自切换时发生的保护模式的请求通知给请求分配部42。作为该请求,有基于调试例外的调试请求、与对通常程序12的请求。
1.3.2请求分配部42
请求分配部42判断来自保护模式的请求是基于保护模式动作中发生的调试例外的调试请求、还是对通常程序12的请求。
在判断的结果是调试请求的情况下,向调试请求受理部44通知调试请求,在是对通常程序12的请求的情况下,向通常请求受理部43通知来自保护模式的请求。
1.3.3通常请求受理部43
通常请求受理部43对保护OS6或保护程序8等保护模式下动作的程序与通常程序12之间的通信,进行中介。
即,将来自保护模式下动作的程序的请求通知给通常程序12,或相反,将来自通常程序12的请求通知给保护模式下动作的程序。
1.3.4调试请求受理部44
调试请求受理部44将因保护程序8中设定的断点而发生的调试例外,通知给正在调试与保护程序8协同动作中的通常程序12的调试器14。
通过如上所述构成切换设备驱动器13,可在对通常程序12与保护程序8之间的通信进行中介的同时,将保护程序8发生的调试例外通知给适当的调试器14。由此,可防止将保护程序8中包含的秘密信息通知给无关的调试器而泄漏秘密信息。
1.3.5切换设备驱动器13的补充
本实施方式1的切换设备驱动器13,除切换操作部41以外,由请求分配部42及通常请求受理部43、调试请求受理部44构成,但不限于这种构成。例如,也可以是切换设备驱动器13仅由切换操作部41构成,将请求分配部42及通常请求受理部43、调试请求受理部44作为库(library)包含在通常程序12中。此时,请求分配部42及通常请求受理部43、调试请求受理部44的动作变为执行在通常程序12的执行中调用的库。
1.4动作
下面,说明数据处理装置1的动作。
在下面的说明中,首先,在‘1.4.1调试功能7的动作’中说明也是本发明特征的调试功能7的动作。
接着,作为整体动作,在‘1.4.2不执行调试处理时的动作’中说明不执行调试处理时的动作。即,说明通常程序12与保护程序8的协同动作。
之后,在‘1.4.3调试处理的预处理’‘1.4.4调试处理’中,将调试器14对通常程序12与保护程序8执行调试处理时的动作、与其预处理一起加以说明。
由于保护程序8是在保护模式下动作的程序,所以在通常模式下动作的程序和调试器对保护程序8不能直接进行访问。因此,安全调试器24执行对保护程序8的调试处理,调试器14受理其结果。
1.4.1调试功能7的动作
图7是表示调试功能7的动作图。
调试器ID判定部22根据调试器14的调试器ID与保护程序8的允许调试器ID信息52,判定是否允许调试器14调试保护程序8(S101)。
控制部21根据调试器ID判定部22的判定结果,切换处理(S102)。即,在调试器ID判定部22的判定结果为‘不可调试’的情况下(S102:否),中止调试处理。
在调试器ID判定部22的判定结果为‘可调试’的情况下(S102:是),访问判定部23根据保护程序8的访问控制列表53,判定是否允许调试器14访问调试器14要访问的保护程序8的区域(S103)。
控制部21根据访问判定部23的判定结果,切换处理(S104)。即,在访问判定部23的判定结果为‘不可访问’的情况下(S104:否),中止调试处理。
在访问判定部23的判定结果为‘可访问’的情况下(S104:是),调试功能7调用安全调试器24的各处理部(调试信息取得部25、断点设定部26、寄存器值取得设定部27、存储器值取得设定部28),执行处理(S105)。
1.4.2不执行调试处理时的动作
图8是本发明实施方式1的不执行调试时的通常程序12和保护程序8的执行的流程图。
1.4.2.1保护程序8的加载处理
首先,说明保护程序8的加载处理。下面,设通常程序12与保护程序8协同动作。通常程序12经由作为通常OS11的设备驱动器的切换设备驱动器13与保护OS3,调用保护程序8。在下面的说明中,以通常程序12a与保护程序8a协同动作的情况为例进行说明。通常程序12b动作的情况或保护程序8b协同动作的情况也一样。
如图8所示,首先,启动通常程序12a。启动的通常程序12a作为用于将动作模式切换到保护模式的预处理,对切换设备驱动器13进行open(打开)(步骤S201)。所谓open是指切换设备驱动器13处于可与保护OS6等保护模式下动作的处理进行通信的状态。
通常程序12a为了使保护程序8a动作,指定加密的保护程序,经由切换设备驱动器13,将使涉及该指定的加密后的保护程序加载到存储器的请求,通知给保护OS6(步骤S202)。这里,若对加密过的保护程序进行解密,则生成保护程序8a。
保护OS6受理加密的保护程序的加载请求,从加密的保护程序的解密用头信息中,取得加载所需的信息(步骤S203)。在加载所需的信息中,包含加密的保护程序中包含的保护程序主体的加载目的地地址等、加密的保护程序解密所需的信息等。
保护OS6根据涉及取得的、加载所需的信息,对加密的保护程序进行解密。将利用解密得到的保护程序8a加载到以保护模式管理着的存储器区域(步骤S204),变为可执行保护程序8a的状态。
若变为可执行保护程序8a的状态,则经由切换设备驱动器13,从保护OS6返回到通常程序12a(步骤S205)。即,向通常程序12a移交处理的执行权,重新开始执行通常程序12a。
1.4.2.2保护程序8的执行
接着,说明当通常OS11中执行通常程序12a时,通常程序12a需要执行保护程序8a具有的功能时的处理。
图9是表示通常程序12需要执行保护程序8的功能时的动作的流程图。
在图9所示的处理说明中,设已执行上述图8所示的处理,处于可执行保护程序8的状态。
通常程序12a经由切换设备驱动器13,将保护程序8a的执行的请求通知给保护OS6(步骤S206)。上述执行的请求中示出保护程序8a应执行的命令或处理。
保护OS6受理保护程序8a的执行的请求,执行保护程序8a,执行对应于所述执行请求的处理(步骤S207)。
若保护程序8a结束处理,则经由保护OS6、切换设备驱动器13,从保护程序8a返回到通常程序12a(步骤S208)。若通常程序12a利用保护程序8a的处理结果,则经由切换机构3或切换设备驱动器13,在保护程序8a与通常程序12a之间,执行处理结果的传递。
每当需要执行保护程序8a具有的功能时,就执行从上述步骤S206至步骤S208的处理。
1.4.2.3保护程序8的使用的结束
下面,说明通常程序12a结束保护程序8a的使用时的动作。
图10是表示通常程序12a结束保护程序8a的使用时的动作的流程图。
如图10所示,若通常程序12a结束保护程序8a的使用,则通常程序12a经由切换设备驱动器13,将保护程序8a的删除请求输出到保护OS6(步骤S209)。删除请求中示出构成删除对象的保护程序8。在本实施方式中,利用删除请求删除保护程序8a。
保护OS6受理删除请求,删除保护程序8a(步骤S210)。之后,经由切换设备驱动器13,从保护OS6返回到通常程序12a。通过该删除操作,在再次加载保护程序8a之前,不能使用保护程序8a的功能。另外,由于作为明文状态的保护程序8a从存储器中消失,所以使之难以受到非法解析。
之后,通常程序12a中,若不必切换到保护模式,则对切换设备驱动器13进行close(关闭)(S211)。所谓close是切换设备驱动器13不执行与保护OS6等的通信的状态。
1.4.3调试处理的预处理
下面,说明调试器14对通常程序12与保护程序8执行调试处理时的动作。首先,说明调试处理的预处理。
1.4.3.1预处理
图11是表示调试器14执行对通常程序12与保护程序8的调试处理用的预处理的流程图。
在下面的说明中,设通常程序12a与保护程序8a协同动作,调试器14对通常程序12a与保护程序8a执行调试处理。
调试器14受理程序开发者的附着操作,为了对通常程序12a执行调试处理,附着于通常程序12a上(S301)。
调试器14为了与调试处理执行时以保护模式动作的调试功能7通信,对调试器用切换设备驱动器15进行open(S302)。
调试器14为了向调试功能7通知通常程序12a的处理ID,经由调试器用切换设备驱动器15,将通常程序12a的处理ID通知给以保护模式动作的调试功能7(S303)。
调试功能7保存所通知的处理ID,当执行保护程序8a时,将表示执行刚刚开始之后是否停止保护程序的停止标志设为有效(S304)。执行将停止标志设为有效的处理的理由在后述的‘1.4.3.2预处理的补充’中说明。停止标志是1比特的信息,存储在保护机构内寄存器或存储器等存储区域中。
调试器14从程序开发者受理涉及调试处理的操作,执行对通常程序12a的调试处理。若结束必要的处理,则调试器14从程序开发者受理程序重新开始执行的操作,重新开始执行作为调试对象的通常程序12a(S305)。
重新开始执行的通常程序12a对切换设备驱动器13进行open,经由切换设备驱动器13,向保护OS6请求保护程序8a的加载处理(S306)与保护程序8a的执行处理(S307)。
步骤S306的加载处理与图7所示的步骤S202、S203、S204基本一样。另外,步骤S307的执行处理与图8的步骤S206、S207、S208基本一样。不同的是当调试器14动作时,调试功能7为了判断通常程序12a是否被调试,将通常程序12a的处理ID与各处理中传递的数据一起通知(S303)。
另外,当保护OS6受理保护程序8a的执行请求时,保护OS6向调试功能7请求执行预处理(S308)。调试功能7受理请求,执行预处理。这里,所谓预处理是指调试功能7判断对应于处理ID的停止标志是否有效(S309),在有效的情况下(S309:是),将位于保护程序8a的入口点的命令变更为断开(break)命令(S310)。若停止标志不是有效(S309:否),则调试功能7不变更入口点的命令。
保护OS6执行保护程序8a(S311)。
1.4.3.2预处理的补充
在上述动作中,在步骤S304中,使停止标志有效,但执行该处理主要是为了程序开发者能容易调试。
下面,示出执行这种处理的理由,在本实施方式1中,如不执行调试时的处理的说明中所述的那样,保护程序8a在被通常程序12a调用时被加载,不需要时,则从存储器上删除。这里,由于本实施方式1的程序从执行通常程序12a起开始,所以程序开发者难以确认执行已被切换到保护程序8a这一情况。
另外,本实施方式1的调试器14附着于通常程序,所以程序开发者也不能对保护程序8a直接设定断点,难以调试保护程序8a。
因此,为了让程序开发者知道处理已移动到保护程序8a,对保护程序8a提供可设定断点的机会等,设当读出保护程序8a时,停止处理。
1.4.4调试处理
图12是在保护程序8a执行中发生基于断点的调试例外、并使用调试器14对保护程序8a执行调试处理时的流程图。
1.4.4.1调试处理
如图12所示,在保护程序8a执行中,若发生基于保护程序8a中设定的断点的调试例外,则向保护OS6通知调试例外(S401)。
保护OS6受理调试例外的通知,向切换设备驱动器13通知调试例外的发生(S402)。
切换设备驱动器13若受理调试例外的发生通知,则为了让调试器14执行调试处理,由调试请求受理部44向调试器14请求调试处理执行(S403)。
调试器14若受理调试处理执行的请求,则为了向程序开发者提供调试信息,经由调试器用切换设备驱动器15,向保护OS6请求取得调试信息(S404)。此时,还向保护OS6请求调试器14的调试器ID、或未图示的调试用通信区域的通知。这里,调试用的通信区域是通常模式与保护模式双方能访问的区域,在从保护模式向通常模式传递调试信息时使用。
保护OS6向调试功能7请求取得调试信息(S405)。
调试功能7利用调试器ID判定部22和访问判定部23,判定是否允许对保护程序8a的调试处理、和对保护程序8a的涉及调试处理的规定部分的访问(S406)。
在步骤S406中,在判定为允许调试处理和访问的情况下(S406:是),则调试信息取得部25取得保护程序8a的调试信息,将调试信息拷贝到调试用通信用区域(S407)。拷贝后,调试功能7经由保护OS6、调试器用切换设备驱动器15,将调试信息取得完成通知给调试器14,处理从调试功能7回到调试器14(S408)。
调试器14取得拷贝到调试用通信用区域的调试信息,通过显示于未图示的显示部中,向程序开发者示出调试信息(S409)。
之后,当程序开发者参照调试信息结束必要的处理时,调试器14从程序开发者受理规定的操作,经由切换设备驱动器13,向保护OS6请求重新开始执行作为调试对象的保护程序8a(S410)。
保护OS6受理重新开始执行的请求,重新开始执行保护程序8a(S411)。
之后,在再次发生调试例外的情况下,以同样的流程执行处理。
1.4.4.2调试处理的补充
在以上的实例中,说明了保护程序8a执行中发生基于断点的调试例外时的处理。此外,作为使用调试功能7的调试处理的模式(pattern),还可考虑各种方式。具体而言,由程序开发者请求断点的设定处理、或寄存器值、存储器值的设定或取得处理等其它调试处理,对应于该请求,调试功能7执行调试处理。在这些情况下,也以与上述一样的流程,由调试功能7(严格地讲,为安全调试器24具有的各功能部)执行处理,但由于基本的处理是一样的,所以省略详细说明。
在本实施方式1中,设当发生调试例外时,能进行对涉及该例外发生的保护程序8a的调试处理,但这不限于保护程序8a。也可进行对调试器14调试的通常程序12a等通常程序的调试处理。
2实施方式2
下面说明实施方式2。在实施方式2中,具体说明保护程序8的生成方法和生成保护程序8的程序生成装置。
2.1程序的生成方法的概要
图13是说明本发明的保护程序8的生成方法用的图。
保护程序8被加密生成。为了生成加密的保护程序73,使用保护程序源代码71、保护程序生成装置72、作为附加于保护程序的信息的允许调试器ID存储文件74与访问控制列表存储文件75、以及秘密信息区域存储文件76。
图13所示的保护程序源代码71是记述了保护程序8的动作的源代码。
保护程序生成装置72执行保护程序源代码71的编译与链接。向生成的执行文件附加允许调试器ID信息与访问控制列表,执行加密。并且,通过将解密所需的信息作为解密用头信息来附加,从而生成加密的保护程序73。具体如后所述。
加密的保护程序73是由保护程序生成装置72生成的程序。
允许调试器ID存储文件74与访问控制列表存储文件75,分别是包含对保护程序8执行调试时调试功能7或调试器14使用的允许调试器ID信息、访问控制列表的数据。
秘密信息区域存储文件76由程序中的各信息的区域、和表示涉及该区域的信息是否是秘密信息的秘密信息区分构成。
保护程序开发者制作保护程序源代码71。另外,将源代码中允许从调试器访问的区域与不允许的区域制作为访问控制列表,记录在访问控制列表存储文件75中。并且,将秘密信息的区域与非秘密信息的区域记录在秘密信息区域存储文件76中。允许调试器ID存储文件74另外获得。将获得的允许调试器ID存储文件74与保护程序源代码71、访问控制列表存储文件75、秘密信息区域存储文件76作为输入,使保护程序生成装置72动作。结果,生成加密的保护程序73。
2.2保护程序生成装置72的构成
图14是保护程序生成装置72的构成图。
保护程序生成装置72由编译器77、连接程序78、保护程序化工具79构成。
2.2.1编译器77
图14所示的编译器77编译所输入的保护程序源代码71,生成目标文件(object file)。制作表示变量或函数配置的符号信息、或目标文件中的程序代码与源代码的对应关系等,作为调试信息,附加于目标文件中。
2.2.2连接程序78
连接程序78将由编译器77生成的目标文件与库相链接,生成可执行的文件。并且,连接程序78生成表示在所生成的可执行文件中的何处配置何变量或函数的符号文件。
2.2.3保护程序化工具79
保护程序化工具79向连接程序78制作的可执行文件的头,附加输入到保护程序生成装置72的允许调试器ID存储文件74中存储的允许调试器ID信息、与访问控制列表存储文件75中存储的访问控制列表。并且,将秘密信息区域存储文件76中记载的各区域是否是秘密信息的信息附加于调试信息,生成保护程序。
保护程序化工具79利用由保护OS6与保护程序生成装置72共同保持的密钥,对生成的保护程序执行加密,附加加载保护程序的地址等,作为解密用头信息。
加密使用保护OS6与保护程序生成装置72共同保持的密钥(所谓公用密钥加密方式),但不用说,也可使用彼此保持不同密钥的公开密钥加密方式等。
在访问控制列表以符号名与访问允许信息的组的形式来提供的情况下,也可使用连接程序78输出的符号文件,从符号名求出配置该符号的区域,将访问控制列表的符号名变更到该区域(即表示可执行文件中的何处的信息)。
加密的保护程序73的构成如在实施方式1中使用图5说明的那样。加密的保护程序73由保护程序主体51与允许调试器ID信息52、访问控制列表53、解密用头信息54构成,将允许调试器ID信息52与访问控制列表53附加于保护程序主体51的头,形成加密构造。解密用头信息54由于存储着解密所需的数据,因此也可不加密。
2.3保护程序生成装置72的动作
下面,说明保护程序生成装置72生成加密的保护程序73的处理。
图15是表示保护程序生成装置72生成加密化的保护程序73的处理的流程图。
设保护程序源代码71、访问控制列表存储文件75、秘密信息区域存储文件76已由程序开发者制作。即,程序开发者记述保护程序源代码71。另外,决定源代码中不可执行调试器访问的区域与可执行调试器访问的区域,以制作访问控制列表,记述为访问控制列表存储文件75。将记载秘密信息的区域记述在秘密信息区域存储文件中。
设程序开发者另外获得允许调试器ID存储文件74。
说明保护程序生成装置72的动作,保护程序生成装置72受理保护程序源代码71、允许调试器ID存储文件74、访问控制列表存储文件75、和秘密信息区域存储文件76,作为输入(S501)。
保护程序生成装置72使用编译器77与连接程序78,执行输入的保护程序源代码71的编译与链接(S502)。
保护程序化工具79向通过保护程序源代码71的编译与链接而生成的保护程序主体51,附加访问控制列表存储文件75中存储的访问控制列表53、与调试器ID存储文件74中存储的允许调试器ID信息52(S503),并且,向调试信息追加秘密信息区域存储文件76中记载的各区域是否是秘密信息的信息,执行加密(S504)。
保护程序化工具79向加密的程序附加保护程序主体51的加载目的地地址等解密所需的信息,作为解密用头信息54,作为加密的保护程序73输出(S505)。
2.4实施方式2的补充说明
在上述说明中,设程序开发者执行向秘密信息区域存储文件76的写入,但不限于此。例如,也可由编译器等计算机程序自动执行这些访问控制列表或秘密信息存储文件的制作等。具体而言,也可对源代码,在秘密信息所在的部位事先赋予某个标记,编译器根据该标记的有无,执行向秘密信息存储文件的写入。
在上述说明中,保护程序生成装置72执行从保护程序源代码的编译至保护程序制作的全部处理,但不限于此。例如,也可由不同的装置来执行保护程序的生成与访问控制列表等的附加。此时,保护程序生成装置72构成为:编译和链接保护程序源代码71后生成保护程序主体51的装置、与取得生成的保护程序主体51后附加访问控制列表等的装置的组。在上述构成中,生成保护程序主体51的装置,作为输入只要有保护程序源代码71即可。
由于向附加访问控制列表等的装置提供保护程序主体51,所以不必输入保护程序源代码71。根据该构成,由于分别执行保护程序主体51的制作与访问控制列表等的附加,所以可通过将各个作业委托给不同的公司等,实现程序开发效率的提高。
3实施方式3
下面,说明实施方式3。在实施方式3中,具体说明如何管理调试器ID。在实施方式3中,设调试器ID由调试器ID管理服务器管理,来进行说明。
图16是说明调试器ID管理服务器执行的调试器ID的管理方法的图。
3.1构成的说明
3.1.1调试器ID管理服务器81
图16所示的调试器ID管理服务器81管理调试器ID。调试器ID的管理使用后述的调试器ID管理文件90来进行。
为了按照保护程序开发者是谁(或按照保护程序开发者使用的保护程序开发装置82)来控制调试处理可否执行,期望调试器ID为对每个保护程序开发者(或每个保护程序开发装置82)分别不同的值。因此,调试器ID管理服务器81需要以不向多个保护程序开发者(或保护程序开发装置82)赋予相同的调试器ID的方式,进行管理。
调试器ID管理服务器81是管理调试器ID的公司(调试器ID管理公司)具有的服务器(设为‘公司’,但不限于此,只要是管理调试器ID的管理者,则即便是公司以外的组织或个人也无妨)。
调试器ID管理服务器81根据来自保护程序开发装置82的请求,发行与过去发行的调试器ID不同的调试器ID,将存储了所发行的调试器ID的调试器ID存储文件,提供给保护程序开发装置82。另外,调试器ID管理公司制作具有对应于调试器ID的ID的调试器,提供给保护程序开发装置82。
3.1.2保护程序开发装置82
保护程序开发装置82使用保护程序生成装置72,制作保护程序。
具体而言,保护程序开发装置82从保护程序解析装置83受理调试器ID存储文件。取得所受理的调试器ID存储文件所示的调试器ID,作为允许调试器ID存储文件74,输入到实施方式2说明的保护程序生成装置72,由此,生成允许对所取得的调试器ID所示的调试器的调试的保护程序8。
保护程序开发装置82由开发保护程序的程序开发者(个人或组织)所有。
3.1.3保护程序解析装置83
保护程序解析装置83是用于执行保护程序中包含的差错解析的装置。保护程序解析装置83由个人或组织所有。
具体而言,保护程序解析装置83从调试器ID管理服务器81获得发行调试器ID,将获得的调试器ID存储文件提供给开发解析对象的保护程序的保护程序开发装置82。
若提供了调试器ID存储文件的保护程序开发装置82根据调试器ID存储文件生成保护程序,则从保护程序开发装置82获得可调试的保护程序,解析该保护程序。
3.2调试器ID管理文件90的数据构造
图17是表示调试器ID管理服务器81用于调试器ID管理中的调试器ID管理文件90的数据构造的图。
调试器ID管理文件90的1条记录由管理序号91、调试器ID92、保护程序的开发者名93与联络地址94构成。
管理序号91中存储管理调试器ID管理服务器81已发行的调试器ID用的序号。
调试器ID92中存储由管理序号91管理的已发行的调试器ID的值。为了能识别各程序开发者(或每个保护程序开发装置82),并且防止模仿调试器的调试ID执行调试处理的模仿攻击,期望调试器ID92为足够长的数值串。
保护程序的开发者名93中存储可申请发行调试器ID的程序开发者的名称。
联络地址94存储可申请发行调试器ID的程序开发者的联络地址。
3.3实施方式3的补充说明
在实施方式3中,调试器ID管理服务器81向保护程序开发装置82提供调试器,但调试器的提供目的地不限于保护程序开发装置82。例如,也可提供给保护程序解析装置83。
另外,设调试器ID管理文件90为管理已发行的调试器ID用的文件,但不限于已发行的调试器ID,也可与未发行的调试器ID一起管理。
并且,调试器ID管理文件90还管理已发行调试器ID的发行目的地的程序开发者名称或其联络地址,但也可仅管理已发行的调试器ID。
调试器未必从调试器ID管理公司提供,也可从调试管理公司委托开发调试器的其他人的服务器等提供。此时,其他人从调试器ID管理服务器81取得调试器ID的信息。
4实施方式4
在下面的实施方式中,说明如何显示上述调试器14等执行的调试处理的结果。
实施方式4是向实施方式1的调试器附加了将程序的动作信息显示于图形用户界面上的显示部件的实施方式。调试器主体的功能与实施方式1一样,所以省略说明。
这里,所谓程序的动作信息是指为了调试构成调试对象的程序而参照的信息、即与程序动作关联的信息。具体而言,在以下的实例中,动作信息指程序的代码、或执行程序的处理器的各寄存器的值、局部变量的符号名及其值、由符号指定的变量及其值、存储器的使用量等值、函数的调用层和以保护模式与通常模式哪个模式来动作的信息等。以实施方式1为例,保护程序8的动作信息根据调试器14经调试功能7取得的信息获得,通常程序12的动作信息根据调试器14直接取得的信息获得。
4.1GUI150a的说明
图18表示用于显示程序的动作信息的图形用户界面(GUI)。
图18(a)中,表示调试器14附着于通常程序12,调试通常程序12时的显示部件的画面构成,即GUI150a。另外,图18(b)中表示通常程序12执行保护程序8,调试通常程序12与保护程序8时的显示部件的画面构成,即GUI150b。
如图18(a)所示,GUI150a由代码显示部151、寄存器显示部152、存储器显示部153、符号显示部154、观察点(watch point)显示部155、调用堆栈(call stack)显示部156、窗口标题(window title)显示部157、菜单显示部158构成。
代码显示部151是用于显示调试对象的程序的代码的显示部,显示源代码或汇编码、机器语言。
寄存器显示部152中显示执行程序的处理器的各寄存器的值。
存储器显示部153中显示存储器的值。
符号显示部154显示调试对象的程序中、在停止的函数内使用的局部变量的符号名及其值。
观察点显示部155显示由符号指定的变量及其值。
调用堆栈显示部156显示调试对象的程序中、调用停止的函数前的调用层。
窗口标题显示部157是用于显示窗口的标题的显示部,显示调试器或调试对象的程序的程序名或程序的状态。
菜单显示部158显示调试器的菜单。作为菜单,有调试对象的程序的打开或附着、调试器的结束、设定调试器的动作或程序的动作信息显示方法的设定画面的显示、调试对象程序的执行或中断、重新开始、分步执行等。
模式显示部159是用于显示程序因断点等停止时、执行程序的模式的显示部,在通常程序执行中停止的情况下为了表示是通常模式,显示为‘通常模式’,在保护程序执行中停止的情况下为了表示是保护模式,显示为‘保护模式’。
4.2GUI150a的说明补充
在实施方式4中,为了显示通常程序12与保护程序8的哪个中发生调试例外,在模式显示部中显示为‘通常模式’或‘保护模式’,但不限于此。例如,模式的显示不限于‘通常模式’或‘保护模式’的字符串,只要是可明白是不同模式的显示均可。举具体实例,可以是图标等。并且,显示部位也不限于模式显示部,可由窗口整体显示,也可由窗口的颜色等区别。另外,也可另外设置模式显示用的窗口。
在这些显示部中,显示调试器14刚刚附着于通常程序之后、或通常程序被断点命令停止且可由调试器14调试的状态时、停止执行的通常程序的停止时刻的各种状态、或调试器14执行中调试器14的执行状态。并且,也可利用来自用户的输入等变更对寄存器或存储器、变量等设定的值。
4.3GUI150b的说明
如图18(b)所示,GUI150b由通常程序用调试窗口160与保护程序用调试窗口161构成。
通常程序用调试窗口160是用于显示通常程序12的各种信息的窗口。
保护程序用调试窗口161是用于显示保护程序的各种信息的窗口。不管哪个窗口(通常程序用调试窗口160、保护程序用调试窗口161)都构成为在窗口内显示图18(a)的各显示部(代码显示部151、寄存器显示部152、存储器显示部153、符号显示部154、观察点显示部155、调用堆栈显示部156)。由于图面复杂,所以图18(b)中,未记载这些各显示部。
使用具有这种显示部件的调试器,当调试器的用户调试通常程序12与保护程序8时,在调试器刚刚启动之后或刚刚附着于通常程序之后的状态下,为图18(a)所示的画面构成。
之后,通常程序12执行保护程序8,在保护程序8的执行中发生基于断点的调试例外的情况下,为了显示保护程序的各种信息,将图18(a)的画面分割为两个,变更为图18(b)所示的画面构成。
此时,为了让用户知道是保护程序8的调试,执行弹出显示,并且响起嘀声等特定声音或由用户设定的声音,在模式显示部159中显示为‘保护模式’,由此让用户意识到是保护模式。
4.4实施方式4的补充
在实施方式4中,设在保护程序8调试时将调试器的窗口分割成两个,但不限于分割。例如,也可为了调试保护程序而重新生成窗口,利用制表(tab)或菜单,切换通常程序用调试窗口160与保护程序用调试窗口161。
在保护程序8的执行中发生调试例外,并变为可调试的状态时,可将焦点移动到保护程序用调试窗口161,对保护程序实施断点的设定或存储器、寄存器值的变更等。并且,也可对通常程序12执行同样的设定或变更操作。
在实施方式4中,在保护程序8的执行中发生调试例外时,调试器的用户同时执行保护程序8的调试与通常程序12的调试,但不限于同时执行调试。例如,也可仅将可执行调试的对象限于保护程序,或限制成不能访问通常程序的调试窗口160。
如实施方式1所述,使用调试器14与调试功能7的保护程序8的调试,根据调试器14而受到限制。因此,存在不允许对保护程序8的调试处理的情况、或要显示不能用访问控制列表允许访问的区域的情况等、在各显示部中不能显示信息的情况。
这样,在请求了不能显示的信息的情况下,必需让使用调试器的用户知道不能显示这一情况。作为通知存在这种不能显示的信息的方法,执行表示不能显示的弹出显示,并且响起嘀声等特定声音或由用户设定的声音,用‘*’等特定的字符串显示不能显示的部分。
上述中,用‘*’等特定的字符串显示不能显示的部分,但不限于用特定的字符串显示,也可显示图标或不做任何显示。另外,也可使不能显示的部分的背景色与可显示的部分的背景色不同。
当调试保护程序8时,存在保护程序8中的秘密信息、或通常程序12与保护程序8的通信用共有领域等、程序的开发或解析时重要的信息或区域。因此,调试器14中,通过在这种必需注意的信息或区域的显示方法方面做出努力,督促使用调试器的用户注意,是优选的。
作为秘密信息的显示方法,当调试器14执行对保护程序8的调试处理时,取得涉及保护程序8的调试信息中包含的秘密信息区域的信息,判定各显示部中显示信息时要显示的代码或数据是否包含于秘密信息区域中。
在判定的结果是秘密信息的情况下,当通过用户的设定设定为不显示秘密信息时,不显示秘密信息,以该部分空白的状态来显示。
另一方面,在设定为显示秘密信息的情况下,通过将显示该秘密信息时的字符颜色设为由用户设定的颜色(例如红色),强调是秘密信息。并且,显示信息时,执行表示显示秘密信息的弹出显示,响起嘀声等特定声音或由用户设定的声音。通过如此动作,督促用户注意是秘密信息。
在实施方式4中,设在设定为不显示秘密信息的情况下以该部分为空白的状态来显示,但不限于以空白的状态来显示,也可用与背景色不同的颜色来涂布显示秘密信息的部分,或使用图标。即,只要是用户看不到秘密信息内容的状态,则可以是任何显示方法。
作为是通常程序12与保护程序8共有的信息的共有信息的显示方法,在调试器14执行对保护程序8的调试处理时,从保护OS6取得涉及通常模式与保护模式下共有信息的区域的信息,检查各显示部中显示信息时要显示的代码或数据的区域是否包含于共有信息的区域中。
在是共有信息的区域的情况下,通过将显示该区域的信息时的字符颜色设为由用户设定的颜色(例如黄色),强调是共有信息。并且,显示信息时执行表示显示共有信息的弹出显示,响起嘀声等特定声音或由用户设定的声音。通过如此动作,督促用户注意是共有信息。
共有信息也可与秘密信息一样适用多种显示方法,但也可使用与秘密信息不同的显示方法以便能区别共有信息与秘密信息。
在本实施方式4中,设显示秘密信息或共有信息时的字符颜色为由用户设定的颜色,但不限于变更字符颜色,也可变更背景颜色,或变更粗字或斜体等字符的风格,或附加下划线或底纹等字符修饰,也可包围秘密信息或共有信息整体。
5实施方式5
实施方式5与实施方式4不同,对实施方式1的调试器,附加在基于字符的用户界面中显示程序的动作信息的显示部件。实施方式5的调试器主体的功能也与实施方式1一样,所以省略说明。
5.1CUI的说明
图19是本发明实施方式5的基于字符的用户界面(CUI170)的显示方法的说明图。
若调试器14启动,则显示与控制台(console)不同的、例如‘(dbg)’这样的提示符,表示调试器14处于可使用的状态。该状态表示通常程序12可调试(调试处理结果的显示例171a)。
若执行通常程序12,由通常程序12执行保护程序8,则根据实施方式1所述的动作,首先在最初执行时保护程序的入口点设定的断点发生调试例外。
此时,调试器14为了表示保护程序8可调试,通过显示与通常程序12的调试时不同的、例如‘(dbg-sec)’这样的提示符,使得用户能区别。所谓提示符是使用户能区别地显示来自调试器14的消息的显示。例如如图所示,也可使用括号来表示提示符。
调试器14在保护程序8的执行中停止的情况下,通过将提示符或来自调试器14的消息、从用户输入的字符的风格变更为斜体,显示在保护程序8的执行中停止这一情况,使用户可区别(调试处理结果的显示例171b)。
在上述状态下,可执行以停止执行的程序为对象的调试,但由于实施方式5中执行以通常程序12与保护程序8协同动作的状态为对象的调试,所以期望在通常程序12的执行中调试保护程序8,或相反,在保护程序8的执行中可调试通常程序12。
下面,说明此时使用的界面。
首先,在通常程序12的执行中发生调试例外,通常程序12为可调试状态时,有时调试器14的用户想执行保护程序8的调试而不是通常程序12的调试。此时,在通常程序12为可调试的状态下,通过输入‘secure’等命令,数据处理装置1转移到保护模式,保护程序8变为可调试状态。
此时,提示符从‘(dbg)’变更为‘(dbg-sec)’,但由于通常程序12执行中停止的状态不变,所以字体不变为斜体等(调试处理结果的显示例171c)。
相反,在保护程序8的执行中发生调试例外,保护程序为可调试状态时,在想执行通常程序的调试而不是保护程序的调试的情况下,通过输入‘normal’等命令,通常程序变为可调试状态。
此时,提示符从‘(dbg-sec)’变更为‘(dbg)’,但由于保护程序8执行中停止的状态不变,所以字体仍以斜体显示,不恢复成通常的字体(调试处理结果的显示例171d)。
调试器14的用户在要调试保护程序8的情况下,不允许调试、或要显示禁止访问的区域信息的情况下,当输入命令时,显示‘Access invalid’等,由此通知用户不允许调试或禁止访问。
5.2实施方式5的补充
实施方式5中,变更为了区别通常程序12可调试还是保护程序8可调试而显示的提示符,但不限于变更提示符。
例如,也可在提示符之外,每当从用户请求的处理结束时,显示表示当前状态的字符。另外,也可将提示符或来自调试器的消息、从用户输入的字符的风格变更为粗字或斜体,也可变更字符的颜色或背景色,或附加下划线或底纹等修饰。
并且,为了区别在通常程序12的执行中停止还是在保护程序执行中停止,将字符的风格变更为斜体,但不限于将字符的风格变为斜体。
例如,也可变更为粗字等其它风格,或变更字符的颜色或背景色,或附加下划线或底纹等字符修饰。并且,也可在行头显示区分是在通常程序12的执行中停止还是在保护程序8的执行中停止的字符串。
另外,每当通常程序12或保护程序8停止,用户可输入命令时,或通常程序12的调试与保护程序8的调试切换时,也可消除全部以前的输出。
在本实施方式中,命令或消息的一例如下所示。
消息‘Change to Secure mode.’表示数据处理装置1移动到保护模式。消息‘Change to Normal mode.’表示数据处理装置1移动到通常模式。消息是数据处理装置1执行对应于用户输入的命令的处理之后,通知该处理结果的消息。
命令‘secure’是用于移动到保护模式的命令,命令‘normal’是用于移动到通常模式的命令。
可输入调试器的命令或对应于命令而输出的消息,按照各调试器而不同,所以省略详细说明。
6补充
根据上述实施方式说明了本发明,但本发明当然不限于上述实施方式。下面的情况也包含于本发明中。
(1)在上述实施方式中,允许调试器ID信息52或访问控制列表53包含于保护程序8中,但不限于此,也可从数据处理装置的外部取得允许调试器ID信息52或访问控制列表53。此时,最好与表示与哪个保护程序8对应的信息一起取得涉及取得的允许调试器ID信息52等。
由此,可容易地判定可否执行对保护程序8的调试处理。
由于允许调试器ID信息52等表示可调试的调试器ID或可访问的区域,所以当被解析时,由于不期望保护保护程序8,所以需要存储在数据处理装置中保护机构等安全区域中,以便不被非法访问暴露。
另外,允许调试器ID信息52等的取得当然也需要安全地执行,以不被非法者的窃听等而非法取得。
(2)在上述实施方式中,设保护程序8或通常程序12在保护OS6或通常OS11上动作,但不限于此。例如,也可不经OS而直接动作。
此时,将调试功能7或切换设备驱动器13和调试用切换设备驱动器15设置为LSI2的功能等,也执行各OS执行的中断监视等处理。另外,考虑调试器14也直接由LSI2上的CPU等可执行的语言形成等。
(3)在上述实施方式中,设将调试器14、切换设备驱动器13、调试器用切换设备驱动器15、调试功能7等安装为在LSI2上动作的软件,但不限于此。例如,也可作为LSI2的功能实现,或以与LSI2相互通信的硬件等的形式实现。另外,也可仅将各构成要素的一部分实现为LSI功能,或实现为硬件。
(4)在上述实施方式3中,为了拥有多个保护程序开发装置82的组织等,也可按照经保护程序开发装置82发送的请求,向多个保护程序开发装置82赋予同一调试器ID。
(5)在上述实施方式4和实施方式5中,参照图18和图19介绍了用户界面的实例,但用户界面的显示不限于图18和图19所示。
即,也可不显示构成界面的部分构成要素,当然也可适当替换各构成要素的显示位置,或将字符等的风格变为其它形式。
(6)在上述实施方式中,调试功能7通过调试器ID的确认来确认允许调试这一情况,并仅在通过访问控制列表的确认允许对所请求的区域的访问的情况下,允许进行调试,但也可仅通过任一确认来允许调试。
另外,确认的顺序也不限于在调试器ID的确认后执行访问控制列表的确认的顺序,也可先确认任一个。
(7)在上述实施方式中,调试器14附着于通常程序12,执行对与该通常程序12协同动作的保护程序8的调试处理,但不限于此。例如,也可以是可直接附着于保护程序8的调试器。
此时,由于调试器14不能附着于未加载的程序,所以将保护程序8事先加载到存储器上,经由调试器用切换设备驱动器15将保护程序8中发生的调试例外通知给调试器14。
并且,在数据处理装置具有可在保护模式下使用的输入输出装置的情况下,调试器也可以保护模式而非通常模式动作。此时,调试功能7与调试器14不经由调试器用切换设备驱动器15而直接通信。
(8)在上述实施方式中,通过在预处理中将停止标志设为有效,程序在保护程序8等的执行开始时必然停止,但不限于此。
例如,在如变形例(7)所示调试器14直接附着于保护程序8并可设定断点的情况、或希望仅调试通常程序12的情况下,若程序在保护程序8的执行开始时必然停止,则不便。因此,也可不在预处理时始终将停止标志设为有效,可通过用户的选择来决定是否变为有效。
(9)在上述实施方式中,未特别言及调试器ID的生成方式,但可考虑如下。
例如,也可以是调试器ID管理服务器81生成随机数,作为调试器ID,分配给调试器。
另外,除此之外例如也可将保护程序8的一部分或全部的散列值用作调试器ID。
此时,调试器ID判定部22在比较值保持部33中保持调试器14的调试器ID。若从调试器14请求调试,则调试器ID运算部32计算构成调试请求对象的保护程序8的散列值,调试器ID比较部31比较计算结果与比较值保持部33保持的值,由此进行判定。
由此,在保护程序8的内容变化的情况下,散列值与调试器ID的比较不成功,因此一旦保护程序8升级,则可自动禁止由旧的调试器进行的调试。
此时,实施方式3的保护程序开发装置82在保护程序8中取得散列值的部位完成的时刻向调试器ID管理服务器81发送该保护程序8。调试器ID管理服务器81计算保护程序8的散列值,将该散列值作为调试器ID,返回到保护程序开发装置82。返回的调试器ID是仅保护程序8的开发者能知道的信息。因此,调试器的制造者为了制成对应于该保护程序8的调试的调试器,需要从保护程序8的开发者接受通知相应的调试器ID,将通过通知取得的调试器ID分配给调试器14。但是,即便在上述情况下,在调试器ID管理服务器81的所有者与调试器的制造者相同的情况下,调试器的制造者尽管未接收调试器ID的通知,也可制成调试器。这是因为调试器的制造者能够从自身所具有的调试器ID管理服务器81知道调试器ID。
另外,如上所述在使用散列值的情况下,通过计算散列值,算出可执行对保护程序8的调试处理的调试器的调试器ID,所以不必使允许调试器ID信息52包含于保护程序8中。
并且,调试器ID中也可包含每个程序开发者的值与每个程序的值。此时,通过每个程序开发者的值的检查,来确认程序开发者单位下的调试允许/不允许,仅在存在程序开发者单位下的调试允许的情况下,才可通过检查程序单位的值,确认程序单位下的调试允许等,实现更细致的调试控制。
(10)在上述实施方式中,说明检测出在保护程序8a执行中发生基于断点的调试例外后执行对保护程序8a的调试处理的情况。不限于此,也可在保护程序8的执行中仅发生了一般的错误中断的情况下,通过检测该中断,由调试器14执行调试处理。所谓一般的错误中断,例如有在保护程序8执行中发生基于0的除法的情况、或发生溢出的情况等。在发生一般的错误中断的情况下,通过执行OS6将调试例外的发生通知给切换设备驱动器13等的处理(S402等),调试器14可执行对保护程序8的调试处理。
(11)在上述实施方式中,控制可否执行对保护程序8的调试处理,但不限于此,即便对于通常程序12,也可分配允许调试处理的调试器的调试器ID,控制可否执行对通常程序12的调试处理。
(12)也可将上述构成要素的一部分或全部实现为LSI等集成电路。此时的集成电路可以是与LSI2相同的集成电路,也可以是不同的集成电路。
LSI也可根据集成度的不同,被称为IC、系统LSI、超(super)LSI、甚(ultra)LSI,但不用说,以上述任一集成度实现系统LSI2的情况都包含于本发明中。另外,也可在LSI制造后,利用可编程的FPGA(Field ProgrammableGate Array:现场可编程门阵列)或可再构成LSI内部的电路单元连接或设定的可重构处理器。
并且,如果因半导体技术的进步或派生的其它技术而出现置换LSI的集成电路化技术,则当然也可使用该技术来进行构成要素的集成化。例如可适用生物技术等。
13)本发明也可以是上述所示的方法。另外,也可以是将这些方法实现为CPU的处理的程序,或是由上述计算机程序构成的数字信号。
(14)本发明也可将上述计算机程序或上述数字信号记录在计算机可读取的记录媒体中,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc:蓝光光盘)、半导体存储器等中。另外,也可以是记录在这些记录媒体中的上述数字信号。
(15)也可以是这些实施方式和变形例的组合。
产业上的可利用性
本发明的数据处理装置可通过控制可否执行调试处理来实现程序的保护,尤其是作为在保护程序的同时支援开发的装置来说是有用的。

Claims (19)

1.一种数据处理装置,控制调试处理部的调试处理的执行,其特征在于:
具备:
第1取得部件,取得识别所述调试处理部的识别符;
第2取得部件,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;
判定部件,对从所述调试对象程序取得的所述验证值与由所述第1取得部件取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和
控制部件,当判定为不允许时,禁止对所述调试对象程序执行调试处理,
所述调试对象程序的所述规定部分中,包含表示对于构成所述调试对象程序的各部分允许或不允许访问的访问控制列表,
所述第2取得部件包含访问控制列表取得部,该访问控制列表取得部取得所述调试对象程序的所述规定部分中包含的所述访问控制列表,
所述数据处理装置还具备访问判定部件,该访问判定部件根据所述取得的所述访问控制列表,判定是否允许访问所述调试对象程序的一部分,
所述控制部件,在所述判定部件判定为允许、且所述访问判定部件判定为不允许的第1情况下,禁止执行所述一部分的调试处理,在所述判定部件判定为允许、且所述访问判定部件判定为允许的第2情况下,使所述调试处理部执行所述一部分的调试处理。
2.根据权利要求1所述的数据处理装置,其特征在于:
所述访问控制列表所示的所述部分的每一个,表示与将所述调试对象程序加载到存储器时的加载目的地存储器地址的所述部分分别对应的地址范围,
在所述访问控制列表中,将与所述部分分别对应的所述地址范围的每一个,与可否访问相对应,
所述访问判定部件对于与将所述调试对象程序加载到存储器时的加载目的地存储器地址的所述一部分相对应的地址范围,通过参照在所述访问控制列表中相对应的可否访问,执行所述判定。
3.根据权利要求1所述的数据处理装置,其特征在于:
所述访问控制列表中所示的所述部分的每一个,表示所述调试对象程序中包含的符号,
所述访问控制列表中,将所述符号的每一个与可否访问相对应,
所述访问判定部件对于所述调试对象程序的所述一部分中包含的符号,通过参照在所述访问控制列表中相对应的可否访问,执行所述判定。
4.根据权利要求1所述的数据处理装置,其特征在于:
所述调试对象程序的所述规定部分中包含多个所述验证值,
所述规定部分中包含一个以上所述访问控制列表,所述访问控制列表的每一个,与所述验证值的至少一个相对应,
所述判定部件对于所述验证值的每一个,与所述取得的识别符进行比较,执行所述判定,
所述访问判定部件根据与所述判定部件判定为允许的所述验证值相对应的所述访问控制列表,执行所述判定。
5.根据权利要求1所述的数据处理装置,其特征在于:
所述数据处理装置还具备显示部,
所述控制部件包含显示控制部,在所述第1情况下,该显示控制部使所述显示部执行表示禁止所述一部分的调试处理之意的显示,在所述第2情况下,该显示控制部使所述显示部显示所述调试处理的结果。
6.根据权利要求1所述的数据处理装置,其特征在于:
所述判定部件对所述验证值与所述识别符进行比较,在所述验证值与所述识别符一致的情况下,判定为允许所述调试处理。
7.根据权利要求1所述的数据处理装置,其特征在于:
所述判定部件,
包含比较值保持部,该比较值保持部以保护其不被非法访问的状态存储比较值,并且
执行将所述验证值与所述识别符用作运算符的规定运算,在该运算结果与所述存储的所述比较值一致的情况下,判定为允许所述调试处理。
8.根据权利要求1所述的数据处理装置,其特征在于:
所述数据处理装置具有具备防止从外部非法访问的机构的安全域,
所述数据处理装置具备通常模式与安全模式作为动作模式,切换所述通常模式与所述安全模式而动作,仅在所述安全模式时使用所述安全域而动作,
所述数据处理装置还具备切换部,该切换部切换所述通常模式与所述安全模式,
在所述通常模式下动作的程序,通过经由所述切换部将规定的处理请求通知给在所述安全模式下动作的程序,从而能访问在所述安全模式下动作的程序,
所述调试对象程序存储在所述安全域中,
所述第2取得部件在所述安全域中,从所述调试对象程序执行所述验证值的所述取得,
所述判定部件在所述安全域中执行所述判定。
9.根据权利要求8所述的数据处理装置,其特征在于:
所述调试处理部在所述安全域之外在所述通常模式下动作,
所述数据处理装置还具备在所述安全模式下执行调试处理的安全调试器,所述安全调试器包含于所述安全域中,
所述调试处理部输出所述调试对象程序的调试处理请求,
所述控制部件,在所述调试处理部输出所述调试处理请求时,使所述判定部件执行所述判定,当判定为不允许时,禁止所述安全调试器对涉及所述调试处理请求的所述调试对象程序进行调试处理。
10.根据权利要求9所述的数据处理装置,其特征在于:
所述调试对象程序的所述规定部分中,包含表示对于构成所述调试对象程序的各部分允许或不允许访问的访问控制列表,
所述第2取得部件包含访问控制列表取得部,该访问控制列表取得部取得所述调试对象程序的所述规定部分中包含的所述访问控制列表,
所述数据处理装置还具备访问判定部件,该访问判定部件根据所述取得的所述访问控制列表,判定是否允许访问所述调试对象程序的所述一部分,
所述访问判定部件在所述安全域中执行所述判定,
所述控制部件,对于所述调试处理部输出的所述调试处理请求所涉及的所述调试对象程序,在所述判定部件判定为允许、且所述访问判定部件判定为不允许的情况下,禁止所述安全调试器执行所述一部分的所述调试处理,在所述判定部件判定为允许、且所述访问判定部件判定为允许的情况下,使所述安全调试器执行所述一部分的调试处理。
11.根据权利要求9所述的数据处理装置,其特征在于:
所述调试处理部具有对所述通常程序和与所述通常程序协同的所述调试对象程序执行调试处理的功能,
所述调试处理部进行的所述调试对象程序的调试处理,通过所述调试处理部输出调试处理请求、并且所述调试处理部经所述切换部受理由所述安全调试器对所输出的所述调试处理请求执行的调试处理的结果来执行。
12.根据权利要求11所述的数据处理装置,其特征在于:
所述调试处理部输出识别该调试处理部所附着的通常程序的处理识别符,
所述安全调试器,将位于与从所述调试处理部输出的所述处理识别符所示的通常程序协同动作的调试对象程序的入口点的命令,变更为断开命令。
13.根据权利要求11所述的数据处理装置,其特征在于:
所述数据处理装置,当在所述安全模式下在执行所述调试对象程序过程中检测出调试例外时,经所述切换部向所述调试处理部通知调试例外的发生,
所述调试处理部,当从所述切换部受理所述调试例外的发生通知时,输出表示调试处理的执行结果的调试信息的取得请求,
所述安全调试器,当所述判定部件对于所述调试对象程序做出肯定的判定时,若受理所述调试信息的取得请求,则执行所述调试对象程序的调试处理,取得调试信息,经所述切换部将取得的调试信息输出到所述调试处理部。
14.根据权利要求11所述的数据处理装置,其特征在于:
所述数据处理装置还具备:
第1结果显示部,将所述通常程序的调试处理的结果显示于第1显示区域;和
第2结果显示部,将与所述通常程序的协同所涉及的调试对象程序的调试处理的结果,显示于与所述第1显示区域不同的第2显示区域,
所述第1和第2结果显示部,在所述协同所涉及的调试对象程序与所述通常程序协同动作时,在所述第1显示区域和所述第2显示区域中,显示所述调试对象程序与所述通常程序的调试处理的结果。
15.根据权利要求11所述的数据处理装置,其特征在于:
在所述通常模式下,通常OS动作,
在所述安全模式下,保护OS动作,
所述通常程序作为所述通常OS生成的处理,在所述通常模式下动作,
所述调试处理部作为在所述通常OS中动作的调试器,在所述通常模式下动作,
所述调试对象程序作为所述保护OS生成的处理,在所述安全模式下动作,
所述安全调试器作为所述保护OS具有的功能被安装。
16.根据权利要求9所述的数据处理装置,其特征在于:
所述控制部件,当所述调试处理部输出所述调试处理请求时,使所述判定部件执行所述判定,当判定为不允许时,向所述调试处理部输出表示禁止执行所述调试处理的不可调试处理通知。
17.一种程序生成装置,其特征在于:
具备:
程序取得部件,取得包含应保密的保护信息的程序;
验证值生成部件,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和
保护程序生成部件,向所述程序附加所述验证值生成部件对所述程序生成的验证值,生成保护程序,
由所述程序取得部件取得的、作为源代码的所述程序中,对应保密的所述保护信息所在的部位预先附加标记,
作为编译器的所述程序生成装置,根据所述标记的有无,将记述有应保密的所述保护信息的区域写入到秘密信息存储文件,
所述程序生成装置还包含访问控制列表取得部,该控制列表取得部取得表示对于构成所述程序的各部分允许或不允许访问的访问控制列表,
所述保护程序生成部件包含访问控制列表附加部,该访问控制列表附加部将所述取得的访问控制列表附加于所述程序。
18.一种数据处理方法,控制调试处理部的调试处理的执行,其特征在于:
包含:
第1取得步骤,取得识别所述调试处理部的识别符;
第2取得步骤,取得处于被保护不受非法访问的状态下的调试对象程序的规定部分中包含的验证值;
判定步骤,对从所述调试对象程序取得的所述验证值与在所述第1取得步骤中取得的所述识别符进行比较,按照该比较结果,判定是否允许对所述调试对象程序的调试处理;和
控制步骤,当判定为不允许时,禁止对所述调试对象程序执行调试处理,
所述调试对象程序的所述规定部分中,包含表示对于构成所述调试对象程序的各部分允许或不允许访问的访问控制列表,
所述第2取得步骤包含访问控制列表取得步骤,该访问控制列表取得步骤取得所述调试对象程序的所述规定部分中包含的所述访问控制列表,
所述数据处理方法还具备访问判定步骤,该访问判定步骤根据所述取得的所述访问控制列表,判定是否允许访问所述调试对象程序的一部分,
所述控制步骤中,在所述判定步骤判定为允许、且所述访问判定步骤判定为不允许的第1情况下,禁止执行所述一部分的调试处理,在所述判定步骤判定为允许、且所述访问判定步骤判定为允许的第2情况下,使所述调试处理部执行所述一部分的调试处理。
19.一种程序生成方法,其特征在于:
包含:
程序取得步骤,取得包含应保密的保护信息的程序;
验证值生成步骤,生成用于按照调试处理部的识别符判定是否允许对所取得的所述程序的调试处理的验证值;和
保护程序生成步骤,向所述程序附加所述验证值生成步骤中对所述程序生成的验证值,生成保护程序,
由所述程序取得步骤取得的、作为源代码的所述程序中,对应保密的所述保护信息所在的部位预先附加标记,
所述程序生成方法,根据所述标记的有无,将记述有应保密的所述保护信息的区域写入到秘密信息存储文件,
所述程序生成方法还包含访问控制列表取得步骤,该访问控制列表取得步骤取得表示对于构成所述程序的各部分允许或不允许访问的访问控制列表,
所述保护程序生成步骤包含访问控制列表附加步骤,该访问控制列表附加步骤将所述取得的访问控制列表附加于所述程序。
CN2007800147358A 2006-04-24 2007-04-24 数据处理装置、方法、程序生成装置、方法 Active CN101427222B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006118881 2006-04-24
JP118881/2006 2006-04-24
PCT/JP2007/058838 WO2007125911A1 (ja) 2006-04-24 2007-04-24 データ処理装置、方法、プログラム、集積回路、プログラム生成装置

Publications (2)

Publication Number Publication Date
CN101427222A CN101427222A (zh) 2009-05-06
CN101427222B true CN101427222B (zh) 2012-11-21

Family

ID=38655437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800147358A Active CN101427222B (zh) 2006-04-24 2007-04-24 数据处理装置、方法、程序生成装置、方法

Country Status (5)

Country Link
US (1) US20090307783A1 (zh)
EP (1) EP2023248B1 (zh)
JP (1) JP4814319B2 (zh)
CN (1) CN101427222B (zh)
WO (1) WO2007125911A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881611A (zh) * 2014-02-28 2015-09-02 国际商业机器公司 保护软件产品中的敏感数据的方法和装置

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429613B2 (en) * 2006-10-31 2013-04-23 Microsoft Corporation Stepping and application state viewing between points
JP5133973B2 (ja) * 2007-01-18 2013-01-30 パナソニック株式会社 難読化支援装置、難読化支援方法、プログラムおよび集積回路
JP2010117813A (ja) * 2008-11-12 2010-05-27 Nec Electronics Corp デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム
US9053295B1 (en) * 2009-02-04 2015-06-09 Sprint Communications Company L.P. Facilitating application development using protected components
JP2012128463A (ja) * 2009-04-10 2012-07-05 Panasonic Corp デバッグ許可装置
CN101794252B (zh) * 2009-12-23 2013-03-13 张曙光 一种在源程序层次实现运算符单步调试的方法
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US9082127B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
US9317572B2 (en) 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US8874526B2 (en) 2010-03-31 2014-10-28 Cloudera, Inc. Dynamically processing an event using an extensible data model
US8904356B2 (en) 2010-10-20 2014-12-02 International Business Machines Corporation Collaborative software debugging in a distributed system with multi-member variable expansion
US8972945B2 (en) 2010-10-21 2015-03-03 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific access control
US8671393B2 (en) 2010-10-21 2014-03-11 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US9009673B2 (en) 2010-10-21 2015-04-14 International Business Machines Corporation Collaborative software debugging in a distributed system with collaborative step over operation
US9411709B2 (en) 2010-11-10 2016-08-09 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific event alerts
US8990775B2 (en) 2010-11-10 2015-03-24 International Business Machines Corporation Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US8850397B2 (en) 2010-11-10 2014-09-30 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific display of local variables
US8667267B1 (en) * 2011-01-31 2014-03-04 Gazzang, Inc. System and method for communicating with a key management system
KR101250661B1 (ko) * 2011-02-08 2013-04-03 주식회사 팬택 모바일 플랫폼 보안 장치 및 방법
US8880592B2 (en) 2011-03-31 2014-11-04 Cloudera, Inc. User interface implementation for partial display update
US8656360B2 (en) 2011-04-20 2014-02-18 International Business Machines Corporation Collaborative software debugging in a distributed system with execution resumption on consensus
US8739127B2 (en) 2011-04-20 2014-05-27 International Business Machines Corporation Collaborative software debugging in a distributed system with symbol locking
US8806438B2 (en) * 2011-04-20 2014-08-12 International Business Machines Corporation Collaborative software debugging in a distributed system with variable-specific messages
DE102011018431A1 (de) * 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts
US8756577B2 (en) 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
US9053233B2 (en) * 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
DE102011115135A1 (de) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Mikroprozessorsystem mit gesicherter Laufzeitumgebung
US9128949B2 (en) 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster
US9405692B2 (en) 2012-03-21 2016-08-02 Cloudera, Inc. Data processing performance enhancement in a distributed file system
US9338008B1 (en) 2012-04-02 2016-05-10 Cloudera, Inc. System and method for secure release of secret information over a network
US9842126B2 (en) 2012-04-20 2017-12-12 Cloudera, Inc. Automatic repair of corrupt HBases
US9753954B2 (en) 2012-09-14 2017-09-05 Cloudera, Inc. Data node fencing in a distributed file system
CN103684899B (zh) * 2012-09-17 2019-01-08 腾讯科技(深圳)有限公司 远程调试方法和装置
CN104039216B (zh) * 2012-09-28 2017-12-19 松下电器(美国)知识产权公司 口腔内检查装置及信息显示方法
JP6098110B2 (ja) * 2012-10-24 2017-03-22 富士通株式会社 情報処理装置、データ保護方法、およびプログラム
KR101954733B1 (ko) * 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
US20140173759A1 (en) * 2012-12-17 2014-06-19 Microsoft Corporation Rights-managed code
US9342557B2 (en) 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
TWI498737B (zh) * 2013-03-29 2015-09-01 Mstar Semiconductor Inc 用於主機板控制模組之除錯權限判斷方法及相關主機板控制模組
US9749304B1 (en) 2013-07-30 2017-08-29 Google Inc. System and methods for accessing multiple resources via one identifier
US20150052616A1 (en) 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US9552279B2 (en) * 2013-08-16 2017-01-24 Nxp Usa, Inc. Data bus network interface module and method therefor
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US9934382B2 (en) 2013-10-28 2018-04-03 Cloudera, Inc. Virtual machine image encryption
US9690671B2 (en) 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
US10171635B2 (en) 2013-12-04 2019-01-01 Cloudera, Inc. Ensuring properly ordered events in a distributed computing environment
US9251368B2 (en) 2014-01-08 2016-02-02 International Business Machines Corporation Provisioning transient-controlled secure environments for viewing sensitive data
US9747333B2 (en) 2014-10-08 2017-08-29 Cloudera, Inc. Querying operating system state on multiple machines declaratively
US10120904B2 (en) 2014-12-31 2018-11-06 Cloudera, Inc. Resource management in a distributed computing environment
CN105653908B (zh) * 2015-12-31 2018-12-25 西北大学 一种隐式反调试保护方法
CN105930721B (zh) 2016-04-28 2018-11-23 北京小米移动软件有限公司 一种管理应用程序的方法和装置
JP6961553B2 (ja) * 2018-08-30 2021-11-05 株式会社東芝 情報処理装置、システム及び方法
DE102018127330A1 (de) 2018-11-01 2020-05-07 Infineon Technologies Ag System-on-Chip und Verfahren zum Betreiben eines System-on-Chip
CN110046514B (zh) * 2019-04-12 2023-05-26 深圳Tcl新技术有限公司 调试数据保护方法、装置、服务器及存储介质
CN110362501B (zh) * 2019-07-05 2021-09-24 北京大学 一种执行饱和寻址加载和存储操作的设备和方法
EP3961436A1 (en) * 2020-08-28 2022-03-02 Siemens Aktiengesellschaft Methods and systems for controlling access to at least one computer program
CN112947861A (zh) * 2021-03-09 2021-06-11 成都盛芯微科技有限公司 存储设备的数据读取方法及电子设备系统
WO2022259311A1 (ja) * 2021-06-07 2022-12-15 日本電信電話株式会社 デバッグ装置、デバッグ方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1516836A (zh) * 2000-09-08 2004-07-28 国际商业机器公司 软件安全认证信道
WO2005091143A1 (ja) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. 情報処理装置及びプログラムファイル生成装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4937864A (en) 1989-04-27 1990-06-26 Xerox Corporation Debug routine accessing system
US5075845A (en) * 1989-12-22 1991-12-24 Intel Corporation Type management and control in an object oriented memory protection mechanism
US6345383B1 (en) * 1994-09-14 2002-02-05 Kabushiki Kaisha Toshiba Debugging support device and debugging support method
US6014666A (en) * 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
JP2003177938A (ja) 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
AU2003278342A1 (en) * 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
GB0226905D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Exception tyres within a secure processing system
GB2395583B (en) 2002-11-18 2005-11-30 Advanced Risc Mach Ltd Diagnostic data capture control for multi-domain processors
JP2006065555A (ja) * 2004-08-26 2006-03-09 Matsushita Electric Ind Co Ltd プログラム開発装置およびプログラム開発方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1516836A (zh) * 2000-09-08 2004-07-28 国际商业机器公司 软件安全认证信道
WO2005091143A1 (ja) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. 情報処理装置及びプログラムファイル生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881611A (zh) * 2014-02-28 2015-09-02 国际商业机器公司 保护软件产品中的敏感数据的方法和装置
CN104881611B (zh) * 2014-02-28 2017-11-24 国际商业机器公司 保护软件产品中的敏感数据的方法和装置

Also Published As

Publication number Publication date
EP2023248B1 (en) 2018-10-24
JPWO2007125911A1 (ja) 2009-09-10
EP2023248A4 (en) 2013-01-16
US20090307783A1 (en) 2009-12-10
EP2023248A1 (en) 2009-02-11
WO2007125911A1 (ja) 2007-11-08
JP4814319B2 (ja) 2011-11-16
CN101427222A (zh) 2009-05-06

Similar Documents

Publication Publication Date Title
CN101427222B (zh) 数据处理装置、方法、程序生成装置、方法
CN100359425C (zh) 用于解密已加密数据并在存储器空间中定位用于执行的解密数据的方法和设备
CN101523398B (zh) 用于管理对插件数据文件访问的系统和方法
CN105408912B (zh) 处理认证和资源许可
CN100354786C (zh) 开放型通用抗攻击cpu及其应用系统
RU2289157C2 (ru) Способ и система распределенной разработки программы для программируемого портативного носителя информации
TWI471754B (zh) 用於電腦系統中安全物件之支援
JP3243331B2 (ja) ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体
EP1596269A2 (en) A system and method for rendering selective presentation of documents
CN109313690A (zh) 自包含的加密引导策略验证
JP5171907B2 (ja) 情報処理装置、情報処理プログラム
CN102171704A (zh) 用硬件加密存储设备进行外部加密和恢复管理
CN102057618A (zh) 信息处理装置、加密密钥的管理方法、计算机程序及集成电路
CN104156642A (zh) 一种基于安全触控屏控制芯片的安全密码输入系统和方法
CN103763313A (zh) 一种文档保护方法和系统
CN107832589A (zh) 软件版权保护方法及其系统
JP2005085188A (ja) プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2009059008A (ja) ファイル管理システム
CN110287208A (zh) 数据库字段加密的方法和装置、存储介质
US20110145596A1 (en) Secure Data Handling In A Computer System
CN109325322A (zh) 用于嵌入式平台的软件知识产权保护系统和方法
JP2007034389A (ja) ライセンス認証装置及びライセンス認証方法
CN107330336A (zh) Linux操作系统内存页面即时加解密方法和系统
JP2009064126A (ja) Icカードシステム、その端末装置、プログラム
JP2009111650A (ja) 携帯記憶媒体

Legal Events

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