一种联机安全密钥保护方法和系统与流程

文档序号:11681216阅读:305来源:国知局
一种联机安全密钥保护方法和系统与流程

本发明涉及信息安全领域密钥保护的方法,具体涉及一种用联机方式实现安全密钥保护的方法和系统。



背景技术:

随着信息技术的发展,为了实现对敏感数据的保护,越来越多的采用了加密技术,即用一套密钥对要保护的数据进行一次加密运算,以获得的密文来存储和传输原来的明文数据,在需要用数据时用对应的密钥再做一次解密的逆运算获得明文。如果不知道密钥,就无法获知密文的明文信息,也就起到了保护数据的目的。为了获得更高级别的安全保护,我们需要对加密密钥进行保密,以防止密钥被非法获取从而泄密出要保护的数据。通常做法是,采用一种称为三级密钥体系的技术,即用一个传输密钥对加密密钥进行对称加密,以密文存储加密密钥,然后再用一套主密钥对传输密钥进行加密,而主密钥的存储则通过保护密钥来加密。保护密钥一般是事先约定,这就给攻击者带来了机会,存在安全风险。另外,在上述加解密过程中,由于运算时必须还原出密码明文,这个过程也存在暴露密钥的风险。

为了解决保护密钥的存储安全,一种做法是采用硬件安全芯片,即将密钥通过安全手段写入到硬件芯片中,密钥不可读出,并将加解密算法也固化在硬件芯片中,在使用时基于认证技术通过特定接口访问其加解密算法功能模块。该方案存在的缺点是成本高,并需要定制驱动接口,不适合现在越来越多的智能移动设备。因此,软件方案成为在移动设备上解决密钥安全的首选方案。

在现有的密钥安全保护软件方案中,一个常见做法是将密钥加密后存储在远程服务器。例如,中国专利局于2010年12月1日公开的第200710140493.9号专利,其名称为“一种数字密钥保护方法”,该发明揭示了,利用非对称加解密算法,将加密密钥保存到服务器的系统方案。假定要保护发送方的密钥,其具体做法是,首先用接收方的公钥加密该密钥,并用自己的私钥签名一段已知数据,将加密后的密钥密文、已知的数据明文以及签名信息发送给接收方(远程服务器)。接收服务器得到这些组合数据后,首先用发送方公钥验证数据签名,以验证发送方身份,通过后将密钥密文解析后保存到数据库。在发送方需要使用密钥时,向接收方发送密钥请求指令,接收方接到该指令后从数据库中读出密钥密文,并接收方的私钥解密出密钥明文,通过加密传输技术将该密钥密文返回给发送方,发送方经解密得到密钥明文。该方案通过加密来存储密钥,简单易行,但仍然存在不足:

1)由于密钥存储在接收方的数据库中,在使用密钥时需要事先请求,流程过于复杂,加解密运算速度以及网络传输速度会成为性能瓶颈;

2)发送方的密钥集中存储在接收方的数据库中,一旦接收方的数据库中的私钥和密钥密文同时被泄露,后果不堪设想;

3)只是将发送方密钥保护的风险转嫁给了接收方,仍然无法彻底解决密钥泄露的风险;

4)发送方在得到密钥明文后,本地缓存和加解密运算流程中仍然存在着泄密风险。

另一种常见做法是将密钥经过加密保存在本地存储器中。例如,中国专利局于2012年12月12日公开的第200780047663.7号专利,其名称为“密钥保护机制”,该发明揭示了,通过产生一个密钥,并利用异或算法用该密钥对需要保护的密钥进行加密运算,然后将密文保存在本地存储器的密钥保护方法。该方法的具体做法是,首先用密钥加密一段已知数据,产生密文数据,然后硬件随机数发生器产生一个随机数作为掩蔽密钥,用该掩蔽密钥作为加密密钥对私密密钥进行加密,产生私密密钥密文。最后,将已知明文数据、加密后的密文数据、掩蔽密钥以及私密密钥密文保存到非易失存储器。使用时,读取保存的上述数据,用掩蔽密钥对私密密钥密文再做一次异或运算,获得私密密钥明文,然后用已知数据及其密文对该明文密钥做一次校验运算,以确认密钥的有效性。该方案实现了密钥的密文存储,并通过密文数据校验确保了密钥的完整性和有效性,但是,存在的不足包括:

1)掩蔽密钥明文存储,容易被窃取,一旦掩蔽密钥被泄露,攻击者如果再拿到私密密钥密文,可以很轻松的破解出私密密钥明文;

2)采用简单的异或运算,虽然能很快恢复私密密钥明文,但是,该算法强度不够,容易通过暴力破解方式穷举掩蔽密钥,进而破解出私密密钥明文。



技术实现要素:

本发明的目的旨在至少解决上述技术缺陷之一。

为了解决上述问题,本发明第一个目的在于提出一种联机安全密钥保护方法,该方法包括:a.所述终端启动时运行核心安全进程,所述核心安全进程初始化或绑定安全随机存储区和安全文件存储区;b.所述核心安全进程启动运行加解密算法模块,并根据安全策略配置向安全代理进程提供加解密算法接口;c.所述核心安全进程在所述安全文件存储区维护一个密钥生命周期参数,当生命周期到期后自动与所述安全服务器交互,更新一次密钥脚本文件;以及d.所述核心安全进程引用所述终端的特征参数解析运行所述密钥脚本文件以动态产生保护密钥,所述保护密钥可用于直接或间接加密工作密钥,进而产生所述工作密钥密文,并将所述工作密钥密文存储到所述安全文件存储区。

根据本发明实施例的联机安全密钥保护方法,核心安全进程先运行引导启动代码,该代码对核心安全进程整体代码进行签名验证,并将签名结果与已知签名信息比对,若比对不通过,则停止运行;若比对通过,则判断是否为首次运行,当首次运行时初始化安全随机存储区和安全文件存储区;如不是首次运行则绑定已有安全随机存储区和安全文件存储区;安全随机存储区与安全文件存储区之间建立有映射关系,核心安全进程对安全随机存储区的读写访问可以实时映射到安全文件存储区;加解密模块从安全文件存储区读取工作密钥密文,经解密后缓存到安全随机存储区;核心安全进程收到安全代理进程的加解密调用指令后,从安全文件存储区读取工作密钥密文,用保护密钥解密后获得工作密钥明文,用于加解密运算;核心安全进程监测到异常掉电、非法入侵或其它异常事件后,主动擦除安全随机存储区含工作密钥明文等敏感数据,并停止安全代理进程提供的加解密功能接口;终端产生非对称密钥公私钥对,将私钥保存,将公钥及终端序列号提交给安全服务器;安全服务器根据终端提交的终端序列号查询数据库,确认是否为合法注册的终端;安全服务器确认终端为合法注册并有效时,随机产生一个密钥脚本文件,该密钥脚本文件由算法序列号、终端特征值类型及散列值组成,并用终端的公钥加密后发送给终端;终端用私钥解密接收到的密钥脚本文件密文,得到的明文被保存到安全文件存储区,然后重置密钥生命周期参数;核心安全进程读取包括终端序列号、cpu序号、wi-fimac地址、蓝牙mac地址、sim卡ccid号、imei号等在内的终端特征值,作为参数输入解释运行密钥脚本文件,产生保护密钥明文;当所述密钥脚本文件为更新版本时,则用新的保护密钥明文转加密原所述工作密钥,即用旧版本的保护密钥解密原工作密钥密文,然后用新版本保护密钥再加密,得到所述工作密钥的新密文;将产生的工作密钥的密文及密钥脚本文件保存到安全文件存储区。

为了解决上述问题,本发明第二个目的在于提出一种联机安全密钥保护系统,该系统包括:终端和安全服务器,其中,所述终端配置有核心安全进程、安全随机存储区、安全文件存储区、密钥脚本文件、安全代理进程以及应用app;所述核心安全进程用于管理所述安全随机存储区和安全文件存储区,与所述安全服务器交互获得所述密钥脚本文件;所述安全服务器用于验证所述终端身份合法性,并产生密钥脚本文件,在密钥脚本文件生命周期结束后,负责与所述终端交互以更新密钥脚本文件;所述安全代理进程与所述核心安全进程通信,提供所述应用app与所述核心安全进程之间的加解密运算接口,并接收安全策略配置的权限控制。

根据本发明实施例的联机安全密钥保护系统,终端还用于产生非对称公钥和私钥,将公钥提供给安全服务器,其用该公钥加密传输密钥脚本文件,私钥被终端用于解密该密钥脚本文件密文;核心安全进程与安全代理进程具有相同的用户组权限,可以相互ipc通信,但核心安全进程仅向安全代理进程提供加解密功能,安全代理进程不可访问所述安全随机存储区,也不可访问安全文件存储区。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和易于理解。

图1是本发明的系统结构框图。

图2是核心安全进程功能模块图。

图3是安全随机存储区与安全文件存储区映射关系图。

图4是密钥脚本文件更新流程图。

在图1至图3中包括有:

1——核心安全进程;

101——核心安全进程ipc接口102——安全隧道服务103——保护密钥管理器

104——密钥生成器105——工作密钥更新106——权限管理

107——安全策略控制108——入侵与掉电监测109——安全存储区管理器

110——程序签名验证111——加解密算法模块112——密钥脚本解释器

2——安全随机存储区;

21——安全文件存储区内存映射22——安全密钥缓存区

3——安全文件存储区;

4——安全沙箱;

5——安全服务器;

6——密钥脚本文件;

7——安全代理进程;

8——应用app;

9——交易服务器。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及具体实施例对本发明的工作原理作进一步描述,如附图1至附图4所述。

如图1所示,终端设备运行核心安全进程1,核心安全进程在第一次启动是初始化安全随机存储区2及安全文件存储区3,以后每次启动时直接绑定安全随机存储区2和安全文件存储区3即可。

核心安全进程1随系统启动,拥有独立的用户号和用户组,与其他进程隔离运行。

核心安全进程1包括非对称加解密算法、对称加解密算法、签名及验证、mac运算、密钥更新、保护密钥防护、安全存储区管理和终端特征参数存储等功能模块。

安全随机存储区2是从系统内存中分配的掉电易失数据的内存块。

安全文件存储区3是带安全防护的从外存隔离出来的独立文件系统区。

核心安全进程1、安全随机存储区2及安全文件存储区3组成一个安全沙箱4,构成系统安全密钥的更新和存储以及加解密运算的安全环境。

更进一步的,在核心安全进程1的静态安全基础上,核心安全进程1绑定一个安全代理进程7,核心安全进程1向应用程序8提供的安全算法接口是通过安全代理进程7间接提供的。该进程负责与应用层交互,核心安全进程1自身不被应用层直接访问,安全代理进程7负责将调用指令转发给核心安全进程1,并支持同步和异步调用。授权应用进程7不涉及保护密钥和系统主密钥的读写操作,并受系统安全策略控制,必要时核心安全进程1可以实时关闭该代理接口。核心安全进程1有且仅有一个代理服务进程7能与之ipc通信,它们具有相同的用户组权限,其它进程不可访问。在以上接口功能的实现过程中,做到安全密钥可更新但不可读出,避免了密钥泄露风险。这些动态隔离措施保障了核心安全进程1运行安全。

核心安全进程1与安全服务器5之间通过双向身份验证和签名技术形成安全通信隧道,根据安全策略定期更新密钥脚本文件6。

密钥脚本文件6由密钥生成算法序列号和终端特征值类型两部分组成,用于生成终端密钥保护密钥,由核心安全进程1解释和运行。

密钥生成算法是移动终端和安全服务器5先期约定的算法,根据安全要求,终端和服务端约定至少三种以上算法,并予以编号。使用时安全服务器5选定一种算法并将算法序号填入密钥脚本文件6中。

终端特征值类型是参与密钥算法的数据参数类型,是一系列能够唯一标定终端的字符串组,包括但不限于终端序列号、cpu序号、wi-fimac地址、蓝牙mac地址、sim卡ccid号、imei号等,安全服务器5负责从一个较大范围的备选参数中选取某几种,并在密钥脚本文件6指定其类型名称,其数据内容最终由终端根据该参数类型从终端获取。

密钥脚本技术的使用使得终端与服务器任何一方均无法单独获得保护密钥,保障了保护密钥的安全。

应用程序8与远程服务器9交互,实现应用程序的业务功能。

更进一步的,关于核心安全进程1的结构如图2所示,核心安全进程ipc接口101被安全代理进程7调用实现应用层的加解密、密钥更新等功能,并受权限管理模块106和安全策略控制107设置的权限策略配置控制,提供有限制性的功能服务。

工作密钥更新模块105从应用层接收经加密保护的密文密钥,并将其转发给安全存储区管理器109,最终被转加密到安全随机存储区2及安全文件存储区3。

密钥生成器104根据需要可以生成rsa非对称公私密钥对以及3des对称密钥,用于数据加密、签名、mac计算等。

入侵和掉电检测108用于监控核心安全进程101及安全存储区是否被攻击,同时对设备的关机和异常掉电进行检测,这些异常事件发生后,会触发相应例程。当终端设备监测到异常攻击事件后,核心安全进程主动擦除随机安全存储区和文件存储区全部敏感数据,终端设备安全密钥停止使用。当监测到掉电事件,则将事件记录到安全存储管理器109。设备重启时,核心安全进程1如果读取到异常事件标志,会将该事件发送给安全服务器5。

安全隧道服务102实现与安全服务器5的加密通信,通过ssl安全隧道技术确保双方通信的传输安全。由安全服务器5产生的密钥脚本文件通过该安全隧道传输给保护密钥管理器103,保护密钥管理器103调用密钥脚本解释器112,并以从安全存储管理器109接收到的终端特征数据为参数,经解释和运算之后获得保护密钥明文,该明文被写入安全存储管理器109,最终缓存在安全随机存储区2。

核心安全进程1程序代码被签名保护,进程启动时首先运行程序签名验证模块110检测程序代码是否被恶意代码注入或被非法篡改,只有验证通过才继续下一步,即通过少量引导启动代码完成程序代码校验和签名验证,成功后才加载运行实体功能代码。

更进一步的,对安全密钥进行存储管理的详细说明如图3所示。安全文件存储区3只能被核心安全进程1读取、写入和执行,它们拥有相同的用户组权限,安全文件存储区3文件内容是经过加密的密文,不保存明文数据。安全文件存储区3保存有设备掉电标志和保护密钥更新标志。掉电标志被置位后,保护密钥需要从密文区重新解密后预置到安全随机存储区2。保护密钥更新标志被置位以后原保护密钥失效,触发保护密钥更新操作。

安全随机存储区2包括外存虚拟映射区21和物理内存区22两部分。

外存虚拟映射区21是由核心安全进程通过内存映射技术将安全文件存储区3映射到虚拟内存区的专属内存区,使得核心安全进程1能够像操作普通内存一样读写该文件存储区。采用该映射区能够大大方便核心安全进程1对安全文件存储区3数据的读取和更新回写。对该区的读写可以直接映射到安全文件存储区3。

物理内存区22是由核心安全进程1申请的一块固定内存区,该空间由进程独占,不被其它进程访问,在设备掉电或者守护进程退出后其数据会被自动销毁。物理内存区22的数据存储采用了位图编码技术,仅核心进程能解码,避免其它进程通过恶意内存越界窥探其内容。

外存虚拟映射区21保存保护密钥的密文;物理内存区22保存保护密钥的明文。终端设备启动后,核心进程启动时首先将外存映射区21的保护密钥密文解密为明文,转存到物理内存区22,供加解密算法使用。这种安排既保障了密钥安全又使得加解密运算时有较快的运算处理速度。

采用内存映射及实时同步技术,可以确保即使在终端掉电或关机时,外存虚拟映射区21中的密钥不会丢失。下次系统重启时,安全文件存储区3中存储的密钥密文会重新被加载,在经过解密后置入安全随机存储区2的物理内存区22。

如图4所示,是本发明的密钥脚本文件更新的流程图。

核心安全进程1启动后,如果监测到密钥脚本文件6更新周期到期,则启动更新流程。在步骤s10中,终端向安全服务器发送合法性验证请求,请求报文包含终端设备编号、手机号码、手机卡ccid号等信息,安全服务器藉此验证终端合法性。

在步骤s11中,安全服务器解析请求报文,从数据库中查询是否有此终端注册,并在步骤s12中与已登记的注册信息比对,确认终端设备合法性。

如果终端信息不一致,则在步骤s120中,将终端侧ip地址记入非法请求列表;非法请求列表中ip重试次数超过规定值的,将其加入黑名单,安全服务器在以后的链接请求中直接拒绝接入服务。在步骤s121中,安全服务器断开与终端的网络链接,拒绝更新请求。

如果终端信息一致,表明终端合法。在步骤s13中,安全服务器向终端发送确认包,请求其上送终端公私钥对。

在步骤s14中,终端设备产生非对称加密算法的公私钥对,将公钥提交给安全服务器。

在步骤s15中,安全服务器根据配置信息,产生密钥脚本文件。在步骤s16中,安全服务器用终端公钥加密密钥脚本文件,并将产生的密文发送给终端设备。

在步骤s17中,终端设备接收到密钥脚本文件密文,用终端私钥解密。在步骤s18中,终端将解密后的明文保存到安全存储区。

在步骤s19中,终端向安全服务器发送保存结果。密钥脚本更新过程到此结束。

以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1