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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline MaxStoun  
#1 Оставлено : 12 февраля 2013 г. 11:52:02(UTC)
MaxStoun

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

Группы: Участники
Зарегистрирован: 26.11.2012(UTC)
Сообщений: 5
Откуда: UA

Добрый день
Есть компьютер на котором установлен КриптоПро, Крипто АРМ и browser-plugin
Настроен локальный список отозваных сертификатов (синхронизирует с информацией от центра сертификации раз в месяц полуручным способом) и установлен корневой сертификат.
Это позволяет подписывать и просматривать подписи файла через Крипто АРМ

Но, при попытке подписать файл через browser-plugin на строке oSignedData.VerifyCades получаю ошибку
Ошибка проверки подписей. Обратитесь к администратору: The revocation process could not continue
- the certificate(s) could not be checked. (0x800B010E)

Код:

var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
try {
   oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
   alert("Ошибка проверки подписей. Обратитесь к администратору: " + GetErrorMessage(err));
   return false;
}


Я пробовал найти информацию по данной ошибке - как я понимаю проблема в том что валидность подписи не может быть проверена, т.к. недоступен сервер центра сертификаций. Можно ли для VerifyCades как то указать что необходимо проверять валидность подписи через локальный СОС ?
Offline Новожилова Елена  
#2 Оставлено : 13 февраля 2013 г. 18:24:15(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Не совсем поняла, как соотносятся слова "При попытке подписать файл" и падение на методе VerifyCades, который осуществляет проверку подписи.

Так подпись не удается создать или проверить?
Offline MaxStoun  
#3 Оставлено : 13 февраля 2013 г. 21:45:14(UTC)
MaxStoun

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

Группы: Участники
Зарегистрирован: 26.11.2012(UTC)
Сообщений: 5
Откуда: UA

Я подписываю файл, и сразу пытаюсь проверить подписи (что бы потом передать их с браузера на сервер и сохранить информацию о подписантах отдельно от полученного файла с подписями)
Offline MaxStoun  
#4 Оставлено : 14 февраля 2013 г. 11:27:47(UTC)
MaxStoun

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

Группы: Участники
Зарегистрирован: 26.11.2012(UTC)
Сообщений: 5
Откуда: UA

Увидел аналогичную тему
http://www.cryptopro.ru/....aspx?g=posts&t=5793
Но я так и не понял можно ли проверять с СОС(CLR) при помощи Capicom
>На текущий момент проверяется только цепочка сертификата, которым подписан внешний штамп времени (online).



Upd: увидел еще одну тему
http://cryptopro.ru/foru...t.aspx?g=posts&t=821
как я понимаю можно попробовать что то типа
Код:

sd.Verify( signature, true, CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_ONLY );
    result = true;
    //проверяем сертификаты, которыми были подписанны данные
    foreach ( Certificate cert in csd.Certificates )
    {
        //устанавливаем флаг, чтобы проверить список отозванных сертификатов
        cert.IsValid().CheckFlag = CAPICOM_CHECK_FLAG.CAPICOM_CHECK_ONLINE_REVOCATION_STATUS;
        if ( cert.IsValid().Result == false )
        {
            result = false;
            break;
        }
    }

Отредактировано пользователем 14 февраля 2013 г. 11:46:23(UTC)  | Причина: Не указана

Offline Новожилова Елена  
#5 Оставлено : 14 февраля 2013 г. 15:08:25(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Автор: MaxStoun Перейти к цитате
Я подписываю файл, и сразу пытаюсь проверить подписи (что бы потом передать их с браузера на сервер и сохранить информацию о подписантах отдельно от полученного файла с подписями)


А как вы создаете подпись?
Offline MaxStoun  
#6 Оставлено : 14 февраля 2013 г. 16:43:32(UTC)
MaxStoun

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

Группы: Участники
Зарегистрирован: 26.11.2012(UTC)
Сообщений: 5
Откуда: UA

Типа такого
Код:

var certSubjectName = ... // certificate subject name нового подписанта
var fileSigned = ... // передаем был ли подписан ранее уже файл
var dataToSign = ... // base64String из данных файла
...

var oStore = CreateObject('CAPICOM.Store');
oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

var oCertificates = oStore.Certificates.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);
if (oCertificates.Count == 0) {
	alert('Certificate not found: ' + certSubjectName);
	return;
}
var oCertificate = oCertificates.Item(1);

var oSigningTimeAttr = CreateObject('CADESCOM.CPAttribute');
oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
var oTimeNow = new Date();
oSigningTimeAttr.Value = ConvertDate(oTimeNow);

var oDocumentNameAttr = CreateObject('CADESCOM.CPAttribute');
oDocumentNameAttr.Name = CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME;
oDocumentNameAttr.Value = 'Document Name';

var oSigner = CreateObject('CAdESCOM.CPSigner');
oSigner.Certificate = oCertificate;
oSigner.AuthenticatedAttributes2.Add(oSigningTimeAttr);
oSigner.AuthenticatedAttributes2.Add(oDocumentNameAttr);

var oSignedData;
debugger;
if (fileSigned)
{
	oSignedData = GetDataObject(dataToSign);
}
else
{
	oSignedData = CreateObject('CAdESCOM.CadesSignedData');
	oSignedData.Content = dataToSign;
}
try {
	var sSignedMessage = '';
	if (fileSigned)
	{
		sSignedMessage = oSignedData.CoSignCades(oSigner, CADESCOM_CADES_BES);
	}
	else
	{
		sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_BES);
	}
	
} catch (err) {
	alert('Failed to create signature. Error: ' + GetErrorMessage(err));
	return;
}

oStore.Close();

return sSignedMessage;



я использую SignCades или CoSignCades для подписи
Offline Новожилова Елена  
#7 Оставлено : 15 февраля 2013 г. 19:40:25(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Вы создаете подпись формата CAdES-BES, а проверить ее пытаетесь как CAdES-X Long Type 1.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.