CN112395587B - 计算机系统及强制自行认证方法 - Google Patents

计算机系统及强制自行认证方法 Download PDF

Info

Publication number
CN112395587B
CN112395587B CN202010052436.0A CN202010052436A CN112395587B CN 112395587 B CN112395587 B CN 112395587B CN 202010052436 A CN202010052436 A CN 202010052436A CN 112395587 B CN112395587 B CN 112395587B
Authority
CN
China
Prior art keywords
authentication
memory
processor
read
computer system
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
CN202010052436.0A
Other languages
English (en)
Other versions
CN112395587A (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.)
Nuvoton Technology Corp
Original Assignee
Nuvoton 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 Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of CN112395587A publication Critical patent/CN112395587A/zh
Application granted granted Critical
Publication of CN112395587B publication Critical patent/CN112395587B/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/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

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

Abstract

本发明揭露一种计算机系统及强制自行认证方法,该计算机系统包含存储器、处理器和认证执行硬件。处理器是执行软件,该软件包含对存储在存储器中的数据进行认证的认证程序。认证执行硬件耦接处理器,并且用以验证(i)处理器以至少一指定频率周期性地执行认证程序,以及(ii)认证程序成功认证数据。

Description

计算机系统及强制自行认证方法
技术领域
本发明是有关于一种安全计算环境,特别是有关于强制一计算机系统进行自行验证的方法以及系统。
背景技术
计算机系统通常包括一个或多个中央处理器(CPU)和存储器,其中CPU执行存储在存储器中的软件程序。在某些计算机系统中,计算机使用加密技术对计算机执行的软件进行验证。
例如在2003年3月28日发行的“安全要求的加密模块实施指南(SECURITYREQUIREMENTS FOR CRYPTOGRAPHIC MODULES,Implementation Guidelines)”,NIST-FIPS140-2;2008年7月发行的FIPS PUB 198-1中的“密钥散列消息认证码(The Keyed-HashMessage Authentication Code)”;2015年8月发行的NIST-FIPS 180-4“安全哈希标准(SHS)”;以及,2017年8月发行的“统一可扩展固件接口(Unified Extensible FirmwareInterface,UEFI)规范”,版本2.7(勘误A),皆描述验证固件(和其他软件或数据)真伪的方法。
发明内容
根据一实施例,本发明提出一种计算机系统,包含:一存储器;一处理器,用以执行软件,该软件包含对存储在该存储器中的数据进行认证的一认证程序;以及一认证执行硬件,其耦接该处理器并用以验证是否该处理器以至少一指定的频率定期执行该认证程序,以及验证是否该认证程序成功认证该数据。
根据一实施例,认证执行硬件用以:当该处理器未能以该至少一指定频率执行该认证程序时,启动一回应措施。根据一实施例,认证执行硬件用以:当该认证程序无法认证该数据时,启动一回应措施。
根据一实施例,认证程序在成功认证该数据时指示该处理器设定一信号有效,并且该认证执行硬件包含一计时器用以验证该信号是否以至少该指定频率被设定有效。
根据一实施例,处理器用以从一只读存储器执行该认证程序,并且只有当验证从该只读存储器执行一既定执行时,该认证执行硬件才决定该认证程序的该既定执行成功完成。根据一实施例,认证执行硬件藉由检测该认证程序的命令是否从该只读存储器取得,以验证该既定执行是否是从只读存储器中执行。
根据一实施例,本发明提出一种强制自行认证方法,包含:使用一处理器执行软件,其中该软件包含一认证程序用以对存储在一存储器中的数据进行认证;使用耦接该处理器的一认证执行硬件,验证是否该处理器以至少一指定频率定期执行该认证程序,以及验证是否认证程序成功认证该数据。
附图说明
图1为示意性地示出根据本发明实施例的具有强制认证的计算机系统的方块图。
图2为根据本发明一实施例示意性地示出当自行认证失败时对图1的计算机系统进行保护的时序波形图。
图3为根据本发明一实施例示意性地示出当软件无法执行自行认证软件时图1的计算机系统进行安全保护的时序波形图。
图4为根据本发明一实施例示意性绘示在计算机系统中强制自行认证的电路的结构。
上述图式为示意性且并未按比例缩放。图式中相对尺寸与比例因精确与/或方便的目的而放大或缩小,且尺寸为任意的且不限于此。于图式中相似的参考符号代表相似的元件。
符号说明
100:方块图
102:计算机系统
104:中央处理单元
106:只读存储器
108:随机存取存储器
110:外部快闪存储器接口
112:串行快闪存储器
114:网络接口
116:串行汇流排接口
118:强制认证电路
200、300:时序波形图
202、204、206、208、302、304、306、308:波形
210、212、214、216、310:时间指示
400:方块图
402:计时器
404:比较器
406:逻辑门
408:使能认证指示正反器
410:ROM指令提取检测器
412:RAM指令提取检测器
具体实施方式
以下将配合图式及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
当在此使用时,除非文中另行明确地表示,否则“一”、“该”、“此”等单数型式亦旨在包含复数型式。
计算机系统(具体而言,微控制器)通常包含随机存取存储器(RAM),其存储固件代码(FW)和数据。例如,存储在一只读存储器(ROM)中的嵌入式开机引导程序(bootloader)可以从串行快闪存储器下载固件代码,然后从随机存取存储元件中执行。在其它实施例,固件代码可以通过并行或是串行汇流排,以有线或无线的方式,从网络或从其它外部来源下载。
嵌入式开机引导程序可对其下载的固件代码进行认证,例如,使用加密技术,像是基于金钥的签章;当ROM代码被认为是安全的,则下载的固件代码是可信赖的。然而,一旦下载后,有时候只要供应给计算机系统的电源不中断,固件代码可能会执行很长的时间,例如几个月或几年。一旦黑客破坏计算机系统安全并载入一修改过的代码,例如,黑客可对芯片的供应电源产生一突波、或是使能一除错端口、或是直接注入数据至随机存取存储元件,则上述修改过的代码会被永远执行,变成严重的安全隐患。以下段落中,上述修改过的固件代码会称为"恶意固件代码"或是"恶意代码"。
本发明的实施例会揭露一种方法以及系统,用以强制一计算机系统周期地自行验证,藉此降低恶意固件代码取代真实固件代码而长时间执行的风险。在一实施例中,固件代码包含认证功能,其用于周期地(例如,藉由一可编程计时器来触发)认证存储器内容或是其一部分。如果认证失败,计算机系统发出一重置信号;或是,在一实施例中,发出不可屏蔽的中断(NMI);或是,在另一实施例中,计算机系统停止执行。接着,计算机系统将重开机,废弃储存在随机存取存储元件中的固件代码。
在一些实施例中,计算机系统包含强制认证电路(forced-authenticationcircuit,FAC),其亦称为认证执行硬件,用以验证(i)固件代码有周期性且足够频率地执行认证功能,以及(ii)认证成功完成。在一范例实施例,如果认证程序成功完成(也就是说,固件代码或是其一部分通过认证),则固件代码设定一认证OK信号(其通常是暂存器中的一位)有效。在此例中,强制认证电路包含一计时器,当认证OK信号设定有效时,计时器重置;实际上,计时器会从最后一次认证成功一直计数时间。如果计时器达到一预设门槛值,则强制认证电路会强制计算机系统重开机,例如,强制认证电路可发出重置信号或是一NMI。
在实施例中,强制认证电路不可由软件存取,软件只能设定认证OK信号。在一些实施例中,认证功能储存在只读存储器(ROM),固件代码周期地调用认证功能。在一实施例中,为了防止不是成功认证的伪造认证OK信号,如果最后一个命令不是从只读存储器取得的,强制认证电路会忽视认证OK信号;因此,如果储存在必定安全的只读存储器中的认证功能表示成功,才可接受认证OK信号。
虽然以上说明是有关于固件代码的认证,但本发明的实施例不限于认证全部固件代码,而可仅认证部分固件代码,或是可认证计算机系统的存储器中的数据。
综上所述,本发明的实施例可强制计算机系统周期地认证储存在随机存取存储元件的数据(例如全部固件代码)。计算机系统中的电路可确保当在一预设时间门槛值中随机存取存储元件中的数据认证失败会造成系统重置、NMI、或者停止固件代码执行、或是其他回应措施。除了基于ROM的固件代码可通知认证成功,因为固件代码不可存取此电路,所以固件代码无法伪造一成功认证。除了周期地调用认证功能,上述新增机制不会影响使用者软件性能。
SYSTEM DESCRIPTION
根据本发明的实施例,本发明提出几个计算机系统及其元件的范例。应注意的是,本发明的范围不受此些范例的限制。
图1为根据本发明一实施例示意性绘示具有强制认证功能的计算机系统的方块图100。
计算机系统102包含一中央处理单元(CPU)104(其亦称为处理器),用以执行储存在存储器的程序;一只读存储器(ROM)106,其用以储存初始启动代码、以及其他功能与数据,例如信任固件代码功能;以及一随机存取存储器(RAM)108,其用以储存固件代码以及数据。只读存储器106以及随机存取存储器108可共同称为计算机系统存储器。
为了下载固件代码,计算机系统102还可包含一外部快闪存储器接口110,其用以与串行快闪存储器112进行通讯,串行快闪存储器112可在计算机系统外部储存固件代码。可选地,计算机系统102可包含其他用于下载固件代码的接口,例如网络接口114,其用于计算机系统以及网络(例如,以太网)之间的通讯,并从网络下载固件代码;一串行汇流排接口116,用以进行计算机系统以及外部装置在串行汇流排(例如,集成电路汇流排(I2C))上的通讯,且在串行汇流排上下载固件代码。可选地,计算机系统102可包含其他接口用以从外部来源下载固件代码。将在以下段落提供外部来源的范例。
根据本发明的实施例,当计算机系统102载入固件代码,计算机系统会使用例如加密签章,以认证固件代码(或是其一部分)。认证程序(至少一部分)通常是储存在只读存储器106中,如果认证失败,则计算机系统将不载入固件代码,例如计算机系统可停止执行、重置系统、或是产生不可屏蔽的中断(NMI)。如果认证成功,中央处理单元104会载入固件代码至随机存取存储器108,接着,中央处理单元104从随机存取存储器执行此固件代码。此时可断开串行快闪存储器112。
在计算机系统的一些应用中,中央处理单元可长时间执行此固件代码。例如,在生产车间的计算机系统可下载稳定且成熟的程序控制固件代码,接着执行此固件代码,如果电力不中断,可能会执行几个月或是几年。在这段长时间内黑客会有机会攻击计算机系统,并改变固件代码;例如,黑客可能会在供电源输入突波、使能一除错端口、或是直接注入数据至随机存取存储器。因此,在固件代码载入之前由计算机系统执行固件代码的认证是不够的。
为了减轻此风险,在本发明的实施例中,计算机系统执行的固件代码必须包含对随机存取存储器数据的周期性认证。例如,每10秒进行一次认证,而根据性能与花费在认证上的电力,以及安全隐患以及恢复时间之间的取舍,实际的次数可以从几秒到几小时。在一些实施例中,认证率不是固定的,但是必须界定计算机系统执行两次认证之间的最大时间。
然而,黑客可禁能此周期性认证而让恶意的固件代码能长时间执行。为了减轻此风险,计算机系统102还包含一强制认证电路(FAC)118。每当一认证成功执行完成,强制认证电路118从中央处理单元104接收表示认证成功的信号。强制认证电路可包含一计时器,并在不会比预设门槛值更长的区间中验证新的认证执行为中央处理单元发出信号。
根据搭配图1描述的实施例,认证程序(至少一部分)储存在只读存储器106,并藉由调用基于只读存储器的功能在随机存取存储器中执行固件代码。强制认证电路更用以监控中央处理单元对存储器的存取,且除非一成功认证的指示是由基于只读存储器的指令执行结果,否则强制认证电路会阻挡此认证成功的指示。因此,黑客无法伪造认证成功执行的指示,且强制认证电路118将及时检测到认证失败。在一预先定义时间周期中,当认证失败或无法执行认证时,将结束恶意固件代码的执行。
可以理解的是,图1所示的运算系统102的实施例为一实施例范例。根据本发明所揭露的技术的运算系统不限于上述举例说明。在其他实施例,例如,可使用任何外部快闪存储器接口110、网络接口114以及串行汇流排接口116,以从串行快闪存储器及/或网络及/或串行汇流排下载固件代码。在一些实施例中,固件代码可经由适当接口以无线方式下载;在其他的实施例,固件代码可通过快速系统汇流排下载,例如通过快捷外设互联标准(PCIe);以及每一个接口110、114、116可与多个装置连接。
在实施例中,中央处理单元104可为一个以上相同或是不同型式的中央处理单元的组合;只读存储器106及/或随机存取存储器108可包含多个只读存储器/随机存取存储器实体。
图2为根据本发明一实施例的当自行认证失败时运算系统进行保护的时序波形图200。时序波形包含固件执行波形202,其绘示各种固件代码执行来源;一认证结果波形204,其表示认证执行失败或是成功。计时器波形206,其表示用于验证重复认证执行的计时器的操作;以及一重置波形208,其表示计算机系统的重置操作。
时序波形图200还包含时间指示210以及212,用以分别表示认证执行开始以及停止;时间指示214,用以表示中央处理单元开始执行恶意代码的时间点;以及一时间指示216,其用以表示回应认证失败而计算机系统重置。
一开始,从随机存取存储器执行固件代码。接着,在时间指示210,固件代码调用储存在只读存储器中的认证程序。在时间指示212,认证完成,且固件代码产生一认证OK信号,其传送至图1的强制认证电路118。
当强制认证电路接收此认证OK信号时,计时器重复地增加计数且重置以测量经过时间(elapsed time)。当新信号总是能及时接收到时,计时器不会达到门槛值。
上述顺序包含从随机存取存储器执行固件代码,接着从只读存储器执行认证,认证通过指示重复三次,直到在时间指示214,固件代码开始执行被篡改的(恶意)代码。下一次认证软件执行时将会产生认证失败信号(在时间指示216),因此计算机系统重置。
图3示意性绘示根据本发明一实施例的当软件无法执行自行认证软件时对运算系统进行保护的时序波形图300。
时序波形图300一开始类似时序波形图200,在时间指示210之间两者是相同的。然而,载入至随机存取存储器的恶意固件代码在时间指示214不调用储存在只读存储器中的认证功能。因此,没有认证OK指示产生,计时器不会重置,而计时器在时间指示310达到门槛值。强制认证电路接着产生重置信号,使得计算机系统重启动。
综上所述,根据搭配图2与图3描述的范例实施例,如果在时间指示214下载的固件代码不是正确的,则此固件代码会造成随机存取存储器数据的周期性认证失败或是无法在预设门槛值到达之前认证成功,而在认证失败或是计时器达到门槛值时,计算机系统将直接重置或是由强制认证电路重置。
可以理解的是,图2与图3所绘示的运算系统的波形仅为范例实施例。本发明所揭露的技术的计算机系统的波形并不限于上述举例。在其他实施例,例如,认证程序可分开成多区段,而在此些区段之间,从随机存取存储器执行固件代码(例如,在必须有快速回应时间(fast response time)的应用中,其无法让固件代码为了一完整认证程序中而停止执行。在其他的实施例中,强制认证电路118不产生重置信号,而是强制认证电路可停止所有中央处理单元的执行;在一实施例中,强制认证电路产生一NMI,而在另一实施例中,如果认证失败,强制认证电路可产生重置信号,而如果计时器达到门槛值,则强制认证电路产生NMI。
再者,如果(i)认证程序没有在至少指定频率下被调用,或是(ii)如果认证程序的某次调用没有成功完成认证,则强制认证电路118可启动其他任何适当的回应措施。
图4示意性绘示根据本发明一实施例的计算机系统中强制自行认证的电路结构的方块图400。中央处理单元104与只读存储器106以及随机存取存储器108进行通讯。强制认证电路118用以监控中央处理单元、只读存储器以及随机存取存储器之间的数据处置。强制认证电路亦经由认证OK线(AUTHENTICATION-OK wire,图中标示为AUTH.-OK)耦接于中央处理单元104,中央处理单元可使用认证OK线以表示此认证软件成功完成。
强制认证电路118包含一计时器402,其用以计数收到两次认证OK信号之间的时间(例如,计数固定频率时脉信号的周期)。以及一比较器(CMP)404,其用以比较计时器402输出的时间与一预设门槛值(图中标示为THRESHOLD),当此时间等于门槛值时,比较器404产生一重置信号(图中标示为RESET)。在图4的范例实施例中,认证OK信号为中央处理单元104的其中一IO接脚,而藉由中央处理单元的一输出指令来表示认证OK信号。
恶意固件代码可能会尝试愚弄上述的强制认证机制,例如,恶意固件代码可周期地设定认证OK指示。如果只有当储存在只读存储器的指令被执行而使得中央处理单元表示认证OK,才会让计时器402重置,则上述风险可以得到解决。
强制认证电路118还包含一逻辑门406(图中显示为与(AND)门);一使能认证指示正反器408;ROM指令提取检测器410以及RAM指令提取检测器412。只有当使能认证指示正反器408被设定时,逻辑门406才能将认证OK指示从中央处理单元104传递到计时器402。当用以监控中央处理单元对存储器存取的ROM指令提取检测器410检测到中央处理单元从只读存储器提取一指令时,正反器才会被设定(图中标示为SET),当RAM指令提取检测器412检测到中央处理单元从随机存取存储器提取指令时,正反器被重置(图中标示为CLEAR)。因此,只有从只读存储器提取指令之后以及从随机存取存储器提取指令之前的认证OK指示能让计时器402重置(图中标示为CLEAR)。
在计算机系统102的一些实施例中,执行管路可能会造成写入动作延迟,相对于对应的指令提取。因此,对认证OK指示设定有效的只读存储器指令可藉由至少一指令延迟对应的指令提取,如果下一指令是从随机存取存储器执行,则可阻止计时器重置。在那些实施例中,认证软件必须继续从只读存储器执行几个周期,例如执行预设数量的NOP指令,直到执行管路清空。
在再一实施例中,ROM指令提取检测器410用以设定一"使能认证辨识旗标",以回应对只读存储器中认证常用程序的第一位址的提取。因此,恶意固件代码不能跳至常用程序(其用以设定认证OK信号有效)的尾部,因此只读存储器常用程序可完整执行。
可以理解的是,图4的强制认证电路118的实施例为一举例式实施例。本发明所揭露的技术的强制认证电路不限于上述举例。在其他实施例,例如,中央处理单元104可写入一存储器地址(指向既有存储器或不存在的存储器)以表示认证OK信号。在此实施例,强制认证电路118包含一认证OK检测器,其监控中央处理单元对存储器的存取以及检测认证OK信号。此认证OK检测器的输出信号是输入逻辑门406,以来自中央处理单元104的认证OK线。在一实施例中,CMP404产生NMI,而不产生重置信号;在另一实施例中,CMP404产生停止信号,以停止中央处理单元。
因此,根据本发明的上述实施例,长时间从随机存取存储器执行固件代码的计算机系统可保护防范固件代码被未经授权的修改。此保护包含,第一,固件代码(包含全部固件代码或是其一部分)必须周期地认证储存在随机存取存储器中的数据;第二,认证软件(至少一部分)储存在只读存储器中,相对而言不易受黑客攻击;第三,计算机中的电路包含一计时器,如果认证延迟一预设门槛值以上,则此电路重置、停止或是中断中央处理单元;第四,电路藉由验证认证OK指示是由基于只读存储器的指令所启动,以保护认证OK指示不受黑客攻击。
可以理解的是,图1至图4中计算机系统以及强制认证电路的实施例为举例式实施例。本发明所揭露的技术的计算机系统以及强制认证电路不受上述举例说明的限制。在其他实施例,例如,固件代码是从外部快闪存储器(而非随机存取存储器)执行,因此其需要周期地自行验证。随机存取存储器108可为静态或是动态存储器、嵌入式或是外部存储器。中央处理单元104可为任何一种微控制器(例如,RISC或CISC)、或是多个处理器。
在本发明的一些实施例中,中央处理单元可包含一快取存储器,用以频繁存取数据;在此些实施例中,认证软件的至少一部分通常在非快取模式下执行。
计算机系统102或是其元件可用任何适当的硬件来实现,例如特殊应用集成电路(ASIC)、或是受保护的现场可编程逻辑门阵列(FPGA)。在一些实施例中,控制器的一些或是全部元件可用软件、硬件或是硬件与软件的组合来实现。
通常,中央处理单元104包含一通用处理器,其可用软件编程以执行本发明上述的功能。此软件可通过网络以电子信号形式下载至处理器,例如,此软件可提供及/或储存在非暂时性有形媒体上,例如磁性存储器、光学存储器或是电子存储器。
只读存储器106可用其他类型存储器来仿真,例如使用快闪存储器、随机存取存储器或是一次性可编程存储器,其具有写入/抹除禁能逻辑电路,因此可仿真不能修改的只读存储器。
虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明,任何本领域相关技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视权利要求书所界定者为准。

Claims (12)

1.一种计算机系统,其特征在于,包括:
一存储器;
一处理器,用以执行软件,所述软件包含对存储在所述存储器中的数据进行认证的一认证程序;以及
一认证执行硬件,其耦接所述处理器并用以验证是否所述处理器以至少一指定的频率定期执行所述认证程序,以及验证是否所述认证程序成功认证所述数据;
所述认证执行硬件包括:一计时器、比较器、逻辑门和使能认证指示正反器,所述比较器用以比较计时器输出的时间与一预设门槛值,当此时间等于门槛值时,比较器产生一重置信号;所述逻辑门用以在所述使能认证指示正反器被设定时,将认证OK指示从中央处理单元传递到计时器;
所述处理器被配置为从只读存储器执行所述认证程序,以及所述认证执行硬件检测是否从所述只读存储器提取了认证程序的指令以及所述处理器是否是从所述只读存储器中以至少一指定的频率定期执行所述认证程序;
所述计时器输出的时间包括:收到两次认证OK指示之间的时间;
所述认证执行硬件包括ROM指令提取检测器和RAM指令提取检测器,用于监测所述处理器访问所述存储器的所述ROM指令提取检测器检测到所述处理器从所述只读存储器提取指令时,所述使能认证指示正反器才被设置,并且其中,仅当所述RAM指令提取检测器检测到所述处理器从随机存取存储器提取指令时,所述使能认证指示正反器才被重置,并且其中,仅通过在从所述只读存储器提取指令之后和从所述随机存取存储器提取指令之前的所述认证OK指示重置所述计时器。
2.根据权利要求1所述的计算机系统,其特征在于,所述认证执行硬件用以:当所述处理器未能以所述至少一指定频率执行所述认证程序时,启动一回应措施。
3.根据权利要求1所述的计算机系统,其特征在于,所述认证执行硬件用以:当所述认证程序无法认证所述数据时,启动一回应措施。
4.根据权利要求1所述的计算机系统,其特征在于,所述认证程序在成功认证所述数据时指示所述处理器设定一信号有效,并且所述认证执行硬件包含一计时器用以验证所述信号是否以至少所述指定频率被设定有效。
5.根据权利要求1所述的计算机系统,其特征在于,所述处理器用以从一只读存储器执行所述认证程序,并且只有当验证从所述只读存储器执行一既定执行时,所述认证执行硬件才决定所述认证程序的所述既定执行成功完成。
6.根据权利要求5所述的计算机系统,其特征在于,所述认证执行硬件藉由检测所述认证程序的命令是否从所述只读存储器取得,以验证所述既定执行是否是从只读存储器中执行。
7.一种强制自行认证方法,其特征在于,应用权利要求1至6任一项所述的计算机系统实现,该方法包括:
使用一处理器执行软件,其中所述软件包含一认证程序用以对存储在一存储器中的数据进行认证;以及
使用耦接所述处理器的一认证执行硬件,验证是否所述处理器以至少一指定频率定期执行所述认证程序,以及验证是否认证程序成功认证所述数据;
所述认证执行硬件包括:一计时器、比较器、逻辑门和使能认证指示正反器,所述比较器比较计时器输出的时间与一预设门槛值,当此时间等于门槛值时,比较器产生一重置信号;所述逻辑门在所述使能认证指示正反器被设定时,将认证OK指示从中央处理单元传递到计时器。
8.根据权利要求7所述的强制自行认证方法,其特征在于,还包括:
当所述处理器未能以所述至少一指定频率执行所述认证程序时,由所述认证执行硬件启动一回应措施。
9.根据权利要求7所述的强制自行认证方法,其特征在于,还包括:
当所述认证程序未能认证所述数据时,由所述认证执行硬件启动一回应措施。
10.根据权利要求7所述的强制自行认证方法,其特征在于,还包括:所述认证程序指示所述处理器在成功认证所述数据时设定一信号有效;
相对应的,验证所述处理器以所述至少一指定频率执行所述认证程序的步骤还包括:
使用所述认证执行硬件的一计时器,其中所述信号是以所述至少一指定频率被设定为有效。
11.根据权利要求7所述的强制自行认证方法,其特征在于,执行所述软件的步骤包括:
从一只读存储器执行所述认证程序;
相对应的,其中验证所述认证程序成功认证所述数据的步骤包括:
验证所述认证程序的一既定执行是否从所述只读存储器执行,若是,才决定所述认证程序的所述既定执行成功完成。
12.根据权利要求11所述的强制自行认证方法,其特征在于,验证所述既定执行是否从所述只读存储器执行的步骤包括:
检测所述认证程序的命令是否是从所述只读存储器取得。
CN202010052436.0A 2019-08-15 2020-01-17 计算机系统及强制自行认证方法 Active CN112395587B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/541,218 US11436315B2 (en) 2019-08-15 2019-08-15 Forced self authentication
US16/541,218 2019-08-15

Publications (2)

Publication Number Publication Date
CN112395587A CN112395587A (zh) 2021-02-23
CN112395587B true CN112395587B (zh) 2024-05-24

Family

ID=74568363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010052436.0A Active CN112395587B (zh) 2019-08-15 2020-01-17 计算机系统及强制自行认证方法

Country Status (4)

Country Link
US (1) US11436315B2 (zh)
JP (1) JP7112449B2 (zh)
CN (1) CN112395587B (zh)
TW (1) TWI775041B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032737B (zh) * 2021-03-15 2021-11-30 清华大学 软件的保护方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162511A (ja) * 2001-11-22 2003-06-06 Seiko Epson Corp 認証システム、ペン型入力装置及び認証処理用プログラム
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
JP2008112443A (ja) * 1996-09-05 2008-05-15 Ericsson Inc 電子メモリ改竄防止システム
CN103105783A (zh) * 2011-11-15 2013-05-15 晨星软件研发(深圳)有限公司 嵌入式元件与控制方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740404A (en) 1993-09-27 1998-04-14 Hitachi America Limited Digital signal processor with on-chip select decoder and wait state generator
US5737748A (en) 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
US6289408B1 (en) 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US5696994A (en) 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US5713306A (en) 1995-09-26 1998-02-03 Johnson; Arnold B. Feline playground system
US6088450A (en) 1996-04-17 2000-07-11 Intel Corporation Authentication system based on periodic challenge/response protocol
US6049876A (en) 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
US6510522B1 (en) 1998-11-20 2003-01-21 Compaq Information Technologies Group, L.P. Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus
US7155615B1 (en) 2000-06-30 2006-12-26 Intel Corporation Method and apparatus for providing a secure-private partition on a hard disk drive of a computer system via IDE controller
US7350083B2 (en) 2000-12-29 2008-03-25 Intel Corporation Integrated circuit chip having firmware and hardware security primitive device(s)
JP3501129B2 (ja) 2001-02-09 2004-03-02 株式会社三洋物産 制御装置
US6832317B1 (en) 2001-05-10 2004-12-14 Advanced Micro Devices, Inc. Personal computer security mechanism
US7065654B1 (en) 2001-05-10 2006-06-20 Advanced Micro Devices, Inc. Secure execution box
US7206933B2 (en) * 2001-07-09 2007-04-17 Advanced Micro Devices, Inc. Software modem with privileged mode driver authentication
US20030061494A1 (en) 2001-09-26 2003-03-27 Girard Luke E. Method and system for protecting data on a pc platform using bulk non-volatile storage
ATE305197T1 (de) 2002-04-16 2005-10-15 Bosch Gmbh Robert Verfahren zur datenübertragung in einem kommunikationssystem
EP1429224A1 (en) 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7205883B2 (en) 2002-10-07 2007-04-17 Safenet, Inc. Tamper detection and secure power failure recovery circuit
US20080177994A1 (en) 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7010639B2 (en) 2003-06-12 2006-03-07 Hewlett-Packard Development Company, L.P. Inter integrated circuit bus router for preventing communication to an unauthorized port
US7398345B2 (en) 2003-06-12 2008-07-08 Hewlett-Packard Development Company, L.P. Inter-integrated circuit bus router for providing increased security
US20050021968A1 (en) 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US20050132186A1 (en) 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US7664836B2 (en) 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
US7607021B2 (en) 2004-03-09 2009-10-20 Cisco Technology, Inc. Isolation approach for network users associated with elevated risk
US7496929B2 (en) 2004-05-28 2009-02-24 Intel Corporation Performance of operations on a hardware resource through integral interpretive execution
US20060059360A1 (en) 2004-07-01 2006-03-16 Ortkiese Jerry B Authenticating controller
US7774619B2 (en) 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US20060156008A1 (en) 2005-01-12 2006-07-13 Microsoft Corporation Last line of defense ensuring and enforcing sufficiently valid/current code
US8090919B2 (en) 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US20070109015A1 (en) 2005-11-15 2007-05-17 Alcatel Switched integrated circuit connection architectures and techniques
US20080276302A1 (en) 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices
US10180809B2 (en) 2006-05-17 2019-01-15 Richard Fetik Secure application acceleration system, methods and apparatus
US20080282017A1 (en) 2007-05-09 2008-11-13 Microsoft Corporation Serial Peripheral Interface Switch
US7797115B2 (en) 2007-08-13 2010-09-14 Nuvoton Technology Corporation Time interval measurement for capacitive detection
US8631488B2 (en) 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
GB2477774A (en) 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
KR20120092222A (ko) 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US20120255014A1 (en) 2011-03-29 2012-10-04 Mcafee, Inc. System and method for below-operating system repair of related malware-infected threads and resources
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
JP5543949B2 (ja) 2011-09-21 2014-07-09 株式会社東芝 制御装置およびモニタプログラム
KR101301022B1 (ko) 2011-12-23 2013-08-28 한국전자통신연구원 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
US20130254906A1 (en) 2012-03-22 2013-09-26 Cavium, Inc. Hardware and Software Association and Authentication
US20130312099A1 (en) 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9158628B2 (en) 2013-11-27 2015-10-13 American Megatrends, Inc. Bios failover update with service processor having direct serial peripheral interface (SPI) access
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
US10303880B2 (en) 2014-07-24 2019-05-28 Nuvoton Technology Corporation Security device having indirect access to external non-volatile memory
US9569638B2 (en) 2014-12-31 2017-02-14 Google Inc. Trusted computing
US10114970B2 (en) 2015-06-02 2018-10-30 ALTR Solutions, Inc. Immutable logging of access requests to distributed file systems
US10095891B2 (en) 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US10452582B2 (en) 2015-06-08 2019-10-22 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
CN105117314B (zh) * 2015-07-07 2017-07-11 福州瑞芯微电子股份有限公司 一种Memory模块的验证方法及系统
US10346605B2 (en) * 2016-06-28 2019-07-09 Paypal, Inc. Visual data processing of response images for authentication
US10380879B2 (en) 2017-06-14 2019-08-13 Allegro Microsystems, Llc Sensor integrated circuits and methods for safety critical applications
JP6584487B2 (ja) 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
US11086998B2 (en) 2018-01-30 2021-08-10 Dell Products L.P. Modifiable policy action secure boot violation system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112443A (ja) * 1996-09-05 2008-05-15 Ericsson Inc 電子メモリ改竄防止システム
JP2003162511A (ja) * 2001-11-22 2003-06-06 Seiko Epson Corp 認証システム、ペン型入力装置及び認証処理用プログラム
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
CN103105783A (zh) * 2011-11-15 2013-05-15 晨星软件研发(深圳)有限公司 嵌入式元件与控制方法

Also Published As

Publication number Publication date
US11436315B2 (en) 2022-09-06
JP7112449B2 (ja) 2022-08-03
CN112395587A (zh) 2021-02-23
US20210049258A1 (en) 2021-02-18
TW202109327A (zh) 2021-03-01
TWI775041B (zh) 2022-08-21
JP2021034011A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
EP2069992B1 (en) Protecting interfaces on processor architectures
US9367328B2 (en) Out-of-band host OS boot sequence verification
US7921286B2 (en) Computer initialization for secure kernel
JP4708414B2 (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
CN110334521B (zh) 可信计算系统构建方法、装置、可信计算系统及处理器
US8341393B2 (en) Security to extend trust
US11972033B2 (en) Alert handling
CN110321715A (zh) 可信度量方法、装置及处理器
WO2008124652A2 (en) Virtual machine support for metered computer usage
US11556651B2 (en) Method for secure booting using route switchover function for boot memory bus and apparatus using the same
US10877673B2 (en) Transparently attached flash memory security
Francillon et al. Systematic treatment of remote attestation
CN113614723A (zh) 更新信号
CN112395587B (zh) 计算机系统及强制自行认证方法
EP1465038B1 (en) Memory security device for flexible software environment
De Oliveira Nunes et al. Casu: Compromise avoidance via secure update for low-end embedded systems
CN111597560B (zh) 一种安全可信模组启动方法及系统
CN113626791A (zh) 存储器模块认证扩展
CN112307481B (zh) 一种系统可信启动方法、电子设备及计算机可读存储介质
EP1535124B1 (en) Computer architecture for executing a program in a secure of insecure mode
Liu et al. Trusted authentication mechanism based on dual authentication architecture in industrial IOT-based optical access network
RU2630890C1 (ru) Способ обеспечения защищённой работы вычислительного средства и прибор для его осуществления
US20220374510A1 (en) Information processing apparatus, information processing method, and non-transitorycomputer readable medium storing program
EP4281893A1 (en) Read-only memory (rom) security
EP4281891A1 (en) Read-only memory (rom) security

Legal Events

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