我的银行为我提供了一个类似于此的设备:
该设备本质上是一个PRNG,大概是基于与银行服务器同步的内部时钟的日期/时间。
要生成一个引脚,用户必须将他们的银行卡插入插槽,并使用设备上的键盘输入他们的4位银行卡引脚号。这是在自动取款机上提取现金的同一个别针。
我的问题是:没有网络连接,而且设备没有配置成使用特定的银行卡(我可以使用任何其他人的设备与我的卡),设备如何验证密码?
密码必须以某种方式存储在银行卡本身的芯片上。即使使用迭代散列函数,每次尝试将蛮力延迟4秒,引脚号仍然只有4位长。4秒* 10^4可能的引脚= 11小时来蛮力整个键空间。
卡本身确实有一个锁定工具,在3次不正确的尝试之后,将拒绝进一步的访问尝试(必须是写入银行卡芯片内存的布尔标志)。该身份验证系统的整个安全性是否基于这样的假设:某人不能简单地重置此标志并继续其对小密钥空间的蛮力?
发布于 2013-04-02 16:34:38
首先,该设备不是PRNG。所有密码功能都安全地保留在卡上的芯片内。这个设备不过是一个用户界面而已。因为它是从你的浏览器空隙,它不能被网页或恶意软件感染的计算机“黑”。因为这是你从你的银行,你可以相信,这不是一个PIN-撇子键盘。这些都是非常好的安全属性,使这些设备强大的工具,以防止欺诈。
您在设备中输入PIN,然后该设备将PIN发送到您的卡,然后该卡根据ISO/IEC 7816-4规范对其进行验证。该卡只向读取器返回PIN验证尝试的结果,然后将其显示为8位的授权代码或无效的PIN错误。连续三次PIN验证尝试失败后,必须在您的银行授权的ATM上重置一张卡。
正如您所指出的,这是协议中的一个可悲的弱点,但其原因与密码学完全不同。一个劫匪可以在一个私人地方打你,并要求你的卡和你的密码,他可以使用你的PINSentry现场证明你没有说谎。它曾经是一个抢劫犯,会把你拖到银行去核实你的密码并冒着安全摄像头的风险,但是现在他们可以在一条黑暗的小巷里做这件事了。至少有三起凶杀案是由收集毒品的强盗犯下的。
为了使用户更加安全,无论您的PIN是否有效,设备应该继续愉快地继续运行,因为银行稍后应该验证PIN。问题是,这一切都是在许多小商家还在离线授权卡的时候设计和决定的。随着互联网几乎百分之百地普及到地球上人口稠密的地区,我认为没有理由继续接受离线支付。
就芯片上的PIN安全性而言,这比典型的抢劫犯强得多。芯片是经过设计的,所以很难访问它上面的内存。它不像一个闪存或老式的付费电话芯片,在那里它只是一个存储设备。它是一个密码处理器,只有在验证了数据上的签名之后,才能将算法、密钥和证书加载到硅中。您不能发出像“设置计数器内存位置1234 = 0”这样的命令。相反,重置密码识别码的命令是HMAC协议的一部分,必须由银行生成密码认证,并且在实际重置PIN计数器之前,必须在芯片上验证该密码。
这些芯片受到了相当好的保护,防止被篡改,因为它们每只只需要花几分钱。聚焦离子束显微镜已经被用于从实验室的卡片中读取比特。通过改进加密算法的设计,减少了定时攻击。据我所知,差分功率分析攻击仍然可以工作,但一些芯片设计甚至可以承受这些。
发布于 2013-04-02 05:28:07
是
就这样吧。EMV/芯片和Pin信用卡都有加密智能卡。它有您的引脚、一个私密密码密钥和一个失败的密码尝试计数器。
如果你可以重新设置计数器,你也可以只读取引脚(或它的一些散列)和秘密密钥的东西。所以是的,安全取决于芯片中的安全智能卡是否安全。
注意,希望PINSentry本身不是PRNG,它可能使用银行卡的秘密密钥和当前日期/时间来生成一次代码,并且使用PIN号来解锁卡。否则,具有相同PIN号码的人将得到相同的代码,或者读者可能会被骗以为在没有密码的情况下输入了有效的密码。
https://security.stackexchange.com/questions/33673
复制相似问题