一种申请证书的方法和系统与流程

专利2022-06-29  80


本发明涉及计算机领域,更具体地,涉及移动端的金融交易安全领域。



背景技术:

在现有的移动交易中,安装有app(例如银行app)的移动终端在申请数字证书时,通常可以将证书申请请求发送到银行,银行在将给请求转发到ca认证中心。

但是,在现有技术中,证书的发送与所持有的设备没有任何关联,即证书的发放不依赖于特定终端。

这造成的缺陷在于,app中相应的安全措施可能会被劫持或者篡改,从而在其他终端上也可以进行交易。这大大降低了移动交易的安全性。



技术实现要素:

本发明的目的在于客户现有技术中证书申请安全级别较低的缺陷。

根据本发明的第一方面,提供一种申请证书的方法,包括:第一步骤,用户终端向银行子系统发送证书申请请求,所述证书申请请求包括用户终端的设备id;第二步骤,所述银行子系统将所述证书申请请求发送给所述认证中心;第三步骤,所述认证中心中的移动密钥中心根据所述证书申请请求中的设备id,确定所述用户终端的真伪,如果所述用户终端为真,则将所述证书申请请求发送给所述银行子系统,所述银行子系统将所述证书申请请求发送给所述认证中心的证书认证服务器,以从所述证书认证服务器中申请证书。

根据本发明的一个实施方式,其中,所述用户终端包括安全单元se,可信执行环境tee和富执行环境ree,其中,所述se用于存储密钥;所述tee中用于存储与所述密钥相对应的可信应用ta;以及运行在所述ree中的app,所述app的运行基于所述se中的密钥和tee中的ta;所述第一步骤包括:所述se中的applet生成密钥对,并将所述密钥对中的公钥发送给所述ta;所述ta将所述公钥和设备id发送给ree中的app;所述app生成包括所述设备id的证书申请请求,并将所述证书申请请求发送给所述银行子系统。

根据本发明的一个实施方式,其中,所述银行子系统包括应用服务器和证书注册审核系统ra,所述第二步骤包括:所述应用服务器接收所述证书申请请求;所述应用服务器将所接收到的证书申请请求转发给所述ra。

根据本发明的一个实施方式,其中,所述第三步骤包括:移动密钥中心从所述ra中接收证书申请请求,并根据所述证书申请请求中的设备id,确定所述用户终端的真伪;如果所述用户终端为真,则将所述证书申请请求发送给ra;所述ra将所述证书申请请求发送给所述认证中心的证书认证服务器ca,以从所述证书认证服务器中申请证书。

根据本发明的一个实施方式,将所申请的证书存储在所述用户终端的se中或存储在tee中。

根据本发明第二方面,提供一种申请证书的系统,包括:用户终端、与所述用户终端通信的银行子系统以及与所述银行子系统通信的认证中心,其中,用户终端配置为,向银行子系统发送证书申请请求,所述证书申请请求包括用户终端的设备id;所述银行子系统配置为,将所述证书申请请求发送给所述认证中心;所述认证中心包括移动密钥中心和证书认证服务器,所述移动密钥中心根据所述证书申请请求中的设备id,确定所述用户终端的真伪,如果所述用户终端为真,则将所述证书申请请求发送给所述银行子系统,所述银行子系统将所述证书申请请求发送给所述证书认证服务器,以从所述证书认证服务器中申请证书。

根据本发明的一个实施方式,其中,所述用户终端包括安全单元se,可信执行环境tee和富执行环境ree,其中,所述se用于存储密钥;所述tee中用于存储与所述密钥相对应的可信应用ta;以及运行在所述ree中的app,所述app的运行基于所述se中的密钥和tee中的ta;其中,所述se中的applet生成密钥对,并将所述密钥对中的公钥发送给所述ta;所述ta将所述公钥和设备id发送给ree中的app;所述app生成包括所述设备id的证书申请请求,并将所述证书申请请求发送给所述银行子系统。

根据本发明的一个实施方式,其中,所述银行子系统包括应用服务器和证书注册审核系统ra,所述应用服务器配置为接收所述证书申请请求;所述应用服务器配置为将所接收到的证书申请请求转发给所述ra。

根据本发明的一个实施方式,其中,移动密钥中心配置为从所述ra中接收证书申请请求,并根据所述证书申请请求中的设备id,确定所述用户终端的真伪;如果所述用户终端为真,则将所述证书申请请求发送给ra;所述ra配置为将所述证书申请请求发送给所述认证中心的证书认证服务器ca,以从所述证书认证服务器中申请证书。

将所申请的证书存储在所述用户终端的se中或存储在tee中。

根据本发明,能够使得证书的申请与特定的移动设备关联起来,防止由于安全措施被篡改或者劫持而导致的安全性降低或丧失。

附图说明

图1示出了根据本发明第一方面的一种申请证书的方法的流程图;

图2示出了根据本发明第二方面的证书申请系统的框图;

图3示出了根据本发明的实施方式的用户终端的结构示意图;

图4a示出了根据本发明的一个实施方式的存储密钥的se的空间的示意图;以及

图4b示出了根据本发明的一个实施方式的存储ta的tee的空间的示意图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,参考标号是指本发明中的组件、技术,以便本发明的优点和特征在适合的环境下实现能更易于被理解。下面的描述是对本发明权利要求的具体化,并且与权利要求相关的其它没有明确说明的具体实现也属于权利要求的范围。

图1示出了根据本发明第一方面的一种申请证书的方法的流程图;图2示出了根据本发明第二方面的证书申请系统的框图。

如图2所示,本发明的系统包括:用户终端210、与所述用户终端210通信的银行子系统220以及与所述银行子系统220通信的认证中心230,其中。

如图1和图2所示,本发明的方法包括:第一步骤s1,用户终端210向银行子系统220发送证书申请请求,所述证书申请请求包括用户终端的设备id;第二步骤s2,所述银行子系统220将所述证书申请请求发送给所述认证中心230。

在现有技术中,认证中心230包含证书认证服务器ca231,所述ca231用于接收证书申请请求并发放所需的证书。

ca中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。ca机构的数字签名使得攻击者不能伪造和篡改证书。

如果用户想得到一份属于自己的证书,应先生成公私密钥对,然后直接或者间接向ca提出申请(申请中包含公钥)。在ca判明申请者的身份后,并且ca将该公钥与申请者的身份信息绑在一起,便形成证书发给申请者。

如果一个用户想鉴别另一个证书的真伪,他就用颁发该证书的ca的公钥对那个证书的签名进行验证,一旦验证通过,该证书就被认为是有效的。

而在本发明中,如图1和图2所示,在第三步骤s3,所述认证中心230还包括移动密钥中心232,该移动密钥中心232根据所述证书申请请求中的设备id,确定所述用户终端210的真伪,如果所述用户终端210为真,则将所述证书申请请求发送给所述银行子系统220,所述银行子系统220将所述证书申请请求发送给所述认证中心230的证书认证服务器231,以从所述证书认证服务器231中申请证书。

从图1和图2中可以看出,与现有技术不同的是,在认证中心230处,还设置了移动密钥中心232。银行子系统需要先在移动密钥中心232处确定移动终端210的真伪,或者确定移动终端210的有效性,只有被判定为有效的移动终端210才能进一步获取证书。

设备id可以是手机芯片中内置的能够标识该设备唯一性的标识码,例如可以是一串特定于设备的秘钥,可以是一个手机的证书等等。

下面结合图3详细描述根据本发明的用户终端的构成以及操作过程。

如图3所示,本发明的用户终端可以包括安全单元se,可信执行环境tee和富执行环境ree,其中,se中具有预设的空间,用于存储密钥;所述tee中用于存储与所述密钥相对应的可信应用ta;以及运行在所述ree中的app,所述app的运行基于所述se中的密钥和tee中的ta。

图3中se中的密钥可以由设置在se中applet来生成,并存储在se中。se中存储的密钥(具体而言为私钥)无法被导出到se之外。

安全元件se,通常以芯片形式提供。为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路。在携带电话中的uicc(一种sim规格),sd等芯片也实现了同样的功能。在北美和日本,以uim/uicc作为安全元件成为了主流。但在世界上以信用卡公司主导的方案中,也出现了sd和专门的ic芯片作为se。

在携带电话为媒体的电子货币解决方案中,为保证其中保存的电子货币数据,不被恶意阅读修改,必须采用独立于os的专门环境来保存数据。专门环境可以是用软件来实现,也可以用硬件来实现。但是最直接最安全的方法是使用硬件作为解决方案。保存于se中的敏感数据不能被os直接操作,因此从理论上无法对其进行攻击。

se普遍采用javacard技术,其中javacard防火墙是运行时环境jcre的强制保护措施,并且是和java技术的保护分开的。防火墙机制避免了最频繁的、可预见的安全隐患:导致敏感数据被泄露给其它applet开发者的设计缺陷。

所述se中的applet生成密钥对,并将所述密钥对中的公钥发送给所述ta;所述ta将所述公钥和设备id发送给ree中的app;所述app生成包括所述设备id的证书申请请求,并将所述证书申请请求发送给所述银行子系统。

该证书申请请求例如可以是pkcs#10请求。pkcs(thepublic-keycryptographystandards)是由美国rsa数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。

在本发明中,在请求(报文)中增加设备id(或者设备证书、设备秘钥),额外的使用特定于终端设备本身的私钥,对整个报文进行加密,然后发送给移动秘钥中心,该移动秘钥中心可以根据该证书申请请求所携带的设备id来确定设备的真伪。

与现有技术中将密钥植入在软件中不同,本发明将密钥植入到终端的安全单元,例如手机的芯片中,密钥无法从手机芯片中被导出,从而保证交易的安全。

保证用于rsa算法/sm2算法的非对称私有密钥或用于des算法/sm4算法的对称加密密钥在没有授权的情况下,不会被泄露出来。

为了进一步增加安全性,根据本发明的一个实施方式,还可以在se中生成和存储用户密码(pin)码,以利用pin码对在se中存储的密钥进行保护,这进一步增强了交易的安全性。

pin码可以采用基于挑战-应答的密文验证方式,即采用用户输入的pin对卡片产生的随机数进行加密,并将加密后的数据送入卡片中,与卡片内pin对相同随机数加密的结果进行比对,验证pin是否一致。

tee是与设备上的ros并行运行的独立执行环境,并且给ros提供安全服务,tee内部由可信操作系统(tos)和运行其上的应用程序,即可信应用(ta)组成。tos用来管理tee的软硬件资源,并包含负责ree和tee两种执行环境切换的监控器。

tee所能访问的软硬件资源与ros是分开的,tee提供ta的安全执行环境,同时也保护ta的资源和数据保密性、完整性和访问权限。tee中的每个ta是相互独立的,不经授权不能互相访问。

tee自身在启动过程中必须要通过安全验证并且保证与ros隔离。

tee客户api则是让运行在ros中的客户端应用(ca)访问ta服务和数据的底层通信接口。tee功能api是对客户api的封装,封装了客户端与具体安全服务的通信协议,使得客户端能够以开发者熟悉的编程模式来访问安全服务,比如加密或可信存储。

tee是与设备上的richos(通常是android等)并存的运行环境,并且给richos提供安全服务。它具有其自身的执行空间,比richos的安全级别更高,但是比起安全元件(se)的安全性要低一些。但是tee能够满足大多数应用的安全需求。从成本上看,tee提供了安全和成本的平衡。

进一步如图2所示,本发明的银行子系统220包括应用服务器221和证书注册审核系统ra222,所述第二步骤包括:所述应用服务器接收所述证书申请请求;所述应用服务器将所接收到的证书申请请求转发给所述ra。

应用服务器221主要负责各类信息的接收、转发、存储、管理以及银行与外部终端之间的通信。

证书注册审核系统(ra)是数字证书认证中心的证书发放、管理的延伸。主要负责证书申请者的信息录入、审核以及证书发放等工作,同时,对发放的证书完成相应的管理功能。ra系统是整个ca中心得以正常运营不可缺少的一部分。

本发明的银行子系统220进一步包括验签服务器223,其与应用服务器通信以对交易报文进行处理。签名验签服务器(例如由cfca提供)是一款基于pki安全体系并全面支持国际、国密算法的网络安全认证产品。该产品率先通过公安部、国密局等权威机构检测,能够对网上证券、网上保险、网上银行及电子商务和电子政务活动中的关键敏感数据进行签名验签,从而保证数据的机密性、完整性和不可否认性。同时,在服务配置管理上,管理员可以通过web方式登录管理界面,对证书及其相关参数进行配置,使其实时生效,以提高服务管理效率。产品满足安全领域高可用、高性能等要求,应用场景广泛,是当今互联网时代身份认证的安全守护神。

根据本发明的一个实施方式,第三步骤s3包括,移动密钥中心从所述ra中接收证书申请请求,并根据所述证书申请请求中的设备id,确定所述用户终端的真伪;如果所述用户终端为真,则将所述证书申请请求发送给ra;所述ra将所述证书申请请求发送给所述认证中心的证书认证服务器ca,以从所述证书认证服务器中申请证书。

移动秘钥中心需要手机终端厂商配合,他们把每个设备的证书通过线上或者线下手段同步到移动秘钥中心。这样秘钥中心使用每个设备的证书验证上述步骤发送过来的证书申请请求(报文),即可以验证设备的真伪。

用户终端所获得的数字证书,可以存储在所述用户终端的se中,也可以存储在tee中,这取决于所需安全级别的高低。

对于终端中证书的存储空间,可以通过如下方式来实现。

对于新终端,可以由所述新终端的厂家在制造所述新终端时,在所述新终端的se中预先设置用于存储密钥和/或证书的空间;或者对于现存终端,通过应用程序在所述现存终端的se中设置上述空间。

类似地,对于新的终端,可以由所述新终端的厂家在制造所述新终端时,在所述新终端的tee中预先设置用于存储证书的空间;或者,对于现存终端,通过应用程序在所述现存终端的tee中设置上述空间。

图4a示出了根据本发明的一个实施方式的存储密钥的se的空间的示意图;图4b示出了根据本发明的一个实施方式的存储ta的tee的空间的示意图。

如图4a所示,在se中设置了多个空间或者表格,每个空间可以存储一组数据。例如,表格的第一列存储了keyid_1,pin_1和pivk_1,其中keyid_1表示第一个app的数字证书的id,pivk_1表示app所对应的数字证书的私钥,pin_1表示针对该私钥的pin码。相应地,keyid_2表示第二个应用app的数字证书的id等。

如图4b所示,在tee中设置了多个空间或者表格,每个空间也可以存存储一组数据。例如,表格的第一列存储了keyid_1和appid_1,其中keyid_1表示se中证书的id,appid_1表示该id所对应的应用app(例如工商银行的手机app)的id,以此类推。

需要理解的是,图4a和图4b中仅仅示出了本发明的一个示例,但并不对本发明的存储格式形成任何限制。

与现有技术相比,本发明所提供的方法以及系统会对设备的真实性和合法性进行验证,防止了非法终端或者未注册终端进行的非法访问,显著地需要增强网络交易的安全性。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。


技术特征:

1.一种申请证书的方法,包括:

第一步骤,用户终端向银行子系统发送证书申请请求,所述证书申请请求包括用户终端的设备id;

第二步骤,所述银行子系统将所述证书申请请求发送给所述认证中心;

第三步骤,所述认证中心中的移动密钥中心根据所述证书申请请求中的设备id,确定所述用户终端的真伪,如果所述用户终端为真,则将所述证书申请请求发送给所述银行子系统,所述银行子系统将所述证书申请请求发送给所述认证中心的证书认证服务器,以从所述证书认证服务器中申请证书。

2.根据权利要求1所述的方法,其中,所述用户终端包括安全单元se,可信执行环境tee和富执行环境ree,其中,所述se用于存储密钥;所述tee中用于存储与所述密钥相对应的可信应用ta;以及运行在所述ree中的app,所述app的运行基于所述se中的密钥和tee中的ta;所述第一步骤包括:

所述se中的applet生成密钥对,并将所述密钥对中的公钥发送给所述ta;

所述ta将所述公钥和设备id发送给ree中的app;

所述app生成包括所述设备id的证书申请请求,并将所述证书申请请求发送给所述银行子系统。

3.根据权利要求1所述的方法,其中,所述银行子系统包括应用服务器和证书注册审核系统ra,所述第二步骤包括:

所述应用服务器接收所述证书申请请求;

所述应用服务器将所接收到的证书申请请求转发给所述ra。

4.根据权利要求3所述的方法,其中,所述第三步骤包括:

移动密钥中心从所述ra中接收证书申请请求,并根据所述证书申请请求中的设备id,确定所述用户终端的真伪;如果所述用户终端为真,则将所述证书申请请求发送给ra;

所述ra将所述证书申请请求发送给所述认证中心的证书认证服务器ca,以从所述证书认证服务器中申请证书。

5.根据权利要求2所述的方法,其中,将所申请的证书存储在所述用户终端的se中或存储在tee中。

6.一种申请证书的系统,包括:用户终端、与所述用户终端通信的银行子系统以及与所述银行子系统通信的认证中心,其中

用户终端配置为,向银行子系统发送证书申请请求,所述证书申请请求包括用户终端的设备id;

所述银行子系统配置为,将所述证书申请请求发送给所述认证中心;

所述认证中心包括移动密钥中心和证书认证服务器,所述移动密钥中心根据所述证书申请请求中的设备id,确定所述用户终端的真伪,如果所述用户终端为真,则将所述证书申请请求发送给所述银行子系统,所述银行子系统将所述证书申请请求发送给所述证书认证服务器,以从所述证书认证服务器中申请证书。

7.根据权利要求6所述的系统,其中,所述用户终端包括安全单元se,可信执行环境tee和富执行环境ree,其中,所述se用于存储密钥;所述tee中用于存储与所述密钥相对应的可信应用ta;以及运行在所述ree中的app,所述app的运行基于所述se中的密钥和tee中的ta;其中,

所述se中的applet生成密钥对,并将所述密钥对中的公钥发送给所述ta;

所述ta将所述公钥和设备id发送给ree中的app;

所述app生成包括所述设备id的证书申请请求,并将所述证书申请请求发送给所述银行子系统。

8.根据权利要求6所述的系统,其中,所述银行子系统包括应用服务器和证书注册审核系统ra,

所述应用服务器配置为接收所述证书申请请求;

所述应用服务器配置为将所接收到的证书申请请求转发给所述ra。

9.根据权利要求8所述的系统,其中,

移动密钥中心配置为从所述ra中接收证书申请请求,并根据所述证书申请请求中的设备id,确定所述用户终端的真伪;如果所述用户终端为真,则将所述证书申请请求发送给ra;

所述ra配置为将所述证书申请请求发送给所述认证中心的证书认证服务器ca,以从所述证书认证服务器中申请证书。

10.根据权利要求7所述的系统,其中所申请的证书存储在所述用户终端的se中或tee中。

技术总结
本发明提供一种申请证书的方法,包括第一步骤,用户终端向银行子系统发送证书申请请求,所述证书申请请求包括用户终端的设备ID;第二步骤,所述银行子系统将所述证书申请请求发送给所述认证中心;第三步骤,所述认证中心中的移动密钥中心根据所述证书申请请求中的设备ID,确定所述用户终端的真伪,如果所述用户终端为真,则将所述证书申请请求发送给所述银行子系统,所述银行子系统将所述证书申请请求发送给所述认证中心的证书认证服务器,以从所述证书认证服务器中申请证书。根据本发明,能够使得证书的申请与特定的移动设备关联起来,防止由于安全措施被篡改或者劫持而导致的安全性降低或丧失。

技术研发人员:鲁欣;于海洋;张行;马春旺
受保护的技术使用者:北京中金国信科技有限公司
技术研发日:2018.11.29
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-50874.html

最新回复(0)