首页 > 范文大全 > 正文

基于安全文档的日志系统管理与分析

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于安全文档的日志系统管理与分析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:为了解决否认、伪造、篡改及冒充等问题,安全文档的日志系统管理已成为保护个人隐私的重要技术手段。在此,主要通过模块分析,运用Struts框架设计,实现了一个安全文档的日志管理,它主要通过因果顺序方法,对模块、系统构架、密钥等几方面分析展示了数字签名技术在保证信息完整性和可靠性方面的作用。日志系统可以记录系统使用者的操作记录,可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹,使之可以对误操作予以及时的纠正,实现日志信息的数字签名。

关键词:日志系统; 安全文档; 数字签名; strut框架

中图分类号:TN919-34 文献标识码:A

文章编号:1004-373X(2011)20-0027-02

Management and Analysis of Log System Based on Safety Document

WANG Mu

(Sichuan Electric Power Research Institute, Chengdu 610072, China)

Abstract: To solve the problems of denial, forgery, tampering and impersonation, Log system management of security document has become an important protection technique of individual privacy. The log management for secure document management is designed and realized by using struts framework through the module analysis. In the methods, such as module, system architecture and key aspects, the article mainly analyzed one by one through the sequence of cause and effect. Analysis of the encryption algorithm and digital signature technology document management in the security log system, showing the digital signature technology to ensure information integrity and reliability in the role. The log system can record the user's operation records, we can use it to check what caused the error, or under attack marks left by the attacker, making the misuse can be corrected. Log information can be digitally signed. A digital signature is achieved via Java security mechanism; the signature for the user's operation log to ensure the integrity of the log information, to keep abreast of the log information being modified, providing a certain reference for similar studies.

Keywords: log system; security document;digital signature; strut frame

随着安全技术的不断发展和成熟,数字签名技术被广泛应用于电子商务、金融、政治等领域,成为保护个人隐私的重要技术手段。完备的日志记录可以成为很好的分析和审计工具。数字签名和日志系统二者结合可以实现数据的安全记录。

1 用户模块

用户通过注册建立自己的个人信息,登录以后可以通过用户管理,进行用户信息的修改。用户注册后就建立其个人文件夹,得到一定大小的用户空间,可以存储用户上传的文件。用户通过文件管理功能,可以进行文件的上传和删除操作,当用户上传文件后,将文件存入服务器的个人文件夹。同时,用户还可以共享上传的文件,该文件被列入共享列表。每个用户可以进入共享列表中下载其他用户上传并设为共享文件,同时可以在文件列表中撤销共享,那么该文件只有上传用户本人可以查看。用户还可以通过消息管理给其他用户发送消息,通过备忘录管理书写备忘录[1]。

2 管理员模块

系统为管理员提供了登录、注销、查看用户信息,删除用户信息,查看用户操作日志和查找文件的功能。

管理员登录之后,通过AdminLogAction控制器调用searchClient()方法从数据库中循环读出每一个用户的信息,并将用户信息保存在Vector中,然后将Vector中的用户信息存到Session中[2]。

通过查看详情,管理员可以进一步了解用户的详细信息。点击用户列表上的查看链接,触发控制器ViewClientAction,控制器从数据库中读出信息,同样,通过Session将信息传递到视图,然后将详细的用户信息显示在页面上点击进入日志系统,管理员可以进入查看用户的操作日志。通过LogSys控制器,调用Log类中写好的searchLog()方法,从数据库中读出数据。最后转发到getLog.jsp页面上,将日志显示出来[3]。

3 日志系统的设计管理与分析

系统中用户的操作日志只有管理员可以进行查看。为了实现日志信息的记录,并使每个操作的日志记录都可以调用同一个类,实现代码的复用,专门写了一个日志信息记录的类Log.java。Log.java中包含了日志信息的数字签名、日志读取和记录日志的操作[4]。

3.1 日志信息的产生

当用户进入系统进行操作时,包括用户的登录、文件操作、注销和用户信息修改等,日志系统都会记录相应的日志信息。根据MVC模式,用户的每次操作都由表单记录相应的信息、参数,通过模型收集信息,并将其传送给控制器Action进行处理。在每次动作的执行中都会产生相应的操作日志信息,将信息作为参数,并调用Log类中的signLog()对日志信息进行数字签名,得出签名结果[5]。将操作信息和签名的结果作为参数传给Log类的recordLog()方法,在每次动作的最后调用该方法,产生用户操作的一条完整的日志信息,将这些信息存入到数据库中。同时调用,并将日志信息写入到数据库中,签名的结果同样也保存在数据库中[6]。

3.2 对日志信息的数字签名

3.2.1 非对称密钥对的产生

系统中利用非对称密钥加密算法进行数字签名,首先必须完成的工作就是密钥对的生成。Java中的KeyPairGenertor类提供了创建用于非对称加密的密钥对的方法,密钥对创建好后封装在KeyPair类型的对象中。具体过程如下:

(1) 创建密钥对生成器。

首先通过工厂类KeyPairGenerator的静态方法getInstance()生成一个KeyPairGenerator 类的对象,传入参数为非对称加密所使用算法,常用RSA,DSA等,这里使用RSA算法[7]。

KeyPairGenerator KeyGen = KeyPairGenerator.getInstance("RSA");

(2)初始化密钥对生成器。

通过KeyPairGenerator类中的initialize初始化,传入的两个参数为强度和随机数源,强度一般为1 024,随机数源由SecureRandom类的对象自动生成一个原始值[8]。

KeyGen.initialize( 1024, new SecureRandom() );

3.2.2 使用私钥对日志信息进行数字签名

日志信息产生后,利用MD5强加密消息散列算法对信息计算消息摘要,然后利用RSA非对称加密算法进行数字签名。Java.security包中的Signature类提供了进行数字签名的方法。Signature对象的initSign()方法传入私钥,执行update()方法可以将原始数据传递给Signature对象,然后执行sign()方法即可得到消息验证码[9]。具体过程如下:

(1) 获取要签名的数据。

用户的每一次系统操作都将产生操作记录,将用户的用户名、操作类型、操作的文件名、操作时间作为┮惶醪僮骷锹迹存在message.dat文件中,通过文件输入流将其读入字节类型数组data中。

FileInputStream f = new FileInputStream("message.dat");

int num = f.available();

byte[] data = new byte[num];

f.read(data);

(2) 获取私钥。

生成的私钥保存在private_key.dat文件中,通过文件流读入私钥存放在RSAPrivateKey类型的变量中,用于加密日志信息。

FileInputStream f2 = new FileInputStream("private_key.dat");

objectInputStream b = new ObjectInputStream(f2);

RSAPrivateKey prk = (RSAPrivateKey)b.readObject();

(3) 获取Signature对象。

通过Signature的getInstance()方法获取对象,方法的参数指定了签名所用的算法,包含了计算消息摘要所用的算法和加密消息摘要所用的算法。系统中使用的是MD5和RSA算法[10]。

Signature s = Signature.getInstance("MD5withRSA");

(4) 用私钥初始化Signature对象。

使用Signature对象的initSign()方法初始化Signature对象,参数为加密使用的私钥,以后就可以用此加密日志信息。

s.initSign(prk);

(5) 传入要数字签名的数据。

将保存在data数组中的用户操作信息传入,进行数字签名。

s.update(data);

(6) 执行数字签名

byte[] signdata = s.sign();

签名之后,得到的签名信息是二进制代码,通过编码类将二进制的信息转化成String类型,然后将String类型的签名结果保存在日志信息表中,以便查看日志时进行验证[11]。

BASE64Encoder base64Encoder = new BASE64Encoder();

String sign = base64Encoder.encode(signeddata);

4 结 语

日志系统中,提供利用Java安全机制实现了数字签名,对于用户的操作日志签名保证了日志信息的完整性,及时了解日志信息是否被修改。

在下一步工作中,对于系统中的用户包括管理员的身份认证、用户权限以及用户操作的授权管理方面等可以做一进步的工作,使得系统的安全性更强。对于日志系统,在日志的收集归类及日志分析方面还应进一步完善。提供利用Java安全机制实现了数字签名,对于用户的操作日志签名保证了日志信息的完整性,及时了解日志信息是否被修改,对同类研究具有一定的借鉴性。

参考文献

[1]沈明.基于网页日志的频繁模式挖掘[J].现代电子技术,2010,33(9):181-182.

[2]赵玲.屏幕锁定系统的设计与实现[J].现代电子技术,2009,32(14):61-64.

[3]李顺.基于身份签密的安全通信系统[J].现代电子技术,2010,33(16):67-69.

[4]王力.图书馆信息检索机安全配置策略[J].现代电子技术,2010,33(1):50-54.

[5]郭金生.CA数字证书安全平台构建与研究[J].现代电子技术,2010,33(6):7-10.

[6]阴国富.无线局域网安全加密算法的研究[J].现代电子技术,2009,32(8):103-105.

[7]梁潘,冯朝胜.基于分层身份加密的教务系统信息安全解决方案[J].桂林电子科技大学学报,2010(3):76-78.

[8]杨晓茹.基于椭圆曲线的签密方案[J].电脑知识与技术,2010(15):127-129.

[9]张明武.两种签密方案的安全性分析及改进[J].电子与信息学报,2010(7):82-84.

[10]张明武.密文匿名的高效前向安全短签密方案[J].北京邮电大学学报,2010(4):117-119.

[11]肖现华.基于密钥管理和安全认证的网络预付费系统研究[J].微计算机信息,2011(3):65-67.