随着互联网应用的逐步普及和电子政务建设的深入开展,政府信息安全的问题已经日益突出。因此,为保证电子政务系统中信息传输的安全,必须引入通用公文加密系统,对重要的数据在应用层上进行加密,并通过数字签名及认证技术来保证数据在网上传输的真实性、机密性、可靠性及完整性。

一、通用公文加密系统

通用公文加密是政府机关和下级机关之间、政府机关内部部门与部门之间传输公文时,公文通常采取明文的形式。明文的数据在网络上传输时可能被外界截获或篡改,给公文的安全和保密带来极大的威胁。为保证信息的安全传输,我们设计了通用公文加密系统。

1、通用公文加密系统的加密原理

该系统所采用的加密技术是对称密钥加密。系统中的每一个终端都有一个唯一标识自己真实身份的主机密钥。终端需要传输数据时,必须得向密钥管理中心动态申请一对加密密钥,管理中心在客户端代理程序申请加密密钥时为每一个客户代理申请产生一对加密密钥。加密密钥是管理中心调用中心加密卡API函数生成的一个128位的随机敦,管理中心使用申请者的通讯实体的主机密钥和申请者所指定的接收方通讯实体的主机密钥,并调用中心加密卡的API函数分别对加密密钥进行加密,生成的加密密钥是一对密钥,而且密钥是对称的。代理程序在得到申请者和接收者的密态的加密舒钥(发送方加密密钥,接收方加密密钥)之后,代理程序使用自身的主机密钥将发送方加密密钥解密,得到细密密钥明文口代理程序使用明文加密密钥加密会话密钥(由加密卡生成的随机数,用来加密数据)。然后,代理程序使用明文会谲密钥加密数据,代理程序特接收方的密态加密密切也写入数据包,这样,接收方就可以使用自己的主机密钥密加密密钥,从而解密会话解密密钥,最终解密数据。由于只有接收方才拥有解密加密密钥的钥匙——接收方的主机密钥,因此只有接收方才能得到解密会话密钥的钥匙,从而进一步得到解密数据的钥匙——通用加密系统的这种多层次密钥保护机制保证了,即使教据在传输过程中杖截获,截获者由于没有解密的钥匙而无法得到明文数据。

为确保公文在网上传输的真实性和完整性,通用加密系统采用了消息挠要算法。对客户端耍发送的公文密文使用消息摘要算法得到一个散列值,并用会话密钥加密后,与公文密文一起发送给接收方接收端对接收到的公文密文也使用消息摘要算法得到一个散列值,并解密接收到的密态散列值,接收端比较两个散列值就能知道公文在传输中是否被改动过。

2、通用公文加密系统的系统结构设计

(1)公文加密系统结构

通用公文加密系统由一个硬件加密卡系统与一个管理密钥和加密公文数据的软件系统组成。硬件加密卡系统是由加密卡(PCI接口或USB接口)、IC卡机和IC卡组成。而软件系统是由管理中心和客户代理组成,其中臂理中心又分为管理界膏和密钥分发程序。管理中心安装在系统里的管理服务器由系统或网络管理员使用,管理员可以在管理中心为网络通讯定义一组安全加密策略。客户代理程序安装在通讯实体(在通用公文加密系统中,通讯实体被定义为一个安装了加密卡和公文加密系统的用户终端。通讯实体的信息包括:姓名、所属单位、IP地址、主机密钥、主机密钥有效期等等)的计算机上,代理程序实现数据的加解密和密钥的获取。

(2)公文加密体系结构图

如图1所示

(3)系统的体系结构及组成部分的实现方法

通用公文加密系统采用客户机服务器的体系结构,由管理中心和客户代理两大部分组成,如图2所示。管理中心负责管理系统内所有通讯实体。接收客户端请求、分发加密密钶、产生日志记录。客户代理负责向管理中心申请加密密钥、加密解密数据、管理加密。

管理中心由两个独立的应用程序组成,一个是系统管理程序,另外一个是密钥分发程序。系统管理程序是在WindowsNT和Windows2000下开发的CUI程序。系统管理员通过系统管理程序完成加密系统的初蛤化工作,并将所有的通讯实体和管理中心的主机密钥保存在数据库中。

密钥分发程序是一个典型的基于TCP/IP之上的Socket服务器程序。该服务器程序存特定的端口(如,6000)上监听来自客户代理的请求,并能够并发地处理多个来自客户端的请求。

客户端和服务端均为层状结构,便于采用面向对象的方法设计和实现。在加密系统中,数据存储分别采用Access数据库(管理中心端)和文件系统(客户代理端)。数据库连接采用高技简洁的ADO,文件系统采用XML格式存储(配置文件)的方式。通讯服务层采用基于TCP的Socket实现。

3、通用加密系统的安全性分析

通用加密系统的安全性依赖于对称密钥加密机制、密钥本身的安全、硬件加密卡的加密算法和消息摘要算法。

在通用公文加密系统中,由于加密密钥是由硬件加密卡产生的128位长的密钥,并实时分发,这样就保征了加密密钥本身的不可攻破性。

通用公文加密系统采用通过国家权威安全机构鉴定的硬件“普密”加密系统来保证公文的安全。本系统由支持128位硬件加密的加密卡(PCI接口或USB接口)、IC卡机和智能IC卡组成。核心加密算法动态解密加密,板卡DSP程序动态解密动态运行,保证了安全可靠性和防职踪性。另外,系统采用智能IC卡进行身份识别,并对加密卡进行保护隔离。

对于消息摘要算法,单向散列函散的设计已经十分成熟。市场上广泛使用的MD5、SHA算法的教列值分别为128、160位,足以阻止所有的穷举攻击的企臣。由此看来,通用加密系统能够保证公文传输的可靠性、完整性和安全性。但通用公文加密系统在公文附件和OLE对象的加密、解密,公文印簟管理,以及艉决对称加密自身的固有缺陷等方面还需要进一步完善和提高。

小知识之ADO一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。在Microsoft Visual Basic编辑器中,可以使用ADO对象以及ADO的附加组件(称为Microsoft ADO Extensions for DLL and Security(ADOX))来创建或修改表和查询、检验数据库、或者访问外部数据源。还可在代码中使用ADO来操作数据库中的数据。