Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2018223511) METHOD AND DEVICE FOR ENSURING SECURITY OF FIRMWARE OF POS TERMINAL
Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters
发明名称:保证 POS机固件安全的方法及装置 技术领域

[0001] 本发明属于终端技术领域,尤其涉及一种保证 POS机固件安全的方法、装置及 终端设备。

背景技术

[0002] 随着电子支付技术的发展,金融 POS机作为一种具有非现金结算功能的销售终 端,广泛应用在超市、连锁店、大卖场、饭店等场所。基于 Android系统和智能 手机硬件平台的 POS机具备很好的可扩展性以及良好的用户体验,因为涉及到 银行卡的交易,对 POS机的安全性能有着很高的要求,要保证 POS机里面的重要 数据如密钥等不被窃取。

[0003] 为保证 POS机中 POS程序(point of sale) 的安全,避免不法分子对 POS程序进 行锁定,现有的 P0S机厂商在 P0S机中使用安全 CPU, 通过安全 CPU引导保证固 件安全。但是,安全 CPU性能较弱,功能较少,成本较高,通用 CPU可选范围广 泛,功能一般比较强大,但通用 CPU没有安全引导选项,在 P0S机中使用通用 C PU容易导致 P0S机固件被篡改,无法保证 P0S机的安全需求。

技术问题

[0004] 有鉴于此,本发明实施例提供了一种保证 P0S机固件安全的方法、装置及终端 设备,以解决在 P0S机中使用通用 CPU容易导致 P0S机固件被篡改,从而无法保 证 P0S机的安全需求。

问题的解决方案

技术解决方案

[0005] 本发明第一方面提供了一种保证 P0S机固件安全的方法,所述保证 P0S机固件 安全方法包括:

[0006] 根据 CPU类型,预设与所述 CPU类型相应的加载方式;

[0007] 根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载第一级启动固件

[0008] 本发明的第二方面提供了一种保证 POS机固件安全的装置,所述保证 P0S机固 件安全的装置包括:

[0009] 设置单元,用于根据 CPU类型,预设与所述 CPU类型相应的加载方式;

[0010] 加载单元,用于根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载 第一级启动固件。

[0011] 本发明的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述 存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机 程序吋实现如本发明所述的保证 POS机固件安全的方法的步骤。

[0012] 本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质 存储有计算机程序,所述计算机程序被处理器执行吋实现如本发明所述保证 POS 机固件安全的方法的步骤。

发明的有益效果

有益效果

[0013] 本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过根据 CPU 类型,预设与所述 CPU类型相应的加载方式,再根据所述加载方式,选择嵌入式 多媒体卡 eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介 质加载,防止通过启动介质替换或篡改 POS机内的固件,保证 POS机满足安全需 求,并且通用 CPU可以是任意类型,可保证 POS机系统性能不受安全 CPU性能的 限制,同吋,可以选择性能较低的安全 CPU作为通用 CPU的协处理器,降低成本

对附图的简要说明

附图说明

[0014] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描 述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性 的前提下,还可以根据这些附图获得其他的附图。

[0015] 图 1是本发明实施例提供的一种保证 POS机固件安全的方法的实现流程图; [0016] 图 2a是本发明实施例提供的另一种保证 POS机固件安全的方法的实现流程图; [0017] 图 2b是本发明实施例提供的一种 eMMC启动介质设置为永久写保护状态的示意 图;

[0018] 图 3是本发明实施例提供的再一种保证 POS机固件安全的方法的实现流程图; [0019] 图 4a是本发明实施例提供的一种保证 POS机固件安全的装置的结构框图;

[0020] 图 4b是本发明实施例提供的另一种保证 POS机固件安全的装置的结构框图; [0021] 图 5是本发明实施例提供的一种智能终端的示意图。

本发明的实施方式

[0022] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类 的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚 ,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省 略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨 碍本发明的描述。

[0023] 为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

[0024] 实施例一:

[0025] 图 1示出了本发明实施例提供的一种保证 POS机固件安全的方法的流程图,详 述如下:

[0026] 步骤 S101,根据 CPU类型,预设与所述 CPU类型相应的加载方式。

[0027] 具体地,一般在终端设备如安卓设备中,主要包括 ROM Boot、 First

Boot. Boot. Kernel以及 System等固件,其中, ROM Boot是固化在 CPU芯片 内部的固件,不可被更改,在 CPU启动之后,运行 ROM

Boot中的程序,加载 First Boot运行; First Boot即为第一级启动固件,用于初始 化 CPU、内存等设备,并加载 Boot等下一级固件; Boot—般为 little kernel或者 是 uboot, 负责加载 Kernel; Kernel是系统内核;

System即为 Android系统。 CPU启动吋,先从 CPU内的 ROM Boot幵始启动, ROM Boot会选择启动介质加载 First Boot, 通常可用的启动介质包括 eMMC (embedded Multi Media

Card, 嵌入式多媒体卡)、 SDcard (SD卡)、 USB等,不同类型 CPU的 ROM Boot选择启动介质加载 First Boot的方式不同。其中, eMMC主要是针对移动终端 产品的内嵌式存储器标准规格。 eMMC的一个明显优势是在封装中集成了一个控 制器,它提供标准接口并管理闪存,使得移动终端厂商就能专注于产品幵发的 其它部分。

[0028] 例如,有一种类型的 CPU带有熔丝配置,该类型 CPU根据 CPU内部的熔丝配置 情况选择启动介质, CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一 种类型的 CPU会根据启动引脚配置情况选择启动介质,系统上电吋,根据外部特 定某些 GPI0的状态,选择启动的介质。还有一种类型的 CPU, 会轮流尝试加载 各种启动介质,该类型 CPU根据一定顺序轮流尝试从一些介质加载 First Boot。 因此,在步骤 S101中,根据 CPU类型预先设置与所述 CPU类型相应的加载方式加 载第一级启动固件。

[0029] 步骤 S102,根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载第一 级启动固件。

[0030] 具体地,根据步骤 S101中选择的加载方式,选择 eMMC启动介质加载第一级启 动固件。在本发明实施例中,将第一级启动固件 First Boot预先放置于 eMMC中, 无论选择何种型号的 CPU以及无论 ROM Boot如何加载 First Boot, First

Boot都从 eMMC中加载,避免从其他可连接外部的启动介质加载,防止通过启动 介质替换或篡改 P0S机内的固件。

[0031] 进一步地,由于 CPU类型不同,加载 First Boot的方式不同,因此,当所述 CPU 的类型为根据熔丝配置状态选择启动介质进行加载吋,所述步骤 S102具体包括

[0032] Al、设置熔丝位从嵌入式多媒体卡 eMMC启动介质加载第一级启动固件。

[0033] 具体地,当 CPU的类型为提供熔丝位控制启动方式吋,在本发明实施例中,使 用熔丝位锁定 CPU只从 eMMC加载第一级启动固件,当系统上电后,运行 ROM Boot, ROM Boot读取 CPU内部熔丝位的状态,固定选择从 eMMC加载 First Boot 。由于熔丝位一次性烧录后不可更改,因此,在本发明实施例中, CPU只能从 e MMC加载 First Boot, 启动方式不可更改,从而实现固件不能被替换。

[0034] 可选地,当所述 CPU的类型为根据引脚配置状态选择启动介质进行加载吋,所

述步骤 S102具体包括:

[0035] Bl、设置启动引脚的电平固定的连接为指定电平,从而固定 CPU从 eMMC启动 介质加载第一级启动固件。

[0036] 具体地,当 CPU的类型为根据引脚配置状态选择启动介质进行加载吋,将启动 引脚的电平固定的连接为指定电平,设置启动源选择 GPIO的状态,当系统上电 后,运行 ROM Boot, ROM Boot读取启动源选择 GPIO的状态,固定 CPU只从嵌 入式多媒体卡 eMMC加载 First Boot, 启动方式不可更改,从而实现固件不能被替 换。

[0037] 进一步地,将启动引脚放入硬件安全区内,防止启动引脚的电平被外部攻击改 变。其中,硬件安全区是 POS设备的一个特殊硬件区域,位于该区域内的器件被 MESH线 (网络线)和 PCB墙板保护, MESH线和 PCB墙板内部连接至安全 CPU 的传感器,当有外部物理攻击吋, MESH线或 PCB墙板线路被破坏,导致安全 CP U的传感器被触发,从而清除 POS设备内存储的密钥等敏感信息。

[0038] 可选地,当所述 CPU的类型为根据轮流尝试方式选择启动介质进行加载吋,所 述步骤 S102具体包括:

[0039] Cl、屏蔽除嵌入式多媒体卡 eMMC启动介质以外的其他启动介质,从而迫使 C PU只从 eMMC启动介质加载第一级启动固件。

[0040] 具体地,当 CPU的类型为根据轮流尝试方式选择启动介质进行加载吋,在硬件 上屏蔽除 eMMC外的其他启动介质,迫使 CPU只从 eMMC启动。

[0041] 例如,在尝试先从 USB加载 First Boot, 然后从 eMMC加载 First Boot的 CPU上, 当启动吋,使用模拟幵关将 CPU的 USB连接从外部 USB接口断幵,防止 CPU从 U SB加载 First Boot, 迫使 CPU只从 eMMC启动,保证固件无法被替换。在 First Boot运行后,再连接模拟幵关,将 CPU的 USB和外部的 USB接口连通,此吋 USB 接口可正常使用。

[0042] 本发明实施例中,通过根据 CPU类型,预设与所述 CPU类型相应的加载方式, 例如,根据熔丝配置状态选择启动介质进行加载,或者根据引脚配置状态选择 启动介质进行加载,再或者根据轮流尝试方式选择启动介质进行加载,再根据 所述加载方式,固定选择从嵌入式多媒体卡 eMMC启动介质加载第一级启动固件

,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改 POS机 内的固件,从而保障 POS机能满足安全需求。并且,由于通用 CPU可以是任意类 型,可保证 POS机系统性能不受安全 CPU性能的限制。同吋,可以选择性能较低 的安全 CPU作为通用 CPU的协处理器,降低成本。

[0043] 实施例二:

[0044] 图 2a示出了本发明第一实施例提供的一种保证 POS机固件安全的方法的流程图 ,详述如下:

[0045] 步骤 S201 , 根据 CPU类型,预设与所述 CPU类型相应的加载方式。

[0046] 其中,不同类型 CPU的 ROM Boot选择启动介质加载 First Boot的方式不同。例 如,有一种类型的 CPU带有熔丝配置,该类型 CPU根据 CPU内部的熔丝配置情况 选择启动介质, CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一种类 型的 CPU会根据启动引脚配置情况选择启动介质,系统上电吋,根据外部特定某 些 GPI0的状态,选择启动的介质。还有一种类型的 CPU, 会轮流尝试加载各种 启动介质,该类型 CPU根据一定顺序轮流尝试从一些介质加载 First Boot。因此 ,在步骤 S101中,通过根据 CPU类型预先设置与所述 CPU类型相应的加载方式加 载第一级启动固件。

[0047] 步骤 S202,根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载第一 级启动固件。

[0048] 具体地,在本发明实施例中,无论 CPU为何种类型,都固定选择从 eMMC启动 介质加载第一级启动固件。

[0049] 本实施例中,步骤 S201至步骤 S202的具体步骤参见实施例一步骤 S101至步骤 S1

02,在此不再赘述。

[0050] 步骤 S203 , 将存储第一级启动固件的嵌入式多媒体卡 eMMC启动介质区域设置 为永久写保护状态。

[0051] 进一步地,在本发明实施例中,第一级启动固件存放在 eMMC中,将嵌入式多 媒体卡 eMMC启动介质的相关区域设置永久写保护的方法包括:

[0052] D1、设置 eMMC (EXT_CSD[171] bit 2) US_PERM_WP_EN为 1;

[0053] D2、执行 SET_WRITE_PROT(CMD28)命令。

[0054] 具体地,在本发明实施例中,通过设置 eMMC (EXT_CSD[171] bit 2)

US_PERM_WP_EN为 1,然后执行 SET_WRITE_PROT(CMD28)命令,对 eMMC 进行永久写保护操作。

[0055] 通过在步骤 S202中强制 CPU从 eMMC加载 First Boot, ROM Boot会根据 eMMC 分区表中的信息,査找 First Boot分区的起始地址和大小,进而加载到内存中执 行。通过 eMMC永久写保护命令对主分区表、备份分区表以及 First Boot所在区域 执行永久写保护操作,如图 2b所示,对图中灰色区域执行永久写保护操作,这 些区域内的固件再也不能被替换或篡改,从而保证了固件的安全。

[0056] 本发明实施例中,通过根据 CPU类型,预设与所述 CPU类型相应的加载方式, 再根据所述加载方式,固定选择从嵌入式多媒体卡 eMMC启动介质加载第一级启 动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡 改 POS机内的固件,保障 POS机能满足安全需求。通过将存储第一级启动固件的 eMMC启动介质的相关区域设置为永久写保护状态,进一步保障 POS机中固件不 被替换或篡改。并且,由于通用 CPU可以是任意类型,可保证 P0S机系统性能不 受安全 CPU性能的限制。同吋,可以选择性能较低的安全 CPU作为通用 CPU的协 处理器,降低成本。

[0057] 实施例三:

[0058] 图 3示出了本发明第一实施例提供的一种保证 POS机固件安全的方法的流程图 ,详述如下:

[0059] 步骤 S301,根据 CPU类型,预设与所述 CPU类型相应的加载方式。

[0060] 步骤 S302,根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载第一 级启动固件。

[0061] 步骤 S303,将存储第一级启动固件的嵌入式多媒体卡 eMMC启动介质区域设置 为永久写保护状态。

[0062] 本实施例中,步骤 S301至步骤 S303的具体步骤参见实施例二步骤 S201至步骤 S2

03,在此不再赘述。

[0063] 步骤 S304,在第一级启动固件运行后,对所述第一级启动固件之后的下一级固 件进行签名验证,计算下一级固件的哈希值。

[0064] 在本发明实施例中,在第一级启动固件运行后,需要对所述第一级启动固件之 后的下一级固件进行签名验证,计算下一级固件的哈希值。

[0065] 步骤 S305,对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈 希值与计算得到的哈希值进行比对,若相同,则签名验证通过。

[0066] 进一步地,在本发明实施例中,预先对第一级启动固件的下一级固件进行加密 ,如采用 2048位 RSA密钥加密算法对所述下一级固件进行加密,具体包括:

[0067] El、计算第一级启动固件的下一级固件的哈希值;

[0068] E2、使用私钥对所述下一级固件的哈希值进行加密,得到签名信息,形成加密 后的下一级固件。

[0069] 需注意的是,在本发明实施例中,可采用其他加密方式对第一级启动固件的下 一级固件进行加密,在此不做限定。

[0070] 在本发明实施例中,使用公钥对预先加密得到的签名信息进行解密,获取解密 后的哈希值,将解密后得到的哈希值与步骤 S304中计算下一级固件得到的哈希 值进行比对,若相同,则表示所述下一级固件未被篡改,签名验证通过。若不 同,则表示所述下一级固件可能已被篡改,签名验证不通过。

[0071] 本发明实施例中,通过根据 CPU类型,预设与所述 CPU类型相应的加载方式, 再根据所述加载方式,固定选择从嵌入式多媒体卡 eMMC启动介质加载第一级启 动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡 改 POS机内的固件,保障 POS机能满足安全需求。通过将存储第一级启动固件的 eMMC启动介质的相关区域设置为永久写保护状态,进一步保障 POS机中固件不 被替换或篡改。前述方法确保了第一级启动固件不会被篡改,在第一级启动固 件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,通过计算 下一级固件的哈希值,并对预先加密的下一级固件的签名信息进行解密,将解 密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过, 即通过对所述第一级启动固件之后的下一级固件进行签名验证,以确保下一级 固件不被篡改,进一步提高 POS机的性能安全。并且,由于通用 CPU可以是任意 类型,可保证 POS机系统性能不受安全 CPU性能的限制。同吋,可以选择性能较 低的安全 CPU作为通用 CPU的协处理器,降低成本。

[0072] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过 程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程 构成任何限定。

[0073] 实施例四:

[0074] 对应于上文实施例所述的一种保证 POS机固件安全的方法,图 4a示出了本发明 实施例提供的一种保证 POS机固件安全的装置的结构框图,该装置可应用于智能 终端,该智能终端可以包括经无线接入网 RAN与一个或多个核心网进行通信的 移动设备,例如,销售终端 POS机。为了便于说明,仅示出了与本发明实施例相 关的部分。

[0075] 参照图 4a,该保证 POS机固件安全的装置包括:设置单元 41,加载单元 42,其 中:

[0076] 设置单元 41,用于根据 CPU类型,预设与所述 CPU类型相应的加载方式。

[0077] 具体地,一般在终端设备如安卓设备中,主要包括 ROM Boot、 First

Boot. Boot. Kernel以及 System等固件,其中, ROM Boot是固化在 CPU芯片 内部的固件,不可被更改,在 CPU启动之后,运行 ROM

Boot中的程序,加载 First Boot运行; First Boot即为第一级启动固件,用于初始 化 CPU、内存等设备,并加载 Boot等下一级固件; Boot—般为 little kernel或者 是 uboot, 负责加载 Kernel; Kernel是系统内核;

System即为 Android系统。 CPU启动吋,先从 CPU内的 ROM Boot幵始启动, ROM Boot会选择启动介质加载 First

Boot, 通常可用的启动介质包括 eMMC、 SDcard、 USB等,不同类型 CPU的 RO M Boot选择启动介质加载 First Boot的方式不同。

[0078] 例如,有一种类型的 CPU带有熔丝配置,该类型 CPU根据 CPU内部的熔丝配置 情况选择启动介质, CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一 种类型的 CPU会根据启动引脚配置情况选择启动介质,系统上电吋,根据外部特 定某些 GPI0的状态,选择启动的介质。还有一种类型的 CPU, 会轮流尝试加载 各种启动介质,该类型 CPU根据一定顺序轮流尝试从一些介质加载 First Boot。

[0079] 加载单元 42,用于根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加

载第一级启动固件。

[0080] 具体地,在本发明实施例中,将第一级启动固件 First Boot预先放置于 eMMC中 ,无论选择何种型号的 CPU以及无论 ROM Boot如何加载 First Boot, First Boot者 从 eMMC中加载。

[0081] 可选地,当所述 CPU的类型为根据熔丝配置状态选择启动介质进行加载吋,所 述加载单元 42包括:

[0082] 熔丝位设置模块,用于设置熔丝位从嵌入式多媒体卡 eMMC启动介质加载第一 级启动固件。

[0083] 具体地,当 CPU的类型为提供熔丝位控制启动方式吋,在本发明实施例中,使 用熔丝位锁定 CPU只从 eMMC加载第一级启动固件,当系统上电后,运行 ROM Boot, ROM Boot读取 CPU内部熔丝位的状态,固定选择从 eMMC加载 First Boot 。由于熔丝位一次性烧录后不可更改,因此,在本发明实施例中, CPU只能从 e MMC加载 First Boot, 启动方式不可更改,从而实现固件不能被替换。

[0084] 可选地,当所述 CPU的类型为根据引脚配置状态选择启动介质进行加载吋,所 述加载单元 42包括:

[0085] 引脚电平设置模块,用于设置启动引脚的电平固定的连接为指定电平,从而固 定 CPU从嵌入式多媒体卡 eMMC启动介质加载第一级启动固件。

[0086] 具体地,当 CPU的类型为根据引脚配置状态选择启动介质进行加载吋,将启动 引脚的电平固定的连接为指定电平,设置启动源选择 GPI0的状态,当系统上电 后,运行 ROM Boot, ROM

Boot读取启动源选择 GPI0的状态,固定 CPU只从 eMMC加载 First Boot, 启动方 式不可更改,从而实现固件不能被替换。

[0087] 进一步地,将启动引脚放入硬件安全区内,防止启动引脚的电平被外部攻击改 变。其中,硬件安全区是 P0S设备的一个特殊硬件区域,位于该区域内的器件被 MESH线 (网格线)和 PCB墙板保护, MESH线和 PCB墙板内部连接至安全 CPU 的传感器,当有外部物理攻击吋, MESH线或 PCB墙板线路被破坏,导致安全 CP U的传感器被触发,从而清除 P0S设备内存储的密钥等敏感信息。

[0088] 可选地,当所述 CPU的类型为根据轮流尝试方式选择启动介质进行加载吋,所

述加载单元 42包括:

[0089] 屏蔽模块,用于屏蔽除嵌入式多媒体卡 eMMC启动介质以外的其他启动介质, 从而迫使 CPU只从 eMMC启动介质加载第一级启动固件。

[0090] 具体地,当 CPU的类型为根据轮流尝试方式选择启动介质进行加载吋,在硬件 上屏蔽除 eMMC外的其他启动介质,迫使 CPU只从 eMMC启动。

[0091] 例如,在尝试先从 USB加载 First Boot, 然后从 eMMC加载 First Boot的 CPU上, 当启动吋,使用模拟幵关将 CPU的 USB连接从外部 USB接口断幵,防止 CPU从 U SB加载 First Boot, 迫使 CPU只从 eMMC启动,保证固件无法被替换。在 First Boot运行后,再连接模拟幵关,将 CPU的 USB和外部的 USB接口连通,此吋 USB 接口可正常使用。

[0092] 进一步地,如图 4b所示,所述保证 P0S机固件安全的装置还包括:

[0093] 状态设置单元 43,用于将存储第一级启动固件的嵌入式多媒体卡 eMMC启动介 质区域设置为永久写保护状态。

[0094] 具体地,在本发明实施例中,通过设置 eMMC (EXT_CSD[171] bit 2)

US_PERM_WP_EN为 1,然后执行 SET_WRITE_PROT(CMD28)命令,对 eMMC 进行永久写保护操作。

[0095] 计算单元 44,用于在第一级启动固件运行后,对所述第一级启动固件之后的下 一级固件进行签名验证,计算下一级固件的哈希值。

[0096] 比较单元 45,用于对预先加密的下一级固件的签名信息进行解密,将解密后得 到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。

[0097] 进一步地,在本发明实施例中,预先对第一级启动固件的下一级固件进行加密

,如采用 2048位 RSA密钥加密算法对所述下一级固件进行加密,加密方式在此不 做限定。

[0098] 本发明实施例中,通过根据 CPU类型,预设与所述 CPU类型相应的加载方式, 再根据所述加载方式,固定选择从嵌入式多媒体卡 eMMC启动介质加载第一级启 动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡 改 P0S机内的固件,保障 P0S机能满足安全需求。通过将存储第一级启动固件的 eMMC启动介质的相关区域设置为永久写保护状态,进一步保障 P0S机中固件不

被替换或篡改。前述方法确保了第一级启动固件不会被篡改,在第一级启动固 件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,通过计算 下一级固件的哈希值,并对预先加密的下一级固件的签名信息进行解密,将解 密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过, 即通过对所述第一级启动固件之后的下一级固件进行签名验证,以确保下一级 固件不被篡改,进一步提高 POS机的性能安全。并且,由于通用 CPU可以是任意 类型,可保证 POS机系统性能不受安全 CPU性能的限制。同吋,可以选择性能较 低的安全 CPU作为通用 CPU的协处理器,降低成本。

[0099] 实施例五:

[0100] 图 5是本发明实施例提供的一种终端设备的示意图。如图 5所示,该实施例的终 端设备 5包括:处理器 50、存储器 51以及存储在所述存储器 51中并可在所述处理 器 50上运行的计算机程序 52,例如一种保证 POS机固件安全的程序。所述处理器 50执行所述计算机程序 52吋实现上述各个保证 POS机固件安全的方法实施例中的 步骤,例如图 1所示的步骤 101至 102。或者,所述处理器 50执行所述计算机程序 52吋实现上述各装置实施例中各模块 /单元的功能,例如图 4b所示单元 41至 45的 功能。

[0101] 示例性的,所述计算机程序 52可以被分割成一个或多个模块 /单元,所述一个 或者多个模块 /单元被存储在所述存储器 51中,并由所述处理器 50执行,以完成 本发明。所述一个或多个模块 /单元可以是能够完成特定功能的一系列计算机程 序指令段,该指令段用于描述所述计算机程序 52在所述终端设备 5中的执行过程 。例如,所述计算机程序 52可以被分割成设置单元、加载单元、状态设置单元 、计算单元、比较单元,各单位具体功能如下:

[0102] 设置单元,用于根据 CPU类型,预设与所述 CPU类型相应的加载方式。

[0103] 加载单元,用于根据所述加载方式,选择嵌入式多媒体卡 eMMC启动介质加载 第一级启动固件。

[0104] 状态设置单元,用于将存储第一级启动固件的嵌入式多媒体卡 eMMC启动介质 区域设置为永久写保护状态。

[0105] 计算单元,用于在第一级启动固件运行后,对所述第一级启动固件之后的下一

级固件进行签名验证,计算下一级固件的哈希值。

[0106] 比较单元,用于对预先加密的下一级固件的签名信息进行解密,将解密后得到 的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。

[0107] 所述终端设备 5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算 设备,还可以是金融 POS机。所述终端设备可包括,但不仅限于,处理器 50、存 储器 51。本领域技术人员可以理解,图 5仅仅是终端设备 5的示例,并不构成对 终端设备 5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或 者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、 总线等。

[0108] 所称处理器 50可以是中央处理单元 (Central Processing Unit, CPU) , 还可以是其 他通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路 (Application Specific Integrated Circuit, ASIC)、现成可编程门阵列

(Field-Programmable Gate Array , FPGA)或者其他可编程逻辑器件、分立门或者 晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器 也可以是任何常规的处理器等。

[0109] 所述存储器 51可以是所述终端设备 5的内部存储单元,例如终端设备 5的硬盘或 内存。所述存储器 51也可以是所述终端设备 5的外部存储设备,例如所述终端设 备 5上配备的插接式硬盘,智能存储卡(Smart Media Card,

SMC) ,安全数字(Secure Digital, SD) 卡,闪存卡(Flash Card) 等。进一步 地,所述存储器 51还可以既包括所述终端设备 5的内部存储单元也包括外部存储 设备。所述存储器 51用于存储所述计算机程序以及所述终端设备所需的其他程 序和数据。所述存储器 51还可以用于暂吋地存储已经输出或者将要输出的数据

[0110] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各 功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功 能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的 功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单 元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可

以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的 形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的 具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系 统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在 此不再赘述。

[0111] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或 记载的部分,可以参见其它实施例的相关描述。

[0112] 本领域普通技术人员可以意识到,结合本文中所公幵的实施例描述的各示例的 单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现 。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设 计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描 述的功能,但是这种实现不应认为超出本发明的范围。

[0113] 在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其 它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述 模块或单元的划分,仅仅为一种逻辑功能划分,实际实现吋可以有另外的划分 方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征 可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或 通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电 性,机械或其它的形式。

[0114] 所述作为分离部件说明的单元可以是或者也可以不是物理上分幵的,作为单元 显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可 以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元 来实现本实施例方案的目的。

[0115] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可 以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。 上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式 实现。

[0116] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 吋,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现 上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬 件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程 序在被处理器执行吋,可实现上述各个方法实施例的步骤。其中,所述计算机 程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码 形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携 带所述计算机程序代码的任何实体或装置、记录介质、 U盘、移动硬盘、磁碟、 光盘、计算机存储器、只读存储器(ROM, Read-Only Memory) 、随机存取存 储器(RAM, Random Access Memory) 、电载波信号、电信信号以及软件分发 介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区 内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法 和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述 实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进 行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各 实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。