德国ChipTAN (https://en.wikipedia.org/wiki/Transaction_身份验证_number#ChipTAN_/_CardTAN)系统计算一个TAN,发送到银行服务器以证明交易。这个数字通常有6-8位长.但这个短号码怎么可能是安全的?
在我看来,安全的TAN必须根据接收者的银行帐号、转账金额、日期/时间以及只有银行和用户才知道的秘密来计算。
但这一切怎么能计算成8位呢?在我的间谍活动中,这很容易受到碰撞攻击。我还认为,如果攻击者能捕捉到多个TAN,那么这个秘密可以很容易地计算出来。如果攻击者能够捕获多个can,并且知道算法,那么他就可以找到一个可以复制这些can的密钥。这个数值很有可能也适用于新的TANs。
这个系统是否像描述的那样脆弱?还是我误解了什么?
发布于 2018-02-21 12:50:41
在我看来,安全的TAN必须根据接收者的银行帐号、转账金额、日期/时间以及只有银行和用户才知道的秘密来计算。
在维基百科的文章中,您提到“生成的TAN是特定于银行卡以及当前事务details__的。”
但这一切怎么能计算成8位呢?在我的观点,这是非常容易受到碰撞攻击。
碰撞攻击只有当你能对系统进行暴力攻击的时候才有关系。对于这个系统,我不太清楚,但是通常都会限制来自一个系统的查询量,同时也会限制尝试的次数。我的猜测是,您只有一个或几个尝试猜测TAN,如果这失败,您必须创建一个新的TAN基于新的交易细节(即新的时间)。
如果攻击者能够捕获多个can,并且知道算法,那么他就可以找到一个可以复制这些can的密钥。
这个论点是错误的。例如,以sha256(secret + transaction_details)
这样的简单算法为例:即使秘密总是相同的,并且知道一些事务细节和一些输出TAN的,您也无法用合理的成本和时间计算秘密--也就是说,合理意味着成本低于增益,并且在计算完成后秘密还没有改变。而且,更容易使算法变硬,只需查看密码哈希即可。
https://security.stackexchange.com/questions/180214
复制相似问题