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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Денис Зубарев  
#1 Оставлено : 15 июля 2021 г. 9:56:10(UTC)
Денис Зубарев

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

Группы: Участники
Зарегистрирован: 15.07.2021(UTC)
Сообщений: 6
Российская Федерация
Откуда: Санкт-Петербург


Добрый день!

Пытаюсь из 1С сделать подпись со штампом и столкнулся с проблемой - расходятся ХЕШ подписи и штампа времени.
Пописать пытаюсь так:

МенеджерКриптографии = Новый МенеджерКриптографии("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", "", 80);
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "ХХХХХХХ";
МенеджерКриптографии.Подписать(ДвоичныеДанныеЖДН, ИмяФайлаПодписи, Сертификат);

ДвоичныеДанныеПодписи = Новый ДвоичныеДанные(ИмяФайлаПодписи);
Base64Подпись = Base64Строка(ДвоичныеДанныеПодписи);

//шаг 4 тайм штамп
ИмяФайлаШтампа = ПолучитьИмяВременногоФайла("tsr");

oOID = Новый COMОбъект("CAPICOM.OID");
oOID.Value = "1.2.643.2.2.9";
oRequest = Новый COMОбъект("TSPCOM.TSPRequest");
oRequest.HashAlgorithm2 = oOID;

oRequest.UseNonce = Истина;
oRequest.PolicyID = "";
oRequest.CertReq = Истина;

UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
oRequest.AddData(UTF8Encoding.GetBytes_4(Base64Подпись));
oRequest.TSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf";
оStamp = oRequest.Send();

COMSafeArray = оStamp.Export2();

оStream = Новый COMОбъект("ADODB.Stream");
оStream.Mode = 3;
оStream.Type = 1;
оStream.Open();
оStream.Write(COMSafeArray);
оStream.SaveToFile(ИмяФайлаШтампа, 2);
оStream.Close();

ДвоичныеДанныеШтампа = Новый ДвоичныеДанные(ИмяФайлаШтампа);
Base64Штамп = Base64Строка(ДвоичныеДанныеШтампа);

По идее проблема в HashAlgorithm2 но я не могу поменять алгоритм на любые другие варианты валится с ошибкой.




Offline Андрей *  
#2 Оставлено : 15 июля 2021 г. 10:34:58(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
Здравствуйте.

Почему используется oOID.Value = "1.2.643.2.2.9"; ?

Сертификат же с ГОСТ-2012?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 15 июля 2021 г. 10:41:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
Почему используется
oRequest.TSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf";
?


Это пример старого кода с ГОСТ-2001?
Техническую поддержку оказываем тут
Наша база знаний
Offline Денис Зубарев  
#4 Оставлено : 15 июля 2021 г. 11:18:04(UTC)
Денис Зубарев

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

Группы: Участники
Зарегистрирован: 15.07.2021(UTC)
Сообщений: 6
Российская Федерация
Откуда: Санкт-Петербург

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

Почему используется oOID.Value = "1.2.643.2.2.9"; ?

Сертификат же с ГОСТ-2012?


Ни с каким другим значением не дает использовать, по идее надо использовать "1.2.643.7.1.1.2.2".
Offline Денис Зубарев  
#5 Оставлено : 15 июля 2021 г. 11:18:43(UTC)
Денис Зубарев

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

Группы: Участники
Зарегистрирован: 15.07.2021(UTC)
Сообщений: 6
Российская Федерация
Откуда: Санкт-Петербург

Автор: Андрей * Перейти к цитате
Почему используется
oRequest.TSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf";
?


Это пример старого кода с ГОСТ-2001?


Это единственный адрес который нам дал поставщик ключа.
Offline Андрей *  
#6 Оставлено : 15 июля 2021 г. 11:56:48(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
Автор: Денис Зубарев Перейти к цитате
Автор: Андрей * Перейти к цитате
Здравствуйте.

Почему используется oOID.Value = "1.2.643.2.2.9"; ?

Сертификат же с ГОСТ-2012?


Ни с каким другим значением не дает использовать, по идее надо использовать "1.2.643.7.1.1.2.2".



Используйте сертификат с ГОСТ-2012 и TSP с 2012.

Примеры:
http://qs.cryptopro.ru/tsp/tsp.srf
http://ocsp.ntssoft.ru/tsp/tsp.srf
http://tax4.tensor.ru/tsp/tsp.srf
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 15 июля 2021 г. 12:40:13(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
Цитата:
oRequest.AddData(UTF8Encoding.GetBytes_4(Base64Подпись));


Цитата:
Метод AddData() добавляет данные для вычисления хэш-значения.
Sub AddData(Data() As Byte)
Аргументы:
Data [in] Добавляемые данные.


Почему не ДвоичныеДанныеПодписи?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#8 Оставлено : 15 июля 2021 г. 12:44:32(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
или ДвоичныеДанныеЖДН?

Что требуется в итоге? Штамп на подпись? На данные?
Пришлите в ЛС ссылку на архив, в котором "как сейчас получается" (файл произвольный и к нему подпись) и что там не сходится, для анализа.
Техническую поддержку оказываем тут
Наша база знаний
Offline Денис Зубарев  
#9 Оставлено : 15 июля 2021 г. 15:35:07(UTC)
Денис Зубарев

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

Группы: Участники
Зарегистрирован: 15.07.2021(UTC)
Сообщений: 6
Российская Федерация
Откуда: Санкт-Петербург

поменял адрес на http://qs.cryptopro.ru/tsp/tsp.srf

oOID = Новый COMОбъект("CAPICOM.OID");
oOID.Value = "1.2.643.7.1.1.2.2";
oRequest.HashAlgorithm2 = oOID;

пытаюсь использовать правильный алгоритм и вываливается с ошибкой. Подозреваю проблема в старой версии dll. Вопрос какую версию стоит использовать?
Offline Андрей *  
#10 Оставлено : 15 июля 2021 г. 15:43:33(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2043 раз в 1584 постах
Ошибка какая?
Какая уставлена dll?

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