从JavaCard读取公民数据



我国政府已开始发放智能国民身份证(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也可以读取)

请帮助我如何启动

这是我的卡的解析:解析

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

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

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

不幸的是,智能卡业务是一个例外。拥有某种官方文件确实会很有帮助。声称一张卡符合ISO 7816-4几乎没有任何意义(ISO 7816-4是一个伞式标准,对制定自己标准的人很有用,即使是出于这个目的,这也是一个糟糕的标准)。

不幸的是,ISO/IEC标准严格来说是付费软件。不过,您可能想要找到实现它的库之类的东西。在谷歌上搜索ISO/IEC 7816-4应该会返回大量信息(可能包括该标准的非法下载)。

如果没有任何有用的输入数据(比如发布国家,或者显然是SNIC规范),很难找到有意义的答案。

一些提示:

  • Java卡只有一条固定的指令SELECT,它肯定不能读取所需的信息并且在这里不太可能需要,由于默认的应用程序可能是一个,因此您感兴趣
  • PIN可能存在,也可能不存在;不明显的是是您的PIN,它可能会用于未来的应用程序,即尚未在卡上(例如数字签名应用程序)或永远不会根本不需要
  • 即使读出数据不需要PIN可能需要来自后台系统的认证;是的完全有可能,没有它什么都读不出来。没有实质性的额外信息——这不会改变。单凭牌的姿势对进步没有帮助
  • 如果该卡符合ICAO标准和/或具有非接触式接口感兴趣的是,没有窃听者可以从你的口袋里读出信息。通常情况下,一个人必须执行一个动作,这表明他同意阅读基本访问控制,需要打印在卡上的信息

相关内容

  • 没有找到相关文章

最新更新