CN101308538A - 检查固件完整性的方法和设备 - Google Patents

检查固件完整性的方法和设备 Download PDF

Info

Publication number
CN101308538A
CN101308538A CNA2008100030872A CN200810003087A CN101308538A CN 101308538 A CN101308538 A CN 101308538A CN A2008100030872 A CNA2008100030872 A CN A2008100030872A CN 200810003087 A CN200810003087 A CN 200810003087A CN 101308538 A CN101308538 A CN 101308538A
Authority
CN
China
Prior art keywords
firmware
ppu
hash function
function value
data
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.)
Granted
Application number
CNA2008100030872A
Other languages
English (en)
Other versions
CN101308538B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101308538A publication Critical patent/CN101308538A/zh
Application granted granted Critical
Publication of CN101308538B publication Critical patent/CN101308538B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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]
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

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

Abstract

提供一种用于检查固件的完整性的方法和设备。所述方法包括:存储用于确定外部处理器的实际固件是否已经被攻击的未受攻击的固件的第一哈希函数值;经由总线读取实际固件;计算实际固件的第二哈希函数值;将第一哈希函数值与第二哈希函数值进行比较;以及基于比较结果与外部处理器共享总线密钥。

Description

检查固件完整性的方法和设备
本申请要求于2007年5月14日提交到韩国知识产权局的第10-2007-0046665号韩国专利申请的优先权,该申请的公开完全合并于此,以资参考。
技术领域
符合本发明的方法和设备涉及检查固件的完整性,更具体地说,涉及检查固件的完整性以便在处理器之间安全地共享总线密钥。
背景技术
最近,对音乐或音频视觉内容的非法复制被广泛运用,人们可轻易地获得非法复制的内容。为了防止这些问题,已经将大量注意力投入作为保护内容的方法的数字版权管理(DRM)方法,并且DRM方法的使用已经增多。
DRM方法主要分类为加密和使用权限。也就是说,DRM方法通过对内容加密来防止未授权的人访问内容,并通过检查使用权限使内容能够仅在授权范围内被使用。
然而,第三方可将加密的内容解密或将限制内容仅被使用预定时间长度的内容时间长度限制消除,由此能够发布内容使得任何人都可以使用该内容。
因此,为了防止这些问题,DRM方法提供一种规定内容处理器需要满足的项目的鲁棒性规则。通常使用的DRM方法包括:数字传输内容保护(DTCP)、视窗媒体数字版权管理(WMDRM)和高级访问内容系统(AACS)。这些DRM方法的鲁棒性规则通常需要保护加密密钥,保护处理器之内的解密内容防止其外部泄露以及保护解密内容防止其泄露到处理器之内的用户可访问总线。例如,用户可访问总线可以是外设部件互连(PCI)总线、集成驱动电子设备(IDE)总线或通用串行总线(USB)。
图1是示出建立通用处理器之间的加密数据通信的现有技术方法的框图。参照图1,第一处理器100和第二处理器110共享总线密钥以经由总线建立通信。由于第一处理器100和第二处理器110共享总线密钥,因此,非授权的第三方不能访问解密的内容。为了共享总线密钥,可使用各种方法,例如Diffie-Hellman(DH)算法。
这些方法具有的优点在于如果在第一处理器100和第二处理器110之间安全地共享总线密钥,则可安全地保护总线免遭黑客攻击。
然而,如果第一处理器100和第二处理器110中的一个被攻击,则不能保证总线的安全。例如,黑客可在一个处理器(例如,第一处理器100)中安装后门程序以便获取总线密钥,并通过使用获取的总线密钥对从另一处理器(例如,第二处理器110)接收的数据进行解密。
发明内容
本发明提供一种用于检查固件的完整性以便减少通过攻击处理器而使总线密钥泄露的方法和设备。
根据本发明的一方面,提供一种检查固件的完整性的方法,所述方法包括:存储用于确定外部处理器的实际固件是否已经被攻击的未受攻击的固件的第一哈希(hash)函数值;经由总线读取实际固件;计算实际固件的第二哈希函数值;将第一哈希函数值与第二哈希函数值进行比较;以及基于比较结果与外部处理器共享总线密钥。
读取固件的步骤可包括:读取从外部处理器的非易失性存储器加载到外部处理器的易失性存储器的固件。
读取固件的步骤可包括:从外部处理器的非易失性存储器读取固件,其中,所述非易失性存储器包括闪存或电可擦除和可编程只读存储器(EEPROM)。
所述方法还可包括:通过使用总线密钥建立与外部处理器的加密数据通信。
可使用电子签名方法和消息认证码(MAC)方法中的一个来代替哈希函数方法。
根据本发明的另一方面,提供一种检查固件的完整性的方法,所述方法包括:存储用于确定外部处理器的实际固件是否已被攻击的未受攻击的固件部分的偏移位置和数据大小;存储未受攻击的固件部分的第一哈希函数值;从外部处理器读取与偏移位置和数据大小相应的数据;计算读取的数据的第二哈希函数值;将第一哈希函数值与第二哈希函数值进行比较;以及基于比较结果与外部处理器共享总线密钥。
所述方法还可包括:基于比较结果更新偏移位置、数据大小和第一哈希函数值。
更新偏移位置、数据大小和第一哈希函数值的步骤可包括:如果第一哈希函数值等于第二哈希函数值,则更新偏移位置和数据大小;从外部处理器读取与更新的偏移位置和更新的数据大小相应的数据;计算读取的数据的第三哈希函数值;以及将第一哈希函数值更新为第三哈希函数值。
可按照预定周期重复执行读取与更新的偏移位置和更新的数据大小相应的数据的步骤、计算读取的数据的第三哈希函数值的步骤和更新第一哈希函数值的步骤。
所述方法还可包括:通过使用总线密钥与外部处理器建立加密数据通信。
根据本发明的另一方面,提供一种检查固件的完整性的方法,所述方法包括:对存储在外部处理器中的固件执行完整性检查;基于执行完整性检查的结果与外部处理器共享总线密钥;以及使用总线密钥与外部处理器建立加密数据通信。
根据本发明的另一方面,提供一种用于检查固件的完整性的设备,所述设备包括:存储单元,存储用于确定外部处理器的实际固件是否已被攻击的未受攻击的固件的第一哈希函数值;固件读取单元,经由总线读取实际固件;哈希值计算单元,计算实际固件的第二哈希函数值;比较单元,将第一哈希函数值与第二哈希函数值进行比较;以及总线密钥共享单元,基于比较结果与外部处理器共享总线密钥。
根据本发明的另一方面,提供一种用于检查固件的完整性的设备,所述设备包括:存储单元,存储用于确定外部处理器的实际固件是否已被攻击的未受攻击的固件部分的偏移位置、数据大小和第一哈希函数值;固件读取单元,从外部处理器读取与偏移位置和数据大小相应的数据;哈希值计算单元,计算读取的数据的第二哈希函数值;比较单元,将第一哈希函数值与第二哈希函数值进行比较;以及总线密钥共享单元,基于比较结果与外部处理器共享总线密钥。
根据本发明的另一方面,提供一种其上记录有用于执行检查固件的完整性的方法的程序的计算机可读介质,所述方法包括:存储用于确定外部处理器的实际固件是否已经被攻击的未受攻击的固件的第一哈希函数值;经由总线读取实际固件;计算实际固件的第二哈希函数值;将第一哈希函数值与第二哈希函数值进行比较;以及基于比较结果与外部处理器共享总线密钥。
附图说明
通过结合附图对示例性实施例的详细描述,本发明的上述和其他方面将会变得更清楚,其中:
图1是示出在通用处理器之间建立加密数据通信的现有技术方法的框图;
图2是示出根据本发明示例性实施例的检查固件完整性的方法的流程图;
图3和图4示出根据本发明另一示例性实施例的检查固件的完整性的方法的流程图;
图5是示出根据本发明另一示例性实施例的检查固件的完整性的方法的流程图;
图6是根据本发明示例性实施例的用于检查固件的完整性的设备的框图;以及
图7是根据本发明另一示例性实施例的用于检查固件的完整性的设备的框图。
具体实施方式
现将参照附图更完整地描述本发明的示例性实施例。
图2是示出根据本发明示例性实施例的检查固件的完整性的方法的流程图。参照图2,用于确定实际固件是否已被攻击的未受攻击的固件的第一哈希函数值被存储在图1的第二处理器110的非易失性存储器112中(操作202)。这里,实际固件操作图1的第一处理器100,未受攻击的固件是用于确定实际固件是否已被攻击的外部处理器(第一处理器100)的固件。然而,第一哈希函数值可由用户预先计算和存储可以不是从外部处理器接收。存储可以操作其他处理器的固件的哈希函数值的原因在于执行认证以便确定例如第一处理器100是否已被黑客攻击。
接下来,经由总线读取存储在外部处理器中的实际固件(操作204)。实际固件用于实际操作外部处理器。例如,图1的第一处理器100的非易失性存储器104存储用于实际操作第一处理器100的固件,因此,第二处理器110可从第一处理器100的非易失性存储器104读取固件。例如,非易失性存储器104可以是闪存或电可擦除和可编程只读存储器(EEPROM)。
根据本发明的另一示例性实施例,在第一处理器100的操作期间,可以读取从非易失性存储器104加载到第一处理器100的易失性存储器102的固件。该示例性实施例的优点在于可以通过在第一处理器100中安装两个固件(例如,将被检查完整性的固件和实际操作的固件)防止黑客使总线密钥暴露(将在以后详细描述)。
然后,存储读取的固件的第二哈希函数值(操作206)。读取的固件可以被存储在外部处理器的非易失性存储器中或者从外部处理器的非易失性存储器加载到易失性存储器。计算读取的固件的哈希函数值的方法对于本领域的技术人员是已知的,因此将省略对其的详细描述。
接下来,将第一哈希函数值与第二哈希函数值进行比较(操作208)。如果读取的固件的第二哈希函数值等于未受到攻击的固件的第一哈希函数值,则意味着外部处理器没有被黑客攻击。相反,如果第二哈希函数值不等于第一哈希函数值,则意味着外部处理器已被攻击。
然后,如果在操作210确定第一哈希函数值与第二哈希函数值不相等,则不再继续该方法。
如果在操作210确定第一哈希函数值等于第二哈希函数值,则与外部处理器共享总线密钥(操作212)。例如,为了共享总线密钥,可使用各种方法,例如Diffie-Hellman(DH)算法。
接下来,可使用共享总线密钥与外部处理器建立加密通信(操作214)。
在图2中示出的检查固件的完整性的方法中,根据当前示例性实施例,当使用电子签名方法或MAC方法代替上述哈希函数方法时,可以获得相同的效果。
图3和图4示出根据本发明另一示例性实施例的检查固件的完整性的方法的流程图。参照图3和图4,存储用于确定实际固件是否已被攻击的未受攻击的固件(未受攻击的数据)部分的偏移位置和数据大小(操作302)。
偏移位置是未受攻击的固件部分的开始位置。因此,如果从外部处理器读取与偏移位置和数据大小相应的数据,则在偏移位置处读取与数据大小相应的数据。然而,偏移位置和数据大小可由用户预先存储,可以不是从外部处理器接收。
接下来,存储用于确定实际固件是否已被攻击的未受攻击的数据的第一哈希函数值(操作304)。第一哈希函数值可由用户预先计算和存储可以不是从外部处理器接收。例如,图1中示出的第二处理器110的非易失性存储器112可存储未受攻击的数据的偏移位置、数据大小和哈希函数值。
然后,经由总线从外部处理器读取与偏移位置和数据大小相应的数据(实际数据)(操作306)。读取的数据是构成存储在外部处理器中的固件的数据的一部分。
例如,由于图1中示出的第一处理器100的非易失性存储器104存储用于实际操作第一处理器100的固件,因此第二处理器110可以从第一处理器100的非易失性存储器104读取数据。
根据本发明的另一示例性实施例,还可以读取从非易失性存储器104加载到易失性存储器102的数据。已经在上面描述了该示例性实施例的优点。
接下来,计算读取的数据的第二哈希函数值(操作308)。计算读取的数据的哈希函数值的方法对于本领域的普通技术人员是已知的,因此,将省略对其的详细描述。
然后将第一哈希函数值与第二哈希函数值进行比较(操作310)。如上所述,如果第二哈希函数值等于第一哈希函数值,则意味着外部处理器未受到攻击。
如果在操作312确定第一哈希函数值等于第二哈希函数值,则方法进行操作314。如果确定第一哈希函数值不等于第二哈希函数值,则不再继续该方法。
在操作314至320,当第一哈希函数值等于第二哈希函数值时,更新偏移位置、数据大小和第一哈希函数值。
具体地说,如果确定第一哈希函数值等于第二哈希函数值,则更新偏移位置和数据大小(操作314)。也就是说,重新改变未受攻击的数据的开始位置和数据大小。可随机确定偏移位置和数据大小。
接下来,经由总线从外部处理器读取与更新的偏移位置和更新的数据大小相应的数据(操作316)。
计算读取的数据的第三哈希函数值(操作318)。
然后,第一哈希函数值被更新为第三哈希函数值(操作320)。
可按照预定周期(例如,以预定的时间间隔或每当引导系统时)重复执行从外部处理器读取与偏移位置和数据大小相应的数据的处理以及更新第一哈希函数值的处理。
如上所述,为了执行认证从外部处理器读取的数据被周期性改变,因此可以安全地保护数据防止其被攻击。
接下来,与外部处理器共享总线密钥(操作322)。为了共享总线密钥,可使用各种方法,例如DH算法。
其后,使用共享的总线密钥与外部处理器建立加密通信(操作324)。
可以在操作322至324之前或之后执行操作314至320。另外,在执行操作314至320之后不再继续本方法,或者不用执行操作314至320而不再继续本方法。
在根据当前示例性实施例检查固件的完整性的方法中,可使用电子签名方法或MAC方法代替哈希函数方法。
图5是示出根据本发明另一示例性实施例的检查固件的完整性的方法的流程图。参照图5,对存储在外部处理器中的固件执行完整性验证(操作502)。执行完整性验证以便确定存储在外部处理器中的固件是否已被黑客篡改。
接下来,如果基于在操作502执行的完整性验证的结果确定存储在外部处理器中的固件的完整性被保持(操作504),则随后与外部处理器共享总线密钥(操作506)。
然后,使用共享的总线密钥与外部处理器建立加密通信(操作508)。
图6是根据本发明示例性实施例的检查固件的完整性的设备600的框图。参照图6,设备600包括:存储单元602、固件读取单元604、哈希值计算单元606、比较单元608和总线密钥共享单元610。
存储单元602存储用于确定存储在外部处理器620中的实际固件是否已被攻击的未受攻击固件的第一哈希函数值。虽然未受攻击的固件是用于操作外部处理器620的软件,但是未受攻击的固件的哈希函数值(第一哈希函数值)被存储在存储单元602中,从而可用于确定外部处理器620是否已被攻击。
固件读取单元604经由系统总线从外部处理器620读取实际固件。已被存储在外部处理器620的实际固件用于实际操作外部处理器620。固件读取单元604可从外部处理器620的非易失性存储器(诸如闪存或EEPROM)读取实际固件。
另外,固件读取单元604可读取加载到外部处理器620的非易失性存储器的实际固件。在这种情况下,如上所述,可以通过在外部处理器620中安装两个或多个固件(例如,用于接收认证的固件和实际操作的固件)防止黑客使总线密钥暴露。
哈希值计算单元606计算从外部处理器602读取的实际固件的第二哈希函数值。
比较单元608对存储在存储单元602中的第一哈希函数值与由哈希值计算单元606计算的第二哈希函数值进行比较。例如,如果第一哈希函数值等于第二哈希函数值,则允许总线密钥共享单元610与外部处理器620共享总线密钥。然而,如果第一哈希函数值不等于第二哈希函数值,则不允许总线密钥共享单元610与外部处理器620共享总线密钥,从而防止总线密钥和加密内容被暴露给黑客。
总线密钥共享单元610与外部处理器620共享总线密钥。
设备600通过使用由总线密钥共享单元610共享的总线密钥与外部处理器620建立加密数据通信。
或者,设备600可使用电子签名方法或MAC方法来代替哈希函数方法。
图7是根据本发明另一示例性实施例的用于检查固件的完整性的设备700的框图。参照图7,设备700包括:存储单元702、固件读取单元704、哈希值计算单元706、比较单元708、更新单元710和总线密钥共享单元712。
存储单元702存储未受攻击的固件(未受攻击的数据)部分的偏移位置、数据大小和第一哈希函数值。偏移位置和数据大小可通过更新单元710(将在以后详细描述)被更新,并被存储在存储单元702中。存储在存储单元702中的更新的偏移位置和数据大小可被发送到固件读取单元704,以便从外部处理器720读取新的数据。
固件读取单元704从外部处理器720读取与偏移位置和数据大小相应的实际数据。如上所述,固件读取单元704优选地读取从外部处理器720的非易失性存储器加载到易失性存储器的数据。然而,也可以从外部处理器720的非易失性存储器(诸如闪存或EEPROM)读取数据。
哈希值计算单元706计算读取的数据的第二哈希函数值。另外,哈希值计算单元706计算由固件读取单元704新读取的数据的第三哈希函数值用于更新。
比较单元708将存储在存储单元702中的第一哈希函数值与从哈希值计算单元706接收的第二哈希函数值进行比较。如果比较结果显示第一哈希函数值等于第二哈希函数值,则允许总线密钥共享单元712与外部处理器720共享总线密钥,或者允许更新单元710更新存储在存储单元702中的偏移位置、数据大小和哈希函数值。
如果从比较单元708接收到启动信号,则更新单元710更新存储在存储单元702中的偏移位置和数据大小,并允许哈希值计算单元706计算对于读取的数据的更新的偏移位置和数据大小的第三哈希函数值,并将第三哈希函数值发送到存储单元702。
设备700使用共享的总线密钥与外部处理器720建立加密数据通信。另外,设备700可使用电子签名方法或MAC方法来代替哈希函数方法。
可以在计算机可读介质中以计算机可读代码实施本发明。这里,计算机可读介质可以是能够存储由计算机系统读取的数据的任何记录设备,例如,只读存储器(ROM)、随机存取存储器(RAM)、致密盘(CD)-ROM、软盘、光盘数据存储装置等。计算机可读介质可以分布在通过网络互连的计算机系统中,从而计算机可读代码被存储在分布式系统中并根据分布式方法被执行。
如上所述,在根据本发明的用于检查固件的完整性的方法和设备中,将未受攻击固件的哈希函数值与从外部处理器读取的固件的哈希函数值进行比较,从而使通过攻击外部处理器暴露总线密钥的可能性最小化。
另外,读取从外部处理器的非易失性存储器下载到易失性存储器的固件,从而防止黑客安装的固件运行。
此外,更新偏移位置、数据大小和哈希函数值,从而使由于通过外部处理器攻击而引起总线密钥泄露的可能性最小化。
虽然已经参照本发明的示例性实施例具体示出和描述了本发明,但是本领域的普通技术人员将理解,在不脱离权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上做出各种改变。

Claims (22)

1、一种检查固件的完整性的方法,所述方法包括:
存储用于确定外部处理器的固件是否已经被攻击的未受攻击的固件的第一哈希函数值;
经由总线读取固件;
计算固件的第二哈希函数值;
将第一哈希函数值与第二哈希函数值进行比较;以及
基于比较结果与外部处理器共享总线密钥。
2、如权利要求1所述的方法,其中,读取固件的步骤包括:读取从外部处理器的非易失性存储器加载到外部处理器的易失性存储器的固件。
3、如权利要求1所述的方法,其中,读取固件的步骤包括:从外部处理器的非易失性存储器读取固件,其中,所述非易失性存储器包括闪存或电可擦除和可编程只读存储器。
4、如权利要求1所述的方法,还包括:通过使用总线密钥建立与外部处理器的加密数据通信。
5、一种检查固件的完整性的方法,所述方法包括:
存储用于确定外部处理器的固件是否已被攻击的未受攻击的固件部分的偏移位置和数据大小;
存储未受攻击的固件部分的第一哈希函数值;
从外部处理器读取与偏移位置和数据大小相应的数据;
计算读取的数据的第二哈希函数值;
将第一哈希函数值与第二哈希函数值进行比较;以及
基于比较结果与外部处理器共享总线密钥。
6、如权利要求5所述的方法,还包括:基于比较结果更新偏移位置、数据大小和第一哈希函数值。
7、如权利要求6所述的方法,其中,更新偏移位置、数据大小和第一哈希函数值的步骤可包括:
如果第一哈希函数值等于第二哈希函数值,则更新偏移位置和数据大小;
从外部处理器读取与更新的偏移位置和更新的数据大小相应的数据;
计算读取的数据的第三哈希函数值;以及
将第一哈希函数值更新为第三哈希函数值。
8、如权利要求7所述的方法,其中,按照预定周期重复执行读取与更新的偏移位置和更新的数据大小相应的数据的步骤、计算读取的数据的第三哈希函数值的步骤和更新第一哈希函数值的步骤。
9、如权利要求5所述的方法,其中,读取与偏移位置和数据大小相应的数据的步骤包括:读取从外部处理器的非易失性存储器加载到外部处理器的易失性存储器的数据。
10、如权利要求5所述的方法,其中,读取与偏移位置和数据大小相应的数据的步骤包括:从外部处理器的非易失性存储器读取数据,所述非易失性存储器包括闪存或电可擦除和可编程只读存储器。
11、如权利要求5所述的方法,还包括:通过使用总线密钥与外部处理器建立加密数据通信。
12、一种检查固件的完整性的方法,所述方法包括:
对存储在外部处理器中的固件执行完整性检查;
基于执行完整性检查的结果与外部处理器共享总线密钥;以及
使用总线密钥与外部处理器建立加密数据通信。
13、一种用于检查固件的完整性的设备,所述设备包括:
存储单元,存储用于确定外部处理器的固件是否已被攻击的未受攻击的固件的第一哈希函数值;
固件读取单元,经由总线读取固件;
哈希值计算单元,计算固件的第二哈希函数值;
比较单元,将第一哈希函数值与第二哈希函数值进行比较;以及
总线密钥共享单元,基于比较单元的比较结果与外部处理器共享总线密钥。
14、如权利要求13所述的设备,其中,固件读取单元读取从外部处理器的非易失性存储器加载到外部处理器的易失性存储器的固件。
15、如权利要求13所述的设备,其中,固件读取单元从外部处理器的非易失性存储器读取固件,所述非易失性存储器包括闪存或电可擦除和可编程只读存储器。
16、如权利要求13所述的设备,其中,在与外部处理器建立加密数据通信中使用总线密钥。
17、一种用于检查固件的完整性的设备,所述设备包括:
存储单元,存储用于确定外部处理器的固件是否已被攻击的未受攻击的固件部分的偏移位置、数据大小和第一哈希函数值;
固件读取单元,从外部处理器读取与偏移位置和数据大小相应的数据;
哈希值计算单元,计算读取数据的第二哈希函数值;
比较单元,将第一哈希函数值与第二哈希函数值进行比较;以及
总线共享单元,基于从比较单元接收的比较结果与外部处理器共享总线密钥。
18、如权利要求17所述的设备,还包括更新单元,基于从比较单元接收的比较结果更新偏移位置、数据大小和第一哈希函数值。
19、如权利要求17所述的设备,其中,固件读取单元读取从外部处理器的非易失性存储器加载到外部处理器的易失性存储器的固件。
20、如权利要求17所述的设备,其中,固件读取单元从外部处理器的非易失性存储器读取数据,所述非易失性存储器包括闪存或电可擦除和可编程只读存储器。
21、如权利要求20所述的设备,其中,在与外部处理器建立加密数据通信中使用总线密钥。
22、一种其上记录有用于执行检查固件的完整性的方法的程序的计算机可读介质,所述方法包括:
存储用于确定外部处理器的固件是否已经被攻击的未受攻击的固件的第一哈希函数值;
经由总线读取固件;
计算固件的第二哈希函数值;
将第一哈希函数值与第二哈希函数值进行比较;以及
基于比较结果与外部处理器共享总线密钥。
CN2008100030872A 2007-05-14 2008-01-18 检查固件完整性的方法和设备 Expired - Fee Related CN101308538B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2007-0046665 2007-05-14
KR1020070046665A KR101427646B1 (ko) 2007-05-14 2007-05-14 펌웨어의 무결성 검사 방법 및 장치

Publications (2)

Publication Number Publication Date
CN101308538A true CN101308538A (zh) 2008-11-19
CN101308538B CN101308538B (zh) 2012-10-03

Family

ID=40028866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100030872A Expired - Fee Related CN101308538B (zh) 2007-05-14 2008-01-18 检查固件完整性的方法和设备

Country Status (3)

Country Link
US (1) US20080289038A1 (zh)
KR (1) KR101427646B1 (zh)
CN (1) CN101308538B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7880313B2 (en) * 2004-11-17 2011-02-01 Chippac, Inc. Semiconductor flip chip package having substantially non-collapsible spacer
US20060288209A1 (en) * 2005-06-20 2006-12-21 Vogler Dean H Method and apparatus for secure inter-processor communications
KR101310232B1 (ko) * 2007-04-24 2013-09-24 삼성전자주식회사 버스 키 공유 방법 및 그 장치
US9104872B2 (en) * 2010-01-28 2015-08-11 Bank Of America Corporation Memory whitelisting
DE112011105687T5 (de) 2011-09-30 2014-07-17 Hewlett-Packard Development Company, L.P. Verwendung eines Option-ROM-Speichers
DE102013213314A1 (de) * 2013-07-08 2015-01-08 Siemens Aktiengesellschaft Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
KR102167393B1 (ko) * 2013-08-16 2020-10-19 삼성전자 주식회사 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
KR102143434B1 (ko) 2013-11-12 2020-08-11 삼성전자주식회사 근거리 무선 통신 칩의 펌웨어 업데이트 방법 및 이를 구현하는 전자 시스템
KR102139546B1 (ko) 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
CN106203100A (zh) * 2015-04-29 2016-12-07 华为技术有限公司 一种完整性校验方法和装置
KR102101347B1 (ko) * 2016-12-01 2020-04-16 단국대학교 산학협력단 IoT 기기의 보안 강화를 위한 BLE 통신 기반의 스캔 장치 및 방법
GB2561562A (en) * 2017-04-18 2018-10-24 F Secure Corp Method for detecting and preventing an attack
AU2018321586B2 (en) 2017-08-22 2023-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
EP3663957A1 (en) * 2018-12-03 2020-06-10 Nagravision S.A. Remote enforcement of device memory
US11409872B2 (en) 2019-06-28 2022-08-09 Seagate Technology Llc Confirming a version of firmware loaded to a processor-based device

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768382A (en) * 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
WO2000048063A1 (en) * 1999-02-15 2000-08-17 Hewlett-Packard Company Trusted computing platform
WO2000048062A1 (en) * 1999-02-15 2000-08-17 Hewlett-Packard Company Communications between modules of a computing apparatus
US6571335B1 (en) * 1999-04-01 2003-05-27 Intel Corporation System and method for authentication of off-chip processor firmware code
US7013481B1 (en) * 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7007159B2 (en) * 2002-05-10 2006-02-28 Intel Corporation System and method for loading and integrating a firmware extension onto executable base system firmware during initialization
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7121460B1 (en) * 2002-07-16 2006-10-17 Diebold Self-Service Systems Division Of Diebold, Incorporated Automated banking machine component authentication system and method
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
KR20070017455A (ko) * 2003-07-14 2007-02-12 텍사스 인스트루먼츠 인코포레이티드 프로세서 내에서의 보호된 리소스들로의 억세스에 대한안전한 보호 방법
US7373509B2 (en) * 2003-12-31 2008-05-13 Intel Corporation Multi-authentication for a computing device connecting to a network
KR100604828B1 (ko) 2004-01-09 2006-07-28 삼성전자주식회사 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module

Also Published As

Publication number Publication date
CN101308538B (zh) 2012-10-03
KR20080100674A (ko) 2008-11-19
KR101427646B1 (ko) 2014-09-23
US20080289038A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
CN101308538B (zh) 检查固件完整性的方法和设备
CN109313690B (zh) 自包含的加密引导策略验证
KR100746012B1 (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
CN109937419B (zh) 安全功能强化的设备的初始化方法及设备的固件更新方法
CN103502932B (zh) 用于验证crtm的嵌入式控制器
EP1942431B1 (en) Software or other information integrity verification using variable block length and selection
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
US20080025503A1 (en) Security method using self-generated encryption key, and security apparatus using the same
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
US20140237255A1 (en) Decryption and Encryption of Application Data
CN104462965A (zh) 应用程序完整性验证方法及网络设备
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
CN109445705B (zh) 固件认证方法及固态硬盘
CN104217175A (zh) 一种数据读写方法和装置
CN108880859A (zh) 升级文件的配置方法、装置、服务器、终端及存储介质
CN111160879A (zh) 一种硬件钱包及其安全性提升方法和装置
WO2017197869A1 (zh) 版本文件校验方法及装置、加密方法及装置和存储介质
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
JP2011150524A (ja) ソフトウェア実行システム
CN113342425A (zh) 一种Linux嵌入式系统的启动方法、装置和存储介质
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
CN111639353B (zh) 一种数据管理方法、装置、嵌入式设备及存储介质
CN106355085B (zh) 一种可信应用运行安全控制方法
CN104035787A (zh) 一种基于Andriod内核的强制访问控制方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121003

Termination date: 20200118