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产品),如何正确选择相关应用程序。然而,该过程当然也可以扩展到使用不同类型的卡操作应用程序。