中国移动飞信简介:
  飞信是中国移动推出的一款承载商务应用及娱乐功能的即时通信产品,通过PC或手机终端,用户可随时随地实现文字、语音沟通,满足了手机用户之间对于深度沟通的需求,只要中国移动网络覆盖到的地方,您就不会失去与您好友的联系.飞信为用户提供了一个不受约束的、无限制的通讯沟通和交流平台。
   飞信的推出可以说是延续着中国IM市场基本借鉴抄袭韩国IM市场的模式,凭借着移动运营的巨大优势,强力推出上线,飞信虽然目前还处于推广阶段,但是可以预见将来手机-PC交互通信功能进一步加强完善后的巨大市场潜力和对IM市场占有的巨大冲击.
   这里我不多说飞信有多好多好将来多有前途和钱途,只是在用它觉得挺方便就顺便对它的安全性做一点点分析.前几天在CSDN上看到广告说飞信超安全什么的,没有什么木马盗号之类的, (原广告我不记得怎么说了,大概就这意思).我笑,再好的盾也会有矛可以刺破,没有木马盗号只是因为这东西刚出来人们还没有意识到它的价值而已,这样的宣 传,哄哄小孩还行,哄程序员,呵呵.就让我来一探虎穴吧.
   下载飞信,安装,一看居然还是.Net 2.0写的,有点高兴,从事.Net开发一直的苦恼就是.Net的运用在中国还是很难推广,希望中国飞信的成功也能顺便带更多动国内.Net企业的成功,言归正传,登录飞信主 界面,输入帐号密码,不点登录,拿出spy++来看看,一看晕惨了,居然ComBox和Edit能直接得到句柄...,没做任何处理,没有MSN的 DirectUI也没有QQ的np保护,剩下的结果就是:
   
    看到什么?直接密码都出来了,而且是未加密的密码,到这里懂程序的因该明白了吧.这还有安全性可言?随便给TextBox发个消息就把密码取出来了...
    继续往下深入分析,飞信默认的方式是保存用户密码,既然启动飞信的时候能够解密还原密码,说明密码存放在本地的方式是可以还原的.而.Net的程序未加保护的情况下用 Reflector看就几乎是源码级别了,飞信客户端未做任何混淆加密处理(可能是为了稳定性),耐着性子看了看代码,得到它的存储方式是把配置经过简单的加密放在xml 文件里,配置中的密码部分是用DES再次加密了的,但是两个解密所需的Key....
    这里我只简单说下这样的加密方式是非常不安全的,考虑到危害性具体解密代码不公开了,有兴趣的 自己去读Reflector,很容易就把源码拷出来了,猜想如果飞信服务端用的是hash比较而非明码比较,客户端为何不存储hash的password?这样即使解密了也只能得到一个 hash过的pass,飞信啊,本地保护如此脆弱,让人怎么放心呢?
    我根据飞信的方式简单做了个passReader,下面是几张截图
 
    程序exe和代码都不会发布,发图只是想说明飞信有待改进.
    飞信的网络传输方面,用的是https协议,没去分析,因该是比较安全.

    另外发现一个比较有意思的东西,飞信目录 下有个VMDotNet,而未安装.Net2.0的机器上能运行飞信却不能运行我的程序,也就是说飞信包了个VM...,能自己读.Net包中的内容而无 需安装.Net环境...  不知道怎么实现的,想知道技术细节:)

     本文只是纯技术角度分析飞信的不安全因素,希望飞信的工程师们看到此文后会对下一版本有所改进:),毕竟,人人都想用相对安全的IM软件:) 而且飞信的免费短信很是不错^o^


posted on 2007-05-01 00:45  Red_angelX  阅读(7349)  评论(5编辑  收藏  举报