paint-brush
我如何将 CASIO F-91W 改造为非接触式支付设备经过@matteopisani91
2,072 讀數
2,072 讀數

我如何将 CASIO F-91W 改造为非接触式支付设备

经过 Matteo P.18m2023/07/06
Read on Terminal Reader

太長; 讀書

这次进入 NFC 技术、非接触式支付和无线电波领域的旅程令人兴奋。
featured image - 我如何将 CASIO F-91W 改造为非接触式支付设备
Matteo P. HackerNoon profile picture
0-item
1-item
2-item

前言

最近我经常旅行,我很高兴能够通过非接触式技术来支付公交车/地铁费用或咖啡/啤酒费用。基于 Apple/Google/Samsung-Pay 的系统需要主动解锁您的技术设备,这会导致支付过程变慢。


如果你正在排队,身后有一群人在等待,并且出了问题,那么你就完蛋了 🥪。


意大利米兰带非接触式支付设备的地铁旋转门


作为一个顽固的书呆子,从我脸上还有痘痘开始,我就戴了CASIO F-91W 。这款传奇腕表以其时尚的设计、坚固的构造和令人印象深刻的电池寿命(据说可持续约 7 年)为全世界科技爱好者的手腕增光添彩。从 80 年代开始,随着石英的采用,它成为数字手表革命的象征。


我认为不必从钱包里拿出信用卡/借记卡从口袋里拿出手机来支付,而是让手表更靠近PoS ,只需用一点现代的方式进行支付就好了——白天魔法✨。


所以我决定赋予它新的生命,并以纯粹的黑客风格将怀旧与创新结合起来,将其提升到一个新的水平

分析

NFC近场通信)技术使得两个设备之间无需直接物理接触即可交换信息。就非接触式支付卡而言,无需插入PoS插槽或输入PIN码即可使用,使金融交易更加快捷方便。


我拥有的经过供应商审查的非接触式支付卡(编辑)


在塑料(或金属)非接触式支付卡内部,我们可以找到几个组件:


  • 微芯片:通常被称为安全集成电路IC芯片智能芯片,它充当卡的大脑,包含各种子组件,如CPU (控制卡的操作并管理数据处理)、内存(存储数据信息,例如帐户详细信息、交易历史记录和安全密钥)和加密核心(它可以生成真随机数,有助于解决算术挑战,它可以执行数据加密/解密,并有助于身份验证过程卡和终端)。

  • 天线:通常由铝制成,负责发射和接收射频信号以实现非接触式通信。它采用特定模式设计,以确保有效的信号传输


通过天线可以发射接收射频,这是一种可以携带信息穿过空间或材料传播的能量形式。 NFC协议的频率为13.56 MHz (在某些情况下,它可能会有所不同,并且略高,对于支付系统或 ATM 而言,频率约为14.5 ~ 15.5 MHz )。自由空间中的波长(用符号λ-lambda表示,简单来说,是单个波周期长度的测量)通过将光速常数( ~ 300'000Km/s) 除以目标来计算频率。


天线波长计算公式


因此,理想的天线应由22.12 米长的电线组成,但按照惯例,会适当选择 λ-lambda 的分数(λ/2、λ/4、λ/8、λ/16 等)。另一个重要因素是电线的电阻抗,它主要取决于电线的材质电阻率以及电线本身的横截面


支付卡无源设备,不需要自己的电源。相反,当它们靠近有源NFC设备(例如智能手机或非接触式支付终端)时,它们会通过电磁感应来供电。有源NFC设备会生成磁场,从而在NFC目标设备天线中感应出电流。该感应电流提供足够的电力来激活它,使其能够运行并与有源设备通信。


多种非接触式支付卡微芯片+天线设计


大多数旧技术智能卡将天线嵌入塑料(或树脂)外壳中,焊接到芯片上,因此直接感应电流供电。


带有独立感应耦合天线的卡和芯片模块


新的支付卡技术采用双接口微芯片天线模块之间不需要任何有线接触。卡体中的天线芯片模块嵌入区域周围多了几圈。该卡体天线通过感应方式耦合直接集成到微芯片模块中的微型环形天线。这简化了卡的生产过程,因为天线不需要附连(例如,胶合、焊接或焊接)到芯片模块。


想看看卡片塑料外壳内的天线形状(实际上)是什么样子?


嵌入线圈模块 (CoM) 非接触式支付卡中的可变电容器天线


串联的“方块”就像可变电容器一样。这与多层嫁接的绕组一起允许模块以不同的频率耦合。


总体而言,这些组件协同工作可实现安全、便捷的非接触式交易。天线可实现无线通信,而微芯片则负责数据处理、安全和身份验证,确保持卡人信息的隐私性和完整性。

工具

为了“看透”复杂而不可见的无线电世界,我必须依靠一些特定的设备


顶部:NanoVNA |左下:Proxmark3 |右下:RFID-RC522


  • NanoVNA纳米矢量网络分析仪是一款便携式且经济实惠的手持设备,用于测量和分析射频( RF ) 和微波电路的特性。它旨在提供射频元件和网络的复阻抗反射系数、传输系数以及其他参数的精确测量。
  • Proxmark3 :是一个专为RFID (射频识别)研究和开发而设计的开源硬件和软件平台。它是安全研究人员渗透测试人员RFID爱好者广泛使用的多功能工具,用于探索、分析各种RFID技术并与之交互。它由配备集成天线和多个射频模块的紧凑电路板组成。它支持各种RFID协议,包括低频(LF)和高频(HF) RFID标准,例如125kHz、 13.56MHz和900MHz。该设备既可以模拟RFID卡/标签,也可以充当读取器/写入器,允许用户克隆模拟操作RFID信号。值得注意的是,虽然Proxmark3是安全研究和学习的宝贵工具,但应在适用司法管辖区的法律范围内负责任地使用它
  • RFID-RC522是一种流行的RFID模块,通常用于与RFID标签或卡进行通信。它基于MFRC522芯片,是一款高度集成的非接触式通信读写器IC


在这种特殊场景中, RFID-RC522芯片被拆解,以便利用PCB上的微带天线作为NanoVNA的探针。


放大微带天线探头


我拆焊了C10C11电容器,然后将两个母跳线连接器焊接在其位置上。


带同轴连接器 + 电缆的可拆解 RFID-RC522 电路


然后,我扯下NanoVNA设备随附的同轴连接器电缆。将内芯线(+)和外屏蔽网(-)分开后,我分别焊接了跳线连接器,以便有一个可拆卸的接口(理论上:跳线,当使用时“噪音”越高)读取RF值,因此,使其尽可能)。


通过S11CH0输入将这个“弗兰肯斯坦”天线探针NanoVNA连接起来,我可以在无线电波中游泳。

设置

我从NanoVNA + RFID-RC522组合开始。


NanoVNA 设备刚刚开启


一旦打开, NanoVNA就会显示大量信息,但大多数信息恰好与此目的无关。它有一个电阻式触摸屏和一个轮式操纵杆,可以帮助浏览菜单


NanoVNA 菜单旨在显示设置


焦点全部集中在黄色迹线上,因此我通过转到“显示”子菜单并双击“迹线 1” (青色)、 “迹线 2” (绿色)和“迹线 3 ”(洋红色)来禁用所有不必要的迹线。可以看到它们从屏幕上消失。


NanoVNA DISPLAY -> TRACE 子菜单


然后我点击“BACK”→ “SCALE”→“SCALE/DIV” ,然后设置“4”(它给出了一个很好的比例)。


NanoVNA DISPLAY -> SCALE -> SCALE/DIV 子菜单


我通过点击ENT按钮进行确认。


NanoVNA 菜单旨在刺激设置


然后我返回主菜单并单击STIMULUS


NanoVNA 刺激子菜单


通过单击“开始” ,我设置了12.5 MHz


NanoVNA STIMULUS -> 开始子菜单


通过单击“停止” ,我设置了16 MHz


NanoVNA STIMULUS -> 开始子菜单


通过这种方式,可以通过允许设备仅显示12.516 MHz频段内的信号来过滤所有信号。


为了查看设置是否良好,我在天线表面放置了一个备用NFC标签。


测试标准 NFC 标签


简单的规则:下部楔形越,“共振”越高


换句话说,这意味着用于测试的 NFC 标签与天线耦合良好(根据所接近的标签/卡,13.56MHz频率附近看到不同的范围是绝对正常的)。


Proxmark3 设备


转向Proxmark3设备,它需要一台计算机才能工作。在原始GitHub 存储库中,我可以找到所有安装说明(非常详尽且解释良好)。我在macOS上运行,因此为了快速起见,我使用了基于 brew 的教程。


在首次运行之前,建议将设备固件升级为可用的最新版本。为此,该过程需要按下“半隐藏”按钮并在按住该按钮的同时插入Micro-USB电缆。这样设备就会以DFU 模式启动。


DFU 的 Proxmark3“按钮”


进入DFU 模式后,只需运行以下命令:


pm3-flash-all


DFU 模式下的 Proxmark3 收到固件升级


它应该“自动”执行一切。


完成后,断开Micro-USB电缆与Proxmark3的连接并重新连接,即可在串行端口列表中检测到它。通过运行以下命令:


> PM3


现在可以进入NFC黑客/审计的神奇世界。


Proxmark3 工具交互式 shell


Proxmark3工具有一个交互式 shell (我建议您研究文档中的所有信息,因为该机器允许执行一些(甚至是非法的)非常有趣和复杂的事情)。


为了测试它,我将用于NanoVNA的相同NFC标签放在高频天线表面上。


使用 NFC 标签接近 Proxmark3


通过在交互式 shell 中运行以下命令:


> pm3 → 高频搜索


Proxmark3 读取 NFC 标签


可以读取与NFC相关的信息。


注意:虽然NanoVNAProxmark3设备都具有良好的电气“绝缘”性能,但如果放置在金属或类似材料等导电表面上,它们可能会受到一些噪音的影响。我将它们放在橡胶鼠标垫上,以使它们能够稳定工作。如果您在读数中遇到一些“奇怪”的行为,请记住这一点。


Proxmark3 接洽非接触式支付卡


让我们回顾一下最后一条命令,转到支付卡读取:


> pm3 → 高频搜索


Proxmark3读取非接触式支付卡


可以看出,输出比前一个输出更加详细,因为该卡包含一个“智能芯片”,可以进行更复杂安全的操作。此输出对于以后的比较很方便。


都好。所有设备都已完全正常工作,设置也已完成,我们现在可以进入最有趣的部分。

拆卸

为了找出我的支付卡的类型,我不得不把它撕开。


用热风枪敲击支付卡芯片正面


在焊台热风喷嘴(设置为100°C)的帮助下,我开始通过近远、前后画圆圈来加热卡芯片周围的表面。


用热风枪将支付卡芯片敲回


避免造成不可逆转损害的真正技巧是不要在同一个地方停留太久(防止一切都融化)。


支付卡芯片正面


加热大约45 秒 ~ 1 分钟后,我开始用镊子轻轻地在芯片周围起毛,并通过一系列摆动,我能够将其从塑料外壳上拆下。


支付卡芯片背面


虽然有轻微的残胶覆盖,但还是可以看到集成天线绕组,因此从内部芯片到外部天线没有焊点。


事实证明,这种类型的支付卡属于技术类别,是芯片与小型嵌入式天线的组合,该天线与隐藏在板内的较大天线谐振耦合,如前一段所述。


CASIO F-91W 部分拆解



转到CASIO F-91W手表拆解,我全力以赴。为了不受阻碍地工作,我首先摘下了腕带。


卡西欧 F-91W 拆解


然后在一把镊子和一把小螺丝刀的帮助下,我可以把它拆得只剩骨头(我无意定制内部电路,所以我保留了中央单元,因为除了非接触式支付之外,还可以方便地随时可以查询时间😂)。


CASIO F-91W前板和后板


通过使用之前使用的热风枪加热前板(相同的温度设置为100 °C ,远处相同的高低圆形图案),大约1.5 分钟,我从内到外施加了很大的力。不用太费力,表壳就自然弹出了

检查

在确定了被拆除的的性质后,我意识到我处理的不是一根天线,而是两根天线。我想看得清楚,所以我确实召回了我的装备。


NanoVNA 单独对支付卡外壳进行射频检查


单独来看,每一种都有自己的工作频率。卡外壳本身的谐振频率约为15.28 MHz


NanoVNA 射频检测支付卡外壳+芯片


然而,当配对在一起时,结果是一个与单个频率完全不同的频率卡外壳+芯片的谐振频率约为14.85 MHz。


展望下一步,这个实验让我意识到,为了利用加法/减法合成方法从头开始复制匹配天线,必须考虑除阻抗之外的其他因素,包括厚度和/或磁导率的材料。

调音

处理天线并不是一件容易的事。它需要大量的理论实践经验,这些经验是通过多年的测试和挫折获得的,也许在某些实验室中就消失了。


NFC 天线设计、参数化和效率分析


总的来说,天线调谐是一个非常关键的设计过程,旨在优化天线系统的性能。它涉及以数学方式调整天线的长度、表面尺寸、阻抗匹配SWR (驻波比)最小化,以实现所需的谐振、高效的功率传输和工作特性。


好的但是…


我们黑客,极其懒惰的人,总是寻找最短的路径,用最少的努力来达到最大的结果。


承认上述陈述,我的目标是解决对电磁无聊的任何具体挖掘,以便提供尽可能最快的方式迭代天线设计过程。为此,我发明了所谓的“钓鱼调整”(感谢Daniele G. ,我真正的朋友和支持者,为我推荐了这个令人惊叹的名字),这是一种盲目调整自制NFC天线的贫民窟(但聪明)方法。


“钓鱼调整”实际操作预览



简单来说,这背后的过程涉及到基本的概念和材料。从支付卡新技术的规格可以了解到,芯片需要绕得很紧,那么,它应该有一些外部线圈,以便与NFC读卡器有足够的共振


NFC读取过程(从有源设备)分布在频率间隔上,而不是特定的固定频率。在给定边界条件的情况下,器件耦合的固有可变性相对较高,因此任何小的误差都同样可以容忍。


![支付卡芯片尺寸测量(宽度)

](https://cdn.hackernoon.com/images/vSoRcyvb6dP2JiCy2a0lFEycpoa2-ow1k35vy.png)


支付卡芯片尺寸测量(高度)


我拿出了精密口径并得到了芯片尺寸。


带支付卡芯片座的鱼调谐线轴



借助广泛使用的在线3D CAD工具,我可以设计一个带有芯片支架的简单线轴(放置在最中心),为内部外部绕线留出空间,我可以在3D 打印机的帮助下挤出这些空间。


电磁应用用0.10mm漆包铜线


我使用了0.10毫米的漆包铜线(非常便宜,售价几美元),我开始将它缠绕最里面的芯片外壳上,然后我继续在最外面的线轴上生成线圈


钓鱼调整线轴


为了让一切步入正轨,我发现Proxmark3工具附带的一项功能非常有用。通过触发以下命令:


> pm3 → 高频调谐


可以实时观察接近高频天线表面的任何NFC兼容标签的压降(以mV (毫伏)为单位)。


Proxmark3 高频天线压降测量


简单的规则:电压降越高天线谐振越大(因此耦合效率更高)。

(调钓技术演示)


正如您在上面演示视频中看到的,左手使线轴Proxmark3天线表面保持一致(下图)。


钓鱼调音观点


右手缓慢将线从线轴上拉出,同时密切关注pm3 → hf 调谐连续读数。我继续,同时在3mV / 14mV处达到最高电压降(达到最大值约11mV )。


然后,我从线轴剪掉多余的电线,保留一点额外的电线供以后使用,以防出现错误和/或进行更细粒度的频率调整。现在,我们有了一根0.10 毫米电磁线任意长度天线线(我的天线线长约1.6 米),可以在最可爱的外壳中再次盘绕

设计

从一侧到另一侧,从前后板CASIO F-91W数字手表有几层组件:金属盖、电池座、纽扣电池、PCB、显示屏、塑料外壳和屏幕保护膜。背面安装天线不起作用(相信我,在得出这个结论之前我做了无数次的试验和故障排除)。这是由于太多的“屏蔽”组件会干扰并且不允许放置在背面的潜在NFC天线与任何NFC读取器正确配对


带支付卡芯片和 NFC 天线支架的 CASIO F-91W 定制前板 — 顶视图


带支付卡芯片和 NFC 天线支架的 CASIO F-91W 定制前板 — 透视图


为了获得像样的天线设计(不破坏手表的原始美观),我在3D CAD软件中复制了原始前板,其中我切出了容纳芯片的区域,并在整个周边刻了一个空腔缠绕天线线。


定制卡西欧 F-91W 数字手表前板,支持非接触式支付 — 内部视图


定制卡西欧 F-91W 数字手表前板,支持非接触式支付 — 外观


至于背板,我决定用基于PLA3D 打印背板替换原来的金属背板。


CASIO F-91W 定制背板


这使我能够确保整个结构减少因金属板的存在而产生的电磁噪声,同时保持纯粹的美观均匀性。


定制 CASIO F-91W 数字手表背板 — 外观


定制 CASIO F-91W 数字手表背板 — 内部视图

测试

为了了解所需的电线数量,我经常通过NanoVNA + RFID-RC522设备组合测试谐振峰值,同时松开切割电线,一次一小块。


通过 NanoVNA + RFID-RC522 发现 CASIO F-91W 天线的谐振峰值


另外,我还使用Proxmark3设备来检查缩小后的非接触式支付卡在新形状下是否仍然可以很好地读取。


Proxmark3通过NFC接口读取改装后的CASIO F-91W前板

精加工

前板上3D 打印(用于手表显示屏)留下的孔用超透明环氧树脂填充,以实现玻璃表面处理。


紫外线灯固定前板 LCD 窗口的 UV 树脂


每面暴露在足够强大的 ( 48W )紫外线灯下1~2 分钟,有助于UV树脂聚合(硬化)。

集会

是时候把所有的部分拼凑起来了。


CASIO F-91W 处于重新组装阶段


用一把剪刀、镊子和一束电子产品的双面修复胶带,我成功地重建了前板粘合表面


定制 CASIO F-91W 数字手表的前视图


最后,我重新组装了剩余的组件,用背板和原来的螺丝封闭了所有东西。


定制 CASIO F-91W 数字手表的 360° 视图


我不能错过一条很酷的表带来完成视觉外观和合身。


佩戴我的破解版 CASIO F-91W,内嵌功能齐全的 NFC 非接触式支付卡

示威活动

我在不同的商店/自动售货机上买了一些东西,以便现场证明CASIO F-91W嵌入的非接触式支付系统可以完美运行。

一些视频比许多文字更有价值。


他们都擅长用智能手表付款,但用老式卡西欧呢?


回报所有努力的纯粹喜悦就是看到人们震惊的表情 → 😯 当他们在结帐时意识到我付的钱时 🤣。

发展动态

我的脑海里闪过几个念头:

  • 第一个安全问题有关:探索天线中断的可能性以及用手表按钮将其短路的方法,从而防止移动扒窃企图。
  • 第二个——作为前一个的演变——将考虑添加一个额外的芯片第二个线圈,可以通过按下手表按钮,通过打开/关闭电路来切换

额外

只是一些更有趣的东西。


使用被黑的 CASIO F-91W 数字手表完成的第一笔非接触式交易收据


CASIO F-91W数字手表夜景——氪石绿LED背光


另外,我创建了一个GitHub存储库,其中托管了一堆我认为有用的文档,以及您可以自行下载3D 打印的背板的*.STL文件 →此处

结论

这次进入NFC技术、非接触式支付无线电波领域的旅程令人兴奋。作为一名黑客,我感到非常幸运,生活在一个工具、软件和数字生态系统快速发展的时代,开辟了新的可能性领域,使我们能够看透事物,并挑战我们拥抱不断变化的环境的技术。成为一名技术NERD不仅仅是对电子编码的热情;它包含一种由好奇心解决问题永不满足的学习欲望驱动的心态。这是一生对发现的探索,每一个新的突破都是迈向更大进步的垫脚石。这是关于站在创新的最前沿,突破界限,并为由想象力和技术实力驱动的未来做出贡献。


然而,在技术的所有兴奋和奇迹中,我还必须记住道德考虑、隐私负责任使用的重要性。拥有权利的同时也被赋予了重大的责任。


让我们继续探索修补并与世界分享我们的知识。

问候

特别感谢特别的朋友:

  • Daniele G.总是用无价的建议丰富我的疯狂想法✨;
  • Marco L.带来的乐趣、支持以及作为摄影师📹;
  • Lorenzo F.举办了所有有价值的头脑风暴会议🧠;
  • Pierluigi CP真诚地相信我的能力🧙🏻‍♂️。

伙计们,这是史诗般的🤙。

免责声明

本文中提供的任何信息仅用于教育目的。对于个人或实体根据本教程获得的信息采取的任何非法行为,我不承担任何责任。该内容旨在提供一般指导,您有责任确保在应用所提供的信息时遵守所有适用的法律、法规和道德标准。您根据本教程采取的任何操作均由您自行承担风险并自行决定。对于因使用或误用本教程中提供的信息而造成的任何损害、损失或法律后果,我不承担任何责任。我强烈建议您寻求专业建议或咨询有关当局,以确保遵守法律。通过访问和使用本教程,您同意免除我对因应用所提供的信息而可能在下游发生的任何非法行为或其后果承担任何责任。请负责任地使用这些信息,并在实际情况中应用时谨慎行事。


也发布 在这里