发明内容
本发明实施例的目的在于提供一种基于SM2算法的应用服务系统,旨在解决SM2算法在数字认证安全应用的问题。
本发明实施例是这样实现的,一种基于SM2算法的应用服务系统,所述基于SM2算法的应用服务系统包括:
证书管理子系统,用于对数字证书进行管理;
证书认证服务子系统,与所述证书管理子系统连接,用于为证书管理子系统提供认证服务;
集成证书操作控件,与所述证书认证服务子系统连接,用于实现集成数字证书应用。
进一步、所述证书管理子系统还包括:
信息录入模块,用于证书用户信息的录入;
系统审核模块,与所述信息录入模块连接,用于对录入的信息进行审核;
安全审计模块,与所述系统审核模块,用于对证书用户的信息进行审计;
证书生成签发模块,与所述安全审计模块,用于证书的生成和签发;
系统协议模块,与所述证书生成签发模块连接,用于提供证书的协议支持;
CRL生成签发模块,与所述系统协议模块连接,用于实现CRL定时发布任务;
证书模板模块,与所述CRL生成签发模块连接,用于提供证书的模板;
证书归档恢复模块,与所述证书模板模块连接,用于对签发的证书进行存档和恢复。
进一步、所述证书认证服务子系统还包括:
SSL双向身份认证服务模块,用于通过反向代理的方式实现对应用添加SSL双向身份认证;
时间戳签名验签服务模块,与所述SSL双向身份认证服务模块连接,用于进行对客户端数据的时间戳签名验签;
权限管理模块,与所述时间戳签名验签服务模块连接,用于通过ActiveX控件实现调用私钥进行签名,加密运算接口以及获得证书;
签名验签服务模块,与所述权限管理模块连接,用于进行签名验签;
系统配置模块,与所述签名验签服务模块连接,用于提供配置功能;
私钥加解密服务模块,与所述系统配置模块连接,用于进行私钥加解密运算;
日志处理模块,与所述私钥加解密服务模块连接,用于准确清晰的记录系统日志、日志中记录时间发生时间,事件的请求者和执行者以及系统和相关者的签名信息;
HTTP协议API模块,与所述日志处理模块连接,用于以HTTP协议为基础开发签名验签接口、私钥加解密运算接口、时间戳签名验签接口。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供的基于SM2算法的应用服务系统包括:
证书管理子系统1,用于对数字证书进行管理;
证书认证服务子系统2,与所述证书管理子系统连接,用于为证书管理子系统提供认证服务;
集成证书操作控件3,与所述证书认证服务子系统连接,用于实现集成数字证书应用。
证书管理子系统1具体的包括:
信息录入模块,用于证书用户信息的录入;
系统审核模块,与所述信息录入模块连接,用于对录入的信息进行审核;
安全审计模块,与所述系统审核模块,用于对证书用户的信息进行审计;
证书生成签发模块,与所述安全审计模块,用于证书的生成和签发;
系统协议模块,与所述证书生成签发模块连接,用于提供证书的协议支持;
CRL生成签发模块,与所述系统协议模块连接,用于实现CRL定时发布任务;
证书模板模块,与所述CRL生成签发模块连接,用于提供证书的模板;
证书归档恢复模块,与所述证书模板模块连接,用于对签发的证书进行存档和恢复。
证书用户通过证书管理子系统1完成证书申请等业务操作;证书认证服务子系统2为应用系统提供认证服务;应用系统通过集成证书操作控件3实现集成数字证书应用;
证书应用服务子系统2完全独立,可任意组合封装,实现基于SM2数字证书的网络安全服务,具体包括以下模块:
SSL双向身份认证服务模块,主要通过反向代理的方式实现对应用添加SSL双向身份认证,还包括根证书的设置等其他参数的设置;
时间戳签名验签服务模块,主要通过提供HTTP协议的时间戳签名验签服务接口供客户端调用,进行对客户端数据的时间戳签名验签,其中还包括时间戳服务的参数设置;
权限管理模块,通过ActiveX控件实现调用私钥进行签名,加密运算接口以及获得证书等功能;
签名验签服务模块,主要通过提供HTTP协议的签名延期服务接口供客户端调用,进行签名验签,其中还包括签名延期的参数设置;
系统配置模块,提供配置功能,包括服务系统名称、时间、IP以及系统其他参数设置;
私钥加解密服务模块,主要通过提供HTTP协议的私钥加解密服务接口供客户端调用,进行私钥加解密运算,其中还包括私钥加解密的参数设置;
日志处理模块,用于系统中的日志模块,准确清晰的记录系统日志、日志中记录时间发生时间,事件的请求者和执行者以及系统和相关者的签名信息;
HTTP协议API模块,主要以HTTP协议为基础开发签名验签接口、私钥加解密运算接口、时间戳签名验签接口。
本发明的原理为:创新设计发证平台,保证证书应用业务和发证的严格分离,便于统计证书信息,作为标准的PKI体系的CA(证书认证中心)系统,往往只包含2个子系统,即:CA(证书认证中心)、RA(证书注册中心),RA(证书注册中心)完成证书用户信息的注册、审核,CA(证书认证中心)完成用户证书的签发等业务操作,其基本的工作原理是,RA(证书注册中心)获取到用户完整的注册信息后,构造证书签发请求,然后将请求发给CA(证书认证中心),由CA(证书认证中心)来进行证书的签发,但是由于各省运营CA(证书认证中心)的策略以及市场领域的差异化,所带来的问题便是,不能有效的满足各省的业务需求,仅仅满足了各省CA(证书认证中心)基本的发证需求而已,而在证书的应用领域上,比如,对证书应用行业的管理,证书应用项目的管理,以及在这些发证基础上来进行的统计工作,都难以有效的进行准确统计,在本发明中,我们创新性的大胆提出,发证平台的设计,即在RA(证书注册中心)之外,再开发一个发证平台,其保证证书应用业务和发证的严格分离,所有在行业、项目等应用的管理,均可以在发证平台完成,其工作原理为,发证平台根据不同行业项目接受注册请求,封装请求,并打包转发给RA(证书注册中心),再有RA(证书注册中心)转发给CA(证书认证中心),这种方式在实施上,满足了一省CA(证书认证中心)多RA(证书注册中心),并下级发证平台的3级管理体系,同时在统计上也可以很好的精确到各个发证点,各个行业的证书信息。
本发明采用更高效率,耦合性更低、可移植性更好的Quartz技术框架来实现CRL定时发布任务,即省却了开发时间,又提高了定时发布CRL的稳定性以及有效性,Quartz技术包含了3个概念,调度器、触发器、和作业(定时任务内容,被执行的程序),它利用java对job接口进行封装,模拟底层的定时触发任务机制,从原理上来说,保证了项目在定时发布crl上的平台无关性,极大的扩展了项目的平台部署空间,满足了项目的一个重要的特性,跨平台性。
应用Jquery和ajax技术,提升界面的友好性,作为一个面向运营类的项目,其在设计的时候就要考虑大量的人机互动操作的界面友好性。而采用何种技术,来花大量的代码来进行这种友好界面的开发,也是我们在做项目的过程中需要考虑的一个难点,在其他同类产品中,由于过多的注重于服务端的开发质量,往往忽视了View层的复杂的设计工作。比如,在注册系统中,当注册完成的时候,同类项目往往只是在页面上进行一次单项的格式校验,与数据库的数据校验往往是放在servlet中进行,带来的问题便是,当用户输入重复数据并且提交,用户需要等待提交过程结束才能看到返回的,数据唯一性错误,而在本发明中,尤其是在ECBMP(发证平台)子系统中,采用了大量的Jqery和ajax技术,来保证在注册提交的过程中,把数据格式校验和数据唯一性校验等都放在页面上,利用js来模拟serlvet请求进行提交,做到在不刷新页面的情况下完成对数据的所有有效性校验。这样,就极大的提升了界面友好度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。