2010-04-23 65 views
18

智能卡編程如何開始?我在這裏詢問他需要的所有工具包,以便開始使用:書籍,教程,硬件等。啓動智能卡編程

我打算與幾個智能卡程序員一起玩,我對這個領域很新穎。

編輯:我最喜歡的程序員喜歡類Unix操作系統。此外,我不知道這是如何工作的...但我想用C/C++編程它們

回答

0

如果你在谷歌有關你可以找到提供程序員,幾個樣本卡和手冊的智能卡開發工具包,相當便宜。

它也有助於理解密碼學(特別是公鑰密碼),以及將數據打包成真正非常小的結構的一些練習。智能卡的範圍從令人難以置信的愚蠢(一個安全的1kb內存存儲)到相當複雜的(我見過那些運行減少的.NET框架的廣告)。

也許最常用的智能卡是由Mifare生產的單位,通常製作爲旅行機票,但也可用作會員卡或甚至是進入許可證。

+4

如果您使用了Google,請將實際鏈接放在此處。 – kizzx2 2011-02-09 05:45:57

20

每當我需要訪問智能卡使用的安全應用中,已經通過兩種:

  • 微軟的CryptoAPI
  • 一個PKCS#11庫卡。

要使用Microsoft CryptoAPI訪問卡,需要一個卡特定的加密服務提供程序(CSP)。 CSP位於CryptoAPI層下。

但是,如果您使用'C/C++'在Unix/Linux上開發,那麼您可能需要查看來自RSA的PKCS#11標準。該標準指定了一個名爲Cryptoki(Cryptographic Token Interface)的'C'API,它提供了所有類型的加密設備之上的通用抽象。幾乎所有的智能卡供應商都會爲他們的卡提供一個PKCS#11庫,您可以使用Cryptoki API進行編程。

如果您想訪問較低級別的智能卡/閱讀器,可以使用PC/SC或CT-API等API。

  • PC/SC在Windows,Linux和Mac OS X實現智能卡訪問事實上的標準

  • CT-API只提供很小的功能;不太適合現代應用程序。

如果你有興趣寫的是在智能卡上運行,那麼你可能想看看http://java.sun.com/javacard/

資源,可能是使用

  • OpenSC的Java小程序是一組庫和智能卡工具。它旨在與PKCS#11支持卡配合使用。 OpenCT爲讀卡器提供驅動程序,以及由卡和讀卡器組成的令牌(即USB令牌和其他「完整」設備)。

  • http://www.linuxnet.com/肌肉 - 在Linux環境下的移動使用的智能卡

  • PKCS#15 - 密碼令牌信息格式標準

  • Smart Card Handbook

  • 在RSA的conf中給出一個presentation on PKCS#11 2009.

  • PyKCS11 A Py thon封裝在PKCS#11周圍。這些類型的包裝器可以提供比直接在Cryptoki級別上更簡單的更高級別的接口。

  • Smart Card Alliance

+0

感謝您提供非常豐富的答案!只是爲了澄清,OpenSC不針對「PKCS#11支持卡」(PKCS#11是軟件接口,不是卡布局或訪問標準等)。 – 2012-02-14 09:26:15

+0

我們可以好心地把一些C++/C代碼,而不是無盡的終生閱讀書籍? – YumYumYum 2017-02-08 22:30:54

3

的Java已經開始獲得在智能卡市場帶來巨大的抓地力,以非常大的球員(如IBM)推動。

在整個國家,人們在口袋裏攜帶一張Java Card。例如,有超過一千萬比利時公民,其(強制性必須擁有)國民身份證是運行BELPIC「小程序」的Java卡。

如果我沒有弄錯整個巴西醫療保健系統也是基於Java Card(s)的。

關於智能卡和Linux,這裏的Linux的智能卡HOWTO(請注意,這HOWTO充滿了 「Java」 的關鍵字的無處不在):

http://www.faqs.org/docs/Linux-HOWTO/Smart-Card-HOWTO.html

然後有一個.pdf稱爲「探索智能卡」從2008年6月開始,它探討了「智能卡」世界的大混亂,並且基本上首先解釋了「智能卡」與「計算機」的描述性一樣:即不是非常具有描述性; )

0

現在答案已經很晚了,但我想給@bignum的答案一個插件。那麼,你可以開始使用Java智能卡開發,我想推薦一本好書來理解初學者和開發人員的知識。 「Java Card Technology for Smart Cards」。

如果您的預算允許,那麼您可以使用從上述書中獲得的知識,購買用於研究和開發智能卡小程序的「Mobile Security Card」。

而且您還可以參考或使用託管在googlecode上的智能卡API項目SEEK FOR ANDROID以獲得第一手體驗。