大数跨境
0
0

NFC之Mifare1卡安全科普

NFC之Mifare1卡安全科普 点融黑帮
2016-01-07
2
导读:非接触式智能卡,在现代社会广泛的应用于公交、管理、门禁等领域。
0x00:简介

随着社会的发展,现在到处可以见到智能卡的身影,尤其是非接触式卡,广泛的用于公交、管理、门禁等领域。


Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包括Mifare S50、Mifare S70、Mifare UltraLight、Mifare Pro、Mifare Desfire等产品,Mifare S50的容量为1K字节,常被称为Mifare Standard,又被叫做Mifare 1,是应用很广的一种射频卡。


0x01:卡结构说明

Mifare1卡共有16个扇区,每个扇区有4块,每块有16字节,结构图如下。



厂商代码块:厂商代码块通常指的是0扇区的块0,通常含有一些制造商的数据比如说卡的UID等等,出于安全考虑和系统需求,此块通常不可写。


数据块:每个扇区通常有三个16字节的块用来存放数据,通常是块0块1块2,数据块通常有两种作用,一种用于一般数据的存储,可对其进行读写操作,比如说门禁卡。另一种用于数据值,比如说电子钱包,可对其进行增值、减值等操作。


尾块:各区均有一个尾块,又称控制块,通常包括密钥A,读写条件,密钥B(可选),如下图。



对指定块内容的读取取决于对应块的密钥和控制块的读写条件。


读写条件:读写条件为4个字节,共32位,每块都有相对应的三个读写控制位。读写控制位管理着使用密钥读写各个块的权限,读写控制位如下图。



控制块的读写条件:对密钥和控制位的读写取决于控制块的访问控制位,分为“禁止”、“KEYA”、“KEYB”和“KEY A|B”,如下图。



0x03:攻击方式

1、爆破默认key攻击

很多IC卡默认都没有改密码,这边我们可以用一些默认密码来撞,只要撞出扇区的key,再利用nested authentication攻击方式即可分析出其他key,常见的一些默认key


Key: 00007fffffff

Key: ffffffffffff

Key: a0a1a2a3a4a5

Key: d3f7d3f7d3f7

Key: 000000000000

Key: b0b1b2b3b4b5

Key: 4d3a99c351dd

Key: 1a982c7e459a

Key: aabbccddeeff

Key: 714c5c886e97

Key: 587ee5f9350f

Key: a0478cc39091

Key: 533cb6c723f6

Key: 8fd0a4f256e9


2、 nested authentication 攻击

卡发送一个随机明文给读卡器,读卡器用错误的密码加密之后返回给卡,卡解密错误,但是我们知道其他扇区的密码,验证成功后,后面所有的数据交互都是密文,当读其他扇区数据的时候,卡先发送一个随机的密文,因为用了密钥相关的算法加密了,而且每个扇区的密钥是独立的,所以这个加密密文自然包括了密钥信息,通过后期的算法漏洞分析,分析出扇区密钥是什么。


0x04:后续利用

既然知道了密钥,那就可以读和改相关扇区的数据块了,这边我们如何定位一些电子钱包的具体数据块了?我们可以通过工具dump 出卡里面的数据,然后通过消费对比出前后数据发生变化的数据块,最后定位出和金额相关的数据块,对比如下图。


对比法可能需要多次数据具体分析,个人感觉比较麻烦,这里我们可以选择另一种利用方法——重放攻击,比如当饭卡有500元金额的时候,我们把其整个数据dump出来,用完再整个写入进去就可以了。


0x05:案例

关于M1卡的测试工具还是很多的,这里我们使用mfoc 这个开源工具,来实现攻击。


(1)成功读取卡的信息。



(2)成功破解出key



(3)利用key成功读取各个块数据。



如果你也关心企业网络安全,请在微信对话框中回复“安全”或点击屏幕左下角蓝字“阅读原文”参加点融黑帮安全沙龙,与诸位互联网安全领域大神共商要事。




本文作者Audit0r,信息安全爱好者、网络安全工程师,现任职于点融网技术部安全团队。



随着点融网新一轮融资,点融网即将开始大规模的扩张,需要各种优秀人才的加入,如果你觉得自己够优秀,欢迎加入我们!获取更多职位信息,请关注点融黑帮。

【声明】内容源于网络
0
0
点融黑帮
点融黑帮——一个充满激情和梦想的技术团队,吸引了来自金融及信息科技领域的顶尖人才。我们正在用技术创新改变传统金融。
内容 374
粉丝 0
点融黑帮 点融黑帮——一个充满激情和梦想的技术团队,吸引了来自金融及信息科技领域的顶尖人才。我们正在用技术创新改变传统金融。
总阅读641
粉丝0
内容374