为什么银行密码这么弱?

21

出于兴趣和愤怒,我想知道这里是否有人在银行工作或者知道答案。

我使用过几个在线银行网站(英国和北美),它们普遍强制要求密码模式为/[\w\d]{6,8}/。有时,您可以使用下划线,但永远不会像您遇到的每个!银行网站一样拥有/.{6,20}/

有人告诉我这与存储空间有关,但是数学似乎并不支持这一点。假设银行为您的密码记录保留了一个影子表,让我们慷慨地说平均每个账户有10个,那么将密码的允许长度加倍,并根据现有的8位8位字符集加倍比特宽度,意味着每个账户额外增加11*2*8=176字节,因此每100万个账户约需要 168Mb。假设这是支持1亿个账户的巨型银行-仍然只有16Gb!

难道事情就这么简单吗?我的数字肯定有误吧。

还是说答案是银行只是古老而保守的恐龙,没有更好的理由?

有没有人知道为什么我在www.random.com/forum的密码比银行的密码更强大的技术原因?


7
一个与安全相关的猜测: 因为银行用户(或者一般用户)的智商水平平均,他们可能认为强制使用复杂密码只会导致在显示器附近张贴带有密码的便笺。 - Joris Timmermans
2
@MKV - 不是要求强制实施,只是请求允许。不确定为什么这个问题被关闭了,对我来说似乎是一个完全真实的问题,可能有一个完美技术的答案。 - annakata
他们已经意识到,仅凭密码本身很快就会变得无用(按键记录器),而复杂的密码只会导致人们把它们写下来并随意丢弃。 - Brian Knoblauch
2
原因是他们在使用旧数据库,所以你可以把它看作是一次技术讨论。 - Brad Gilbert
1
将密码长度加倍对存储空间使用量没有任何影响 - 后端肯定是存储了您的密码的加密哈希值(带有一些盐),而不是实际的密码本身?您的密码可以是单个字符或一百万个单词长,但其SHA-512哈希值始终只有512位。 - Day
显示剩余4条评论
5个回答

41

如果我所听到的关于某些银行的故事是真实的...

这是因为每次你输入密码:

  • 网络服务器通过一条半公里长的串行电缆将其发送到一个废弃办公室中的旧386电脑上,该电脑运行着1989年银行经理使用的UI(编译使用定制的Borland C 1.0版本),由于没有串行接口,所以必须通过另一台设备模拟AT键盘上的按键。
  • 该程序将您的请求(包括使用过时的定制算法加密的密码)插入到位于大楼另一端的不同废弃办公室内的NetWare文件服务器上的FoxPro数据库中(只是因为如果他们尝试移动它,它会破裂成碎片)。
  • 回到第一个废弃办公室,另一台不断轮询FoxPro数据库以检测新记录的旧386电脑检测到此请求,并通过一条更慢的EBCDIC电缆将其转发到第三个办公室中模拟运行维护帐户的COBOL程序的PDP11计算机。
  • 不幸的是,他们仍然需要真正的PDP11,因为它具有用于另一种安全加密算法的定制微码(如果他们无法提取,反篡改设备将删除它)。 PDP11无法处理自1981年以来开放的所有帐户(他们第一次失败地尝试退役它的那一年)所需的增加的工作量,因此现在(通过另一层屏幕抓取程序和模拟硬盘)被欺骗代表主服务器执行子集功能(包括密码验证)。

因此,您的密码只能使用这些系统支持的字符集的公共子集,并且只能与涉及到最短数据库字段的长度相同。


35

目前我实际在一家银行工作,过去也在不少银行工作过。

这种情况的主要原因是通常负责做出这些决定的人并不是最终实施它们的人。 银行的“业务部门”是非技术业务专家,他们最终做出这些决策。在许多情况下,技术上的反对意见会被政治或商业理由否决。但这并不仅限于银行业。在任何技术考虑通常不是首要关注的行业中都会发生这种情况。


3
这实际上与缓慢笨拙的恐龙论点相同 :) - annakata

10

银行主要将在线服务作为与传统系统的接口。你的密码可能被一台IBM大型计算机处理,它使用Cobol编写,而密码结构可能是在70年代设计的。

此外,由于银行是如此政治化的结构,管理层主要关注“具体”的结果,因此安全等问题直到成为热门问题才会得到解决,然后就会有“倡议”来解决它。

在我曾经工作过的一家银行中,生产密码和用户ID相同(与使用“root”“root”登录的想法相同)。用户密码可以在线重置为您的姓氏前N个字母+社会安全号码的最后4位数字的组合,因此任何用户都可以重置您的密码,只要他们知道您的姓名、社会安全号码并以您的身份登录。


1
这是真实经验吗?它与我的(故意夸张的)答案惊人地相似。 - finnw
4
是的,这来自真实世界的经验。 - Larry Watanabe
我曾经因此向一家银行提出了质疑,并指出社会安全号码的“最后四位”是其中最不受保护的部分之一,而且我实际上知道几个朋友和家人的最后四位数字,因此我可以重置他们的密码并以他们的身份登录,甚至不需要访问他们的电子邮件。大约花了一年时间,但他们改变了重置程序! - Doktor J

7

很可能大多数银行系统是很久以前开发的,当时8个字符的密码被认为是安全的。我认为没有人会考虑通过暴力破解银行账户的密码,即使只有8个字符也足够了。我打赌所有的银行都会在3次尝试之后封锁一个账户。


4
如果你有一份账户号码清单,尝试在所有账户上使用相同的密码可以更容易地获得匹配成功的机会,而不会触发简单的登录检查。但是,反过来,在三次尝试后锁定一个账户可以有效地避免拒绝服务攻击。 - David Schmitt
你认为消费者网站的银行系统是在8位密码成为标准的时代开发出来的吗?如果有人能证实他们曾在90年代晚期工作过,我会接受这个说法 - 只是看起来不太可能(或者他们现在与时代脱节了)。 - annakata
@annakata 没有人说 8x8 的密码是标准的。serg555 说 8 个字符的密码被认为是安全的。 - andho

2
这是一个关于我最近为客户建立的网站在Bugzilla上记录的“漏洞”(幸好不是银行):
“似乎用户被强制使用!或_作为密码中至少一个非字母数字字符,这对我来说有点奇怪。能否更新为只能使用字母数字的6-8位密码?”
实际上,至少需要一个非字母数字字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接