一种安全终端的双芯片方案的固件更新方法

文档序号:6551667阅读:222来源:国知局
一种安全终端的双芯片方案的固件更新方法
【专利摘要】本发明公开了一种安全终端的双芯片方案的固件更新方法,属于信息安全领域。所述方法包括安全固件更新和应用固件更新,安全固件更新包括:安全处理器擦除安全固件存储区,对固件数据中的第一密文解密得到对称密钥,用对称密钥对固件数据中的第二密文解密,将解密结果写到安全固件存储区;应用固件更新包括:应用处理器擦除应用固件存储区,通过安全处理器获取固件数据,对固件数据中的第一密文解密得到对称密钥,用对称密钥对固件数据中的第二密文解密,将解密结果写到应用固件存储区。本发明的有益效果在于:能够有效防止固件更新过程中固件被截获、复制、篡改、损坏或者冒充的风险。
【专利说明】一种安全终端的双芯片方案的固件更新方法

【技术领域】
[0001] 本发明涉及信息安全领域,尤其涉及一种安全终端的双芯片方案的固件更新方 法。

【背景技术】
[0002] 固件就是写入EPR0M、EEPR0M或Flash芯片中的程序,通俗的理解就是"固化的软 件",是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。随着技术的不 断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求。目前固件的更新方 法通常是通过外部接口直接进入芯片的bootloader或者自己编写的bootloader程序进行 更新。
[0003] 本领域技术人员在实现本发明的过程中发现,目前的固件更新方法中,要更新的 固件是以明文方式发送到芯片中的,且可以通过外部接口直接访问芯片,安全性差,存在固 件被截获、复制、篡改、损坏或者冒充的风险。


【发明内容】

[0004] 本发明的目的是为了克服现有技术的缺陷,提供一种安全终端的双芯片方案的固 件更新方法。
[0005] 本发明方法是通过下述技术方案实现的:
[0006] -种安全终端的双芯片方案的固件更新方法,其基本实施过程如下:
[0007] 安全终端检查固件缓存区中缓存的固件信息,根据所述固件信息判断要更新的固 件的类型,若为安全固件则进行安全固件更新,若为应用固件则进行应用固件更新,其中, 所述安全终端中包括安全处理器和应用处理器,所述安全固件更新包括:
[0008] 步骤A1 :所述安全处理器擦除安全固件存储区,对所述固件缓存区中缓存的固件 数据中的第一密文进行解密得到对称密钥,初始化固件读取地址和固件更新目的地址;
[0009] 步骤A2 :所述安全处理器从所述固件读取地址读取预设长度的数据,根据所述对 称密钥对读取到的数据进行解密,并将解密得到的数据写到所述固件更新目的地址,更新 所述固件读取地址和固件更新目的地址;
[0010] 步骤A3 :所述安全处理器判断是否还有未读取的数据,是则返回步骤A2,否则安 全固件更新完成;
[0011] 所述应用固件更新包括:
[0012] 步骤B1 :所述应用处理器擦除应用固件存储区,向所述安全处理器发送读取固件 信息指令,等待所述安全处理器返回固件信息;
[0013] 步骤B2 :所述安全处理器接收到所述读取固件信息指令后对所述固件缓存区中 缓存的固件数据中的第一密文进行解密得到对称密钥,初始化固件读取地址,向所述应用 处理器返回所述固件缓存区中缓存的固件信息;
[0014] 步骤B3 :所述应用处理器接收到所述固件信息后初始化固件更新目的地址,执行 步骤B4 ;
[0015] 步骤Μ:所述应用处理器向所述安全处理器发送读取固件数据指令,等待所述安 全处理器返回固件数据;
[0016] 步骤Β5 :所述安全处理器接收到所述读取固件数据指令后从所述固件读取地址 读取预设长度的数据,并更新所述固件读取地址,根据所述对称密钥对读取到的数据进行 解密,向所述应用处理器返回解密得到的数据;
[0017] 步骤Β6 :所述应用处理器接收到所述解密得到的数据后将所述解密得到的数据 写到所述固件更新目的地址,并更新所述固件更新目的地址,判断是否还有未读取的数据, 是则返回步骤M,否则应用固件更新完成。
[0018] 具体地,所述固件信息中包含固件更新标志;
[0019] 所述根据所述固件信息判断要更新的固件的类型具体包括:判断所述固件信息中 的固件更新标志的类型,若为安全固件更新标志则要更新的固件的类型为安全固件,若为 应用固件更新标志则要更新的固件的类型为应用固件。
[0020] 进一步地,所述安全处理器从所述固件读取地址读取预设长度的数据之前还包 括:初始化读取长度;
[0021] 所述安全处理器从所述固件读取地址读取预设长度的密文之后还包括:更新所述 读取长度;
[0022] 所述判断是否还有未读取的数据具体包括:所述安全处理器判断所述读取长度是 否为预设值,是则没有未读取的数据,否则还有未读取的数据;
[0023] 更进一步地,所述初始化读取长度具体为:初始化读取长度等于所述固件缓存区 中缓存的固件数据中的第二密文的长度;
[0024] 所述更新所述读取长度具体为:更新所述读取长度为其当前值减去所述预设长 度;
[0025] 所述预设值具体为0。
[0026] 具体地,所述初始化固件读取地址为:初始化固件读取地址为所述固件缓存区中 缓存的固件数据中的第二密文的起始地址;
[0027] 所述更新所述固件读取地址具体为:更新所述固件读取地址为其当前地址加上所 述预设长度的偏移。
[0028] 具体地,所述安全处理器初始化固件更新目的地址为:所述安全处理器初始化所 述固件更新目的地址为所述安全固件存储区中的预设地址;
[0029] 所述安全处理器更新所述固件更新目的地址具体为:所述安全处理器更新所述固 件更新目的地址为其当前地址加上所述预设长度的偏移。
[0030] 具体地,所述应用处理器初始化固件更新目的地址为:所述应用处理器初始化所 述固件更新目的地址为所述应用固件存储区中的预设地址;
[0031] 所述应用处理器更新所述固件更新目的地址具体为:所述应用处理器更新所述固 件更新目的地址为其当前地址加上所述预设长度的偏移。
[0032] 进一步地,所述步骤A3中,所述安全处理器判断出没有未读取的数据时还包括: 擦除所述固件缓存区。
[0033] 进一步地,所述步骤Β6中,所述应用处理器判断出没有未读取的数据时还包括:
[0034] 步骤B7 :所述应用处理器向所述安全处理器发送读取固件完成指令,等待安全处 理器返回操作响应;
[0035] 步骤B8 :所述安全处理器接收到所述读取固件完成指令后擦除所述固件缓存区, 向所述应用处理器返回操作响应;
[0036] 所述应用处理器接收到所述应用处理器返回的操作响应后,应用固件更新完成。
[0037] 进一步地,所述安全终端检查固件缓存区中缓存的固件信息之前还包括进行固件 下载,其中,所述固件下载包括:
[0038] 步骤C1 :上位机经由所述应用处理器发送开始下载指令给所述安全处理器;
[0039] 步骤C2 :所述安全处理器接收到所述开始下载指令后擦除所述固件缓存区,保存 所述开始下载指令中的固件信息到所述固件缓存区,并经由所述应用处理器向所述上位机 返回第一操作响应;
[0040] 步骤C3 :所述上位机接收到所述第一操作响应后检查所述第一操作响应,若所述 第一操作响应为操作成功则经由所述应用处理器将固件分包发送给所述安全处理器,若所 述第一操作响应包含错误信息则提示错误信息,固件下载过程终止;
[0041] 步骤C4:所述安全处理器接收到固件数据包后将所述固件数据包中的固件数据 写到所述固件缓存区,并经由所述应用处理器向所述上位机返回第二操作响应;
[0042] 步骤C5 :所述上位机接收到所述第二操作响应后检查所述第二操作响应,若所述 第二操作响应为操作成功则经由所述应用处理器发送下载完成指令给所述安全处理器,若 所述第二操作响应包含错误信息则提示错误信息,固件下载过程终止;
[0043] 步骤C6 :所述安全处理器接收到所述下载完成指令后判断所述下载完成指令中 是否包含固件数据包,是则将固件数据包中的固件数据写到所述固件缓存区,执行步骤C7, 否则直接执行步骤C7 ;
[0044] 步骤C7 :所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,若合 法则执行步骤C8,若不合法则执行步骤C10 ;
[0045] 步骤C8 :所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件 缓存区中缓存的固件数据是否合法,若合法则执行步骤C9,若不合法则执行步骤C10 ;
[0046] 步骤C9 :所述安全处理器对所述固件缓存区中缓存的固件数据中的第一密文进 行解密,获取解密结果中的第二密文的哈希值,对所述固件缓存区中缓存的固件数据中的 密文进行哈希计算,得到第二密文的哈希值,比较从所述解密结果中获取到的第二密文哈 希值与哈希计算得到的第二密文的哈希值是否一致,若不一致则擦除所述固件缓存区,执 行步骤C10 ;若一致则直接执行步骤C10 ;
[0047] 步骤CIO :所述安全处理器经由所述应用处理器向所述上位机返回第三操作响 应;
[0048] 步骤C11 :所述上位机接收到所述第三操作响应后检查所述第三操作响应,若所 述第三操作响应为操作成功则固件下载成功,若所述第三操作响应包含错误信息,则提示 错误信息,固件下载失败;
[0049] 或者,所述固件下载包括:
[0050] 步骤D1 :所述应用处理器向服务器发送请求固件更新指令,等待所述服务器下发 开始下载指令;
[0051] 步骤D2 :所述服务器接收到所述请求固件更新指令后根据所述请求固件更新指 令中的固件类型信息经由所述应用处理器发送相应的开始下载指令给所述安全处理器;
[0052] 步骤D3 :所述安全处理器接收到所述开始下载指令后擦除所述固件缓存区,保存 所述开始下载指令中的固件信息到所述固件缓存区,并经由所述应用处理器向所述服务器 返回第一操作响应;
[0053] 步骤D4:所述服务器接收到所述第一操作响应后检查所述第一操作响应,若所述 第一操作响应为操作成功则经由所述应用处理器将固件分包发送给所述安全处理器,若所 述第一操作响应包含错误信息则提示错误信息,固件下载过程终止;
[0054] 步骤D5 :所述安全处理器接收到固件数据包后将所述固件数据包中的固件数据 写到所述固件缓存区,并经由所述应用处理器向所述服务器返回第二操作响应;
[0055] 步骤D6 :所述服务器接收到所述第二操作响应后检查所述第二操作响应,若所述 第二操作响应为操作成功则经由所述应用处理器发送下载完成指令给所述安全处理器,若 所述第二操作响应包含错误信息则提示错误信息,固件下载过程终止;
[0056] 步骤D7 :所述安全处理器接收到所述下载完成指令后判断所述下载完成指令中 是否包含固件数据包,是则将固件数据包中的固件数据写到所述固件缓存区,执行步骤D8, 否则直接执行步骤D8 ;
[0057] 步骤D8 :所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,若合 法则执行步骤D9,若不合法则执行步骤D11 ;
[0058] 步骤D9 :所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件 缓存区中缓存的固件数据是否合法,若合法则执行步骤D10,若不合法则执行步骤D11 ;
[0059] 步骤D10 :所述安全处理器对所述固件缓存区中缓存的固件数据中的第一密文进 行解密,获取解密结果中的第二密文的哈希值,对所述固件缓存区中缓存的固件数据中的 第二密文进行哈希计算,得到第二密文的哈希值,比较从所述解密结果中获取的第二密文 的哈希值与哈希计算得到的第二密文的哈希值是否一致,若不一致则擦除所述固件缓存 区,执行步骤D11 ;若一致则直接执行步骤D11 ;
[0060] 步骤D11 :所述安全处理器经由所述应用处理器向所述服务器返回第三操作响 应;
[0061] 步骤D12 :所述服务器接收到所述第三操作响应后检查所述第三操作响应,若所 述第三操作响应为操作成功则固件下载成功,若所述第三操作响应包含错误信息,则提示 错误信息,固件下载失败;
[0062] 更近一步地,所述固件信息中包括固定数据;
[0063] 所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,具体包括:所 述安全处理器判断所述固件缓存区中缓存的固件信息中的固定数据是否为预设数据,是则 所述固件缓存区中缓存的固件信息合法,否则所述固件缓存区中缓存的固件信息不合法; [0064] 进一步地,所述固件信息中包括固件数据长度;
[0065] 所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件缓存区中 缓存的固件数据是否合法,具体包括:所述安全处理器判断所述固件缓存区中缓存的固件 信息中的固件数据长度与所述固件缓存区中缓存的固件数据的长度是否一致,是则所述固 件缓存区中缓存的固件数据合法,否则所述固件缓存区中缓存的固件数据不合法;
[0066] 进一步地,所述安全处理器擦除安全固件存储区之后还包括:复制所述固件缓存 区中缓存的固件信息到所述安全固件存储区;
[0067] 所述应用处理器擦除应用固件存储区之后还包括:复制所述固件缓存区中缓存的 固件信息到所述应用固件存储区;
[0068] 更进一步地,所述步骤D1之前还包括:
[0069] 步骤E1 :所述应用处理器发送读取固件版本信息指令给所述安全处理器,等待所 述安全处理器返回固件版本信息;
[0070] 步骤E2 :所述安全处理器接收到所述读取固件版本信息指令后从所述安全固件 存储区中存储的安全固件信息中获取安全固件版本信息,从所述应用固件存储区中存储的 应用固件信息中获取应用固件版本信息,并将所述安全固件版本信息和所述应用固件版本 信息返回给所述应用处理器;
[0071] 步骤E3 :所述应用处理器接收到所述安全固件版本信息和所述应用固件版本信 息后向所述服务器发送读取最新固件版本信息指令,等待所述服务器返回最新固件版本信 息;
[0072] 步骤E4 :所述服务器接收到所述读取最新固件版本信息指令后发送最新安全固 件版本信息和最新应用固件版本信息给所述应用处理器;
[0073] 步骤E5 :所述应用处理器将服务器发送的最新安全固件版本信息和最新应用固 件版本信息后分别与所述安全处理器返回的安全固件版本信息和应用固件版本信息进行 比较,判断是否要需要更新固件,是则执行步骤D1,否则固件下载终止;
[0074] 具体地,所述服务器根据所述请求固件更新指令中的固件类型信息经由所述应用 处理器发送相应的开始下载指令给所述安全处理器,包括 :
[0075] 当所述固件类型信息为安全固件时,所述服务器经由所述应用处理器发送包含安 全固件更新标志以及安全固件版本信息的固件信息的开始下载指令给所述安全处理器;
[0076] 当所述固件类型信息为应用固件时,所述服务器经由所述应用处理器发送包含应 用固件更新标志以及应用固件版本信息的固件信息的开始下载指令给所述安全处理器。
[0077] 本发明方法的有益效果在于,本发明中的安全终端同时设置有应用处理器和安全 处理器,并且安全处理器没有对外的接口,基于这样的设置,外界不能直接访问安全处理 器,固件需经由应用处理器下载到安全处理器中,并且安全固件更新和应用固件更新过程 都有安全处理器的参与,能够有效防止固件更新过程中固件被截获、复制、篡改、损坏或者 冒充的风险。

【专利附图】

【附图说明】
[0078] 为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0079] 图1为本发明实施例1中提供的一种安全终端的双芯片方案的固件更新方法中固 件下载的流程图;
[0080] 图2为本发明实施例1中提供的一种安全终端的双芯片方案的固件更新方法中安 全固件更新的流程图;
[0081] 图3为本发明实施例1中提供的一种安全终端的双芯片方案的固件更新方法中应 用固件更新的流程图;
[0082] 图4和图5为本发明实施例2中提供的一种安全终端的双芯片方案的固件更新方 法中固件下载的流程图;
[0083] 图6为本发明实施例2中提供的一种安全终端的双芯片方案的固件更新方法中安 全固件更新的流程图;
[0084] 图7为本发明实施例2中提供的一种安全终端的双芯片方案的固件更新方法中应 用固件更新的流程图。

【具体实施方式】
[0085] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0086] 本发明中的安全终端中设置有应用处理器和安全处理器,且安全处理器不设置直 接对外接口,实施例1提供的是本地更新方法,实施例2提供的是远程更新方法。
[0087] 实施例1
[0088] 本发明实施例1提供一种安全终端的双芯片方案的固件更新方法,所述方法包括 固件下载过程和固件更新过程,固件下载过程适用于应用固件下载和安全固件下载,固件 更新过程包括应用固件更新和安全固件更新。
[0089] 参见图1,固件下载过程具体包括:
[0090] 步骤101 :上位机发送开始下载指令给应用处理器;
[0091] 本实施例中,上位机发送包含固件信息的开始下载指令给应用处理器,固件信息 包括固定数据、固件数据长度和固件更新标志,固件更新标志具体为应用固件更新标志或 安全固件更新标志。
[0092] 步骤102 :应用处理器接收到开始下载指令后将开始下载指令发送给安全处理 器;
[0093] 步骤103 :安全处理器接收到开始下载指令后擦除固件缓存区,保存开始下载指 令中的固件信息到固件缓存区;
[0094] 步骤104 :安全处理器向应用处理器返回第一操作响应;
[0095] 本实施例中,当安全处理器成功擦除固件缓存区,并成功保存固件信息到固件缓 存区时,向应用处理器返回操作成功的第一操作响应,否则向应用处理器返回包含错误信 息的第一操作响应。
[0096] 步骤105 :应用处理器接收到第一操作响应后将第一操作响应返回给上位机;
[0097] 步骤106 :上位机接收到第一操作响应后,检查第一操作响应,若是操作成功则继 续执行步骤107,若包含错误信息则提示错误信息,固件下载过程终止;
[0098] 步骤107 :上位机将固件分包下载到应用处理器;
[0099] 本实施例中,将固件分包得到的固件数据包中除固件数据外还包括目的地址和固 件数据长度,其中,固件数据由第一密文和第二密文组成,第一密文具体为使用预置私钥对 对称密钥和第二密文的哈希值进行加密得到的,第二密文具体为使用对称密钥对固件明文 和固件明文的哈希值进行加密得到的。
[0100] 步骤108 :应用处理器接收到固件数据包后将固件数据包发送给安全处理器;
[0101] 步骤109 :安全处理器接收到固件数据后根据固件数据包中的目的地址和固件数 据长度将固件数据包中的固件数据写到固件缓存区中;
[0102] 步骤110 :安全处理器向应用处理器返回第二操作响应;
[0103] 本实施例中,当安全处理器成功将固件数据包中的固件数据写到固件缓存区时, 向应用处理器返回操作成功的第二操作响应,否则向应用处理器返回包含错误信息的第二 操作响应。
[0104] 步骤111 :应用处理器接收到第二操作响应后将第二操作响应返回给上位机;
[0105] 步骤112 :上位机接收到第二操作响应后,检查第二操作响应,若是操作成功则继 续执行步骤113,若包含错误信息则提示错误信息,固件下载过程终止;
[0106] 步骤113 :上位机发送下载完成指令给应用处理器;
[0107] 步骤114 :应用处理器接收到下载完成指令后将下载完成指令发送给安全处理 器;
[0108] 步骤115 :安全处理器接收到下载完成指令后判断下载完成指令中是否包含固件 数据包,是则执行步骤116,否则执行步骤117 ;
[0109] 步骤116 :安全处理器根据固件数据包中的目的地址和固件数据长度将固件数据 包中的固件数据写到固件缓存区中,执行步骤117 ;
[0110] 步骤117 :安全处理器读取固件缓存区中缓存的固件信息,判断固件信息是否合 法,是则执行步骤118,否则执行步骤121 ;
[0111] 本实施例中,安全处理器通过判断固件信息中的固定数据是否为预设数据判断固 件信息是否合法,若固件信息中的固定数据为预设数据则固件信息合法,若固件信息中的 固定数据不为预设数据则固件信息不合法;
[0112] 优选地,本实施例中,预设数据为46544358。
[0113] 步骤118 :安全处理器根据固件信息判断下载的固件数据是否合法,是则执行步 骤119,否则执行步骤121 ;
[0114] 本实施例中,下载的固件数据即固件缓存区中缓存的固件数据,安全处理器通过 判断固件信息中的固件数据长度与固件缓存区中缓存的固件数据的长度是否一致来判断 下载的固件数据是否合法,若一致则下载的固件数据合法,若不一致则下载的固件数据不 合法。
[0115] 步骤119 :安全处理器根据预置公钥对固件数据中的第一密文进行解密,获取解 密结果中的第二密文的哈希值,对固件数据中的第二密文进行哈希计算,得到第二密文的 哈希值;
[0116] 步骤120 :安全处理器比较解密结果中的第二密文的哈希值与计算得到的第二密 文的哈希值是否一致,是则执行步骤122,否则执行步骤121 ;
[0117] 步骤121 :安全处理器擦除固件缓存区,执行步骤122 ;
[0118] 步骤122 :安全处理器向应用处理器返回第三操作响应;
[0119] 本实施例中,当安全处理器判定固件缓存区中的固件数据正确时,向应用处理器 返回操作成功的第三操作响应,否则向应用处理器返回包含错误信息的第三操作响应。
[0120] 步骤123 :应用处理器接收到第三操作响应后将第三操作响应返回给上位机;
[0121] 步骤124 :上位机接收到第三操作响应后检查第三操作响应,若是操作成功则固 件下载过程完成,若包含错误信息则提示错误信息,固件下载过程终止。
[0122] 本实施例中,固件下载过程结束后,安全终端重新启动,当安全终端重新启动后, 安全处理器检查固件缓存区中缓存的固件信息中的固件更新标志,若为安全固件更新标志 则执行安全固件更新,若为应用固件更新标志则等待应用处理器发送读取应用固件更新状 态指令,向应用处理器返回需要进行应用固件更新的应答后,执行应用固件更新。
[0123] 参见图2,安全固件更新过程具体包括:
[0124] 步骤201 :安全处理器擦除安全固件存储区;
[0125] 步骤202 :安全处理器根据预置的公钥对固件缓存区中缓存的固件数据中的第一 密文进行解密,获取解密结果中的对称密钥;
[0126] 步骤203 :安全处理器初始化固件读取地址为固件缓存区中缓存的固件数据中的 第二密文的起始地址,初始化读取长度为固件缓存区中缓存的固件数据中的第二密文的长 度,初始化固件更新目的地址为安全固件存储区中的预设地址;
[0127] 本实施例中,安全固件存储区中的预设地址可以为安全固件存储区中存储的固件 信息之后的任意地址;
[0128] 优选地,步骤203中,初始化固件更新目的地址为安全固件存储区中偏移等于安 全固件存储区中存储的固件信息的长度的地址。
[0129] 步骤204 :安全处理器从固件读取地址读取预设长度的数据;
[0130] 步骤205 :安全处理器根据获取到的对称密钥对读到的数据进行解密;
[0131] 步骤206 :安全处理器将解密得到的数据写到固件更新目的地址;
[0132] 步骤207 :安全处理器更新固件读取地址为其当前地址加上预设长度的偏移,更 新读取长度为其当前长度减去预设长度,更新固件更新目的地址为其当前地址加上预设长 度的偏移;
[0133] 步骤208 :安全处理器根据读取长度判断是否还有未读取的数据,是则返回步骤 204,否则执行步骤209 ;
[0134] 本实施例中,安全处理器通过判断读取长度是否大于0判断是否还有未读取的数 据,若读取长度大于〇则还有未读取的数据,若读取长度不大于〇则没有未读取的数据。
[0135] 步骤209 :安全处理器擦除固件缓存区,安全固件更新过程完成。
[0136] 参见图3,应用固件更新过程具体包括:
[0137] 步骤301 :应用处理器擦除应用固件存储区,向安全处理器发送读取固件信息指 令,等待安全处理器返回固件信息;
[0138] 步骤302 :安全处理器接收到读取固件信息指令后根据预置的公钥对固件缓存区 中缓存的固件数据中的第一密文进行解密,获取解密结果中的对称密钥,并初始化固件读 取地址为固件缓存区中缓存的固件数据中的第二密文的起始地址;
[0139] 步骤303 :安全处理器向应用处理器返回固件缓存区中缓存的固件信息;
[0140] 步骤304:应用处理器接收到固件信息后初始化固件更新目的地址为应用固件存 储区中的预设地址,并获取固件信息中的固件数据长度,根据固件数据长度计算固件数据 中的第二密文的长度,初始化读取长度为固件数据中的第二密文的长度;
[0141] 具体地,应用固件存储区中的预设地址可以为应用固件存储区中的任意地址;
[0142] 优选地,步骤304中,初始化固件更新目的地址为应用固件存储区中偏移等于0的 地址;
[0143] 具体地,根据固件数据长度计算固件数据中的第二密文的长度包括:计算固件长 度与固件数据中的第一密文长度的差值,得到固件数据中的第二密文的长度,其中第一密 文长度等于预置公钥的长度;
[0144] 优选地,本实施例中,第预置公钥的长度为256字节。
[0145] 步骤305 :应用处理器向安全处理器发送读取固件数据指令,等待安全处理器返 回固件数据;
[0146] 步骤306 :安全处理器接收到读取固件数据指令后,从固件读取地址读取预设长 度的数据,更新固件读取地址为其当前地址加上预设长度的偏移,并用获取到的对称密钥 对读取到的数据进行解密;
[0147] 步骤307 :安全处理器向应用处理器返回解密得到的数据;
[0148] 步骤308 :应用处理器接收到安全处理器返回的解密得到的数据后将接收到的数 据写到固件更新目的地址,更新读取长度为其当前长度减去预设长度,更新固件更新目的 地址为其当前地址加上预设长度的偏移;
[0149] 步骤309 :应用处理器根据读取长度判断是否还有未读取的数据,是则返回步骤 305,否则执行步骤310 ;
[0150] 本实施例中,应用处理器通过判断读取长度是否大于0判断是否还有未读取的数 据,若读取长度大于〇则还有未读取的数据,若读取长度不大于〇则没有未读取的数据。
[0151] 步骤310 :应用处理器向安全处理器发送读取固件完成指令,等待安全处理器返 回操作响应;
[0152] 步骤311 :安全处理器接收到读取固件完成指令后擦除固件缓存区;
[0153] 步骤312 :安全处理器向应用处理器返回操作响应;
[0154] 步骤313 :应用处理器接收到安全处理器返回的操作响应后,应用固件更新过程 完成。
[0155] 进一步地,本实施例中,安全处理器接收到指令后还包括:校验指令的格式和内容 是否正确、判断是否支持该指令、验证指令中的消息认证码,若指令的格式或内容不正确、 不支持该指令、消息认证码验证未通过时,向应用处理器返回错误码,例如,若不支持该指 令,则向应用处理器返回6D00。
[0156] 本发明提供的固件更新方法中,安全终端中同时设置应用处理器和安全处理器, 并设置上位机只能通过应用处理器访问安全处理器,且要更新的固件以密文方式经应用 处理器下载到安全处理器中,无论是应用固件更新还是安全固件更新都有安全处理器的参 与,提高了固件更新过程中固件的安全性,能够有效防止固件在固件更新过程中被截获、复 制、桌改、损坏或者冒充。
[0157] 实施例2
[0158] 本发明实施例2提供一种安全终端的双芯片方案的固件更新方法,所述方法包括 固件下载过程和固件更新过程,固件下载过程适用于应用固件下载和安全固件下载,固件 更新过程包括应用固件更新和安全固件更新。
[0159] 参见图4和图5,固件下载过程具体包括:
[0160] 步骤401 :应用处理器发送读取固件版本信息指令给安全处理器;
[0161] 步骤402 :安全处理器接收到读取固件版本信息指令后分别从安全固件存储区中 读取安全固件信息,从应用固件存储区中读取应用固件信息;
[0162] 步骤403 :安全处理器从安全固件信息中获取安全固件版本信息,从应用固件信 息中获取应用固件版本信息;
[0163] 步骤404:安全处理器向应用处理器返回安全固件版本信息和应用固件版本信 息;
[0164] 步骤405 :应用处理器接收并保存安全处理器返回的安全固件版本信息和应用固 件版本信息;
[0165] 步骤406 :应用处理器向服务器发送读取最新固件版本信息指令;
[0166] 步骤407 :服务器接收到读取最新固件版本信息指令后发送最新安全固件版本信 息和最新应用固件版本信息给应用处理器;
[0167] 步骤408 :应用处理器接收到最新安全固件版本信息和最新应用固件版本信息后 分别与安全处理器返回的安全固件版本信息和应用固件版本信息进行比较,判断是否需要 进行固件更新,是则执行步骤409,否则固件下载过程终止;
[0168] 本实施例中,应用处理器分别判断最新安全固件版本信息与安全处理器返回的安 全固件版本信息,以及最新应用固件版本信息与安全处理器返回的应用固件版本信息是否 均一致,是则不需要进行固件更新,否则需要进行固件更新。
[0169] 步骤409 :应用处理器向服务器发送请求固件更新指令,等待服务器下发开始下 载指令;
[0170] 本实施例中,应用处理器向服务器发送包含固件类型信息的固件更新指令,固件 类型信息为安全固件或应用固件;
[0171] 本实施例中,当安全固件和应用固件都需要更新时,应用处理器根据预先设置的 优先级,首先向服务器请求更新优先级高的固件,例如,预设设置安全固件的优先级高于应 用固件,当步骤408中判断出安全固件和应用固件都需要更新时,应用处理器首先向服务 器请求安全固件更新。
[0172] 步骤410 :服务器接收到请求固件更新指令后根据请求固件更新指令中的固件类 型信息发送相应的开始下载指令给应用处理器;
[0173] 本实施例中,服务器发送包含固件信息的开始下载指令给应用处理器,固件信息 包括固定数据、固件数据长度、固件更新标志和固件版本信息,固件更新标志具体为应用固 件更新标志或安全固件更新标志,固件版本信息具体为安全固件版本信息或应用固件版本 信息;
[0174] 具体地,当请求固件更新指令中的固件类型信息为安全固件时,服务器发送包含 安全固件更新标志以及安全固件版本信息的固件信息的开始下载指令给应用处理器,当请 求固件更新指令中的应用固件时,服务器发送包含应用固件更新标志以及应用固件版本信 息的固件信息的开始下载指令给应用处理器。
[0175] 步骤411 :应用处理器接收到开始下载指令后将开始下载指令发送给安全处理 器;
[0176] 步骤412 :安全处理器接收到开始下载指令后擦除固件缓存区,保存开始下载指 令中的固件信息到固件缓存区;
[0177] 步骤413 :安全处理器向应用处理器返回第一操作响应;
[0178] 本实施例中,当安全处理器成功擦除固件缓存区,并成功保存固件信息到固件缓 存区时,向应用处理器返回操作成功的第一操作响应,否则向应用处理器返回包含错误信 息的第一操作响应。
[0179] 步骤414 :应用处理器接收到第一操作响应后将第一操作响应返回给服务器;
[0180] 步骤415 :服务器接收到第一操作响应后,检查第一操作响应,若是操作成功则继 续执行步骤416,若包含错误信息则提示错误信息,固件下载过程终止;
[0181] 步骤416 :服务器将固件分包下载到应用处理器;
[0182] 本实施例中,将固件分包得到的固件数据包中除固件数据外还包括目的地址和固 件数据长度,其中,固件数据由第一密文和第二密文组成,第一密文具体为使用预置私钥对 对称密钥和第二密文的哈希值进行加密得到的,第二密文具体为使用对称密钥对固件明文 和固件明文哈希值进行加密得到的。
[0183] 步骤417 :应用处理器接收到固件数据包后将固件数据包发送给安全处理器;
[0184] 步骤418 :安全处理器接收到固件数据后根据固件数据包中的目的地址和固件数 据长度将固件数据包中的固件数据写到固件缓存区中;
[0185] 步骤419 :安全处理器向应用处理器返回第二操作响应;
[0186] 本实施例中,当安全处理器成功将固件数据包中的固件数据写到固件缓存区时, 向应用处理器返回操作成功的第二操作响应,否则向应用处理器返回包含错误信息的第二 操作响应。
[0187] 步骤420 :应用处理器接收到第二操作响应后将第二操作响应返回给服务器;
[0188] 步骤421 :服务器接收到第二操作响应后,检查第二操作响应,若是操作成功则继 续执行步骤422,若包含错误信息则提示错误信息,固件下载过程终止;
[0189] 步骤422 :服务器发送下载完成指令给应用处理器;
[0190] 步骤423 :应用处理器接收到下载完成指令后将下载完成指令发送给安全处理 器;
[0191] 步骤424 :安全处理器接收到下载完成指令后判断下载完成指令中是否包含固件 数据包,是则执行步骤425,否则执行步骤426 ;
[0192] 步骤425 :安全处理器根据固件数据包中的目的地址和固件数据长度将固件数据 包中的固件数据写到固件缓存区中,执行步骤426 ;
[0193] 步骤426 :安全处理器读取固件缓存区中缓存的固件信息,判断固件信息是否合 法,是则执行步骤427,否则执行步骤430 ;
[0194] 本实施例中,安全处理器通过判断固件信息中的固定数据是否为预设数据判断固 件信息是否合法,若固件信息中的固定数据为预设数据则固件信息合法,若固件信息中的 固定数据不为预设数据则固件信息不合法;
[0195] 优选地,本实施例中,预设数据为46544358。
[0196] 步骤427 :安全处理器根据固件信息判断下载的固件数据是否合法,是则执行步 骤428,否则执行步骤430 ;
[0197] 本实施例中,下载的固件数据即固件缓存区中缓存的固件数据,安全处理器通过 判断固件信息中的固件数据长度与固件缓存区中缓存的固件数据的长度是否一致来判断 下载的固件数据是否合法,若一致则下载的固件数据合法,若不一致则下载的固件数据不 合法。
[0198] 步骤428 :安全处理器根据预置公钥对固件数据中的第一密文进行解密,获取解 密结果中的第二密文的哈希值,对固件数据中的第二密文进行哈希计算,得到第二密文的 哈希值;
[0199] 步骤429 :安全处理器比较解密结果中的第二密文的哈希值与计算得到的第二密 文的哈希值是否一致,是则执行步骤431,否则执行步骤430 ;
[0200] 步骤430 :安全处理器擦除固件缓存区,执行步骤431 ;
[0201] 步骤431 :安全处理器向应用处理器返回第三操作响应;
[0202] 本实施例中,当安全处理器判定固件缓存区中的固件数据正确时,向应用处理器 返回操作成功的第三操作响应,否则向应用处理器返回包含错误信息的第三操作响应。
[0203] 步骤432 :应用处理器接收到第三操作响应后将第三操作响应返回给服务器;
[0204] 步骤433 :服务器接收到第三操作响应后检查第三操作响应,若第三操作响应是 操作成功则固件下载过程完成,若第三操作响应包含错误信息则提示错误信息,固件下载 过程终止。
[0205] 本实施例中,固件下载过程结束后,安全终纟而重新启动,当安全终纟而重新启动后, 安全处理器检查固件缓存区中缓存的固件信息中的固件更新标志,若为安全固件更新标志 则执行安全固件更新,若为应用固件更新标志则等待应用处理器发送读取应用固件更新状 态指令,向应用处理器返回需要进行应用固件更新的应答后,执行应用固件更新。
[0206] 参见图6,安全固件更新过程具体包括:
[0207] 步骤501 :安全处理器擦除安全固件存储区;
[0208] 步骤502 :安全处理器复制固件缓存区中的固件信息到安全固件存储区;
[0209] 步骤503 :安全处理器根据预置的公钥对固件缓存区中缓存的固件数据中的第一 密文进行解密,获取解密结果中的对称密钥;
[0210] 步骤504 :安全处理器初始化固件读取地址为固件缓存区中缓存的固件数据中的 第二密文的起始地址,初始化读取长度为固件缓存区中缓存的固件数据中的第二密文的长 度,初始化固件更新目的地址为安全固件存储区中的预设地址;
[0211] 本实施例中,安全固件存储区中的预设地址可以为安全固件存储区中存储的固件 信息之后的任意地址;
[0212] 优选地,步骤504中,初始化固件更新目的地址为安全固件存储区中偏移等于安 全固件存储区中存储的固件信息的长度的地址。
[0213] 步骤505 :安全处理器从固件读取地址读取预设长度的数据;
[0214] 步骤506 :安全处理器根据获取到的对称密钥对读到的数据进行解密;
[0215] 步骤507 :安全处理器将解密得到的数据写到固件更新目的地址;
[0216] 步骤508 :安全处理器更新固件读取地址为其当前地址加上预设长度的偏移,更 新读取长度为其当前长度减去预设长度,更新固件更新目的地址为其当前地址加上预设长 度的偏移;
[0217] 步骤509 :安全处理器根据读取长度判断是否还有未读取的数据,是则返回步骤 505,否则执行步骤510 ;
[0218] 本实施例中,安全处理器通过判断读取长度是否大于0判断是否还有未读取的数 据,若读取长度大于〇则还有未读取的数据,若读取长度不大于〇则没有未读取的数据。
[0219] 步骤510 :安全处理器擦除固件缓存区,安全固件更新过程完成。
[0220] 参见图7,应用固件更新过程具体包括:
[0221] 步骤601 :应用处理器擦除应用固件存储区,向安全处理器发送读取固件信息指 令,等待安全处理器返回固件信息;
[0222] 步骤602 :安全处理器接收到读取固件信息指令后根据预置的公钥对固件缓存区 中缓存的固件数据中的第一密文进行解密,获取解密结果中的对称密钥,并初始化固件读 取地址为固件缓存区中缓存的固件数据中的第二密文的起始地址;
[0223] 步骤603 :安全处理器向应用处理器返回固件缓存区中缓存的固件信息;
[0224] 步骤604:应用处理器接收到固件信息后保存固件信息到应用固件存储区,初始 化固件更新目的地址为应用固件存储区中的预设地址,并获取固件信息中的固件数据长 度,根据固件数据长度计算固件数据中的第二密文的长度,初始化读取长度为固件数据中 的第二密文的长度;
[0225] 具体地,应用固件存储区中的预设地址可以为应用固件存储区中的任意地址;
[0226] 优选地,步骤604中,初始化固件更新目的地址为应用固件存储区中偏移等于0的 地址;
[0227] 具体地,根据固件数据长度计算固件数据中的第二密文的长度包括:计算固件长 度与固件数据中的第一密文长度的差值,得到固件数据中的第二密文的长度,其中第一密 文长度等于预置公钥的长度;
[0228] 优选地,本实施例中,第预置公钥的长度为256字节。
[0229] 步骤605 :应用处理器向安全处理器发送读取固件数据指令,等待安全处理器返 回固件数据;
[0230] 步骤606 :安全处理器接收到读取固件数据指令后,从固件读取地址读取预设长 度的数据,更新固件读取地址为其当前地址加上预设长度的偏移,并用获取到的对称密钥 对读取到的数据进行解密;
[0231] 步骤607 :安全处理器向应用处理器返回解密得到的数据;
[0232] 步骤608 :应用处理器接收到安全处理器返回的解密得到的数据后将接收到的数 据写到固件更新目的地址,更新读取长度为其当前长度减去预设长度,更新固件更新目的 地址为其当前地址加上预设长度的偏移;
[0233] 步骤609 :应用处理器根据读取长度判断是否还有未读取的数据,是则返回步骤 605,否则执行步骤610 ;
[0234] 本实施例中,应用处理器通过判断读取长度是否大于0判断是否还有未读取的数 据,若读取长度大于〇则还有未读取的数据,若读取长度不大于〇则没有未读取的数据。
[0235] 步骤610 :应用处理器向安全处理器发送读取固件完成指令,等待安全处理器返 回操作响应;
[0236] 步骤611 :安全处理器接收到读取固件完成指令后擦除固件缓存区;
[0237] 步骤612 :安全处理器向应用处理器返回操作响应;
[0238] 步骤613 :应用处理器接收到安全处理器返回的操作响应后,应用固件更新过程 完成。
[0239] 进一步地,本实施例中,安全处理器接收到指令后还包括:校验指令的格式和内容 是否正确、判断是否支持该指令、验证指令中的消息认证码,若指令的格式或内容不正确、 不支持该指令、消息认证码验证未通过时,向应用处理器返回错误码,例如,若不支持该指 令,则向应用处理器返回6D00。
[0240] 本发明提供的固件更新方法中,安全终端中同时设置应用处理器和安全处理器, 并设置服务器只能通过应用处理器访问安全处理器,且要更新的固件以密文方式经应用 处理器下载到安全处理器中,无论是应用固件更新还是安全固件更新都有安全处理器的参 与,提高了固件更新过程中固件的安全性,能够有效防止固件在固件更新过程中被截获、复 制、篡改、损坏或者冒充。
[0241] 以上所述的实施例只是本发明较优选的【具体实施方式】,本领域的技术人员在本发 明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
【权利要求】
1. 一种安全终端的双芯片方案的固件更新方法,其特征在于,包括:安全终端检查固 件缓存区中缓存的固件信息,根据所述固件信息判断要更新的固件的类型,若为安全固件 则进行安全固件更新,若为应用固件则进行应用固件更新,其中,所述安全终端中包括安全 处理器和应用处理器,所述安全固件更新包括: 步骤A1 :所述安全处理器擦除安全固件存储区,对所述固件缓存区中缓存的固件数据 中的第一密文进行解密得到对称密钥,初始化固件读取地址和固件更新目的地址; 步骤A2 :所述安全处理器从所述固件读取地址读取预设长度的数据,根据所述对称密 钥对读取到的数据进行解密,并将解密得到的数据写到所述固件更新目的地址,更新所述 固件读取地址和固件更新目的地址; 步骤A3 :所述安全处理器判断是否还有未读取的数据,是则返回步骤A2,否则安全固 件更新完成; 所述应用固件更新包括: 步骤B1 :所述应用处理器擦除应用固件存储区,向所述安全处理器发送读取固件信息 指令,等待所述安全处理器返回固件信息; 步骤B2 :所述安全处理器接收到所述读取固件信息指令后对所述固件缓存区中缓存 的固件数据中的第一密文进行解密得到对称密钥,初始化固件读取地址,向所述应用处理 器返回所述固件缓存区中缓存的固件信息; 步骤B3 :所述应用处理器接收到所述固件信息后初始化固件更新目的地址,执行步骤 B4 ; 步骤Μ :所述应用处理器向所述安全处理器发送读取固件数据指令,等待所述安全处 理器返回固件数据; 步骤Β5 :所述安全处理器接收到所述读取固件数据指令后从所述固件读取地址读取 预设长度的数据,并更新所述固件读取地址,根据所述对称密钥对读取到的数据进行解密, 向所述应用处理器返回解密得到的数据; 步骤Β6 :所述应用处理器接收到所述解密得到的数据后将所述解密得到的数据写到 所述固件更新目的地址,并更新所述固件更新目的地址,判断是否还有未读取的数据,是则 返回步骤M,否则应用固件更新完成。
2. 根据权利要求1所述的方法,其特征在于,所述固件信息中包含固件更新标志; 所述根据所述固件信息判断要更新的固件的类型具体包括:判断所述固件信息中的固 件更新标志的类型,若为安全固件更新标志则要更新的固件的类型为安全固件,若为应用 固件更新标志则要更新的固件的类型为应用固件。
3. 根据权利要求1所述的方法,其特征在于,所述安全处理器从所述固件读取地址读 取预设长度的数据之前还包括:初始化读取长度; 所述安全处理器从所述固件读取地址读取预设长度的密文之后还包括:更新所述读取 长度; 所述判断是否还有未读取的数据具体包括:所述安全处理器判断所述读取长度是否为 预设值,是则没有未读取的数据,否则还有未读取的数据。
4. 根据权利要求3所述的方法,其特征在于,所述初始化读取长度具体为:初始化读取 长度等于所述固件缓存区中缓存的固件数据中的第二密文的长度; 所述更新所述读取长度具体为:更新所述读取长度为其当前值减去所述预设长度; 所述预设值具体为0。
5. 根据权利要求1所述的方法,其特征在于,所述初始化固件读取地址具体为:初始化 固件读取地址为所述固件缓存区中缓存的固件数据中的第二密文的起始地址; 所述更新所述固件读取地址具体为:更新所述固件读取地址为其当前地址加上所述预 设长度的偏移。
6. 根据权利要求1所述的方法,其特征在于,所述安全处理器初始化固件更新目的地 址具体为:所述安全处理器初始化所述固件更新目的地址为所述安全固件存储区中的预设 地址; 所述安全处理器更新所述固件更新目的地址具体为:所述安全处理器更新所述固件更 新目的地址为其当前地址加上所述预设长度的偏移。
7. 根据权利要求1所述的方法,其特征在于,所述应用处理器初始化固件更新目的地 址具体为:所述应用处理器初始化所述固件更新目的地址为所述应用固件存储区中的预设 地址; 所述应用处理器更新所述固件更新目的地址具体为:所述应用处理器更新所述固件更 新目的地址为其当前地址加上所述预设长度的偏移。
8. 根据权利要求1所述的方法,其特征在于,所述步骤A3中,所述安全处理器判断出没 有未读取的数据时还包括:擦除所述固件缓存区。
9. 根据权利要求1所述的方法,其特征在于,所述步骤B6中,所述应用处理器判断出没 有未读取的数据时还包括: 步骤B7 :所述应用处理器向所述安全处理器发送读取固件完成指令,等待安全处理器 返回操作响应; 步骤B8 :所述安全处理器接收到所述读取固件完成指令后擦除所述固件缓存区,向所 述应用处理器返回操作响应; 所述应用处理器接收到所述应用处理器返回的操作响应后,应用固件更新完成。
10. 根据权利要求1所述的方法,其特征在于,所述安全终端检查固件缓存区中缓存的 固件信息之前还包括进行固件下载,其中,所述固件下载包括: 步骤C1 :上位机经由所述应用处理器发送开始下载指令给所述安全处理器; 步骤C2 :所述安全处理器接收到所述开始下载指令后擦除所述固件缓存区,保存所述 开始下载指令中的固件信息到所述固件缓存区,并经由所述应用处理器向所述上位机返回 第一操作响应; 步骤C3 :所述上位机接收到所述第一操作响应后检查所述第一操作响应,若所述第一 操作响应为操作成功则经由所述应用处理器将固件分包发送给所述安全处理器,若所述第 一操作响应包含错误信息则提示错误信息,固件下载过程终止; 步骤C4 :所述安全处理器接收到固件数据包后将所述固件数据包中的固件数据写到 所述固件缓存区,并经由所述应用处理器向所述上位机返回第二操作响应; 步骤C5 :所述上位机接收到所述第二操作响应后检查所述第二操作响应,若所述第二 操作响应为操作成功则经由所述应用处理器发送下载完成指令给所述安全处理器,若所述 第二操作响应包含错误信息则提示错误信息,固件下载过程终止; 步骤C6 :所述安全处理器接收到所述下载完成指令后判断所述下载完成指令中是否 包含固件数据包,是则将固件数据包中的固件数据写到所述固件缓存区,执行步骤C7,否则 直接执行步骤C7 ; 步骤C7 :所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,若合法则 执行步骤C8,若不合法则执行步骤CIO ; 步骤C8 :所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件缓存 区中缓存的固件数据是否合法,若合法则执行步骤C9,若不合法则执行步骤C10 ; 步骤C9 :所述安全处理器对所述固件缓存区中缓存的固件数据中的第一密文进行解 密,获取解密结果中的第二密文的哈希值,对所述固件缓存区中缓存的固件数据中的密文 进行哈希计算,得到第二密文的哈希值,比较从所述解密结果中获取到的第二密文哈希值 与哈希计算得到的第二密文的哈希值是否一致,若不一致则擦除所述固件缓存区,执行步 骤C10 ;若一致则直接执行步骤C10 ; 步骤CIO :所述安全处理器经由所述应用处理器向所述上位机返回第三操作响应; 步骤C11 :所述上位机接收到所述第三操作响应后检查所述第三操作响应,若所述第 三操作响应为操作成功则固件下载成功,若所述第三操作响应包含错误信息,则提示错误 信息,固件下载失败。
11.根据权利要求1所述的方法,其特征在于,所述安全终端检查固件缓存区中缓存的 固件信息之前还包括固件下载,其中,所述固件下载包括: 步骤D1 :所述应用处理器向服务器发送请求固件更新指令,等待所述服务器下发开始 下载指令; 步骤D2 :所述服务器接收到所述请求固件更新指令后根据所述请求固件更新指令中 的固件类型信息经由所述应用处理器发送相应的开始下载指令给所述安全处理器; 步骤D3 :所述安全处理器接收到所述开始下载指令后擦除所述固件缓存区,保存所述 开始下载指令中的固件信息到所述固件缓存区,并经由所述应用处理器向所述服务器返回 第一操作响应; 步骤D4:所述服务器接收到所述第一操作响应后检查所述第一操作响应,若所述第一 操作响应为操作成功则经由所述应用处理器将固件分包发送给所述安全处理器,若所述第 一操作响应包含错误信息则提示错误信息,固件下载过程终止; 步骤D5:所述安全处理器接收到固件数据包后将所述固件数据包中的固件数据写到 所述固件缓存区,并经由所述应用处理器向所述服务器返回第二操作响应; 步骤D6 :所述服务器接收到所述第二操作响应后检查所述第二操作响应,若所述第二 操作响应为操作成功则经由所述应用处理器发送下载完成指令给所述安全处理器,若所述 第二操作响应包含错误信息则提示错误信息,固件下载过程终止; 步骤D7 :所述安全处理器接收到所述下载完成指令后判断所述下载完成指令中是否 包含固件数据包,是则将固件数据包中的固件数据写到所述固件缓存区,执行步骤D8,否则 直接执行步骤D8 ; 步骤D8 :所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,若合法则 执行步骤D9,若不合法则执行步骤D11 ; 步骤D9 :所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件缓存 区中缓存的固件数据是否合法,若合法则执行步骤D10,若不合法则执行步骤Dll ; 步骤D10 :所述安全处理器对所述固件缓存区中缓存的固件数据中的第一密文进行解 密,获取解密结果中的第二密文的哈希值,对所述固件缓存区中缓存的固件数据中的第二 密文进行哈希计算,得到第二密文的哈希值,比较从所述解密结果中获取的第二密文的哈 希值与哈希计算得到的第二密文的哈希值是否一致,若不一致则擦除所述固件缓存区,执 行步骤D11 ;若一致则直接执行步骤D11 ; 步骤D11 :所述安全处理器经由所述应用处理器向所述服务器返回第三操作响应; 步骤D12 :所述服务器接收到所述第三操作响应后检查所述第三操作响应,若所述第 三操作响应为操作成功则固件下载成功,若所述第三操作响应包含错误信息,则提示错误 信息,固件下载失败。
12. 根据权利要求10或11所述的方法,其特征在于,所述固件信息中包括固定数据; 所述安全处理器判断所述固件缓存区中缓存的固件信息是否合法,具体包括:所述安 全处理器判断所述固件缓存区中缓存的固件信息中的固定数据是否为预设数据,是则所述 固件缓存区中缓存的固件信息合法,否则所述固件缓存区中缓存的固件信息不合法。
13. 根据权利要求10或11所述的方法,其特征在于,所述固件信息中包括固件数据长 度; 所述安全处理器根据所述固件缓存区中缓存的固件信息判断所述固件缓存区中缓存 的固件数据是否合法,具体包括:所述安全处理器判断所述固件缓存区中缓存的固件信息 中的固件数据长度与所述固件缓存区中缓存的固件数据的长度是否一致,是则所述固件缓 存区中缓存的固件数据合法,否则所述固件缓存区中缓存的固件数据不合法。
14. 根据权利要求11所述的方法,其特征在于,所述安全处理器擦除安全固件存储区 之后还包括:复制所述固件缓存区中缓存的固件信息到所述安全固件存储区; 所述应用处理器擦除应用固件存储区之后还包括:复制所述固件缓存区中缓存的固件 信息到所述应用固件存储区。
15. 根据权利要求14所述的方法,其特征在于,所述步骤D1之前还包括: 步骤E1 :所述应用处理器发送读取固件版本信息指令给所述安全处理器,等待所述安 全处理器返回固件版本信息; 步骤E2 :所述安全处理器接收到所述读取固件版本信息指令后从所述安全固件存储 区中存储的安全固件信息中获取安全固件版本信息,从所述应用固件存储区中存储的应用 固件信息中获取应用固件版本信息,并将所述安全固件版本信息和所述应用固件版本信息 返回给所述应用处理器; 步骤E3 :所述应用处理器接收到所述安全固件版本信息和所述应用固件版本信息后 向所述服务器发送读取最新固件版本信息指令,等待所述服务器返回最新固件版本信息; 步骤E4 :所述服务器接收到所述读取最新固件版本信息指令后发送最新安全固件版 本信息和最新应用固件版本信息给所述应用处理器; 步骤E5 :所述应用处理器将服务器发送的最新安全固件版本信息和最新应用固件版 本信息后分别与所述安全处理器返回的安全固件版本信息和应用固件版本信息进行比较, 判断是否要需要更新固件,是则执行步骤D1,否则固件下载终止。
16. 根据权利要求11所述的方法,其特征在于,所述服务器根据所述请求固件更新指 令中的固件类型信息经由所述应用处理器发送相应的开始下载指令给所述安全处理器,具 体包括: 当所述固件类型信息为安全固件时,所述服务器经由所述应用处理器发送包含安全固 件更新标志以及安全固件版本信息的固件信息的开始下载指令给所述安全处理器; 当所述固件类型信息为应用固件时,所述服务器经由所述应用处理器发送包含应用固 件更新标志以及应用固件版本信息的固件信息的开始下载指令给所述安全处理器。
【文档编号】G06F9/445GK104090790SQ201410305939
【公开日】2014年10月8日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1