一种证书导入方法及终端转让专利

申请号 : CN201880000201.8

文献号 : CN108496323B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王明伟徐永标

申请人 : 福建联迪商用设备有限公司

摘要 :

本发明涉及信息安全领域,尤其涉及一种证书导入方法及终端。本发明通过编译预设的根证书至可执行文件;当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。实现在不增加硬件成本的前提下提高证书的有效性。

权利要求 :

1.一种证书导入方法,其特征在于,包括:S1、编译预设的根证书至可执行文件;

S2、当所述可执行文件接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;

S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;

S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。

2.根据权利要求1所述的证书导入方法,其特征在于,所述S2之前,还包括:获取身份信息;

当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。

3.根据权利要求1所述的证书导入方法,其特征在于,所述S4之后,还包括:获取预设的验证密钥;

根据所述一证书和所述证书链,得到待验证数据;

根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;

存储所述第一MAC值至所述数据库。

4.根据权利要求3所述的证书导入方法,其特征在于,还包括:当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;

根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;

当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。

5.根据权利要求3所述的证书导入方法,其特征在于,还包括:采用X9.19算法进行所述MAC运算。

6.根据权利要求3所述的证书导入方法,其特征在于,所述待验证数据包括写入所述一证书的时间、所述一证书和所述证书链。

7.根据权利要求3所述的证书导入方法,其特征在于,所述S2之前,还包括:注入所述验证密钥至硬件安全模块。

8.根据权利要求1所述的证书导入方法,其特征在于,还包括:设置所述根证书的数据类型为常量。

9.一种证书导入终端,其特征在于,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:S1、编译预设的根证书至可执行文件;

S2、当所述可执行文件接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;

S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;

S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。

10.根据权利要求9所述的证书导入终端,其特征在于,所述S2之前,还包括:获取身份信息;

当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。

11.根据权利要求9所述的证书导入终端,其特征在于,所述S4之后,还包括:获取预设的验证密钥;

根据所述一证书和所述证书链,得到待验证数据;

根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;

存储所述第一MAC值至所述数据库。

12.根据权利要求11所述的证书导入终端,其特征在于,还包括:当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;

根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;

当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。

13.根据权利要求11所述的证书导入终端,其特征在于,还包括:采用X9.19算法进行所述MAC运算。

14.根据权利要求11所述的证书导入终端,其特征在于,所述待验证数据包括写入所述一证书的时间、所述一证书和所述证书链。

15.根据权利要求11所述的证书导入终端,其特征在于,所述S2之前,还包括:注入所述验证密钥至硬件安全模块。

16.根据权利要求9所述的证书导入终端,其特征在于,还包括:设置所述根证书的数据类型为常量。

说明书 :

一种证书导入方法及终端

技术领域

[0001] 本发明涉及信息安全领域,尤其涉及一种证书导入方法及终端。

背景技术

[0002] 随着数字证书技术的广泛使用,越来越多的系统平台和交易终端采用X.509的证书体系来完成安全认证或者敏感数据下载的交易。因为X.509证书自带真实性和完整性验证,因此其应用非常广泛,在电子支付领域,支付终端证书可以作为终端的身份凭证,实现与交互后台的身份认证,此外,支付终端与收单后台的密钥下载业务前置可使用证书来进行终端主密钥的下载。
[0003] X.509证书,特别是根证书和证书链,是交易双方进行相互认证的信任基础。虽然证书本身带有完整性验证,但是系统或终端如果不进行合理存储和保管,根证书或证书链被替换,或者被攻击者插入恶意的根证书及证书链,由证书建立的信任大厦便岌岌可危了。尤其是在一些敏感的应用场景中,比如远程下载金融密钥的密钥管理系统中,如果系统存在该漏洞,极易造成金融机构密钥泄露,由此带来严重的安全事故。采用X.509证书认证体系进行身份认证,密钥管理系统中的X.509证书是重要的数据,其是保证认证体系可靠性的关键,任何无意的修改或是恶意的攻击,都可能导致整个远程密钥分发体系陷于风险之中,威胁到分发密钥的安全性。
[0004] 当前常见的做法,如下:
[0005] 方式1:证书直接以文本形式存储在数据库或者文件系统中,比如使用STUNNEL代理建立安全通信链路时,证书文件配置的文本文件中,可随意修改,增加或删除证书;如果被攻击者访问到了存储证书的数据库或文件,那么攻击者极易添加、删除、修改系统中的证书和证书链。
[0006] 方式2:使用专门的物理设备存储证书,比如银行系统中用于验证客户端身份的U盾。该方式并不适合系统端证书存储,且基于硬件设备的存储方式也会增加额外的成本。

发明内容

[0007] 本发明所要解决的技术问题是:如何在不增加硬件成本的前提下提高证书的有效性。
[0008] 为了解决上述技术问题,本发明采用的技术方案为:
[0009] 本发明提供一种证书导入方法,包括:
[0010] S1、编译预设的根证书至可执行文件;
[0011] S2、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;
[0012] S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;
[0013] S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0014] 本发明还提供一种证书导入终端,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:
[0015] S1、编译预设的根证书至可执行文件;
[0016] S2、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;
[0017] S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;
[0018] S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0019] 本发明的有益效果在于:本发明通过将用于验证待导入的证书有效性的根证书编译至可执行文件中,使得在编译时即将根证书载入到可执行文件,因此在可执行文件运行过程中,没有任何方法可以替换、修改或增加根证书的信息。在接收到一证书的导入请求时,需先使用根证书对其进行数字签名验证,只有有效的证书才可被成功导入到数据库中,不法分子无法对数据库中存储的根证书进行修改操作,从而无法成功地导入恶意证书至数据库。实现在不增加硬件成本的前提下,有效地提高了数据库中存储的证书的有效性。

附图说明

[0020] 图1为本发明提供的一种证书导入方法的具体实施方式的流程框图;
[0021] 图2为本发明提供的一种证书导入终端的具体实施方式的结构框图;
[0022] 标号说明:
[0023] 1、处理器;   2、存储器。

具体实施方式

[0024] 本发明最关键的技术构思在于:本发明通过将用于验证待导入的证书有效性的根证书编译至可执行文件中,使得在可执行文件运行过程中,没有任何方法可以替换、修改或增加根证书的信息,从而实现在不增加硬件成本的前提下有效地提高了数据库中存储的证书的有效性。
[0025] 请参照图1以及图2,
[0026] 如图1所示,本发明提供一种证书导入方法,包括:
[0027] S1、编译预设的根证书至可执行文件;
[0028] S2、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;
[0029] S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;
[0030] S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0031] 进一步地,还包括:
[0032] 获取身份信息;
[0033] 当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。
[0034] 由上述描述可知,只有通过合法途径编译链接生成的可执行程序才可以修改、替换、增加证书和证书链信息,且只有通过身份验证的合法操作员才可执行修改证书信息的操作,有效提高了数据库中存储的证书的有效性。
[0035] 进一步地,还包括:
[0036] 获取预设的验证密钥;
[0037] 根据所述一证书和所述证书链,得到待验证数据;
[0038] 根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;
[0039] 存储所述第一MAC值至所述数据库。
[0040] 进一步地,还包括:
[0041] 当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;
[0042] 根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;
[0043] 当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。
[0044] 进一步地,还包括:
[0045] 采用X9.19算法进行所述MAC运算。
[0046] 进一步地,所述待验证数据包括写入所述一证书的时间、所述一证书和所述证书链。
[0047] 进一步地,还包括:
[0048] 注入所述验证密钥至硬件安全模块。
[0049] 由上述描述可知,每次使用数据库中存储的证书进行密钥分发前,都强制对数据库中的证书信息进行MAC校验,因此,任何非法的对证书的修改都可以被检测到,提高密钥分发的安全性。
[0050] 进一步地,还包括:
[0051] 设置所述根证书的数据类型为常量。
[0052] 由上述描述可知,本发明将根证书设计成可执行文件的常量,在可执行文件编译时,就已经被载入到系统应用中,使得在可执行程序运行过程中不法分子无法篡改根证书的信息,提高了对待导入的证书有效性验证的可靠性,从而提高了数据库中存储的证书的有效性。
[0053] 如图2所示,本发明还提供一种证书导入终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:
[0054] S1、编译预设的根证书至可执行文件;
[0055] S2、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥;
[0056] S3、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;
[0057] S4、当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0058] 进一步地,还包括:
[0059] 获取身份信息;
[0060] 当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。
[0061] 进一步地,还包括:
[0062] 获取预设的验证密钥;
[0063] 根据所述一证书和所述证书链,得到待验证数据;
[0064] 根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;
[0065] 存储所述第一MAC值至所述数据库。
[0066] 进一步地,还包括:
[0067] 当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;
[0068] 根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;
[0069] 当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。
[0070] 进一步地,还包括:
[0071] 采用X9.19算法进行所述MAC运算。
[0072] 进一步地,所述待验证数据包括写入所述一证书的时间、所述一证书和所述证书链。
[0073] 进一步地,所述S2之前,还包括:
[0074] 注入所述验证密钥至硬件安全模块。
[0075] 进一步地,还包括:
[0076] 设置所述根证书的数据类型为常量。
[0077] 本发明的实施例一为:
[0078] 本实施例提供一种证书导入方法,包括:
[0079] S1、编译预设的根证书至可执行文件。
[0080] 可选地,设置所述根证书的数据类型为常量。
[0081] 其中,根证书为受信任的CA证书。CA(Certification Authority)即认证中心,它是采用PKI(Public Key Infrastructure)公开密钥基础架构技术,专门提供网络身份认证服务,负责签发和管理数字证书。
[0082] 因为本实施例涉及到公钥证书的验证,因此需要将受信任的CA证书中的公钥载入到系统中。为了提高安全性,在本实施例中将CA证书的公钥设计成应用程序的常量,在应用程序编译时,就已经被载入到可执行文件中。
[0083] S2、注入预设的验证密钥至硬件安全模块。
[0084] 其中,验证密钥是计算证书数据MAC值的密钥,是存储于数据库中的证书数据安全性和完整性保障的关键要素,在本实施例中,要求在系统正式投入使用前,将验证密钥注入到HSM(High Security Machine,高安全设备,在该系统中为硬件加密机)中,并将验证密钥配置到系统参数中。
[0085] S3、获取身份信息;当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。
[0086] 其中,只有授权的操作员可使用该可执行文件可对数据库中的证书进行增删改操作。
[0087] S4、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥。
[0088] S5、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0089] 其中,通过有效的方式导入X.509证书和证书链,生成公钥证书编号等相关信息;使用编译进可执行文件中的信任根CA证书公钥验证导入的X.509证书的数字签名,并分析证书主体信息,确定公钥证书的有效性;将通过验证的X.509证书写入到数据库中,同时写入的还有公钥证书编号等相关信息。
[0090] S6、获取所述验证密钥;根据所述一证书和所述证书链,得到待验证数据;所述待验证数据包括所述一证书、所述证书链、导入所述一证书、所述证书链的时间和所述身份信息;根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;存储所述第一MAC值至所述数据库。
[0091] 可选地,采用X9.19算法进行所述MAC运算。
[0092] S7、当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。
[0093] 由上述描述可知,本实施例将信任根CA证书编译到了系统应用中,只要是由合法CA签发的公钥证书,均可以通过RSA公开密码机制的验证体系,使用CA证书中的公钥验证合法性,这是确实可行的,有效的。
[0094] 本实施例中设计了公钥证书进入系统的唯一安全接口,应用编译阶段就将信任根CA证书数据编译进去,通过该接口导入的下级公钥证书必须通过信任根CA证书公钥的验证,之后使用验证密钥(验证密钥预先被注入到HSM中)对数据进行MAC运算,并写入到系统数据库中,每次从数据库获取公钥证书数据时,均强制要求对数据进行MAC校验,从而保证使用的公钥证书的合法性;此外,公钥证书的是由符合安全标准的CA中心签发的,其安全性可以得到保障。综上,公钥证书在生成、处理、存储的时候均满足安全性的要求。
[0095] 本实施例采用数据MAC值校验的方案,保证存储数据的完整性和可认证性。对通过验证的公钥证书数据、以及其相关内容使用验证公钥进行了X9.19算法的MAC运算,并作为关键的数据存储在系统数据库中,每次使用公钥证书时,使用相同的算法即可对获得的公钥证书数据进行MAC校验。本实施例的数据具有完整性和可认证性的特点。
[0096] 本发明的实施例二为:
[0097] 本实施例提供一种证书导入终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:
[0098] S1、编译预设的根证书至可执行文件。
[0099] 可选地,设置所述根证书的数据类型为常量。
[0100] S2、注入预设的验证密钥至硬件安全模块。
[0101] S3、获取身份信息;当所述身份信息通过身份验证时,激活所述可执行文件的证书写入功能;所述证书写入功能用于接收与一证书对应的写入数据库请求。
[0102] S4、当接收到与一证书对应的写入数据库请求时,所述可执行文件获取与所述根证书对应的公钥。
[0103] S5、所述可执行文件根据所述公钥验证所述一证书的数字签名,得到验证结果;所述验证结果包括验证通过和验证未通过;当所述验证结果为验证通过时,所述可执行文件写入所述一证书和与所述一证书对应的证书链至数据库。
[0104] S6、获取所述验证密钥;根据所述一证书和所述证书链,得到待验证数据;所述待验证数据包括所述一证书、所述证书链、导入所述一证书、所述证书链的时间和所述身份信息;根据所述验证密钥对所述待验证数据进行MAC运算,得到第一MAC值;存储所述第一MAC值至所述数据库。
[0105] 可选地,采用X9.19算法进行所述MAC运算。
[0106] S7、当接收到密钥分发请求时,从所述数据库中获取所述待验证数据;根据所述验证密钥对所述待验证数据进行MAC运算,得到第二MAC值;当所述第一MAC值和所述第二MAC值相同时,根据所述一证书分发密钥。
[0107] 综上所述,本发明提供的一种证书导入方法及终端,通过将用于验证待导入的证书有效性的根证书编译至可执行文件中,使得在编译时即将根证书载入到可执行文件,因此在可执行文件运行过程中,没有任何方法可以替换、修改或增加根证书的信息。在接收到一证书的导入请求时,需先使用根证书对其进行数字签名验证,只有有效的证书才可被成功导入到数据库中,不法分子无法对数据库中存储的根证书进行修改操作,从而无法成功地导入恶意证书至数据库。实现在不增加硬件成本的前提下,有效地提高了数据库中存储的证书的有效性。进一步地,只有通过合法途径编译链接生成的可执行程序才可以修改、替换、增加证书和证书链信息,且只有通过身份验证的合法操作员才可执行修改证书信息的操作,有效提高了数据库中存储的证书的有效性。进一步地,每次使用数据库中存储的证书进行密钥分发前,都强制对数据库中的证书信息进行MAC校验,因此,任何非法的对证书的修改都可以被检测到,提高密钥分发的安全性。进一步地,本发明将根证书设计成可执行文件的常量,在可执行文件编译时,就已经被载入到系统应用中,使得在可执行程序运行过程中不法分子无法篡改根证书的信息,提高了对待导入的证书有效性验证的可靠性,从而提高了数据库中存储的证书的有效性。