一种用户数字证书的认证方法及装置
技术领域
本发明涉及认证技术,尤其涉及一种用户数字证书的认证方法及装置。
背景技术
随着网络技术的发展,各种网络的规模迅速扩大,网络上各种安全问题变得日益复杂,建设可管、可控、可信的网络成为进一步推进网络应用发展的前提。随着网络所承载的业务日益复杂,保障使用网络的用户信息的安全也是一个重要的安全问题。
在现有技术中,为了保障用户信息安全,需要对用户进行身份认证,这也是绝大多数应用系统必不可少的一个重要功能。而认证方式也是多种多样的,主要有用户名密码认证、硬件码认证以及使用USBKEY的数字证书认证。其中最便捷也最安全的认证方式是数字证书认证方式。
数字证书认证是指通过计算机可识别的数字信息来唯一验证操作人的物理身份的一种手段,利用以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性和唯一性。在网络上存在大量待验证的用户时,这对服务端的处理性能会构成极大的考验,如何保证验证过程的快速、稳定同时又不失安全性是业界面临的技术难题。
发明内容
本发明提供一种用户数字证书的认证装置,该装置应用于服务器上,该装置包括:
存储单元,用于通过配置接口接收管理者下发的认证策略,所述认证策略包括用户数字证书认证过程中需要认证的内容选项;
收发单元,用于在用户通过客户端向服务器发起连接后,向客户端发出重定向指令,其中该重定向指令包括表征SSL应用的目标端口号;
SSL处理单元,接收客户端的建立SSL连接请求,并在SSL协商过程中根据所述需要认证的内容选项从用户的数字证书中提取相应的内容选项进行校验,并将校验结果输出作为用户数字证书认证结果,并在用户数字证书认证通过时与用户客户端在SSL连接上收发业务数据。
本发明还提供一种用户数字证书的认证方法,该方法应用于服务器上,该方法包括:
A、通过配置接口接收管理者下发的认证策略,所述认证策略包括用户数字证书认证过程中需要认证的内容选项;
B、在用户通过客户端向服务器发起连接后,向客户端发出重定向指令,其中该重定向指令包括表征SSL应用的目标端口号;
C、接收客户端的建立SSL连接请求,并在SSL协商过程中根据所述需要认证的内容选项从用户的数字证书中提取相应的内容选项进行校验,并将校验结果输出作为用户数字证书认证结果,并在用户数字证书认证通过时与用户客户端在SSL连接上收发业务数据。
本发明通过在SSL协商过程中指定更为简化的认证策略,使得对于用户数字证书的认证过程被简化,而且通过认证少量的重要的内容选项,确保了较高的安全性,同时大幅度节约了服务端的处理资源。
附图说明
图1是本发明一种实施方式中数字证书认证装置的逻辑结构图。
具体实施方式
下面结合附图及以计算机程序实现为例对本发明再作进一步详细的说明。本发明通过预先设定证书认证策略并借助SSL握手协商过程与协商结果在保证证书认证安全性的前提下完成证书认证过程。请参考图1,本发明一种的实施方式中(以计算机程序实现为例)的数字证书认证装置包括存储单元、配置接口、身份认证单元、SSL处理单元以及收发单元。以下结合SSL握手协商过程描述本发明如何实现简洁有效的证书认证过程。
步骤101,存储单元通过配置接口接收管理者下发的认证策略,所述认证策略包括用户数字证书认证过程中需要认证的内容选项;
在本实施方式中,证书的认证是在SSL握手协商过程中完成的,而证书中有许多内容选项,用户下发的需要认证的内容选项是用户根据自己的安全需求以及实际应用场景所指定的,通常并不是全部内容选项,而是部分内容选项,一般不超过三项;通常来说,可以仅包括用户的CA签名一个内容选项即可确保较高的安全性。
步骤102,用户通过自身的客户端向服务器发起连接;
步骤103,身份认证单元向用户的客户端发送登录界面,通过收发单元接收来自客户端的用户名与密码,并对用户名和密码进行校验;
用户登录系统进行证书认证之前,为了提高安全性,比如防止某些消耗服务端资源的暴力攻击等,很多系统都会前置用户名与密码校验的页面,甚至可以包括登录验证码的输入要求。当然在实际应用中步骤103并不不是必须的,在安全环境较佳的场景这一步骤可以省略。
步骤104,收发单元向客户端发出重定向指令,该重定向指令包括表征SSL应用的目标端口号;
如果系统不要求用户输入用户名和密码,即没有前述登录界面,收到用户的连接请求后就可以发送所述重定向指令;如果系统要执行步骤103中的用户名和密码校验则,在用户名和密码校验通过后向用户客户端发送重定向指令。重定向指令通常是在网络服务的网络位置(比如IP地址)发生变化时要求客户端(如IE浏览器)向一个新的网络位置发起连接来获取其想得到的网络服务。本发明中重定向的指令依然指向服务器本身,但通过目标端口号的变化,指令客户端连接到一个与该目标端口号对应的新应用(即SSL应用,或者说SSL处理单元)上来。用户收到所述重定向指令后会向中定向指令指定的目标端口号重新发起连接。
步骤105,SSL处理单元接收客户端的建立SSL连接请求,并在SSL协商过程中根据所述需要认证的内容选项从用户的数字证书相应的内容选项进行校验,并将校验结果输出作为用户数字证书认证结果,并在用户数字证书认证通过时与用户客户端在SSL连接上收发业务数据。
SSL是建立在TCP层上的,其通常包括几个步骤:
(1)初始化
(2)选择会话协议
在利用OpenSSL开始SSL会话之前,需要为客户端和服务器制定本次会话采用的协议,目前能够使用的协议包括TLSv1.0、SSLv2、SSLv3、SSLv2/v3。需要注意的是,客户端和服务器必须使用相互兼容的协议,否则SSL会话将无法正常进行。
(3)创建会话环境
当SSL会话环境申请成功后,还要根据实际的需要设置CTX的属性,通常的设置是指定SSL握手阶段证书的验证方式和加载自己的证书。在将证书和私钥加载到SSL会话环境之后,就可以调用相关的函数来验证私钥和证书是否相符
(4)建立SSL套接字
(5)进行SSL协商(或者说SSL握手)
在成功创建SSL套接字后,对服务器来讲可以使用相关函数来完成握手过程,并且需要获取了客户端的数字证书的内容,以便进行相应的验证。在本发明中SSL处理单元会根据事先已经保存好的认证策略提取对应的内容选项,而非提取全部的内容选项,比如说认证策略中仅仅指定了CA签名,那么SSL处理单元根据这个认证策略仅仅需要提取CA签名进行认证即可。如果CA签名校验成功则视为数据证书认证成功,否则视为失败。
(6)进行业务数据传输
(7)结束SSL通信
当客户端和服务器之间的业务数据通信完成之后,调用相关的函数来释放已经申请的SSL资源释放SSL会话环境。
本发明通过在SSL协商过程中指定更为简化的认证策略,使得对于用户数字证书的认证过程被简化,而且通过认证少量的重要的内容选项,确保了较高的安全性,而又可以不浪费资源去验证一些与安全性关系很小的内容选项,如电子邮件、姓名、公司、部门等等。在网络中用户数量较多时,本发明能够在保证较高安全性的前提下大幅度地节约服务端的处理资源,确保服务端有足够的资源应对用户的访问需求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。