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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline RomanK  
#1 Оставлено : 21 июля 2020 г. 11:27:55(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!
Есть вебинтерфейс с установленным плагином, в нём создаётся подпись по примеру отсюда http://cpdn.cryptopro.ru/?url=/content/cades/reference.html На выходе получаем строку base64.
Задача следующая, сравнить содержимое с оригиналом, сама подпись проверку проходит, но примера, как сравнить содержимое с оригиналом, я не нашёл.
Подскажите, можно ли это сделать, и как, если можно?
Offline RomanK  
#2 Оставлено : 21 июля 2020 г. 11:51:37(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
Offline Андрей *  
#3 Оставлено : 21 июля 2020 г. 11:59:51(UTC)
Андрей *

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

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

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

Автор: RomanK Перейти к цитате
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует


Отсоединенная подпись?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#4 Оставлено : 21 июля 2020 г. 12:02:54(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
Автор: RomanK Перейти к цитате

Задача следующая, сравнить содержимое с оригиналом, сама подпись проверку проходит, но примера, как сравнить содержимое с оригиналом, я не нашёл.


Тип подписи какой? Присоединенная? Тогда внутри то, что было подписано.

Как проверяете? Если подпись отсоединенная и проходит проверку - то нет "еще одного файла-оригинала".
Если присоединенная - то внутри то, что было подписано. Можно извлечь и... сверить с тем, что подавали на подписание (оригинал) - сверить хеши, например, если подразумеваете, что "подписали" не те байты, что в оригинале (неправильно считали файл, закодировали лишний раз и прочие ошибки "на старте")

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#5 Оставлено : 21 июля 2020 г. 12:03:35(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
Автор: RomanK Перейти к цитате
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует


а проверка где?
Техническую поддержку оказываем тут
Наша база знаний
Offline RomanK  
#6 Оставлено : 21 июля 2020 г. 12:06:41(UTC)
RomanK

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

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

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

Автор: RomanK Перейти к цитате
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует


Отсоединенная подпись?


Подпись присоединённая. При этом если подписать средствами КриптоПро .NET и проделать ту же самую процедуру, signedCms.ContentInfo.Content содержит нужную информацию, а подпись с плагина увы.
Offline RomanK  
#7 Оставлено : 21 июля 2020 г. 12:13:21(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
Автор: RomanK Перейти к цитате
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует


а проверка где?


Есть некоторая строка, которую нужно подписать. Преобразую в base64 отправляю плагину, который её подписывает
Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
                oSignedData.propset_Content(dataToSign);

                var sSignedMessage = '';
                try {
                    sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, true);
                    args[2](sSignedMessage);
                } catch (err) {
                    args[3]('Failed to create signature. Error: ' + Org25SR.getErrorMessage(err));
                }


Возвращается подпись в виде base64
Вопрос как извлечь содержимое. Никаких действий с подписью не происходит кроме того, что приведено в примерах.
Полагаю, что содержимое должно находиться в signedCms.ContentInfo.Content, но там пустой массив без данных
Offline Андрей *  
#8 Оставлено : 21 июля 2020 г. 12:17:31(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
Автор: RomanK Перейти к цитате
Автор: Андрей * Перейти к цитате
Автор: RomanK Перейти к цитате
Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData);
Потом выполняю следующие действия
SignedCms signedCms = new SignedCms();
// Декодируем сообщение
signedCms.Decode(imageBytes);
var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует


а проверка где?


Есть некоторая строка, которую нужно подписать. Преобразую в base64 отправляю плагину, который её подписывает
Код:
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
                oSignedData.propset_Content(dataToSign);

                var sSignedMessage = '';
                try {
                   [h] sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, true);[/h]
                    args[2](sSignedMessage);
                } catch (err) {
                    args[3]('Failed to create signature. Error: ' + Org25SR.getErrorMessage(err));
                }


Возвращается подпись в виде base64
Вопрос как извлечь содержимое. Никаких действий с подписью не происходит кроме того, что приведено в примерах.
Полагаю, что содержимое должно находиться в signedCms.ContentInfo.Content, но там пустой массив без данных




Читайте документацию для .SignCades

У Вас отсоединенная подпись.

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#9 Оставлено : 21 июля 2020 г. 12:19:26(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
На тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.
Техническую поддержку оказываем тут
Наша база знаний
Offline RomanK  
#10 Оставлено : 21 июля 2020 г. 12:27:16(UTC)
RomanK

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
На тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.


Проверил, данные доступны. Где можно посмотреть код тестовой страницы работы с плагином?
Offline Андрей *  
#11 Оставлено : 21 июля 2020 г. 12:30:27(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
Автор: RomanK Перейти к цитате
Автор: Андрей * Перейти к цитате
На тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.


Проверил, данные доступны. Где можно посмотреть код тестовой страницы работы с плагином?


Правой кнопкой - "показать исходный код страницы"? - смотрите html + js


Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#12 Оставлено : 21 июля 2020 г. 12:31:10(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, true);

уберите true или поставьте false в этой строке у себя.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#13 Оставлено : 21 июля 2020 г. 12:32:45(UTC)
Андрей *

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

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

Сказал «Спасибо»: 391 раз
Поблагодарили: 1610 раз в 1237 постах
Автор: RomanK Перейти к цитате
Автор: Андрей * Перейти к цитате
На тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.


Проверил, данные доступны. Где можно посмотреть код тестовой страницы работы с плагином?


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