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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Московко С.О.  
#1 Оставлено : 16 сентября 2020 г. 19:20:46(UTC)
Московко С.О.

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Необходимо заполнить два параметра:
1. signedData - Подписанные данные.
2. signature - Отсоединенная подпись контента сообщения в формате Base64String
Что то я не могу понять, каким методом это получить. signedData.Sign(Signer, false), как я понял возвращает подписанные данные. Как получить "Открепленную подпись". Или все не так?
Offline Андрей *  
#2 Оставлено : 16 сентября 2020 г. 19:43:37(UTC)
Андрей *

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

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

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

SignedData.Sign

Код:

 SignedData.Sign ( _
  [ ByVal Signer ], _
  [ ByVal bDetached ], _
  [ ByVal EncodingType ] _
)


Sign(Signer, false) - создаёт присоединенную подпись.
Техническую поддержку оказываем тут
Наша база знаний
Offline Московко С.О.  
#3 Оставлено : 16 сентября 2020 г. 19:59:19(UTC)
Московко С.О.

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

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

Сказал(а) «Спасибо»: 1 раз
Спасибо. Я так понял, что параметр bDetached должен быть равен true, если надо создать отсоединенную подпись.
А не подскажите, где взять подписанные данные? Я так понял, что мы заполняем content, вызываем функцию Sign, с помощью которой получаем подпись. Или это и есть Sign(Signer, false)?

Отредактировано пользователем 16 сентября 2020 г. 20:41:50(UTC)  | Причина: Уточнение вопроса

Offline Андрей *  
#4 Оставлено : 16 сентября 2020 г. 20:50:08(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
подписанные данные = то, что было подписано - это исходный документ, его передают отдельно от подписи,
на то она и отделенная от данных.

Техническую поддержку оказываем тут
Наша база знаний
Offline Московко С.О.  
#5 Оставлено : 16 сентября 2020 г. 21:07:14(UTC)
Московко С.О.

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

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

Сказал(а) «Спасибо»: 1 раз
Я прошу прощения, но я не понял. Где взять подписанные данные? Если это исходный документ, то данные еще не подписаны.
Offline Андрей *  
#6 Оставлено : 16 сентября 2020 г. 22:38:37(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: Московко С.О. Перейти к цитате
Я прошу прощения, но я не понял. Где взять подписанные данные? Если это исходный документ, то данные еще не подписаны.


Подписанные данные - те данные, что подписаны, для проверяющей стороны.
Техническую поддержку оказываем тут
Наша база знаний
Offline Московко С.О.  
#7 Оставлено : 17 сентября 2020 г. 10:00:28(UTC)
Московко С.О.

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

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

Сказал(а) «Спасибо»: 1 раз
Перефразирую. С помощью библиотеки CAPICOM каким образом можно получить подписанные данные?
Offline Андрей *  
#8 Оставлено : 17 сентября 2020 г. 10:12:57(UTC)
Андрей *

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

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

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: Московко С.О. Перейти к цитате
Перефразирую. С помощью библиотеки CAPICOM каким образом можно получить подписанные данные?


Ссылка на msdn была выше, примеры есть в sdk для capicom и cpdn от Крипто-Про.
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#9 Оставлено : 17 сентября 2020 г. 10:56:17(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: Московко С.О. Перейти к цитате
каким образом можно получить подписанные данные?
Похоже на путаницу в терминах. Суть вот в чем: указывая bDetached=Truе вы получите только данные структуры открепленной/открепленной подписи без исходного файла (как текст в base64 обычно). Чтобы получить файл открепленной подписи надо просто записать содержимое переменной в файл (декодирование из base64 + запись как двоичных данных по вкусу, ведь многие программы проверки поддерживают base64 и потому в большинстве случаев можно записать как есть, прямо текст в base64). Исходный файл остается нетронутым и его нужно передавать отдельно проверяющей стороне.

Указывая bDetached=False вы получите почти такую же структуру, но в ней будет дополнительный элемент, содержащий исходные данные. Это присоединенная подпись. Исходный файл можно не передавать отдельно и проверять так удобнее, но файл подписи может быть намного больше и чтобы использовать исходные данные их надо сначала из подписи выковырять ("снять подпись").

В реализации КриптоПро подписание на словах выглядит так: создаете объект Signer (имя класса), указываете сертификат, создаете объект signedData (это имя класса, не надо его на русский переводить как "подписанные данные"), указываете кодировку исходных данных и исходные данные в свойства объекта signedData, вызываете метод Sign объекта signedData, указывая объект Signer и признак отсоединенная ли подпись, перекодируете если нужно, записываете в файл. Проверка - снова создаете объект signedData, если подпись отсоединенная - указываете кодировку и исходные данные в свойства объекта signedData, для присоединенной это не нужно. Потом вызываете метод Verify, указывая данные считанные из файла подписи.

Отредактировано пользователем 17 сентября 2020 г. 10:59:27(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
Московко С.О. оставлено 17.09.2020(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.