我的银行最近对其客户网上银行系统进行了重大重新设计。还审查了跨平台管理安全性的方式。我现在可以设置的登录密码被强制为6 位数字,数字。
这与我认为的安全密码策略大相径庭。另一方面,我相信我的银行知道他们在做什么。
你能帮我理解这个政策有多好吗?
- 与该行业的常见做法相比。
- 从更一般的 IT 安全角度来看。
- 作为客户:我应该在多大程度上担心我的帐户可能很容易被盗?
笔记:
- 用户是身份证号,几乎是公开数据。
- 在通过另一个安全机制(我们假设它是好的)之前,进入我的账户的人仍然无法付款。
我的银行最近对其客户网上银行系统进行了重大重新设计。还审查了跨平台管理安全性的方式。我现在可以设置的登录密码被强制为6 位数字,数字。
这与我认为的安全密码策略大相径庭。另一方面,我相信我的银行知道他们在做什么。
你能帮我理解这个政策有多好吗?
笔记:
6 位数字密码没有多大作用。
Troy Hunt 有一篇关于被迫创建弱密码的优秀博客,他在其中谈到了各种不良做法,包括强制使用短数字密码,并提出了经常使用的借口:
“我们希望允许人们在电话键盘上使用相同的密码”
要求只输入数字密码的唯一正当理由是用户唯一可用的输入是数字(例如,使用 ATM);(类似地,要求人类可读密码的唯一正当理由是人类会阅读它 -如果它不仅用于电话银行,而且还用于网站,这将是一个非常糟糕的迹象)。
但是,如果这就是原因,那么当您可以使用完整的 qwerty 键盘时,他们到底为什么要强迫您在线(或在移动设备上)使用相同的不安全密码?
有 10 6 个可能的密码,由 6 位数字组成。
对于不熟练的攻击者来说,如果他们拥有您的用户名和无限制的尝试,进入您的帐户完全没有问题。你应该假设他们有你的用户名。 用户名不是秘密。
让我们假设银行已经考虑到这一点,并在 3 次错误尝试后锁定每个帐户,或者可能启动一个机器人限制选项,如验证码,然后再试一次。那么攻击者仍然有 3/1000000 的机会进入该窗口内的随机帐户。
这意味着如果他们攻击 1000000 个帐户,他们可以预期进入 3 个。发出 3000000 个请求根本不会花费很长时间。
将其与 6 个字母数字字符的密码数量进行比较(根据大多数安全标准,太短且不够复杂)。
有 62 6 = 56800235584 个可能的 6 个字符的字母数字密码。还是太弱了,但已经强了56800倍!
不用说,如果用户数据库被破坏,10 6 个可能的密码的熵低得离谱,而且无论他们使用什么散列和加盐系统,他们都无法保证您的密码安全。
您的银行在数据库泄露的情况下的计划大概是翻车和哭泣。也许他们认为结果太糟糕了,他们只是不打算为此做计划。
攻击者看到你的财务历史是一个非常大的问题。即使阻止传输的其他身份验证方法是安全的,您也应该担心。而且您不应该期望其他方法是安全的。
如果没有第二种身份验证方法,还有多少其他关于您的信息被泄露?您的姓名、地址、电子邮件,也许?
这些足以开始对您进行背景研究,以获取更多信息 - 这些可能是您的其他密码的线索,或有关如何对您进行网络钓鱼的良好信息。他们可能会尝试给您打电话,使用他们目前掌握的关于您的信息来赢得您的信任,假装是银行,并欺骗您以您需要通过回答最后几个来向他们验证身份的诡计来透露有关您自己的其他秘密他们需要的问题才能进入您的帐户。
再举一个例子,如果第二种身份验证方法是强密码,但您(对于大多数客户来说,“您”并不精通技术)但客户恰好曾经被包括在他们使用的另一个网站的数据库泄露中相同的用户名/电子邮件和密码,然后游戏结束。- 此逻辑适用于任何基于用户名/密码的系统,但在这种情况下尤其相关,因为攻击者能够发现第一种不安全的身份验证方法暴露的有关您的其他信息,并且因为第二个密码现在是他们的唯一障碍拿走你的钱——这就是为什么行业标准要求在向用户展示任何东西之前在银行网站上进行 2 因素身份验证的原因之一。
至于行业标准;我的银行有一个没有最大长度的密码,可以使用特殊字符,然后使用第二个密码,该密码只能通过从一系列下拉菜单中选择一些字母来输入(因此不使用整个第二个密码一次尝试)。
如果我的银行使用带外第二身份验证因素,我会更喜欢它;例如将代码发送到我的手机。
异常?是的。疯狂的?不,请继续阅读以了解原因...
我希望您的银行有严格的锁定政策,例如,三次不正确的登录尝试将帐户锁定 24 小时。如果是这种情况,6 位 PIN 码并不像您想象的那么容易受到攻击。一个攻击者每天尝试三个 PIN 整整一年,仍然只有大约 0.1% 的机会猜到 PIN。
大多数网站(Facebook、Gmail 等)使用电子邮件地址或用户选择的名称作为用户名,攻击者很容易猜到这些。这样的网站往往有一个更宽松的锁定政策,例如,三个不正确的登录锁定帐户 60 秒。如果他们有更严格的锁定政策,黑客可能会通过将合法人员锁定在他们的帐户之外来造成各种麻烦。需要通过宽松的锁定政策来确保帐户安全,这就是他们坚持使用强密码的原因。
对于您的银行,用户名是一个 16 位数字 - 您的卡号。您通常会将您的卡号保密。当然,您将它用于卡交易(在线和离线)并且它以明文形式存在于您的钱包中 - 但它是相当私密的。这允许银行拥有更强大的锁定策略,而不会让用户遭受拒绝服务攻击。
实际上,这种安排是安全的。如果您的室友找到您的卡,他们将无法访问您的帐户,因为他们不知道 PIN。如果一些黑客试图批量入侵数千个帐户,他们就做不到,因为他们不知道卡号。大多数帐户泄露都是由于网络钓鱼或恶意软件造成的,而 6 位数的 PIN 并不比非常长且复杂的密码更容易受到这些攻击。我怀疑与使用普通密码的其他银行相比,您的银行没有更多的日常安全问题。
您提到交易需要多因素身份验证。因此,密码泄露的主要风险是有人可以查看您的私人银行详细信息。他们可以看到你的薪水,以及你不正当购买的历史。一些人提到 6 位数的 PIN 很容易受到离线暴力攻击。因此,如果有人窃取了数据库,他们可以破解您的哈希,并获取您的 PIN。虽然这是真的,但这并不重要。如果他们破解了您的 PIN,他们可以登录并查看您的银行历史记录,但不能进行交易。但在那种情况下,他们无论如何都可以看到您的银行历史记录——他们已经窃取了数据库!
因此,虽然这种安排并不典型,但似乎它毕竟不是那么疯狂。它可能带来的一个好处是人们不会在其他网站上重复使用相同的密码。我怀疑他们这样做是出于可用性的原因——人们抱怨他们不记得网站以前需要的长而复杂的密码。
这是一个糟糕的、糟糕的政策。只有 10 个6或一百万个不同的 6 位数字。那太少了。
无论您使用多么慢的散列算法,都几乎不可能防止离线暴力攻击。如果一次尝试需要 1 秒,您将在 11 天内破解密码。如果攻击者可以使用多个 IP(例如,控制僵尸网络)并且有许多不同的卡号可供尝试,那么完全阻止聪明的在线暴力攻击也可能太少了。
更糟糕的是,就像使用普通密码一样,大多数人不会随意选择它们。123456
一定会出现很多,代表日期的数字也是如此。在实践中,大多数密码的熵远小于 6×log 2 (10) ≈ 20 位。
我看不出为什么你不应该被允许选择一个更强的密码。这种做法发出了他们根本不关心安全性的信号。这也让我怀疑在他们的数据库中的某个地方NUMBER(6)
存储了一个而不是哈希。
没有其他身份验证因素就无法完成付款,这有点令人欣慰,但并不多。攻击者仍然可以看到您的帐户历史记录,其中可能包含非常敏感的信息,也可用于网络钓鱼。
即使这可能永远不会用来对付你,如果我是你,我会考虑换一家新银行。最好是在登录时需要双重身份验证的一种。
评论中有一些讨论,并且弹出了一些带有另一种观点的好答案,所以我想详细说明并回应一些批评。
但是用户名是秘密的!
根据问题,身份证号码(不要与信用卡号码混淆)“几乎是公开的”,OP 在评论中澄清说,他已将这些身份证号码视为“公共部门服务的结果”。换句话说,用户名不是秘密的。而且它们不应该是 - 如果您的系统的安全性取决于用户名是秘密的事实,那么您做错了。
每个帐户和/或 IP 号的速率限制将解决此问题。
分布式蛮力攻击,例如,使用僵尸网络,将有相当大的机会破坏一些帐户。假设您有 10 000 台计算机,每台计算机在一个月内每天测试 3 个不同帐户的密码。这大约是 10 6次尝试。如果密码真的是随机的,那平均会给你一个帐户。在现实世界中,你会得到很多很多。
当然,银行理论上可以拥有一些复杂的系统来检测和防御此类攻击。也许,也许不是。作为客户,我无从得知,而且我当然不相信一个连密码策略都不能正确执行任何更高级操作的组织。
离线攻击无关紧要。如果密码被泄露,他们保护的敏感数据也会被泄露。
也许,也许不是。互联网上存在大量数据不完整的数据转储。声称密码将永远粘在您的帐户历史记录中,对违规行为是如何发生的以及之后如何处理数据做出了一些非常强烈的假设。
您的信用卡 PIN 码只有四位数字,那有什么关系呢?
您的信用卡 PIN 码是双因素身份验证中的一个薄弱因素。另一个因素 - 拥有卡 - 使系统更强大。
这个密码是一个薄弱的因素,也是保护您的财务信息的唯一因素。
需要明确的是,我并不是说银行不可能通过其他方式确保该系统的安全。我并不是说有可能成功攻击任何人的帐户,尤其是您的帐户更是如此。我要说的是,这对银行来说还不够“安全”。
该银行已经经历了为财务转账设置两因素身份验证的麻烦。为什么不把它也用于登录呢?
银行(希望)已经经历了对密码进行哈希处理并将其存储在数据库中的麻烦。为什么不直接删除将密码限制为六位数的代码部分?
反对意见:小心
您作为用户很可能没有被告知您的银行在您的 PIN前采取的其他安全措施。我知道对于CapitalOne360,它有类似的4-6位密码系统,我很震惊!但是在同一台计算机上使用 PIN 一段时间后,我终于需要在另一台计算机上登录(不同的 IP,不同的浏览器)。当我这样做时,它实际上要求我输入密码。不仅如此,而且在我成功输入密码后,它还要求我的 PIN 作为奖励。
经过一番研究,我发现浏览器只在用户第一次访问网站并收到某种身份验证 cookie 时才要求输入密码。一旦用户帐户在该机器的 IP/Cookie 组合上受到信任,它就允许无密码、仅 PIN 登录。但是用户第一次登录时,他们需要输入密码。您可能只是不知道这种做法(就像我一样)。
我发现已经拥有功能正常的工作密码系统的银行不太可能将其完全绑定为仅 6 位数的数字 PIN 码。公司可能看起来很愚蠢,但考虑到 6 位数的身份验证违反常识以及 PCI 标准,我真诚地怀疑这是唯一存在的身份验证。如果我错过了什么,也许原始海报可以对此有所了解。