Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline pz6tnk  
#1 Оставлено : 30 ноября 2020 г. 16:30:44(UTC)
pz6tnk

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.11.2020(UTC)
Сообщений: 6

Прошу подсказать в правильности алгоритма проверки подписи ГОСТ Р 34.10-2012 тк получаю ошибку Invalid Signature. (0x80090006)

Есть хэш (Base64Url(Header) || ‘.’ || Base64Url(Payload))
Цитата:
$header = 'eyJraWQiOiI2ZjdiNGJhOC02OGM5LTQzYzgtYTA2Yi05MjdhODhmNjBmZjgiLCJ0eXAiOiJKT1NFIiwiYWxnIjoiZ29zdDM0LjEwLTIwMTIifQ';
$body = 'eyJudW1iZXIiOiI3IiwiZGF0ZSI6IjIwMjAtMDktMTAiLCJkaWdlc3RTaWduYXR1cmVzIjpbXSwiYmFua1N0YXR1cyI6IkFDQ0VQVEVEIiwiYmFua0NvbW1lbnQiOm51bGwsImV4dGVybmFsSWQiOiJmYWU0NjA4Zi1lMTdkLTRmOTQtYTAxOC04YmU2MTJlZmRmNDAiLCJhbW91bnQiOiIxMDAwMC4wMCIsIm9wZXJhdGlvbkNvZGUiOiIwMSIsImRlbGl2ZXJ5S2luZCI6ItGN0LvQtdC60YLRgNC-0L3QvdC-IiwicHJpb3JpdHkiOiI1IiwidXJnZW5jeUNvZGUiOiJOT1JNQUwiLCJ2b0NvZGUiOm51bGwsInB1cnBvc2UiOiJUcmFuc0lkX1NiZXIgW2ZhZTQ2MDhmLWUxN2QtNGY5NC1hMDE4LThiZTYxMmVmZGY0MF0g0J7Qv9C70LDRgtCwINC_0L4g0LTQvtCz0L7QstC-0YDRgyDQvtGCIDIwMjAtMDctMjAg4oSW0K_QoDAxNDA1ODMyMSIsImRlcGFydG1lbnRhbEluZm8iOm51bGwsInBheWVyTmFtZSI6ItCe0J7QniBcItCi0J4t0J_QsNGA0YLQvdC10YAtNDI2LTAxXCIiLCJwYXllcklubiI6IjUwMTUxMDAxMTAiLCJwYXllcktwcCI6bnVsbCwicGF5ZXJBY2NvdW50IjoiNDA3MDI4MTA3NDA2MTI0NDExOTQiLCJwYXllckJhbmtCaWMiOiIwNDQ1MjUyMjUiLCJwYXllckJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNDAwMDAwMDAwMjI1IiwicGF5ZWVOYW1lIjoi0J7QntCeIFwi0J_QkNCg0KLQndCV0KAtNDI2XCIiLCJwYXllZUlubiI6IjUwNDg1NDk1MDMiLCJwYXllZUtwcCI6bnVsbCwicGF5ZWVBY2NvdW50IjoiNDA3MDI4MTA4NDA5Njc3NDA0MTEiLCJwYXllZUJhbmtCaWMiOiIwNDQ1MjUyMjUiLCJwYXllZUJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNDAwMDAwMDAwMjI1IiwiY3J1Y2lhbEZpZWxkc0hhc2giOm51bGwsInZhdCI6eyJ0eXBlIjoiSU5DTFVERUQiLCJyYXRlIjoiMjAiLCJhbW91bnQiOiIxNjY2LjY3In0sImluY29tZVR5cGVDb2RlIjpudWxsfQ';
$hash = $header . '.' . $body;


Подпись:
Цитата:
$sgn = 'Lsiy6NhMOFCduPk_3n2PdnYxJe1m3nHQfd3H1nwQvQZdbgOKR0d9kkyfkFeTSoZDUGl9Mqcx5G-Djk7oDZzGAw';
$sgn = base64url_decode($sgn)


И сертификат (ключ):
Цитата:
$cert = '-----BEGIN CERTIFICATE-----
MIIEcTCCBB6gAwIBAgIKd6K4zdda7gm/ATAKBggqhQMHAQEDAjCCAWsxGzAZBgNV
BAgMEjc3INCzLtCc0L7RgdC60LLQsDEYMBYGA1UEBwwP0LMu0JzQvtGB0LrQstCw
MRowGAYIKoUDA4EDAQESDDAwNzcwNzA4Mzg5MzEmMCQGA1UECQwd0YPQuy4g0JLQ
sNCy0LjQu9C+0LLQsCwg0LQuMTkxGDAWBgUqhQNkARINMTAyNzcwMDEzMjE5NTEL
MAkGA1UEBhMCUlUxKzApBgNVBAoMItCf0JDQniDQodCx0LXRgNCx0LDQvdC6ICjQ
otCV0KHQoikxQzBBBgNVBAsMOtCU0LXQv9Cw0YDRgtCw0LzQtdC90YIg0LHQtdC3
0L7Qv9Cw0YHQvdC+0YHRgtC4ICjQotCV0KHQoikxMjAwBgNVBAMMKdCf0JDQniDQ
odCx0LXRgNCx0LDQvdC6INCj0KYgKNCi0JXQodCiIFEpMSEwHwYJKoZIhvcNAQkB
FhJjYXNicmZAc2JlcmJhbmsucnUwHhcNMTkxMTA1MTQxMTAwWhcNMjEwMjA1MTQx
MjU1WjCCATQxHzAdBgNVBAoMFtCh0LHQtdGA0KLQtdGF0KLQtdGB0YIxCzAJBgNV
BAYTAlJVMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB0LrQstCwMRgwFgYDVQQHDA/Q
sy7QnNC+0YHQutCy0LAxJjAkBgNVBAkMHdGD0LsuINCS0LDQstC40LvQvtCy0LAs
INC0LjE5MRowGAYIKoUDA4EDAQESDDAwNzcwNzA4Mzg5MzEYMBYGBSqFA2QBEg0x
MDI3NzAwMTMyMTk1MSEwHwYDVQQDDBjQkNCR0KEg0LHQtdC3INC40LzQtdC90Lgx
SzBJBgNVBAsMQtCi0LXRgdGC0L7QstC+0LUg0L/QvtC00YDQsNC30LTQtdC70LXQ
vdC40LUg0KHQsdC10YDQotC10YXQotC10YHRgjBmMB8GCCqFAwcBAQEBMBMGByqF
AwICIwIGCCqFAwcBAQICA0MABEDX37dM9i+lFT5ICLvZmX2aDyBfF3DcKLAxTvaC
qcIeC+0fwRP50F80a4XgvULeLPSte7x1yxTJCGDnITY2HVt7o4HPMIHMMDAGByqF
AwN7AwEEJQwjU0JUSjRCN1Jh0KLQtdGB0YJf0KHQkdCR0J7Qm18yMDEy0J0wCQYD
VR0TBAIwADAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOIHMvk6MmgJzlyIklyV
brm0HitQMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly93d3dsLnNiZXJiYW5rLnJ1
L2NhL3Rlc3RfMjAxMng1MDkuY3JsMB8GA1UdIwQYMBaAFER+sfJUNI8vPMx8c81k
E7FatnguMAoGCCqFAwcBAQMCA0EACFnB37fU7PZCnnT6aboDkwjFmcTy7lT3l86l
b+75JEEUyufQeFX7xpwzOgdbKh6bd+wDoihoa6PPJatIwSncLg==
-----END CERTIFICATE-----';


Код проверки:
Цитата:
$cp = new \CPCertificate();
$cp->Import($cert);

$hd = new \CPHashedData();
$hd->set_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256);
$hd->Hash(bin2hex($hash));

$rs = new \CPRawSignature();
$rs->VerifyHash($hd, bin2hex($sgn), $cp);


Нужно ли переводить подпись и хэш в bin2hex?
Нужно ли выполнять base64_decode?

Отредактировано пользователем 30 ноября 2020 г. 17:09:25(UTC)  | Причина: Не указана

Offline Андрей *  
#2 Оставлено : 30 ноября 2020 г. 16:45:04(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
https://www.cryptopro.ru...&m=119924#post119924

Обратите внимание на:
Цитата:
$hd->SetHashValue($digest);
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 30 ноября 2020 г. 16:48:33(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: pz6tnk Перейти к цитате


Нужно ли переводить подпись и хэш в bin2hex?
Нужно ли выполнять base64_encode?


https://docs.cryptopro.r.../irawsignatureverifyhash
Техническую поддержку оказываем тут
Наша база знаний
Offline pz6tnk  
#4 Оставлено : 30 ноября 2020 г. 17:00:53(UTC)
pz6tnk

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.11.2020(UTC)
Сообщений: 6

Автор: Андрей * Перейти к цитате
https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=119924#post119924

Обратите внимание на:
Цитата:
$hd->SetHashValue($digest);



Я так понимаю, что разница $hd->SetHashValue($digest) и $hd->Hash($hash) как раз в $digest - подготовлен хэш или нет. Как получить $digest средствами КриптоПро?
Offline pz6tnk  
#5 Оставлено : 30 ноября 2020 г. 17:06:41(UTC)
pz6tnk

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.11.2020(UTC)
Сообщений: 6

Автор: Андрей * Перейти к цитате
Автор: pz6tnk Перейти к цитате


Нужно ли переводить подпись и хэш в bin2hex?
Нужно ли выполнять base64_encode?


https://docs.cryptopro.r.../irawsignatureverifyhash


Разделение hex значения на 2 байта выполнил согласно докам, не помогло, та же ошибка.

Может нудно выполнять проверку через класс CPSignedData?

Отредактировано пользователем 30 ноября 2020 г. 17:08:43(UTC)  | Причина: Не указана

Offline Андрей *  
#6 Оставлено : 30 ноября 2020 г. 17:13:49(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Подпись корректная и сертификат тот?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 30 ноября 2020 г. 17:24:53(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
...

Отредактировано пользователем 30 ноября 2020 г. 17:25:27(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline pz6tnk  
#8 Оставлено : 30 ноября 2020 г. 17:29:00(UTC)
pz6tnk

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.11.2020(UTC)
Сообщений: 6

Автор: Андрей * Перейти к цитате
...


именно две строки с разделителем JWS заголовок.тело

цитата
Цитата:
Подпись вычисляется по алгоритму указанному в Заголовке (Header) в параметре alg, в данном случае gost34.10-2012, и вычисляется от исходных данных: Base64Url(Header) || ‘.’ || Base64Url(Payload).
Offline Андрей *  
#9 Оставлено : 30 ноября 2020 г. 17:39:43(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах

Snimok ehkrana ot 2020-11-30 18-37-03.png (25kb) загружен 10 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#10 Оставлено : 30 ноября 2020 г. 17:43:37(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
подпись:
E2 8C 2B 8E 8D C4 83 05 D9 8B 9F F3 ED D7 F8 67
67 13 52 DE 66 ED 17 0D D7 DD 7C 6D C7 01 DB 60
D5 E6 30 A8 74 74 D7 29 C4 F9 09 75 39 A4 68 34
05 96 D7 23 7A 13 4E F6 38 E8 E4 8E D0 C9 6C 30

перевернул:
03 C6 9C 0D E8 4E 8E 83 6F E4 31 A7 32 7D 69 50
43 86 4A 93 57 90 9F 4C 92 7D 47 47 8A 03 6E 5D
06 BD 10 7C D6 C7 DD 7D D0 71 DE 66 ED 25 31 76
76 8F 7D DE 3F F9 B8 9D 50 38 4C D8 E8 B2 C8 2E

проверяется.

testX.zip (2kb) загружен 2 раз(а).

Snimok ehkrana ot 2020-11-30 18-42-35.png (25kb) загружен 16 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.