精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇百家争鸣◇>>腾讯公司就《OICQ脆弱的加密机制》发表的声明及我的看法

主题:腾讯公司就《OICQ脆弱的加密机制》发表的声明及我的看法
发信人: williamlong(蓝色月光)
整理人: williamlong(2001-12-19 18:52:52), 站内信件
腾讯公司就《OICQ脆弱的加密机制》发表的声明及我的看法 
 
 
http://www.china4lert.org 红色警戒 08-13-2001 23:38:33 阅读10次 上一篇 下一篇 
 
 
 
腾讯公司声明如下: OICQ密码的确几乎是明文存放的,不过只在自动登陆时成立。当OICQ设置成自动登陆后密码只是经过了简单的可逆变形就存到一个文件里,很容易可以算出来。 如果当前帐号可以自动登陆,任何人点OICQ的图标就可以直接登陆进这个号码了,甚至连密码都不用知道,根本就不需要破密码, 密码已经没多大意义了。自动登陆不适合在网吧内使用,它是最不安全的, 只适合在电脑使用者固定的情况下使用。 

腾讯公司的声明当然有他的说法,我不能说有什么不对的地方,但是有一点需要说明的是,现在Windows NT和IIS的漏洞那么多,获取远程主机上的一个文件应该很容易吧?是不是比下载SAM文件简单的多?而破解OICQ的这个oicq2000.cfg文件是不是又要比破解SAM文件简单的多呢?更进一步的话我不用说了吧? 

至于这个问题,我觉得不应该把全部责任都归究到用户的身上,这样做是因为用户设置的问题?你也好意思这么说?!自己的加密机制出现漏洞怎么能怪用户呢?要是按照你这个逻辑的话,那这不能怪用户,还是应该怪那些偷人家密码的人,如果没人偷,自然没有这个问题了,是吧? 

我很讨厌很多公司那种出现漏洞就责备是用户的责任的做法,当然,的确是用户设置问题的除外。 
当然,OICQ这个软件的确很好,可以称得上是一个优秀的国产软件,如果腾讯公司能够虚心的听取大家的建议和意见,把这个软件做的更好,那不是能赢得更多的用户吗?这样好象对腾讯公司本身也没有损失啊,相关,只会增加在用户心中的好感,难道不是吗? 


OICQ脆弱的加密机制 

作者:analysist 
网站:红色警戒 http://www.china4lert.org 

因为公司里的空气实在令我感到窒息,而本来就不想去完善那个所谓的无线电子邮局的我,正好找到一个可以不干活的理由。其实,我并非是真的不想干活,主要是因为分配给我的活向来就不称我的心意。刚开始时打算做些编程开发的事情,但是我却被分配去做网站,真是大材小用嘛!然后,又是去做一些理论上的研究。 

等到我已经把编程都淡忘的时候,编程开发的事情终于来了,而我却已经忘了怎样编程,更可气的是,这些活又催得那么紧,哎!真不知道自己能不能干完! 

头晕目眩,正在这时,一个网友发来一条消息,不知道为什么,我突发奇想,打算研究一下OICQ的密码破解方法,因为据我所知,目前还没有什么有效的OICQ密码破解工具呢!以前比较有名的就要算OICQPassOver和OIQHACK了,前者使用的是穷举的方法,对付一些比较弱智的密码还可以,但是象~!@qaz&165这样的密码呢? 

真不知道哪辈子会算出来?!至于后者,虽然可以远程破解密码,但是使用的无非还是穷举,效果自然也是不敢恭维了!这两者的区别在于前者只能是本地破解,可以在离线状态下进行,而后者随然可以远程破解,但是必须在连线状态,另外,要编制这样的程序必须非常清楚的了解OICQ的协议,所以对于一般人来说,想知道这个破解的原理恐怕是很难的。 

而我下面将要介绍给大家的这种方法,相信凡是有一点计算机常识的人都是可以看得懂得的。好的,下面我就向大家介绍OICQ的加密机制的多么脆弱,多么不堪一击!本文的OICQ测试版本是OICQ 99C Build 0820, 至于其它版本是否存在相同问题就不得而知了。 

我推崇的是实例教学,先看一个例子,这是默认安装完OICQ后产生的一个文件,就是它,包含了OICQ使用者的密码信息,对Win9X而言,路径是C:\Program Files\Oicq\dat\oicq2000.cfg。我们用UltraEdit打开它: 

  滔葡扇缮  30906766 

能看得懂吗?看得懂才怪,呵呵。。。我们选择Edit->Hex Edit,这下呢?有点眉目吧?我真心向大家推荐这个十?  票嗉?--UltraEdit,因为它的功能实在是太强大了。知道我为什么知道是这个文件包含OICQ使用者的密码信息吗?就是靠的这个软件,因为它有实时文件监视功能哦! 用UltraEdit打开OICQ目录中你认为可能包含使用者密码信息的文件,然后执行一次修改密码的操作, 之后返回UltraEdit主界面,看到什么? 
是不是提示有文件被改动了,呵呵。。。这就是包含密码信息的文件啦!怎么样?看到它的强大功能了吧?! 
慢慢发掘吧,应该有很多的说!~ 
这个文件的十六进制格式如下: 

00000000h: 01 00 00 00 08 00 00 00 CC CF C6 CF C9 C8 C9 C9 ; ........滔葡扇缮 
00000010h: 01 00 00 00 08 00 00 00 33 30 39 30 36 37 36 36 ; ........30906766 

经过分析(呵呵。。。我喜欢分析,所以我叫analysist),我大概清楚这个文件的格式了,第一个01应该表示这是最后使用的OICQ号码,也就是最新使用的OICQ号码。随后的00 00 00应该是分割符, 然后的08表示密码是8位的,然后又是分割符,然后是加密的密码,然后的01表示本文件包含1个OICQ号码,然后是分割符, 然后的08表示OICQ号码是8位的,然后是分割符,接着就是OICQ号码的ASCII值。其实, 如果你多看几个这样的文件的话,可能会看到包含多个OICQ号码的情况,其实情况大同小异,所以这里就以这个文件, 这种形式来分析了,其他情况可以类推。 

经过进一步的分析,终于搞明白了这个加密的机制。首先要说的是,30906766是我的OICQ号码, 测试密码是30906766,请看下面: 

3 CC 33 
0 CF 30 
9 C6 39 
0 CF 30 
6 C9 36 
7 C8 37 
6 C9 36 
6 C9 36 

看到了吗?第二行的0和第四行的0对应的CF是相同的,因此,直觉告诉我这是一种对称加密方法。再分析一下,0到9递增,CF到C6递减,呵呵。。。和是一样的,不会那么简单吧?再试一下其它的密码,如下: 

00000000h: 01 00 00 00 08 00 00 00 9E 9D 9C 9B 9A 99 98 97 ; ........灊湜殭槜 
00000010h: 01 00 00 00 08 00 00 00 33 30 39 30 36 37 36 36 ; ........30906766 

验证一下: 

a 9E 61 
b 9D 62 
c 9C 63 
d 9B 64 
e 9A 65 
f 99 66 
g 98 67 
h 97 68 

不对了!那么,会是什么加密方法呢?我没灰心,想到了ASCII值,而ASCII值也是递增的,不会是后2项的和吧?经过对数字,小写字母,大写字母和特殊字符的验证,事实证明我的推断是正确的。 

呵呵。。。原来OICQ的加密机制如此脆弱,如此不堪一击啊! 

这样,只要你能访问到这个文件,那么得到其中的OICQ密码是不是如探囊取物一般容易呢?:P 当然,你只能拿到最后使用的用户的密码,但是这不就很好了吗?! 

我曾试过手工修改密码来登陆,结果出现的情况和我在《BBS2000和BBS3000中存在的隐患》中描述的一样,但是因为我没有做进一步的研究(主要是太冷了!),所以我就没有多少发言权了,也许只要你经过一些简单的测试就能发现服务器会自动把你指定的OICQ的密码发给你也说不定哦! 

郑重声明:这种方法具有比较严重的破坏性,尤其是对于公共上网场所危害更大,所以本方法只能用于找回自己遗忘的密码,不能用于破解别人的密码,否则因此所引起的法律问题,本人概不负责!另外,本文所有版权归作者analysist,如转载请保持文章完整性并注明出处!!! 


----
   

[关闭][返回]