本文主要是介绍AN10834-MIFARE ISOIEC 14443 PICC selection.pdf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AN10834-MIFARE ISOIEC 14443 PICC selection.pdf
1简介
在读卡器(系统)和智能卡之间交换数据之前,必须正确选择智能卡。该卡选择过程(卡激活)在用于非接触式接近系统的ISO14443-3中进行了描述。非接触式应用的急剧增加使得在读卡器领域从可能数量的卡中正确选择一张非接触式卡变得更加重要。这是在制定ISO标准时预见到的,因此该标准详细描述了应用程序必须如何处理它们。
1.1如何使用本文档
选卡过程可分为两个部分:首先,通信层描述如何选择单个PICC(无论卡或应用程序的类型如何)。这一点很重要,因为规定非接触式智能卡通信的ISO标准仅描述了该通信层,与应用无关。在现场可以找到越来越多不同类型的卡和应用程序,它们都使用ISO/IEC 14443。
第二步,在选择了一张卡之后,是选择正确的应用程序,处理多个应用程序(或多张卡),或者正确地忽略外国应用程序((或多个卡)。
本文件第2节介绍了ISO/IEC 14443如何选择单个卡。防碰撞程序对于A型和B型卡都是强制性的。
除了卡激活程序之外,系统本身还必须确保PCD可以选择正确的应用程序,无论是在一张卡上使用多个应用程序,还是在不同的卡上使用不同的应用程序。在许多系统中,建议让系统选择正确的应用程序,而不是用户,这保证了快速安全的交易。如第3节所示。
在本文件中,术语“MIFARE卡”是指使用MIFARE Classic、MIFARE Ultralight、MIFARE Plus或MIFARE DESFire产品系列中的IC的非接触式卡。
ISO/IEC 14443-3描述了如何选择(“激活”)单个卡。该卡激活程序通常与现场卡的数量和应用程序的数量无关:
•此程序确保在卡激活过程中,独立于现场可用卡的数量,正确选择单个卡。
•此程序确保在整个卡激活或卡交易过程中,独立于移入字段的卡的数量,正确选择一张卡。
•此程序确保在整个卡激活或卡交易过程中,独立于移入字段的卡的数量,始终正确选择一张卡。
注:出于方便的原因,在许多非接触式系统中,卡会连续移动到现场,然后从现场取出。因此,在这样的系统中,通常无法保证交易会完成。这与卡激活程序或在单个读卡器中使用多张卡完全无关。
必须考虑一些额外的措施,以确保在整个卡交易过程中的正确功能:要么卡槽必须与接触式读卡器槽类似地使用,要么应用程序(卡上或系统中)必须为那些可能中断交易的情况提供恢复程序(撕裂保护或备份管理)。
2.1卡片轮询
ISO/IEC 14443规定,遵循ISO/IEC 14443A的板卡不得干扰遵循ISO/IEC 14443 B的板卡,反之亦然。在任何情况下,卡激活过程都以请求命令(REQA或REQB)开始,该命令仅用于检查读卡器字段中是否至少有一张卡。REQA或REQB必须在载波接通后发送,在开始传输之前至少等待5毫秒。该过程如图1所示。
注:REQA和REQB或REQB和REQA之间所需的最短时间为5毫秒。
注:对于NFC设备,“卡轮询”和“打开RF”之间必须有另一个块,因为NFC设备需要检查是否已经有可用字段。如果检测到外部场,则不允许读取器打开其自身的RF场。
在某些应用中,可能需要定期重置RF,而在其他一些应用中,载波只打开很短时间。在所有情况下,每次通信都以REQA(或REQB)开始。如果收到ATQA(或ATQB),则第2.2节中所述的“激活卡”程序会选择检测到的卡。如果没有接收到ATQA(或ATQB),则使用REQB(或REQA)。
如果系统只要求允许一张具有相关应用程序的卡进入现场,则PCD必须选择所有相关卡。然后取消选择具有外国应用程序的应用程序。必须检查应用程序正确的剩余卡:如果出示了多张此类卡,PCD必须拒绝交易。这不是通信层的一部分,在第3节中进行了描述。
2.2激活卡
卡片激活会在ATQA之后选择一张卡片。
2.2.1符合ISO/IEC 14443A的防碰撞程序
对于符合ISO/IEC 14443A的PICC,防撞程序是强制性的。恩智浦MIFARE的所有产品都支持ISO/IEC14443A。
“激活卡”包括单个卡的防冲突和选卡(适用于a型和B型)。对于符合ISO/IEC 14443-4的PICC(如MIFARE DESFire、非接触式支付卡、电子护照等),激活卡包括传输协议的正确设置,如图2所示。
3选择正确的应用程序
由于在一个标准系统中,活动PCD字段中可以有多个PICC,因此系统必须选择正确的一个,并且必须取消选择所有其他PICC。
在任何情况下,系统都必须能够将有外国申请的卡与有自己申请的卡分开,并将“外国卡”正确地排除在自己的选择过程之外。该系统必须能够排除包含外国应用程序的卡,尤其是在那些系统要求操作仅限于“一张卡”的情况下。
注:
这个选择过程与应用程序有关,但与通信无关!
这种选择的原则总是一样的:选择并查询字段中的每一张卡,以检查它是否包含相关应用程序。如果字段中有多张卡包含相关应用程序,则系统必须优先处理这些卡或拒绝交易。
如果只有一张卡包含相关应用程序,则系统必须执行交易——与字段中的卡数无关。
以下部分描述了如果系统中仅使用一种类型的卡(例如仅MIFARE产品),如何正确选择相关应用程序。然而,该过程当然也可以扩展到使用不同类型的卡操作应用程序。
3.1选择MIFARE产品应用
在许多情况下,系统需要选择一张MIFARE产品卡(如MIFARE Classic 1K或MIFARE经典4K或MIFARE Ultralight)。在所有这些情况下,PCD不使用传输协议,而是仅根据ISO/IEC 14443-3选择卡。之后,应用程序运行与应用程序相关的命令(如MIFARE Classic 1K或MIFARE经典4K的Authentication或MIFARE Ultralight的Read)。
如图3(无MAD)或图4(使用MAD)所示,选择MIFARE Classic 1K或MIFARE经典4K的过程使用激活卡而不激活传输协议。在这个过程中,每个符合ISO/IEC14443-4的卡都被选择并正确地停止。提供MIFARE仿真和ISO/IEC14443-4协议层的双接口卡在这里被自动正确地激活为MIFARE产品卡。
如果现场有多张带有相关应用程序的MIFARE产品卡,则此过程将返回错误。“重新激活卡”使用WUPA和Select命令。
注意:如果使用Read命令而不是Authentication,那么MIFARE Ultralight版本也可以使用如图3所示的相同过程。
3.2选择符合ISO14443-4标准的应用程序
在许多使用符合ISO/IEC 14443-4的卡的应用中,需要从多个卡中正确选择一个卡。即使交易需要寻址多张卡,通常每个系统都使用按顺序寻址卡的交易流。因此,即使ISO/IEC 14443协议激活允许并行使用CID和多个卡,也应分别激活(和停用)每个卡。
注意:为了更好的通信稳定性,如果没有其他要求,建议仅激活并选择当前交易中正在使用的卡。
图5显示了在DESFire卡上选择应用程序的示例。不包含相关应用程序的所有其他卡都会被系统忽略(即正确取消选择)。如果向读卡器出示了一张以上具有此类相关应用程序的DESFire卡,系统将拒绝交易。
“重新激活卡”使用WUPA和Select命令。
使用ISOSelect,相同的原理可以用于选择其他类型卡上的其他应用程序,例如MIFARE Plus SL3卡上的票务应用程序、JCOP卡上的支付应用程序或eMRTD上的电子护照应用程序,或智能手机上的数字MIFARE卡。
3.3在一次交易中使用多张卡
在某些情况下,系统可能需要在同一交易期间并行处理两张或多张卡。在这种情况下,系统可以在一次交易期间使用协议的CID来激活和寻址每个卡。
选择过程与图5所示相同,可以使用不同的CID来选择每一张卡,处理的次数与字段中的卡一样多。
3.4 MIFARE产品的检测
关于如何检测哪种MIFARE产品被呈现给读者的详细信息,请参阅[4]。
如果系统的目标是与MIFARE产品以及MIFARE 2GO一起工作,那么关于如何设计应用程序选择的所有相关信息都可以在[5]和[6]中找到。
这篇关于AN10834-MIFARE ISOIEC 14443 PICC selection.pdf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!