CN1963758A - 用于安全更新和启动代码镜像的方法和装置 - Google Patents

用于安全更新和启动代码镜像的方法和装置 Download PDF

Info

Publication number
CN1963758A
CN1963758A CNA2006101437196A CN200610143719A CN1963758A CN 1963758 A CN1963758 A CN 1963758A CN A2006101437196 A CNA2006101437196 A CN A2006101437196A CN 200610143719 A CN200610143719 A CN 200610143719A CN 1963758 A CN1963758 A CN 1963758A
Authority
CN
China
Prior art keywords
district
code
boot image
storage
function
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
CNA2006101437196A
Other languages
English (en)
Other versions
CN100530096C (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 CN1963758A publication Critical patent/CN1963758A/zh
Application granted granted Critical
Publication of CN100530096C publication Critical patent/CN100530096C/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
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/575Secure boot
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

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

Abstract

提供一种用于安全更新和启动代码镜像的方法和设备,其中,在存储操作系统的存储介质中更新代码镜像,所述存储操作系统的存储介质具有:第一区,启动代码被载入到其上;第二区,第一代码镜像被存储在其中;和第三区,启动代码和用于检验第一代码镜像的第一检查数据被存储在其中。更新代码镜像包括以下步骤:在第二区中存储第二代码镜像;从第一检查数据中提取关于安全单向函数的信息;和使用提取的安全单向函数的信息生成用于检验第二代码镜像的第二检查数据,并将生成的第二检查数据存储在第三区中。当第二检查数据被设置为安全单向函数的参数时,生成第一检查数据。

Description

用于安全更新和启动代码镜像的方法和装置
本申请要求于2005年11月7日在韩国知识产权局提交的第10-2005-0106081号韩国专利申请的优先权,该申请公开于此,以资参考。
技术领域
本发明涉及一种用于系统启动的技术,更具体地说,涉及一种用于安全更新和启动代码镜像的方法和设备。
背景技术
通常,在诸如电器、通信设备和机顶盒的嵌入式系统中,非易失性存储装置已被广泛用作用于存储并处理数据的存储介质。此外,嵌入式系统将操作系统存储在非易失性存储装置中,并且由存储的操作系统启动以执行操作。所述操作系统主要以镜像的形式被存储在非易失性存储装置中。
为了提供主机的安全性,当操作系统被启动时,确保由卖方在发布产品时记录在非易失性存储装置中的操作系统(OS)镜像被没有改变地启动。例如,如果OS镜像和应用程序被存储在手机中,当开启手机并且载入OS镜像时,OS镜像的一部分被盗用者(cracker)改变,执行逻辑被改变,这可引起OS镜像中的安全模块的安全崩溃。在这种情况下,在OS镜像被复制到随机存取存储器(RAM)之后和传递控制之前,有必要检查是否保护了OS镜像的完整性。随后,仅当所述完整性没有崩溃时传递控制,从而盗用者没有改变所述OS镜像。
现在,嵌入式系统的很多卖方需要并提供保护OS镜像的完整性的方法,但是,这些方法是基于这样的事实,即:用于检查所述完整性的算法保密,并且,为了保护CPU中的密钥,所述密钥需要被存储在保密模块(TRM)区。因此,这些方法不完整或者需要提供单独的电路。此外,其支持方法可根据存储装置的特性而不同。
图1是示出根据相关技术的使嵌入式系统安全启动的安全启动设备的示图。
所述安全启动设备包括:操作系统存储单元10,存储操作系统和具有与所述操作系统相应的唯一的检查值的算法的检查值;存储单元20,当启动时,存储在操作系统存储单元10中的操作系统被载入;和控制单元30,通过存储所述检查值时使用的算法根据载入的操作系统计算检查值,并且通过将存储的检查值和计算的检查值进行比较来判断载入的操作系统的完整性。
此时,操作系统存储单元10具有非易失性存储区,从而即使电源被关闭,存储的操作系统和检查值也被保留。
当由操作系统启动时,安全启动设备还包括:启动代码存储单元40,存储包括关于启动过程的信息的启动代码;和密钥存储单元50,将存储在操作系统存储单元10中的操作系统和检查值编码,并存储用于将编码的操作系统和检查值解码的密钥。此时,由于启动代码存储单元40处于只读模式,所以所述启动代码不能被来自外部的任何操作改变。在这种情况下,作为用于计算检查值的算法可使用任何算法,只要该算法即使在OS被改变1比特的情况下也会具有不同的检查值而非相同的检查值。
密钥存储单元50具有诸如TRM(保密模块)的区作为伪造保护技术等,并且保护存储在密钥存储单元50中的密钥不被外部访问。这是因为,当存储在密钥存储单元50中的密钥暴露于外界时,存储在操作系统存储单元10中的编码的操作系统和检查值可被改变。此外,密钥存储单元50可被包括在控制全部启动过程的控制单元30内,或者可被单独设置。
另外,在很多情况下,在发布嵌入式系统后,操作系统需要不断地升级。特别是,诸如手机、MP3播放器和PMP的产品需要根据它们的特性迅速适应环境。因此,安装的操作系统需要随后被适当地改变或者升级。在这种情况下,当以图1中所示的方式存储密钥时,由未授权的外部访问对操作系统进行的改变可被阻止,但是,由授权的卖方对操作系统进行的改变也被阻止。然而,当由授权的人做出的改变被允许时,也可做出对操作系统的未授权的改变。因此,需要一种针对上述问题的对策。
发明内容
本发明的目的在于解决上述问题,本发明的一方面在于提供了一种用于在确保由授权的用户对操作系统做出的改变的同时阻止未授权的用户对操作系统做出改变的方法和设备。
本发明的另一方面在于提供一种确保由授权的用户对操作系统做出的改变的存储装置。
本发明的各方面不由上述描述所限制,并且通过以下的描述本发明的其他方面将更加清楚地被本领域技术人员所理解。
本发明的一方面在于提供一种用于更新存储操作系统的存储介质中的代码镜像的方法,所述存储操作系统的存储介质具有:第一区,启动代码被载入到其上;第二区,第一代码镜像被存储在其中;和第三区,启动代码和用于检验第一代码镜像的第一检查数据被存储在其中,所述方法包括:在第二区中存储第二代码镜像;从第一检查数据中提取关于安全单向函数的信息;和使用提取的安全单向函数的信息生成用于检验第二代码镜像的第二检查数据,并将生成的第二检查数据存储在第三区中,其中,当第二检查数据被设置为安全单向函数的参数时,生成第一检查数据。
本发明的另一方面在于提供一种用于启动存储操作系统的存储介质中的代码镜像的方法,所述存储操作系统的存储介质具有:第一区,启动代码被载入到其上,第二区,代码镜像被存储在其中,和第三区,启动代码和用于检验所述代码镜像的检查数据被存储在其中,所述方法包括:读取存储在第三区中的启动代码,并将读取的启动代码存储在第一区中;当存储在第二区中的代码镜像是更新的代码镜像而非初始的代码镜像时,提取用于确认在存储关于初始代码镜像的信息的第三区中的代码镜像的授权改变的第一函数、通过将第一参数应用于第一函数获得的第一结果、和通过将第二参数应用于在存储关于更新的代码镜像的信息的第三区中的第一函数获得的第二结果;将第一结果与通过将第二结果作为参数应用于第一函数获得的结果进行比较;和当两个结果相同时,运行所述代码镜像。
本发明的另一方面在于提供一种存储装置,所述存储装置包括存储单元,所述存储单元包括:第一区,在所述第一区中启动代码被载入并运行;第二区,具有可读写存储装置并且所述用于操作系统的代码镜像被存储在其中;和第三区,启动代码和用于检验所述代码镜像的签名信息被存储在其中。此外,所述存储装置包括:控制单元,当所述代码镜像是更新的代码镜像而非初始的代码镜像时,读取存储单元的启动代码,并将读取的启动代码载入第一区;提取用于确认第三区中的代码镜像的授权改变的第一函数和通过将第一参数应用于第一函数获得的第一结果,所述第三区存储关于初始代码镜像的信息;提取通过将第二参数应用于存储在第三区中的第一函数获得的第二结果,所述第三区存储关于更新的代码镜像;将第一结果与通过将第二结果作为参数应用于第一函数获得的结果进行比较,并且当两个结果相同时,运行所述代码镜像。
附图说明
通过以下结合附图对本发明实施例的详细描述,本发明的以上和其他方面将变得更加清楚,其中:
图1是示出根据相关技术的允许安全地启动嵌入式系统的安全启动设备的示图;
图2是示出应用本发明一方面的驱动存储装置内的操作系统的方法的示图;
图3是示出存储第一代码镜像的非易失性存储装置、易失性存储装置和CPU之间的关系的示图;
图4是示出根据本发明示例性实施例的授权的用户在非易失性存储装置中存储改变的代码镜像的情况的示图;
图5是示出根据本发明示例性实施例的校验改变的代码镜像的过程的示图;
图6A和图6B是示出将根据本发明示例性实施例的授权的用户修改所述代码镜像的情况和未授权的用户修改代码镜像的情况进行比较的示图;和
图7是示出根据本发明示例性实施例的对更新的代码镜像是否被授权的用户更新的确认的示图。
具体实施方式
通过参照附图和对本发明示例性实施例的详细描述,本发明及其实现的各方面可被更加容易地理解。本发明的各方面可以以很多不同形式被实施,而不限于这里所述的示例性实施例。而且,这些示例性实施例被提供,从而使本公开彻底并完整,并且本发明的思想被全部传达给本领域技术人员,并且本发明将仅由权利要求所限定。在说明书中相同的标号指示相同的元件。
以下,将参照根据本发明示例性实施例的用于安全更新和启动代码镜像的方法和设备的框图或者流程图,对本发明的各方面进行描述。流程图中的每个块或者块的组合将被理解为可由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其他可编程数据处理设备的处理器以产生机器,从而通过计算机或者其他可编程数据处理设备的处理器被执行的所述指令建立用于实现流程图中的一个块或者多个块中特定的功能的手段。
框图中的每个块可代表包括一个或者更多用于实现特定逻辑功能的可执行指令的模块、代码段或者代码的一部分。应当注意到:在一些可替换的实现中,在多个块中实现的功能可以以不同的顺序发生。例如,根据涉及的功能性,两个连续显示的块实际上可以基本上同时被执行,或者所述块有时可以按相反的次序被执行。
图2是示出应用本发明一方面的驱动存储装置内的操作系统的方法的示图。
图2中所示的存储装置被安装在手机、数码相机、笔记本电脑、PDA、PMP或者MP3播放器上,并且用于操作该设备的操作系统镜像被嵌入到所述存储装置。
以下装置被使用:非易失性存储装置100,用于以非易失方式存储代码镜像;易失性存储装置200,用于执行存储在非易失性存储装置100中的代码镜像;和CPU 400,用作中央处理单元,用于执行代码镜像。以下,在本说明书中,闪存将被描述为用于以非易失方式存储代码镜像的存储装置的示例。此外,为了安全更新,安全单向函数被使用。
用作非易失性存储装置100的闪存具有:RAM区110,当向系统供电时被自动映射到存储地址空间的特定区域;R/W(读/写)区120,可以在其中以非易失方式进行数据的重复编程和擦除;OTP(一次性编程)区130,其中,可进行数据的一次性编程,并且在编程后仅可读取。
所述区110、120和130可以由单一存储装置来实现或者可由具有上述特性的三个存储装置的组合来实现。例如,区120和130可由闪存装置来实现,并且区110可由RAM装置来实现。随后,这些装置可被组合。
如果供电,则存储在区130的特定位置的启动代码131被自动复制到RAM区110,并且区110被改为只可读取和运行的区域。随后,CPU 400运行在区110中的机器语言命令。
启动代码(或者启动装入程序)131被写入一次性编程区130,并且包括操作系统镜像的代码镜像被写入可读写区120。用于检查代码镜像的改变的签名132的值被计算并写入一次性编程区130。
如果向系统供电,则OTP区130中的启动代码131被自动复制到RAM区110。
为了允许区110被用作启动设备,系统的存储器视图300被映射,随后,启动代码被运行。当启动代码容量较大并且不能被全部复制到区110时,没有被复制到区110的启动代码的剩余部分复制到易失性存储装置200。
启动代码将R/W区120中的代码镜像复制到易失性存储装置200。当代码镜像在区120中被直接运行时,可不使用易失性存储装置200。
由于代码镜像被存储在R/W区120中,所以可以被改变。因此,与代码镜像相关的签名的值被计算,并且将计算的与代码镜像相关的签名的值与存储在OTP区130中的签名132的值进行比较。此时,只有当两个值相同时,启动被继续执行。否则,启动被中断。由此,当代码镜像由未授权的用户改变时,系统不被操作。
签名的值表示安全单向函数。安全单向函数是这样一种函数,即,可容易的计算结果值,不可从所述结果值得知输入值,并且不可或者很少能找到值具有相同的结果值的不同的两个输入值。具体地说,安全单向函数表示一种很难确定输入值和结果值的函数。
根据图2的结构,可防止代码镜像被未授权的用户改变,从而增加了代码镜像的安全性。图3和图4示出了当授权的用户想要改变代码镜像时用于改进安全性的非易失性存储装置的结构。
在解释之前,安全单向函数将被简要描述。在y=h(x)的函数的情况下,当值x已知时,很容易计算值y。但是当值y已知时,很难找到与值y相应的值x。此外,在y=h(x)=h(x’)的情况下,很难找出不同的x和x’的值。
图3是示出存储第一代码镜像的非易失性存储装置、易失性存储装置和CPU之间的关系的示图。在图3中,第一代码镜像被存储在非易失性存储装置100中。关于第一代码镜像的签名信息和关于安全性的信息被包括在第一签名区134中。
当最初将代码镜像和启动代码写入非易失性存储装置100中时,以下内容被写入。能够安装并改变代码镜像的授权的人,诸如用户或者制造商,以及卖方持有保密的值S。值S是授权的人所持有的值,并且可成为用于维护安全性的密钥值。
满足安全单向函数的条件的函数h()可如下被定义。当h_0=h(S)并且h_n+1(S)=h(h_n(S))时,用户通过代入相对大的值N(例如,100或者更大)来计算h_N。例如,h_N可由以下等式1来计算。
等式1
h_3(S)=h(h_2(S))=h(h(h_1(S)))=h(h(h(h_0)(S)))=h(h(h(h(S))))
用户计算用于第一代码镜像的签名的值,并且所述值称为Sig_1。为了计算值Sig_1,可使用所述函数h(),或者可使用其他安全单向函数。
启动代码133被写在非易失性存储装置100的OTP区130的头,并且值Sig_1作为用于第一代码镜像的签名的值被写入第一签名区134。除了值Sig_1,函数h()的运行镜像、值h_N和N、以及关于R/W区120中的代码镜像的位置和大小的信息被写入第一签名区134。
值h_N表示h_N(S)的运行值。h_N(S)可通过等式1被计算为h(h_N-1(S))。
当第一代码镜像被安装并且用于第一代码镜像的签名和用于允许授权的用户以后对代码镜像的改变的信息被写入第一签名区134之后,如果所述代码被升级或者新的函数被添加,则需要检验所述代码镜像的过程。或者,所述代码镜像可被更新为新的代码镜像。
图4是示出根据本发明的示例性实施例授权的用户将改变的代码镜像存储在非易失性存储装置中的情况。
当改变代码镜像时,首先,存储在第一签名区134中的值N被读取。随后,针对值S(由授权用户持有的保密的密钥值),h_N-1(S)被计算。接下来,改变的代码镜像(第二代码镜像)被存储到R/W区120中,并且用于检验第二代码镜像的有效性的值Sig_2被计算。接下来,上述信息被存储在第二签名区135中。由于h_N(S)的结果和关于函数h()和值N的信息被存储到第一签名区134中并且授权的用户能够知道所述值S,所以可计算h_N-1(S)。因此,授权的用户在R/W区120中存储将被改变或者将被添加的第二代码镜像,并且将用于检验第二代码镜像的有效性的值Sig_2、h_N-1(S)的结果、函数h()和N-1的值存储在第二签名区135中。在以后启动时,通过h_N-1(S)的结果可确认所述代码镜像是否由授权用户添加。其检验的过程将参照图5进行描述。
图5是示出根据本发明的示例性实施例用于检验改变的代码镜像的过程的示图。在图5中,N被设置为100。在启动系统时,从第一签名区134获得关于函数h()的信息、h_100(S)的值和值为100的N。随后,从第二签名区135中读取h_99(S)的值、值为99的N、关于第二代码镜像的信息和值Sig_2。通过关于第二代码镜像的信息读取第二代码镜像的存储位置和大小。接着,通过值Sig_2执行对第二代码镜像的检验过程。当将值Sig_2与应用了预定检验算法的第二代码镜像进行比较时,通过将h_99(S)的值作为函数h()的输入值来计算h_100(S)的值,以确认第二代码镜像是否是由授权用户更新的。在这种情况下,由于h_99(S)的值是K,而值K被存储在第二签名区135中,所以h(K)可被计算。此外,h(K)是h(h_99(S))并且还成为h_100(S),因此,h(K)可被与存储在第一签名区134中的值进行比较。此时,由于授权用户持有值S,所以h_99(S)的值可由授权的用户计算。因此,可以确认第二代码镜像被所述授权的用户更新。如果授权的用户之外的其他人将带有与值S不同的值D的h_99(D)写入第二签名区135,则在启动期间可检查出h_100(S)的值与h_100(D)的值彼此不同,因此启动被中断。
图6A和图6B是示出根据本发明示例性实施例的授权的用户修改所述代码镜像的情况和未授权的用户修改代码镜像的情况之间的比较的示图。初始安装在产品内的代码镜像是由授权的用户存储的。图6A示出了在初始安装代码镜像之后由授权的用户更新代码镜像的情况,图6B示出了在初始安装代码镜像之后由授权的用户之外的其他人更新代码镜像的情况。
参照图6A,当授权的用户想要存储新的代码镜像时,他可基于用于检验所述代码镜像的第一签名区136中的值Sig_1、值S和数值100计算h_99(S)。
同时,参照图6B,即使未授权的用户计算出值Sig_2,他也不能得知值S,因此,他通过带入任意值D来计算h_99(D)。此时,当通过再次将值h_99(D)应用于函数h()来运行h(h_99(D))时,h_100(D)可被计算。但是,由于h_100(D)与h_100(S)不同,所以启动被中断。因此,当未授权的用户改变所述代码时,所述改变通过值Sig_2被检验。此外,即使未授权的用户生成所述值Sig_2,他也不能计算h_99(S)的值。由此,可防止计算机病毒、电脑黑客等对代码镜像进行未授权的改变。
在上述过程中,安全单向函数的应用结果以N、N-1、N-2…的逆序被获得,但这只是示例。本发明不限于此结构。例如,安全单向函数可以以N、N-2、N-4…的顺序被应用。此外,在此公开的安全单向函数可以以多种方法被应用。
在本说明书中,为了检验对代码镜像的改变是否是由授权用户做出的,对是否可从改变的代码的检查值中提取出在改变之前的代码的检查值进行检查。随后,当可从改变的代码的检查值中提取出在改变之前的代码的检查值时,判断所述代码镜像由授权的用户改变,并运行更新的代码镜像。
图7是示出根据本发明示例性实施例的对更新的代码镜像是否被授权的用户更新的确认的示图。
载入存储在OTP区130的启动代码(步骤S510)。在根据启动代码中的命令运行代码镜像之前,检查所述代码镜像是否有效(步骤S520)。所述有效性检查是指检查所述代码镜像是否被改变。这里,当存储代码镜像时,用于代码镜像的hash函数和安全单向函数的应用结果值被存储在OTP区130中,随后,可通过函数的应用检查所述代码镜像是否被改变。可根据Sig_1和Sig_2的值检查所述代码镜像的有效性。如果代码镜像无效(步骤S530),则不运行所述代码,且结束过程。
如果代码镜像有效(步骤S530),则检查所述代码镜像是否被更新。如果代码镜像没有被更新,则所述代码镜像按原样被运行。
如果代码镜像被更新,则确认所述更新是否是由授权的用户做出的。通过步骤S552到S556执行所述确认。首先,初始代码镜像的信息,例如,第一签名中的安全单向函数的第一运行结果和参数信息被提取(步骤S552)。参照图6A,h()是所述安全单向函数,所述函数的第一运行结果是h_100(S),所述参数信息是100。不需提供值S的信息。这是因为存储了带有作为参数的值S的运行结果。随后,从关于更新的代码镜像的信息中提取函数的第二运行结果和参数信息(步骤S554)。第二签名可成为关于更新的代码镜像的信息。这里,参照图6A,所述函数的第二运行结果是h_99(S)的运行结果,所述参数信息是99。用于更新的代码镜像的第二签名中的参数是99,用于原始代码镜像的第一签名中的参数是100。因此,如果h_99(S)再次作为参数被应用于函数h(),则可获得第一签名中的h_100(S)的结果,并且可通过所述结果间的比较得知所述代码镜像是否被正式更新。也就是说,如步骤S556,第一结果h_100(S)和带有作为参数的第二结果h_99(S)的安全单向函数的运行结果被比较。随后,如果两个结果相同(步骤S560),则由于更新的代码镜像由授权的用户更新,所以运行所述代码镜像(步骤S570)。否则,不运行更新的代码镜像,并中断过程。上述描述中,步骤S552、S554和S556可先于步骤S520被执行。
尽管已参照本发明示例性实施例对本发明进行了描述,但是对本领域技术人员来说清楚的是,在不脱离本发明的范围和精神的情况下,可对其做出各种修改和改变。因此,应当理解在所有方面上述示例性实施例不是限定性而是示例性的。本发明的范围是由权利要求所限定的,而不是说明书,和所有落入权利要求的集合和范围或者由权利要求规定包含的所述集合和范围的等同物的改变。
根据本发明的各个方面,在操作系统的代码镜像被写入非易失性存储区,和与所述代码镜像相关的检查信息被写入OTP区之后,授权的用户(例如,开发人员)可重复并安全地更新OS镜像。
根据本发明的各个方面,当发布的产品的代码镜像需要被稍后更新时,所述更新可被安全地执行。

Claims (11)

1、一种用于更新存储操作系统的存储介质中的代码镜像的方法,所述存储操作系统的存储介质具有:第一区,启动代码被载入到其上;第二区,第一代码镜像被存储在其中;和第三区,启动代码和用于检验第一代码镜像的第一检查数据被存储在其中,所述方法包括:
在第二区中存储第二代码镜像;
从第一检查数据中提取关于安全单向函数的信息;和
使用提取的安全单向函数的信息生成用于检验第二代码镜像的第二检查数据,并将生成的第二检查数据存储在第三区中,
其中,当第二检查数据被设置为安全单向函数的参数时,生成第一检查数据。
2、如权利要求1所述的方法,其中,第三区具有一次性编程存储装置。
3、如权利要求1所述的方法,其中,所述存储装置是OneNAND装置。
4、一种用于启动存储操作系统的存储介质中的代码镜像的方法,所述存储操作系统的存储介质具有:第一区,启动代码被载入到其上,第二区,代码镜像被存储在其中,和第三区,启动代码和用于检验所述代码镜像的检查数据被存储在其中,所述方法包括:
读取存储在第三区中的启动代码,并将读取的启动代码存储在第一区中;
当存储在第二区中的代码镜像是更新的代码镜像而非初始的代码镜像时,提取用于确认在存储关于初始代码镜像的信息的第三区中的代码镜像的授权改变的第一函数、通过将第一参数应用于第一函数获得的第一结果、和通过将第二参数应用于在存储关于更新的代码镜像的信息的第三区中的第一函数获得的第二结果;
将第一结果与通过将第二结果作为参数应用于第一函数获得的结果进行比较;和
当两个结果相同时,运行所述代码镜像。
5、如权利要求4所述的方法,其中,第三区具有一次性编程存储装置。
6、如权利要求4所述的方法,其中,所述第一函数是安全单向函数,所述安全单向函数具有这样的特征:当输入值彼此不同时生成不同的输出值,并且很难从输出值获得输入值。
7、如权利要求4所述的方法,其中,所述存储装置是OneNAND装置。
8、一种存储装置,包括:
存储单元,包括:第一区,在所述第一区中启动代码被载入并运行;第二区,具有可读写存储装置并且所述用于操作系统的代码镜像被存储在其中;和第三区,启动代码和用于检验所述代码镜像的签名信息被存储在其中;和
控制单元,当所述代码镜像是更新的代码镜像而非初始的代码镜像时,读取存储单元的启动代码,并将读取的启动代码载入第一区;提取用于确认第三区中的代码镜像的授权改变的第一函数和通过将第一参数应用于第一函数获得的第一结果,所述第三区存储关于初始代码镜像的信息;提取通过将第二参数应用于存储在第三区中的第一函数获得的第二结果,所述第三区存储关于更新的代码镜像;将第一结果与通过将第二结果作为参数应用于第一函数获得的结果进行比较,并且当两个结果相同时,运行所述代码镜像。
9、如权利要求8所述的存储装置,其中,第三区具有一次性编程存储装置。
10、如权利要求8所述的存储装置,其中,所述第一函数是安全单向函数,所述安全单向函数具有这样的特征:当输入值彼此不同时生成不同的输出值,并且很难从输出值获得输入值。
11、如权利要求8所述的存储装置,其中,所述存储装置是OneNAND装置。
CNB2006101437196A 2005-11-07 2006-11-03 用于安全更新和启动代码镜像的方法和装置 Expired - Fee Related CN100530096C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050106081 2005-11-07
KR1020050106081A KR100746012B1 (ko) 2005-11-07 2005-11-07 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치

Publications (2)

Publication Number Publication Date
CN1963758A true CN1963758A (zh) 2007-05-16
CN100530096C CN100530096C (zh) 2009-08-19

Family

ID=37907358

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101437196A Expired - Fee Related CN100530096C (zh) 2005-11-07 2006-11-03 用于安全更新和启动代码镜像的方法和装置

Country Status (5)

Country Link
US (1) US7711944B2 (zh)
EP (1) EP1788506A3 (zh)
JP (1) JP4503576B2 (zh)
KR (1) KR100746012B1 (zh)
CN (1) CN100530096C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739270B (zh) * 2008-11-05 2013-04-03 英华达(上海)科技有限公司 电子装置及其系统更新方法
CN101751273B (zh) * 2008-12-15 2013-04-24 中国科学院声学研究所 用于嵌入式系统的安全引导装置及方法
CN109284114A (zh) * 2017-07-20 2019-01-29 深圳市中兴微电子技术有限公司 嵌入式系统中可编程芯片的自动烧录方法
CN117494079A (zh) * 2023-12-25 2024-02-02 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070099200A (ko) 2006-04-03 2007-10-09 삼성전자주식회사 휴대형 무선 기기의 응용 모듈 접근 제한 장치 및 이를이용한 접근 제한 방법
US8452987B2 (en) * 2006-10-06 2013-05-28 Broadcom Corporation Method and system for disaster recovery in a secure reprogrammable system
US20080222428A1 (en) * 2007-03-07 2008-09-11 Andrew Dellow Method for Securing Authenticity of Data in a Digital Processing System
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US8386738B1 (en) * 2008-11-06 2013-02-26 Marvell International Ltd. Off-chip non-volatile memory access
US8214692B1 (en) * 2011-09-30 2012-07-03 Google Inc. System and method for enforcing a third-party factory test
US9069966B2 (en) 2011-10-11 2015-06-30 International Business Machines Corporation Code updates in processing systems
GB2499985A (en) 2012-02-29 2013-09-11 Nds Ltd Current state of OTP memory used with new received information to define new OTP state for computation of new digital signature in preventing playback attacks
KR101412202B1 (ko) * 2012-12-27 2014-06-27 주식회사 안랩 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법
CN105408858B (zh) * 2013-07-31 2019-11-12 惠普发展公司,有限责任合伙企业 用于计算系统的方法和系统
JP6548636B2 (ja) * 2014-05-16 2019-07-24 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、および電子機器
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
US10037201B2 (en) * 2016-02-26 2018-07-31 Dell Products L.P. Secure live media boot system
KR101968382B1 (ko) * 2016-07-14 2019-04-11 경희대학교 산학협력단 Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법
JP6871727B2 (ja) * 2016-11-29 2021-05-12 キヤノン株式会社 撮像装置、画像処理方法、及び、プログラム
KR102567097B1 (ko) 2018-12-05 2023-08-14 삼성전자주식회사 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
KR102282039B1 (ko) * 2019-11-19 2021-07-27 한국항공우주연구원 Cbc 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6581159B1 (en) * 1999-12-23 2003-06-17 Intel Corporation Secure method of updating bios by using a simply authenticated external module to further validate new firmware code
KR100367620B1 (ko) * 2001-03-29 2003-01-10 엘지전자 주식회사 블루투스 시스템의 주파수 호핑 방법
US6993648B2 (en) * 2001-08-16 2006-01-31 Lenovo (Singapore) Pte. Ltd. Proving BIOS trust in a TCPA compliant system
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7305564B2 (en) * 2002-12-19 2007-12-04 International Business Machines Corporation System and method to proactively detect software tampering
JP2005033640A (ja) * 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
JP2005182509A (ja) * 2003-12-19 2005-07-07 Ntt Docomo Inc 計算機システム並びにデータ改竄検出方法
US7296143B2 (en) * 2004-06-22 2007-11-13 Lenovo (Singapore) Pte. Ltd. Method and system for loading processor boot code from serial flash memory
US7318151B1 (en) * 2004-11-04 2008-01-08 Network Appliance, Inc. Method and system for firmware management

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739270B (zh) * 2008-11-05 2013-04-03 英华达(上海)科技有限公司 电子装置及其系统更新方法
CN101751273B (zh) * 2008-12-15 2013-04-24 中国科学院声学研究所 用于嵌入式系统的安全引导装置及方法
CN109284114A (zh) * 2017-07-20 2019-01-29 深圳市中兴微电子技术有限公司 嵌入式系统中可编程芯片的自动烧录方法
CN117494079A (zh) * 2023-12-25 2024-02-02 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置
CN117494079B (zh) * 2023-12-25 2024-03-26 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Also Published As

Publication number Publication date
US20070106890A1 (en) 2007-05-10
US7711944B2 (en) 2010-05-04
JP4503576B2 (ja) 2010-07-14
CN100530096C (zh) 2009-08-19
KR100746012B1 (ko) 2007-08-06
KR20070048960A (ko) 2007-05-10
JP2007133875A (ja) 2007-05-31
EP1788506A2 (en) 2007-05-23
EP1788506A3 (en) 2012-04-04

Similar Documents

Publication Publication Date Title
CN100530096C (zh) 用于安全更新和启动代码镜像的方法和装置
CN101578609B (zh) 安全启动计算设备
KR101476948B1 (ko) 변형 억제 부팅 시스템 및 방법
US10489612B2 (en) Memory controller to verify authenticity of data
CN101657792A (zh) 可信部件更新系统和方法
JP2008210235A (ja) 電子機器、および情報処理方法
CN111984962A (zh) 固件安全验证方法及装置
CN103649964A (zh) 安全寄存执行体系架构
KR20180023059A (ko) 키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스
CN114144784A (zh) 对用户数据进行加密的电子装置
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
JP5759827B2 (ja) メモリシステム、情報処理装置、メモリ装置、およびメモリシステムの動作方法
JP2006268296A (ja) 機器の管理方法及びその装置
US20190102573A1 (en) Theater ears android app sensitive data management
US11429722B2 (en) Data protection in a pre-operation system environment based on an embedded key of an embedded controller
CN101131716A (zh) 具轨迹识别功能的开机系统及其处理方法
KR20040097435A (ko) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
US9633229B2 (en) Semiconductor device module, license setting method and medium having license setting program recorded therein
CN108268760B (zh) 一种电子设备安全保护方法及系统
JP4792868B2 (ja) 実行権限委譲システム,実行権限委譲方法
JP4364749B2 (ja) 認証装置
CN114996773A (zh) 一种soc芯片启动方法、装置及可读存储介质
JP2007299306A (ja) 利用者認証装置
JP5182787B2 (ja) メモリシステム、メモリカード及びコンピュータシステム
CN117615376A (zh) 一种基于esam模块的智能终端授权及还原方法、装置

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

Granted publication date: 20090819

Termination date: 20131103