CN107330333A - 保证pos机固件安全的方法及装置 - Google Patents
保证pos机固件安全的方法及装置 Download PDFInfo
- Publication number
- CN107330333A CN107330333A CN201710417430.7A CN201710417430A CN107330333A CN 107330333 A CN107330333 A CN 107330333A CN 201710417430 A CN201710417430 A CN 201710417430A CN 107330333 A CN107330333 A CN 107330333A
- Authority
- CN
- China
- Prior art keywords
- firmware
- pos
- starts
- cpu
- order
- 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
Links
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/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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/206—Point-of-sale [POS] network systems comprising security or operator identification provisions, e.g. password entry
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07G—REGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
- G07G1/00—Cash registers
- G07G1/0009—Details of the software in the checkout register, electronic cash register [ECR] or point of sale terminal [POS]
Abstract
本发明适用于终端技术领域,提供了一种保证POS机固件安全的方法及装置,包括:根据CPU类型,预设与所述CPU类型相应的加载方式,根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。通过上述方法能够避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件以保证POS机满足安全需求。
Description
技术领域
本发明属于终端技术领域,尤其涉及一种保证POS机固件安全的方法、装置及终端设备。
背景技术
随着电子支付技术的发展,金融POS机作为一种具有非现金结算功能的销售终端,广泛应用在超市、连锁店、大卖场、饭店等场所。基于Android系统和智能手机硬件平台的POS机具备很好的可扩展性以及良好的用户体验,因为涉及到银行卡的交易,对POS机的安全性能有着很高的要求,要保证POS机里面的重要数据如密钥等不被窃取。
为保证POS机中POS程序(point of sale)的安全,避免不法分子对POS程序进行锁定,现有的POS机厂商在POS机中使用安全CPU,通过安全CPU引导保证固件安全。但是,安全CPU性能较弱,功能较少,成本较高,通用CPU可选范围广泛,功能一般比较强大,但通用CPU没有安全引导选项,在POS机中使用通用CPU容易导致POS机固件被篡改,无法保证POS机的安全需求。
发明内容
有鉴于此,本发明实施例提供了一种保证POS机固件安全的方法、装置及终端设备,以解决在POS机中使用通用CPU容易导致POS机固件被篡改,从而无法保证POS机的安全需求。
本发明第一方面提供了一种保证POS机固件安全的方法,所述保证POS机固件安全方法包括:
根据CPU类型,预设与所述CPU类型相应的加载方式;
根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
本发明的第二方面提供了一种保证POS机固件安全的装置,所述保证POS机固件安全的装置包括:
设置单元,用于根据CPU类型,预设与所述CPU类型相应的加载方式;
加载单元,用于根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
本发明的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明所述的保证POS机固件安全的方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明所述保证POS机固件安全的方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过根据CPU类型,预设与所述CPU类型相应的加载方式,再根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件,保证POS机满足安全需求,并且通用CPU可以是任意类型,可保证POS机系统性能不受安全CPU性能的限制,同时,可以选择性能较低的安全CPU作为通用CPU的协处理器,降低成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种保证POS机固件安全的方法的实现流程图;
图2a是本发明实施例提供的另一种保证POS机固件安全的方法的实现流程图;
图2b是本发明实施例提供的一种eMMC启动介质设置为永久写保护状态的示意图;
图3是本发明实施例提供的再一种保证POS机固件安全的方法的实现流程图;
图4a是本发明实施例提供的一种保证POS机固件安全的装置的结构框图;
图4b是本发明实施例提供的另一种保证POS机固件安全的装置的结构框图;
图5是本发明实施例提供的一种智能终端的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明实施例提供的一种保证POS机固件安全的方法的流程图,详述如下:
步骤S101,根据CPU类型,预设与所述CPU类型相应的加载方式。
具体地,一般在终端设备如安卓设备中,主要包括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的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得移动终端厂商就能专注于产品开发的其它部分。
例如,有一种类型的CPU带有熔丝配置,该类型CPU根据CPU内部的熔丝配置情况选择启动介质,CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一种类型的CPU会根据启动引脚配置情况选择启动介质,系统上电时,根据外部特定某些GPIO的状态,选择启动的介质。还有一种类型的CPU,会轮流尝试加载各种启动介质,该类型CPU根据一定顺序轮流尝试从一些介质加载First Boot。因此,在步骤S101中,根据CPU类型预先设置与所述CPU类型相应的加载方式加载第一级启动固件。
步骤S102,根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,根据步骤S101中选择的加载方式,选择eMMC启动介质加载第一级启动固件。在本发明实施例中,将第一级启动固件First Boot预先放置于eMMC中,无论选择何种型号的CPU以及无论ROM Boot如何加载First Boot,First Boot都从eMMC中加载,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件。。
进一步地,由于CPU类型不同,加载First Boot的方式不同,因此,当所述CPU的类型为根据熔丝配置状态选择启动介质进行加载时,所述步骤S102具体包括:
A1、设置熔丝位从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为提供熔丝位控制启动方式时,在本发明实施例中,使用熔丝位锁定CPU只从eMMC加载第一级启动固件,当系统上电后,运行ROM Boot,ROM Boot读取CPU内部熔丝位的状态,固定选择从eMMC加载First Boot。由于熔丝位一次性烧录后不可更改,因此,在本发明实施例中,CPU只能从eMMC加载First Boot,启动方式不可更改,从而实现固件不能被替换。
可选地,当所述CPU的类型为根据引脚配置状态选择启动介质进行加载时,所述步骤S102具体包括:
B1、设置启动引脚的电平固定的连接为指定电平,从而固定CPU从eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为根据引脚配置状态选择启动介质进行加载时,将启动引脚的电平固定的连接为指定电平,设置启动源选择GPIO的状态,当系统上电后,运行ROMBoot,ROM Boot读取启动源选择GPIO的状态,固定CPU只从嵌入式多媒体卡eMMC加载FirstBoot,启动方式不可更改,从而实现固件不能被替换。
进一步地,将启动引脚放入硬件安全区内,防止启动引脚的电平被外部攻击改变。其中,硬件安全区是POS设备的一个特殊硬件区域,位于该区域内的器件被MESH线(网络线)和PCB墙板保护,MESH线和PCB墙板内部连接至安全CPU的传感器,当有外部物理攻击时,MESH线或PCB墙板线路被破坏,导致安全CPU的传感器被触发,从而清除POS设备内存储的密钥等敏感信息。
可选地,当所述CPU的类型为根据轮流尝试方式选择启动介质进行加载时,所述步骤S102具体包括:
C1、屏蔽除嵌入式多媒体卡eMMC启动介质以外的其他启动介质,从而迫使CPU只从eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为根据轮流尝试方式选择启动介质进行加载时,在硬件上屏蔽除eMMC外的其他启动介质,迫使CPU只从eMMC启动。
例如,在尝试先从USB加载First Boot,然后从eMMC加载First Boot的CPU上,当启动时,使用模拟开关将CPU的USB连接从外部USB接口断开,防止CPU从USB加载First Boot,迫使CPU只从eMMC启动,保证固件无法被替换。在First Boot运行后,再连接模拟开关,将CPU的USB和外部的USB接口连通,此时USB接口可正常使用。
本发明实施例中,通过根据CPU类型,预设与所述CPU类型相应的加载方式,例如,根据熔丝配置状态选择启动介质进行加载,或者根据引脚配置状态选择启动介质进行加载,再或者根据轮流尝试方式选择启动介质进行加载,再根据所述加载方式,固定选择从嵌入式多媒体卡eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件,从而保障POS机能满足安全需求。并且,由于通用CPU可以是任意类型,可保证POS机系统性能不受安全CPU性能的限制。同时,可以选择性能较低的安全CPU作为通用CPU的协处理器,降低成本。
实施例二:
图2a示出了本发明第一实施例提供的一种保证POS机固件安全的方法的流程图,详述如下:
步骤S201,根据CPU类型,预设与所述CPU类型相应的加载方式。
其中,不同类型CPU的ROM Boot选择启动介质加载First Boot的方式不同。例如,有一种类型的CPU带有熔丝配置,该类型CPU根据CPU内部的熔丝配置情况选择启动介质,CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一种类型的CPU会根据启动引脚配置情况选择启动介质,系统上电时,根据外部特定某些GPIO的状态,选择启动的介质。还有一种类型的CPU,会轮流尝试加载各种启动介质,该类型CPU根据一定顺序轮流尝试从一些介质加载First Boot。因此,在步骤S101中,通过根据CPU类型预先设置与所述CPU类型相应的加载方式加载第一级启动固件。
步骤S202,根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,在本发明实施例中,无论CPU为何种类型,都固定选择从eMMC启动介质加载第一级启动固件。
本实施例中,步骤S201至步骤S202的具体步骤参见实施例一步骤S101至步骤S102,在此不再赘述。
步骤S203,将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态。
进一步地,在本发明实施例中,第一级启动固件存放在eMMC中,将嵌入式多媒体卡eMMC启动介质的相关区域设置永久写保护的方法包括:
D1、设置eMMC(EXT_CSD[171]bit 2)US_PERM_WP_EN为1;
D2、执行SET_WRITE_PROT(CMD28)命令。
具体地,在本发明实施例中,通过设置eMMC(EXT_CSD[171]bit 2)US_PERM_WP_EN为1,然后执行SET_WRITE_PROT(CMD28)命令,对eMMC进行永久写保护操作。
通过在步骤S202中强制CPU从eMMC加载First Boot,ROM Boot会根据eMMC分区表中的信息,查找First Boot分区的起始地址和大小,进而加载到内存中执行。通过eMMC永久写保护命令对主分区表、备份分区表以及First Boot所在区域执行永久写保护操作,如图2b所示,对图中灰色区域执行永久写保护操作,这些区域内的固件再也不能被替换或篡改,从而保证了固件的安全。
本发明实施例中,通过根据CPU类型,预设与所述CPU类型相应的加载方式,再根据所述加载方式,固定选择从嵌入式多媒体卡eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件,保障POS机能满足安全需求。通过将存储第一级启动固件的eMMC启动介质的相关区域设置为永久写保护状态,进一步保障POS机中固件不被替换或篡改。并且,由于通用CPU可以是任意类型,可保证POS机系统性能不受安全CPU性能的限制。同时,可以选择性能较低的安全CPU作为通用CPU的协处理器,降低成本。
实施例三:
图3示出了本发明第一实施例提供的一种保证POS机固件安全的方法的流程图,详述如下:
步骤S301,根据CPU类型,预设与所述CPU类型相应的加载方式。
步骤S302,根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
步骤S303,将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态。
本实施例中,步骤S301至步骤S303的具体步骤参见实施例二步骤S201至步骤S203,在此不再赘述。
步骤S304,在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值。
在本发明实施例中,在第一级启动固件运行后,需要对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值。
步骤S305,对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。
进一步地,在本发明实施例中,预先对第一级启动固件的下一级固件进行加密,如采用2048位RSA密钥加密算法对所述下一级固件进行加密,具体包括:
E1、计算第一级启动固件的下一级固件的哈希值;
E2、使用私钥对所述下一级固件的哈希值进行加密,得到签名信息,形成加密后的下一级固件。
需注意的是,在本发明实施例中,可采用其他加密方式对第一级启动固件的下一级固件进行加密,在此不做限定。
在本发明实施例中,使用公钥对预先加密得到的签名信息进行解密,获取解密后的哈希值,将解密后得到的哈希值与步骤S304中计算下一级固件得到的哈希值进行比对,若相同,则表示所述下一级固件未被篡改,签名验证通过。若不同,则表示所述下一级固件可能已被篡改,签名验证不通过。
本发明实施例中,通过根据CPU类型,预设与所述CPU类型相应的加载方式,再根据所述加载方式,固定选择从嵌入式多媒体卡eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件,保障POS机能满足安全需求。通过将存储第一级启动固件的eMMC启动介质的相关区域设置为永久写保护状态,进一步保障POS机中固件不被替换或篡改。前述方法确保了第一级启动固件不会被篡改,在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,通过计算下一级固件的哈希值,并对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过,即通过对所述第一级启动固件之后的下一级固件进行签名验证,以确保下一级固件不被篡改,进一步提高POS机的性能安全。并且,由于通用CPU可以是任意类型,可保证POS机系统性能不受安全CPU性能的限制。同时,可以选择性能较低的安全CPU作为通用CPU的协处理器,降低成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例四:
对应于上文实施例所述的一种保证POS机固件安全的方法,图4a示出了本发明实施例提供的一种保证POS机固件安全的装置的结构框图,该装置可应用于智能终端,该智能终端可以包括经无线接入网RAN与一个或多个核心网进行通信的移动设备,例如,销售终端POS机。为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4a,该保证POS机固件安全的装置包括:设置单元41,加载单元42,其中:
设置单元41,用于根据CPU类型,预设与所述CPU类型相应的加载方式。
具体地,一般在终端设备如安卓设备中,主要包括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的ROM Boot选择启动介质加载First Boot的方式不同。
例如,有一种类型的CPU带有熔丝配置,该类型CPU根据CPU内部的熔丝配置情况选择启动介质,CPU内部的熔丝是一次性的配置,烧录后不可被更改。有一种类型的CPU会根据启动引脚配置情况选择启动介质,系统上电时,根据外部特定某些GPIO的状态,选择启动的介质。还有一种类型的CPU,会轮流尝试加载各种启动介质,该类型CPU根据一定顺序轮流尝试从一些介质加载First Boot。
加载单元42,用于根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,在本发明实施例中,将第一级启动固件First Boot预先放置于eMMC中,无论选择何种型号的CPU以及无论ROM Boot如何加载First Boot,First Boot都从eMMC中加载。
可选地,当所述CPU的类型为根据熔丝配置状态选择启动介质进行加载时,所述加载单元42包括:
熔丝位设置模块,用于设置熔丝位从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为提供熔丝位控制启动方式时,在本发明实施例中,使用熔丝位锁定CPU只从eMMC加载第一级启动固件,当系统上电后,运行ROM Boot,ROM Boot读取CPU内部熔丝位的状态,固定选择从eMMC加载First Boot。由于熔丝位一次性烧录后不可更改,因此,在本发明实施例中,CPU只能从eMMC加载First Boot,启动方式不可更改,从而实现固件不能被替换。
可选地,当所述CPU的类型为根据引脚配置状态选择启动介质进行加载时,所述加载单元42包括:
引脚电平设置模块,用于设置启动引脚的电平固定的连接为指定电平,从而固定CPU从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为根据引脚配置状态选择启动介质进行加载时,将启动引脚的电平固定的连接为指定电平,设置启动源选择GPIO的状态,当系统上电后,运行ROMBoot,ROM Boot读取启动源选择GPIO的状态,固定CPU只从eMMC加载First Boot,启动方式不可更改,从而实现固件不能被替换。
进一步地,将启动引脚放入硬件安全区内,防止启动引脚的电平被外部攻击改变。其中,硬件安全区是POS设备的一个特殊硬件区域,位于该区域内的器件被MESH线(网格线)和PCB墙板保护,MESH线和PCB墙板内部连接至安全CPU的传感器,当有外部物理攻击时,MESH线或PCB墙板线路被破坏,导致安全CPU的传感器被触发,从而清除POS设备内存储的密钥等敏感信息。
可选地,当所述CPU的类型为根据轮流尝试方式选择启动介质进行加载时,所述加载单元42包括:
屏蔽模块,用于屏蔽除嵌入式多媒体卡eMMC启动介质以外的其他启动介质,从而迫使CPU只从eMMC启动介质加载第一级启动固件。
具体地,当CPU的类型为根据轮流尝试方式选择启动介质进行加载时,在硬件上屏蔽除eMMC外的其他启动介质,迫使CPU只从eMMC启动。
例如,在尝试先从USB加载First Boot,然后从eMMC加载First Boot的CPU上,当启动时,使用模拟开关将CPU的USB连接从外部USB接口断开,防止CPU从USB加载First Boot,迫使CPU只从eMMC启动,保证固件无法被替换。在First Boot运行后,再连接模拟开关,将CPU的USB和外部的USB接口连通,此时USB接口可正常使用。
进一步地,如图4b所示,所述保证POS机固件安全的装置还包括:
状态设置单元43,用于将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态。
具体地,在本发明实施例中,通过设置eMMC(EXT_CSD[171]bit 2)US_PERM_WP_EN为1,然后执行SET_WRITE_PROT(CMD28)命令,对eMMC进行永久写保护操作。
计算单元44,用于在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值。
比较单元45,用于对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。
进一步地,在本发明实施例中,预先对第一级启动固件的下一级固件进行加密,如采用2048位RSA密钥加密算法对所述下一级固件进行加密,加密方式在此不做限定。
本发明实施例中,通过根据CPU类型,预设与所述CPU类型相应的加载方式,再根据所述加载方式,固定选择从嵌入式多媒体卡eMMC启动介质加载第一级启动固件,避免从其他可连接外部的启动介质加载,防止通过启动介质替换或篡改POS机内的固件,保障POS机能满足安全需求。通过将存储第一级启动固件的eMMC启动介质的相关区域设置为永久写保护状态,进一步保障POS机中固件不被替换或篡改。前述方法确保了第一级启动固件不会被篡改,在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,通过计算下一级固件的哈希值,并对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过,即通过对所述第一级启动固件之后的下一级固件进行签名验证,以确保下一级固件不被篡改,进一步提高POS机的性能安全。并且,由于通用CPU可以是任意类型,可保证POS机系统性能不受安全CPU性能的限制。同时,可以选择性能较低的安全CPU作为通用CPU的协处理器,降低成本。
实施例五:
图5是本发明实施例提供的一种终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如一种保证POS机固件安全的程序。所述处理器50执行所述计算机程序52时实现上述各个保证POS机固件安全的方法实施例中的步骤,例如图1所示的步骤101至102。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4b所示单元41至45的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成设置单元、加载单元、状态设置单元、计算单元、比较单元,各单位具体功能如下:
设置单元,用于根据CPU类型,预设与所述CPU类型相应的加载方式。
加载单元,用于根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
状态设置单元,用于将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态。
计算单元,用于在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值。
比较单元,用于对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,还可以是金融POS机。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种保证POS机固件安全的方法,其特征在于,所述保证POS机固件安全的方法,包括:
根据CPU类型,预设与所述CPU类型相应的加载方式;
根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
2.如权利要求1所述的保证POS机固件安全的方法,其特征在于,当所述CPU的类型为根据熔丝配置状态选择启动介质进行加载时,所述根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件,具体包括:
设置熔丝位从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
3.如权利要求1所述的保证POS机固件安全的方法,其特征在于,当所述CPU的类型为根据引脚配置状态选择启动介质进行加载时,所述根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件,具体包括:
设置启动引脚的电平固定的连接为指定电平,从而固定CPU从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
4.如权利要求1所述的保证POS机固件安全的方法,其特征在于,当所述CPU的类型为根据轮流尝试方式选择启动介质进行加载时,所述根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件,具体包括:
屏蔽除嵌入式多媒体卡eMMC启动介质以外的其他启动介质,从而迫使CPU只从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
5.如权利要求1所述的保证POS机固件安全的方法,其特征在于,所述保证POS机固件安全的方法,还包括:
将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态。
6.如权利要求1至5任一项所述的保证POS机固件安全的方法,其特征在于,所述保证POS机固件安全的方法,还包括:
在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值;
对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过。
7.一种保证POS机固件安全的装置,其特征在于,所述保证POS机固件安全的装置包括:
设置单元,用于根据CPU类型,预设与所述CPU类型相应的加载方式;
加载单元,用于根据所述加载方式,选择嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
8.如权利要求7所述的保证POS机固件安全的装置,其特征在于,所述保证POS机固件安全的装置还包括:
状态设置单元,用于将存储第一级启动固件的嵌入式多媒体卡eMMC启动介质区域设置为永久写保护状态;
计算单元,用于在第一级启动固件运行后,对所述第一级启动固件之后的下一级固件进行签名验证,计算下一级固件的哈希值;
比较单元,用于对预先加密的下一级固件的签名信息进行解密,将解密后得到的哈希值与计算得到的哈希值进行比对,若相同,则签名验证通过;
所述加载单元还包括:
熔丝位设置模块,用于设置熔丝位从嵌入式多媒体卡eMMC启动介质加载第一级启动固件;
引脚电平设置模块,用于设置启动引脚的电平固定的连接为指定电平,从而固定CPU从嵌入式多媒体卡eMMC启动介质加载第一级启动固件;
屏蔽模块,用于屏蔽除嵌入式多媒体卡eMMC启动介质以外的其他启动介质,从而迫使CPU只从嵌入式多媒体卡eMMC启动介质加载第一级启动固件。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述保证POS机固件安全的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述保证POS机固件安全的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710417430.7A CN107330333B (zh) | 2017-06-06 | 2017-06-06 | 保证pos机固件安全的方法及装置 |
PCT/CN2017/095479 WO2018223511A1 (zh) | 2017-06-06 | 2017-08-01 | 保证 pos 机固件安全的方法及装置 |
US15/744,315 US20190012464A1 (en) | 2017-06-06 | 2017-08-01 | Method and device for ensuring security of firmware of pos machine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710417430.7A CN107330333B (zh) | 2017-06-06 | 2017-06-06 | 保证pos机固件安全的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107330333A true CN107330333A (zh) | 2017-11-07 |
CN107330333B CN107330333B (zh) | 2020-04-03 |
Family
ID=60194110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710417430.7A Active CN107330333B (zh) | 2017-06-06 | 2017-06-06 | 保证pos机固件安全的方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190012464A1 (zh) |
CN (1) | CN107330333B (zh) |
WO (1) | WO2018223511A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108597154A (zh) * | 2018-04-09 | 2018-09-28 | 厦门夏新移动通讯有限公司 | 一种物联网通讯模组安全启动系统和启动方法及pos机 |
CN108665651A (zh) * | 2018-04-09 | 2018-10-16 | 厦门夏新移动通讯有限公司 | 一种应用于支付设备的安全智能防拆卸系统及支付设备 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN110941819A (zh) * | 2019-11-14 | 2020-03-31 | 艾体威尔电子技术(北京)有限公司 | 一种Android智能设备双CPU安全保护方法 |
CN112328265A (zh) * | 2020-09-29 | 2021-02-05 | 福建联迪商用设备有限公司 | 一种eMMC验证方法及智能POS |
CN112699345A (zh) * | 2020-12-30 | 2021-04-23 | 合肥市芯海电子科技有限公司 | 固件安全运行的方法及系统、设备及存储介质 |
WO2021082116A1 (zh) * | 2019-10-31 | 2021-05-06 | 江苏华存电子科技有限公司 | 一种提高内嵌eMMC的设备开机速度的操作方法 |
CN112820046A (zh) * | 2021-01-27 | 2021-05-18 | 上海商米科技集团股份有限公司 | 一种开机方式可选的收银机及开机选择方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229404B1 (en) * | 2016-12-16 | 2019-03-12 | Worldpay, Llc | Systems and methods for network configurations of pin pads |
TWI640872B (zh) * | 2017-07-07 | 2018-11-11 | 群聯電子股份有限公司 | 記憶體控制電路單元、記憶體儲存裝置及其控制方法 |
CN109660355B (zh) * | 2018-12-15 | 2022-04-26 | 深圳市捷诚技术服务有限公司 | 防止pos终端被非法篡改的方法、装置、存储介质以及终端 |
US11184170B2 (en) * | 2019-06-28 | 2021-11-23 | Micron Technology, Inc. | Public key protection techniques |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504705A (zh) * | 2009-03-17 | 2009-08-12 | 武汉大学 | 可信平台模块及其计算机启动控制方法 |
CN101561857A (zh) * | 2009-04-28 | 2009-10-21 | 苏州国芯科技有限公司 | 多模式启动的安全嵌入式系统 |
CN102136044A (zh) * | 2010-07-14 | 2011-07-27 | 华为技术有限公司 | 安全启动方法、装置及计算机系统 |
CN104995627A (zh) * | 2013-03-15 | 2015-10-21 | 英特尔公司 | 片上系统设备中的密钥撤消 |
CN105761067A (zh) * | 2016-02-05 | 2016-07-13 | 北京微智全景信息技术有限公司 | 智能pos机安全模块及其启动方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3218009A1 (en) * | 2014-05-08 | 2015-11-12 | Block, Inc. | Establishment of a secure session between a card reader and a mobile device |
-
2017
- 2017-06-06 CN CN201710417430.7A patent/CN107330333B/zh active Active
- 2017-08-01 WO PCT/CN2017/095479 patent/WO2018223511A1/zh active Application Filing
- 2017-08-01 US US15/744,315 patent/US20190012464A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504705A (zh) * | 2009-03-17 | 2009-08-12 | 武汉大学 | 可信平台模块及其计算机启动控制方法 |
CN101561857A (zh) * | 2009-04-28 | 2009-10-21 | 苏州国芯科技有限公司 | 多模式启动的安全嵌入式系统 |
CN102136044A (zh) * | 2010-07-14 | 2011-07-27 | 华为技术有限公司 | 安全启动方法、装置及计算机系统 |
CN104995627A (zh) * | 2013-03-15 | 2015-10-21 | 英特尔公司 | 片上系统设备中的密钥撤消 |
CN105761067A (zh) * | 2016-02-05 | 2016-07-13 | 北京微智全景信息技术有限公司 | 智能pos机安全模块及其启动方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108597154A (zh) * | 2018-04-09 | 2018-09-28 | 厦门夏新移动通讯有限公司 | 一种物联网通讯模组安全启动系统和启动方法及pos机 |
CN108665651A (zh) * | 2018-04-09 | 2018-10-16 | 厦门夏新移动通讯有限公司 | 一种应用于支付设备的安全智能防拆卸系统及支付设备 |
CN108597154B (zh) * | 2018-04-09 | 2020-11-17 | 厦门夏新移动通讯有限公司 | 一种物联网通讯模组安全启动系统和启动方法及pos机 |
CN108665651B (zh) * | 2018-04-09 | 2021-02-02 | 厦门夏新移动通讯有限公司 | 一种应用于支付设备的安全智能防拆卸系统及支付设备 |
CN108875382A (zh) * | 2018-05-24 | 2018-11-23 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
CN108875382B (zh) * | 2018-05-24 | 2022-05-10 | 深圳鼎智通讯股份有限公司 | 一种智能pos终端永久性防切机的保护方法 |
WO2021082116A1 (zh) * | 2019-10-31 | 2021-05-06 | 江苏华存电子科技有限公司 | 一种提高内嵌eMMC的设备开机速度的操作方法 |
CN110941819A (zh) * | 2019-11-14 | 2020-03-31 | 艾体威尔电子技术(北京)有限公司 | 一种Android智能设备双CPU安全保护方法 |
CN110941819B (zh) * | 2019-11-14 | 2021-09-21 | 艾体威尔电子技术(北京)有限公司 | 一种Android智能设备双CPU安全保护方法 |
CN112328265A (zh) * | 2020-09-29 | 2021-02-05 | 福建联迪商用设备有限公司 | 一种eMMC验证方法及智能POS |
CN112699345A (zh) * | 2020-12-30 | 2021-04-23 | 合肥市芯海电子科技有限公司 | 固件安全运行的方法及系统、设备及存储介质 |
CN112820046A (zh) * | 2021-01-27 | 2021-05-18 | 上海商米科技集团股份有限公司 | 一种开机方式可选的收银机及开机选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107330333B (zh) | 2020-04-03 |
WO2018223511A1 (zh) | 2018-12-13 |
US20190012464A1 (en) | 2019-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330333A (zh) | 保证pos机固件安全的方法及装置 | |
CN109064334B (zh) | 一种智能合约记账方法、计算机装置及可读存储介质 | |
US11880466B2 (en) | Secure reconfiguration of hardware device operating features | |
CN105391840B (zh) | 自动创建目标应用程序 | |
CN105637800B (zh) | 密钥基础结构 | |
CN102289627B (zh) | 固件映象的多拥有者部署 | |
CN103748594B (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
TWI676141B (zh) | 一種安全載體的配置方法及裝置 | |
CN104102876A (zh) | 保障客户端运行安全的装置 | |
CN104995627A (zh) | 片上系统设备中的密钥撤消 | |
CN103366103B (zh) | 读卡器的应用程序加密保护方法 | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
CA2925733A1 (en) | Encryption and decryption processing method, apparatus, and device | |
US8307181B2 (en) | Apparatus and method for password protection of secure hidden memory | |
EP3494482B1 (en) | Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor | |
EP2876593B1 (en) | Method of generating a structure and corresponding structure | |
US9659171B2 (en) | Systems and methods for detecting tampering of an information handling system | |
CN110175478A (zh) | 一种主板上电方法、系统及可编程器件 | |
CN111160879A (zh) | 一种硬件钱包及其安全性提升方法和装置 | |
CN108171063A (zh) | 访问安全元件的方法、终端及计算机可读存储介质 | |
CN109446847A (zh) | 双系统外设资源的配置方法、终端设备及存储介质 | |
CN111628863A (zh) | 一种数据签名的方法、装置、电子设备及存储介质 | |
US10796004B1 (en) | Split boot for computing devices with secure and insecure states | |
WO2020088516A1 (zh) | 固件安全认证方法、装置和支付终端 | |
US20220237333A1 (en) | Secure coprocessor enforced system firmware feature enablement |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |