更新软件的方法和系统的制作方法

文档序号:10725492阅读:252来源:国知局
更新软件的方法和系统的制作方法
【专利摘要】提供更新软件的方法和系统。一种更新软件的方法包括:在非安全执行环境中验证驱动安全执行环境的第一软件的更新;通过使用在非安全执行环境中存储的第一软件更新的第一镜像来更新第一软件;在安全执行环境中验证驱动由安全执行环境控制的安全装置的第二软件的更新;以及通过使用在安全执行环境中存储的第二软件更新的第二镜像来更新第二软件。
【专利说明】
更新软件的方法和系统[0001 ] 本申请要求于2015年4月27日提交到韩国知识产权局的第10-2015-0058930号韩 国专利申请的优先权,该韩国专利申请的公开通过引用全部合并于此。
技术领域
[0002]本公开涉及一种更新软件的方法和系统。【背景技术】
[0003]在包括移动装置的计算装置中,可以利用使用包括富执行环境(REE)和可信执行环境(TEE)的平台的安全机制。富执行环境包括非安全执行环境,并且可信执行环境包括提供对要求安全性的数据或硬件的独占访问的安全执行环境。例如,一个或多个处理器可以托管(host)REE和TEE两者,TEE与REE隔离,并且处理器确保可以仅在TEE中执行一些操作。 为了确保安全机制的可靠性,安装在TEE和由TEE控制的安全元件(SE)中的软件(例如,固件)不应该被伪造或篡改。
【发明内容】

[0004]本公开的一方面提供一种控制TEE和SE的安全更新软件的方法。
[0005]本公开的另一方面提供一种控制TEE和SE的安全更新软件的系统以及计算机可读记录介质。
[0006]本公开的各方面不限于上述技术问题,而且本领域技术人员通过下面的描述将清楚地理解还没有提及的其他方面。
[0007]根据本公开的一方面,提供一种更新软件的方法。所述方法包括:使用在非安全执行环境中操作的处理器和第一更新管理器,在非安全执行环境中验证驱动安全执行环境的第一软件的更新;使用第一更新管理器,通过使用在非安全执行环境中存储的第一软件更新的第一镜像来更新第一软件;使用在安全执行环境中操作的处理器和第二更新管理器, 在安全执行环境中验证驱动由安全执行环境控制的安全装置的第二软件的更新;以及使用第二更新管理器,通过使用在安全执行环境中存储的第二软件更新的第二镜像来更新第二软件。验证第一软件的更新和第二软件的更新的步骤包括:验证第一软件更新和第二软件更新的正确的软件版本或者容量。
[0008]根据本公开的一方面,提供一种更新软件的方法。所述方法包括:使用镜像管理器,在非安全执行环境中存储镜像数据,其中,镜像数据包括:用于第一软件的更新的第一镜像以及用于第二软件的更新的第二镜像,其中,第一软件驱动安全执行环境,第二软件驱动由安全执行环境控制的安全装置;使用在非安全执行环境中操作的第一更新管理器,通过使用镜像数据的第一镜像在非安全执行环境中更新第一软件;提取在镜像数据中包括的第二镜像,以使用镜像管理器在安全执行环境中存储第二镜像;以及使用在安全执行环境中操作的第二更新管理器,通过使用在安全执行环境中存储的第二镜像在安全执行环境中更新第二软件。
[0009]根据本公开的一方面,提供一种更新软件的系统。所述系统包括:处理器;第一更新管理器,在非安全执行环境中操作;以及第二更新管理器,在安全执行环境中操作。第一更新管理器通过使用处理器来验证驱动安全执行环境的第一软件的更新,并且通过使用在非安全执行环境中存储的第一软件更新的第一镜像来更新第一软件。第二更新管理器通过使用处理器来验证驱动由安全执行环境控制的安全装置的第二软件的更新,并且通过使用在安全执行环境中存储的第二软件更新的第二镜像来更新第二软件。验证第一软件的更新和第二软件的更新的步骤包括:验证第一软件更新和第二软件更新的正确的软件版本或者容量。
[0010]根据本公开的一方面,提供一种存储使计算机执行通过使用处理器验证软件更新的方法的一个或多个指令字的非暂时性计算机可读记录介质。所述方法包括:在第一执行环境中驱动第二执行环境,并且使计算机通过使用在第一执行环境中存储的软件更新的镜像来更新软件。【附图说明】
[0011]通过参照附图对本公开的示例性实施例的详细描述,本公开的上述以及其他方面和特征将会变得更加清楚,其中:
[0012]图1是根据本公开的实施例的用于解释更新软件的系统的示意图;
[0013]图2是根据本公开的实施例的用于解释更新软件的系统的更新管理器的示意图;
[0014]图3是根据本公开的实施例的用于解释镜像数据的结构的示意图;
[0015]图4是根据本公开的实施例的用于解释更新软件的方法的示意图;
[0016]图5是根据本公开的另一实施例的用于解释镜像数据的结构的示意图;
[0017]图6是根据本公开的另一实施例的用于解释更新软件的方法的示意图;
[0018]图7是根据本公开的再一实施例的用于解释镜像数据的结构的示意图;
[0019]图8是根据本公开的再一实施例的用于解释更新软件的方法的示意图;
[0020]图9是根据本公开的再一实施例的用于解释镜像数据的结构的示意图;[0021 ]图10是根据本公开的再一实施例的用于解释更新软件的方法的示意图;
[0022]图11是根据本公开的实施例的用于解释更新软件的方法的流程图;
[0023]图12是根据本公开的实施例的用于解释更新软件的方法的流程图;
[0024]图13是根据本公开的实施例的用于解释更新软件的方法的流程图;以及
[0025]图14至图16是根据本公开的实施例的更新软件的方法和系统适用的示例性半导体系统。【具体实施方式】
[0026]将参照附图来详细描述实施例。然而,本公开可以以多种不同形式实现,并且不应该被解释为仅受限于示出的实施例。相反,提供这些实施例作为示例,使得本公开将是彻底的和完整的,并且将本公开的构思充分地传达给本领域的技术人员。因此,对于本公开的一些实施例,不描述已知的处理、元件和技术。除非另有说明,否则贯穿附图和书面描述,相同的参考标号表示相同的元件,因此将不再重复描述。在附图中,为了清楚,可以夸大层和区域的大小和相对大小。
[0027]应当理解,尽管在这里可以使用术语“第一”、“第二”、“第三”等来描述不同的元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应该受这些术语的限制。这些术语仅是用来将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分进行区分。因此,在不脱离本公开教导的情况下,下面讨论的第一元件、组件、区域、层或部分可以被称作第二元件、组件、区域、层或部分。
[0028]如附图所示,为便于描述一个元件或特征与另一元件或特征的关系,在这里可以使用空间相对术语,诸如“在…之下”、“在…以下”、“下方”、“下面”、“在…以上”、“上方”等。 应当理解,空间相对术语意在包含除了在附图中描绘的方位之外的在使用或操作中的装置的不同方位。例如,如果附图中的装置被翻转,则被描述为处于另一元件或特征“以下”或 “之下”或“下面”的元件随后可以被定位为处于另一元件或特征“上面”。因此,示例性词语 “在…以下”和“下面”可以包含“在…以上”和“在…以下”两种方位。所述装置可朝向另外的方位(旋转90度或者在其它方位),并且对在这里使用的空间相对描述符相应地进行解释。 另外,还应当理解,当层被称为在两个层“之间”时,它可以是这两个层之间的唯一的层,或者也可以存在一个或多个中间层。
[0029]在此所使用的术语仅用于描述具体实施例的目的,并非意在限制本公开。如在此所使用的,除非上下文另外清楚地指示,否则单数形式也意图包括复数形式。还应当理解, 当术语“包括”和/或“包含”在本说明书中使用时,说明存在所陈述的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或附加一个或多个其它特征、整体、步骤、操作、元件、 组件和/或它们的组。如在此所使用的术语“和/或”包括一个或多个相关所列的项的任意组合和所有组合。此外,术语“示例性”意在表示示例或说明。
[0030]应当理解,当元件或层被称为在另一元件或层“上”,“连接到”、“耦接到”另一元件或层,或者与另一元件或层“相邻”时,它可以直接在另一元件或层上,直接连接到、耦接到另一元件或层,或者与另一元件或层直接相邻,或者可以存在中间元件或层。相反,当一个元件被称为“直接在”另一元件或层“上”,“直接连接到”、“直接耦接到”另一元件或层,或者与另一元件或层“直接相邻”时,则不存在中间元件或层。
[0031]除非另有定义,否则这里使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还应当理解,除非在此明确定义,否则如常用词典中所定义的术语应该被解释为具有与它们在相关领域和/或本说明的上下文中的含义一致的含义,并且不应被解释为理想化或过于形式的意义。
[0032]图1是根据本公开的实施例的用于解释更新软件的系统的示意图。[〇〇33]参照图1,根据本公开的实施例的更新软件的系统1包括处理器10、显示器12、存储器14、输入装置16、内存18和安全元件(SE)20。处理器10、显示器12、存储器14、输入装置16、 内存18和SE 20通过总线22电连接在一起,以能够彼此发送和接收数据。[〇〇34]在本公开的各种实施例中,内存18可以包括操作系统24、更新管理器100和镜像管理器200。在此,操作系统24可以包括在非安全执行环境210中操作的非安全内核216和在安全执行环境220中操作的安全内核226。此外,更新管理器100和镜像管理器200可以不包括在内存18中,而是被单独地实现。[〇〇35]更新管理器100通过使用在非安全执行环境210中存储的镜像来更新驱动安全执行环境220的软件,并且通过使用在安全执行环境220中存储的镜像来更新驱动安全元件20的软件。在此,镜像可以是指包括能够驱动各种类型的半导体装置(例如,计算系统、移动装置、安全硬件和装置控制器)的软件或操作系统的数据的“软件镜像”。更新管理器100包括在非安全执行环境210中操作的第一更新管理器110和在安全执行环境220中操作的第二更新管理器120。稍后将参照图2来描述第一更新管理器110和第二更新管理器120的具体描述。[〇〇36]镜像管理器200可以存储用于在非安全执行环境210或安全执行环境220中更新驱动安全执行环境220的软件或驱动安全元件20的软件的软件镜像,或者可以对编码的软件进行解码。[〇〇37] 在本公开的一些实施例中,更新管理器100和镜像管理器200可以被实现为软件程序并被加载在内存18中,或可以在处理器10上执行更新管理器100和镜像管理器200。然而, 本公开的范围不限于于此,并且在本公开的一些实施例中,更新管理器100和镜像管理器 200可以被实现为硬件,诸如包括电子电路的芯片。
[0038]图2是根据本公开的实施例的用于解释更新软件的系统的更新管理器的示意图。
[0039]参照图2,根据本公开的实施例的更新软件的系统2包括非安全执行环境210和安全执行环境220。在本公开的一些实施例中,非安全执行环境210可以包括富执行环境 (REE),安全执行环境220可以包括可信执行环境(TEE)。
[0040]非安全执行环境210可以包括第一更新管理器(TEE更新管理器)110、非安全应用 213、非安全应用214、非安全API(应用程序接口)215和非安全内核216。[〇〇411 第一更新管理器110在非安全执行环境210中操作,并且验证驱动安全执行环境 220的第一软件的更新。在本公开的一些实施例中,第一更新管理器110可以验证二进制散列(binary hash)、安全执行环境220的软件版本信息和第一软件更新的软件版本信息中的至少一个。此外,第一更新管理器110使用在非安全执行环境210中存储的第一软件更新的第一镜像来更新第一软件。在本公开的一些实施例中,在第一更新管理器110验证第一软件更新之前,可以通过镜像管理器200在非安全执行环境210中存储第一软件更新。同时,在本公开的一些实施例中,第一软件可以包括驱动安全执行环境220的固件或应用。
[0042]非安全应用213、非安全应用214执行不被保护的操作或功能。例如,非安全应用 213、非安全应用214可以包括预加载应用、本机应用等,但是本公开的范围不限于此。[〇〇43]非安全API 215提供启用非安全应用213、非安全应用214的接口或功能,以控制非安全内核216提供的功能。例如,非安全API 215启用非安全应用213、非安全应用214,以与非安全内核216交换数据,或者启用非安全应用213、非安全应用214,以使用非安全内核216 管理的硬件资源212。
[0044]非安全内核216可以控制或管理用于执行在非安全应用213、非安全应用214或非安全API 215中实现的操作或功能的硬件资源212。具体地,非安全内核216可以包括用于执行与安全内核226的通信的驱动器(例如,监视器)。非安全执行环境210可以使用驱动器要求安全执行环境220执行特定安全操作或功能。[〇〇45]同时,安全执行环境220可以包括第二更新管理器(SE更新管理器)120、安全应用 223、安全应用224、安全API 225和安全内核226。[〇〇46] 第二更新管理器120在安全执行环境220中操作,并且验证驱动由安全执行环境 220控制的安全装置的第二软件的更新。在此,例如,安全装置可以包括安全元件20。在本公开的一些实施例中,第二更新管理器120可以验证安全装置的软件版本信息或第二软件更新的软件版本信息。此外,第二更新管理器120使用在安全执行环境220中存储的第二软件更新的第二镜像来更新第二软件。在本公开的一些实施例中,在第一更新管理器110验证第一软件更新之前,可通过镜像管理器200在非安全执行环境210中存储第二软件更新以及第一镜像。同时,在本公开的一些实施例中,第二软件可以包括驱动由安全执行环境220控制的安全装置的固件或应用。
[0047]例如,安全应用223、安全应用224响应于非安全执行环境210的请求执行安全的操作或功能。例如,安全应用223、安全应用224可以包括预加载应用、本机应用等,但是本公开的范围不限于此。具体地,在本公开的一些实施例中,安全应用224能够向安全元件(SE)20 发送数据和从安全元件(SE) 20接收数据。[〇〇48]安全API 225提供启用安全应用223、安全应用224的接口或功能,以控制安全内核 226提供的功能。例如,安全API 225可以启用安全应用223、安全应用224,以与安全内核226 交换数据,或者可以启用安全应用223、安全应用224,以使用非安全内核226管理的硬件安全资源222。[〇〇49] 安全内核226可以控制或管理用于执行安全应用223、安全应用224或安全API 225 中实现的操作或功能的硬件安全资源222。
[0050]图3是根据本公开的实施例的用于解释镜像数据的结构的示意图。[0051 ]参照图3,根据本公开的实施例的镜像数据300包括TEE镜像310、SE镜像320和签名 330。在此,TEE镜像310包括驱动安全执行环境220的第一软件更新的镜像,SE镜像320包括驱动由安全执行环境220控制的安全元件20的第二软件更新的镜像。[〇〇52]在此实施例中,包括在镜像数据300中的SE的镜像320可以包括编码的SE镜像322 和签名324。也就是说,在镜像管理器200生成包括TEE镜像310和编码的SE镜像322的镜像数据300之后,镜像管理器200可以在非安全执行环境210中存储镜像数据300。在此,TEE镜像 310可以是未编码的镜像,但是本公开的范围不限于此。[〇〇53]同时,签名330、签名324可以包括用于确定在更新软件之前软件更新是否被伪造或篡改的数据。例如,用于更新第一软件的签名330的验证可以包括使用在非安全执行区域 210中存储的应用处理器(AP)的公钥的签名330的验证。同时,用于更新第二软件的签名324 的验证可以包括使用在安全执行区域220中存储的应用处理器(AP)的公钥的签名324的验证。
[0054]图4是根据本公开的实施例的用于解释更新软件的方法的示意图。
[0055]参照图4,第一更新管理器110验证驱动安全执行环境220的第一个软件的更新。也就是说,可以在非安全执行环境210中执行第一更新管理器110的第一软件更新验证工作。 在本公开的一些实施例中,第一更新管理器110可以验证二进制散列、安全执行环境220的软件版本信息和第一软件更新的软件版本信息中的至少一个。[〇〇56]作为第一软件更新的验证结果,当确定需要更新第一软件时,第一更新管理器110 使用在非安全执行环境210中存储的镜像数据300中的第一软件更新的第一镜像(S卩,TEE镜像310),更新第一软件。在此,需要更新第一软件的情况可以包括:第一软件被伪造或篡改且其可靠性被怀疑的情况、第一软件的版本与更旧版本或其他装置的兼容性不能保证的情况以及存在来自用户应用或系统应用的更新第一软件的请求的情况。
[0057]在第一软件的更新工作之后,可以通过镜像管理器200、第一更新管理器110和第二更新管理器120中的至少一个在安全执行环境220中存储在非安全执行环境210中存储的镜像数据300中的编码的SE镜像322和签名324。因此,非安全执行环境210不能访问在安全执行环境220中存储的编码的SE镜像322和签名324。[〇〇58]在本公开的一些实施例中,使用在非安全执行环境210中存储的TEE镜像310的第一软件的更新还可以包括在更新第一软件之前在安全执行环境220中备份第一软件的镜像。因此,当第一软件的更新失败时,可以使用在安全执行环境220中备份的第一软件的镜像执行第一软件的回滚(rollback)。[〇〇59] 参照图4,第二更新管理器120验证驱动由安全执行环境220控制的安全元件20的第二软件的更新。也就是说,在安全执行环境210中执行第二更新管理器120的第二软件更新验证工作。在本公开的一些实施例中,第二更新管理器120可以验证安全元件20的软件版本信息或第二软件更新的软件版本信息。
[0060]作为第二软件更新的验证结果,当确定需要更新第二软件时,第二更新管理器120 使用在安全执行环境220中存储的第二镜像(S卩,编码的SE镜像322),更新第二软件。在此, 需要更新第二软件的情况可以包括:第二软件被伪造或篡改且其可靠性被怀疑的情况、第二软件的版本与更旧版本或其他装置的兼容性不能保证的情况以及存在来自用户应用或系统应用的更新第二软件的请求的情况。
[0061]在此,在更新第二软件之前,可以对编码的SE镜像322进行解码。在本公开的一些实施例中,在安全执行环境220中对编码的SE镜像322进行解码之后,可以用于更新第二软件。同时,在本公开的一些其它实施例中,在编码的SE镜像322从安全执行环境220被发送到安全元件20且在安全元件220中被解码之后,可以用于更新第二软件。[〇〇62]在本公开的一些实施例中,使用在安全执行环境220中存储的编码的SE镜像322的第二软件的更新还可以包括在更新第二软件之前在安全执行环境220或安全元件20中备份第二软件的镜像。因此,当第二软件的更新失败时,可以使用在安全执行环境220或安全元件20中备份的第二软件的镜像执行第二软件的回滚。
[0063]在本公开的一些实施例中,可以在启动更新软件的系统1时执行验证和更新工作。 具体地,在开始启动更新软件的系统1且第一更新管理器110和第二更新管理器120执行第一软件更新和第二软件更新的验证以及第一软件和第二软件的更新工作之后,可以完成启动更新软件的系统1。同时,在本公开的一些实施例中,可以在请求更新第一软件和第二软件的用户应用或系统应用开始时,执行第一软件更新和第二软件更新的验证以及第一软件和第二软件的更新工作。验证软件更新的步骤可包括检查软件的软件版本或者容量。因此, 验证第一软件更新和第二软件更新的步骤可包括:检查第一软件更新和第二软件更新的软件版本或者容量。[〇〇64]根据如上所描述的本公开的更新软件的方法,由于安全元件20的软件镜像,例如, 驱动安全元件20的固件的二进制镜像没有暴露于包括安全执行环境210的外部,因此可以以安全的方式来更新安全元件20的软件。同时,由于本公开的更新软件的方法通过使用包括用于更新第一软件的第一镜像和用于更新控制由第一软件驱动的执行环境或装置的第二软件的第二镜像的一个镜像数据,依次更新第一软件和第二软件,因此可以容易地更新驱动多个执行环境或装置的多个软件,并且当软件问题发生时,也可以容易地从这些问题恢复。
[0065]图5是根据本公开的另一实施例的用于解释镜像数据的结构的示意图。[〇〇66]参照图5,根据本公开的另一实施例的镜像数据400包括TEE镜像410、装置镜像420 和签名460。在此,TEE镜像410包括驱动安全执行环境220的第一软件的更新的镜像,装置镜像420包括驱动由安全执行环境220控制的一个或多个装置230、装置232的第二软件的一个或多个更新的镜像。[0〇67]在此实施例中,包括在镜像数据400中的装置镜像420可以包括一个或多个装置镜像422、装置镜像424和签名426。在本公开的一些实施例中,一个或多个装置镜像422、装置镜像424可以是编码的镜像。[〇〇68]同时,签名460、签名426可以包括用于在更新软件之前确定软件更新是否被伪造或篡改的数据。例如,可以在对更新第一软件的验证中使用签名460,可以在对分别更新一个或多个装置230、装置232的一个或多个第二软件的验证中共同使用签名426。
[0069]图6是根据本公开的另一实施例的用于解释更新软件的方法的示意图。
[0070]参照图6,第一更新管理器110验证驱动安全执行环境220的第一软件的更新。也就是说,可以在非安全执行环境210中执行第一更新管理器110的第一软件更新验证工作。
[0071]作为第一软件更新的验证结果,当确定需要更新第一软件时,第一更新管理器110 使用在非安全执行环境210中存储的镜像数据410中的第一软件更新的第一镜像(S卩,TEE镜像410),更新第一软件。在此,需要更新第一软件的情况可以包括:第一软件被伪造或篡改且其可靠性被怀疑的情况、第一软件的版本与更旧版本或其他装置的兼容性不能保证的情况以及存在来自用户应用或系统应用的更新第一软件的请求的情况。[〇〇72]在第一软件的更新工作之后,可以通过镜像管理器200、第一更新管理器110和第二更新管理器120中的至少一个,在安全执行环境220中存储在非安全执行环境210中存储的镜像数据400中的装置镜像422a、装置镜像422b和签名426。因此,非安全执行环境210不能访问在安全执行环境220中存储的装置镜像422a、装置镜像422b和签名426。在本公开的一些实施例中,可以对装置镜像422a、装置镜像422b进行编码。[〇〇73]参照图6,第二更新管理器120验证驱动由安全执行环境220控制的一个或多个装置230、装置232的第二软件的一个或多个更新。也就是说,在安全执行环境210中执行第二更新管理器120的第二软件更新验证工作。在本公开的一些实施例中,第二更新管理器120 可以验证装置230、装置232的每个软件版本信息或第二软件更新的软件版本信息。[〇〇74]作为第二软件更新的验证结果,当确定需要更新第二软件时,第二更新管理器120 使用在安全执行环境220中存储的第二镜像(S卩,装置镜像422a、装置镜像422b),更新第二软件。具体地,第二更新管理器120通过使用装置镜像422a更新驱动第一装置230的第二软件,并且通过使用镜像装置422b更新驱动第二装置232的第二软件。在此,需要更新第二软件的情况可以包括:第二软件被伪造或篡改且其可靠性被怀疑的情况、第二软件的版本与更旧版本或其他装置的兼容性不能保证的情况以及存在来自用户应用或系统应用的更新第二软件的请求的情况。[0〇75]在此,当装置镜像422a、装置镜像422b被编码时,编码的装置镜像422a、装置镜像 422b可以在更新第二软件之前被解码。在本公开的一些实施例中,在安全执行环境220中对编码的镜像装置422a、装置镜像422b进行解码之后,镜像可以用于更新第二软件。同时,在本公开的一些其它实施例中,在编码的装置镜像422a、装置镜像422b从安全执行环境220发送到装置230、装置232,并且在装置230、装置232中被解码之后,镜像可以用于更新第二软件。[〇〇76]根据如上所述的本公开的更新软件的方法,由于多个装置230、装置232的软件镜像,例如,驱动多个装置230、装置232中的每个装置的固件的二值镜像没有暴露于包括非安全执行环境210的外部,因此可以以安全的方式来更新多个装置230、装置232的软件。同时, 根据本公开的更新软件的方法,通过使用包括用于更新第一软件的第一镜像和用于更新控制由第一软件驱动的执行环境或装置的第二软件的第二镜像的一个镜像数据,依次更新第一软件和第二软件,具体地,连续更新驱动多个装置230、装置232的软件。因此,可以容易且有效地更新驱动多个执行环境或装置的多个软件,并且当多个装置230、装置232的软件问题发生时,也可以容易且有效地从这些问题恢复。
[0077]图7是根据本公开的另一实施例的用于解释镜像数据的结构的示意图。
[0078]参照图7,此实施例与图5相关的实施例的不同之处在于:根据本公开的再一实施例的镜像数据400包括TEE数据410、装置镜像430和签名460,并且装置镜像430存储驱动由安全执行环境220控制的一个或多个装置230、装置232的一个或多个第二软件更新的镜像。 [〇〇79]具体地,在此实施例中,包括在镜像数据400中的装置镜像430可以包括第一装置镜像432、第一签名433、…、第N装置镜像434和第N签名435 (其中,N是自然数)。在本公开的一些实施例中,一个或多个装置镜像432、装置镜像434可以是编码的镜像。可以在更新第一装置的第二软件的验证中使用第一签名433,可以在更新第N装置的第二软件的验证中使用第N签名435。
[0080]图8是根据本公开的再一实施例的用于解释更新软件的方法的示意图。
[0081]参照图8,此实施例与图6相关的实施例的不同之处在于:在第一软件的更新工作之后,通过镜像管理器200、第一更新管理器110和第二更新管理器120中的至少一个,在安全执行环境220中存储在非安全执行环境210中存储的镜像数据400中的装置镜像432a、装置镜像432b、签名433a和签名433b。[〇〇82]因此,当需要更新第二软件时,第二软件管理器120通过使用第一装置镜像432a和第一签名433a更新驱动第一装置230的第二软件,并且第二软件管理器120通过使用第二装置镜像432b和第二签名433b更新驱动第二装置232的第二软件。
[0083]图9是根据本公开的再一实施例的用于解释镜像数据的结构的示意图。
[0084]参照图9,此实施例与图7相关的实施例的不同之处在于:根据本公开的再一实施例的镜像数据400包括TEE数据410、装置镜像440和签名460,并且装置镜像440包括:由安全执行环境220控制的第一装置镜像442、剩余装置镜像450和第一签名446。此外,装置镜像 450包括:由安全执行环境220控制的第二装置镜像452、剩余装置镜像454和第二签名456。 [〇〇85]在本公开的一些实施例中,一个或多个装置镜像442、装置镜像452可以是编码的镜像。可以在更新第一装置的第二软件的验证中使用第一签名446,并且可以在更新第N装置的第二软件的验证中使用第二签名456。
[0086]图10是根据本公开的再一实施例的用于解释更新软件的方法的示意图。
[0087]参照图10,此实施例与图8相关的实施例的不同之处在于:在第一软件的更新工作之后,通过镜像管理器200、第一更新管理器110和第二更新管理器120中的至少一个,在安全执行环境220中存储在非安全执行环境210中存储的镜像数据400中的第一装置镜像442、 剩余装置镜像450和第一签名446,并且在执行第一装置230的更新工作的同时,通过镜像管理器200和第二更新管理器120的至少一个在第一装置230中存储第二装置镜像452、剩余装置镜像454和第二签名456。[〇〇88]因此,当需要更新第二软件时,第二软件管理器120通过使用在安全执行环境220 中存储的第一装置镜像442和第一签名446来更新驱动第一装置230的第二软件,并且第二软件管理器120通过使用在第一装置230中存储的第二装置镜像452和第二签名456来更新驱动第二装置232的第二软件。当然,在第一装置230中存储的剩余装置镜像454可以被发送到第二装置232并存储在其中。
[0089]图11是根据本公开的实施例的用于解释更新软件的方法的流程图。
[0090]参照图11,根据本公开的实施例的更新软件的方法开始启动更新软件的系统1 (1101 ),并且通过REE来验证TEE镜像310、TEE镜像410 (1103)。例如,所述方法验证TEE镜像 310、TEE镜像410的二进制散列或软件版本,以确定是否需要更新驱动TEE的软件(1105)。 [〇〇91]当需要更新TEE软件时,所述方法通过使用在REE中存储的TEE镜像310、TEE镜像 410来更新驱动TEE的软件(1107),并且确定是否成功地执行更新(1111)。如果没有成功地执行更新,则驱动TEE的软件被回滚(1113 ),如果成功地执行了更新,则通过TEE来验证SE镜像(1109)。当在操作(1105)中确定不需要更新TEE软件时,所述方法从操作(1105)直接进行到操作(1109)。当完成操作(1109)时,例如,所述方法验证SE镜像的软件版本,以确定是否需要更新驱动SE的软件(1115)。[〇〇92]当需要更新SE软件时,所述方法通过使用在TEE中存储的SE镜像来更新驱动SE的软件(1117),并且确定是否成功地执行更新(1121)。如果没有成功地执行更新,则驱动TEE 的软件被回滚(1123),如果成功执行了更新,则更新软件的系统1的启动被完成(1119)。当如在操作(1115)确定不需要更新SE软件时,所述方法从操作(1115)直接转换到启动完成 (1119)〇
[0093]图12是根据本公开的实施例的用于解释更新软件的方法的流程图。
[0094]参照图12,在根据本发明的另一实施例的更新软件的方法中,开始更新软件的系统1的启动(1201 ),并且在完成更新软件的系统1的启动之后(1203 ),通过REE来验证TEE镜像310、TEE镜像410 (1205)。当需要更新TEE软件时,所述方法使用在REE中存储的TEE镜像 310、TEE镜像410来更新驱动TEE的软件(1207)。[〇〇95]接下来,所述方法通过TEE来验证装置镜像(1209)。例如,所述方法验证装置镜像的软件版本,以确定是否需要更新驱动装置230、装置232的软件。当需要更新装置软件时, 所述方法通过使用在TEE中存储的装置镜像来更新驱动装置230、装置232的软件(1211),并且确定所有装置的验证和更新是否完成(1213)。如果验证和更新所需的装置镜像仍然存在,则通过TEE来验证装置镜像(1209)。
[0096]图13是根据本公开的实施例的用于解释更新软件的方法的流程图。
[0097]参照图13,在根据本公开的再一实施例的更新软件的方法中,开始更新软件的系统1的启动(1301 ),并且在完成更新软件的系统1的启动之后(1303 ),通过REE来验证TEE镜像310、TEE镜像410(1305)。当需要更新TEE软件时,所述方法通过使用在REE中存储的TEE镜像310、TEE镜像410来更新驱动TEE的软件(1307)。
[0098]接下来,所述方法通过TEE来验证第一装置镜像(1309)。例如,所述方法验证第一装置镜像的软件版本,以确定是否需要更新驱动第一装置230的软件。当需要更新第一装置 230的软件时,所述方法通过使用在TEE中存储的第一装置镜像来更新驱动第一装置230的软件(1311)。
[0099]接下来,例如,所述方法验证第二装置镜像的软件版本,以确定是否需要更新驱动第二装置232的软件。当需要更新第二装置232的软件时,所述方法通过使用在第一装置230 中存储的第二装置镜像来更新驱动第二装置232的软件(1313)。重复这些处理以完成到第N 装置的更新(其中,N是自然数)(1315)。
[0100]如上所述的本公开的各种实施例可以实现为能够通过各种计算机执行的程序指令,并且可以记录在计算机可读记录介质中。在此,记录介质可以包括程序指令、数据文件、 数据结构等。程序指令可以针对本公开的各种实施例而专门设计和配置,或者可以被计算机软件领域的普通技术人员公知且可用。此外,记录介质可以包括磁介质(诸如,硬盘、软盘和磁带)、光学介质(诸如,⑶-ROM和DVD)、磁光介质(诸如,光磁盘)、R0M、RAM和硬件(诸如, 闪存)。此外,程序指令可以包括能够由计算机通过使用解释器等执行的高级语言代码,以及诸如由编译器产生的机器语言代码。
[0101]同时,如上所述的本公开的各种实施例可以实现为电连接到处理器10且基于处理器10的控制操作的硬件模块。例如,如上所述的本公开的各种实施例可以被制造,以便在应用处理器的部分区域中形成多个半导体元件。
[0102]图14至图16是根据本公开的实施例的更新软件的方法和系统适用的示例性半导体系统。
[0103]图14是示出平板PC 1200的示图,图15是示出笔记本电脑1300的示图,图16示出智能电话1400。根据本公开的实施例的更新软件的方法和系统中的至少一个可以用于平板 PC1200、笔记本电脑1300、智能电话1400等。
[0104]此外,对本领域技术人员显而易见的是,根据本公开的一些实施例的更新软件的方法和系统也适用于未示出的其它集成电路装置。也就是说,尽管上面仅描述了平板 PC1200、笔记本电脑1300和智能电话1400作为根据本实施例的更新软件的系统的示例,但是根据本实施例的更新软件的系统的示例不限于此。在本公开的一些实施例中,更新软件的系统可以实现为计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、无线电话、移动电话、电子书、便携式多媒体播放器(PMP )、便携式游戏机、导航装置、黑盒子、数字相机、三维电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器等。
[0105]如本领域的传统技术,可根据实现所描述的一个功能或多个功能的多个块来描述并且示出实施例。通过模拟和/或数字电路(诸如,逻辑门、集成电路、微处理器、微控制器、 存储电路、无源电子组件、有源电子组件、光学组件、硬连接电路等)来物理地实现这些块 (在此可被称为单元或模块等),并且可通过固件和/或软件来选择性地驱动这些块。所述电路可,例如,被实现在一个或多个半导体芯片中,或者被实现在基底支撑件(诸如,印刷电路板等)上。可通过专用硬件,或者通过处理器(例如,一个或多个编程的微处理器和相关联的电路系统),或者通过用于执行块的一些功能的专用硬件和用于执行块的其他功能的处理器的组合,来实现构成块的电路。在不脱离本公开的范围的情况下,实施例的每个块可被物理地分开为两个或更多个相互作用并且分离的块。同样地,在不脱离本公开的范围的情况下,实施例的块可被物理地组合为更复杂的块。
[0106]在总结【具体实施方式】中,本领域的技术人员将理解,在本质上不脱离本公开的原理的情况下,可以对优选实施例进行许多变化和修改。因此,本公开所公开的优选实施例仅被用于一般和描述性意义,而不是为了限制的目的。
【主权项】
1.一种更新软件的方法,所述方法包括:使用在非安全执行环境中操作的处理器和第一更新管理器,在非安全执行环境中验证 驱动安全执行环境的第一软件的更新;使用第一更新管理器,通过使用在非安全执行环境中存储的第一软件更新的第一镜像 来更新第一软件;使用在安全执行环境中操作的处理器和第二更新管理器,在安全执行环境中验证驱动 由安全执行环境控制的安全装置的第二软件的更新;使用第二更新管理器,通过使用在安全执行环境中存储的第二软件更新的第二镜像来 更新弟^?软件,其中,验证第一软件的更新和第二软件的更新的步骤包括:验证第一软件更新和第二软件更 新的正确的软件版本或者容量。2.如权利要求1所述的方法,还包括:在验证第一软件更新之前,使用镜像管理器,在非 安全执行环境中存储第二镜像和第一镜像。3.如权利要求2所述的方法,其中,当在非安全执行环境中存储第二镜像时,第二镜像 被编码。4.如权利要求3所述的方法,还包括:通过第二更新管理器,从非安全执行环境接收编码的第二镜像,以在安全执行环境中 存储编码的第二镜像,其中,通过使用在安全执行环境中存储的第二软件更新的第二镜像来更新第二软件的步骤 包括:在对编码的第二镜像进行解码之后,通过使用解码的第二镜像来更新第二软件。5.如权利要求1所述的方法,其中,验证第一软件更新的步骤包括:验证安全执行环境 的二进制散列和软件版本信息中的至少一个。6.如权利要求1所述的方法,其中,验证第二软件更新的步骤包括:验证安全装置的软 件版本信息。7.如权利要求1所述的方法,其中,第一软件包括固件或应用,第二软件包括固件或应用。8.如权利要求1所述的方法,其中,通过使用第一软件更新的第一镜像来更新第一软件 的步骤还包括:在更新第一软件之前,在安全执行环境中备份第一软件的当前镜像。9.如权利要求1所述的方法,其中,通过使用第二软件更新的第二镜像来更新第二软件 的步骤还包括:在更新第二软件之前,在安全执行环境中或在安全装置中备份第二软件的 当前镜像。10.如权利要求9所述的方法,其中,通过使用第二软件更新的第二镜像来更新第二软 件的步骤还包括:当第二软件的更新失败时,通过使用在安全执行环境或安全装置中备份 的第二软件的当前镜像来回滚第二软件。11.如权利要求1所述的方法,其中:安全装置包括第一安全装置和与第一安全装置不同的第二安全装置,验证第二软件更新的步骤包括验证分别驱动第一安全装置和第二安全装置的第三软 件和第四软件的更新,更新第二软件的步骤还包括:通过分别使用在安全执行环境中存储的第三软件更新的第三镜像和第四软件更新的第四镜像来更新第三软件和第四软件。12.如权利要求11所述的方法,还包括:在验证第一软件更新之前,使用镜像管理器,在 非安全执行环境中存储第三镜像,第四镜像和第一镜像。13.—种更新软件的方法,所述方法包括:使用镜像管理器,在非安全执行环境中存储镜像数据,其中,镜像数据包括:用于第一 软件的更新的第一镜像以及用于第二软件的更新的第二镜像,其中,第一软件驱动安全执 行环境,第二软件驱动由安全执行环境控制的安全装置;使用在非安全执行环境中操作的第一更新管理器,通过使用镜像数据的第一镜像在非 安全执行环境中更新第一软件;提取在镜像数据中包括的第二镜像以使用镜像管理器在安全执行环境中存储第二镜 像;使用在安全执行环境中操作的第二更新管理器,通过使用在安全执行环境中存储的第 二镜像在安全执行环境中更新第二软件。14.如权利要求13所述的方法,其中:第一镜像是未编码的镜像,第二镜像是编码的镜像,仅在安全执行环境中对编码的第二镜像进行解码,在非安全执行环境中不对编码的第 二镜像进行解码。15.如权利要求13所述的方法,其中:安全装置包括第一安全装置以及与第一安全装置不同的第二安全装置,在非安全执行环境中存储的镜像数据包括:用于第三软件的更新的第三镜像和用于第 四软件的更新的第四镜像,其中,第三软件和第四软件分别驱动第一安全装置和第二安全 装置,提取在镜像数据中包括的第二镜像以使用镜像管理器在安全执行环境中存储第二镜 像的步骤包括:提取在镜像数据中包括的第三镜像和第四镜像,通过使用在安全执行环境中存储的第二镜像在安全执行环境中更新第二软件的步骤 包括:通过使用第三镜像和第四镜像来更新第三软件和第四软件。16.如权利要求13所述的方法,其中:镜像数据还包括与第一软件更新相关联的第一签名和与第二软件更新相关联的第二 签名,通过使用镜像数据的第一镜像在非安全执行环境中更新第一软件的步骤包括:在验证 第一签名之后通过使用第一镜像来更新第一软件,通过使用在安全执行环境中存储的第二镜像在安全执行环境中更新第二软件的步骤 包括:在验证第二签名之后通过使用在安全执行环境中存储的第二镜像来更新第二软件。17.—种更新软件的系统,所述系统包括:处理器;第一更新管理器,在非安全执行环境中操作;第二更新管理器,在安全执行环境中操作,其中:第一更新管理器通过使用处理器来验证驱动安全执行环境的第一软件的更新,并且通 过使用在非安全执行环境中存储的第一软件更新的第一镜像来更新第一软件,第二更新管理器通过使用处理器来验证驱动由安全执行环境控制的安全装置的第二 软件的更新,并且通过使用在安全执行环境中存储的第二软件更新的第二镜像来更新第二 软件,其中,验证第一软件的更新和第二软件的更新的步骤包括:验证第一软件更新和第二软件更 新的正确的软件版本或者容量。18.如权利要求17所述的系统,还包括:镜像管理器,在验证第一软件更新之前,在非安 全执行环境中存储第二镜像和第一镜像。19.如权利要求18所述的系统,其中:第二镜像被编码,且第一镜像不被编码,镜像管理器在非安全执行环境中存储编码的第二镜像和未编码的第一镜像。20.如权利要求19所述的系统,其中:第二更新管理器从非安全执行环境接收编码的第二镜像以在安全执行环境中存储编 码的第二镜像,在对编码的第二镜像进行解码之后,第二更新管理器通过使用解码的第二镜像来更新 第二软件。
【文档编号】G06F21/51GK106096386SQ201610265544
【公开日】2016年11月9日
【申请日】2016年4月26日 公开号201610265544.X, CN 106096386 A, CN 106096386A, CN 201610265544, CN-A-106096386, CN106096386 A, CN106096386A, CN201610265544, CN201610265544.X
【发明人】孙晟薰, 权几衒, 李丞镐, 李俊虎, 韩祐硕
【申请人】三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1