Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,625 Сказал «Спасибо»: 492 раз Поблагодарили: 2034 раз в 1578 постах
|
Прикладываю тестовый файл и ЭП к нему. Значение хеша: Цитата:1807 79: SEQUENCE { 1809 9: OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4) 1820 66: SET { 1822 64: OCTET STRING : 20 91 AC F5 8B 53 68 3A F2 95 8F EC 82 AA E9 7C : A1 50 E2 12 11 33 FC 15 3D 97 07 FE 86 D3 89 8A : D4 1F C4 58 54 C8 0B C0 83 A5 DF DD 84 3D 9A EF : DC 5E DA 68 70 6C C1 5E 73 E3 1B 88 B5 80 9D 34 : } : }
Для проверки: https://www.gosuslugi.ru/pgu/eds/Выбрать: Подтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7 по значению хэш-функции
Цитата: Указать файл: 0000.sig Указать хеш: 2091ACF58B53683AF2958FEC82AAE97CA150E2121133FC153D9707FE86D3898AD41FC45854C80BC083A5DFDD843D9AEFDC5EDA68706CC15E73E31B88B5809D34
ЭП: Верна.
Выбрать: Подтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7Цитата: документ для проверки: 0000 файл подписи для проверки: 0000.sig
ЭП: Верна.
0000.zip (2kb) загружен 8 раз(а). |
|
2 пользователей поблагодарили Андрей * за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 14.01.2018(UTC) Сообщений: 24 Откуда: SPB Сказал(а) «Спасибо»: 18 раз
|
Автор: Андрей Писарев Автор: ivar.mikhailovich Я так понимаю что алгоритм сертификата и алгоритм генерации хеша на сервере - должны совпадать? Верно. Пример файла с подписью: Пример, хеш: szOID_CP_GOST_R3411_12_512="1.2.643.7.1.1.2.3" // Функция хэширования ГОСТ Р 34.11-2012, длина выхода 512 бит Значение хеша: Цитата: 1663 12: SEQUENCE { 1665 8: Алгоритм: OBJECT IDENTIFIER '1 2 643 7 1 1 2 3' 1675 0: NULL : } 1677 561: [0] { 1681 24: SEQUENCE { 1683 9: OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3) 1694 11: SET { 1696 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1) : } : } 1707 28: SEQUENCE { 1709 8: OBJECT IDENTIFIER '1 2 643 2 45 1 1 2' 1719 16: SET { 1721 14: BMPString '** . h a s h ' : } : } 1737 28: SEQUENCE { 1739 9: OBJECT IDENTIFIER signingTime (1 2 840 113549 1 9 5) 1750 15: SET { 1752 13: UTCTime 12/10/2018 16:58:00 GMT : } : } 1767 44: SEQUENCE { 1769 8: OBJECT IDENTIFIER '1 2 643 3 182 1 3' 1779 32: SET { 1781 30: BMPString '****************** ' : } : } 1813 79: SEQUENCE { 1815 9: OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4) 1826 66: SET { 1828 64: OCTET STRING значение хеша: : 0C 3D 3B 6A B7 0A 78 52 AD EB B5 A3 AE EA 76 65 : C7 53 7F 2F E1 C8 4A 94 AC CD 87 7B C4 34 38 99 : BE F3 29 8F D8 68 E8 50 C8 98 D4 69 B3 E6 7F 91 : 6F E6 94 86 75 58 AB 18 88 C7 91 23 78 AD D2 17 : }
Можно ли определить алгоритм сертификата из сертификата, чтобы на сервере сгенерировать хеш таким же алгоритмом? Т.к. алгоритм сертификата должен совпадать с алгоритмом хеша.
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 393 раз в 366 постах
|
Напрямую это сделать немного проблематично, но можно схардкодить перевод алгоритма открытого ключа в алгоритм хэша. Если точнее в сертификате или контексте сертификата (смотря что Вам удобнее) есть информация об открытом ключе, там 3 идентификатора и собственно сам открытый ключ. первый идентификатор - алгоритм открытого ключа; второй - параметры алгоритма хэширования (казалось бы "вот оно!" по параметрам однозначно определяется алгоритм хэширования, но не так все просто); третий - параметры алгоритма подписи. К сожалению, параметры алгоритма хэширования нельзя использовать для однозначного определения алгоритма потому что в гост-2012 алгоритм хэша не имеет параметров и в это поле для гост-2012 256 бит заполняется всякая ерунда, чаще всего идентификатор параметров гост-2001. Поэтому приходится отправной точкой выбирать алгоритм открытого ключа или алгоритм параметров подписи. В общем случае, это притянуто за уши, так как хэш это одно, а ключ совсем другое, и нужно брать поле параметров алгоритма хэширования. Однако для алгоритмов гост все "верх дном" параметры хеширования заткнуты заглушкой, но есть однозначное соответствие между алгоритмом ключа и алгоритмами хэширования и подписи. Отредактировано пользователем 27 ноября 2018 г. 6:48:40(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 14.01.2018(UTC) Сообщений: 24 Откуда: SPB Сказал(а) «Спасибо»: 18 раз
|
Автор: two_oceans Напрямую это сделать немного проблематично, но можно схардкодить перевод алгоритма открытого ключа в алгоритм хэша. Если точнее в сертификате или контексте сертификата (смотря что Вам удобнее) есть информация об открытом ключе, там 3 идентификатора и собственно сам открытый ключ. первый идентификатор - алгоритм открытого ключа; второй - параметры алгоритма хэширования (казалось бы "вот оно!" по параметрам однозначно определяется алгоритм хэширования, но не так все просто); третий - параметры алгоритма подписи.
К сожалению, параметры алгоритма хэширования нельзя использовать для однозначного определения алгоритма потому что в гост-2012 алгоритм хэша не имеет параметров и в это поле для гост-2012 256 бит заполняется всякая ерунда, чаще всего идентификатор параметров гост-2001. Поэтому приходится отправной точкой выбирать алгоритм открытого ключа или алгоритм параметров подписи. В общем случае, это притянуто за уши, так как хэш это одно, а ключ совсем другое, и нужно брать поле параметров алгоритма хэширования. Однако для алгоритмов гост все "верх дном" параметры хеширования заткнуты заглушкой, но есть однозначное соответствие между алгоритмом ключа и алгоритмами хэширования и подписи. Спасибо за информацию!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close