2012-05-03 11 views
2

Я надеялся, что кто-то может мне помочь с PIV smart card standard.PIV Smart Card - ОБЩИЙ АВТЕНЦИАЛ - Подпишите unce

Я хотел был бы аутентифицировать смарт-карту, сделав ее подписывающейся PKCS # 1 дополнением с ранее созданным RSA 1024-битным модулем Digital Signature Key 0x9C. Вот что выход моего тестового приложения выглядит следующим образом:

Requesting Signature 
Sending: 0087069C867C84820081800001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00CB441C4A656E071F1FB9F31BC6AB1824324FB42780 
Error: (6A80) Incorrect parameters in command data 

А вот разбивка:

00 - Not chained (chaining not required because message does not exceed max length) 
87 - GENERAL AUTHENTICATE 
06 - RSA 1024 Algorithm 
9C - Digital Signature Key 
86 - Length of data field 
    7C - Dynamic Authentication template identifier 
    84 - Length of dynamic authentication template 
    82 - Response 
    00 - Response length 0 (Response requested) 
    81 - Challenge 
    80 - Challenge length 128 
     0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00CB441C4A656E071F1FB9F31BC6AB1824324FB427 - PKCS #1 padded 20-byte Nonce (Padded with OpenSSL RSA_padding_add_PKCS1_type_1) 
80 - Expected response length (128 bytes) 

Я также запускать тесты с использованием всех различных ключей (сформировав все они успешно уже) и использование цепочечных сообщений по сравнению с отдельными сообщениями. Дальше test data.

+0

Вы делаете выполнить PCKS # 1 отступы вокруг Нонса, но вы уверены, что внутренняя структура хэша не необходимо просто выполнить H (NONCE) и использовать структуры, определенные в стандарте PKCS # 1, вы можете просто сравнить H (NONCE) с H '(NONCE) вместо NONCE с NONCE' после дешифрования для проверки подлинности. –

+0

Hello , кто-нибудь там? –

+0

Я не совсем понимаю. Вы говорите, что я должен применять кодировку DER «DigestInfo» вокруг моего Nonce/Hash перед заполнением? Если это так, это тоже не работает. Вы говорите, что я должен использовать hash my nonce перед тем, как заполнить его? Так как мой nonce и хэш sha1 являются как 20 psuedo-random byt Это не имеет никакого значения. – GHW

ответ

2

Была ошибка с апплетом PIV-карты, загруженным на мою смарт-карту. Он не будет подписывать данные, начинающиеся с 0x00. Если вы измените 0x00 на что-либо еще (пока данные как целое число меньше модуля в качестве целого числа по требованию алгоритма RSA), он будет успешно подписываться. Поэтому, конечно, это означает, что эти карты не могут подписывать какой-либо стандартный PKCS1 проложенного данные :(

Спасибо за помощь

+0

Теперь вы сможете принять свой ответ. Жаль, что это была такая ошибка. –