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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline dirt  
#1 Оставлено : 22 января 2013 г. 14:33:35(UTC)
dirt

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

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

Сказал(а) «Спасибо»: 4 раз
Добрый день!

Занимаюсь созданием подписи стандарта CadES-T средствами JCP.
Штамп времени и подпись PKCS7 создаётся нормально.

A вот после прикладывания штампа в неподписываемый аттрибут, получаю что-то несовместимое ни с чем.

вот код вложения штампа:
Код:
public byte[] injectTSinCMS(byte[] cmsData, byte[] tsData) throws Exception {

	TimeStampResp response = new TimeStampResp();
	response.decode(new Asn1DerDecodeBuffer(tsData));
	TimeStampToken tsToken = response.timeStampToken;
	Asn1DerEncodeBuffer encData = new Asn1DerEncodeBuffer();
	tsToken.encode(encData);
	byte[] contbytes = encData.getMsgCopy();
	ContentInfo contentTS = new ContentInfo();
	contentTS.decode(new Asn1DerDecodeBuffer(contbytes));

	Attribute[] newvalues = new Attribute[1];
	newvalues[0] = new Attribute(new int[] { 1, 2, 840, 113549, 1, 9, 16, 2, 14 }, new Attribute_values(1));
	newvalues[0].values.elements[0] = contentTS.content;
	UnsignedAttributes unattr = new UnsignedAttributes(1);
	unattr.elements[0] = newvalues[0];

	Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(cmsData);
	ContentInfo сInfo = new ContentInfo();
	сInfo.decode(asnBuf);
	SignedData cms = (SignedData) сInfo.content;
	SignerInfo info = cms.signerInfos.elements[0];

	SignerInfo newInf = new SignerInfo(info.version, info.sid, info.digestAlgorithm, info.signedAttrs, info.signatureAlgorithm, info.signature, unattr);
	SignerInfos newInfos = new SignerInfos(1);
	newInfos.elements[0] = newInf;

	SignedData cmsM = new SignedData(cms.version, cms.digestAlgorithms, cms.encapContentInfo, cms.certificates, cms.crls, newInfos);
	ContentInfo сInfoM = new ContentInfo();
	сInfoM.contentType = сInfo.contentType;
	сInfoM.content = cmsM;

	Asn1BerEncodeBuffer asnBuf2 = new Asn1BerEncodeBuffer();
	сInfoM.encode(asnBuf2, true);
	return asnBuf2.getMsgCopy();
}


Может я что-то совсем не правильно делаю?
Вложение(я):
cadesT_cms_ts (3kb) загружен 6 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#2 Оставлено : 22 января 2013 г. 15:51:03(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте. У подписи некорректная структура, я не нашел подписанный аттрибут signingCertificateV2 в подписи, он есть только у самого штампа. Пример подписи приложил, посмотрите отличия.

Отредактировано пользователем 22 января 2013 г. 15:54:07(UTC)  | Причина: Не указана

Вложение(я):
CAdEST (3kb) загружен 23 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline dirt  
#3 Оставлено : 22 января 2013 г. 17:19:07(UTC)
dirt

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

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

Сказал(а) «Спасибо»: 4 раз
Вот тоже файлик, без аттрибута signingCertificateV2 в подписи, однако он валидный. Правда создан он не средствами JCP.
Вложение(я):
cms_TS (4kb) загружен 8 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#4 Оставлено : 22 января 2013 г. 17:36:51(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Тут есть аттрибут 1.2.840.113549.1.9.16.2.47 (signingCertificateV2) в подписанных аттрибутах + аналогичный в штампе.
Offline dirt  
#5 Оставлено : 23 января 2013 г. 15:20:31(UTC)
dirt

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

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

Сказал(а) «Спасибо»: 4 раз
Вроде как получился валидный файл.
Спасибо за помощь!
Вложение(я):
cadesT_cms_ts (4kb) загружен 16 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline evgeni1  
#6 Оставлено : 15 сентября 2016 г. 15:13:00(UTC)
evgeni1

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

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

Сказал(а) «Спасибо»: 1 раз
dirt, можешь показать, как ты вставил штамп времени в подпись?
И что ты передавал на вход в качестве параметра tsData ?

Отредактировано пользователем 15 сентября 2016 г. 15:18:55(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 15 сентября 2016 г. 15:22:45(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Судя по коду, это ответ службы штампов. В CAdES.jar появилась возможность создать подпись формата CAdES-T.
Offline evgeni1  
#8 Оставлено : 15 сентября 2016 г. 15:28:21(UTC)
evgeni1

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

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

Сказал(а) «Спасибо»: 1 раз
afev, можешь объяснить, что из чего расчитывается хеш и передается службе штампов времени?
Offline Евгений Афанасьев  
#9 Оставлено : 15 сентября 2016 г. 15:55:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Автор: evgeni1 Перейти к цитате
из чего расчитывается хеш и передается службе штампов времени?

Для штампа подписи - хеш подписи (64 байта).

Offline evgeni1  
#10 Оставлено : 15 сентября 2016 г. 16:19:34(UTC)
evgeni1

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

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

Сказал(а) «Спасибо»: 1 раз
А вы можете описать порядок, что зачем расчитывается?
есть данные,
берем от данных хеш
подписываем хеш и получаеам подпись.

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