`
jolestar
  • 浏览: 197263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转贴】从银行ATM的技术角度看许霆案-银行是故意的吗?

阅读更多


   作者:erase 提交日期:2007-12-20 14:58:00   
    原始地址:            http://www.tianya.cn/New/PublicForum/Content.asp?
idWriter=5696620&Key=531752475&strItem=free&idArticle=1076923&flag=1



      从银行ATM的技术角度看许霆案-银行是故意的吗?

刚看到这案子的时候除了觉得许霆很冤外,同时觉得很蹊跷,至少【公开的报道的事实】有很多经不起推敲的地方。

本人以前做过MIS系统个开发和测试,也做过软件硬件的系统集成,不过那是很久前的事情了,也没有涉及到金融系统,所以如果本文有什么问题,请达人指正。


废话少说:
先描述一下我对ATM提款所涉及到的系统硬件、软件的理解:

登陆过程:
ATM接收提款人的身份验证信息(卡+ 密码)-》身份验证信息提交银联网络-》身份验证信息数据提交卡所在银行数据服务器-》卡所在银行数据服务器验证身份信息-》验证结果提交银联网络-》验证结果提交ATM机
登陆成功后ATM机进入操作菜单界面

取款过程:
ATM机 银联网络 卡所在银行数据服务器
输入取款金额
|
验证金额数据合法性(注1)
|
【金额数据】 -》 【金额数据】 -》 【金额数据】
|
验证金额数据合法性(注2)
|
【准予操作】 《- 【准予操作】 《- 如验证数据合法,则【准予操作】
|
吐出纸币
|
生成【操作记录】 -》【操作记录】 -》 【操作记录】
保存操作记录,并从卡中扣除金额

(注1)是否为50或100倍数,是否超过每次提款上限
(注2)是否超过卡中余额,是否超过每次提款上限,是否超过日提款上限,是否超过日提款次数

需要说明的是,ATM机所在的银行并不一定是卡所属的银行,本人目前不知道ATM机所在银行和和卡所属银行究竟是哪些银行。

问题:究竟在什么时候1000变成了1?
推测1:卡所在银行的服务器在保存交易记录时1000变成了1
推测2:ATM将输入的1000变为1然后将1提交给了卡所在银行数据服务器,并且生成的【操作记录】也将吐出的1000记录成1并提交到卡所在银行服务器
推测3:银联网络进行数据处理时将1000变为1

一个小问题需要说明一下,本人认为许霆不可能是输入了1,但ATM吐出了1000,本人没用过广州商业银行的提款机,以在其他银行提款机上的使用经验,许霆如果输入的数字少于50元,应该能够得到类似提示【本提款机只能提供面值50元和100元的人民币,请输入50或100的倍数。。。】,所以许霆输入的不是1元,而应该是1000元。

如果以上的3总推测有1个是正确的,那么本人可以肯定的是,不是ATM机的质量原因或者网络的质量或者是服务器及软件的质量问题引起的,而是人为导致的结果,不管这个人为行为是不是故意的。
相信编过软件和测试过软件的人都清楚,一个隐藏很深的BUG(无论是硬或软的,通常是内存溢出),不可能将1000变为1,因为计算机是2进制的。为什么说是隐藏的很深的BUG呢,那是因为我相信银行的软件及硬件都是经过长时间大负荷地测试联调后才正式上线使用的。那么可能出现的BUG我觉得只是在非常特殊的情况下才出现,象这样连续几个小时都存在的BUG,不能不说非常不可思议。

推测1的解释:
卡所在银行的服务器在保存交易记录时1000变成了1
如果人为地将1000变成1,只需要在程序(一个存储过程)上做小小的改动。可能有人问,为什么卡所在银行的服务器上软件的改动只影响了这一台ATM机呢,那是因为这个ATM向服务器提交数据时同时会告知服务器本ATM机的ID号,在改动程序的时候只需要判断ID号就可以只在这台ATM上实现了。
本人比较相信这种推测:因为实施起来难度较小,至于为什么要这么做,那各位可以去联想。

推测2的解释:
ATM将输入的1000变为1然后将1提交给了卡所在银行数据服务器,并且生成的【操作记录】也将吐出的1000记录成1并提交到卡所在银行服务器。
本人因为没有参与过ATM的开发,所以不知道ATM软件更新的流程是什么。如果仅仅从软件代码的难度上考虑,将ATM机加上一段实现此功能的代码是容易。但是可能碰到的问题是如果卡所在银行限制了每天取款的次数,那么本推测将不成立,因为取款次数高达171次。

推测3的解释
同上,如果卡所在银行限制了每天取款的次数,那么本推测将不成立。银联网络实际上是各银行间进行数据交换的接口,这个接口会将各银行接收到的数据进行格式转换然后转发给其他银行。从技术上讲,修改进行格式转换的代码也有可能达到此目的。

匆匆写就,达人指正。


=================================================================
jolestar 注:      觉得这个分析很有意思,本人没有开发过类似程序,所以不好评论。这里有没有达人能给解释一下?
分享到:
评论
17 楼 ddandyy 2007-12-21  
lixigua 写道
我在广州呆过一段时间,在某个基站范围内每天打电话超过半个小时移动就不扣费。我天天跟老婆打电话6~7个小时。从来不扣钱,这事怎么算?


很简单  没抓到就没事

这个和晚上偷摸跑到公司用公司电话打声迅电话什么的有区别么

只不过一个是公司的钱 一个是服务商的钱
16 楼 lixigua 2007-12-21  
我在广州呆过一段时间,在某个基站范围内每天打电话超过半个小时移动就不扣费。我天天跟老婆打电话6~7个小时。从来不扣钱,这事怎么算?
15 楼 lixigua 2007-12-21  
ddandyy 写道
首先英国的那个银行是私人机构
当私人的东西被偷或者说被抢 是由他自己选择是否要起诉的  而不是由是否犯罪来决定的

私人或者国家的也不是问题,无论是私人还是国有;法人都有资格决定是起诉。
有罪不是问题,大家都认为有罪,就是这罪该多大?是什么性质的罪?
14 楼 ddandyy 2007-12-21  
这个东西就和利用系统漏洞入侵网络是差不多的
只不过这个漏洞只发生在那个时间的那台机器上
他是明知道有这个漏洞还去做的
如果没事 那么大家就开始研究如果入侵网络银行吧
反正也是他们src没写好  是他们的问题  和咱们入侵的无关的
13 楼 ddandyy 2007-12-21  
首先英国的那个银行是私人机构
当私人的东西被偷或者说被抢 是由他自己选择是否要起诉的  而不是由是否犯罪来决定的
12 楼 lixigua 2007-12-21  
抛出异常的爱 写道
从管理角度来说
没有哪个写银行程序的人会自己设下bug
因为如果你写了这样的程序之后
你的档案里就会 有这样的记录
每年都要到某个局报到证明你还在中国
每次出国前所要的证明比普通人多NN倍。

跑是跑不掉的。
以前有个写ic卡的专家
他说他 的级别高
所以每月都要去报到

估计你应该与做银行系项目的公司有点关系。
广西某银行的客户资料的备注栏填入“f4 me”这事不知道听说过没? 大家都在银行系统内混,公司名就不说了。
11 楼 lixigua 2007-12-21  
http://gb.cri.cn/8606/2006/10/26/1545@1272902.htm

英国银行一提款机故障 数百人排队疯狂取钱

看看万恶的资本主义社会的银行是什么如何处理
10 楼 lixigua 2007-12-21  
ddandyy 写道
就算是故意的又怎么样
自己取多少钱还不知道么
恶意取款
不管这个钱是怎么出来的
没人拿枪指着他让他取款吧
他已经明知道自己取出的钱不是自己的钱了 还说什么无辜

按照常理来说,该人确实不该是“无辜”。但是别人不过是面对诱惑没有抵挡住而已。比如两签订合同你该付我100块钱但是你给我了1000;我知道你给错了但我假意装着不知道;这事不过就是构成了我的不当得利,若你能举证你给了我1000,我退给你900就是,难道你还得告我敲诈啊。
9 楼 lixigua 2007-12-21  
楼主的说的太复杂了。
一般判断,这人应该是用广州商业银行的卡,在商业银行取款(猜的,该人好像是民工,通常该舍不得跨行取款),这种交易不走银联网络,不过是否走银联网络关系不大,错误不大可能在银联网络发送(若是银联网络发送的错误,就该是大面积爆发了,当然不能完全排除,只是说可能性比较小)。

不考虑银联网络的情况下,通信交易过程大概是:
ATM<----->ATM通信前置<-------->卡系统<---->记账核心
这4个环节都可能出错,不过我相信ATM的可能性最大。通信前置,卡系统,记账核心通常测试都会很严格,而且这些地方处处记流水,也没有硬件错误干扰的可能,这些地方的流水,科目核对都比较严格。
但是ATM就难说了,我做个短暂的POS机开发,觉得这里面出错的可能性最大。



8 楼 ray_linn 2007-12-21  
俺当年还不让我辞职呢。
7 楼 ddandyy 2007-12-21  
就算是故意的又怎么样
自己取多少钱还不知道么
恶意取款
不管这个钱是怎么出来的
没人拿枪指着他让他取款吧
他已经明知道自己取出的钱不是自己的钱了 还说什么无辜
6 楼 抛出异常的爱 2007-12-21  
从管理角度来说
没有哪个写银行程序的人会自己设下bug
因为如果你写了这样的程序之后
你的档案里就会 有这样的记录
每年都要到某个局报到证明你还在中国
每次出国前所要的证明比普通人多NN倍。

跑是跑不掉的。
以前有个写ic卡的专家
他说他 的级别高
所以每月都要去报到
5 楼 JohnYue 2007-12-21  
能否理解是有人故意设置这个bug,并且已通过此方式取走大量现金.但不幸后来被许霆发现,就栽赃到他的头上了.
4 楼 linxizeng 2007-12-21  
如果真的...那个人真冤...

记得我碰到的ATM故障是我卡上的钱扣了,钱却没有出来...折腾了两个星期银行才把钱补上去。

貌似银行有很多的免责的霸王条款...

3 楼 ray_linn 2007-12-21  
我唯一见过的ATM故障是送钞机构出故障,钱箱的钱花花的不停的出...
2 楼 ray_linn 2007-12-21  
也许是这个新闻。。。。,有人能告诉我到底有没有发生过这个事?很多新闻(尤其是社会新闻)明显是编造的。
1 楼 叶子 2007-12-21  
理论上,只执行1+1,只要次数足够多,是可能算出来不是等于2时候的


银行是故意的感觉不可能(打这样的官司很丢脸的),不过这个系统。。。

相关推荐

Global site tag (gtag.js) - Google Analytics