CN104517050B - 电子装置的软件‑硬件认证方法与其对应装置 - Google Patents

电子装置的软件‑硬件认证方法与其对应装置 Download PDF

Info

Publication number
CN104517050B
CN104517050B CN201410493160.4A CN201410493160A CN104517050B CN 104517050 B CN104517050 B CN 104517050B CN 201410493160 A CN201410493160 A CN 201410493160A CN 104517050 B CN104517050 B CN 104517050B
Authority
CN
China
Prior art keywords
authentication result
certification
software
challenge word
word string
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
CN201410493160.4A
Other languages
English (en)
Other versions
CN104517050A (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.)
Andes Technology Corp
Original Assignee
Andes Technology Corp
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 Andes Technology Corp filed Critical Andes Technology Corp
Publication of CN104517050A publication Critical patent/CN104517050A/zh
Application granted granted Critical
Publication of CN104517050B publication Critical patent/CN104517050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/2103Challenge-response

Landscapes

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

Abstract

本发明揭示一种电子装置软件‑硬件认证的方法与其对应装置。电子装置软件‑硬件认证的方法包含,首先经由一挑战字串输入端口(CSIP)从电子装置输入一挑战字串(CS),挑战字串(CS)是一追踪数据(trace data)字串,且是依据软件在该电子装置上执行的部分运算而产生。其次经由此追踪数据字串可产生一用于认证程序上的一认证结果,根据此认证结果,一软件可用以认证电子装置的硬件单元,或是一硬件单元可用以认证该软件。最后,依据产生的认证结果实施此认证程序。

Description

电子装置的软件-硬件认证方法与其对应装置
技术领域
本发明是一种认证的方法与装置,特别是一种用于一电子装置的软件-硬件认证方法与其对应装置。
背景技术
认证是一个确认数据或者实体属性真实与否的动作。随着电子时代来临,对于电子装置提供认证功能的需求与日俱增,特别是包含硬件元件与软件元件的电子装置。
这类认证功能需要硬件认证软件的方法,以及软件认证硬件的方法。在硬件认证软件的方法中,依据不同的认证结果,与认证相关的硬件可启动部分硬件功能来使得软件正常运算,或是使部分硬件功能失效以防止软件的正常运算。在软件认证硬件的方法中,依据不同的认证结果,软件可确认是否可实施修改软件流程控制变量或是确认是否可实施修改指令码,以便与硬件正常运作。
发明内容
根据本发明的一实施方式,揭示一电子装置软件-硬件认证的方法。此方法包含以下步骤:经由一挑战字串输入端口(Challenge String Input Port,CSIP)从电子装置输入一挑战字串(Challenge String,CS),其中该挑战字串是一追踪数据(trace data)字串,且是依据软件在该电子装置上执行的部分运算而产生;在认证程序中使用的认证结果,是基于追踪数据字串而产生,根据此认证结果,一软件可认证电子装置的硬件单元,或是硬件单元可用以认证该软件;以及依据产生的认证结果实施认证程序。
根据本发明的另一实施方式,揭示一电子装置软件-硬件认证的装置。该装置包含一挑战字串输入端口(CSIP),一认证结果产生单元以及一认证实施单元。挑战字串输入端口(CSIP)用于接受来自该电子装置的挑战字串(CS)。挑战字串(CS)是一追踪数据(tracedata)字串,且是依据软件在电子装置上执行一运算而产生。在认证程序中使用的认证结果,是基于追踪数据字串而产生,根据此认证结果,一软件可用以认证电子装置的硬件单元,或是硬件单元用以认证该软件。该认证实施单元依据该产生的认证结果实施认证程序。
本发明的实施方式,揭示一电子装置软件-硬件认证的方法。该方法包含以下步骤:经由一挑战字串输入端口(CSIP)从电子装置输入一挑战字串(CS),其中该挑战字串(CS)是一追踪数据字串,且是依据软件在该电子装置上执行的一运算而产生;获得一认证金钥(Authentication Key,AK);依据认证金钥的信息,将挑战字串转换成认证字串(Authentication String,AS),同时让认证字串的长度等于或者短于该挑战字串(CS)的长度;依据认证金钥(AK)与认证字串(AS),产生认证结果签章(Authentication ResultSignature,ARS);比较认证结果签章(ARS)与一已知签章(Pre-Known Signature,PKS),以决定认证程序的认证结果;以及依据认证程序的认证结果实施认证程序。
参考以下描述与权利要求书将更容易明了本发明的特征与优点。应该明了的是,以上的描述与以下的详细描述仅是说明例而且用于进一步说明本发明的权利要求,本发明并不局限于此。
附图说明
图1是本发明一电子装置的软件-硬件认证方法的流程图;
图2是依据认证金钥将挑战字串(CS)转换成认证字串(AS)的实施例;
图3是本发明实施例的一电子装置的软件-硬件认证装置的方块图;
图4是本发明另一实施例的一电子装置的软件-硬件认证方法的流程图。
具体实施方式
请参阅图1,此流程图描绘了本发明实施例的电子装置软件-硬件认证的方法。电子装置软件-硬件认证的方法可采取计算机程序产品的形式出现,且储存在非挥发(non-transitory)计算机可读取储存媒体,并且该储存媒体具有计算机可读取指令。适合的储存媒体,包含非挥发性记忆体,例如,只读记忆体(ROM),可编程只读记忆体(PROM),可抹除可编程只读记忆体(EPROM),以及电子可抹除可编程只读记忆体(EEPROM);挥发性记忆体,例如静态随机存取记忆体(SRAM),动态随机存取记忆体(DRAM),双倍数据率静态随机存取记忆体(DDR-RAM);光学储存装置,例如CD-ROM与DVD-ROM;以及磁性储存装置,例如硬盘机与软盘机。
图1的方法流程从步骤110开始。首先,一挑战字串(Challenge String,CS)经由一挑战字串输入端口(Challenge String Input Port,CSIP)从电子装置输入(步骤110)。在电子装置上执行中的软件可以是需要认证一电子装置上的硬件单元,以确认此软件可在该硬件单元上执行一般作业,或者是需要由硬件单元进行认证,以获得在该硬件单元上执行的许可。在本发明实施例中,挑战字串(CS)是一追踪数据(trace data)字串,且是依据软件在电子装置上执行的部分运算而产生。依据本发明的一实施例,挑战字串输入端口(CSIP)可使用一或多个硬件暂存器或者一些共享记忆体以接收该挑战字串(CS)。再者,追踪数据表示出一软件程序的逐步执行行为,或者更广泛的来说,表示出一序列主控制器指令(master commands)的逐步执行行为。如此的追踪数据,就像指令执行追踪数据或是总线交换追踪数据,通常通过一些硬件功能而产生,而且此些硬件功能可经由探测微处理器、总线主控制器或总线控制器内部的信号,来监控该软件或总线主控制器的行为。用于产生追踪数据的硬件功能通常是可以分别加以控制的,而且硬件功能通常不会受到本身行为正被追踪的软件或总线主控制器的控制。依据本发明的另一实施例,经由软件指令或总线主控制器命令而设定的追踪数据记号(trace data marker),可用来致能硬件功能以让本身正被追踪的软件或总线主控制器直接控制追踪数据的捕捉,或是让其他监控软件或总线主控制器来控制追踪数据的捕捉。
其次,在认证程序中使用的认证结果,是基于追踪数据字串执行一认证程序后产生,这个认证结果可让软件用以认证电子装置的硬件单元,或是让硬件单元认证该软件(步骤120)。
接下来,流程前进至步骤130,依据产生的认证结果实施认证程序。因为挑战字串是依据在电子装置上执行的软件运算而产生的一追踪数据串列,所以骇客不容易推算出追踪数据的哪个部分是用于认证。再者,因为追踪数据通常不由软件存取(追踪数据通常经由硬件连接直接传输),所以本发明是很难被骇客攻击的。
依据本发明的一实施例,在步骤120产生的认证结果可为“通过”或是“失败”。“通过”与“失败”分别代表用于认证程序的两个不同状态。因此,当认证结果是“通过”,依赖认证程序的软件或硬件单元可实施正常运作(步骤140)。当认证结果是“失败”,依赖认证程序的软件或硬件单元不实施正常运作(步骤150)。然而,在其他实施例中,依据这些状态所实施的运作可能会各不相同,本发明并不局限于此。
对于软件需要认证电子装置的硬件单元的实施例,该软件的程序码部分可能需要修补(fix-up)。根据本发明实施例,当产生的认证结果是“通过”,依赖认证程序的软件可修补该软件的程序码部分,以使得软件可实施正常运作(步骤140)。当产生的认证结果是“失败”,该软件需要修补的程序码部分可保持不变,如此一来该软件就无法实施正常运作(步骤150)。
根据本发明的另一实施例,电子装置的软件-硬件认证的方法,可以进一步包含取得一认证金钥(Authentication Key,AK)的方法。认证金钥可由直接连线的(hard-wired)逻辑电路获得、也可由电子装置的外部输入取得、或者由电子装置的嵌入式(embedded)非挥发储存装置或以上装置的某一组合中取得。其中,认证金钥的至少一部分是软件所未知的,然而认证金钥亦可包括部分已知的数值,例如电子装置的序号,用以辨识电子装置。
其次,依据认证金钥的信息,将挑战字串(CS)转换成认证字串(AuthenticationString,AS),同时让认证字串的长度等于或者短于挑战字串(CS)的长度。请参阅图2,此图描绘了依据认证金钥的信息,将挑战字串(CS)转换成认证字串(AS)的实施例。在此实施例中,依据认证金钥信息,将挑战字串(CS)转换成认证字串(AS)的步骤,可以是根据认证金钥的部分信息来移除挑战字串(CS)的冗余数据R0,R1,…,RM以获得认证字串(AS)B0,B1,…,BN。本发明的其他实施例中,根据认证金钥的信息,将挑战字串(CS)转换成认证字串(AS)的步骤,亦可以是透过将挑战字串(CS)压缩至认证字串(AS)而达成。
在转换挑战字串(CS)的步骤后,依据认证金钥(Authentication key,AK)与认证字串(AS),产生使用于认证程序的认证结果签章(Authentication Result Signature,ARS)。产生认证结果签章(ARS)的函数可为检查码函数(checksum function)、CRC函数、加密函数(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者是其他使用全部认证字串(AS)以及全部或部分认证金钥(AK)以产生认证结果签章(ARS)的映射函数。
随后,认证结果签章(ARS)进一步与一已知签章(Pre-Known Signature,PKS)比较,以决定认证结果。在本发明的实施例中,已知签章(PKS)可经由直接连线的逻辑电路产生,或是预先储存在一储存单元,以做为比较的用。由此,在步骤130所规范的认证程序,可以根据比较过程而决定的认证结果进一步被执行。
在本发明的实施例中,也可考虑使用挑战字串长度(CSL)进行认证。例如,一相关联于由挑战字串输入端口(CSIP)输入的挑战字串(CS)的挑战字串长度数值可以被验证。其次,挑战字串长度(CSL)数值可与相关联于认证金钥(AK)的预期挑战字串长度(ECSL)数值进行比较。根据挑战字串长度(CSL)数值与认证金钥(AK)的预期挑战字串长度(ECSL)数值的比较结果,可进一步决定认证结果。例如,当认证结果签章(ARS)与已知签章(PKS)不相匹配时,认证结果可决定为失败。而当挑战字串长度(CSL)数值等于预期挑战字串长度(ECSL)数值而且认证结果签章(ARS)与已知签章(PKS)相匹配时,认证程序的认证结果为通过。再者,当挑战字串长度(CSL)数值大于预期挑战字串长度(ECSL)数值而且认证结果签章(ARS)与已知签章(PKS)相匹配时,认证程序的认证结果为不真实失败(FALSE–FAIL)。“通过”,“失败”与“不真实失败”表示认证程序的三种不同状态。对于认证程序而言,可以实施一种或多种类型的认证结果(即“通过”,“失败”与“不真实失败”,或其组合),用以致能(enable)或禁能(disable)依赖认证程序的软件或硬件单元。因此,可通过这些类型的认证结果而提供不同的认证程度。
图3显示本发明的软件-硬件认证电子装置的装置方块图。软件-硬件认证电子装置的装置300包含一挑战字串输入端口(CSIP)310,一认证结果产生单元320,以及一认证实施单元330。认证结果产生单元320与认证实施单元330可通过至少一微处理或任他任何类型的控制单元加以实施。
挑战字串(CS)来自电子装置且透过挑战字串输入端口(CSIP)310所取得。软件可以是用于认证电子装置的硬件,以确认该软件是否可在该硬件上实施正常运算,或者是需要被硬件所认证,以获得在硬件执行的许可。挑战字串(CS)是一追踪数据(trace data)字串,且是依据软件在电子装置上执行的部分运算而产生。依据本发明的一实施例,挑战字串输入端口(CSIP)310可使用一或多个硬件暂存器或者一些共享记忆体以接收该挑战字串(CS)。再者,追踪数据表示出一软件程序的逐步执行行为,或者更广泛的来说,表示出一序列主控制器指令(master commands)的逐步执行行为。如此的追踪数据,就像指令执行追踪数据(trace data)或是总线交换追踪数据,通常通过一些硬件功能而产生,而且该硬件功能是经由探测微处理器、总线主控制器或总线控制器内部的信号以监控该软件或总线主控制器的行为。用于产生追踪数据的硬件通常是可以分别加以控制的,通常不会受到本身行为正被追踪的软件或总线主控制器的控制。依据本发明的另一实施例,经由软件指令或总线主控制器命令而设定的一追踪数据记号(trace data marker),可以被一追踪数据过滤器340用来致能硬件功能以让本身正被追踪的软件或总线主控制器直接控制追踪数据的捕捉,或是让其他监控软件或总线主控制器来控制追踪数据的捕捉。
在认证程序中使用的认证结果,是由认证结果产生单元320基于追踪数据字串执行一认证程序后产生,这个认证结果可让软件用以认证电子装置的硬件单元,或是让硬件单元认证软件。认证实施单元330依据认证结果实施认证程序。因为挑战字串是依据在电子装置上执行的软件运算而产生的一追踪数据串列,所以骇客不容易推算出追踪数据中的哪个部分是用于认证。再者,因为追踪数据通常不由软件存取(追踪数据通常经由硬件连接直接传输),所以本发明是很难被骇客攻击的。
对于软件认证该电子装置的硬件单元,该软件的程序码部分可能需要修补(fix-up)。在本发明的实施例中,软件-硬件认证电子装置的装置300包含一修补单元380。当认证结果是通过,修补单元380可修补部分的软件程序码。在本发明的实施例中,依据由产生的认证结果导出的控制/状态/指示旗标(indication flag),修补单元380可修补该软件的部分程序码。当产生的认证结果是失败,修补单元380失效,如此不执行修补运算而且依赖认证程序的软件程序码仍维持相同,并且该软件不执行正常运算。
根据本发明的一实施例,软件-硬件认证电子装置的装置300包含一认证金钥(AK)输入单元350,一冗余过滤器360以及一签章比较单元370。认证金钥(AK)可透过认证金钥(AK)输入单元350取得。认证金钥(AK)输入单元350可由直接连线的(hard-wired)逻辑电路以取得金钥,也可连接电子装置的外部输入端,或者连接电子装置的嵌入式(embedded)非挥发储存装置或以上装置的某一组合以取得金钥。其中,认证金钥的至少一部分是软件所未知的,然而认证金钥的部分可为已知的数值,例如电子装置的序号,用以辨识电子装置。
依据认证金钥的信息,冗余过滤器360将挑战字串(CS)转换成认证字串(AS),同时让认证字串的长度等于或者短于挑战字串(CS)的长度。根据此实施例,依据认证金钥的信息,冗余过滤器360移除挑战字串(CS)的冗余数据来获得认证字串。在本发明的其他实施例中,冗余过滤器360可以将挑战字串(CS)压缩以产生认证字串(AS)。
在转换挑战字串(CS)后,依据认证金钥(AK)与认证字串(AS),签章比较单元370产生认证结果签章(ARS)。签章比较单元370可执行一检查码函数(checksum function)、CRC函数、加密函数(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者使用全部认证字串(AS)以及全部或部分认证金钥(AK)以产生认证结果签章(ARS)的映射函数。
随后,签章比较单元370执行认证结果签章(ARS)与一已知签章(PKS)的比对,以决定认证结果。认证实施单元330依据比较过程而决定的认证结果可进一步实施认证程序。
在本发明的实施例中,关于认证,也可考虑使用挑战字串长度(CSL)。例如,认证结果产生单元320确认一挑战字串长度(CSL)数值,此挑战字串长度数值是指经由挑战字串输入端口(CSIP)310输入的挑战字串(CS)的长度。接着,认证结果产生单元320可比较挑战字串长度(CSL)数值与认证金钥(AK)的预期挑战字串长度(ECSL)数值。并根据挑战字串长度(CSL)数值与认证金钥(AK)的预期挑战字串长度(ECSL)数值的比较结果,由签章比较单元370决定认证结果。例如,当认证结果签章(ARS)与已知签章(PKS)不相匹配时,签章比较单元370可决定认证结果为失败。而当挑战字串长度(CSL)数值等于预期挑战字串长度(ECSL)数值,而且认证结果签章(ARS)与已知签章(PKS)相匹配时,签章比较单元370可决定认证结果为通过。再者,当相关挑战字串长度(CSL)数值大于预期挑战字串长度(ECSL)数值,而且认证结果签章(ARS)与已知签章(PKS)相匹配时,签章比较单元370可决定认证程序的认证结果为不真实失败(FALSE-FAIL)。“通过”,“失败”与“不真实-失败”表示认证程序的三种不同状态。对于认证程序而言,可以实施一种或多种类型的认证结果(即“通过”,“失败”与“不真实失败”,或其组合),用以致能(enable)或禁能(disable)依赖认证程序的软件或硬件单元。因此,可通过这些类型的认证结果而提供不同的认证程度。
请参考图4,此流程图描绘了本发明实施例的电子装置软硬件认证的方法。电子装置软硬件认证的方法可采取计算机程序产品的形式出现,储存在非暂时性(non-transitory)计算机可读取储存媒体,并且该储存媒体具有计算机可读取指令。可使用任何适合的储存媒体,包含非挥发性记忆体,例如,只读记忆体(ROM),可程序化只读记忆体(PROM),可抹除可程序化只读记忆体(EPROM),以及电子可抹除可程序化只读记忆体(EEPROM);挥发性记忆体,例如静态随机存取记忆体(SRAM),动态随机存取记忆体(DRAM),双倍数据率静态随机存取记忆体(DDR-RAM);光学储存装置,例如CD-ROM与DVD-ROM;以及磁性储存装置,例如硬盘机与软盘机。
图4的方法流程从步骤410开始。首先,一挑战字串(CS)经由一挑战字串输入端口(CSIP)从电子装置输入(步骤410)。该软件可以是需要认证该电子装置的硬件单位以确认软件可在硬件单元上执行一般作业,或者需要由硬件单位认证以获得在硬件单元上执行的许可。依据本发明的一实施例,挑战字串输入端口(CSIP)可使用一或多个硬件暂存器或者一些共享记忆体以接收该挑战字串(CS)。
在步骤420,取得认证金钥(AK)。通过直接连线的(hard-wired)逻辑电路,或连接电子装置的外部输入,或者连接电子装置的嵌入式(embedded)非挥发储存装置或以上装置的某一组合以取得认证金钥(AK)。其中,认证金钥的至少一部分是软件所未知的,然而认证金钥的部分亦可为已知的数值,例如电子装置的序号,用以辨识该电子装置。
其次,依据认证金钥的信息,将挑战字串(CS)转换成认证字串(AS),同时让该认证字串的长度等于或者短于该挑战字串(CS)的长度(步骤430)。在此实施例中,依据认证金钥的信息,根据认证金钥的部分信息来移除挑战字串(CS)的冗余数据,以达成步骤430的转换,以获得认证字串(AS)。本发明的其他实施例中,将挑战字串(CS)转换成认证字串(AS)的步骤(步骤430),亦可以是透过将挑战字串(CS)压缩至认证字串(AS)而达成。
在转换该挑战字串(CS)后,依据认证金钥(AK)与认证字串(AS),产生认证结果签章(ARS)(步骤440)。产生认证结果签章(ARS)的函数可用于检查码函数(checksumfunction)、CRC函数、加密函数(cryptography function)例如RC4,MD5,SHA-1,DES,RSA,AES等,或者是其他使用全部认证字串(AS)以及全部或部分认证金钥(AK),以产生该认证结果签章(ARS)的任何其他映射函数。
随后,认证结果签章(ARS)与一已知签章(PKS)比较,以决定认证结果(步骤450)。在本发明的实施例中,已知签章(PKS)可经由直接连线(hard-wired)的逻辑电路产生,或是预先储存在一储存单元,以做为比较的用。由此,认证程序(步骤460)可以根据比较过程而决定的认证结果进一步被执行。
依据本发明的实施例,认证结果可为“通过”或是“失败”。因此,当认证结果是通过时,依赖认证程序的软件或硬件单元可实施正常运算(步骤470)。当认证结果是失败时,依赖认证程序的软件或硬件单元不实施正常运作(步骤480)。
在本发明的实施例中,关于认证,也可使用挑战字串长度(CSL)。例如,一相关联于由挑战字串输入端口(CSIP)输入的挑战字串(CS)的挑战字串长度(CSL)数值可以被验证。其次,挑战字串长度(CSL)数值可与相关联于认证金钥(AK)的预期挑战字串长度(ECSL)数值进行比较。根据该挑战字串长度(CSL)数值与认证金钥(AK)的预期挑战字串长度(ECSL)数值的比较结果,可进一步决定认证结果。例如,当认证结果签章(ARS)与已知签章(PKS)不相匹配时,认证结果可决定为失败,而当相关挑战字串长度(CSL)数值等于预期挑战字串长度(ECSL)数值,而且认证结果签章(ARS)与已知签章(PKS)相匹配时,认证程序的认证结果为通过。再者,当相关挑战字串长度(CSL)数值大于预期挑战字串长度(ECSL)数值,而且认证结果签章(ARS)与已知签章(PKS)相匹配时,认证程序的认证结果为不真实失败(FALSW-FAIL)。“通过”,“失败”与“不真实失败”表示认证程序的三种不同状态。对于该认证程序而言,可以实施一种或多种类型的认证结果(即“通过”,“失败”与“不真实失败”,或其组合),用以致能(enable)或禁能(disable)依赖认证程序的软件或硬件单元。因此,可通过这些类型的认证结果而提供不同的认证程度。
对于软件认证该电子装置的硬件单元,该软件的程序码部分可能需要修补(fix-up)。根据本发明实施例,当认证结果是通过时,依赖认证程序的软件可修补该软件的程序码部分,使得软件可实施正常运算(步骤470)。当认证结果是失败时,该软件需要修补的程序码部分可保持不变,如此一来该软件就无法实施正常运作(步骤480)。
在本发明实施例中,挑战字串(CS)是一追踪数据(trace data)字串,且是依据软件在电子装置上执行的部分运算而产生。依据本发明的一实施例,追踪数据表示一软件程序的逐步执行行为,或者广泛的来说,表示出一序列主控制器指令(master commands)的逐步执行行为。如此的追踪数据,类似指令执行追踪数据(trace data)或是总线交换追踪数据,通常通过一些硬件功能而产生,而且硬件功能是经由探测微处理器、总线主控制器或总线控制器内部的信号以监控该软件或总线主控制器的行为。用于产生追踪数据的硬件功能通常是可以分别加以控制的,通常不会受到本身行为正被追踪的软件或总线主控制器的控制。依据本发明的另一实施例,经由软件指令或总线主控制器命令而设定的追踪数据记号(trace data marker),可用来致能硬件功能以让本身正被追踪的软件或总线主控制器直接控制追踪数据的捕捉,或是让其他监控软件或总线主控制器来控制追踪数据的捕捉。
再者,本发明用于电子装置的软件-硬件认证的方法包含依据追踪数据(tracedata)字串以产生认证结果的步骤。
虽然本发明已以实施方式揭露如上,然其并非用以限定本发明,任何熟悉此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求书所界定的范围为准。

Claims (17)

1.一种电子装置软件-硬件认证的方法,其特征在于,至少包含:
经由一挑战字串输入端口从一电子装置输入一挑战字串,其中该挑战字串是一追踪数据字串,且是依据一软件在该电子装置上执行的部分运算而产生;
依据该追踪数据字串,执行一认证程序后,产生一认证结果,根据该认证结果,该软件对该电子装置的一硬件单元进行认证,或是该硬件单元对该软件进行认证;以及
依据该认证结果实施该认证程序,
其中该软件的部分程序码需要修补,以及实施该认证程序的步骤包含:
当该认证结果是通过时,修补该软件的部分程序码。
2.根据权利要求1的电子装置软件-硬件认证的方法,其特征在于,该追踪数据字串来自于一软件程序的逐步执行行为,或者主指令顺序。
3.根据权利要求1的电子装置软件-硬件认证的方法,其特征在于,还包含:
使用一追踪数据指标以捕捉该追踪数据字串。
4.根据权利要求1的电子装置软件-硬件认证的方法,其特征在于,还包含:
获得一认证金钥;
依据该认证金钥的信息,将该挑战字串转换成一认证字串,使得该认证字串的长度等于或者短于该挑战字串的长度;
依据该认证金钥与该认证字串,产生一认证结果签章;以及
比较该认证结果签章与一已知签章,依据签章比较结果所决定的认证结果,进一步实施该认证程序。
5.根据权利要求4的电子装置软件-硬件认证的方法,其特征在于,还包含:
确认一挑战字串长度数值,此挑战字串长度数值是指经由该挑战字串输入端口所接收的该挑战字串的长度;以及
比较该挑战字串长度数值以及对应于该认证金钥的一预期挑战字串长度数值,根据比较该挑战字串长度数值与该预期挑战字串长度数值的结果,进一步决定该认证结果。
6.根据权利要求5的电子装置软件-硬件认证的方法,其特征在于,还包含:
当该认证结果签章与该已知签章不相匹配时,决定该认证结果为失败;
当该挑战字串长度数值等于该预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,决定该认证结果为通过;以及
当该挑战字串长度数值大于该预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,决定该认证结果为不真实-失败。
7.一种电子装置软件-硬件认证的装置,其特征在于,至少包含:
一挑战字串输入端口,该挑战字串输入端口用于接受来自一电子装置的一挑战字串,该挑战字串是一追踪数据字串,而且是依据一软件在该电子装置上执行的部分运算而产生;
一认证结果产生单元,执行一认证程序后,产生一认证结果,根据该认证结果,该软件用以认证该电子装置的一硬件单元,或是该硬件单元用以认证该软件;以及
一认证实施单元,依据该认证结果,实施该认证程序,
其中该软件的部分程序码需要修补,该装置还包含:
当该认证结果是通过时,一修补单元用以修补该软件的部分程序码。
8.根据权利要求7的电子装置软件-硬件认证的装置,其特征在于,该装置还包含:
一追踪数据过滤器,用于使用一追踪数据指标来捕捉该追踪数据字串。
9.根据权利要求7的电子装置软件-硬件认证的装置,其特征在于,该装置还包含:
一认证金钥输入单元,用于取得一认证金钥;
一冗余过滤器,依据该认证金钥的信息,将该挑战字串转换成一认证字串,其中该认证字串的长度等于或者短于该挑战字串的长度;以及
一签章比较单元,依据该认证金钥与该认证字串,产生一认证结果签章,并将该认证结果签章与一已知签章进行比较以决定该认证结果,其中该认证实施单元根据该认证结果进一步实施该认证程序。
10.根据权利要求9的电子装置软件-硬件认证的装置,其特征在于,该认证结果产生单元用以验证一挑战字串长度数值,此挑战字串长度数值是指经由该挑战字串输入端口输入的该挑战字串的长度,以及将该挑战字串长度数值与该认证金钥的一预期挑战字串长度数值进行比较,
根据比较该挑战字串长度数值与该预期挑战字串长度数值的结果,该签章比较单元进一步决定该认证结果。
11.根据权利要求10的电子装置软件-硬件认证的装置,其特征在于:
当该认证结果签章与该已知签章不相匹配时,该签章比较单元决定该认证结果为失败;
当该挑战字串长度数值等于该预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,该签章比较单元决定该认证结果为通过;以及
当该挑战字串长度数值大于该预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,该签章比较单元决定该认证结果为不真实-失败。
12.一种电子装置软件-硬件认证的方法,其特征在于,至少包含:
经由一挑战字串输入端口从一电子装置输入一挑战字串;
获得一认证金钥;
依据该认证金钥的信息,将该挑战字串转换成一认证字串,其中该认证字串的长度等于或者短于该挑战字串的长度;
依据该认证金钥与该认证字串,产生一认证结果签章;
比较该认证结果签章与一已知签章,以决定一认证程序的认证结果;以及依据该认证程序的认证结果,实施该认证程序,
其中该软件的部分程序码需要修补,而且实施认证程序还包含:
当该认证结果是通过时,修补该软件的部分程序码。
13.根据权利要求12的电子装置软件-硬件认证的方法,其特征在于,还包含:
验证一挑战字串长度数值,此挑战字串长度数值是指经由该挑战字串输入端口所接收的该挑战字串的长度;以及
比较该挑战字串长度数值以及该认证金钥的一预期挑战字串长度数值,根据该挑战字串长度数值与该认证金钥的该预期挑战字串长度数值的比较结果,进一步决定该认证结果。
14.根据权利要求12的电子装置软件-硬件认证的方法,其特征在于,还包含:
当该认证结果签章与该已知签章不相匹配时,决定该认证结果为失败;
当挑战字串长度数值等于一预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,决定该认证结果为通过;以及
当该挑战字串长度数值大于该预期挑战字串长度数值,而且该认证结果签章与该已知签章相匹配时,决定该认证结果为不真实-失败。
15.根据权利要求12的电子装置软件-硬件认证的方法,其特征在于,该认证字串是依据该认证金钥的部分信息将该挑战字串的冗余数据移除而达成,或是将该挑战字串压缩进入该认证字串而达成。
16.根据权利要求12的电子装置软件-硬件认证的方法,其特征在于,该挑战字串是一追踪数据字串,且是依据软件在该电子装置上执行的部分运算而产生,该方法还包含:
依据该追踪数据字串,产生该认证结果。
17.根据权利要求12的电子装置软件-硬件认证的方法,其特征在于,还包含:
使用一追踪数据指标以捕捉追踪数据字串。
CN201410493160.4A 2013-10-02 2014-09-24 电子装置的软件‑硬件认证方法与其对应装置 Active CN104517050B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/044,227 2013-10-02
US14/044,227 US9239918B2 (en) 2013-10-02 2013-10-02 Method and apparatus for software-hardware authentication of electronic apparatus

Publications (2)

Publication Number Publication Date
CN104517050A CN104517050A (zh) 2015-04-15
CN104517050B true CN104517050B (zh) 2017-11-17

Family

ID=52741528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410493160.4A Active CN104517050B (zh) 2013-10-02 2014-09-24 电子装置的软件‑硬件认证方法与其对应装置

Country Status (3)

Country Link
US (1) US9239918B2 (zh)
CN (1) CN104517050B (zh)
TW (1) TWI552019B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10382461B1 (en) * 2016-05-26 2019-08-13 Amazon Technologies, Inc. System for determining anomalies associated with a request

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752115A (zh) * 2012-07-04 2012-10-24 北京天龙融和软件有限公司 挑战码生成方法及装置、动态口令认证方法及系统
CN103370716A (zh) * 2010-11-03 2013-10-23 维吉尼亚技术知识产权公司 使用电力指纹(pfp)来监控完整性并且增强基于计算机的系统的安全性

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754761A (en) 1995-03-06 1998-05-19 Willsey; John A. Universal sofeware key process
EP1126655A1 (de) 2000-02-15 2001-08-22 Siemens Aktiengesellschaft Verfahren zur Authentizitätssicherung von Hard- und Software in einem vernetzten System
US20030093381A1 (en) * 2001-11-09 2003-05-15 David Hohl Systems and methods for authorization of data strings
JP2003271965A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd 手書き署名認証プログラム、方法、及び装置
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US20040098591A1 (en) 2002-11-15 2004-05-20 Fahrny James W. Secure hardware device authentication method
US20060064756A1 (en) 2004-09-17 2006-03-23 Ebert Robert F Digital rights management system based on hardware identification
US7739517B2 (en) 2005-03-31 2010-06-15 Intel Corporation Hardware-based authentication of a software program
JPWO2007083347A1 (ja) * 2006-01-17 2009-06-11 富士通株式会社 通信端末装置、サーバ装置、データ管理システム、データ管理方法及びデータ管理プログラム
TWI386021B (zh) * 2007-08-07 2013-02-11 Chunghwa Telecom Co Ltd Dispersed call tracking screens with versatile characters and reliability Methods and systems
TWI385556B (zh) * 2008-10-08 2013-02-11 Via Tech Inc 電腦認證方法及使用該方法之軟體及硬體

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370716A (zh) * 2010-11-03 2013-10-23 维吉尼亚技术知识产权公司 使用电力指纹(pfp)来监控完整性并且增强基于计算机的系统的安全性
CN102752115A (zh) * 2012-07-04 2012-10-24 北京天龙融和软件有限公司 挑战码生成方法及装置、动态口令认证方法及系统

Also Published As

Publication number Publication date
CN104517050A (zh) 2015-04-15
TW201514753A (zh) 2015-04-16
US9239918B2 (en) 2016-01-19
TWI552019B (zh) 2016-10-01
US20150095978A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
CN103329095B (zh) 用编码的信息验证管理程序
US8930710B2 (en) Using a manifest to record presence of valid software and calibration
US20170060779A1 (en) Method and memory module for security-protected write processes and/or read processes on the memory module
US10038565B2 (en) Methods and systems for bypassing authenticity checks for secure control modules
CN105706099A (zh) 软件更新装置及软件更新程序
CN106203071A (zh) 一种固件升级方法及装置
JP5718373B2 (ja) 不揮発性メモリのメモリブロックを検査する方法
CN106547648A (zh) 一种备份数据处理方法及装置
CN101276389A (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
CN102456102A (zh) 用Usb key技术对信息系统特殊操作进行身份再认证的方法
CN111160879A (zh) 一种硬件钱包及其安全性提升方法和装置
CN104517050B (zh) 电子装置的软件‑硬件认证方法与其对应装置
CN112292680A (zh) 密码模块和针对其的运行方法
CN111104662A (zh) 用于对程序进行认证的方法和对应的集成电路
EP3486832A1 (en) Semiconductor device, authentication system, and authentication method
CN114764347A (zh) 一种多核控制器的程序校验系统、校验方法及存储介质
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
CN106156658B (zh) 一种基于韧体层的软件防护加密认证方法
CN102426638B (zh) 芯片读取方法及加密方法
CN111381846A (zh) 用于电子控制器安全刷新的数据校验方法
CN113783839B (zh) 区块链数据更新方法、装置、计算机设备及存储介质
WO2023223445A1 (ja) 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム
US20220385659A1 (en) Vehicle authentication control apparatus, vehicle control system, vehicle, and vehicle authentication processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant