2016-05-18 31 views
0

我正在進行一個項目,我需要數字簽名以確認身份(讀取智能卡,a3)。 但是,關鍵是我目前沒有卡或讀卡器。有沒有人知道一種方式,我可以「虛擬化」一張卡片,就像插入普通卡片一樣,使用我提供的密碼? 非常感謝您模擬數字簽名的智能卡

(該解決方案必須在Windows 7上運行)

+1

也許http://frankmorgner.github.io/vsmartcard/virtualsmartcard/README.html? –

+0

你會在哪個基礎上發明另一方試圖驗證的身份? – guidot

+0

智能卡將通過Windows證書密鑰庫使用?你使用哪種編程語言?網絡/地方? – pedrofb

回答

0

智能卡通常實現由製造商PKCS#11驅動程序提供商,該驅動程序安裝在操作系統上或預裝。該驅動程序允許您直接使用該卡或集成在Windows Keystore中

您需要閱讀智能卡技術規格以瞭解哪些操作模式可用。

如果你打算使用一個PKCS#11 PKCS#11兼容的智能卡,我已經找到了軟件模擬器像SoftHSM(我從來沒有測試)

SoftHSM是加密儲存的實現通過PKCS#11接口訪問 。您可以使用它來探索沒有硬件安全模塊的PKCS#11 。

該smartcart也可以通過Windows證書存儲集成。在這個caso中使用硬件或軟件證書是隱藏的。一個常見的解決方法是使用任何軟件證書,以模擬標識或數字簽名(我經常這樣做),而你得到讀者

Windows證書存儲區可以使用java.security.KeyStore中

KeyStore ks = KeyStore.getInstance("Windows-MY"); 
    // Note: When a security manager is installed, 
    // the following call requires SecurityPermission 
    // "authProvider.SunMSCAPI". 
ks.load(null, null); 
訪問

在此之後,密鑰庫以通常的方式使用