首页 文章

如何只读/写同步智能卡,如存储卡

提问于
浏览
3

我有一个只支持同步接口的IC存储卡(如SLE5532,SLE5542 ......等)

我想知道如何编写一个读取内存内容,验证PSC(PIN)和写入内存的应用程序 .

这种类型的卡不能接受像微处理器卡这样的普通APDU . 在数据表中,它指定要以二进制形式发送的命令(所有命令的长度为3个字节)

我找到了一个专门用于SCM Reader的应用程序(基于MCSCM.dll),但它不能与我的OmniKey阅读器一起使用 .

我想知道是否有可能构建一个直接调用winsCard API函数的应用程序,而无需直接使用Reader的DLL . 如果是这样,有什么适当的函数可以调用?

如果不可能,我如何找到OmniKey的API?并且有人可以寄给我使用OmniKey 3121读卡器和同步卡的样品吗?

提前致谢

2 回答

  • 1

    不,不可能以通用方式从智能卡读卡器处理存储卡 . 硬件通信协议与处理器卡不同,并且每个硬件制造商都是独立的,哪些伪APDU支持该行为 . 因此,如果没有特定的读者支持,您就没有机会 Build 沟通 . 使用MIFARE情况会更好,但这对您没有帮助 . 如果您无法在http://www.hidglobal.com找到文件,您可能会问他们的支持 . 否则,我建议使用SCM阅读器,您可以使用匹配的软件 .

    这似乎是你需要的,神奇的关键字是CT-API,但这与winscard无关:http://www.hidglobal.com/drivers/14877

  • 0

    如果您的阅读器支持PC / SC 2.01.14规范find them here,则它可能支持访问存储卡的通用方法 . (但请注意,支持是可选的,并非所有读者都支持它 . )

    part 3 of the PC/SC specifications的第3.2.2.1节中,定义了存储卡功能支持 . 此功能由几个读取器解释的APDU命令组成,您可以将这些命令发送给阅读器 . 然后,阅读器将这些命令转换为存储卡特定命令 . 例如,有一个READ BINARY命令用于从存储卡读取数据:

    FF B0 ADDR1 ADDR0 Le
    

    并且有一个VERIFY命令(用于支持PIN验证的卡)

    FF 20 xx yy Lc PIN
    

    为了识别特定存储卡的类型,您可以参考(非接触式)存储卡的ATR(仿真)格式(在part 3 of the specification的3.1.3.2.3.2节中)和规范的第3部分的supplemental document 1 (Storage Card ATR) .

    例如,如果您的卡根据ISO / IEC 7816-10 I2C变体运行,您从阅读器获得的ATR将如下所示:

    8E 80 01 80 4F 0C A000000306 0D xxxx 00000000 yy
    

    除此之外,一些制造商还定义了自己的自定义命令(可以通过PC / SC API或通过其他一些接口使用,例如CT-API或Omnikey Synchronous API) .

相关问题