数字证书的存储与硬件载体绑定的方法及系统的制作方法

文档序号:6523208阅读:634来源:国知局
数字证书的存储与硬件载体绑定的方法及系统的制作方法
【专利摘要】本发明提出了一种数字证书的存储与硬件载体绑定的方法,包括以下步骤:从CA获取数字证书;在硬件载体上安装数字证书时,获取硬件载体的识别码;根据识别码生成密钥;根据密钥对指定文件型数据库进行加密;将数字证书存储到由密钥加密后的文件型数据库中以完成将数字证书安装到硬件载体上。根据本发明的方法,可将数字证书与其所在的硬件载体在第一次安装时,就被有效地绑定在一起,尤其是与数字证书相关联的密钥对中的私钥,通过绑定过程,变为只能在硬件载体上使用,无法在其它硬件载体上使用,让数字证书具有了近似于硬件USB?Key的安全性。本发明还提出了一种数字证书的存储与硬件载体绑定的系统。
【专利说明】数字证书的存储与硬件载体绑定的方法及系统
【技术领域】
[0001]本发明涉及数字认证【技术领域】,特别涉及一种数字证书的存储与硬件载体绑定的方法及系统。
【背景技术】
[0002]现有技术包括:
[0003]文件数字证书,如PKCS12格式、JKS格式。
[0004]支持手机常用接口的USB Key,如micro USB接口或音频接口。
[0005]基于无线连接,如蓝牙或Wifi的USB Key0
[0006]基于手机可替换部件的USB Key,如SD Card Key, SIM卡Key。
[0007]文件数字证书的缺点:
[0008]文件证书的私钥是以明文形式交付给上层加密应用进行调用,而硬件USB Key则只接受加密运算的调用并不提供私钥的任何特征,加密运算完成后将运算结果提供给调用者。整个调用过程,数字证书的私钥或对称密钥都是不可见,且不可拷贝导出的。由此可见,文件数字证书的签名加密方式并不安全可靠。
[0009]因为通常文件证书仅仅采用单一 口令对私钥进行保护,一旦文件被复制,且用户口令泄漏,则标识用户身份的数字证书就会被冒用,产生严重的安全问题。所以,文件证书被谨慎的用于风险不高的身份认证、加解密应用场景,而几乎无法用于具备法律效力合法第三方证书数字签名应用。
[0010]多接口 USB Key的缺点:
[0011]双接口或多接口的USB Key—度成为市场上移动设备数字证书安全应用产品的首选。但是由于手机I/o接口标准较多,除了安卓手机使用的Mini和Micro USB接口,还包括苹果手机4代、5代的dock接口,加上还要支持PC端的USB接口,此类安全设备通常体积较大或需携带额外的转接线,携带并不方便。
[0012]无线连接USB Key的缺点:
[0013]无线通讯方案可是蓝牙或Wifi,且主要是蓝牙。但由于此类产品需要为蓝牙供电,不定期的需要为USB Key进行充电。所以一定程度上给用户使用带来麻烦。
[0014]内置手机部件USB Key的缺点:
[0015]此类密码产品不具备通用性。对于替换带加密芯片的SD Card方式,需要手机支持SD Card扩展。像广受欢迎的苹果手机是内置16G,32G或64G存储,并不支持插入SD Card。对于替换带价密芯片的SIM卡方案,由于SIM卡发行是受限的,只能由通信运营商来运作,而我国三大运营商之间存在竞争关系,通讯制式也各不相同。加上用户到电信营业厅更换SIM卡的成本巨大,所以此方案更难以市场化。
[0016]综上所述,文件数字证书虽然成本低,但作为安全工具,自身存在诸多安全问题;基于适配移动设备I/o装置的USB Key,由于存在多样性和复杂性,没有一种方案可以通用,且由于用户需要携带额外装置用户体验很差,加上此类设备较高的硬件成本,难以市场 化。

【发明内容】

[0017]本发明的目的旨在至少解决所述技术缺陷之一。
[0018]为此,本发明的目的在于提出一种数字证书的存储与硬件载体绑定的方法。该方法有效提升了数字证书自身的安全性。
[0019]本发明的另一目的在于提出一种数字证书的存储与硬件载体绑定的系统。
[0020]为达到所述目的,本发明的实施例提供了一种数字证书的存储与硬件载体绑定的方法,包括以下步骤:从CA获取数字证书;在硬件载体上安装所述数字证书时,获取所述硬件载体的识别码;根据所述识别码生成密钥;根据所述密钥对指定文件型数据库进行加密;将所述数字证书存储到由所述密钥加密后的所述文件型数据库中以完成将所述数字证书安装到所述硬件载体上。
[0021]根据本发明实施例的方法,可将数字证书与其所在的硬件载体在第一次安装时,就被有效地绑定在一起,尤其是与所述数字证书相关联的密钥对中的私钥,通过所述绑定过程,变为只能在所述硬件载体上使用,无法在其它硬件载体上使用,让数字证书具有了近似于硬件USB Key的安全性。
[0022]另外,根据本发明上述实施例的数字证书的存储与硬件载体绑定的方法还可以具有如下附加的技术特征:
[0023]在一些示例中,在所述完成将所述数字证书安装到所述硬件载体上之后,还包括:当使用所述数字证书时,采集当前硬件载体的识别码;根据所述当前硬件载体的识别码生成解密密钥;根据所述解密密钥对所述文件型数据库进行解密;对所述文件型数据库解密成功后,从所述文件型数据库中获取所述数字证书。
[0024]在一些示例中,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合,或者,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在所述硬件载体上的随机UUID的组合。
[0025]在一些示例中,对所述文件型数据库进行读写操作是通过指定的应用程序进行的。
[0026]在一些示例中,所述证书信息包括:数字证书的颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥和私钥信息。
[0027]本发明第二方面的实施例提供了一种数字证书的存储与硬件载体绑定的系统,包括:数字证书获取模块,用于从CA获取数字证书;硬件载体特征采集模块,用于在硬件载体上安装所述数字证书时,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,获取所述硬件载体的识别码;生成模块,用于根据所述识别码生成密钥;加解密模块,用于根据所述密钥对指定文件型数据库进行加密,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,对所述文件型数据库进行解密;存储模块,用于将所述数字证书存储到由所述密钥加密后的所述文件型数据库中以完成将所述数字证书安装到所述硬件载体上。
[0028]根据本发明实施例的系统,可将数字证书与其所在的硬件载体在第一次安装时,就被有效地绑定在一起,尤其是与所述数字证书相关联的密钥对中的私钥,通过所述绑定过程,变为只能在所述硬件载体上使用,无法在其它硬件载体上使用,让数字证书具有了近似于硬件USB Key的安全性。
[0029]另外,根据本发明上述实施例的数字证书的存储与硬件载体绑定的系统还可以具有如下附加的技术特征:
[0030]在一些示例中,还包括:读取模块,用于在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,所述加解密模块对所述文件型数据库解密成功后,从所述文件型数据库中获取所述数字证书。
[0031]在一些示例中,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合,或者,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在所述硬件载体上的随机UUID的组合。
[0032]在一些示例中,对所述文件型数据库进行读写操作是通过指定的应用程序进行的。
[0033]在一些示例中,所述证书信息包括:数字证书的颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥和私钥信息。
[0034]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0035]本发明所述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0036]图1是根据本发明一个实施例的数字证书的存储与硬件载体绑定的方法的流程图;
[0037]图2是根据本发明一个实施例的数字证书的存储与硬件载体绑定的方法的原理图;以及
[0038]图3是根据本发明一个实施例的数字证书的存储与硬件载体绑定的系统的结构框图。
【具体实施方式】
[0039]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0040]在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0041]在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解所述术语的具体含义。
[0042]需要说明的是,在以下描述中,数字证书与硬件载体的绑定,即本说明书中出现的“绑定”指:硬件载体与数字证书相关的密钥对中的私钥的“绑定”。
[0043]从技术上说,首先生成了一个由公钥与私钥组成的密钥对,然后基于此密钥对,力口上数字证书所需的各项信息,按照相应的PKCS标准组成证书签名请求(CSR),向认证服机构(CA)做出申请。当CA签名之后,把CA签了名的数字证书存储于key、硬盘等硬件载体中。
[0044]因此从技术上说,数字证书是由多个部分组成的,上述术语中的“绑定”的本质含义为:与所述该数字证书相关联的密钥对中的私钥,只能在成功完成了本发明所述实施例的数字证书的存储与硬件载体绑定的所述该硬件载体上才能使用,无法在其它硬件载体上使用。也就是说,绑定的主体是上述所指的“与数字证书相关联的密钥对中的私钥”。
[0045]硬件载体与数字证书相关的密钥对中的私钥“绑定”,具体实现如下:
[0046]以“软件编译时写入的主密钥”、“硬件特征码”、“用户设置的PIN码”这三个因素,按照特殊的变化进行组合与混淆,生成了一个对称密钥。该对称密钥被用于对文件数据库的加解密过程。
[0047]该对称密钥每次都是通过程序动态检测硬件载体的特征码之后运算产生,没有永久存储于硬件载体中,只在必要的时间短暂地出现在内存中,运算过程完成后即被清除。
[0048]当程序每次需要使用数字证书时,按照上述生成文件数据库的对称密钥的相同的方法,动态检测硬件载体的特征码,再次产生出同一个对称密钥,使用它解密并打开文件数据库,从而得以取得数字证书的各项信息。
[0049]由于该密钥的每一次出现,都以检测硬件载体的特征码作为前提,所以当硬件载体的特征码发生变化,或者文件数据库被复制到其他硬件载体上,是无法生成出原来的密钥的,进而,就无法取得文件数据库中的任何有效信息。于是,这样的程序逻辑保证了数字证书只有存储于最初安装的硬件载体上才能有效使用。
[0050]通过上述实现过程得到了数字证书只有存储于最初安装的硬件载体上才能有效使用的这种关联方式即为上述所谓的“绑定”。
[0051]以下结合附图描述根据本发明实施例的数字证书的存储与硬件载体绑定的方法及系统。
[0052]图1是根据本发明一个实施例的数字证书的存储与硬件载体绑定的方法的流程图。如图1所示,根据本发明一个实施例的数字证书的存储与硬件载体绑定的方法,包括如下步骤:
[0053]步骤SlOl:从CA获取数字证书。
[0054]具体地,向CA申请数字证书时,CA需要以各种手段认证用户所申请的信息是否真实有效,认证方式包括且不限于以下手段:
[0055]用户以实物邮寄的方式向CA提交与申请内容相关的各种文件;
[0056]以视频、电话、语音、电子邮件等通信手段,向用户核实信息的真实有效性;
[0057]从先前已通过认证的USB Key硬件证书,生成原始信息和认证码,为本次认证过程提供证据。
[0058]另外,获取数字证书的手段,可包括两种:
[0059]程序直接与CA安全通信,CA经过认证后,直接将数字证书发送至程序模块,从而获取到证书;
[0060]申请后,CA向通过认证了的申请者的其他信息渠道,如电子邮件、手机短信等发送认证码,申请者接收到该认证码之后,把认证码填写到程序界面上,程序与CA安全通信,将认证码发送至CA,从而通过认证,取得数字证书。
[0061]步骤S102:在硬件载体上安装数字证书时,获取硬件载体的识别码。其中,识别码包括:硬件载体的处理器编号、硬件载体的产品编号、硬件载体的MAC地址中的一个或多个的组合。具体地,硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合,或者,硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在硬件载体上的随机UUID的组合。
[0062]也就是说,硬件载体的识别码(也称特征码)的采集,在不同的软件平台上,采集来源不尽相同,可能的来源包括且不限于以下列表:
[0063]硬件序列号;
[0064]设备名称;
[0065]蓝牙Mac地址;
[0066]WIFI Mac 地址;
[0067]IMEI ;
[0068]手机型号;
[0069]CPU 编号;
[0070]主板序列号;
[0071]硬盘序列号;
[0072]内存条序列号;
[0073]图形卡/显示器序列号;
[0074]电池序列号。
[0075]另外,还可以生成随机UUID,并与软件模块共同永久存储于硬件载体上,作为硬件载体特征的补充,作为特征码的一部分。
[0076]硬件载体特征码可使用以上列表的全部或部分信息。
[0077]步骤S103:根据识别码生成密钥。
[0078]步骤S104:根据密钥对文件型数据库进行加密;
[0079]步骤S105:将数字证书存储到加密后的文件型数据库中以完成将数字证书安装到硬件载体上。
[0080]需要说明的是,对文件型数据库进行读写操作是通过指定的应用程序进行的。其中,指定的应用程序是通过一个软件系统来实现的,所谓“指定的应用程序”就是开发的软件系统,或系统的一部分。其是为了实现本申请的方法而开发的软件系统,可以使用“本软件系统”、“本软件”、“本程序”、或“程序模块”来表述上述的指定的应用程序。
[0081]具体地说,传统上,数字证书以二进制文件或文本文件形式保存在计算机上,对文件形式的数字证书而言,以明文或可逆编码的形式保存了颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥、私钥等信息。而本发明实施例的方法中,对上述各项信息(证书信息)存储于文件型数据库中,让证书信息只能通过与上述的文件型数据库相对应的软件模块(即指定的应用程序)读出,而无法简单地通过文件等直接读取,从而显著地改善了数字证书的安全性。
[0082]本发明实施例的方法,将数字证书与其硬件载体结合(即绑定)起来,在数字证书安装(如在硬件载体上第一次安装数字证书)时,通过采集硬件载体的识别码,如硬件载体的CPU编号、硬件载体的产品编码、MAC地址等信息,经过变换成为唯一的识别码,用于区别其它的硬件载体。然后将此识别码与其它因素结合起来,生成唯一的对称密钥(即密钥),使用此密钥对上述的文件型数据库加密。
[0083]需要说明的是密钥只在运算时在硬件载体的内存中临时出现,并不作持久保存。
[0084]进一步地,在完成将数字证书安装到硬件载体上之后,还包括:
[0085]步骤S106:当使用数字证书时,采集当前硬件载体的识别码。
[0086]步骤S107:根据当前硬件载体的识别码生成解密密钥。
[0087]步骤S108:根据解密密钥对文件型数据库进行解密。
[0088]步骤S109:对文件型数据库解密成功后,从文件型数据库中获取数字证书。
[0089]具体地说,数字证书后续每一次使用时,软件模块都会动态地检查其所在的运行环境、采集硬件载体的识别码,用与安装数字证书时生成密钥相同方法,再次生成密钥,用于解开文件型数据库的加密信息。如果硬件载体的相关环境未改变,则密钥相同,解密成功,顺利打开文件型数据库;若相关环境已改变,则无法得到第一次使用的密钥,解密失败,无法读取文件型数据库中保存的数字证书相关的证书信息等。
[0090]根据本发明实施例的方法,可将数字证书与其所在的硬件载体在第一次安装时,就被有效地绑定在一起,尤其是与所述数字证书相关联的密钥对中的私钥,通过所述绑定过程,变为只能在所述硬件载体上使用,无法在其它硬件载体上使用,让数字证书具有了近似于硬件USB Key的安全性。
[0091]结合图2所示,本发明实施例的方法,功能和特性与硬件USB Key相同,并可通过标准PKCSll接口对外提供签名、加解密等运算功能。PKCSll是一组函数接口,调用时并不将私钥提供给上层应用,而是接收数据进行加密运算并将运算结果返回。
[0092]可与USB Key相同,本发明实施例的方法支持SO PIN和User PIN。用户设置UserPIN码以期对私钥进行未授权访问的保护,而用户输入的User PIN只是打开密钥容器的密钥的一部分。实际的密钥在密钥容器初始化时产生,由三部分组成,第一部分是唯一标识硬件载体的两个或多个特征值,第二部分是特别设定的主密钥,在软件编译时写入,第三部分才是用户设置的User PIN码。这三部分将按照特殊的变化进行组合混淆,最终生成用于加密密钥容器的加密密钥。由此可知,本发明实施例的方法与PKCS12格式文件证书相比更安全可靠,即使受到攻击导致密钥容器被拷贝,盗用者也因为设备环境发生改变而无法打开密钥容器。该方法可确保密钥安全,进而达到近似于硬件加密芯片的安全等级。
[0093]与数字证书相关的文件型数据可采用微型数据库sqlite,将各种密钥、证书信息采用AES算法加密保存在数据库中。每次对于数据库的存取,都会动态检测设备特性,生成解密密钥,避免了以复制数据库文件为手段的非授权访问。
[0094]除了密钥算法之外,该方法可通过提供标准的PKCSll函数接口,为上层应用提供了基于PKCSll的Helper层,包括了 PKCS7、PKCS12函数库以及与CA相关的远程调用函数库。对于 Andro id 系统,USB Key 还提供 了基于 PKCS11 的 JCE/JCA Provider,可方便 An droid开发者进行简单方便的调用,而无需了解PKCSll基础知识。
[0095]再次结合图2所示,可通过加密的方法与硬件载体进行绑定,以及基于Sqlite的跨平台微型数据库,还包含了常见的密码算法实现,如RSA、SM2非对称密钥算法,对称密钥算法 AES、DES、3DES、SM1、SM2 等。
[0096]根据本发明实施例的方法,具有如下优点:
[0097]提升了数字证书的安全性,数字证书还可部署在便携式平板电脑或手持式计算设备上,使得硬件载体本身具有了与USB Key相同的功能,与各种附加硬件的方案相比,大幅减少了实现、部署、运营与维护成本。
[0098]本发明进一步实施例提供了一种数字证书的存储与硬件载体绑定的系统。如图3所示,根据本发明一个实施例的数字证书的存储与硬件载体绑定的系统300包括:数字证书获取模块310、硬件载体特征采集模块320、生成模块330、加解密模块340和存储模块350。
[0099]具体地,数字证书获取模块310用于从CA获取数字证书。硬件载体特征采集模块320用于在硬件载体上安装所述数字证书时,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,获取所述硬件载体的识别码。生成模块330用于根据识别码生成密钥。加解密模块存储模块340用于根据所述密钥对指定文件型数据库进行加密,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,对所述文件型数据库进行解密;存储模块350用于将所述数字证书存储到由所述密钥加密后的所述文件型数据库中以完成将所述数字证书安装到所述硬件载体上。对文件型数据库进行读写操作是通过指定的应用程序进行的。
[0100]其中,硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合,或者,硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、頂E1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在硬件载体上的随机UUID的组合。
[0101]也就是说,识别码包括但不限于:
[0102]I)硬件序列号
[0103]2)设备名称
[0104]3)蓝牙Mac地址[0105]4) WIFI Mac 地址
[0106]5) IMEI
[0107]6)手机型号
[0108]7) CPU 编号
[0109]8)主板序列号
[0110]9)硬盘序列号
[0111]10)内存条序列号
[0112]11)图形卡/显示器序列号
[0113]12)电池序列号
[0114]另外,程序还可以生成随机UUID,与软件模块共同永久存储于硬件载体上,UUID作为硬件载体特征的补充,作为所述识别码的一部分。
[0115]所述硬件载体识别码可能使用以上列举或列举之外中的一个或多个的组合。
[0116]证书信息包括:数字证书的颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥和私钥信息。
[0117]本发明实施例的数字证书的存储与硬件载体绑定的系统300,还包括:读取模块(图中未示出),读取模块,用于在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,所述加解密模块对所述文件型数据库解密成功后,从所述文件型数据库中获取所述数字证书。
[0118]具体地说,传统上,数字证书以二进制文件或文本文件形式保存在计算机上,对文件形式的数字证书而言,以明文或可逆编码的形式保存了颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥、私钥等信息。而本发明实施例的系统中,对上述各项信息(证书信息)存储于文件型数据库中,让证书信息只能通过与上述的文件型数据库相对应的软件模块(即指定的应用程序)读出,而无法简单地通过文件等直接读取,从而显著地改善了数字证书的安全性。
[0119]本发明实施例的系统,将数字证书与其硬件载体结合(即绑定)起来,在数字证书安装(如在硬件载体上第一次安装数字证书)时,通过采集硬件载体的识别码,如硬件载体的CPU编号、硬件载体的产品编码、MAC地址等信息,经过变换成为唯一的识别码,用于区别其它的硬件载体。然后将此识别码与其它因素结合起来,生成唯一的对称密钥(即密钥),使用此密钥对上述的文件型数据库加密。
[0120]需要说明的是密钥只在运算时在硬件载体的内存中临时出现,并不作持久保存。
[0121]数字证书后续每一次使用时,软件模块都会动态地检查其所在的运行环境、采集硬件载体的识别码,用与安装数字证书时生成密钥相同方法,再次生成密钥,用于解开文件型数据库的加密信息。如果硬件载体的相关环境未改变,则密钥相同,解密成功,顺利打开文件型数据库;若相关环境已改变,则无法得到第一次使用的密钥,解密失败,无法读取文件型数据库中保存的数字证书相关的证书信息等。
[0122]根据本发明实施例的系统,可将数字证书与其所在的硬件载体在第一次安装时,就被有效地绑定在一起,尤其是与所述数字证书相关联的密钥对中的私钥,通过所述绑定过程,变为只能在所述硬件载体上使用,无法在其它硬件载体上使用,让数字证书具有了近似于硬件USB Key的安全性。[0123]结合图2所示,本发明实施例的系统,功能和特性与硬件USB Key相同,可并通过标准PKCSll接口对外提供签名、加解密等运算功能。PKCSll是一组函数接口,调用时并不将私钥提供给上层应用,而是接收数据进行加密运算并将运算结果返回。
[0124]可与USB Key相同,本发明实施例的系统支持SO PIN和User PIN。用户设置UserPIN码以期对私钥进行未授权访问的保护,而用户输入的User PIN只是打开密钥容器的密钥的一部分。实际的密钥在密钥容器初始化时产生,由三部分组成,第一部分是唯一标识硬件载体的两个或多个特征值,第二部分是特别设定的主密钥,在软件编译时写入,第三部分才是用户设置的User PIN码。这三部分将按照特殊的变化进行组合混淆,最终生成用于加密密钥容器的加密密钥。由此可知,本发明实施例的系统与PKCS12格式文件证书相比更安全可靠,即使受到攻击导致密钥容器被拷贝,盗用者也因为设备环境发生改变而无法打开密钥容器。该系统可确保密钥安全,进而达到近似于硬件加密芯片的安全等级。
[0125]与数字证书相关的文件型数据可采用微型数据库sqlite,将各种密钥、证书信息采用AES算法加密保存在数据库中。每次对于数据库的存取,都会动态检测设备特性,生成解密密钥,避免了以复制数据库文件为手段的非授权访问。
[0126]除了密钥算法之外,该系统可通过提供标准的PKCSll函数接口,为上层应用提供了基于PKCSll的Helper层,包括了 PKCS7、PKCS12函数库以及与CA相关的远程调用函数库。对于 Andro id 系统,USB Key 还提供 了基于 PKCS11 的 JCE/JCA Provider,可方便 An droid开发者进行简单方便的调用,而无需了解PKCSll基础知识。
[0127]再次结合图2所示,可通过加密的方法与硬件载体进行绑定,以及基于Sqlite的跨平台微型数据库,还包含了常见的密码算法实现,如RSA、SM2非对称密钥算法,对称密钥算法 AES、DES、3DES、SM1、SM2 等。
[0128]根据本发明实施例的系统,具有如下优点:
[0129]提升了数字证书的安全性,数字证书还可部署在便携式平板电脑或手持式计算设备上,使得硬件载体本身具有了与USB Key相同的功能,与各种附加硬件的方案相比,大幅减少了实现、部署、运营与维护成本。
[0130]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0131]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
【权利要求】
1.一种数字证书的存储与硬件载体绑定的方法,其特征在于,包括以下步骤: 从CA获取数字证书; 在硬件载体上安装所述数字证书时,获取所述硬件载体的识别码; 根据所述识别码生成密钥; 根据所述密钥对指定文件型数据库进行加密; 将所述数字证书存储到由所述密钥加密后的所述文件型数据库中以完成将所述数字证书安装到所述硬件载体上。
2.根据权利要求1所述的数字证书的存储与硬件载体绑定的方法,其特征在于,在所述完成将所述数字证书安装到所述硬件载体上之后,还包括: 当使用所述数字证书时,采集当前硬件载体的识别码; 根据所述当前硬件载体的识别码生成解密密钥; 根据所述解密密钥对所述文件型数据库进行解密; 对所述文件型数据库解密成功后,从所述文件型数据库中获取所述数字证书。
3.根据权利要求1所述的数字证书的存储与硬件载体绑定的方法,其特征在于,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合, 或者,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFIMac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在所述硬件载体上的随机UUID的组合。
4.根据权利要求1所述的数字证书的存储与硬件载体绑定的方法,其特征在于,对所述文件型数据库进行读写操作是通过指定的应用程序进行的。
5.根据权利要求1所述的数字证书的存储与硬件载体绑定的方法,其特征在于,所述证书信息包括:数字证书的颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥和私钥信息。
6.一种数字证书的存储与硬件载体绑定的系统,其特征在于,包括: 数字证书获取模块,用于从CA获取数字证书; 硬件载体特征采集模块,用于在硬件载体上安装所述数字证书时,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,获取所述硬件载体的识别码; 生成模块,用于根据所述识别码生成密钥; 加解密模块,用于根据所述密钥对指定文件型数据库进行加密,以及在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,对所述文件型数据库进行解密; 存储模块,用于将所述数字证书存储到由所述密钥加密后的所述文件型数据库中以完成将所述数字证书安装到所述硬件载体上。
7.根据权利要求6所述的数字证书的存储与硬件载体绑定的系统,其特征在于,还包括:读取模块,用于在所述完成将所述数字证书安装到所述硬件载体上之后且在使用所述数字证书时,所述加解密模块对所述文件型数据库解密成功后,从所述文件型数据库中获取所述数字证书。
8.根据权利要求6所述的数字证书的存储与硬件载体绑定的系统,其特征在于,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFI Mac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合, 或者,所述硬件载体的识别码包括:硬件序列号、设备名称、蓝牙Mac地址、WIFIMac地址、ME1、设备型号、CPU编号、主板序列号、硬盘序列号、内存条序列号、图形卡/显示器序列号和电池序列号的一个或者多个的组合以及与预先通过程序生成并保存在所述硬件载体上的随机UUID的组合。
9.根据权利要求6所述的数字证书的存储与硬件载体绑定的系统,其特征在于,对所述文件型数据库进行读写操作是通过指定的应用程序进行的。
10.根据权利要求6所述的数字证书的存储与硬件载体绑定的系统,其特征在于,所述证书信息包括:数字证 书的颁发机构、颁发日期、证书序列号、证书主题、证书扩展项、公钥和私钥信息。
【文档编号】G06F21/73GK103684786SQ201310671316
【公开日】2014年3月26日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】徐蕤, 彭昌雄, 李兆森 申请人:北京天威诚信电子商务服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1