用户客户端安全套件

      针对应用提出的需求,定制开发了客户端安全套件。根据设备的不同提供了两种类型的套件:USB-KEY或IC卡与加密软件包结合。USB-KEY、IC卡必须高度安全,支持模长为1024位的RSA非对称密码算法。全面实现SSL和S/MIME协议支持的安全通信功能,包括接收和存放数字证书、数字签名/签名认证、数据加/解密处理等。
 

      客户端安全套件包括以下部件:

1) SSL代理客户端,

     SSL安全代理是基于SSLv3标准协议开发的,用于实现网络安全传输、保护网络数据的安全代理软件。SSL安全代理能够对INTERNET上点到点之间的通讯数据进行128位的高密度加密,从而保证网络数据传输的安全性;支持多种工作方式:CS工作方式、Https工作方式、Http工作方式,能够同时进行以上三种工作方式的网络连接,实现网络数据安全传输,支持SOCKS4、SOCKS5、HTTP代理;能够实现客户端证书的递交,进行客户端用户的身份认证,保证与SSL代理服务器端进行通讯,其中的传输都是以密文的方式来完成,包括证书管理、调用存储证书的介质提供的加/解密接口。这样服务端就可通过用户的证书信息对用户的访问进行控制。具有以下优势和特性:

1、加密算法的多样性,支持多种高强度通用加密算法。

2、易操作,对用户来说,SSL安全代理完全无缝地和浏览器建立连接,用户除了选择证书输入口令外无须进行其它的操作。安装步骤简单,无须进行复杂的配置。

3、高速度,SSL安全代理保留了浏览器和web server原来对Session ID进行Cache的能力,从而减少了握手的次数,使用SSL安全代理并没有给用户在速度上带来多大的影响。
 

4、功能强大,支持Http代理、Https代理和C/S代理,并且可以同时建立以上三种安全连接。

5、证书存储设备的多样性, SSL安全代理支持多种证书存储设备,包括文件,IC卡和磁盘,Key等。

2) 加密/签名部件

     由于所有的应用都在Web页面完成,所有的传输都是Http协议,所以文件以及保密信息传输的安全都可以由SSL代理来保证。对于文件在传输后将保存在数据库服务器上,而存储的必须是密文,在目的用户接收时也必须对发送文件人进行认证。所以,在发送人提交发送时要对发送信息中的重要信息进行有选择的签名。所以安全套件中为应用系统定制开发了ActiveX控件。
为应用提供ActiveX签名控件,应用开发商在自己的ASP程序中(包括发送和接收表单)加入该控件,用户在提交时若需要对表单或附件进行签名时选择该控件中显示的相应的选择框,完成相应的操作。所以的签名以及认证都由ActiveX控件自动执行并对应用透明。
由于嵌入了加/解密以及签名功能之后,为了对流程以及开发的简易清晰对原有的应用系统做出一个修改。在数据库服务器的数据存储中应将是否进行过加密或者签名标记出来。以便公文目的接收人获取之后对公文数据判断是否进行解密和验证。

1、 加/解密
在控件中用户选择文件并选择加密按钮,完成对附件的加密同时也对文本域中的信息进行加密。如果客户端机器没有加密卡加密按钮将显示为不可用。加密时产生一个随机密钥对数据流进行加密然后调用接收人的证书公钥对加密密钥进行加密。把加密后的数据流交给应用。在接收文件时首先检测数据流是否加密,若加密则调用ActiveX控件。ActiveX控件获取附件的路径,读取该路径下的数据文件,生成一个随机的加密密钥使用该加密密钥对数据进行加密,然后调用证书库中的目的接收人的证书并使用该证书中的接收人的公钥对加密密钥进行加密,再将加密后的密文加密密钥附在加密后的密文附件数据之后,在本地目录以一个临时文件保存并将该临时文件的路径交给表单中的一个隐含的字段域。提交表单,完成公文的机密性。

2、 签名验证
该控件的签名接口通过调用IC卡或USB-KEY的CSP中的接口将应用传输的关键字段传输给IC卡或USB-KEY,在IC卡或USB-KEY中使用用户的私钥对关键字段进行签名。
首先,用户在数据初始化的时候对公文的类型已经做了设定,在该设定中将每种类型的公文进行了需要签名字段的设定。用户在使用某种类型的页面时如果选择了签名将对该页面所属类型的公文的签名字段提取出来并对之进行签名,将签名码作为表单中的一个隐含字段,由用户提交给服务器,服务器在接收到公文之后将表单中的字段和附件的数据流解析并存储在数据文档中,完成用户公文的发送。在应用接收公文时接收到存储的数据文档中的字段以及数据流。首先由ActiveX控件判断是否经过签名,如果有则提取出隐含字段的签名码,并对该签名码进行验证,从而实现了公文数据的完整性和抗抵赖性。