最近我经常旅行,我很高兴能够通过非接触式技术来支付公交车/地铁费用或咖啡/啤酒费用。基于 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的目标设备天线中感应出电流。该感应电流提供足够的电力来激活它,使其能够运行并与有源设备通信。
大多数旧技术智能卡将天线嵌入塑料(或树脂)外壳中,焊接到芯片上,因此直接由感应电流供电。
新的支付卡技术采用双接口,微芯片和天线模块之间不需要任何有线接触。卡体中的天线在芯片模块嵌入区域周围多了几圈。该卡体天线通过感应方式耦合到直接集成到微芯片模块中的微型环形天线。这简化了卡的生产过程,因为天线不需要附连(例如,胶合、焊接或焊接)到芯片模块。
想看看卡片塑料外壳内的天线形状(实际上)是什么样子?
串联的“方块”就像可变电容器一样。这与多层嫁接的绕组一起允许模块以不同的频率耦合。
总体而言,这些组件协同工作可实现安全、便捷的非接触式交易。天线可实现无线通信,而微芯片则负责数据处理、安全和身份验证,确保持卡人信息的隐私性和完整性。
为了“看透”复杂而不可见的无线电波世界,我必须依靠一些特定的设备。
在这种特殊场景中, RFID-RC522芯片被拆解,以便利用PCB上的微带天线作为NanoVNA的探针。
我拆焊了C10和C11电容器,然后将两个母跳线连接器焊接在其位置上。
然后,我扯下NanoVNA设备随附的同轴连接器电缆。将内芯线(+)和外屏蔽网(-)分开后,我分别焊接了公跳线连接器,以便有一个可拆卸的接口(理论上:跳线越长,当使用时“噪音”越高)读取RF值,因此,使其尽可能短)。
通过S11 → CH0输入将这个“弗兰肯斯坦”天线探针与NanoVNA连接起来,我可以在无线电波中游泳。
我从NanoVNA + RFID-RC522组合开始。
一旦打开, NanoVNA就会显示大量信息,但大多数信息恰好与此目的无关。它有一个电阻式触摸屏和一个轮式操纵杆,可以帮助浏览菜单。
焦点全部集中在黄色迹线上,因此我通过转到“显示”子菜单并双击“迹线 1” (青色)、 “迹线 2” (绿色)和“迹线 3 ”(洋红色)来禁用所有不必要的迹线。可以看到它们从屏幕上消失。
然后我点击“BACK”→ “SCALE”→“SCALE/DIV” ,然后设置“4”(它给出了一个很好的比例)。
我通过点击ENT按钮进行确认。
然后我返回主菜单并单击STIMULUS 。
通过单击“开始” ,我设置了12.5 MHz 。
通过单击“停止” ,我设置了16 MHz 。
通过这种方式,可以通过允许设备仅显示12.5至16 MHz频段内的信号来过滤所有信号。
为了查看设置是否良好,我在天线表面放置了一个备用NFC标签。
简单的规则:下部楔形越深,“共振”越高。
换句话说,这意味着用于测试的 NFC 标签与天线耦合良好(根据所接近的标签/卡,在13.56MHz频率附近看到不同的范围是绝对正常的)。
转向Proxmark3设备,它需要一台计算机才能工作。在原始GitHub 存储库中,我可以找到所有安装说明(非常详尽且解释良好)。我在macOS上运行,因此为了快速起见,我使用了基于 brew 的教程。
在首次运行之前,建议将设备固件升级为可用的最新版本。为此,该过程需要按下“半隐藏”按钮并在按住该按钮的同时插入Micro-USB电缆。这样设备就会以DFU 模式启动。
进入DFU 模式后,只需运行以下命令:
pm3-flash-all
它应该“自动”执行一切。
完成后,断开Micro-USB电缆与Proxmark3的连接并重新连接,即可在串行端口列表中检测到它。通过运行以下命令:
> PM3
现在可以进入NFC黑客/审计的神奇世界。
Proxmark3工具有一个交互式 shell (我建议您研究文档中的所有信息,因为该机器允许执行一些(甚至是非法的)非常有趣和复杂的事情)。
为了测试它,我将用于NanoVNA的相同NFC标签放在高频天线表面上。
通过在交互式 shell 中运行以下命令:
> pm3 → 高频搜索
可以读取与NFC相关的信息。
注意:虽然NanoVNA和Proxmark3设备都具有良好的电气“绝缘”性能,但如果放置在金属或类似材料等导电表面上,它们可能会受到一些噪音的影响。我将它们放在橡胶鼠标垫上,以使它们能够稳定工作。如果您在读数中遇到一些“奇怪”的行为,请记住这一点。
让我们回顾一下最后一条命令,转到支付卡读取:
> pm3 → 高频搜索
可以看出,输出比前一个输出更加详细,因为该卡包含一个“智能芯片”,可以进行更复杂和安全的操作。此输出对于以后的比较很方便。
都好。所有设备都已完全正常工作,设置也已完成,我们现在可以进入最有趣的部分。
为了找出我的支付卡的类型,我不得不把它撕开。
在焊台热风喷嘴(设置为100°C)的帮助下,我开始通过近远、前后画圆圈来加热卡芯片周围的表面。
避免造成不可逆转损害的真正技巧是不要在同一个地方停留太久(防止一切都融化)。
加热大约45 秒 ~ 1 分钟后,我开始用镊子轻轻地在芯片周围起毛,并通过一系列摆动,我能够将其从塑料外壳上拆下。
虽然有轻微的残胶覆盖,但还是可以看到集成天线的绕组,因此从内部芯片到外部天线没有焊点。
事实证明,这种类型的支付卡属于新技术类别,是芯片与小型嵌入式天线的组合,该天线与隐藏在卡板内的较大天线谐振并耦合,如前一段所述。
转到CASIO F-91W手表拆解,我全力以赴。为了不受阻碍地工作,我首先摘下了腕带。
然后在一把镊子和一把小螺丝刀的帮助下,我可以把它拆得只剩骨头(我无意定制内部电路,所以我保留了中央单元,因为除了非接触式支付之外,还可以方便地随时可以查询时间😂)。
通过使用之前使用的热风枪加热前板(相同的温度设置为100 °C ,远处相同的高低圆形图案),大约1.5 分钟,我从内到外施加了很大的力。不用太费力,表壳就自然弹出了。
在确定了被拆除的卡的性质后,我意识到我处理的不是一根天线,而是两根天线。我想看得清楚,所以我确实召回了我的装备。
单独来看,每一种都有自己的工作频率。卡外壳本身的谐振频率约为15.28 MHz 。
然而,当配对在一起时,结果是一个与单个频率完全不同的新频率。卡外壳+芯片的谐振频率约为14.85 MHz。
展望下一步,这个实验让我意识到,为了利用加法/减法合成方法从头开始复制匹配天线,必须考虑除阻抗之外的其他因素,包括厚度和/或磁导率的材料。
处理天线并不是一件容易的事。它需要大量的理论和实践经验,这些经验是通过多年的测试和挫折获得的,也许在某些实验室中就消失了。
总的来说,天线调谐是一个非常关键的设计过程,旨在优化天线系统的性能。它涉及以数学方式调整天线的长度、表面尺寸、阻抗匹配、 SWR (驻波比)最小化,以实现所需的谐振、高效的功率传输和工作特性。
好的但是…
我们黑客,极其懒惰的人,总是寻找最短的路径,用最少的努力来达到最大的结果。
承认上述陈述,我的目标是解决对电磁无聊的任何具体挖掘,以便提供尽可能最快的方式迭代天线设计过程。为此,我发明了所谓的“钓鱼调整”(感谢Daniele G. ,我真正的朋友和支持者,为我推荐了这个令人惊叹的名字),这是一种盲目调整自制NFC天线的贫民窟(但聪明)方法。
简单来说,这背后的过程涉及到基本的概念和材料。从支付卡新技术的规格可以了解到,芯片需要绕得很紧,那么,它应该有一些外部线圈,以便与NFC读卡器有足够的共振。
NFC读取过程(从有源设备)分布在频率间隔上,而不是特定的固定频率。在给定边界条件的情况下,器件耦合的固有可变性相对较高,因此任何小的误差都同样可以容忍。
![支付卡芯片尺寸测量(宽度)
](https://cdn.hackernoon.com/images/vSoRcyvb6dP2JiCy2a0lFEycpoa2-ow1k35vy.png)
我拿出了精密口径并得到了芯片尺寸。
借助广泛使用的在线3D CAD工具,我可以设计一个带有芯片支架的简单线轴(放置在最中心),为内部和外部绕线留出空间,我可以在3D 打印机的帮助下挤出这些空间。
我使用了0.10毫米的漆包铜线(非常便宜,售价几美元),我开始将它缠绕在最里面的芯片外壳上,然后我继续在最外面的线轴上生成线圈。
为了让一切步入正轨,我发现Proxmark3工具附带的一项功能非常有用。通过触发以下命令:
> pm3 → 高频调谐
可以实时观察接近高频天线表面的任何NFC兼容标签的压降(以mV (毫伏)为单位)。
简单的规则:电压降越高,天线谐振越大(因此耦合效率更高)。
(调钓技术演示)
正如您在上面的演示视频中看到的,左手使线轴与Proxmark3天线表面保持一致(下图)。
右手缓慢地将线从线轴上拉出,同时密切关注pm3 → hf 调谐连续读数。我继续,同时在3mV / 14mV处达到最高电压降(达到最大值约11mV )。
然后,我从线轴上剪掉多余的电线,保留一点额外的电线供以后使用,以防出现错误和/或进行更细粒度的频率调整。现在,我们有了一根0.10 毫米电磁线的任意长度天线线(我的天线线长约1.6 米),可以在最可爱的外壳中再次盘绕。
从一侧到另一侧,从前板到后板, CASIO F-91W数字手表有几层组件:金属盖、电池座、纽扣电池、PCB、显示屏、塑料外壳和屏幕保护膜。背面安装天线不起作用(相信我,在得出这个结论之前我做了无数次的试验和故障排除)。这是由于太多的“屏蔽”组件会干扰并且不允许放置在背面的潜在NFC天线与任何NFC读取器正确配对。
为了获得像样的天线设计(不破坏手表的原始美观),我在3D CAD软件中复制了原始前板,其中我切出了容纳芯片的区域,并在整个周边刻了一个空腔缠绕天线线。
至于背板,我决定用基于PLA的3D 打印背板替换原来的金属背板。
这使我能够确保整个结构减少因金属板的存在而产生的电磁噪声,同时保持纯粹的美观均匀性。
为了了解所需的电线数量,我经常通过NanoVNA + RFID-RC522设备组合测试谐振峰值,同时松开并切割电线,一次一小块。
另外,我还使用Proxmark3设备来检查缩小后的非接触式支付卡在新形状下是否仍然可以很好地读取。
前板上3D 打印(用于手表显示屏)留下的孔用超透明环氧树脂填充,以实现玻璃表面处理。
每面暴露在足够强大的 ( 48W )紫外线灯下约1~2 分钟,有助于UV树脂的聚合(硬化)。
是时候把所有的部分拼凑起来了。
用一把剪刀、镊子和一束电子产品的双面修复胶带,我成功地重建了前板的粘合表面。
最后,我重新组装了剩余的组件,用背板和原来的螺丝封闭了所有东西。
我不能错过一条很酷的表带来完成视觉外观和合身。
我在不同的商店/自动售货机上买了一些东西,以便现场证明CASIO F-91W中嵌入的非接触式支付系统可以完美运行。
一些视频比许多文字更有价值。
他们都擅长用智能手表付款,但用老式卡西欧呢?
回报所有努力的纯粹喜悦就是看到人们震惊的表情 → 😯 当他们在结帐时意识到我付的钱时 🤣。
我的脑海里闪过几个念头:
只是一些更有趣的东西。
另外,我创建了一个GitHub存储库,其中托管了一堆我认为有用的文档,以及您可以自行下载和3D 打印的前板和背板的*.STL文件 →此处。
这次进入NFC技术、非接触式支付和无线电波领域的旅程令人兴奋。作为一名黑客,我感到非常幸运,生活在一个工具、软件和数字生态系统快速发展的时代,开辟了新的可能性领域,使我们能够看透事物,并挑战我们拥抱不断变化的环境的技术。成为一名技术NERD不仅仅是对电子或编码的热情;它包含一种由好奇心、解决问题和永不满足的学习欲望驱动的心态。这是一生对发现的探索,每一个新的突破都是迈向更大进步的垫脚石。这是关于站在创新的最前沿,突破界限,并为由想象力和技术实力驱动的未来做出贡献。
然而,在技术的所有兴奋和奇迹中,我还必须记住道德考虑、隐私和负责任使用的重要性。拥有权利的同时也被赋予了重大的责任。
让我们继续探索、修补并与世界分享我们的知识。
特别感谢特别的朋友:
伙计们,这是史诗般的🤙。
本文中提供的任何信息仅用于教育目的。对于个人或实体根据本教程获得的信息采取的任何非法行为,我不承担任何责任。该内容旨在提供一般指导,您有责任确保在应用所提供的信息时遵守所有适用的法律、法规和道德标准。您根据本教程采取的任何操作均由您自行承担风险并自行决定。对于因使用或误用本教程中提供的信息而造成的任何损害、损失或法律后果,我不承担任何责任。我强烈建议您寻求专业建议或咨询有关当局,以确保遵守法律。通过访问和使用本教程,您同意免除我对因应用所提供的信息而可能在下游发生的任何非法行为或其后果承担任何责任。请负责任地使用这些信息,并在实际情况中应用时谨慎行事。
也发布 在这里。