CN113127011A - 电子设备及电子设备的操作方法 - Google Patents
电子设备及电子设备的操作方法 Download PDFInfo
- Publication number
- CN113127011A CN113127011A CN202011482311.8A CN202011482311A CN113127011A CN 113127011 A CN113127011 A CN 113127011A CN 202011482311 A CN202011482311 A CN 202011482311A CN 113127011 A CN113127011 A CN 113127011A
- Authority
- CN
- China
- Prior art keywords
- firmware
- user
- electronic device
- version information
- secure
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种诸如片上系统的电子设备,其可以基于用户同意执行固件更新。所述电子设备包括非易失性存储器(NVM)、主处理器、安全NVM和安全处理器。所述非易失性存储器(NVM)存储第一固件和用户许可指示符。所述主处理器加载所述第一固件以启动安全处理器。所述安全NVM包含第一版本信息。所述安全处理器基于所述用户许可指示符将所述第一固件的版本信息与所述第一版本信息进行比较,并且响应于所述比较的结果为匹配来运行所述第一固件。在一些示例中,所述安全处理器与所述主处理器被实现在同一芯片上。
Description
相关申请的交叉引用
本申请要求于2020年1月14日在韩国知识产权局提交的韩国专利申请No.10-2020-0004950的优先权,其公开内容通过引用全部合并于此。
技术领域
本申请涉及基于用户认证更新固件的电子设备及其操作方法。
背景技术
诸如平板计算机、移动电话和膝上型计算机的移动设备利用软件来执行与设备的可用性有关的各种功能。术语软件可以包括临时存储在用户控制的存储器中的数据以及半永久地存储在硬件存储器中的固件。
在某些情况下,必须更新固件以提供最新的操作系统要求。例如,基于制造商的更新可以向移动设备提供最新的固件。基于制造商的更新提供了应用优化、提高的设备速度、新功能、操作系统稳定性等。
在其他更新方法当中,空中下载(over-the-air,OTA)更新是移动设备更新的优选方法。这些更新可以自动加载到移动设备上,并由设备制造商运行,与用户喜好无关。在某些情况下,无法拒绝新固件更新。例如,当更新包括安全漏洞时,这就会产生问题。
因此,自动更新可能会使移动设备产生安全风险。如果不考虑用户喜好地执行更新,则用户可能几乎没有办法或无法避免风险。因此,在本领域中需要向用户提供能够更多地控制固件更新的系统和方法。
发明内容
本发明构思提供一种在检测到新的固件更新时基于用户是否被认证来更新固件的电子设备及其操作方法。
根据本发明构思的一方面,提供了一种电子设备,包括:非易失性存储器(NVM),所述NVM存储第一固件和用户许可指示符;主处理器,所述主处理器被配置为加载所述第一固件以启动安全处理器;安全NVM,所述安全NVM包含第一版本信息;以及安全处理器,所述安全处理器被配置为基于所述用户许可指示符将所述第一固件的版本信息与所述第一版本信息进行比较,并且响应于所述比较的结果为匹配来运行所述第一固件。
根据本发明构思的另一方面,提供了一种电子设备的操作方法,所述操作方法包括:根据第一固件启动安全处理器;基于用户许可指示符将所述第一固件的版本信息与第一版本信息进行比较;以及当所述比较的结果为匹配时,运行所述第一固件。
根据本发明构思的另一方面,提供了一种电子设备,包括:非易失性存储器(NVM),所述NVM存储第一固件、第二固件以及指示存储了所述第二固件的更新指示符;主处理器,所述主处理器被配置为当所述更新指示符被去激活时加载所述第一固件,并在所述更新指示符被激活时加载所述第二固件;以及安全处理器,所述安全处理器被配置为在加载所述第一固件时验证所述第一固件的数字签名,并响应于所述验证的成功来运行所述第一固件,或者在加载所述第二固件时验证所述第二固件的数字签名,并响应于所述验证的成功来运行所述第二固件。
根据本发明构思的另一方面,一种更新固件的方法,所述方法可以包括:接收用于所述电子设备的固件的固件更新;识别指示在更新所述固件之前需要用户同意的用户许可指示符;基于所述用户许可指示符获得对更新所述固件的同意;以及基于所述同意利用所述固件更新来更新所述固件。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,在附图中:
图1是根据本发明构思的示例实施例的电子设备的框图;
图2是根据本发明构思的示例实施例的存储在主非易失性存储器(NVM)中的数据的格式;
图3是根据本发明构思的示例实施例的加载在主易失性存储器上的数据的格式;
图4是根据本发明构思的示例实施例的存储在安全NVM中的数据的格式;
图5是根据本发明构思的示例实施例的当用户许可被去激活时电子设备的操作序列的流程图;
图6是根据本发明构思的示例实施例的用于激活用户许可的电子设备的操作序列的流程图;
图7是根据本发明构思的示例实施例的当用户许可被激活时通过使用主固件执行启动的电子设备的操作序列的流程图;以及
图8是根据本发明构思的示例实施例的当用户许可被激活时通过使用候选固件执行固件更新的电子设备的操作序列的流程图。
具体实施方式
本公开涉及电子设备,并且更具体地,涉及使用户能够确定是否执行固件更新的电子设备。例如,本公开的实施例基于用户许可确定是否执行更新。
因此,本公开的实施例向用户提供基于用户同意来确定他们的移动设备是否执行更新的能力。当基于同意的更新被激活时,可以将在相应时间点运行的固件的版本信息存储在安全存储器中。当执行系统启动时,系统可以验证固件是否包含与用户已经同意的版本相同的固件。
在一些实施例中,当出现更新固件时,根据现有固件执行系统启动。然后执行用户认证以确定该用户是否为授权用户。在执行用户认证时可能正在运行的更新固件的版本信息存储在安全存储器中。在执行重新启动时,加载更新固件,并确定所加载的固件的版本信息是否与预先存储的版本信息匹配。然后,使用新固件执行启动。在使用新固件的启动完成后,可以用新固件替换现有固件。
如本文所使用的,术语主固件可以指示被配置为在电子设备开始启动时运行的固件。主固件可以被诸如嵌入式固件、当前固件或默认固件的各种术语代替。
候选固件可以指示由电子设备的制造商分发的固件。候选固件可以被安装在电子设备中以替换先前安装的主固件。通常,候选固件可以以无线或有线的方式分发到电子设备。在一些情况下,以无线方式的分发可以被称为固件空中升级(firmware over the air,FOTA)。候选固件可以被诸如更新固件、新固件或替换固件的各种术语代替。
根据实施例,电子设备包括非易失性存储器(NVM)、主处理器、安全NVM和安全处理器。NVM存储第一固件和用户许可指示符。主处理器加载第一固件以启动安全处理器。安全NVM包含第一版本信息。安全处理器基于用户许可指示符将第一固件的版本信息与第一版本信息进行比较,并且响应于比较结果为匹配而运行第一固件,其中,安全处理器与主处理器被实现在同一芯片上。
在下文中,将参照附图详细描述本发明构思的各种实施例。
图1是根据本发明构思的示例实施例的电子设备10的框图。
参照图1,电子设备10可以包括片上系统(system on chip,SoC)100、主NVM 200、主易失性存储器300和安全NVM 400。
根据本发明构思的各种实施例,SoC 100可以包括主处理器110、外围设备120、主只读存储器(ROM)130、动态随机存取存储器(DRAM)控制器140、闪存控制器150和安全处理器160。
主处理器110可以处理SoC 100的一般任务。例如,主处理器110可以通过响应于电子设备10的加电而将启动加载程序(booting loader)(图3的301)加载在主易失性存储器300上来执行启动,并控制主机应用(图3的303)的操作。主ROM 130可以存储用于执行主机应用303或操作SoC 100的各种类型的控制信息。DRAM控制器140可以管理主易失性存储器300。例如,DRAM控制器140可以从主NVM 200接收固件映像(image)数据,并将固件映像数据加载在主易失性存储器300上。外围设备120可以包括用于电子设备10的输入和输出的设备。例如,外围设备120可以包括用于控制显示器以显示请求用户输入用户认证信息的弹出窗口的显示控制器。闪存控制器150可以将数据写在主NVM 200上或从主NVM 200读取数据。
安全处理器160可以包括安全中央处理单元(CPU)161、安全ROM 162、安全RAM163、加密引擎164、邮箱模块165、安全闪存控制器166和安全直接存储器存取(DMA)控制器167。安全CPU 161可以通过使用安全RAM 163和安全ROM 162来执行安全处理器160的一般操作。例如,安全CPU 161可以被配置为验证候选固件的数字签名或检查候选固件的版本信息。安全闪存控制器166可以执行与安全NVM 400的数据读取或写入。例如,当用户许可被激活时,安全闪存控制器166可以将用户输入的用户认证信息写入安全NVM 400。用户认证信息可以包括用户的用户标识(ID)、密码(PW)和生物特征数据(例如,指纹信息、虹膜信息、面部识别信息、语音信息或静脉信息)。邮箱模块165可以通过使用邮箱协议来执行安全处理器160与外部组件之间的数据通信。根据本发明构思的实施例,邮箱模块165可以包括多个寄存器,并且通过从外部组件接收命令和数据并对命令和数据进行分类来执行通信。
加密引擎164可以通过使用密钥对输入数据进行加密。根据本发明构思的实施例,加密引擎164可以通过使用安全密钥对用户认证信息进行加密,并将加密后的用户认证信息存储在安全NVM 400中。根据本发明构思的另一实施例,加密引擎164可以提供散列消息认证码(HMAC)、Rivest、Shamir、Adleman(RSA)和椭圆曲线数字签名算法(ECDSA)中的至少一种算法,以计算固件版本信息的散列值或验证数字签名。安全DMA控制器167可以电连接到安全处理器160外部的主易失性存储器300。安全DMA控制器167可以访问主易失性存储器300以将数据读入安全处理器160中。例如,安全DMA控制器167可以将加载在主易失性存储器300上的固件的数据读入安全处理器160。
根据本发明构思的各种实施例,安全NVM 400可以指示直接连接到SoC 100内部的安全处理器160的NVM。因为安全NVM 400与SoC 100内部的安全处理器160执行通信,所以安全NVM 400可以存储将由安全处理器160处理的并使用其安全性的数据。例如,安全处理器160可以将用户认证数据、主映像版本信息、候选映像版本信息等存储在安全NVM 400中。
用户认证数据、主映像版本信息和候选映像版本信息可以对应于安全处理器160将要用来确定电子设备10的用户是否已经同意更新(或修改)成新固件的数据。下面将参照图4对此进行详细描述。
主NVM 200可以指示主处理器110和安全处理器160可访问的NVM。例如,主处理器110可以访问主NVM 200以运行启动加载程序301。作为另一示例,安全处理器160可以通过访问主易失性存储器300来加载与固件更新有关的数据,或者可以通过直接访问主NVM 200来加载与固件更新有关的数据。
根据本发明构思的实施例,主NVM 200和安全NVM 400可以包括即使关闭电源存储在其中的数据也不会消失的NVM。例如,主NVM 200和安全NVM 400可以包括NAND闪存、垂直NAND闪存、NOR闪存、电阻RAM、相变存储器、磁阻RAM等。
主处理器110和安全处理器160可以访问主易失性存储器300。例如,主易失性存储器300上可以加载有主固件并执行启动。根据本发明构思的实施例,主易失性存储器300可以包括当关闭电源时存储在其中的数据消失的存储器。例如,主易失性存储器300可以包括静态RAM(SRAM)、动态RAM(DRAM)或磁阻RAM。在下文中,将基于由DRAM 300实现的主易失性存储器300进行描述。
图2是根据本发明构思的示例实施例的存储在主NVM 200中的数据的格式。图3是根据本发明构思的示例实施例的加载在DRAM 300上的数据的格式。参照图2和图3,主NVM200可以包括更新数据区域201、主映像区域205和候选映像区域206。
更新数据区域201可以包括指示当启动加载程序301被激活并且电子设备10开始启动时哪个固件被加载以执行启动的信息。例如,更新数据区域201可以包括用户许可指示符202、主映像位置数据203和更新指示符204。
根据本发明构思的实施例,用户许可指示符202可以包括指示当响应于电子设备10的加电执行启动时用户许可是否被激活的信息。
在本文中,用户许可可以指示通过经用户同意而安装或分发的固件来执行启动。例如,当用户许可被激活时,即使加载在DRAM 300上的用于启动电子设备10的任意固件是由电子设备10的制造商合法分发的,但是当所加载的固件的版本与经用户同意而安装的固件的版本不同时,电子设备10的启动也可能会失败。
例如,当用户许可指示符202的值是“1”或逻辑高时,电子设备10可以在执行启动时比较加载在DRAM 300上的固件的版本是否与经用户同意而安装的固件的版本相同。作为另一示例,当用户许可指示符202的值是“0”或逻辑低时,电子设备10可以不检查加载在DRAM 300上的固件的版本。例如,当用户许可被去激活时,电子设备可以在更新固件被激活时根据更新固件来执行启动。下面将参照图5至图8描述用户许可指示符202的详细内容。
主映像位置数据203可以包括与主固件的存储位置有关的信息。主映像位置数据203可以由指针来实现,或者可以包括存储主固件的映像和数字签名的起始地址以及主固件的大小信息。当电子设备10执行启动时,电子设备10可以参考主映像位置数据203将主固件加载到DRAM 300上。
根据本发明构思的实施例,当执行固件更新时,主映像位置数据203可以具有改变的值。例如,因为候选固件可以不覆盖在主NVM 200的存储区域当中的存储主固件的区域A中,所以候选固件可以被存储在主NVM 200的存储区域当中的区域B中。因此,在固件更新完成之后,主映像位置数据203可以具有改变成指示区域B的值。
更新指示符204可以包括指示电子设备10是否执行固件更新的信息。固件更新可以指示将先前存储的主固件改变成新分发的更新固件的一系列处理。
例如,当更新指示符204的值为“1”或逻辑高时,更新指示符204可以指示与主固件的版本不同的固件被存储在候选映像区域206中。在本文中,不同的固件版本可以包括最新版本和先前版本。作为另一示例,当更新指示符204的值为“0”或逻辑低时,更新指示符204可以指示与主固件的版本不同的固件未存储在候选映像区域206中。例如,电子设备10可以通过参考更新指示符204的值来确定是否存在新存储的更新固件。
根据本发明构思的各种实施例,主映像区域205可以对应于其中存储有主固件的数据的区域,并且候选映像区域206可以对应于其中存储有候选固件的数据的区域。每个固件数据可以通过映像主体和数字签名来标识。数字签名可以指示用于保证相应固件由制造商分发且未被篡改的信息。参照图3,SoC 100可以将启动加载程序301加载到DRAM 300上。启动加载程序301可以指示被配置为执行电子设备10的启动的程序或指令。另外地或可替代地,启动加载程序301可以指示如下程序或指令集:该程序或指令集被配置为通过在启动操作系统(OS)302之前被预先执行来完成用于正确启动内核的一些或所有任务,并启动OS302。
尽管图3将启动加载程序301示出为单个启动加载程序,但是启动加载程序301不限于此。根据本发明构思的各种实施例,启动加载程序301可以具有分层结构。例如,启动加载程序301可以包括阶段1和阶段2,并且还可以包括阶段1.5。当启动加载程序301具有分层结构时,其中的阶段可以被顺序地执行。
SoC 100可以将主机应用303加载到DRAM 300上。主机应用303可以对应于将由主处理器110执行的程序或指令。主机应用303可以独立于OS 302而运行。例如,即使在启动OS302之前,主机应用303也可以正常运行。
图4是根据本发明构思的示例实施例的存储在安全NVM 400中的数据的格式。
参照图4,安全NVM 400可以包括用户认证数据401、主映像版本信息405和候选映像版本信息406。
用户认证数据401可以包括与用户认证有关的信息。例如,用户认证数据401可以包括用户认证信息402、用户许可指示符202和认证状态信息404。
包括在用户认证数据401中的用户许可指示符202的描述参照图2进行,此处省略。
用户认证信息402可以在用户认证最初被激活时生成,并被存储在安全NVM 400中。例如,用户认证信息402可以是在电子设备10的用户最初激活用户认证时输入的信息。之后,当执行固件更新时,电子设备10可以认证用户是否是授权用户。用户认证信息402可以包括随机字符、数字、符号等的组合。另外地或可替代地,用户认证信息402还可以包括用户的生物特征数据(例如,指纹信息、虹膜信息、面部识别信息、语音信息或静脉信息)。
认证状态信息404可以包括指示用户认证结果的信息。当在激活用户许可之后安装新固件时,电子设备10可以控制外围设备120当中的显示控制器以在显示器上显示用于请求输入用户认证信息的弹出窗口。例如,可以使用存储在安全NVM 400中的用户认证信息402来验证通过弹出窗口输入的用户认证信息。当验证成功时,该用户是授权用户。因此,认证状态信息404可以具有值“1”或逻辑高。作为另一示例,当验证失败时,该用户不是授权用户。因此,用户认证失败,并且认证状态信息404可以具有值“0”或逻辑低。
主映像版本信息405可以包括主固件的版本信息。版本信息不限于由制造商官方命名的固件版本指示的信息,并且可以包括各种类型的可以证明主固件的信息。
例如,主映像版本信息405可以包括主固件的散列值。由于散列值可以因主固件和随机固件之间的非常微小的数据差异而变化,因此散列值可以证明主固件。作为另一示例,主映像版本信息405可以包括主固件的数字签名值。数字签名可以基于HMAC、RSA和ECDSA当中的至少一种算法生成。然而,主映像版本信息405不限于散列值或数字签名值,并且可以包括一些或全部的可以证明固件的值。
候选映像版本信息406可以包括候选固件的版本信息。类似于主映像版本信息405,候选映像版本信息406可以包括候选固件的散列值和/或数字签名值。
根据本发明构思的各种实施例,主固件和/或候选固件的版本信息的大小可以是可变的。版本信息的大小可以基于安全处理器160的安全级别来确定。例如,当安全处理器160的安全级别高于阈值级别时,主映像版本信息405和/或候选映像版本信息406可以包括通过使用具有长摘要的散列函数(例如,SHA-512)获得的散列值。摘要可以指示散列函数的输出,并且可以对应于输出位的长度。作为另一示例,当安全处理器160的安全级别低于阈值级别时,主映像版本信息405和/或候选映像版本信息406可以包括通过使用具有短摘要的散列函数(例如,SHA-256)获得的散列值。
图5是根据本发明构思的示例实施例的当用户许可被去激活时电子设备10的操作序列的流程图。
参照图5,在操作S110中,电子设备10可以激活启动加载程序301。响应于电子设备10的加电,启动加载程序301可以被加载在DRAM 300上以执行启动序列,并且主机应用303可以被驱动。
在操作S120中,电子设备10可以确定更新指示符值是否具有特定的逻辑值(例如,“1”或逻辑高值)。例如,更新指示符204可以指示是否新存储了候选固件。电子设备10的主机应用303可以通过加载存储在主NVM 200中的更新数据区域201来识别更新指示符值。
在操作S130中,电子设备10可以将主固件加载到DRAM 300上。当在操作S120中更新指示符值为“0”或逻辑低时,不存在除主固件之外的用于固件更新的候选固件。因此,主固件被加载以启动先前安装的主固件。
根据本发明构思的各种实施例,当执行操作S130时,数据如下。
表1
在操作S140中,电子设备10可以验证主固件的数字签名。数字签名可以用于验证固件是否由授权发行者(例如,电子设备10的制造商)分发且未被篡改。在操作S130中启动的安全处理器160可以基于包括在主固件中的数字签名执行签名验证。
在操作S150中,电子设备10可以运行主固件。在验证数字签名之后,安全处理器160可以运行主固件。当用户许可被激活时,本应该检查要运行的固件的版本信息,但用户许可未被激活。因此,可以跳过或绕过检查固件的版本信息的过程。
在操作S160中,电子设备10可以将候选固件加载在DRAM 300上。当在操作S120中更新指示符值为“1”或逻辑高时,主机应用303可以识别出存在用于固件更新以更换主固件的候选固件。因此,主机应用303可以加载候选固件以启动候选固件而不是主固件。
根据本发明构思的各种实施例,当执行操作S160时,数据如下。
表2
在操作S170中,电子设备10可以验证候选固件的数字签名。数字签名的验证的描述与操作S140的描述相同,在此省略。
在操作S180中,电子设备10可以运行候选固件。在验证数字签名之后,安全处理器160可以运行候选固件。当用户许可被激活时,将检查要运行的候选固件的版本信息。然而,如果用户许可未被激活,则可以跳过检查固件的版本信息的过程。
在操作S190中,电子设备10可以更改更新数据区域201中的信息。例如,当在主固件存储在主NVM 200的区域A中的状态下分发(或接收)候选固件时,候选固件可以存储在主NVM 200的区域B中。由于在操作S180中使用候选固件的启动已成功,因此电子设备10的主机应用303可以将主映像位置数据203从区域A更改成区域B,以便在之后执行启动时启动候选固件。例如,当完成使用候选固件的启动时,可以改变信息以将候选固件识别为主固件。另外地或可替代地,主机应用303可以删除存储在区域A中的现有主固件,并将更新指示符204的值更改为“0”或逻辑低,因为新的候选固件尚未存储在区域A中。当更新指示符204的值未改变时,因为在执行启动时考虑执行新的固件更新,而可能发生错误的操作。
在某些情况下,存储在区域A中的主固件被删除,并且主机应用303响应于主固件的删除而将更新指示符204的值更改为“0”或逻辑低。然而,本实施例不限于此。当主机应用303将更新指示符204的值更改为“0”或逻辑低并且将主映像位置数据203从区域A更改为区域B时,主机应用303可以绕过对存储在区域A中的主固件的删除。因为更新指示符值和主映像位置数据203已更改,因此主机应用303不通过使用存储在区域A中的现有主固件来执行启动。当接收到新固件时,主机应用303可以覆盖存储在区域A中的现有主固件。
根据本发明构思的各种实施例,当执行操作S190时,数据如下。
表3
图6是根据本发明构思的示例实施例的用于激活用户许可的电子设备10的操作序列的流程图。
参照图6,在操作S210中,电子设备10可以执行首次启动(primary booting)。在本文中,首次启动可以指示在用户许可被激活之前的启动。例如,首次启动可以指示用户初始地启动从制造商处运送的电子设备10。因此,首次启动的完成可以指示执行了图5的操作。例如,在操作S210中,用户许可被去激活,并且主固件可以是在制造电子设备10时的固件(工厂初始化固件),或者可以是在制造电子设备10之后由制造商另外分发的固件之一。
根据本发明构思的各种实施例,当执行操作S210时,数据如下。
表4
在操作S220中,电子设备10可以接收用于激活用户许可的用户输入。例如,在执行固件更新时,电子设备10可以在外围设备120当中的显示器上显示包括诸如“您是否要暂停自动固件更新?”或“您是否要在用户同意的情况下执行固件更新?”的视觉通知的弹出窗口。可替代地,用户可以通过进入通过其激活用户许可的菜单来直接输入用户许可的激活。
在操作S230中,电子设备10可以接收用户认证信息并将该用户认证信息存储在安全NVM 400中。用户认证信息可以是关于以上参照图4描述的用户ID和用户密码的信息。
在某些情况下,电子设备10的主机应用303可以显示用于请求输入用户认证信息以激活用户许可的弹出窗口。例如,弹出窗口可以显示用于输入用户ID和PW的区域,或者显示用于获得生物特征信息的指南信息。主机应用303可以将输入的用户认证信息发送到安全处理器160。通过将用户认证信息发送到安全处理器160并且将其存储在安全NVM 400中,可以不基于存储在电子设备10的外部的不可靠的用户认证信息,而是基于存储在与安全处理器160连接的安全NVM 400中的用户认证信息,来执行要由安全处理器160执行的固件更新。因此,可以增加由安全处理器160执行的固件更新的安全性和可靠性。
在操作S240中,电子设备10可以更改用户许可指示符202的值。例如,由于在用户激活用户许可之前用户许可指示符202的值是“0”或逻辑低,所以该用户许可指示符202的值可以被更改为“1”或逻辑高。通过更改用户许可指示符202的值,在之后执行固件更新时,电子设备10的主机应用303可以执行用户许可操作。
在操作S250中,电子设备10可以生成主固件的版本信息,并将该版本信息存储在安全NVM 400中。在用户许可被激活之前,可以检查也可以不检查被用户许可的版本的固件是否被启动。因此,可以不生成或不存储主固件的版本信息。然而,当用户许可被激活时,可以检查固件是否与被用户许可的固件相对应地被启动。因此,可以生成并存储主固件(即,当用户许可被激活时加载的固件)的版本信息。主固件的版本信息可以对应于图4的主映像版本信息405。
特别地,安全处理器160可以生成主映像版本信息405并将主映像版本信息405存储在安全NVM 400中。因此,用于确定固件是否是被用户许可的版本的信息可以用作不是存储在电子设备10的外部而是存储在可以与安全处理器160连接的安全NVM 400中的主映像版本信息405。因此,可以提高由安全处理器160执行的启动过程的安全性和可靠性。
根据本发明构思的各种实施例,当在图6中用户许可被激活时,数据如下。
表5
图7是根据本发明构思的示例实施例的当用户许可被激活时通过使用主固件执行启动的电子设备10的操作序列的流程图。
参照图7,在操作S310中,电子设备10可以执行二次启动。在本文中,二次启动可以指示在图6中用户许可被激活之后的启动。
根据本发明构思的各种实施例,当执行操作S310的二次启动时,数据如下。
表6
在操作S320中,电子设备10可以识别出更新指示符值为逻辑低。电子设备10的主机应用303可以加载存储在主NVM 200中的更新数据区域201,识别出更新指示符204的值为“0”或逻辑低,并且确定不存在用于执行固件更新的候选固件。主机应用303可以基于存储在主NVM 200中的用户许可指示符202识别出用户许可被激活,但是可以不执行固件更新。因此,主机应用303可以通过将主固件加载到DRAM 300上来执行启动。
在操作S330中,电子设备10可以通过使用主固件来启动安全处理器160。操作S330的描述与图5的操作S130的描述相同,在此省略。
在操作S340中,电子设备10可以验证主固件的数字签名。操作S340的描述与图5的操作S140的描述相同,在此省略。
在操作S350中,电子设备10可以识别出用户许可指示符202的值是逻辑高。电子设备10的安全处理器160可以基于存储在安全NVM 400中的用户许可指示符202的值来确定用户许可被激活。当用户许可被激活时,安全处理器160可以确定主固件的数字签名是否已验证,以及加载在安全RAM 163上的固件是否与被用户许可的版本的固件相匹配。
在操作S360中,电子设备10可以比较存储在安全NVM 400中的主映像版本信息405是否与所加载的固件的版本信息相同。例如,安全处理器160可以生成加载在安全RAM 163上的固件的测试版本信息,以确定所加载的固件是否与被用户许可的版本的固件相同。可以通过基于与用于生成主映像版本信息405的函数相同的函数,对加载在安全RAM 163上的固件执行计算来生成测试版本信息。例如,当基于散列函数当中的SHA-512生成主映像版本信息405时,安全处理器160可以通过使用散列函数SHA-512对加载在安全RAM 163上的固件执行计算。
当两条版本信息彼此不同时,当前加载在安全RAM 163上的固件不是被用户许可的版本的固件。因此,启动会失败,操作序列会结束。
在操作S370中,电子设备10可以运行主固件。当在操作S360中两条版本信息匹配时,当前加载在安全RAM 163上的主固件是被用户许可的版本的固件。因此,安全处理器160可以通过运行主固件来完成启动。
图8是根据本发明构思的示例实施例的当用户许可被激活时通过使用候选固件来执行固件更新的电子设备10的操作序列的流程图。
参照图8,在操作S410中,电子设备10可以激活用户许可。激活用户许可的过程可以指示完成了图6的操作S210至S250。
在操作S420中,电子设备10可以识别出更新指示符值为逻辑高。例如,电子设备10可以接收从制造商分发的候选固件,并将接收到的候选固件存储在主NVM 200中。当接收到候选固件时,电子设备10的主机应用303将更新指示符204更改为“1”或逻辑高。因此,主机应用303可以在启动过程中基于更新指示符204的值识别出本应执行固件更新。
根据本发明构思的各种实施例,当执行操作S420时,数据如下。
表7
在操作S430中,电子设备10可以通过使用主固件来启动安全处理器160。当更新指示符204的值被识别为逻辑高时,使用主固件执行启动以获取用户对固件更新的同意。例如,当识别出更新指示符204的值时,认证状态信息404可以是“0”或失败(FAIL)。因此,主机应用303可以通过使用现有的主固件来启动安全处理器160。
在操作S440中,电子设备10可以通过使用主固件成功地执行启动。在本文中,操作S440的成功启动可以与执行图7的操作S340至S370相同。例如,因为用户许可被激活,所以本领域普通技术人员将理解,可以通过验证主固件的数字签名并检查主固件是否与被用户许可的版本的固件相同的过程,来运行主固件。
在操作S450中,电子设备10可以执行用户认证。电子设备10可以在外围设备120当中的显示器上显示用于请求用户输入用户ID和用户密码的弹出窗口。可替代地,电子设备10可以显示用于引导输入生物特征数据的弹出窗口。
主机应用303可以将输入的用户认证信息发送到安全处理器160。安全处理器160可以通过使用预先存储在安全NVM 400中的用户认证数据401来验证从主机应用303接收到的用户认证信息是否是授权用户的认证信息。当从主机应用303接收到的用户认证信息验证通过时,该用户是授权用户。因此,用户认证会成功。根据本发明构思的各种实施例,当验证失败时,可以不改变认证状态信息404。
在操作S460中,电子设备10可以更改认证状态信息404的值,并生成和存储候选固件的版本信息。当用户认证成功时,安全处理器160可以将认证状态信息404更改为“1”或通过(PASS)以反映用户认证成功。
接下来,安全处理器160可以生成候选固件的版本信息。候选固件的版本信息可以对应于图4的候选映像版本信息406。安全处理器160可以生成候选映像版本信息406,并将其存储在安全NVM 400中,以指示用户同意在执行重新启动时用候选固件进行固件更新。
根据本发明构思的各种实施例,当执行操作S460时,数据如下。
表8
在操作S470中,电子设备10可以重新启动安全处理器160。因为使用现有的主固件执行启动以获得用户许可,所以可以重新启动安全处理器160以使用候选固件执行固件更新。
在操作S480中,电子设备10可以识别出更改后的认证状态信息404。安全处理器160可以在执行重新启动时识别用户许可指示符202和认证状态信息404。因为用户许可被激活,所以用户许可指示符202为“1”或逻辑高,因此安全处理器160可以参考认证状态信息404来确定是否完成了用户认证。因为在操作S460中已经根据用户认证成功更改了认证状态信息404,所以安全处理器160可以识别被用户许可的版本的候选固件。因此,在操作S490中,安全处理器160可以将候选固件加载到安全RAM 163上。本领域普通技术人员将理解,省略了在将候选固件加载到安全RAM 163上之后验证数字签名。
在操作S500中,电子设备10可以确定存储在安全NVM 400中的候选映像版本信息406是否与加载在DRAM 300上的版本信息相同。比较这两条版本信息的详细描述与操作S360的描述相同,在此省略。在操作S500中要比较的版本信息可以是候选固件的版本信息。例如,安全处理器160可以确定当前加载在安全RAM 163上的固件是否与在操作S450中用户认证期间被许可用来更新的候选固件相同。
在操作S510中,电子设备10可以更改主映像版本信息405、候选映像版本信息406、更新指示符204、主映像位置数据203和认证状态信息404。
当操作S500中的比较结果相同时,安全处理器160可以确定加载在DRAM 300上的固件与被用户许可的候选固件相同,并基于候选固件完成启动。因为完成了固件更新,所以电子设备10可以更改主映像版本信息405、更新指示符204、主映像位置数据203和认证状态信息404,以防止在执行启动时存在固件更新的错误操作。
根据本发明构思的各种实施例,因为在完成固件更新之后现有的候选固件成为新的主固件,所以安全处理器160可以更改映像版本信息。因为完成了固件更新,所以安全处理器160可以用现有的候选映像版本信息406替换主映像版本信息405,并删除现有的候选映像版本信息406。通过用现有的候选映像版本信息406覆盖主映像版本信息405,此后执行启动时,可以将新的主固件认证为被用户许可的最新版本的固件。
另外地或可替代地,安全处理器160可以将认证状态信息404再次更改为“0”或失败(FAIL)。当认证状态信息404未被更改时,可能会执行用户不想要的固件更新,因为即使在发生固件更新时用户不许可更新新的候选固件,认证状态信息404仍为通过(PASS)。
主处理器110可以更改更新指示符204的值。由于完成了固件更新,所以主处理器110可以将更新指示符204的值再次更改为“0”或逻辑低。当更新指示符204的值未被更改时,即使完成了固件更新,也可能发生在执行启动时存在新的固件更新的错误操作。
主处理器110可以更改主映像位置数据203。因为存储现有的候选固件的区域是主NVM 200的区域B,所以主映像位置数据203可以更改为指示区域B。当主映像位置数据203未被更改时,可能会尝试使用其中存储有固件更新之前的主固件的区域A来启动。结果,启动可能会失败,因为区域A中的固件版本信息与更改后的主映像版本信息405不同。
根据本发明构思的各种实施例,当执行操作S510时,数据如下。
表9
在操作S520中,电子设备10可以删除候选固件。当在操作S500中版本信息不匹配时,候选固件不是被用户许可的固件。因此,可以删除候选固件,并可以执行使用现有主固件的启动。
因此,根据本发明构思的另一方面,提供一种更新固件的方法,该方法可以包括:接收用于电子设备的固件的固件更新;在更新固件之前,识别指示需要用户同意的用户许可指示符;基于用户许可指示符获得对更新固件的同意;以及基于同意使用固件更新来更新固件。
在某些情况下,该方法还包括:执行用户认证;接收用于激活用户许可模式的用户输入;以及基于用户认证和用户输入设置用户许可指示符。在某些情况下,该方法还包括:基于固件更新来存储固件的候选版本;以及基于接收到固件更新来设置更新指示符,其中,基于更新指示符获得同意。
在某些情况下,该方法还包括执行用户认证,其中,基于用户认证获得同意;基于用户认证更新认证状态信息,其中,基于认证状态信息更新固件。在某些情况下,更新固件还包括:加载与固件更新相关联的候选固件;验证候选固件的版本信息;并基于验证将候选固件保存到主映像位置。
尽管已经参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以对本文进行形式和细节上的各种改变。
Claims (20)
1.一种电子设备,包括:
非易失性存储器,所述非易失性存储器存储第一固件和用户许可指示符;
主处理器,所述主处理器被配置为加载所述第一固件以启动安全处理器;以及
安全非易失性存储器,所述安全非易失性存储器包含第一版本信息;
其中,所述安全处理器被配置为基于所述用户许可指示符将所述第一固件的版本信息与所述第一版本信息进行比较,并且响应于所述比较的结果为匹配来运行所述第一固件;并且
其中,所述安全处理器与所述主处理器被实现在同一芯片上。
2.根据权利要求1所述的电子设备,其中,所述安全处理器还被配置为:
响应于所述用户许可指示符的激活,将接收到的用户标识和密码存储在所述安全非易失性存储器中;
生成在所述用户许可指示符被激活时运行的所述第一固件的散列值;以及
将所生成的散列值存储为所述第一版本信息。
3.根据权利要求2所述的电子设备,其中,所述非易失性存储器还被配置为存储与所述第一固件不同的第二固件以及指示存储了所述第二固件的更新指示符。
4.根据权利要求3所述的电子设备,其中,所述主处理器还被配置为:
识别出所述更新指示符的激活;
通过使用所述第一固件来启动所述安全处理器;
响应于所述更新指示符的激活,请求用户执行用户认证;以及
将响应于所述请求而接收到的用户输入作为用户认证信息发送给所述安全处理器。
5.根据权利要求4所述的电子设备,其中,所述安全处理器还被配置为:
通过将接收到的所述用户认证信息与预先存储在所述安全非易失性存储器中的用户认证数据进行比较来执行用户认证;以及
当所述比较的结果为匹配时,生成所述第二固件的标识,将所生成的标识存储为第二版本信息,并激活指示所述用户认证的结果的认证状态信息。
6.根据权利要求5所述的电子设备,其中,所述安全处理器还被配置为:
响应于所述认证状态信息的所述激活,加载所述第二固件;
生成被加载的所述第二固件的标识,将所生成的标识与所述第二版本信息进行比较;以及
当所述比较的结果为匹配时,运行所述第二固件。
7.根据权利要求6所述的电子设备,其中,所述安全处理器还被配置为:
响应于所述第二固件的所述运行来去激活所述更新指示符;
将所述第二固件的所述标识存储为所述第一版本信息;
删除所述第二版本信息;以及
去激活所述认证状态信息。
8.根据权利要求6所述的电子设备,其中,所述主处理器还被配置为:
识别出所述比较的结果为不匹配;以及
去激活所述更新指示符。
9.根据权利要求1所述的电子设备,其中,所述非易失性存储器还被配置为存储与所述第一固件不同的第二固件以及指示存储了所述第二固件的更新指示符;并且
所述主处理器还被配置为:
识别出所述用户许可指示符的去激活;
响应于所述识别,绕过所述第一固件的版本信息与所述第一版本信息之间的比较;以及
根据所述第二固件启动所述安全处理器。
10.一种电子设备的操作方法,所述操作方法包括:
根据第一固件启动安全处理器;
基于用户许可指示符将所述第一固件的版本信息与第一版本信息进行比较;以及
当所述比较的结果为匹配时,运行所述第一固件。
11.根据权利要求10所述的操作方法,所述操作方法还包括:
响应于所述用户许可指示符的激活,存储接收到的用户标识和密码作为用户认证信息;
存储与所述第一固件不同的第二固件;以及
激活指示存储了所述第二固件的更新指示符,
其中,所述第一版本信息对应于在所述用户许可指示符被激活时运行的所述第一固件的标识。
12.根据权利要求11所述的操作方法,所述操作方法还包括:
识别出所述更新指示符的所述激活;
响应于识别出所述更新指示符的所述激活,根据所述第一固件启动所述安全处理器;
显示请求用以进行用户认证的用户输入的信息;
将通过响应于所述请求而接收到的用户输入与所述用户认证信息进行比较来执行所述用户认证;
当所述比较的结果为匹配时,生成所述第二固件的标识,并将所生成的标识存储为第二版本信息;以及
激活指示所述用户认证的结果的认证状态信息。
13.根据权利要求12所述的操作方法,所述操作方法还包括:
识别出所述认证状态信息的所述激活;
响应于所述识别加载所述第二固件;
生成被加载的所述第二固件的标识,并将所生成的标识与所述第二版本信息进行比较,以及
当所述比较的结果为匹配时,运行所述第二固件。
14.根据权利要求13所述的操作方法,所述操作方法还包括:
去激活所述更新指示符;
将所述第二固件的所述标识存储为所述第一版本信息,并删除所述第二版本信息;以及
去激活所述认证状态信息。
15.根据权利要求13所述的操作方法,所述操作方法还包括:当所述比较的结果为不匹配时,去激活所述更新指示符。
16.根据权利要求10所述的操作方法,所述操作方法还包括:
存储与所述第一固件不同的第二固件;
激活指示存储了所述第二固件的更新指示符;
识别出所述用户许可指示符的去激活;以及
响应于所述识别,绕过所述第一固件的版本信息与所述第一版本信息之间的比较,并根据所述第二固件启动所述安全处理器。
17.一种电子设备,包括:
非易失性存储器,所述非易失性存储器存储第一固件、第二固件以及指示存储了所述第二固件的更新指示符;
主处理器,所述主处理器被配置为:当所述更新指示符被去激活时加载所述第一固件,并在所述更新指示符被激活时加载所述第二固件;以及
安全处理器,所述安全处理器被配置为:在加载所述第一固件时验证所述第一固件的数字签名,并响应于对所述第一固件的所述数字签名的验证成功来运行所述第一固件,或者在加载所述第二固件时验证所述第二固件的数字签名,并响应于对所述第二固件的所述数字签名的验证成功来运行所述第二固件,
其中,所述安全处理器与所述主处理器被实现在同一芯片上。
18.根据权利要求17所述的电子设备,其中,所述主处理器还被配置为:
接收用于激活用户许可的用户输入;
响应于所述接收来激活用户许可指示符;
将所述用户许可指示符存储在所述非易失性存储器中;
将接收到的所述用户输入作为用户认证信息发送给所述安全处理器,以便将所述用户认证信息存储在安全非易失性存储器中;
计算在接收到所述用户输入时运行的固件的标识;
将所计算的标识生成为第一版本信息;和
将所述第一版本信息发送给所述安全非易失性存储器。
19.根据权利要求18所述的电子设备,其中,所述主处理器还被配置为响应于所述更新指示符的去激活而加载所述第一固件;并且
所述安全处理器还被配置为:
基于所述用户许可指示符的激活,获得所加载的所述第一固件的标识;
将所获得的标识与所述第一版本信息进行比较;以及
响应于所述比较的结果为匹配,运行所述第一固件。
20.根据权利要求18所述的电子设备,其中,所述主处理器还被配置为响应于所述更新指示符的激活而加载所述第一固件,并且
所述安全处理器还被配置为:
接收用于执行用户认证的用户输入;
基于用户认证信息验证接收到的所述用户输入;
当所述验证成功时,获得所述第二固件的标识;
将所获得的标识作为第二版本信息存储在所述安全非易失性存储器中;
加载所述第二固件;
获得所加载的所述第二固件的标识;
将所获得的标识与所述第二版本信息进行比较;以及
当所述比较的结果为匹配时,运行所述第二固件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200004950A KR20210091585A (ko) | 2020-01-14 | 2020-01-14 | 사용자 인증에 기반한 펌웨어 업데이트를 수행하는 전자 장치 및 이의 동작방법 |
KR10-2020-0004950 | 2020-01-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127011A true CN113127011A (zh) | 2021-07-16 |
Family
ID=72292407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011482311.8A Pending CN113127011A (zh) | 2020-01-14 | 2020-12-15 | 电子设备及电子设备的操作方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11409879B2 (zh) |
EP (1) | EP3851989B1 (zh) |
KR (1) | KR20210091585A (zh) |
CN (1) | CN113127011A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210091585A (ko) | 2020-01-14 | 2021-07-22 | 삼성전자주식회사 | 사용자 인증에 기반한 펌웨어 업데이트를 수행하는 전자 장치 및 이의 동작방법 |
US11403403B2 (en) * | 2020-04-13 | 2022-08-02 | KameleonSec Ltd. | Secure processing engine for securing a computing system |
US11847227B2 (en) * | 2020-11-30 | 2023-12-19 | Red Hat, Inc. | Firmware version corruption attack prevention |
US11989305B2 (en) * | 2022-07-21 | 2024-05-21 | Dell Products L.P. | Automated update of a customized secure boot policy |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802592A (en) * | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
KR100818237B1 (ko) | 2001-07-28 | 2008-04-01 | 삼성전자주식회사 | 휴대용 기기의 펌웨어 업그레이드 시스템 및 방법 |
US7457945B2 (en) * | 2004-03-23 | 2008-11-25 | Dell Products L.P. | System and method for providing a secure firmware update to a device in a computer system |
US8429643B2 (en) | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
JP5385148B2 (ja) * | 2007-10-05 | 2014-01-08 | パナソニック株式会社 | セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路 |
US9009357B2 (en) * | 2008-04-24 | 2015-04-14 | Micron Technology, Inc. | Method and apparatus for field firmware updates in data storage systems |
WO2010014109A1 (en) * | 2008-08-01 | 2010-02-04 | Hewlett-Packard Development Company, L.P. | Verifying firmware |
US8332931B1 (en) | 2008-09-04 | 2012-12-11 | Marvell International Ltd. | Processing commands according to authorization |
US8972966B2 (en) * | 2012-01-05 | 2015-03-03 | Lenovo (Singapore) Pte. Ltd. | Updating firmware in a hybrid computing environment |
EP2704053B1 (en) | 2012-08-27 | 2016-09-21 | Giesecke & Devrient GmbH | Method and system for updating a firmware of a security module |
JP2015052996A (ja) * | 2013-09-09 | 2015-03-19 | キヤノン株式会社 | 画像形成装置、及び画像形成装置の制御方法 |
US9135472B2 (en) * | 2013-10-31 | 2015-09-15 | Square, Inc. | Systems and methods for secure processing with embedded cryptographic unit |
US20150169310A1 (en) * | 2013-12-12 | 2015-06-18 | Lenovo (Singapore) Pte, Ltd. | Maintaining firmware |
JP6305069B2 (ja) * | 2014-01-10 | 2018-04-04 | キヤノン株式会社 | 画像形成装置及びその制御方法、並びにプログラム |
CN104090790B (zh) | 2014-06-30 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种安全终端的双芯片方案的固件更新方法 |
JP6147240B2 (ja) * | 2014-12-05 | 2017-06-14 | キヤノン株式会社 | 情報処理装置、該装置の制御方法、並びにプログラム |
WO2016168475A1 (en) * | 2015-04-14 | 2016-10-20 | Capital One Services, Llc | Systems and methods for secure firmware validation |
US10664257B2 (en) | 2015-05-06 | 2020-05-26 | Apple Inc. | Secure element activities |
US9742568B2 (en) * | 2015-09-23 | 2017-08-22 | Dell Products, L.P. | Trusted support processor authentication of host BIOS/UEFI |
US10242197B2 (en) * | 2016-09-23 | 2019-03-26 | Intel Corporation | Methods and apparatus to use a security coprocessor for firmware protection |
US10853472B2 (en) | 2018-06-28 | 2020-12-01 | Intel Corporation | System, apparatus and method for independently recovering a credential |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US10691448B2 (en) * | 2018-08-18 | 2020-06-23 | Dell Products, L.P. | Method and apparatus to execute BIOS firmware before committing to flash memory |
TWI710952B (zh) * | 2018-08-28 | 2020-11-21 | 緯創資通股份有限公司 | 韌體更新方法及電腦系統 |
KR102176378B1 (ko) * | 2018-12-07 | 2020-11-10 | 현대오트론 주식회사 | 차량 제어기의 보안 강화 방법 및 장치 |
KR20210091585A (ko) | 2020-01-14 | 2021-07-22 | 삼성전자주식회사 | 사용자 인증에 기반한 펌웨어 업데이트를 수행하는 전자 장치 및 이의 동작방법 |
-
2020
- 2020-01-14 KR KR1020200004950A patent/KR20210091585A/ko not_active Application Discontinuation
- 2020-08-31 EP EP20193670.5A patent/EP3851989B1/en active Active
- 2020-09-23 US US17/029,442 patent/US11409879B2/en active Active
- 2020-12-15 CN CN202011482311.8A patent/CN113127011A/zh active Pending
-
2022
- 2022-08-08 US US17/818,138 patent/US11783041B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3851989B1 (en) | 2024-10-09 |
US11783041B2 (en) | 2023-10-10 |
KR20210091585A (ko) | 2021-07-22 |
US20210216638A1 (en) | 2021-07-15 |
US20220382871A1 (en) | 2022-12-01 |
EP3851989A1 (en) | 2021-07-21 |
US11409879B2 (en) | 2022-08-09 |
TW202132973A (zh) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3851989B1 (en) | Electronic device for updating firmware based on user authentication and an operating method thereof | |
US6209099B1 (en) | Secure data processing method and system | |
JP4647300B2 (ja) | 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム | |
JP5740646B2 (ja) | ソフトウェアのダウンロード方法 | |
US20090193211A1 (en) | Software authentication for computer systems | |
CN106919859B (zh) | 基本输入输出系统保护方法和装置 | |
US20160188347A1 (en) | Option read-only memory use | |
TWI684887B (zh) | 自動驗證方法與系統 | |
JP2015022521A (ja) | セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム | |
US20130124845A1 (en) | Embedded device and control method thereof | |
US20210367781A1 (en) | Method and system for accelerating verification procedure for image file | |
CN114995894A (zh) | 操作系统的启动控制方法、终端设备及可读存储介质 | |
CN107924440B (zh) | 用于管理容器的方法、系统和计算机可读介质 | |
CN113190880B (zh) | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 | |
US20200244461A1 (en) | Data Processing Method and Apparatus | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
CN108595981B (zh) | 加密安卓系统的方法 | |
CN113515779A (zh) | 文件的完整性校验方法、装置、设备及存储介质 | |
US9633229B2 (en) | Semiconductor device module, license setting method and medium having license setting program recorded therein | |
JP2007164681A (ja) | 認証方法、認証プログラム、認証システムおよびメモリカード | |
CN112733154B (zh) | 一种龙芯pmon安全启动方法 | |
KR102369874B1 (ko) | 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스 | |
US20240202341A1 (en) | Method for patching secure boot in iot | |
US20240193275A1 (en) | Electronic device and secure booting method thereof | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method |
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 |