05.05.2006 10:57:40Изменяю значение ЭЦП. Проверка проходит :) Ответов: 3
Виктор
Господа, проясните пожалуйста вопрос :)

Получаю ЭЦП:
csptest.exe -sfsign -in input.txt -out output.txt -my "test" -sign -detached -base64

Значение:
MIIBdgYJKoZIhvcNAQcCoIIBZzCCAWMCAQExDDAKBgYqhQMCAgkFADALBgkqhkiG
9w0BBwExggFBMIIBPQIBATBzMGUxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRv
cHJvLnJ1MQswCQYDVQQGEwJSVTETMBEGA1UEChMKQ1JZUFRPLVBSTzEfMB0GA1UE
AxMWVGVzdCBDZW50ZXIgQ1JZUFRPLVBSTwIKe53eSQABAAAJUzAKBgYqhQMCAgkF
AKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA2
MDUwNTA2NDgzMVowLwYJKoZIhvcNAQkEMSIEIElEoNX3KdOpjUaUTwd99yYLOExg
VGvEQgLG99HUvkR0MAoGBiqFAwICEwUABEBcnqoGFlTc7JmWCUDmiPMQXzWOs33U
1CIdYQga3kUWg96pxg2LB1rw1Dy3grbY9Vo68FYCAd6wqnVE14v1KDzT

Запускаю проверку:
csptest.exe -sfsign -in input.txt -my "test" -detached -verify -signature output.txt -base64

Проверка проходит.

А теперь изменяю в значение ЭЦП: 9 на 0 (вторая строка первая цифра).

Опять все в порядке:
Detached Signature was verified OK
Total: SYS: 0.031 sec USR: 0.094 sec UTC: 0.124 sec

Продолжаю опыты:
В четвертой строке изменяю A на B:
MIIBdgYJKoZIhvcNAQcCoIIBZzCCAWMCAQExDDAKBgYqhQMCAgkFADALBgkqhkiG
0w0BBwExggFBMIIBPQIBATBzMGUxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRv
cHJvLnJ1MQswCQYDVQQGEwJSVTETMBEGA1UEChMKQ1JZUFRPLVBSTzEfMB0GA1UE
BxMWVGVzdCBDZW50ZXIgQ1JZUFRPLVBSTwIKe53eSQABAAAJUzAKBgYqhQMCAgkF
AKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA2
MDUwNTA2NDgzMVowLwYJKoZIhvcNAQkEMSIEIElEoNX3KdOpjUaUTwd99yYLOExg
VGvEQgLG99HUvkR0MAoGBiqFAwICEwUABEBcnqoGFlTc7JmWCUDmiPMQXzWOs33U
1CIdYQga3kUWg96pxg2LB1rw1Dy3grbY9Vo68FYCAd6wqnVE14v1KDzT

Проверка проходит.

Изменяю последний символ c T на U - ну наконец-то ошибка :)

Т.е. я, видимо, изменял символы, которые не влияют на результат проверки. А как тогда понять, что значимо, а что нет?

С уважением, Виктор
 
Ответы:
05.05.2006 11:38:35Kirill Sobolev
Смотря что Вы понимаете под проверкой.
Если то, что делает csptest (только криптографическую проверку), то значимы только символы подписи.
Если еще проверять сертификат подписчика (действительность, целостность и т.д.), то значима также информация о сертификате. Кстати, если ее изменить то при поиске сертификата подписчика в локальном хранилище и отсутствии его в сообщении он не будет найден.
Подробнее со структурой PKCS7 может помочь ознакомиться dumpasn1, правда он base64 не понимает.
06.05.2006 8:53:13Виктор
Спасибо!

Если не сложно, не могли бы вы подсказать где не очень сложно написано про структуру PKCS7 ?

С уважением,
Виктор
06.05.2006 9:13:06Kirill Sobolev
Пожалуйста
Первоисточники -
http://www.rsasecurity.com/rsalabs/node.asp?id=2129
http://www.ietf.org/rfc/rfc2630.txt