我需要使我的應用程序的用戶可以用他們的個人USB安全令牌來簽署他們的批准。如何從安全令牌獲取信息與C#
我已經設法簽署數據,但我還沒有能夠獲得已使用過的誰的令牌信息。
這裏是我到目前爲止的代碼:
CspParameters csp = new CspParameters(1, "SafeNet RSA CSP");
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
// Create some data to sign.
byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
Console.WriteLine("Data : " + BitConverter.ToString(data));
// Sign the data using the Smart Card CryptoGraphic Provider.
byte[] sig = rsa.SignData(data, "SHA1");
Console.WriteLine("Signature : " + BitConverter.ToString(sig));
有一個名爲「令牌名稱」令牌信息的字段。我如何訪問該字段以驗證該令牌是否已用於簽署批准?
aditional的信息和更新:
- 「令牌名」總是符合主人的姓名(誰擁有USB 令牌用戶)
- 現在看來似乎不能做,也許有一個網絡服務或 我需要調用才能從cert authority直接獲取 的信息。
這也許是更多的安全問題.stachexchange.com? – MiMo 2013-02-28 14:37:06
看起來您需要提取[Modulus](http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rsaparameters.modulus.aspx)作爲證書指紋,然後與所有可用證書的指紋數據庫。可能類似['byte [] modulus = rsa.ExportParameters(false).Modulus;'](http://attercop.googlecode.com/svn-history/r8/trunk/AttercopClient/SettingsWindow.cs) – oleksii 2013-02-28 14:55:37
@oleksii I沒有模數據庫。我需要獲取「令牌名稱」並將其與當前AD用戶名進行比較。謝謝你的評論。 – daniloquio 2013-02-28 15:02:42