Windows Me压缩加密的重大漏洞及探索
较Windows98一个重要的优势在于,它能直接浏览Zip格式文件,并且它还能将Zip格式的图标改成类似普通文件夹的图标,很类似一款著名的软件Zipmagic,而且只需点击鼠标右键,便能对它进行加密解密,而且还可以在不解密情况下,浏览压缩文件夹的名称,这大大提高WindowsMe对Zip的竞争力,从而使Windows几乎无所不能,大有一统天下之势。
然而,微软件并非万能,它的许多技术都是从其它公司买过来的,虽然它也拥有这些软件的技术,甚至已将它整合进操作系统,但不代表微软公司对之了如指掌。正如微软件公司买下PcAnywhere一下,同样,微软件公司的WindowsMe中集成的压缩加密技术也可能是从其它公司买下的,只是微软好象没有宣称。同时我对微软件公司的产品存在一定的疑虑,其安全性一直令人怀疑,本文旨在探索WindowsMe自带压缩加密的安全性问题,以引起网友们注意。
一般的,微软件公司总习惯将自己的密码保存在系统中某一特定的文件中,如开机密码在“用户名.pwl”文件中,屏幕保护密码则在注册表中,那么压缩加密文件信息是如何保存的呢?
我先试着加密某一文件,如取名"我的文章.doc",先压缩,然后加密,密码为111。然后通过windows的搜索功能,查一查什么文件包含有“我的文章”这些字符,结果令我惊奇的发现,在C:\wimdows目录下(我的系统默认目录即为windows)有一个文件:DYNAZIP.LOG,它清楚记录着我刚刚加密的全部信息。现摘录如下(;后面为我的注释):
DynaZIP ZIP Diagnostic Log - Version: 3.00.16 - 12/06/01 15:28:38 ---;压缩加密程序的名称及版本信息,可能购买的是DynaZIP程序。包括压缩的详细时间信息
Function: 5
lpszZIPFile: 0x004d3a68 ;贮存密码重要信息
C:\WINDOWS\Desktop\我的文章.zip ;加密文件的原位置
lpszItemList: 0x005ae0e4 ;
"我的文章.doc";压缩前文件的名称
lpMajorStatus: 0x00000000 ;以下为加密全过程
lpMajorUserData: 0x00000000
lpMinorStatus: 0x00000000
lpMinorUserData: 0x00000000
dosifyFlag: 0
recurseFlag: 0
compFactor: 5
quietFlag: 1
pathForTempFlag: 0
lpszTempPath: 0x00000000
???
fixFlag: 0
fixHarderFlag: 0
includeVolumeFlag: 0
deleteOriginalFlag: 0
growExistingFlag: 0
noDirectoryNamesFlag: 0
convertLFtoCRLFFlag: 0
addCommentFlag: 0
lpszComment: 0x00000000
???
afterDateFlag: 0
lpszDate: 0x00000000
oldAsLatestFlag: 0
includeOnlyFollowingFlag: 0
lpszIncludeFollowing: 0x00000000
???
excludeFollowingFlag: 0
lpszExludeFollowing: 0x00000000
???
noDirectoryEntriesFlag: 0
includeSysHiddenFlag: 1
dontCompressTheseSuffixesFlag: 0
lpszStoreSuffixes: 0x00000000
???
encryptFlag: 1 ;表示加密,0表示解密
lpszEncryptCode: 0x733b85d4 ;经加密算法处理后的密码
111 ;加密的原密码
lpMessageDisplay: 0x733ad937 ;经加密算法处理后显示的密码,与加密后密码不同,主要防止某些破解工具直接窃取密码,这是第二层算法加密,增加破解的难度
lpMessageDisplayData: 0x00000000 ;防止密码被盗用
wMultiVolControl: 0x0000
wZipSubOptions: 0x0000 ;压缩中是否包含下级文件夹
lResv1: 0x00000000
lResv2: 0x00000000
lpszExtProgTitle: 0x00000000
???
lpRenameProc: 0x733a39ff
lpRenameUserData: 0x005ae3f6 ;用户数据
lpMemBlock: 0x004d6444
lMemBlockSize: 20356
从以上信息可以看到,全部加密过程一目了然。如果对同一文件采取不同的密码加密,然后分析其加密算法,便能完全破解其加密方法。虽然采取了双层加密,即经加密算法加密后的密码再经过一层加密,以防止被某些软件的窃取和分析。其本意可能是好的,但由于微软件系统本身的缺陷,导致这一措施显得苍白无力。
那么,解密时又是怎样的呢?现与加密的部分数据对比,请看下面(;后为注释):