AN10834-MIFARE ISOIEC 14443 PICC selection.pdf

2023-11-01 10:59

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/322486

相关文章

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by