收藏 分享(赏)

基于md5的文件完整性检测软件设计.doc

上传人:cjc2202537 文档编号:196932 上传时间:2018-03-23 格式:DOC 页数:14 大小:45KB
下载 相关 举报
基于md5的文件完整性检测软件设计.doc_第1页
第1页 / 共14页
基于md5的文件完整性检测软件设计.doc_第2页
第2页 / 共14页
基于md5的文件完整性检测软件设计.doc_第3页
第3页 / 共14页
基于md5的文件完整性检测软件设计.doc_第4页
第4页 / 共14页
基于md5的文件完整性检测软件设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、基于 MD5 的文件完整性检测软件设计第 20 卷第 l 期2007 年 3 月湖南理工学院(自然科学版)JournalofHunanInstituteofScienceandTechnologyaturalSciencesVoJ.2ON0.1Mat.2007基于 MD5 的文件完整性检测软件设计郑光明,胡博(湖南理工学院计算机系,湖南岳阳 414006)摘要:防范网络攻击最常用的方法就是使用防火墙, 但是仅仅使用防火墙来保护内部网络安全是不够的.论文研究并设计了一个文件完整性检测软件,可以弥补防火墙保护内部网络安全的不足.它采用 MD5 算法,对某些敏感文件进行多次测,若当前检测的信息摘要值

2、与上次不同,则说明该文件已被修改.在入侵者进入系统后,而让系统文件并不改动是非常困难的,因而该软件能检测系统可能受到的攻击.关键词:文件完整性;MD5;网络安全;入侵检测中图分类号:TP391 文献标识码:A 文章编号:l672 5298(2007)0l-0035-04Thedesign0ffileintegritycheckingsystembased0nMD5ZHENGGuang.ming.HUBo(Dept.ofComputer,HunanInstituteofScienceandTechnology,Yueyang414006,China)Abstract:Firewallisusua

3、llyusedtoprotectnetworkagainstattacks,butitisnotpowerfulenoughtoprotectintranet.AfileintegritycheckingsystemwasproposedwhichbasedonMD5,itCanmakeuptheshortageoffimwal1.ThesamemessagedigestCanbegotfromcheckingthesamefileindifferenttimesiffileWasnotchanged.SothesystemCanfindattacksbythedifferenceofthed

4、igestofthesensitivefiles.Keywords:fileintegrity;MD5;networksecurity;invasiondetection随着计算机技术的迅速发展,由计算机处理的事务从单机系统向网络迁移.网络技术的普及,攻击工具和技术的公开,也给一些人创造了破坏网络的可能,黑客攻击的案例已经屡见不鲜,但是在国内,网络安全还未得到足够的重视.防范网络攻击最常用的方法就是利用防火墙技术,经过仔细的配置,通常能够在内外网之间提供安全的网络保护屏障,降低内部网络受攻击的风险.但是,仅仅使用防火墙来保护内部网络安全是远远不够的.首先,人侵者可以寻找防火墙背后可能敞开的后门

5、.其次,防火墙完全不能阻止内部袭击,对于来自内部局域网的攻击,防火墙形同虚设.第三,由于性能的限制,防火墙通常只能实现粗粒度的过滤,无法提供实时的人侵检测能力.文件完整性检测系统是近年出现的新型网络安全技术,它可以弥补防火墙的不足,为网络安全提供实时的入侵检测及采取相应的防护手段.1 文件完整性检测简介系统的安全是一个体系,它建立在各种安全机制集成的基础上.人侵检测系统作为系统安全的一道重要防线,主要是通过多种手段监控系统来发现人侵.文件完整性检测是通过检测系统关键文件的变化情况来为人侵的发现提供依据.1.1 文件完整性检测的引入一旦人侵者成功侵人系统后,为逃避检测和方便下次进人,首要的事就是

6、更换系统文件,代之以后门程序.因此,发现人侵行为很重要的一个方面就是保证数据和系统文件的完整性.一般对文件完整性的保护采用 32 位 CRC 校验(循环冗余校验).然而,高级人侵者已经可以使用特殊技术骗过 CRC 校验.因而我们需要采用更多更安全的方法来检测.收稿日期:2006-10?08.作者简介:郑光明(1973.), 男 ,讲师,硕士,主要研究方向:数据库系统与信息安全.36 湖南理工学院(自然科学版)第 20 卷1.2 文件完整性检测的基本思想文件完整性检测的根本思想就是:将被入侵的系统的状态和未被入侵的系统的状态相比较.在建立了正确安全的初始系统状态后,检测程序定期醒来,根据初始系统

7、状态检测当前系统状态,发现可疑或非法的变动,触发警报和通知系统管理员.另外,正确的系统状态也被经常更新.由此,要实现一个完全的检测功能,至少需要以下几部分:正确安全的系统状态 ,预先定义的被检测项目和一个进行定期检测的程序.1.3 文件完整性检测的内容具体对文件检测时,要考察哪些内容呢?这是涉及到检测有效性的核心问题.不同的操作系统,关键的文件也不一样,抽取系统的关键文件采用密码学的方法来检验文件的完整性.在 Unix 系统中,仅用sum 和 cksum 这两个命令来检验完整性是远远不够的 ,因为它们是用来检验偶然的修改,不足以阻止入侵者恶意产生特定的校验和行为.由于常用的 MD5 算法的单向

8、性,人侵者很难逆推,也极难找到两个随机信息使其产生相同的摘要,从而使产生的摘要具有高度安全性,它适合于安全快速的产生摘要.文件完整性检测原理目前流行的入侵检测方式是滥用检测和异常检测相结合的方式.滥用检测只能检测己知的入侵模型并且依赖于审计数据的完整性,因此存在入侵漏报的情况;异常检测系统是基于入侵是异常行为的子集这一前提,并非所有的入侵行为都是异常的并且并非所有异常行为都是入侵,因此异常检测中常常存在漏报和误报.但这两种检测方式结合的技术依然不能满足准确无误地检测入侵行为的需求.通常入侵者入侵时都会对一些文件进行改动,那么采用对文件进行完整性检验就会检测出对文件的更改,从而可判定入侵.因此本

9、文提出了基于完整性检验的入侵检测技术.2.1 完整性检测的相关问题大部分计算机系统的核心是文件系统.文件系统包含用户数据,可执行程序,配置和认证信息和操作系统本身.检测文件系统的非授权改变和不可预料的改变给系统管理员保护他们的系统提供了宝贵的数据.文件系统是比较普遍的被攻击的目标,入侵者通常修改系统配置和程序以便于下次进人系统.通常修改系统日志来掩盖他们的人侵路径和阻碍人侵的发现.用户文件的修改和破坏将会损坏安全策略,并导致服务的降级和拒绝.因此,安全管理员需要紧密地检测文件内容的完整性.在设计中有几个关键问题需要考虑:检验方式的选定,被检测的文件的选择 ,备份数据的存放及安全问题,主机与备份

10、主机的认证及安全通信问题,用于检验的基准数据库的存放及安全问题.2.2MD5 算法MD5 的全称是 MessageDigestAlgorithm5,在 9O 年代初由 MIT 的计算机科学实验室和 RSADataSecurityInc 发明,经 MD2,MD3 和 MD4 发展而来.MessageDigest 泛指信息流(Message) 的 Hash 变换 ,就是把一个任意长度的信息流变换成一定长的大整数.MD5 将任意长度的信息流变换成一个 128bit 的大整数,并且它是一个不可逆的字符串变换算法.换句话说就是,即使你看到源程序和算法描述,也无法将一个 MD5 的值变换回原始的字符串,从

11、数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数.MD5 还广泛用于加密和解密技术上在很多操作系统中,用户的密码是 I)2MD5 值(或类似的其它算法)的方式保存的,用户 Login 的时候,系统是把用户输入的密码计算成 MD5 值,然后再去和系统中保存的 MD5 值进行比较,而系统并不“知道“ 用户的密码是什么 .由于 MD5 算法的散列值计算的快速性和很高的安全强度,使它成为目前比较流行的散列算法.MD5算法以任意长度的信息作为输人,其处理操作包括以下几个步骤:1)加填充位 .对输入信息进行填充使信息的长度(比特数)448 模 512 同余(长度=448mod51

12、2),填充的最第 1 期郑光明,胡博:基于 MD5 的文件完整性检测软件设计 37高位为 1,其余位为 0.2)附加长度值.将用 64 位表示的初始信息(填充前)的位长度附加在步骤 I 的结果后(低位字节优先).如果初始长度大于 64,仅使用该长度的低 64 位.这样,该域所包含的长度值为初始信息长度模 64 的值.这两步的结果将产生一个长度为 512 整数倍比特的信息.经扩展的信息表示成512bit 的分组序列 Y0,Y1,YL.1,扩展信息的长度等于 512“L.3)初始化 MD5 的缓存.使用一个 128bit 的缓存来存放该散列算法的中间及最终结果.该缓存表示为 4个 32bit 的寄

13、存器(A,B,C,D),这些寄存器被初始化为如下 32bit 长的整数:A=67452301;B=EFCDAB84;C=48BADCFE;D=10325476.这些值以小数在前的格式存储,即字的低位字节放在低地址字节上.4)处理 512bit(16 个字) 信息分组序列.算法的核心是包含 4 个“ 循环“的压缩函数.4个循环有相似的结构,但每次循环使用不同的原始逻辑函数,在说明中分别表示为 F,G,H 和 I.每一循环都以当前的 I 在处理的 512bit 分组(Yq) 和 128bit 的缓存值 ABCD 为输入 ,然后更新缓存的内容.每个循环还使用一个 64 元素表TO.641 的四分之一

14、 ,该表通过正弦函数构建.T 的第 i 个元素(表示为 T【i】)的值等于 232abs(sin(i)的整数部分值,其中 i 的单位是弧度.因为(abs(sin(i)是 0 到 1 之间的数,因此每个 T 的元素值均能用 32bit示.这个表提供了一个“随机化“ 的 32bit式集,它将消除输入数据的任何规律性.第四次循环的输出加到第一次循环的输入(CVq)上产生 CVq+l.5)输出 .所有 L 个 512bit 的分组处理完成后,第 L 阶段产生的输出便是 128bit 的散列值.2.3 基于文件完整性检测的检测能力对于攻击者采用何种漏洞的攻击方式,对基于文件完整性检验的检测技术来说是透明

15、的,它只在一个重要的前提下才能够发挥作用,那就是入侵者在入侵时会对文件做一些非法的修改.这时基于文件完整性检验的检测技术才有用武之地.通常的攻击步骤是先扫描,然后侵入,最后建立 Trojan(后门 ),以便下次进入,并且擦掉痕迹.对于这种通常的攻击,由于入侵程序建_.TTrojan,则必然修改了系统的配置文件,则只要该配置文件在基于文件完整性检验的配置文件的配置项所指定的要检验的文件中,那么就能够检测到入侵的发生;否则无法检测到人侵的发生 .对于着名的 Mimick 攻击来说,它成功入侵后会对/shostJ行非法修改;对于特洛伊木马来说,成功入侵后,它用别的文件替换已有的文件;对于 Linsn

16、iffer来说,它成功侵入后修改-f/etc/passwd 文件,添加新的用户.这时基于文件完整性检验的检测技术将能非常准确地检测出入侵的发生.通常入侵痕迹是记录在日志文件中,日志文件并不在检验的范围内,所以基于文件完整性检验的检测技术无法根据入侵痕迹检测到入侵的发生.对于利用网络协议的脆弱性对网络服务质量的攻击,基于文件完整性检验的检测技术很难发挥作用,因为这种攻击没有对文件系统造成非法修改.例如 sYN 淹没攻击,攻击者根本不想完成 3 次握手过程建立起正常的连接,它的目的只是等待建立每一特定服务的连接数量超过系统的限制数量,使被攻击的系统无法建立关于该服务的新连接.类似的还有 ICMP

17、攻击,Teardrop,Land 和 IP 分段攻击等 .另外基于文件完整性检验的检测技术并不具备堆入侵行为检测的实时性,它检测一遍的时间取决于被检测的文件系统的空间大小,时间和文件系统的大小成正比.通常这三种检测技术结合使用,在功能上互补,增强了检测能力.基于文件完整性检验的检测结果还为文件系统的恢复提供重要的依据.因此研究文件完整性检验的技术对于入侵检测和文件系统的恢复有重要的意义.2.4 文件完整性检测系统的优点从数学上分析,攻克文件完整性检测系统,无论是时间上还是空间上都是不可能的.实际上,文件完整性检测系统是一个检测系统被非法使用的最重要的工具之一.文件完整性检测系统具有相当的灵活性

18、,可以配置成为监测系统中所有文件或某些重要文件.当一个入侵者攻击系统时,他会干两件事,首先,他要掩盖他的踪迹,即他要通过更改系统中的可执行文件,库文件或日志文件来隐藏他的活动;其次,他要作一些改动保证下次能够继续入侵.这两种活动都能够被文件完整性检测系统检测出.38 湖南理工学院(自然科学版)第 2O 卷3 文件完整性检测软件设计根据软件工程中软件设计步骤要求,并结合实际,完成对文件完整性软件的设计与实现.根据文件完整性检测的基本思想,确定软件程序的组织结构,划分程序的功能模块;根据文件完整性检测的基本内容以及几种加密算法的比较确定程序的核心算法,编写各模块实现方法,从而简单实现文件完整性检测

19、软件的各项功能.3.1 软件的功能设计要求文件完整性软件的功能设计要求为:建立了正确安全的初始系统状态 ;检测程序手动或者定期醒来,根据初始系统状态检测当前系统状态;发现可疑或非法的变动 ,程序立即通知管理员;软件生成日志记录文件完整性检测情况.3.2 程序的组织结构根据软件设计目的和要求,规划程序的组织结构如下图 l 所示:3.3 程序中各功能模块设计3.3.1 文件加密功能模块本模块主要实现的是对任何文件进行 MD5 加密,将任意长度的“字节串“ 变换成一个 128bit 的大整数.在软件运行之初,加密得到的是文件初始状态的信息摘要值,本次加密在添加文件过程中完成;在程序运行以后,再由手动检测或者自动检测模块调用,对已经加密的文件再次进行 MD5 加密,并取得其当前状态的信息摘要值.文件进行加密以后取得的信息摘要值将以文件的形式保存在程序运行目录下的“MD5“命名的文件夹中,信息摘要文件以该源文件的文件名作为文件名,md5 为文件扩展名.3.3.2 批处理文件监控模块文件完整性检测软件系统文件初始状态加密模块批处理文件监控模块文件兀整性手动检测模块图 1 程序组织结构图文件兀整性自动检测模块软件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报