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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Анатолий Колкочев  
#21 Оставлено : 29 декабря 2020 г. 22:25:29(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: Санчир Момолдаев Перейти к цитате
в кадес хэшируются аттрибуты. этот хэш подписывается.
в pkcs7 без подписанных аттрибутов http://cpdn.cryptopro.ru...p40/html/cadesattrs.html
подписывается хэш от данных


Вот что получилось на данный момент (а что-то получилось!!)) )
Подписал следующим образом:
Код:
[CryptoPro.Sharpei.Gost3411_2012_256CryptoServiceProvider]$gost3411 = [CryptoPro.Sharpei.Gost3411_2012_256CryptoServiceProvider]::new()
[byte[]]$hashValue = $gost3411.ComputeHash($DataFileRawBytes)
$gost3411.Clear()

$signingCert = (gi Cert:\CurrentUser\My\E3005A57425DFFB920DB2953050D83E89F08008D)
[CryptoPro.Sharpei.Gost2012_256SignatureFormatter]$gost = [CryptoPro.Sharpei.Gost2012_256SignatureFormatter]::new()
$gost.SetKey($signingCert.PrivateKey)
$signature = $gost.CreateSignature($hashValue)


Далее попробовал проверить через csptest, не получилось, НО!!! я сделал array.reverse() для $signature и csptest проверил подпись!!!

Т.е. таким образом заработало!

PS. Это фактически равносильно csptest -keys -sign

Отредактировано пользователем 29 декабря 2020 г. 22:36:24(UTC)  | Причина: Не указана

Offline Анатолий Колкочев  
#22 Оставлено : 29 декабря 2020 г. 22:29:06(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Но непонятно на самом деле, что было подписано в файле Example1.docx.sign ...
Offline Санчир Момолдаев  
#23 Оставлено : 29 декабря 2020 г. 22:42:05(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
Автор: Анатолий Колкочев Перейти к цитате
Но непонятно на самом деле, что было подписано в файле Example1.docx.sign ...


еще раз подписаны аттрибуты
берете этот файл. заходите на https://lapo.it загружаете
вот то что под [0] то и подписано
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#24 Оставлено : 29 декабря 2020 г. 22:44:07(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
При проверке подписи из cms с подписанными атрибутами, нужно проверять подпись под структурой с атрибутами, а не под байтами(хеш контента)
Техническую поддержку оказываем тут
Наша база знаний
Offline Анатолий Колкочев  
#25 Оставлено : 29 декабря 2020 г. 22:44:45(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
3.png (69kb) загружен 6 раз(а).

Там есть несколько нулей... Какой именно следует выбрать? Самый нижний?
Я просто никак понять не могу(

Отредактировано пользователем 29 декабря 2020 г. 22:47:23(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#26 Оставлено : 29 декабря 2020 г. 22:57:26(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
самый нижний. где messageDigest
Техническую поддержку оказываем тут
Наша база знаний
Offline Анатолий Колкочев  
#27 Оставлено : 29 декабря 2020 г. 22:58:58(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Понял. Сначала идет описание атрибутов, а потом то, что подписываем.

PS. Подписывается эта часть, верно? 4.png (304kb) загружен 7 раз(а).

Отредактировано пользователем 29 декабря 2020 г. 23:00:37(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#28 Оставлено : 29 декабря 2020 г. 23:02:54(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
да. в с# это можно вытащить непосредственно из кода чтобы не изобретать велосипед
https://docs.microsoft.c...view=dotnet-plat-ext-5.0
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#29 Оставлено : 29 декабря 2020 г. 23:14:55(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
вот тут в rfc написано что обязательно должно быть что опционально
Техническую поддержку оказываем тут
Наша база знаний
Offline Анатолий Колкочев  
#30 Оставлено : 30 декабря 2020 г. 10:43:49(UTC)
TolikTipaTut1

Статус: Активный участник

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

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: Санчир Момолдаев Перейти к цитате
да. в с# это можно вытащить непосредственно из кода чтобы не изобретать велосипед
https://docs.microsoft.c...view=dotnet-plat-ext-5.0


Попробовал вытащить таким образом - не получилось( Он выдает только значения подписанных атрибутов, однако не возвращает полностью подписанный блок...
Подписывается блок полностью, а не только значения, как я понял...
Попробовал еще сделать так:
Код:
$encodedAttr = $signers[0].GetEncodedSignedAttributes() #Получил весь подписанный блок (используется библиотека bouncycastle)
$hash = [CryptoPro.Sharpei.Gost3411_2012_256]::Create().ComputeHash($encodedAttr) #Считаю хеш-код для него
$signingCert = gi Cert:\CurrentUser\My\E3005A57425DFFB920DB2953050D83E89F08008D
$signingCert.PrivateKey.VerifyHash($hash, $signers[0].GetSignature()) #Проверяю
#$signingCert.PrivateKey.VerifySignature($hash, $signers[0].GetSignature())


Но постоянно получаю в ответ $false
В целом я разобрался, что реально подписывается в CADeS. Спасибо большое! Хотелось бы еще самостоятельно проверить, но пока не получается (

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

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.