我们的政府已经开始发行智能国民身份证 (SNIC)
我有一个智能卡读卡器(ACR38-IPC)
当我将 SNIC 插入读卡器时,Windows 检测到它并安装了驱动程序,现在它在设备管理器中显示为:ActivIdentity Mini Driver (Oberthur ID-One Cosmo V7.0 128K)
我发现它是一个 JavaCard v2.2.2
我想在 C# 应用程序中使用阅读器从 SNIC 读取我的国民身份证号码。
我在网上搜索过,但没有找到合适的答案。我不想做一个小程序加载到卡上,我只是想读取存储在卡上的公民信息。
我也安装了其他国家提供给他们的公民读卡的软件,但是那些不能读我的卡。
我的主要问题是 SNIC 发行机构没有告诉我任何关于卡的信息(完全荒谬),他们甚至没有给我我的 PIN(这不是很神奇吗???)(也许他们不想要一般的公众使用这张卡开发应用程序,他们会让自己的人这样做并获得好处:裙带关系)
我只知道卡的类型,我想从卡中提取我的信息(我认为它应该不受PIN保护,即使我不知道PIN也可以读取)
请帮助我如何开始
这是我的卡的 ATR 解析:ATR Parsing
最佳答案
看一下 ATR,这张卡似乎声称有一个 EF.DIR。这可能意味着 APDU 接口(interface)符合 ISO 7816-4 标准。这也意味着该卡可能符合 ISO 7816-15 标准,并且该标准基于 publicly available PKCS#15 standard (warning, ftp link to version 1.1 of the standard in PDF format) . Java 卡本身仅包含对 ISO 7816-4 APDU 的非常基本的支持,即使(或多或少)遵守了通信层 (ISO 7816-3)。剩下的就交给 Java Card 开发人员了。
开始阅读此卡片的方法是获取 ISO 7816-4 的副本。此外,您需要阅读 BER 和 DER 结构,因为很可能需要了解 ASN.1 结构。之后,您应该能够使用 SELECT
和 READ BINARY
APDU 读取数据。阅读 EF.DIR 后,看看该文件中的内容。
如果幸运的话,该卡符合 ISO 7816-15 标准。 ISO 7816-15 描述了一种发现卡上所有文件和对象的方法。唯一的问题是解析 ISO 7816-15 不是一个下午就能完成的事情。要获得一个想法,请查看 ISO 标准所基于的 PKCS#15 标准。
不幸的是,智能卡业务是异常(exception)之一。拥有某种官方文档确实会非常有帮助。声称一张卡符合 ISO 7816-4 标准几乎毫无意义(ISO 7816-4 更像是一个总括标准,对那些正在创建自己的标准的人很有用,但即使是为了这个目的,它也是一个糟糕的标准)。
不幸的是,ISO/IEC 标准是严格意义上的付费软件。您可能想找到库等来实现它。在谷歌上搜索 ISO/IEC 7816-4 应该会返回大量信息(可能包括对该标准的非法下载)。
关于smartcard - 从 JavaCard 读取公民数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564794/