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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Hydro  
#1 Оставлено : 17 июля 2017 г. 7:57:10(UTC)
Hydro

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

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

Добрый день.
Подписываем данные в браузере с помощью плагина версии 2.0., .NET 4.6.1 (x64)
DocumentDescription установили в JS коде по примеру

Код:

       const dateAttrs = yield plugin.CreateObjectAsync('CADESCOM.CPAttribute');
        yield dateAttrs.propset_Name(plugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME);
        yield dateAttrs.propset_Value(signingDateTime.toDate());

        const noteAttrs = yield plugin.CreateObjectAsync('CADESCOM.CPAttribute');
        yield noteAttrs.propset_Name(plugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION);
        yield noteAttrs.propset_Value(description);

        const signedData = yield plugin.CreateObjectAsync('CAdESCOM.CadesSignedData');
        yield signedData.propset_ContentEncoding(1);
        yield signedData.propset_Content(dataToSign);


Затем полученную подпись передаем в .NET приложение и пытаемся ее верифицировать и вытащить из нее DocumentDescription.
Верификация данных проходит, documentDescription тоже нормально вытаскивается, НО! DocumentDescription отличается от исходного.

Код:

SignedCms signedCms = new SignedCms();
        try
        {
          signedCms.Decode(binarySignature);
          Pkcs9DocumentDescription documentDescription = signedCms.SignerInfos[0].SignedAttributes.OfType<CryptographicAttributeObject>().SelectMany<CryptographicAttributeObject, Pkcs9AttributeObject>((Func<CryptographicAttributeObject, IEnumerable<Pkcs9AttributeObject>>)(a => a.Values.Cast<Pkcs9AttributeObject>())).OfType<Pkcs9DocumentDescription>().FirstOrDefault<Pkcs9DocumentDescription>();
        }
        catch (CryptographicException ex)
        {
          
        }


Отличается он тем, что на конце строки появляется какой-то мусор, например, если в браузере установили DocumentDescription = "TestDocument",
то полученное значение в .NET процессе может = "TestDocument~\u0001" (также могут светиться иероглифы, или имена сборок в .NET), т.е. в конце строки появляется какой-то мусор из памяти .NET. Такое ощущение, что где-то потерялся паддинг или символ '\0'.
Как быть в таком случае? В какую сторону смотреть? Когда подписываем в .NET и проверяем атрибуты в .NET, то все хорошо.
Через ASN1 декодер сравнивал подписи из браузерного плагина и из .NET API SignedCMS нашел отличие в разделе OBJECT IDENTIFIER1.3.6.1.4.1.311.88.2.2capiComDocumentDescription(Microsoft attribute)

Подпись из браузера декодируется как:
Код:

SEQUENCE(2 elem)
OBJECT IDENTIFIER1.3.6.1.4.1.311.88.2.2capiComDocumentDescription(Microsoft attribute)
SET(1 elem)
OCTET STRING(88 elem)
Application 3(0 elem)
Application 6(0 elem)
Application 14
Application 12
Application 8
Application 16
Application 11(0 elem)
Application 2
Application 6(0 el
....



Подпись из .NET декодируется как

Код:

SEQUENCE(2 elem)
OBJECT IDENTIFIER1.3.6.1.4.1.311.88.2.2capiComDocumentDescription(Microsoft attribute)
SET(1 elem)
OCTET STRING(178 byte) 55004D004C004600610050007A006C0069004A007700510048005900360053005A005…


Сама подпись, которая была получена из браузера - тут

Код:
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

Отредактировано пользователем 17 июля 2017 г. 10:02:09(UTC)  | Причина: Не указана

Offline Hydro  
#2 Оставлено : 18 июля 2017 г. 13:39:34(UTC)
Hydro

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

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

Поставили

yield noteAttrs.propset_ValueEncoding(plugin.CADESCOM_ENCODE_BASE64);

Теперь получаем такой же эффект как и в годовалой теме https://www.cryptopro.ru...aspx?g=posts&m=70189

В браузере выбрасывается ошибка

Object {message: "ASN1 unexpected end of data. (0x80093102)", requestid: 43, type: "error"}
message: "ASN1 unexpected end of data. (0x80093102)"
requestid:43
type:"error"

Кодировали строку и в ASCII, и в UTF8 и в UTF16 с перегоном в массив байт и конвертацией в base64. Все одна беда.

Уважаемые сотрудники, не менее уважаемой компании КриптоПро, Вам удалось за год разобраться с этой проблемой?

Отредактировано пользователем 18 июля 2017 г. 13:42:18(UTC)  | Причина: Не указана

Offline Hydro  
#3 Оставлено : 18 июля 2017 г. 14:05:19(UTC)
Hydro

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

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

Используем версию плагина 2.0.12888,
тут http://www.cryptopro.ru/...ts&m=72225#post72225 Вы пишите,

Цитата:

КриптоПро ЭЦП SDK версия 2.0.12463 для Windows и версия 2.0.12619 для UNIX и
КриптоПро ЭЦП Browser plug-in версия 2.0.12619 для Windows и для UNIX.
Дистрибутивы обновлены.

Основные изменения:

Плагин: Исправлена ошибка добавления атрибутов при использовании ValueEncoding = CAPICOM_ENCODE_BASE64.


Может быть опять что-то сломалось?
Offline Андрей Емельянов  
#4 Оставлено : 18 июля 2017 г. 18:20:44(UTC)
Андрей Емельянов

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

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 148 раз в 144 постах
Добрый день.
В текущей сборки плагина были найдены некоторые ошибки.
В рамках обращения на нашем портале https://support.cryptopro.ru мы можем предоставить Вам предварительную сборку с исправлениями.
Техническую поддержку оказываем тут
Наша база знаний
Наша страничка в Instagram
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.