big*_*num 21
每当我需要访问智能卡以用于安全应用程序时,它都可以通过以下任一方式:
要使用Microsoft CryptoAPI访问卡,需要使用特定于卡的加密服务提供程序(CSP).CSP位于CryptoAPI层下.
但是,如果您使用"C/C++"在Unix/Linux上进行开发,那么您可能需要查看RSA 的PKCS#11标准.该标准规定了一个名为Cryptoki(加密令牌接口)的'C'API,它在所有类型的加密设备之上提供了一个共同的抽象.几乎所有的智能卡供应商都为他们的卡提供了PKCS#11库,您可以使用Cryptoki API对其进行编程.
如果要访问较低级别的智能卡/读卡器,可以使用PC/SC或CT-API等API.
用于在Windows,Linux和Mac OS X上实现的智能卡访问的PC/SC事实标准
CT-API仅提供非常小的功能; 不太适合现代应用程序.
如果您有兴趣编写在智能卡上运行的Java小程序,那么您可能希望查看http://java.sun.com/javacard/
可能有用的资源
OpenSC是一套用于智能卡的库和工具.它旨在与PKCS#11支持卡配合使用.OpenCT为读卡器以及由卡和读卡器组成的令牌(即usb令牌和其他"完整"设备)提供驱动程序.
http://www.linuxnet.com/ MUSCLE - 在Linux环境中使用智能卡的运动
PKCS#15 - 加密令牌信息格式标准
一对PKCS#11介绍在2009年的RSA的conf给出.
PyKCS11围绕PKCS#11的Python包装器.与直接在Cryptoki级别工作相比,这些类型的包装器可以提供更简单的更高级别的接口.
如果你用谷歌搜索,你可以找到智能卡开发套件,其中提供了程序员、一些示例卡和手册,而且价格相当便宜。
它还有助于了解密码学(尤其是公钥密码学),以及将数据打包到非常小的结构中的一些实践。
智能卡的范围从极其愚蠢的(安全的 1kb 内存存储)到相当复杂的(我见过广告上运行精简的 .NET 框架的智能卡)。
最常用的智能卡可能是 Mifare 生产的智能卡,通常用作旅行门票,但也用作会员卡甚至通行证。