基于Web的安全档案系统的设计
范渊
(浙江工贸职业技术学院信息工程系,浙江温州325003)
摘要:档案是政府机关、企事业内部运行过程的如实记录,它客观地记载着单位的基本建设、生产经营、问题处理及领导决策等多方面的过程和成果,加强对档案的利用和研究对一个单位的发展起着至关重要的作用。档案信息系统的应用有利于将各子单位的档案实行集中统一管理,并迅速为系统使用人员提供图、文、声、像等多种媒体信息,以提高业务部门的工作效率。
关键词:WEB;档案系统;安全
中图文分号:TP309 文献标识码:A 文章编号:1672-0105(2009)02-0057-04
The Design of Safe Files System Based on Web
Fan Yuan
(Zhejiang Industrial&Trade Polytechnic, Wenzhou Zhejiang 325003)
Abstract:Files are real records for government and enterprises, which keep account of the basic construction of enterprises, production process, problem handling and decision making. It is important to take advantage of files for the management of enterprises.Files system should be arranged centralized and united and provide pictures, words, voice and all sorts of media information so as to make work more effective.
Keywords:WEB; Files system; Security
档案信息系统中,档案信息是以数据形式存储于计算机系统中,信息的传输则通过公共信道,这些计算机系统和公共的信道是非常脆弱的,非常容易受到攻击和破坏,而档案信息是牵涉到单位和员工的机密材料,因此,安全性问题是任何档案信息系统设计与实现中的核心问题和难点问题,同时也是阻碍档案管理系统进一步应用的瓶颈问题。所以,对档案管理系统的安全性研究具有重要的理论意义和实用价值。
1.方案设计
1.1系统要求:档案信息系统要求在权限满足要求的条件下,用户可以选择档案文件进行全文浏览。具体来说,客户端向服务器提出相应的文件请求,服务器与客户端相互确认身份,共同协商建立安全信道,然后通过该信道将文件传输到客户端。客户端生成相应的临时文件,然后针对文件格式进行浏览,结束后将临时文件删除。
1.2系统方案描述及选择:根据系统要求,本系统决定采用基于Web的方式建立该系统,并在服务端和客户端均采用Java编程。其方案的选择主要基于以下理由:
(1)基于Web的方式建立系统:Web是解决客户机/服务器问题的一种常用方案。它克服了传统客户机/服务器的维护升级差和跨平台等缺点,并具有系统易于扩展和维护、真正实现跨平台的系统继承服务等优点。
(2)编程环境的选择:采用Java编程环境,在服务器端以Servlet(Java服务器端调用和执行的类)提供服务,在服务器端以Applet进行编程。
1.3方案的优点
1.3.1Java具有很好的安全性、健壮性和可移植性等多种特性;
1.3.2Servlet具有易于开发,系统稳健、跨平台、性能卓越,能够集成Java的安全组件等多方面的优点。更为重要的是Servlet是模块化的,每个Servlet可以执行一个特定的任务,Servlet之间能互相交流,因而可以形成一个“Servlet链”共同工作;
1.3.3客户端以Applet进行编程,在Web浏览器中运行。一旦用户需要客户软件,软件就可从服务器自动下载回来。能自动取得客户软件的最新版本,不会出错,也没有重新安装的麻烦。
1.3.4根据Java的设计原理,程序员只需要创建程序的一个版本,该程序能在所有安装了Java解释器的浏览器中运行,较好地实现了系统的跨平台使用。
1.3.5Java内建的安全模型是构造安全的分布式Java应用的可靠方法。该模型包括Java加密体系结构(JCA)、Java加密扩展(JCE)、Java安全套接扩展(JSSE)及验证与授权服务(JASS),它们为开发人员提供了生成安全应用的标准接口。
1.3.6操作简便性:并且对于用户而言,只要对浏览器有相应的了解,就可以非常轻松地掌握系统操作,所以新系统学习开销也会比较小。
2.安全控制措施
因为档案文件要在开放的网络上进行传输,为保证其安全性,设计了一个安全信道实现客户以加密的形式经过网络传播,确保其保密性、完整性。网络攻击者虽然可能截获在网络上传输的数据,但无法得到有用的信息。安全信道主要进行如下两项工作:一是通过验证身份确立相互信任的关系;二是协商确定所使用的会话密钥。
本系统的安全信道以X.509证书确定通话双方的身份,以采用Diffie—Hellman密钥管理协议生产会话密钥,以AES算法进行数据通信的加密。
本系统安全会话实施流程:
(1)客户登录:客户使用自己的密码登录系统。
(2)身份验证:需要用户提交其证书以验证其身份,服务器同样也将其证书发送至客户。双方首先确认对方的身份,成功后,客户生成会话请求。
(3)生成会话密钥匙:客户和服务器双方根据DH协议各自生成随机密钥对,并通过相互交换公钥取得相同的对话值。然后根据AES密钥生成规则计算出128为对话密钥值。此时通信双方达成协议,以后的通信都建立在该对话密钥的基础上。
(4)实施会话:客户端生成操作请求,并用会话密钥进行加密,服务器端对操作请求作出相应的处理,并将结果加密后返回给客户,客户根据密钥解密,进行浏览,得到所要的结果。
3.关键技术
3.1 Servlet/Applet通信
Applet与Servlet之间的联系一般是间接的,即页面请求由浏览器发送给Servlet作为回答,Servlet将结果生成HTML文档发送给浏览器。但在较为复杂的分布式Java应用中,在Servlet与DApplet之间建立直接的联系是必要的。本系统中,在客户端Java程序与服务器端Java程序之间建立这种复杂的交互方式仅仅使用Servlet与Applet API是不够的,为实现Servlet/Applet通信,我们专门建立了HTTP传输管道。
具体来说,通过URL和URL connection类建立Applet与Servlet的连接,每个Servlet与客户机都有非常好的连接性能,能够长时间地保持连接状态,在网络堵塞时也能保持稳定,在客户端,将URL connection类连接至对象流,通过readObject( )和writeObject( )接收和发送对象。在服务器端,将Servlet标准对象HttpServlet Requst和HttpServletResponse封装成对象流,通过它们获取和发送对象。虽然只有可序列化对象才能经过管道,但因为大多数核心Java类都实现了Serializable,所以问题可以得到解决。
3.2 X.509证书
要验证某人的身份,使用数字证书无疑是比较好,也较为通行的方式,数字证书提供了一种在网络上验证身份的方式,从而解决相互间的信任问题。数字证书是由认证机构CA(Certificate Authority)签发的用于标志用户身份的消息。CA可以对密钥进行有效地管理,颁发证书以证明密钥的有效性,并将公开密钥同某一实体联系在一起。
数字证书中最为通行的是X.509公钥证书。X.509证书标准由ITU(International Telecommunication Uuion)制订和发布,并由PKIX(Public Key Infrastructure X.509)工作组采纳。在其草拟的RFC2459及后续更新的RFC3280中对X.509证书进行了详尽的定义。
现实生活中,如Internet等大型网络环境中,可能需要多级认证机构。在这种情况下就形成了层次式证书结构,即证书链,证书链呈现树性结构,在其顶部是一个主CA,每个CA将存放从它上一级CA获取的证书,通信双方要进行验证则必须回溯证书链,以寻求共同的信任结点。
大体来说,证明身份就是检验证书的合法性,并且证书上的名字与所通信方的名字相同,当然在实际环境中会复杂得多。首先证书会呈现链状结构,为验证一个证书,通常需要上溯证书链,直到发现自己所信任的CA证书。另外,证书具有时效性,必须证明其是否过期。由于CRL的缘故,还需要检查证书是否被取消。最后还需要考虑证书所带的扩展名和IETF PKIX,s所规定的证书验证方针政策。在本档案系统中,基于实际需求,整个证书应用情况如下所述:
(1)沿证书链自上而下,验证每个证书的所有者是否是下一个证书的颁发者;
(2)检查证书链中是否有证书存在于CRLZ中;
(3)证明证书链中第一个证书由所信任的CA颁布;
(4)证明证书链中最后一个证书的所有者正是现在与之通信的对象;
(5)对证书链中的每个证书验证其是否还在有效期。
3.3 Diffie—Hellman密钥管理协议
DH协议的保密性基于求解离散对数问题的困难性。该协议的优点是任何一方都不需要先知道对方的信息(包括另一端的公开密钥)。其协商过程如下:
通信双方A和B共同的模p和底数g,p和g互质。为提高安全性,应当选择较大的p。
(1)A选择一个随机数XA,并计算YA=gXA●mod p;
(2)B选择一个随机数XB,并计算YB=gXB●mod p;
(3)A与B互相交换计算值(YA,YB);
(4)A收到B的公开密钥YB后,计算YBXAmod p,即gXAXB mod p;
(5)B收到A的公开密钥YA后,计算YAXBmod p,即gXAXB mod p;
这样,通信双方得到相同的对话值,然后可以根据具体规则计算对话密钥值。
Internet简单密钥管理协议SKIP(Simple Key Management for Internet Protocol)中将Diffie—Hellman密钥管理协议的模p和底数g标准化,模值p为1224位固定值,底数值g取2。
3.4加密算法——AES算法
DES算法是1977年公开的第一代对称密钥数据加密标准,但随着数学理论和计算机硬件水平的发展,DES已经越来越不能胜任对安全性的要求。新一代数据加密标准——高级数据加密标准AES算法的随机产生,其采用Rijndael作为AES的惟一算法。
Rijndael算法汇集了高安全、高性能、高效率、易用和灵活等优点。Rijndael算法是一个迭代分组密码算法,其分组长度和密钥长度设为128bit,密钥长度为128/192/256 bit,相应的轮数为10/12/14。Rijndael采用代替/置换网络,每个轮由3层组成:线性混合层,确保多轮之上的高度扩散;非线性层,由16个S盒并置而成,起到混淆的作用;密钥加层,子密钥简单地异或到中间状态上。Rijndael算法的原型是Spuare算法,采用宽轨迹设计策略。宽轨迹设计测量是针对差分分析和线性分析提出来的,具有极好的抗击差分密码分析及线性分析密码分析的能力。
综上所述,Rijndael算法具有较好的性能,操作简单,并可抵御强大和实时的攻击,所以,本系统采用其作为加密算法。
4.结束语
本文阐述了一个具有完整的、系统的安全保障机制的档案管理系统的建立过程,该系统是建立在Web平台上,基于Java进行编程,采用了证书验证、DH密钥管理协议和AES加密等安全技术,使系统具有健壮性、安全性和跨平台性。该系统符合企业应用的行为特点,可以较好地应用到分布式环境中对单位的档案实行集中统一管理,确保档案完整、准确、系统、安全和有效利用。
参考文献:
[1]郑薇,马京复.高校档案管理系统数据安全方案设计与实现[J].中国教育信息化.2007,(2).
[2]Schneier B.应用密码学:协议、算法和C源程序[M].北京:机械工业出版社.2003.
[3]邱仲潘译.Jaworski J.Java安全手册[M].北京:电子工业出版社.2001.
【责任编辑:程有娥翁茂荣】so-fareast-font-family: 方正宋三简体">g标准化,模值p为1224位固定值,底数值g取2。
3.4加密算法——AES算法
DES算法是1977年公开的第一代对称密钥数据加密标准,但随着数学理论和计算机硬件水平的发展,DES已经越来越不能胜任对安全性的要求。新一代数据加密标准——高级数据加密标准AES算法的随机产生,其采用Rijndael作为AES的惟一算法。
Rijndael算法汇集了高安全、高性能、高效率、易用和灵活等优点。Rijndael算法是一个迭代分组密码算法,其分组长度和密钥长度设为128bit,密钥长度为128/192/256 bit,相应的轮数为10/12/14。Rijndael采用代替/置换网络,每个轮由3层组成:线性混合层,确保多轮之上的高度扩散;非线性层,由16个S盒并置而成,起到混淆的作用;密钥加层,子密钥简单地异或到中间状态上。Rijndael算法的原型是Spuare算法,采用宽轨迹设计策略。宽轨迹设计测量是针对差分分析和线性分析提出来的,具有极好的抗击差分密码分析及线性分析密码分析的能力。
综上所述,Rijndael算法具有较好的性能,操作简单,并可抵御强大和实时的攻击,所以,本系统采用其作为加密算法。
4.结束语
本文阐述了一个具有完整的、系统的安全保障机制的档案管理系统的建立过程,该系统是建立在Web平台上,基于Java进行编程,采用了证书验证、DH密钥管理协议和AES加密等安全技术,使系统具有健壮性、安全性和跨平台性。该系统符合企业应用的行为特点,可以较好地应用到分布式环境中对单位的档案实行集中统一管理,确保档案完整、准确、系统、安全和有效利用。
参考文献:
[1]郑薇,马京复.高校档案管理系统数据安全方案设计与实现[J].中国教育信息化.2007,(2).
[2]Schneier B.应用密码学:协议、算法和C源程序[M].北京:机械工业出版社.2003.
[3]邱仲潘译.Jaworski J.Java安全手册[M].北京:电子工业出版社.2001.
【责任编辑:程有娥翁茂荣】
|