首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mifare经典1k小额支付

mifare经典1k小额支付
EN

Security用户
提问于 2016-11-27 21:02:40
回答 3查看 1.4K关注 0票数 3

Mifare经典1k可以安全地用于小额支付吗?

我有一个系统,在一个街机游戏沙龙使用。你正在从收银员那里得到一张卡,并且可以加满它,例如100分(它们写在卡片上,而不是在数据库中,只使用ID)。然后你可以到每台机器上,扫描读卡器上的卡片,你的点数就会减少,剩下的点会显示在lcd上。

因此,每次你扫描卡,它写新的数据和检查它的完整性。

这是否可能是完全防弹的,不能通过某些自定义硬件复制?

我将创建硬件来接受街机游戏的付款,并为自上而下的操作创建软件/硬件。

我正在考虑一个解决方案,在这个解决方案中,我将保存卡唯一id的散列(带有一些秘密种子),以及当前点数数量,并将其保存在卡的eeprom中(当然,还包含点数数量)。我可以将其封装在AES或3 3DES块中,以获得额外的安全性。我将在硬件中存储密钥和散列,这样就会非常安全。

我担心的是:

  1. 如果有人在写作业时拿走卡片呢?
  2. 有人能把卡复制到某种具有唯一标识符和eeprom内容的仿真器上吗?
  3. 也许还有另外一个例行公事,比“读、写、查”和打开游戏更好?
  4. 我认为Mifare DesFire标准是针对微支付解决方案的,但是卡更贵,硬件也可能更贵。然而,也许有人有一些经验,但它没有看上去那么可怕?
  5. 当然,任何人都有针对Mifare的硬件建议。

非常感谢您的任何投入。

EN

回答 3

Security用户

发布于 2016-11-28 13:50:44

Mifare经典可以完全复制。你也可以用可变的UID买卡--我刚订了一堆。需要非默认密钥的卡块可以在PC上使用廉价硬件破解。例如: Proxmark或Adafruit PN532 / PN532 V3,使用libnfc和一些其他程序。所有所需的工具都是在Kali linux中使用的。

我还没有幸运地访问这些需要非默认密钥的块,但这只是因为我还没有付出很大的努力。Desfire EV1是2008年后的修订版,这些卡被认为是安全的,而且是不可复制的p.t.如果你知道这是不正确的,请提供链接。

很多地方都使用Mifare的经典标签来进行访问控制--更强大的功能--但我不会用NXP (没有中国仿冒)的任何东西来实现任何涉及金钱的事情。

谷歌'mifare经典克隆‘。

从阅读各种来源,我估计它将需要最多25-30分钟,从这些卡片上的所有数据。对于使用默认键的卡,它所用的时间不到一秒钟。Adafruit PN532 (它有一个像样的天线)可以在7cm的距离内完成-这个范围可以通过定制天线来增加。从3-4厘米处可以读到火。似乎卡处理和通信所需的功率越多,扫描仪的范围就越小。琐事:一层铝箔就能阻止这.不需要“钢铁钱包”。把它粘在一个标准的信用卡持有者上,然后把它放在你的钱包里。

编辑:任何来自戊酯和工程师的补充信息都将对OP有用。请纠正我对NFC可能产生的任何误解;)

票数 3
EN

Security用户

发布于 2016-11-27 22:40:31

你可以利用这样的计划。然而,有一些事情需要处理。

在卡中存储的金额,连同卡UID +数量的散列,可以防止将金额从一张卡复制到另一张。

但是,它并不阻止用户读取卡数据,在游戏中使用卡(从而减少了数量),然后重写先前的卡数据以恢复其初始数量。为了防止这一点,你必须确保只有授权终端(游戏机)才能在卡片上写字。

Mifare将通过允许您在卡中加载自定义密钥来解决此问题,这将保护扇区不被读和/或写入。这些钥匙必须被机器知道。

现在,为了防止卡模拟/克隆,如果您在卡中加载自定义密钥,您也可以解决这个问题。终端必须在交易前使用您的自定义密钥进行身份验证,因此您必须确保这张卡是真实的。请注意,在这一点上,您甚至不必在卡中存储amount+UID的散列,以保证金额不会转移到另一张卡,因为只有您的机器(您信任的机器)才能读/写真正的卡。

因此,如果您适当地设置mifare扇区的密钥和访问位,那么基本上是可以的。你也必须保护你的游戏机器硬件,因为黑客可以访问这样一台机器,可能会发现如何改变卡中存储的数量。

关于你的详细问题:

  1. 如果卡片在写的时候被撤回,Mifare经典不会给你任何保证。这意味着扇区最终会被破坏。为了防止这种情况,您可以在多个扇区上写入数据,并在重新读取卡片时进行一致性检查。我还建议在与客户发生争执的情况下,对计算机中的卡片事件/数据进行大量跟踪/记录。
  2. 以上插入(如果您适当地设置mifare键和访问条件,则无法复制/模拟卡片)。
  3. 我宁愿说读,检查,写和打开游戏。未经事先确认卡的完整性,请勿在卡片上写任何东西。但要不然没事的。
  4. Mifare DESFire具有非常适合您需要的Credit/Debit命令。这些命令所允许的是放松对机器的安全性要求。使用经典的方法,如果机器硬件/固件被黑客入侵,您将面临欺诈的风险。然而,如果这些卡能够自己进行真正的借记/信贷,你就可以减轻这种风险。这是否值得由你来决定。
  5. 我不知道这是不是你想要的,但当然,NXP有现成的筹码,你可以用它来设计Mifare终端。
票数 1
EN

Security用户

发布于 2016-11-28 14:16:57

在我看来,货币“储存”唯一合理的安全选择是将卡作为GUID的一个有点安全的容器,并集中处理实际的余额验证和修改。

EMV信用卡的标准策略通常将离线购买(如果有的话)限制为20美元的累积,这是有原因的;有太多不同的攻击场景,除非风险足够低,否则无法保证离线系统的安全,即使您使用的芯片安全(且昂贵得多)。

如果这是一家“街机游戏沙龙”,也就是说人们可以提前支付几个小时的娱乐费用,那么风险就很低,你可以用非技术手段来减轻风险(让一个人在你的游戏厅里呆上十几个小时,而不加满卡?),但如果它涉及赌博和可能赢钱,那就完全不同了。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/143724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档