CN108629206B - 一种安全加密方法、加密机及终端设备 - Google Patents
一种安全加密方法、加密机及终端设备 Download PDFInfo
- Publication number
- CN108629206B CN108629206B CN201711331236.3A CN201711331236A CN108629206B CN 108629206 B CN108629206 B CN 108629206B CN 201711331236 A CN201711331236 A CN 201711331236A CN 108629206 B CN108629206 B CN 108629206B
- Authority
- CN
- China
- Prior art keywords
- encryption
- key
- security
- starting
- software
- 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.)
- Active
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/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/72—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 in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明适用于信息安全技术领域,提供了一种安全加密方法、加密机及终端设备,所述的安全加密方法应用于加密机,所述的加密机包括:安全处理器CPU,传感器,电池备份区BBL Area和触发电路;所述安全加密方法包括加密机固件安全检测方法:由传感器检测安全处理器CPU内部以及外部情况;若检测到情况异常,则发出预警信号;将所述预警信号,直接通知或通过触发电路通知电池备份区BBL Area对备份区内容进行销毁;所述安全加密方法还包括:软件安全启动方法和密钥的安全存储方法。通过本发明实现了低成本的硬件及结构设计,节省了购机开销;提供了层次化的软件模型,并提供了安全启动的控制方式,实现了全周期的密钥安全管理。
Description
技术领域
本发明属于信息安全技术领域,尤其涉及一种安全加密方法、加密机及终端设备。
背景技术
随着信息技术的不断发展,互联网的普遍,越来越多的数据需要在网络上传输,包括互动信息、电子邮件、身份信息、交易信息以及商业数据等。然而,目前对数据的进行非法监听、窃取以及篡改等非法活动不断增多,因此数据的安全性也越来越受人们的重视。
使用密码算法对数据进行加密再传输,是保证数据安全及数据完整性的有效手段,因此,很多IT厂商开发出了很多加密设备或加密软件,通过加密设备或软件,生成加密密钥,实现对明文数据进行加密以及对文件进行数字签名等。
现有的加密技术一般分为硬件形式和软件形式。软件形式一般依赖于主机***中编写的加解密算法实现加密,通过提供软件工具或网络***供用户使用,但是由于这种加密软件和加密***存在非常大的安全隐患,容易受到黑客的非法攻击,对软件***的运维管理需要构造更为复杂的软件***去保护证密钥的安全,需要建立高规格、符合相关安全认证的机房来保证存储密钥的主机安全,还需要设计有效的机制对用户进行身份认证及权限的认证等,因此通过现有的技术,企业在软件设计时无法满足更高的软件开发与运维管理要求,相应的费用成本也较高。硬件形式的加密设备形态多样,最普遍的是以独立主机作为加密机,对外仅提供网络接口通过特定的命令来提供加解密服务,或者使用U盘等外挂形式,多用于数字证书或身份认证等特定的领域,难以实现提供通用的加解密服务;而且现有的硬件设备的工作稳定性以及可靠性较差,需要外加非常多的防护设计或硬件电路以保证其工作的稳定性和可靠性。因此,在现有的硬件形式以及软件形式的加密技术中,无法满足更高的软件开发与运维管理要求以及设备工作的稳定性、安全性和可靠性的要求,并且在硬件结构和软件开发等方面的较高的要求,一般企业也无法完成加密设备的设计开发。
发明内容
有鉴于此,本发明实施例提供了一种安全加密方法、加密机及终端设备,以解决现有技术中无法满足更高的软件开发与运维管理要求以及设备工作较高的稳定性、安全性和可靠性要求的问题。
本发明实施例的第一方面提供了一种安全加密方法,应用于加密机,所述加密机的固件包括:安全处理器CPU,传感器,电池备份区BBL Area和触发电路;所述安全加密方法包括加密机固件安全检测方法:
由传感器检测安全处理器CPU内部以及外部情况;
若检测到情况异常,则发出预警信号;
将所述预警信号,直接通知或通过触发电路通知电池备份区BBL Area对备份区内容进行销毁。
所述安全加密方法还包括软件安全启动方法,包括以下步骤:
启动所述安全处理器CPU内部安全引导程序Security Boot Loader;
加载所述安全引导程序Security Boot Loader并校验启动引导Boot固件;
若校验存在异常,则启动失败;
若校验成功,则校验并启动加密机固件。
所述软件安全启动之后还包括***自检,所述***自检包括以下步骤:
***启动,加密机固件自检;
若存在异常,则***报错退出;若自检正常,则读取***加密密钥SEK;
验证***加密密钥SEK的正确性;
若所述***加密密钥SEK不正确,则***报错退出;若所述***加密密钥SEK正确,则读取待检密钥;
利用***加密密钥SEK判断所述待检测密钥与已加密存储密钥的一致性;
若不一致,则***报错退出,若一致,则显示自检结果,继续启动后续软件模块。
所述安全加密方法还包括密钥的安全存储方法,包括以下步骤:
定义所述***加密密钥SEK,并将所述***加密密钥SEK存储于所述电池备份区BBL Area;
对所有密钥使用所述***加密密钥SEK进行加密并将加密后的密钥保存在外部闪存External Flash中;
对所有密钥使用***加密密钥SEK进行读取。
本发明实施例的第二方面提供了一种加密机,包括:硬件结构和软件模组,所述软件模组基于硬件结构实现功能加载;所述硬件结构包括安全处理器CPU,传感器,触发电路;所述传感器包括内部传感器和外部触发感应器Tamper Sensors,所述内部传感器设置于所述安全处理器CPU内部,所述外部触发感应器Tamper Sensors通过所述触发电路与所述安全处理器CPU连接;所述安全处理器CPU包括电池备份区BBL Area;
所述软件模组包括:软件安全启动单元和密钥处理单元,所述软件安全启动单元用于软件层次的安全启动,所述密钥处理单元用于对密钥的加密、解密和存储。
本发明实施例的第三方面提供了一种安全加密终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述安全加密方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述安全加密方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过硬件结构与软件模组的结合实现加密机的安全加密,利用硬件传感器,配套的触发电路以及安全处理器CPU本身的特性,很好的保证了加密机的物理安全性;基于物理安全性,利用安全处理器CPU内部的电池备份区BBL Area的特性以及传感器、触发电路的保护,保证了核心的内容的安全性,实现了加密机的较强的安全加密功能,进一步满足了机密机工作中对稳定性、安全性以及可靠性的较高的要求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的加密机固件安全检测方法的实现流程示意图;
图2是本发明实施例提供的加密机软件安全启动方法的实现流程示意图;
图3是本发明实施例提供的加密机***自检方法的实现流程示意图;
图4是本发明实施例提供的密钥的安全存储方法的实现流程示意图;
图5是本发明实施例提供的密钥存储的逻辑示意图;
图6是本发明实施例提供的加密机硬件结构的示意图;
图7是本发明实施例提供的加密机软件模组的示意图;
图8是本发明实施例提供的加密机软件层次结构示意图;
图9是本发明实施例提供的加密机整体工作流程的示意图;
图10是本发明实施例提供的加密机功能模块的示意图;
图11是本发明实施例提供的加密机管理员登录的流程示意图;
图12是本发明实施例提供的加密机密钥分散示意图;
图13是本发明实施例提供的安全加密的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,是本发明实施例提供的加密机固件安全检测方法的实现流程示意图,该方法应用于加密机,所述加密机为销售终端POS机,云端服务器或者后台服务器;所述的加密机包括:安全处理器CPU,传感器,电池备份区BBL Area和触发电路,如图所示加密机固件安全检测方法可以包括以下步骤:
步骤S101,由传感器检测安全处理器CPU内部以及外部情况。
在本发明实施例中,所述的传感器包括内部传感器和外部触发器TamperSensors;内部传感器位于安全处理器CPU内部,负责检测安全处理器CPU内部的温度以及频率等情况;外部触发器Tamper Sensors设置于安全处理器CPU之外的印制电路PCB板上,通过专门配套的触发电路与安全处理器CPU连接,外部传感器还包括外壳防拆传感器、键盘区域的传感器等,检测设备是否被打开,是否有钻孔、是否有化学腐蚀品等外部情况。
另外,所述的加密机可以为销售终端POS,所述的销售终端POS还配合有外壳结构上的防拆开关,所述的安全处理器CPU内部还有安全网格mesh,与同时带有的多个传感器检测安全处理器CPU内部和外部的安全情况。
步骤S102,若检测到情况异常,则发出预警信号。
在本发明实施例中,所述异常情况包括内部异常情况和外部异常情况;所述的内部异常情况包括内部传感器检测到的温度、频率等达到阈值,则认为设备出现异常;所述的外部异常情况包括外部传感器检测到的设备的前后壳被打开,设备被钻孔,被化学品腐蚀等外部的非法攻击现象,就会发出预警信号。
可选的是,所述预警信号可以通过报警器进行声控报警或经过预警灯进行闪烁报警。
步骤S103,将所述预警信号,直接通知或通过触发电路通知电池备份区BBL Area对备份区密钥数据进行销毁。
在本发明实施例中,所述的预警信号包括内部预警信号和外部预警信号;所述的内部预警信号可以直接发送至安全处理器CPU内部的电池备份区BBL Area,通知电池备份区将内部保存的密钥数据进行销毁或擦除;所述外部预警信号则会通过外部专门配套的触发电路传递预警信息,通知电池备份区BBL Area将内部保存的密钥数据或其它数据进行销毁或擦除。
需要说明的是,加密机的内部设置了纽扣电池为加密机的硬件设备持续供电,使得加密机即使在关机状态也可以检测到异常现象。
通过本发明实施例,可以实现基于硬件的安全检测,利用硬件传感器,配套的触发电路以及安全处理器CPU本身的特性,保证了加密机的物理安全性;基于硬件的保护,保证了加密机核心数据的安全性,实现了加密机较强的安全机密功能。
参见图2,是本发明实施例提供的加密机软件安全启动方法实现的流程示意图,如图所示该方法可以包括以下步骤:
步骤S201,启动所述安全处理器CPU内部安全引导程序Security Boot Loader。
在本发明实施例中,所述安全引导程序Security Boot Loader具有不可被替换性,所述安全启动装载Boot Loader的内容包括驻留在只读存储器中的代码Resident ROMCode;所述的驻留在只读存储器中的代码Resident ROM Code可以是一个身份标识ID号或者是一串数据,在安全处理器CPU出厂时固化在内部存储器ROM空间中。
需要说明的是所述身份标识ID号或一串数据一旦写入安全处理器CPU内部存储器ROM,将永远都不可以更改,防止了不法分子使用其他厂商固件的可能。
步骤S202,加载所述安全引导程序Security Boot Loader并校验启动引导Boot固件。
在本发明实施例中,所述的校验并启动引导boot固件需要同时加入数字签名技术,所述的数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,所以利用数字签名技术,借助安全启动装载Security Boot Loader的不可被替换性,进一步保证整个软件体系的安全。
另外,若数字签名校验成功,则继续下一软件层次的启动,运行引导Boot程序,在引导Boot固件启动过程中,同时还会检查各个传感器的状态,确保没有异常的情况下才能继续下一步加密机固件的安全启动。
步骤S203,若校验存在异常,则启动失败。
在本发明实施例中,所述校验存在异常包括数字签名有误或驻留在只读存储器中的代码Resident ROM Code校验数字签名结果不匹配,则校验失败,软件的启动也会停止,则***启动失败,从而保证整个软件体系的安全。
步骤S204,若校验成功,则校验并启动加密机固件。
在本发明实施例中,引导Boot程序进行加载的同时对加密机固件进行校验,包括对加密机的触发电路,传感器,内部存储器等固件,校验其是否完整以及功能是否完好等。
另外,所述校验结果表明加密机固件某一部分存在异常,比如:传感器的检测精度以及阈值的设定出现不准确的问题,触发电路的线路出现故障导致无法实现信息传输的问题等,则停止软件层次的启动,同时加密固件也会启动失败;若校验结果表示加密机固件的状态一切正常,则开始启动运行加密机固件。
通过本发明实施例,软件安全启动过程中通过软件分层,兼顾安全控制与***功能的控制,利用数字签名技术,保证了固件的合法性与完整性;在软件层启动过程中还会检查各个传感器以及其它固件的状态,确保没有异常的情况下才能实现加密机固件的启动,一步一步的保证整个软件体系的安全,从而保证了加密机的安全。
参见图3,是本发明实施例提供的加密机***自检方法的实现流程示意图,如图所示,该方法包括以下步骤:
步骤S301,***启动,加密机固件自检。
在本发明实施例中,***启动后,加密机固件被校验后,还需要加密机固件的自检,包括传感器的自检是否正常,触发电路以及其它固件是否功能正常等。通过自检,加密机能够检测到硬件或者结构上有没有安全风险,有没有遭受破坏或窃听等,能够验证***固件的合法性与完整性,是保证加密机以及密钥安全的重要手段之一。
步骤S302,若存在异常,则***报错退出;若自检正常,则读取***加密密钥SEK。
在本发明实施例中,若加密机固件进行自检后存在异常,例如:加密机硬件结构发生异常,或者内部参数超过阈值,或者被非法攻击结构不完整等,则***会提出报错信息,并同时退出。
若加密机固件自检正常,则读取***加密密钥SEK,所述***加密密钥SEK可以在加密机初始化的时候由安全处理器CPU中的真随机数生成器器生成,长度可以为24字节。因为是真随机数,因此可以保证***加密密钥SEK的不可预测,也可以保证***加密密钥SEK的唯一性;所述读取***加密密钥SEK具体为加密机固件从电池备份BBL Area区域中读取***加密密钥SEK。
步骤S303,验证所述***加密密钥SEK的正确性。
在本发明是实施例中,加密机固件从电池备份BBL Area区域中读取***加密密钥SEK,如果读取的结果全是0,则表示加密机固件被触发,电池备份BBL Area区域将内容数据进行自毁擦除,并提示***加密密钥出错;若获取的***加密密钥结果不都为0,则进一步计算密钥校验值KCV,所述密钥校验值KCV是密钥的循环冗余CRC校验值,将所述的密钥校验值KCV与电池备份区BBL Area存储的密钥校验值KCV值进行比较,两者如果一致。则表示读取的***加密密钥SEK正确。
步骤S304,若所述***加密密钥SEK不正确,则***报错退出;若所述***加密密钥SEK正确,则读取待检密钥。
在本发明实施例中,当读取的***加密密钥的结果全为0,则表示触发自毁,并提示错误信息,***加密密钥SEK不正确,则***报错退出。
当读取的***加密密钥的结果不全为0,并且***加密密钥的密钥校验值KCV与电池备份区BBL Area存储的密钥校验值一致,则表示***加密密钥SEK是正确的,则继续进行下一步,读取待检测密钥。
另外,所述的待检测密钥可以是加密机内部生成的密钥,或者是注入到加密机的密钥,也可以是加密机管理员的密码。
步骤S305,利用所述***加密密钥SEK判断所述待检测密钥与已加密存储密钥的一致性。
在本发明实施例中,利用***加密密钥SEK判断待检测密钥与已加密存储的密钥的一致性,主要是判断存储的密钥是否是经过***加密密钥SEK加密的;具体步骤为:使用***加密密钥SEK对待检测密钥进行解密得到明文,并计算明文的密钥校验值KCV,将得到的密钥校验值KCV与电池备份区BBL Area内存储的密钥校验值进行比较,根据两者的比较结果判断待检测密钥与已加密密钥的一致性。
步骤S306,若不一致,则***报错退出,若一致,则显示自检结果,继续启动后续软件模块。
在本发明实施例中,通过计算,当待检测密钥的密钥校验值KCV与电池备份区BBLArea内存储的密钥校验值相等时,则表示该待检测的密钥是与当初加密存储的数据一致,进而显示整个流程的自检结果,继续对后续的软件模块进行启动;若两者不相等则表示该待检测的密钥与当初加密存储的数据不一致,***则显示报错退出。
通过本发明实施例,通过加密机的开机自检,不仅检测到硬件或者结构上有没有存在风险或遭受破坏或窃听等,还能够验证加密机固件的合法性与完整性,保证了加密机以及密钥的安全。
参见图4,是本发明实施例提供的密钥的安全存储方法的实现流程示意图,该方法包括一下步骤:
步骤S401,定义所述***加密密钥SEK,并将所述***加密密钥SEK存储于所述电池备份区BBL Area。
在本发明实施例中,加密机定义一个***加密密钥SEK,在加密机初始化的时候由安全处理器CPU中的真随机数生成器生成,长度为24字节,明文存储在电池备份区BBL Area附带的内部静态存储器SRAM,因为内部静态存储器SRAM只能合法固件读取,且有硬件部分的安全保护电路保护,因此明文存储在电池备份区BBL Area并不会有安全隐患;因为***加密密钥是真随机数,因此可以保证***加密密钥SEK的不可预测,也可以保证***加密密钥SEK的唯一性。
需要说明的是,加密机只会初始化一次,然后生成***加密密钥,以后不再会初始化。
步骤S402,对所有密钥使用所述***加密密钥SEK进行加密并将加密后的密钥保存在外部闪存External Flash中。
在本发明实施例中,***加密密钥SEK用于加密一切需要保护的密钥,这一步骤具体还包括:
读所述***加密密钥SEK,使用所述***加密密钥SEK对明文数据进行加密得到对应的密文,将所述密文存储于外部闪存External Flash中。
在本发明实施例中,所述的所有密钥包括但不限于加密机内部生成的密钥,外部注入加密机的密钥以及加密机管理员登录的密钥。由于***加密密钥SEK也是一串数据,使用***加密密钥SEK对所有密钥进行加密得到的结果是以密文的形式,并存储在安全处理器外部CPU外部的闪存External Flash中。
其中,使用***加密密钥SEK对密钥进行加密,所采用的加密算法为三重数据加密标准TDES算法。
步骤S403,对所有密钥使用***加密密钥SEK进行读取。
在本发明实施例中,在加密机读取密钥时也要通过***加密密钥SEK才能使用密钥,在该步骤中具体还包括:
读取所述***加密密钥SEK,读取所述存储于外部闪存External Flash的密文,使用所述***加密密钥对所述密文进行解密,得到的对应的明文提供给后续的软件流程。
在本发明实施例中,在加密机读取密钥的时候,同样需要使用***加密密钥SEK,对存储在外部闪存External Flash的密文进行解密得到密文的原文,才能使用密钥,所采用的解密算法同样为三重数据加密标准TDES的算法。
另外,***加密密钥SEK同样还可以保护加密机管理员的密码。
需要说明的是,由于电池备份区BBL Area由硬件保护电路保护,加密机一旦受到攻击,内部所有数据包括***加密密钥SEK将被擦除,使用***加密密钥SEK加密过的所有密钥将不能被解密,从而保证了密钥的安全性。
如图5所示的本发明实施例提供的密钥存储的逻辑示意图,加密机初始化的时候定义的***加密密钥SEK存储在电池备份区BBL Area中,明文存储在电池备份区BBL Area附带的静态存储器SRAM中。所述的***加密密钥SEK用于对所有密钥进行三重数据加密标准TDES算法的加密,得到加密后的密钥数据,所述的得到的密钥数据包括非对称密钥数据和对称密钥数据,且分别存储在外部闪存Flash中。
通过本发明实施例,***加密密钥SEK的作用是用于加密一切需要保护的密钥,比如加密机内部生成的密钥,外部注入的密钥等。由于所有密钥都是经过***加密密钥SEK加密的,所以加密机只需要保护***加密密钥SEK的安全,就可以保证所有密钥的安全,即使有人非法获取到密钥数据,得到的都是密文形式,从密码学的角度,这些数据也都是安全的。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参见图6,是本发明实施例提供的加密机硬件结构的示意图,为了便于说明,仅示出了与本发明实施例相关的部分。本发明实施例提供的安全机密机包括硬件结构和软件模组,其中,软件模组基于硬件结构实现功能的加载。
如图6所示,所述的硬件结构包括安全处理器CPU 601,传感器,触发电路;传感器包括内部传感器和外部触发感应器Tamper Sensors 602,内部传感器设置于安全处理器CPU内部,外部触发感应器Tamper Sensors通过触发电路与安全处理器CPU连接;安全处理器CPU包括电池备份区BBL Area 603;
包括只读存储器ROM 604和内部静态存储器Internal SRAM 605,只读存储器ROM和内部静态存储器Internal SRAM设置于安全处理器CPU内部,只读存储器中存储有只读存储器中的代码Resident ROM code;
还包括液晶显示器LCD 606、键盘607、智能卡读卡器608、外部内存609、外部存储器610、电池611、串口(通用串行总线)612、打印机613、磁条卡读卡器614的一种或多种且与安全处理器CPU 601相连;
还包括以太网网络接口615和/或普通串行模块网络接口616,且以太网网络接口615和/或普通串行模块网络接口616与所述安全处理器CPU相连。
如图7所示,是本发明实施例提供的加密机软件模组7的示意图,所述的软件模组包括:
软件安全启动单元71和密钥处理单元72,软件安全启动单元用于软件层次的安全启动,密钥处理单元用于对密钥的加密、解密和存储;数据通讯单元73,所述数据通讯单元用于数据的接收与发送。
其中,软件安全启动单元通过软件层次的结构示意图8,实现了软件启动流程的安全保证,如图8所示,根据安全处理器CPU内部的只读存储器中的代码校验并启动引导Boot固件,同时还借助了签名技术,引导Boot固件在装载过程中校验并启动加密机固件,保证了加密机固件的合法性与完整性。
加密机的数据通讯单元支持的对外接口包括:推荐标准RS-232的串行数据接口和通用串行总线USB 2.0全速几口;其中,推荐标准RS-232的串行数据接口支持最高115200的波特率,并在主机端安装有与通用串行总线USB 2.0接口配套的通用串行总线USB驱动程序。
机密机通过串口或通用串行总线连接到主机上,接收主机下发的数据包对其进行加密;其中主机数据包的格式如表格1所示,起始字符、包序号、校验字均占用一个字节,起始字符表示为0x02,校验字为除起始字符外其他数据的异或值;命令字与长度均占用两个字节,命令字中还包括命令类别(表示为0x90)和子命令码分别对应一个字节,长度包中的第一个字节为数据包的长度除以256取整数,第二个字节为数据包的长度除以256取余数。加密机接收到主机的数据包后,会对应产生一个响应包,机密机所响应的数据包的格式如表格2所示,除了数据包多了返回码其他与表格1的格式相同,其中返回码是为了通知主机每条命令的结果,其定义如表格3所示。
表格1
表格2
宏 | 值 | 意义 |
PCI_OK | 0x00 | 正确 |
PCI_UNSPT_CMD | 0xff | 非法命令 |
表格3
加密机与主机进行通讯后,双方得到反回码以后,可以根据情况进行容错处理,比如:长度不对,则重新检查数据格式;密钥不存在,就提示查询密钥等。
参见图9,为本发明实施例提供的加密机整体的工作流程示意图,如图所示,加密机上电开机后,管理员登录,管理员登录成功后,开始选择对应的功能操作,可实现的功能包括:注入私钥、签名服务、***管理员功能,发散非对称算法密钥,其中***管理员功能包括:修改登录密码、切换语言和上传日志文件等。如图10所示的加密机功能模块示意图包括:***管理模块,生成密钥及分发模块,密钥注入模块,加解密服务模块。
其中,***管理模块包括:管理员管理,密码修改管理,多语言支持,日志管理,***自检。
管理员管理,本发明实施例为加密设定了两个管理员,每个管理员持有各自的密码,只有两个管理员在场输入各自的密码才能进入***管理模块,如图11所示为本发明实施例提供的加密机管理员登录的流程示意图,在加密机上电开机后,长按进入Enter键进入管理员登录步骤;***提示输入管理员密码;首先由管理员A输入密码;***验证管理员A的密码是否正确,若不正确,则***退出,若正确,则进入下一步;由管理员B输入密码,验证管理员B的密码是否正确,若错误,则***退出,若正确则进入功能菜单。
另外,管理员的密码由***加密密钥SEK加密后存储在文件***中。
密码修改管理,管理员进入***管理模块后,允许修改自己的密码,修改后的新密码同样由***加密密钥SEK加密后存储。
多语言支持,在本发明实施例中,加密机支持中文以及英文两种语言。
日志管理,包括的管理事件有管理员登录ADMIN LOGON、上传日志UPLOAD LOG、切换语言SWITCH LANG、从卡中注入私钥INJECT PVK FROM ICC、对文件进行签名SIGNATUREFILE、管理员退出ADMIN LOGOFF、修改登录密码MODIFY LOGON PWD等。以上所述事件在加密机中均会计入日志log文件中,如表格4所示;对应的日志log文件中记录的数据结构包括索引Index、数据/时间Data/Time、事件Event、结果Result、结尾End,以及对应的字节数和具体的信息格式,如表格5所示的日志log文件汇总每条记录的数据结构。
表格4
表格5
生成密钥及分发模块,用于***密钥的生成以及分发。
在本发明实施例中,加密机通过函数RSAKeyPairGen来实现非对称密钥的公私钥对的生成,其中,RSAKeyPairGen是RSA的算法实现。
非对称公私钥对生成后,为了保证生成的公私钥的有效性,加密机将对每组公私钥对进行验证,通过函数RSAKeyPairVerify来完成公私钥的校验,RSAKeyPairVerify算法的核心思想是通过使用公钥对一段明文加密得到密钥,再使用对应的私钥对密钥进行解密得到另一段明文,如果两段明文相同,则可以判定该公钥和私钥是一对RSA密钥。
在本发明实施例中,密钥分散的原理是,先通过随机数产生函数得到随机数,经过多次循环调用产生一串长度大于或等于私钥结构大小(私钥数据结构的大小为1163字节)的随机数据,取这段随机数的前1162字节(即一个私钥结构的大小)作为分散因子,再用这一个分散因子与加密机生成的公私钥对中私钥结构的数据进行异或,得到另一个1162字节(即一个私钥结构的大小)的分散结果。
最后将分散因子和分散结果分别存储到两张IC卡中,两张IC卡成为A卡和B卡,如图12所示,A卡存储密钥分量A,B卡存储密钥分量B。
在本发明实施例中,加密机所支持的算法包括:数据对称加解密算法数据对称加解密采用:数据加密标准DES算法,三重数据加密标准3DES算法,高级加密标准AES算法;数字签名、验签采用:公钥加密RSA算法(包括1024/2048/4096比特);个人身份码保护采用:数据加密标准DES算法,三重数据加密标准3DES算法,高级加密标准AES算法,国密SM1算法和国密SM4算法;消息完整性保护采用:消息认证码MAC计算和验证,数据加密标准DES算法,三重数据加密标准3DES算法,高级加密标准AES算法;消息摘要包括:哈希SHA1算法,哈希SHA-256算法消息摘要第五版MD5算法。
通过本发明实施例,低成本的硬件及结构设计,节省了购机开销;硬件上,使用触发感应器tamper sensor以及配套的硬件电路,使用安全处理器CPU的电池备份区BBL Area来存储敏感数据(密钥等);软件上,从只读存储器中的代码ROM CODE开始,一步一步的利用数字签名技术保证固件是安全的,加密机固件本身有自检功能等,通过以上硬件电路以及软件层次结构、启动流程设计、数字签名等,提供了安全稳定的物理及外观结构设计,相关的安全设计能够通过支付卡行业PCI最高安全认证的要求;提供了层次化的软件模型,并提供了一种安全的启动控制方式;还提供了密钥产生、保存、分发、注入和销毁等全生命周期的密钥安全管理体系。
另外,通过本发明实施例,***平均无故障运行时间达2400小时,能通过支付卡行业PCI 4.x标准的验证,产生一对公钥加密算法RSA 1024bits密钥最长耗时为12秒,RSA2048bits密钥最长耗时为38秒,最高可以支持115200的串口波特率以及普通串口总线USB全速率的通讯。
图13是本发明一实施例提供的安全加密的终端设备的示意图。如图13所示,该实施例的安全加密的终端设备13包括:处理器130、存储器131以及存储在所述存储器131中并可在所述处理器130上运行的计算机程序132,例如密钥非对称算法密钥的数据结构程序或公私钥密钥对的生成程序。所述处理器130执行所述计算机程序132时实现上述各个安全加密方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器130执行所述计算机程序132时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序132可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器131中,并由所述处理器130执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述安全加密的终端设备13中的执行过程。例如,所述计算机程序132可以被分割成同步模块、汇总模块、获取模块、返回模块(虚拟装置中的模块)等。
所述安全加密的终端设备13可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述安全加密的终端设备可包括,但不仅限于,处理器130、存储器131。本领域技术人员可以理解,图13仅仅是安全加密的终端设备13的示例,并不构成对安全加密的终端设备13的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述安全加密的终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器130可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器131可以是所述安全加密的终端设备13的内部存储单元,例如安全加密的终端设备13的硬盘或内存。所述存储器131也可以是所述安全加密的终端设备13的外部存储设备,例如所述安全加密的终端设备13上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器131还可以既包括所述安全加密的终端设备13的内部存储单元也包括外部存储设备。所述存储器131用于存储所述计算机程序以及所述安全加密的终端设备所需的其他程序和数据。所述存储器131还可以用于暂时地存储已经输出或者将要输出的数据。
本发明再一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行一个信息处理方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种安全加密方法,应用于加密机,其特征在于,所述加密机的固件包括:安全处理器CPU,传感器,电池备份区BBL Area和触发电路;所述安全加密方法包括加密机固件安全检测方法:
由传感器检测安全处理器CPU内部以及外部情况;
若检测到情况异常,则发出预警信号;
将所述预警信号,直接通知或通过触发电路通知电池备份区BBL Area对备份区内容进行销毁;
所述安全加密方法还包括软件安全启动方法,包括以下步骤:
启动所述安全处理器CPU内部安全引导程序Security Boot Loader,并校验驻留在只读存储器中的身份标识ID;其中,所述身份标识ID在安全处理器CPU出厂时固化在内部存储器ROM空间中,用于防止用户使用其他厂商的固件;
加载所述安全引导程序Security Boot Loader并校验启动引导Boot固件,并校验数字签名;其中,所述数字签名用于在Boot固件启动前对信息的发送者发送信息真实性的验证;
在软件安全启动的过程中,检测各个传感器的状态是否存在异常;
若校验存在异常,则启动失败;
若校验成功,则校验并启动加密机固件。
2.如权利要求1所述的安全加密方法,其特征在于,所述软件安全启动之后还包括***自检,所述***自检包括以下步骤:
***启动,加密机固件自检;
若存在异常,则***报错退出;若自检正常,则读取***加密密钥SEK;
验证所述***加密密钥SEK的正确性;
若所述***加密密钥SEK不正确,则***报错退出;若所述***加密密钥SEK正确,则读取待检密钥;
利用所述***加密密钥SEK判断所述待检测密钥与已加密存储密钥的一致性;
若不一致,则***报错退出,若一致,则显示自检结果,继续启动后续软件模块。
3.如权利要求2所述的安全加密方法,其特征在于,所述加密机还包括:外部闪存External Flash,所述安全加密方法还包括密钥的安全存储方法,包括以下步骤:
定义所述***加密密钥SEK,并将所述***加密密钥SEK存储于所述电池备份区BBLArea;
对所有密钥使用所述***加密密钥SEK进行加密并将加密后的密钥保存在外部闪存External Flash中;
对所有密钥使用***加密密钥SEK进行读取。
4.如权利要求3所述的安全加密方法,其特征在于,所述对所有密钥使用所述***加密密钥SEK进行加密并将加密后的密钥保存在外部闪存External Flash中包括:
读所述***加密密钥SEK,使用所述***加密密钥SEK对明文数据进行加密得到对应的密文,将所述密文存储于外部闪存External Flash中。
5.如权利要求4所述的安全加密方法,其特征在于,所述对所有密钥使用***加密密钥SEK进行读取包括:
读取所述***加密密钥SEK,读取所述存储于外部闪存External Flash的密文,使用所述***加密密钥对所述密文进行解密,得到的对应的明文提供给后续的软件流程。
6.一种加密机,其特征在于,包括:硬件结构和软件模组,所述软件模组基于硬件结构实现功能加载;所述硬件结构包括安全处理器CPU,传感器,触发电路;所述传感器包括内部传感器和外部触发感应器Tamper Sensors,所述内部传感器设置于所述安全处理器CPU内部,所述外部触发感应器Tamper Sensors过所述触发电路与所述安全处理器CPU连接;所述安全处理器CPU包括电池备份区BBL Area;
所述软件模组包括:软件安全启动单元和密钥处理单元,所述软件安全启动单元用于软件层次的安全启动,所述密钥处理单元用于对密钥的加密、解密和存储;
所述软件安全启动单元具体用于启动所述安全处理器CPU内部安全引导程序SecurityBoot Loader,并校验驻留在只读存储器中的身份标识ID;加载所述安全引导程序SecurityBoot Loader并校验启动引导Boot固件,并校验数字签名;在软件安全启动的过程中,检测各个传感器的状态是否存在异常;若校验存在异常,则启动失败;若校验成功,则校验并启动加密机固件;其中,所述身份标识ID在安全处理器CPU出厂时固化在内部存储器ROM空间中,用于防止用户使用其他厂商的固件;所述数字签名用于在Boot固件启动前对信息的发送者发送信息真实性的验证。
7.如权利要求6所述的加密机,其特征在于,所述硬件结构还包括:
只读存储器ROM和内部静态存储器Internal SRAM,所述只读存储器ROM和所述内部静态存储器Internal SRAM设置于所述安全处理器CPU内部,所述只读存储器中存储有只读存储器中的代码Resident ROM code;
液晶显示器LCD、键盘、智能卡读卡器、外部内存、外部存储器、电池、串口、打印机、磁条卡读卡器的一种或多种且与安全处理器CPU相连;
以太网网络接口和/或普通串行模块网络接口,且以太网网络接口和/或普通串行模块网络接口与所述安全处理器CPU相连;
所述软件模组还包括:数据通讯单元,所述数据通讯单元用于数据的接收与发送。
8.一种安全加密的终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711331236.3A CN108629206B (zh) | 2017-12-13 | 2017-12-13 | 一种安全加密方法、加密机及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711331236.3A CN108629206B (zh) | 2017-12-13 | 2017-12-13 | 一种安全加密方法、加密机及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108629206A CN108629206A (zh) | 2018-10-09 |
CN108629206B true CN108629206B (zh) | 2020-11-03 |
Family
ID=63705871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711331236.3A Active CN108629206B (zh) | 2017-12-13 | 2017-12-13 | 一种安全加密方法、加密机及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108629206B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502379B (zh) * | 2019-08-16 | 2022-11-22 | 兆讯恒达科技股份有限公司 | 一种椭圆加密算法协处理器自检的方法 |
CN110505048B (zh) * | 2019-08-16 | 2022-04-15 | 兆讯恒达科技股份有限公司 | 一种数据加密标准协处理器自检的方法 |
CN110688660B (zh) * | 2019-09-27 | 2021-08-24 | 深圳市共进电子股份有限公司 | 一种终端安全启动的方法及装置、存储介质 |
CN111008392B (zh) * | 2019-12-25 | 2022-04-05 | 中电科航空电子有限公司 | 一种定位设备的自毁控制方法及相关装置 |
CN111563280B (zh) * | 2020-05-06 | 2023-12-05 | 杭州锘崴信息科技有限公司 | 安全计算***及其工作方法 |
CN113282950B (zh) * | 2021-07-26 | 2021-12-21 | 阿里云计算有限公司 | 加密机的运维方法、装置、设备及*** |
CN114924808B (zh) * | 2022-05-12 | 2023-03-14 | 中国电子科技集团公司第二十九研究所 | 一种基于双份存储程序的sram型fpga在轨可靠加载方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059771A (zh) * | 2016-05-06 | 2016-10-26 | 上海动联信息技术股份有限公司 | 一种智能pos机密钥管理***及方法 |
CN107341085A (zh) * | 2017-06-14 | 2017-11-10 | 北京多思技术服务有限公司 | 一种控制装置 |
-
2017
- 2017-12-13 CN CN201711331236.3A patent/CN108629206B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059771A (zh) * | 2016-05-06 | 2016-10-26 | 上海动联信息技术股份有限公司 | 一种智能pos机密钥管理***及方法 |
CN107341085A (zh) * | 2017-06-14 | 2017-11-10 | 北京多思技术服务有限公司 | 一种控制装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108629206A (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108629206B (zh) | 一种安全加密方法、加密机及终端设备 | |
US10516533B2 (en) | Password triggered trusted encryption key deletion | |
US10733291B1 (en) | Bi-directional communication protocol based device security | |
CN102624699B (zh) | 一种保护数据的方法和*** | |
CN107563213B (zh) | 一种防存储设备数据提取的安全保密控制装置 | |
CN103530548B (zh) | 基于移动可信计算模块的嵌入式终端可信启动方法 | |
CN101593550B (zh) | 警用高强度加密u盘 | |
CN101739622A (zh) | 一种可信支付计算机*** | |
CN112311718A (zh) | 检测硬件的方法、装置、设备及存储介质 | |
Götzfried et al. | Mutual authentication and trust bootstrapping towards secure disk encryption | |
CN103824005A (zh) | 一种内嵌可配置ip核的防复制***及防复制方法 | |
CN112989362B (zh) | 一种基于安全型芯片监测的cpu可信启动***及方法 | |
CN107315945A (zh) | 一种电子设备的磁盘解密方法和装置 | |
Farzaliyev et al. | Developing a personal voting machine for the Estonian internet voting system | |
CN101799852A (zh) | 用于银行柜面敏感数据保护的硬件密码模块及方法 | |
CN104361298A (zh) | 信息安全保密的方法和装置 | |
Loftus et al. | Android 7 file based encryption and the attacks against it | |
Müller et al. | Stark: Tamperproof Authentication to Resist Keylogging | |
CN201845340U (zh) | 一种具有用户安全子***的安全计算机 | |
CN113360877B (zh) | 一种基于ram的安全移动存储介质的设计方法 | |
CN113676326B (zh) | Tddi芯片 | |
CN109583196B (zh) | 一种密钥生成方法 | |
CN115879087A (zh) | 一种面向电力终端的安全可信启动方法及*** | |
CN111858114B (zh) | 设备启动异常处理,设备启动控制方法、装置及*** | |
CN108228219B (zh) | 一种带外刷新bios时验证bios合法性的方法及装置 |
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 |