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

Уведомление

Icon
Error

7 Страницы«<34567>
Опции
К последнему сообщению К первому непрочитанному
Offline NAlexV  
#41 Оставлено : 30 сентября 2021 г. 14:52:20(UTC)
NAlexV

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: NAlexV Перейти к цитате
Автор: Андрей * Перейти к цитате
Автор: NAlexV Перейти к цитате
Автор: Андрей * Перейти к цитате
всё понятно,
бинарный файл не принимает.


Да, именно так, а нужно подписать бинарник.


Он и будет подписан. Кодируете в base64, указываете перед присваиванием, что закодировано - внутри будет декодировано и подписано бинарное представление.

Понятно, значит я не понял семантику значения CADESCOM_BASE64_TO_BINARY перечисления CADESCOM_CONTENT_ENCODING_TYPE. Получается, что смысл значения - подписать бинарник, закодированный в Base64. :)
Спасибо.


Андрей, добрый день.
Сетевики настроили сетевой доступ к серверу "http://qs.cryptopro.ru/tsp/tsp.srf", но теперь возвращается ошибка: "(CAdESCOM.CadesSignedData.1): The revocation process could not continue - the certificate(s) could not be checked." - процесс подписи не может быть продолжен, не удалось проверить сертификат. Использую сертификат с отпечатком "61 b5 87 a7 e3 94 02 e8 57 6d 66 f6 5e 72 08 fe dc 3c c0 e2".
Что не так с сертификатом?
Online Андрей *  
#42 Оставлено : 30 сентября 2021 г. 14:59:43(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Должны выполняться требования к CAdES-T.


Настраивали к qs.cryptopro.ru?

Есть еще УЦ КриптоПРО и УЦ корневой (МКС).
К их серверам тоже должен быть доступ (CRL).


также идёт запрос к OCSP:
http://qs.cryptopro.ru/ocspkc3/ocsp.srf

CRL МКС:
http://reestr-pki.ru/cdp/guc_gost12.crl


т.е. нужно, чтобы адреса (crl\ocsp), в используемых сертификатах были доступны.

Техническую поддержку оказываем тут
Наша база знаний
Offline NAlexV  
#43 Оставлено : 1 октября 2021 г. 14:36:47(UTC)
NAlexV

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей * Перейти к цитате
Должны выполняться требования к CAdES-T.


Настраивали к qs.cryptopro.ru?

Есть еще УЦ КриптоПРО и УЦ корневой (МКС).
К их серверам тоже должен быть доступ (CRL).


также идёт запрос к OCSP:
http://qs.cryptopro.ru/ocspkc3/ocsp.srf

CRL МКС:
http://reestr-pki.ru/cdp/guc_gost12.crl


т.е. нужно, чтобы адреса (crl\ocsp), в используемых сертификатах были доступны.


Андрей, добрый день.
Настроили доступ к:
http://qs.cryptopro.ru/tsp/tsp.srf
и к http://reestr-pki.ru/cdp/guc_gost12.crl
Однако, ошибка: "(CAdESCOM.CadesSignedData.1): The revocation process could not continue - the certificate(s) could not be checked." не ушла.
Что еще нужно проверить?
Online Андрей *  
#44 Отправлено: : 1 октября 2021 г. 14:40:54(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
включить и собрать лог через dbgview, приложить в zip
traceall_x64.zip (1kb) загружен 0 раз(а).
Техническую поддержку оказываем тут
Наша база знаний
Offline NAlexV  
#45 Оставлено : 5 октября 2021 г. 11:27:11(UTC)
NAlexV

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей * Перейти к цитате
включить и собрать лог через dbgview, приложить в zip
traceall_x64.zip (1kb) загружен 0 раз(а).

Андрей, добрый день.
Разобрались с проблемой описанной выше. Оказалось, что сетевой доступ настроили но не полностью.
Теперь метод
Код:
ДанныеДляПодписи.SignCades(Крипто, ТипПодписи, ВидПодписиОтдельная, КодировкаПодписи);
возвращает строку подписи (в строке иероглифы), но система назначения, куда мы отправляем файл и подпись этого файла не принимает - выдает ошибку: "невозможно прочитать файл подписи".
Otzyv.txt.sgn (924kb) загружен 1 раз(а).
Собственно вопросы.
  • Надо ли как-то дополнительно преобразовывать сроку подписи, полученную методом SignCades?

  • Является ли файл подписи подписью в формате CADES-T?

Отредактировано пользователем 5 октября 2021 г. 11:28:12(UTC)  | Причина: Не указана

Online Андрей *  
#46 Оставлено : 5 октября 2021 г. 11:37:06(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
1. Можно при подписании указывать, чтобы в ответе было закодировано в base64.
2. Правильно записали ответ, как бинарные данные? Сейчас это не ASN.1.
Техническую поддержку оказываем тут
Наша база знаний
Offline NAlexV  
#47 Оставлено : 6 октября 2021 г. 11:53:04(UTC)
NAlexV

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей * Перейти к цитате
1. Можно при подписании указывать, чтобы в ответе было закодировано в base64.
2. Правильно записали ответ, как бинарные данные? Сейчас это не ASN.1.

Андрей, добрый день.
Получилось подписывать на платформе 1С:Предприятие файлы подписью с криптометкой времени в формате CADES-T.
Если кому интересно, то работающая функция выглядит так:
Код:

Функция ПолучитьПодписьДокументаУКЭП(СтруктураСообщения, ПодписываемыеДвоичныеДанные, ОписаниеОшибки) Экспорт
	                                                               
	Подпись = Неопределено;
	
	СтрокаОтпечатка = Константы.ОтпечатокДействующегоСертификата.Получить();
	Отпечаток = ПолучитьДвоичныеДанныеИзHexСтроки(СтрокаОтпечатка);

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

	Хранилище = Крипто.ПолучитьХранилищеСертификатов(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты,РасположениеХранилищаСертификатовКриптографии.ДанныеПользователяОС);
	НайденныйСертификат = Хранилище.НайтиПоОтпечатку(Отпечаток);
	
	Если НайденныйСертификат = Неопределено Тогда
		ОписаниеОшибки = "Подпись файла УКЭП. По отпечатку не найден сертификат в хранилище";
		Возврат Неопределено;
	КонецЕсли;
	
	Попытка
		
		Если СтруктураСообщения.ПодписьКриптоМенеджером1С Тогда
			
			Подпись = Крипто.Подписать(ПодписываемыеДвоичныеДанные, НайденныйСертификат);
			ДанныеОСертификате = ПолучитьДанныеОСертификате(НайденныйСертификат);
			СтруктураСообщения.Вставить("ДанныеОСертификате", ДанныеОСертификате);
			
		Иначе
		
			Крипто = СоздатьCOMОбъектCAdESCOM("CPSigner"); 
			Крипто.Certificate = ПолучитьСертификатПоОтпечатку(СтрокаОтпечатка);
			Крипто.KeyPin = Константы.ПарольДоступаКЗакрытомуКлючу.Получить();
			Крипто.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf";
			ДанныеДляПодписи = СоздатьCOMОбъектCAdESCOM("CadesSignedData"); 
			ДанныеДляПодписи.ContentEncoding = 1;
			ДанныеДляПодписи.Content = ПолучитьBase64СтрокуИзДвоичныхДанных(ПодписываемыеДвоичныеДанные);
			ТипПодписи = 5;	// CADES-T 
			ВидПодписиОтдельная = Истина;
			КодировкаПодписи = 0;	//  кодировка  Base64
			СтрокаПодписи = ДанныеДляПодписи.SignCades(Крипто, ТипПодписи, ВидПодписиОтдельная, КодировкаПодписи); 
			ДанныеОСертификате = ПолучитьДанныеОСертификате(НайденныйСертификат);
			СтруктураСообщения.Вставить("ДанныеОСертификате", ДанныеОСертификате);
			Если ЗначениеЗаполнено(СтрокаПодписи) Тогда
				Подпись = Base64Значение(СтрокаПодписи);
			КонецЕсли;
			
		КонецЕсли;
		
	Исключение
		
		ОписаниеОшибки = "Подпись файла УКЭП. " + ОписаниеОшибки();
		
	КонецПопытки;
	
	Возврат Подпись;
	
КонецФункции


Появилась еще одна проблема, связанная с подписью файлов с криптометкой времени.
Для целевой системы, куда направляются подписанные файлы, требуется в сопроводительном XML документе к подписанному файлу указать дату и время подписи документа, совпадающие с реальной датой и временем подписи документа на криптосервере времени.
Вопрос.
Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом?
Online Андрей *  
#48 Оставлено : 6 октября 2021 г. 11:56:45(UTC)
Андрей *

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

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

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

Вопрос.
Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом?



Аналогично через COM - прочитать атрибуты...
?

Техническую поддержку оказываем тут
Наша база знаний
Online Андрей *  
#49 Оставлено : 6 октября 2021 г. 12:05:36(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
инициализировать объекты, заполнить, проверить подпись: cadessigneddata https://docs.cryptopro.r...om_class/cadessigneddata

Подписанты: Signers
Далее по каждому: Объект CPSigner

есть список - Свойства...

среди них, к примеру:
Цитата:

SignatureTimeStampTime Время подписи из штампа времени на значение подписи.


Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
NAlexV оставлено 08.10.2021(UTC)
Offline NAlexV  
#50 Оставлено : 6 октября 2021 г. 12:34:38(UTC)
NAlexV

Статус: Участник

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

Сказал(а) «Спасибо»: 3 раз
Автор: Андрей * Перейти к цитате
Автор: NAlexV Перейти к цитате

Вопрос.
Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом?



Аналогично через COM - прочитать атрибуты...
?



Какой COM объект позволяет прочитать атрибуты штампа подписи? Какие методы для этого нужно использовать? Может быть есть пример на С++.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
7 Страницы«<34567>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.