关 闭

新闻中心

EEPW首页>安全与国防>设计应用> 由Mifare 1卡破解带来的危险以及应对方法

由Mifare 1卡破解带来的危险以及应对方法

作者: 时间:2009-09-02 来源:网络 收藏

1卡片安全问题暴露后,一些公司公开宣称已经有了解决的办法,其中的法宝就是所谓“一卡一密”,也就是每一张卡片的每一个扇区的密钥都不相同,使用CPU卡装载系统根密钥,根据1卡的唯一序列号计算子密钥,防止一张卡片被破解而影响整个系统。其实这种解决方案在1卡破解之前就已经出现。那么,一卡一密真的能解决Mifare1的安全问题么,我们还是要从Mifare1卡的认证机制着手进行分析。

我们已经知道,Mifare1卡的认证实质上是卡与基站芯片之间的认证。常用的RC500等基站芯片已经为业界广为熟知,它的接口和通讯协议都是公开的。在基站与Mifare1卡认证前,需要通过LoadKey命令将Mifare1卡的密码装载到基站芯片中。这一过程是一个明文写入的过程,是由终端设备(如读卡器)主控单片机传送给RC500的,并且单片机对RC500的命令传输是非加密的。如下图所示:



这样就可以通过截获单片机与RC500之间的通讯来获取M1卡的密钥。而要做到这一点,一个使用过RC500的对单片机技术稍微了解的技术人员都能够轻而易举的实现。

那么,在读卡器中安装SAM卡,通过SAM卡计算卡片密钥实现一卡一密是否就安全了呢。想法非常美好,然而结果却非人所愿,这样的做法不但没有增加安全,反而更加加大了安全漏洞。如下图所示:



如图所示,M1卡通过SAM卡实现一卡一密本质上是将SAM卡内的主密钥通过对M1卡的卡号分散后得到M1卡的子密钥,但是这个子密钥仍然要通过终端单片机明文传送给RC500芯片完成对M1卡的认证。更为严重的是SAM卡送出的是Mifare1卡的明文密码,黑客只要获得一张SAM卡,就能够通过它获得所有卡片的密码,连破解手段都不用。

此外,在M1卡消费密码被泄露的情况下,即使采用了联机充值的方法,也无法保障运营商的利益,因为在此情况下,盗窃者使用伪造的M1卡,完全可以不用系统的充值密码,而直接采用M1卡的缺省密码对卡片进行“充值”,然后用真实的消费密码在终端上消费。在此情况下,即使采用了黑名单机制也难以避免运营商和授卡商户遭受损失,因为黑名单机制是一种事后防范机制,防止的是再次发生同一伪卡的交易,而在M1卡小额消费日益普及的今天,盗窃者只需将伪卡使用一次,就足以获得比一张伪卡成本高得多的收益。

这样,我们可以假设一下几种情况:

外部人员作案:

作案人盗取一个正式使用的终端设备,通过线路截获方式获取单片机发送给RC500的密钥,从而破解M1卡的密钥。

作案人盗取终端内的PSAM卡,通过向PSAM卡发送密钥分散指令的方式得到每一张M1卡的子密钥。

内部人员作案:

终端设备的开发人员利用工作之便盗取终端内的M1卡密钥明文或经过单片机发送给RC500的M1卡密钥明文。

发卡机构工作人员利用工作之便截取PC机通过M1卡读卡器发送给M1卡的密钥明文。或直接操作PSAM卡盗取密钥明文。

系统开发人员利用工作之便盗取PSAM卡密钥明文。



评论


相关推荐

技术专区

关闭