2011-11-17 22 views
1

我目前正在編寫一個.NET API,用於使用PC/SC與智能卡設備進行交互。我大部分的API都可以工作,但是我真的被掛在了卡所能支持的通用身份驗證命令上。我正在嘗試遵循sp800-73-3_Part_2附錄A.2(第25頁)中介紹的過程。PIV卡應用程序驗證(PKCS#1 v.1.5簽名填充方案)

我遇到的問題是我不明白PKCS#1 v1.5簽名填充的含義是什麼,或者推薦的方法會用於生成符合格式指南的挑戰。任何關於生成這種類型的數據的指導都會受到讚賞(使用現有的.NET API會很棒)。

此外,這種格式甚至需要挑戰嗎?我試過只是發送幾個隨機生成的字節,但我收到了一個0x6A80(不正確的參考數據)的SW1/SW2,所以我確實意識到對數據有一些結構性要求。

+0

根據ISO 7816-4,6A80是「數據字段中的錯誤參數」,這是一個更通用的錯誤,可能與參考文獻無關。 –

+0

親愛的克里斯,我想爲我的智能卡寫一個PIV小程序。我是否應該在卡上執行完整的簽名過程,或者我可以實現離卡計算和加密卡上的哈希計算?我的意思是說有什麼規範要提到整個過程必須在卡上實現才能使其成爲PIV兼容卡? – Abraham

回答

0

PKCS#1版本1.5可用作RFC 2313。該文件對MD2或MD5的限制顯然已經過時。格式從8.1節開始描述。塊類型(BT)是01,因此填充字符串(PS)是一個常量0xff字節的序列。 .NET類S ystem.Security.Cryptography.RSAPKCS1SignatureFormatter可用於生成此類簽名。至於PIV卡標準的其餘部分,你是自己的。

+0

rfc3447確實指定了「數學上相同的」函數,包括SHA-1和SHA-2哈希函數 - 但以前的RFC或者原來的公開可用的PKCS#11.5和2.1規範可能更易於閱讀。 –

相關問題