1,客户端密码机生成一个12 8位的随机数R1,然后用SHA一1算法取这个随机数和密码机TD的信息摘要H1,用SAl28算法以Rl为密钥将H1加密,然后用密码机的私钥加密R1,并在前头加上密码机的ID发送给访问控制服务器。
2,访问控制服务器将用户发来的数据直接转发给证书管理服务器。
3,证书服务器收到包之后,先根据这个ID在证书数据库里面找这个ID所对应的证书,然后用证书电所包含的公钥解密被客户端私钥加密过的Rl,然后用这个R1通过SAl28算法解密得到H1,验证通过后。证书服务器会生成一个新随机数R2,然后将R2用客户端的公钥进行RSA加密,把加密后的数据加上Rl之后取摘要值H2,然后将Rl和加密之后的R2还有H2以R2为密钥用SAl28算法加密,再将R2用访问控制服务器的公钥进行RSA加密,再将以上数据发送给访问控制服务器。
4,服务器收到上述数据后,首先用自己的公钥解出R2,然后用R2通过SAl28算法得到RsC(R2)+RI+H2,信捷职称论文写作发表网,验证通过后,将R2取摘要H3,然后将RsC(R2)+H3以R1用SAl28算法加密之后发送给客户端。
5,客户端收到数据后,先用Rl解出Rsl(R2)和H3,在确认之后,用自己的私钥解出R2,然后以R2为SA 128算法的密钥开始和服务器进行通信,到此,验证过程结束,客户端和访问控制服务器之问建立起安全连接。
四、安全平台的主要横块
这个网络安伞认证平台的安全连接部分主要分成3个部分,客户端,访问控制服务器和证书管理服务器。这个系统是一个网络安全的应用,所以网络通信和安全非常重要。在Internet公网上的通讯采用TCP/IP协议,使用MFC封装的一步SOCKET类CasyncSocket建屯网络连接。至于安全方面的连接是采用密码机,编程采用对USB的驱动程序应用接口的访问,这里使用的是针对这个密码机的软件开发包。
(一)客户端的实现
客户端的实现土要分为两个部分,一个是对密码机的控制,一个是对网络安全协议的支持。客户端被设置为验证PIN码之后,就开始进行公私钥自检,自检成功后就开始向连接控制服务器提交验证申请。
(二)访问控制服务器的实现
访问控制服务器的主要功能是负责外网和内网的数据交换,并判断数据的属性以做不同的处理。在访问服务器上面,维护了一个访问权限数据库,这个数据库鹗面含有资源服务器上面所有的资源并且对每个不间的用户ID标明了权限。在客户端和访问控制服务器之间建立了安全连接之后,服务器就会将和这个客户端联系的线程转变成一个转发线程,客户端将自己的需求加密之后发过来,经过转发线程的解密处理之后,会按贶客户端的权限范围决定是否将需求发送给资源服务器,如果需求符合客户端的权限,那么转发线程会将得到的资源加密之后发送给客户端。
(三)证书管理服务器的实现
在这个安全平台里面,证书管理服务器的作用是证书生成和颁发,验证客户端和服务器端的身份,并且生成对称加密密钥。证书管理服务器有一个证书库,存有安全平台系统里所有密码机的证书。
证书管理服务器还维护一份CRL,由于所有的证书不是在证书管理服务器的证书库里面,就是在密码机里面,所以这份cue,除了过期的证书以外。其它所有情况下证书的状态改变都是管理员手动修改。
五、固终安全平台中的数据库设计
该网络安全平台中,一共存在四个数据库,其中访问控制服务器两个,分别是日志数据库和访问权限数据库,证书管理服务器两个,分别是日志数据库和证书数据库。
由于本安伞平台并不是基于公众网的安哞,平台,所以用户量不会很大,出于效率的考虑,选用TBer keley DB数据库系统。Berkeley DB是开放源码嵌入式数据库函数库,不同于SQL等关系类数据库,Berkel ey DB直接使用API调用数据库里面的各项功能,而且对于大多数数据库系统Berkeley踞只提供了相对简单的数据访问方式。记录是以(KEY,V“UE)对存放,所以Berkeley Db对的查询比带有高级语占解释的关系类库快很多,也便很多。