前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低成本安全硬件(二) | RFID on PN532

低成本安全硬件(二) | RFID on PN532

作者头像
FB客服
发布2018-02-23 16:43:16
3.7K0
发布2018-02-23 16:43:16
举报
文章被收录于专栏:FreeBufFreeBuf

引言

鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步。在该系列中,笔者希望对此感兴趣的读者在花费较少金钱的情况下体会到硬件安全的魅力所在。

本系列计划分成四个部分:BadUSB on Arduino; RFID on PN532; GSM on Motorola C118 ; SDR on RTL2832U(电视棒)。

背景

早在2007年,Mifare M1 RFID卡片就被研究人员破解了出来。NXP公司在M1卡上使用了未公开的加密算法,然而密码学史上的种种教训都表明了“不公开”与“安全的”并没有什么联系。

研究人员剖析了卡片的门电路结构从而逆向了加密的算法并发现了漏洞。M1卡的结构如图所示,其拥有16个扇区,每个扇区有4个块,每个扇区的第一块储存着扇区的密钥。

目前针对Mifare卡片的攻击主要有三种方法:

Nested攻击

简单地说,就是默认密码攻击。

由于M1卡片有16个扇区,在绝大多数情况下16个扇区不一定会同时使用到。于是根据厂商在出厂时预设的密码可能碰撞出其中某一个扇区的密码。

由于无源的M1卡每一次刷卡上电的时候,密钥交换采用的随机数都是“有规律”的,用已经碰撞出的某一扇区的密钥去试探其它扇区,在此时根据随机数的规律即可“套”出密码

Darkside攻击

简单地说就是暴力破解,即爆破出某一个扇区的密钥,之后再使用Nested攻击就能Dump出整张卡。

而与通常意义上的暴力破解不同的是,由于M1卡片的认证机制,其会泄露部分认证信息,从而大大加快爆破的进度。

电波嗅探

顾名思义,即在正常刷卡的时候嗅探卡片与读卡器交换的数据,从而逆向密码。

这里可以参考2014年BlackHat的PDF:

https://www.blackhat.com/docs/sp-14/materials/arsenal/sp-14-Almeida-Hacking-MIFARE-Classic-Cards-Slides.pdf

以及相关论文:

http://www.cs.ru.nl/~flaviog/publications/Attack.MIFARE.pdf

常见硬件介绍

不同于之前BadUSB,在这方面可供我们选择的并不多。

旗舰级All-in-one的Proxmark3

国外的开源硬件,由FPGA驱动。性能十分强大,集嗅探、读取、克隆于一体,玩得了高频卡艹得动低频卡。可以插电脑可以接电源。当然其价格也是十分的感人。

不过某宝上近期出现了400多元的V2版本,也不知道是如何做到将价格放到那么低的————国外的V1版本也要300多,只不过人家的是美刀。

伪装性:★★

易用性:★★★★

社区支持:★★★★

项目主页

http://www.proxmark.org

国外最近出现的ChameleonMini

如果不是因为要写此文特意去搜集了许多相关资料我还真不知道这玩意。这是德国的一个众筹项目,其和PM3差不多,拥有伪装卡的功能,从外形上看厚度与真正的卡片差不多,但是价格在国外比PM3要友好许多。

伪装性:★★★★

易用性:★★★

社区支持:★★★

项目主页

https://github.com/emsec/ChameleonMini/wiki

最流行的读卡器ACR122

反正就是很流行,大抵是因为网络上流传了非常强大的GUI改卡读卡复制卡软件吧!某宝价格一百多,但还是比我们今天所用到的硬件高出了那么三四倍。

伪装性:★

易用性:★★★★

社区支持:★★

PN532

根据上篇的经验,之前介绍的那坨东西肯定是不会用到的———因为穷啊!本品某宝价格在30至50元。

本篇的主角是PN532,我将其与树莓派连接使用。当然没有树莓派也没关系(买一个就完了),也可以使用UART转USB的接口连接电脑使用。接下来的篇幅将从树莓派的构建开始详细讲解其玩法。

系统搭建

以主机为windows系统为例,linux自行解决。

系统准备

去https://www.raspberrypi.org/上下载最新的Raspbian Jessie 系统,笔者下载时的发布日是2017-02-16。

使用win32diskimager将解压后的img镜像文件烧写到sd卡上

注意新版本的Raspbian是默认不开启ssh的,所以我们需要在boot分区下创建一个名为ssh(小写!!!!)的文件

ssh进去,用户名pi,密码raspberry

系统配置

执行sudo raspi-config进行配置. 选择5-Interface Options,启用SPI、I2C,禁用Serial 选择7-Advanced Options,1-Expand Filesystem 扩展分区

安装依赖

依赖:

autoconflibusb-devlibtoollibpcsclite-devsudo apt-get updatesudo apt-get upgradesudo apt-get install autoconf libusb-dev libtool libpcsclite-dev

工具安装

部分参考:https://firefart.at/post/how-to-crack-mifare-classic-cards/

树莓派与PN532连接

笔者用的是树莓派3,但是GPIO口的区别不大,与PN532的连接方式为:

04 <-> VCC06 <-> GND08 <-> RXD10 <-> TXD

libnfc

顾名思义,nfc库。

官方github:https://github.com/nfc-tools/libnfc

wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.1/libnfc-1.7.1.tar.bz2tar -jxvf libnfc-1.7.1.tar.bz2cd libnfc-1.7.1autoreconf -vis./configure --with-drivers=all --sysconfdir=/etc --prefix=/usrmakesudo make installsudo mkdir /etc/nfcsudo mkdir /etc/nfc/devices.d

由于我们使用UART接口直接和PN532在树莓派上连接,还需要

sudo cp contrib/libnfc/pn532_uart_on_rpi.conf.sample /etc/nfc/devices.d/pn532_uart_on_rpi.conf

此时在不放卡与放卡的时候分别执行nfc-list,输出如下:

mfoc

mfoc即上述nested攻击的实现。

官方github:https://github.com/nfc-tools/mfoc

git clone https://github.com/nfc-tools/mfoc.gitcd mfoc/autoreconf -vis./configuremakesudo make install

点击阅读原文查看mfoc用法。简单地执行mfoc -O out.mfd,会dump出当前的卡片信息。【详情点击阅读原文】

mfcuk

官方github:https://github.com/nfc-tools/mfcuk

mfcuk(不是mfuck!!!)即上述darkside攻击的实现。

git clone https://github.com/nfc-tools/mfcuk.gitcd mfcukautoreconf -vis./configuremakesudo make install

用法还是点击阅读原文查看哦,鉴于篇幅关系,这里不详细介绍了。

写卡

直接使用nfc-mfclassic即可对Mifare classic系列卡片写入。主要有M1卡(S50)和4K卡(S70)。这里要额外说明的是,M1卡的UID区域是只读不可写的,然而一些商家不符合规范(中国的牛B商家)吧0扇区的UID弄成了可写的,用W可以强行写入。

A|B代表用密钥A或者B写入(均可),这里牵扯到Mifare协议的东西,读者可以自行查阅相关资料。

结语

本文所含内容具有一定攻击性,切勿用于非法用途!弄出什么新闻也别找我负责!

关于PN532

由于查到PN532是支持Ultralight卡片的,但是笔者的PN532始终无法读取该类卡片,于是到elechouse的Github Issue中询问了关于PN532的问题——他们表面他们自己生产的PN532可以读几乎符合NFC协议的一切卡片,但是万恶的某宝在山寨的时候似乎阉割了一些功能,但是笔者测试1k和4k卡片都是可用的。

在手机上的奇技淫巧

在带有NFC功能的Android手机上有一款名为Mifare Classic Tools的软件,可以进行读写卡,dump的操作————但是必须用对密钥哦!可以在树莓派上破解之后把密钥添加进去,然后就能用手机进行读写卡了。

至于用途,你懂的。

GGPLY链接:https://play.google.com/store/apps/details?id=de.syss.MifareClassicTool&hl=zh

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 背景
    • Nested攻击
      • Darkside攻击
        • 电波嗅探
        • 常见硬件介绍
          • 旗舰级All-in-one的Proxmark3
            • 国外最近出现的ChameleonMini
              • 最流行的读卡器ACR122
                • PN532
                • 系统搭建
                  • 系统准备
                    • 系统配置
                      • 安装依赖
                      • 工具安装
                        • 树莓派与PN532连接
                          • libnfc
                            • mfoc
                              • 写卡
                              • 结语
                                • 关于PN532
                                  • 在手机上的奇技淫巧
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档