随着电子商务在线交易的流行,一些网上银行也推出了系列措施保证在线交易的安全,有使用软证书的,也有使用UKey硬证书的,这都是数字证书的身份认证的应用。下面我就说下从数字证书生成到身份认证实现的过程。
一、PKI搭建
一套完整的PKI(Public Key Infrastructure公钥基础设施)系统包括了KMC(密钥管理中心)、CA(Certificate Authority)、RA(Register Author注册审批机构),KMC负责密钥管理,CA是核心进行制作证书,RA系统提供证书业务申请审核。数字证书有RSA、ECC等算法的,按证书类型分个人证书、设备证书和机构证书,按用途有加密证书和签名证书。完善的CA系统一般会提供证书申请制作、撤消、冻结、解冻、续费、更新业务功能,还有相应的OCSP(在线证书状态协议)、CRL(证书撤消列表)查询服务等。Windows本身有可以集成CA,可在IIS内提供证书申请制作服务,这样搭建的CA适合较小范围数字证书应用的使用。PKI系统包括如下组成部分。
二、证书激活
向CA发送证书制作申请后,证书制作完成后怎么交付给客户使用呢?有一种方式是软证书,返回pfx标准格式的数字证书,导入到客户系统以供需要时选择使用。软证书是以文件形式保存的,并且可以标记允许再次导出,硬证书则是以UKey移动设备为载体,保存私钥和数字证书。
证书激活是指证书从CA制作出来到交付给客户以供使用的过程,软证书使用比较简单,一般CA在制作出证书会返回pfx标准格式的证书,只需要安装到系统。UKey硬证书则需要将私钥和数字证书导入到设备中,由于涉及到私钥安全保护,UKey写入证书私钥时会使用加解密,UKey证书激活过程一般包括设备连接、验证PIN码、初始化导出公钥、写入数据,整个流程如下图所示。
三、身份认证
数字证书写入到UKey中怎么用?一般UKey设备厂商会提供API,另外还需要有相应的驱动程序,可以让系统识别到UKey移动设备,提供相应的加解密签名接口,如读取UKey序列号、读取加密签名证书、签名等,禁止直接读取私钥,并有相应安全策略保护。
通过UKey签名可以实现身份认证,因为UKey中包含的私钥就只有指定身份才能持有,拿使用UKey数字签名登录后台为例,首先插入UKey设备,然后签名随机生成的验证码,得到签名数据,再输入用户名一起提交到后台,后台先做验证码正确性检查,然后再通过用户名查询定位数据库中的用户签名证书记录,使用用户的签名证书对用户传过来的签名数据进行验签,如果验证通过则证明是对应的用户,从而实现身份认证过程。这种方式比传统的口令认证更安全,甚至可以不需要用户名就可以登录验证,用户名是可以保存在数字证书信息中的,并且证书的序列号在同个CA中也是唯一的。身份认证实现的基本流程如下。
UKey设备身份认证为作为可随身携带的智能密码钥匙,比使用软证书更安全快捷。UKey设备只是存储数字证书的一种介质,私钥在设备里是牢牢保护的,用户只需要保护好设备的使用安全,就可以达到更安全的目的。