3

我国政府已开始发行智能国民身份证 (SNIC)

我有一个智能卡读卡器 ( ACR38-IPC )

当我将我的 SNIC 插入阅读器时,Windows 检测到它并安装了驱动程序,现在它在设备管理器中显示为:ActivIdentity Mini Driver (Oberthur ID-One Cosmo V7.0 128K)

我发现它是 JavaCard v2.2.2

我想在 C# 应用程序中使用阅读器从 SNIC 读取我的国民身份证号码。

我在互联网上搜索过,但没有找到合适的答案。我不想构建一个小程序并将其加载到卡上,我只想读取存储在卡上的公民信息。

我还安装了其他国家提供给他们的公民读卡的软件,但是他们不能读我的卡。

我的主要问题是 SNIC 发卡机构没有告诉我任何关于卡的事情(完全荒谬),他们甚至没有给我我的 PIN 码(这不是很神奇吗???)(也许他们不希望公众发展使用此卡的应用程序,他们会让自己的人这样做并获得好处:裙带关系)

我只知道卡的类型,我想从卡中提取我的信息(我认为它不应该受 PI​​N 保护,即使我不知道 PIN 也可以读取)

请帮助我如何开始

这是我卡的 ATR 解析:ATR Parsing

4

2 回答 2

2

看一下 ATR,该卡似乎声称具有 EF.DIR。这可能意味着 APDU 接口符合 ISO 7816-4。这也意味着该卡很可能符合 ISO 7816-15,并且该标准基于公开可用的 PKCS#15 标准(警告,ftp 链接到 PDF 格式的标准版本 1.1)。Java Card 本身仅包含对 ISO 7816-4 APDU 的非常基本的支持,即使(或多或少)遵守通信层 (ISO 7816-3)。其余的取决于 Java Card 开发人员。

开始阅读此卡的方法是访问 ISO 7816-4 的副本。此外,您需要阅读 BER 和 DER 结构,因为很可能需要了解 ASN.1 结构。之后,您应该能够使用SELECTREAD BINARYAPDU 读取数据。阅读 EF.DIR 后,查看该文件中的内容。

如果幸运的话,该卡符合 ISO 7816-15 标准。ISO 7816-15 描述了一种发现卡上所有文件和对象的方法。唯一的问题是解析 ISO 7816-15 不是一个下午就能完成的事情。要了解一个想法,请查看 ISO 标准所基于的 PKCS#15 标准。

不幸的是,智能卡业务是例外之一。拥有某种官方文档确实会非常有帮助。声称一张卡符合 ISO 7816-4 意味着几乎没有(ISO 7816-4 更像是一个综合标准,对创建自己的标准的人有用,即使为此目的它也是一个糟糕的标准)。

不幸的是,ISO/IEC 标准是严格的付费软件。您可能希望找到实现它的库等。谷歌搜索 ISO/IEC 7816-4 应该返回大量信息(可能包括标准的非法下载)。

于 2012-12-04T20:55:12.867 回答
1

如果没有任何有用的输入数据(如发行国,或者显然是 SNIC 规范),就很难得出有意义的答案。

一些提示:

  • Java 卡只有一条固定指令 SELECT,它肯定无法读取所需的信息,因此在这里不太可能需要,因为默认应用程序可能就是您感兴趣的那个。
  • PIN 可能存在也可能不存在;它不是很明显,它是您的PIN,它可能会被预见到未来的应用程序,它还没有出现在卡上(例如数字签名应用程序)或者根本不需要。
  • 即使读取数据不需要 PIN 码,也可能需要后台系统的身份验证;完全有可能,没有它就什么都读不出来。如果没有大量的额外信息,这不会改变。仅拥有卡将无助于进步。
  • 如果该卡符合 ICAO 标准和/或具有非接触式界面,那么没有窃听者可以从您的口袋中读取信息符合您的利益。通常,必须执行一项操作,表明与基本访问控制之类的读取一致,这需要打印在卡上的信息。
于 2012-11-27T13:01:03.950 回答