《程序员》官方BLOG

欢迎热心的读者随时与我们交流,您的支持是我们最大的动力!

用户操作
[即时聊天] [发私信] [加为好友]
《程序员》编辑ID:programmer_editor
1051901次访问,排名24好友0人,关注者72
programmer_editor的文章
原创 186 篇
翻译 1 篇
转载 3 篇
评论 1364 篇
最近评论
gms810:说的不错
davil_dev:我比较喜欢Firefox!
bluesz56788:有具体的出版日期进行发布吗。
kwlong2008:我是做网站建设的,来看看你的空间,不错,欢迎踩我的网站制作空间!
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
文章分类
收藏
    相册
    《程序员》08年封面秀
    06年《程序员》封面秀
    07年《程序员》封面秀
    Logo
    编辑部合影
    调查分析图表
    模版
    文章用图
    新年祝福,名家寄语
    友情链接
    博文视点
    杂志订阅
    杂志订阅
    征文启事
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 《程序员》07年3期文章试读:网银安全大揭秘—摇摇欲坠的达摩克利期剑收藏

    新一篇: 《程序员》07年3期文章试读:亿万用户网站MySpace的成功秘密 | 旧一篇: 《程序员》07年3期文章试读:调试之剑

     网银安全大揭秘
    —摇摇欲坠的达摩克利期剑

    记者/常政 欧阳璟

    "达摩克利斯之剑"的典故来自古希腊某个历史故事:公元前四世纪叙拉古王国的重臣达摩克利斯,一次参加国王迪奥尼修斯主持的大庆宴会时,抬头看到在自己的坐位上方天花板下,沉甸甸地倒悬着一把锋利的长剑,剑柄只有一根马鬃系着,眼看就要掉在头上,吓得他离席而逃。原来这是迪奥尼修斯为了向大家倾诉做国王的真实感受,特地设的局。迪奥尼修斯说:"(达摩克利斯头上)这把利剑就是每分钟都在威胁国王的危险象征,至于国王的幸福和安乐,只不过是表面现象而已。"从此,人们常用"达摩克利斯之剑"比喻安逸祥和背后所存在的危机。而这也正是众多中国网民对目前的网上银行服务的印象,据中国金融认证中心(CFCA)最近发布的《2006中国网上银行调查报告》显示,受"网银大盗"影响,61%的网民不敢使用网上银行……


    纵观历史,自从人类进入以“劳动分工”为标志的文明时代以来,需求的多样化、劳动产品的相对过剩使得“交易”成为人类的主流社会活动方式;而为了使交易活动更加合理,便捷和高效,无论是从设备工具还是方法上,人类的探索和创新从未停止过,从最初简单的物物交换,到衍生出一般等价物,到货币的产生……漫漫几千年,有两个标志意义的事件值得关注:1171年,意大利威尼斯成立了世界上第一家银行,它接受存款,以钱币的重量记账,并保有百分之百的现金准备; 1995年,以互联网技术为支撑,顺应金融电子化趋势,世界上第一家“网上银行”——“安全第一网上银行”(Security First Network Bank)在美国成立。所谓网上银行,根据来自中国金融认证中心的安全专家关振胜介绍,“网上银行,就是通过Internet作为业务提交渠道,帮银行业务通过网关衍生到互联网上的每一个终端用户(企业或者个人用户)。”
    关振胜认为,由于网上银行能够打破时空的限制,以任何时间、任何地点、任何方式为顾客提供金融服务,所以网银与传统银行相比,不仅促进了金融业务的创新(如个人理财、网上证券等),更重要的意义是,它大大削减了整个银行运作成本。据业内分析,网银平均每笔交易成本是0.01元,而传统的银行实体据点,因有租金、装修、人事成本及其他设备等费用,平均每笔交易成本高达1.07元。对此,相信中国工商银行行长一定体会深刻,2005年其网银的经营总额是50万亿,这个业务量相当于节省了整整2000多个物理网点。但凡事均有利弊,网银的出现,尽管一方面大大削减整个社会的金融运作成本和运作效率,但另一方面,尤其近几年来,由于其安全性的隐患,犹如打开了潘多拉魔盒,各种麻烦甚至灾难接踵而至:
    1.2005年,美国爆发了堪称迄今为止最大的金融数据泄密事件,有黑客侵入了为万事达、Visa、AmericanExpress和Discover服务的“信用卡第三方付款处理器”的网络系统,造成4000多万信用卡用户的数据资料被窃。
    2.2005年5月11日,储户庄某到晋江农行营业部业务窗口办理存款业务时,发现账户内的777万元存款不翼而飞,堪称迄今为止迄今为止国内网上盗窃个人存款金额最大案。
    3.2006年6月,“工行网银受害者维权联盟”(www.ak.cn)成立,正式向工行网上银行存在的安全隐患提出了维权的口号。至少1000多人用真实姓名登陆联盟网站,并留下了联系地址和失窃金额。
    4.2006年,某犯罪组织竟然在某银行的网银服务器内成功植入了木马程序,每隔0.5秒扫描一次,凡是此时登陆的客户,其帐号和口令通通被窃取。这一事件甚至惊动了国务院。
    ……
    以上触目惊心的事件,使我们不难理解中国金融认证中心(CFCA)最近发布的数据,据其《2006中国网上银行调查报告》显示,目前国内用户数量接近4000万,为2005年的两倍,但是,受“网银大盗”影响,高达61%的网民不敢使用网上银行。可见,由于近年来网银安全事件频频爆发,使得网银服务在多数网民心中,宛如头上悬挂着的一柄达摩克利斯剑,充满了危机和不确定性。而这种普遍不信任的心态,已经成为阻碍网银业务进一步扩展的最大瓶颈。当然完全相反的声音(认为网银就技术本身而言,其实十分安全的),也同样存在。那网银的安全性究竟如何?我们该不该申请网银服务?为了探究网银安全性的真相,有必要了解一下目前网银大盗们的主要攻击手段,因为“苍蝇不叮无缝的蛋”,一种攻击方式能否成功实施,取决于“安全漏洞”的客观存在,而这些疏漏的产生原因和特性,可以帮我们一窥网银真实安全性的端倪。

     网银大盗们的“破蛋壳攻略”

    据长期致力于黑客入侵研究,现为国内著名信息安全厂商江民科技研发部经理的戴硕的观点和提供的相关数据资料指出,目前黑客对网络银行的攻击主要采取以下几个途径:

    钓鱼网站和服务器攻击
    所谓“钓鱼”,即黑客首先建立一个酷似网银官方网站的假网页,用于诱骗用户输入帐号密码等信息,或者包含用于种植木马的恶意脚本。然后给假网页申请一个酷似官方网址的域名,等待用户由于拼写错误而连接进来;有时黑客也会花几十元购买一个包含几百万邮箱地址的数据库,然后向这些邮箱发送“钓鱼”(phishing)邮件。邮件内容通常包含煞有其事的文字,引诱用户访问假网页。无论哪种欺骗方式,一旦用户上当受骗,他们的隐私数据都会被发送到黑客那里。“证券大盗”(Trojan/PSW.Soufan)的作者就是为他的网页申请了与某知名证券咨询网站类似的域名,并且编写了利用IE浏览器漏洞的恶意脚本,成功的让他的木马感染了大量用户。
    此外,黑客还会对金融网站服务器直接发起攻击。虽然这种攻击成功的机会不大,但2006年8月,国内某知名证券业网站还是被黑客入侵,该网站上提供下载的所有证券交易客户端软件都被捆绑上了网银木马。

    键盘记录
    键盘记录,即通过木马监视用户正在操作的窗口,如果发现用户正在访问某网银系统的登录页面,就开始记录所有从键盘输入的内容。这种方法很通用也很简单,用于获取网银或者在线游戏的帐号密码时,效果一直很好。2004年11月的“网银大盗Ⅱ”木马,是一个典型的例子,它把几乎所有的国内网银系统都列为盗窃的目标。在测试中,只有少数提供虚拟键盘技术的登录系统可以避开它。

    嵌入浏览器执行
    这种技术,主要通过嵌入浏览器进程中的恶意代码来获取用户当前访问的页面地址和页面内容,此外还能在用户数据(包括帐号密码)以SSL安全加密方式发送出去之前获取它们。利用这种技术的木马,通常会动态改变用户正在浏览的页面内容,使用网页脚本制作的虚拟键盘,在对付这类木马时会完全失效。“网银大盗”木马(Trojan/PSW.HidWebMon)就利用了这种技术,它监测到用户正在访问某个引用了安全登录控件的地址时,就会让浏览器自动跳转到另外一个网页。后者看上去和正常登录页面没什么两样,只是没有任何安全登录控件的保护。
    对于那些只对交易对话进行验证,而没有对交易过程进行验证的系统,嵌入浏览器的恶意代码甚至可以完全控制一次交易。这样的交易系统只对用户身份进行验证,而在用户身份确定之后无条件的执行任何来自用户的指令。木马可以等到用户验证通过后再开始工作,拦截用户的转账操作,篡改数据后发送给服务器,服务器没有办法区分给它发出转账指令的是用户还是木马,直接执行了转账,木马再把服务器返回的信息篡改后显示给用户。目前,这种技术只在国外的一些网银木马上看到,国内尚未发现这样的例子。

    屏幕“录像”
    有些网银木马的确会进行“录像”,它们并不会生成体积庞大的视频文件,而只是在键盘记录的基础上,额外记录了用户点击鼠标时的鼠标坐标,以及当时的屏幕截图。黑客根据这些数据,可以完全回放出用户在进行交易时敲击了哪些键、点击了哪些按钮、看到了什么结果。
    “证券大盗”(Trojan/PSW.Soufan)就是这样的木马,它抓取的屏幕截图是黑白色的,数据量很小,但对于病毒作者来说,这些黑白图片加上键盘鼠标数据已经足够了。

    窃取数字证书文件
    数字证书是网银交易的一项重要安全保护措施。有些系统允许用户把证书保存成硬盘文件,这是一个安全隐患。2004年9月,TrojanSpy.Banker.s和TrojanSpy.Banker.t的作者仔细观察了某个人银行系统保存证书的整个流程后,编写了木马,他的程序能够准确识别这个流程的每个步骤,自动记录必要的数据,最终再复制一份证书文件。木马作者利用盗取的证书和其他必要信息达到非法使用证书的最终目的。

    伪装窗口
    2006年,国内出现了一系列新的网银木马,它们都是TrojanSpy.Banker.yy的变种,感染了很多用户。这类木马首先向IE浏览器注入一个DLL,用以监视当前网页的网址,同时记录键盘。当发现用户输入了卡号、密码并进行提交以后,迅速隐藏浏览器,弹出自己的窗口。木马弹出的窗口看上去和在线理财的页面非常相似,并且包含一些“钓鱼”文字:称由于系统维护需要,用户必须重新输入密码。只有当用户再次输入的密码和最初登录时的密码吻合时,木马才会把密码发送给木马作者。伪装成浏览器界面的木马实现简单,虽然技术上听起来比较幼稚,但效果却很好。
    戴硕表示,以上列举了网银大盗攻击的常用手段。实际情况是,他们经常同时采用多种技术来保证窃取过程的成功率和隐蔽性。随着网银业务的不断普及、深入和扩展,越来越多的新业务形式(如手机银行)正在涌现,而黑客们的跟进速度总是很快,可以预见,更多更老练、更有创造性的方法也会在不久的将来出现。

    防御:安全与易用的权衡
    从戴硕例举的种种网银大盗进攻途径,不难看出,网银大盗的进攻,手段除了直接攻击外,主要是钓鱼诈骗和木马移植;同时如果把一个网银系统分为服务器、传输网、客户端三部分的话,其进攻方向主要集中在前后两端。据来自中科院的安全专家李德全博士分析,之所以传输网络较少被攻击,是因为“网络层面的安全性比较容易解决,比如通过加密,通过证书认证,网络上的窃听者和伪造者可以被有效地拒之门外,所以问题主要出在两个端点,即消费者、商家(银行)两个环节。”
    首先来看商家(银行)这个环节,主要包括在网络、Web服务器、主机和数据库安全等方面提供的安全机制。网络安全是指通过SSL或SET等加密通讯技术,保证只有授权许可的通信才能在各终端机和服务器之间建立连接,且传输中的数据不能被读取或更改;Web服务器安全主要通过防火墙(一般是多重异构)对可疑数据包进行过滤,防止病毒及黑客的侵入;主机安全包括反病毒、系统安全检测、IDS入侵检测和审计分析等;数据库安全指诸如数据的备份和恢复,要具备必须的针对突发事件的应急措施。如上种种,关振胜认为,目前网银应用系统造成黑客攻击的安全隐患主要来自两方面,首先是软件厂商提供的系统产品(如Windows)本身固有的漏洞和缺陷;其次是用于网络通信的TCP/IP协议,当初设计的时候,并没有充分预见到现在的广泛用途(包括金融用途),造成了缺乏安全认证的机制,给黑客造成了可乘之机。当然网银目前采用的SSL协议(包括PKI机制)部分弥补了TCP/IP的缺陷。李德全则补充道,网银商家对安全的理解与实际需求的脱节、责任心也是导致安全隐患的重要因素。当然随着近年网银安全事故被连篇累牍地报道,中国各大银行开始愈加重视安全建设,一般来说,服务器端被黑客直接攻破比较少见,所以近年网银事故的发生,其隐患更多是集中在由数量众多,但信息安全意识良莠不齐的用户们所操作的客户端。

    关于消费者这一端,目前中国个人用户在客户终端与网银系统进行交互时,由银行提供的安全机制主要有:
    1.“帐号 + 密码”登录形式
    用户具备银行帐号和密码,在联网的电脑上通过输入正确的帐号、密码登录网银系统,进行网银交易。这种完成交易的形式可以很方便的在网页浏览器中实现,但缺点也很明显。黑客一旦获取了用户的帐号密码,就可以通过银行帐户转账、网上支付转账等方式窃取资金。目前,由于这种登录方式的便捷特点,仍然拥有大量网银用户,它也是国内网银木马病毒攻击的主要目标。
    2.“一次一密”形式
    即密码通过动态的方式生成。例如工行的口令卡,它上面以矩阵形式印有若干字符串,客户支付交易时,电子银行系统会随机给出一组口令卡坐标,客户根据坐标从卡片中找到口令组合并输入电子银行系统,只有口令组合输入正确的客户才能完成相关交易,该口令组合一次有效,交易结束后即失效。这种技术比“帐号 + 密码”的安全性要高,但在有些老练的木马面前,这类“一次一密”,即使采用了虚拟键盘,也会失去作用。
    3.“证书文件 + 密码”登录形式
    用户申请并下载数字证书,数字证书可以保存成磁盘文件,用户通过提供证书和密码来登录系统。在交易过程中,用户向银行服务器提交的数据都经过证书加密。与“帐号 + 密码”登录形式相比,数字证书文件的安全性大大增强,不足之处在于易用性下降,通常需要安装专门的客户端软件,证书文件携带不便。但由于数字证书可以保存为文件,木马仍然有机会复制证书、记录密码,造成用户帐号被盗。
    4.“USB Key + 密码”登录形式
    它是一种USB接口形式的硬件设备,其内置微型智能卡处理器,采用1024位非对称密钥算法对网上数据进行加密、解密和数字签名,确保网上交易的保密性、真实性、完整性和不可否认性。由于其不可观察、不可复制的特点使得木马无法仿造USB Key,目前还没有发现能够复制USB Key的网银木马。所以它与证书文件相比,安全性更进一步。这种登录形式的不足仍在于易用性方面,而且成本较高。

    此外,为杜绝网银钓鱼之患,许多网银都加强了服务器、客户端的“双向认证”监管。综合上述银行对用户端提供的一系列安全机制,本质上讲是“便捷性”与“安全性”的权衡,安全强度越高,操作则越是繁琐。关振胜认为,网银事故的频繁爆发,主要是早年某些银行为了吸引用户使用,扩大市场,推出了最简单的“帐号 + 密码”形式的“大众版个人网银”所留下的后遗症。当然目前各大银行都取消了这样的版本,加强了对客护端的管理。例如工行在开办支付账户时,凡企业用户一律强制性要求购买就目前来说,安全等级最高的USB Key客户证书,对于未购买USB Key证书的个人用户,则通过高强度加密算法、Activex安全控件、业务金额限制等方面加强监管。但即便如此,在技术上保证安全性的同时,普及信息安全教育、减少网银操作的复杂性仍是各大银行需要长期重视和不断改进的事宜。

    李德全认为,未来“网上银行”一定是银行业务的主流,但对网银用户来说,将产生“自然分流”的过程(根据知识水平、资金金额选择相应的安全等级和操作复杂度),安全的代价一定是“复杂”。至于对那些“网银大盗”的防范和打击,戴硕认为,有效的方式是加强政府部门、金融单位和安全厂商的紧密合作,互补彼此的职能、共享彼此资源,才能够事半功倍,更加有效的抑制网银木马。
     综上所述,网银的安全性,就技术本身(多重防火墙、CA认证、USB Key客户证书 、SSL安全加密等)而言,是“几乎”没有问题的,问题主要出在参与者,包括网银方工作的严谨程度、各种风险管理机制的合理性和可操作性、用户对网络信息安全的了解程度等。那么,假定满足这样的条件:用户具有良好的安全意识以及足够的耐心,网银健全其管理机制并按照高强度等级部署其防御体系,再加上各安全厂商卓越产品的配合和补充,这样的阵容就“几乎”不可能被黑客攻破了。为什么连用两个“几乎”?因为最近有个中国女人,用其科研成果证明,在信息安全领域,真的是很难说出“绝对”两个字。

    网银的最后一道防线
    她叫王小云,证明方式是“破解了世界通行密码标准MD5和SHA-1”。这样的成果,甚至让全世界都对网银的安全性一度产生了恐慌。原因很简单,因为包括网银在内的一切信息系统,所运行和传输的,本质上都是0和1,所以数据加密技术是决定信息系统安全成败的关键和核心。而一度被认为已经固若金汤的,堪称网银防御体系的心脏——PKI(包括数字签名)、SSL协议……都采用了“最先进”的MD5、SHA-1加密算法。
    MD5与SHA-1都属于HASH函数标准算法中两大重要算法,又称杂凑函数,就是把一个任意长度的信息经过复杂的运算变成一个固定长度的数值或者信息串,主要用于证明原文的完整性和准确性,是为电子文件加密的重要工具。一般来说,对于给出的一个文件要算它的HASH码很容易,但要从HASH码找出相应的文件算法却很难。HASH函数最根本的特点是这种变换具有单向性,一旦数据被转换,就无法再以确定的方法获得其原始值,从而无法控制变换得到的结果,达到防止信息被篡改的目的。由于HASH函数的这种不可逆特性,使其非常适合被用来确定原文的完整性,从而被广泛用于网银的数字签名技术。因此我们便不难理解,为什么王小云的研究成果,反而引起了诸多的忧虑和恐慌。

    但来自上海交大的著名密码学家来学嘉教授认为,如此“恐慌”的背后,是对王小云破解工作的误读,王小云做的是一种“学术破解”,即一种“碰撞”。原来根据密码学的定义,如果内容不同的明文,通过散列算法得出的结果(密码学称为信息摘要)相同,就称为发生了“碰撞”。而根据HASH函数的设计要求,有“弱无碰撞”和“强无碰撞”两大标准,区别在于前者侧重于在所限制的域当中满足条件,所以实现了该碰撞,则是真正意义的“解码”;而后者只要满足取值范围则可,所以它是无法产生有实际意义的原文的,也就无法篡改和伪造出有意义的明文。王小云做的正是 “强无碰撞”。
    因此,尽管MD5和SHA-1目前正广泛运用于我国网上银行的数字签名中,尽管2005年《电子签名法》实施后,数字签名算法的可靠性将提升到可影响司法取证结果的高度,但中国的安全专家们并不是很担心,普遍认为至少3、5年内是绝对安全的。而根据关振胜的观点,即使是真的能破解,对于银行这样的实时系统,篡改信息影响交易过程的可能性也不大。关振胜说:“如B to B的交易,首先对网上银行的表单进行SHA-1的摘要计算;然后对客户填写的信息再计算;最后银行收到信息后还要进行签名。如果要篡改其中的信息,必须破解3次(前提是能破解),既使是你若干天或若干月后破解了,交易早已完成。同时,信息摘要的传输还要在PKI体系(公钥基础设施)下进行,PKI体系现在大多应用RSA算法,该算法的安全性大可放心。伪造数字证书也是不可能的。数字证书包含了很多特定内容,只有具备了包括序列号等一系列特定信息,这个证书才有意义。根据特定的原文内容,伪造出相应的摘要信息是根本做不到的。” 2006年11月左右,中国金融认证中心公开承诺:用户因数字证书被破解而受损最高可索赔80万元。这显示了政府对目前的电子签名技术的信心。

    达摩克利斯剑的幕后
    尽管王小云做的是“强无碰撞”,但md5crk网站已宣布关闭;而美国国家标准与技术局(NIST)也随即表示,美国政府5年内将不再使用SHA-1,并计划在2010年改用其他更长更安全的算法(如SHA-224、SHA-256、SHA-384和SHA-512)来替代,再联想到现在一些少年黑客都可以攻破国家级的重要安全系统,都不由让人唏嘘不已。随着互连网技术促进了知识的爆炸和普及,一方面,获取知识提高技术水准的机会,已经不再是少数强势群体的特权;另一方面,智慧的高低似乎和道德伦理倾向无关。对法律、道德、正义的态度,既不会提高网银安全卫士们的防御能力,也不会降低黑客们的攻击水准。谈“魔高一尺,道高一丈”已不合时宜,双方的较量似乎将无限循环下去。
    遥想100多年前,因八国联军入侵,山西票号设在北京的分号不但银子被劫掠一空,连记录客户信息的账簿也被付之一炬,当北京储户纷纷拿着银票到山西要求兑换银两时,尽管真假难辩,但晋商们所做的,是只要储户拿出存银票,不管数目多大,票号一律立刻兑现。而现在,我们不仅必须凭着号称“用XXX台计算机同时工作XXX年都无法攻破的算法”算出的一连串0和1才能和银行相互确认身份,而且即便如此,对彼此的犹疑和不信任还是不能抹去。因此,我认为,网银用户之所以隐隐觉得头上如悬挂了一柄会随时落下的达摩克利斯剑,更深层地讲,不是缘于网银系统架构的安全疏漏或者黑客的技艺过于高超,而在于这一次次“攻击”的背后、这一次次“工作不严谨或管理疏漏”的背后,以及在一味地追求物质文明和技术推进的过程中,我们叩问、护理内心的时间,是不是太少了些?展望网银的未来,最需要的可能不是一个超级完美的算法或者体制,而是一种朴素的责任,一个简单的信心。

    发表于 @ 2007年03月21日 12:43:00|评论(loading...)|编辑

    新一篇: 《程序员》07年3期文章试读:亿万用户网站MySpace的成功秘密 | 旧一篇: 《程序员》07年3期文章试读:调试之剑

    评论

    #xiangbo520 发表于2007-03-23 00:33:23  IP: 220.169.30.*
    我当时对文中提及的关于晋商的故事很感兴趣,晋商在中国近代历史上的名气是相当大的,从这件事上看出信誉对商业活动的重要性,
    #bearhunter 发表于2007-05-20 09:42:16  IP: 125.115.13.*
    hehe
    #lbwabc123 发表于2008-07-20 21:16:56  IP: 220.161.122.*
    想一起开始学网络安全(黑客)的请加开始加QQ15092062,刚组建
    #sunspring7614 发表于2008-09-02 16:58:56  IP: 124.90.169.*
    累了,一字不漏了看了一遍,虽然有些技术和专业术语不明白意思,但真的受益匪浅,谢谢分享。
    #cyferl 发表于2008-10-07 21:21:12  IP: 117.89.150.*
    读完,了解到不少网路安全方面的知识!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 《程序员》编辑