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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline hansel  
#1 Оставлено : 9 февраля 2017 г. 14:09:21(UTC)
hansel

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

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

Используя КриптоПро ЭЦП Browser plug-in я создаю подпись CADESCOM_CADES_X_LONG_TYPE_1,
и сохраняю ее на сервере, возможно ли в дальнейшем получить информацию о подписанте из прикрепленных к подписи данных сертификата?

Отредактировано пользователем 9 февраля 2017 г. 15:50:01(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 9 февраля 2017 г. 16:47:49(UTC)
Андрей *

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

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

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


Да,
какой ЯП используется на сервере?
Техническую поддержку оказываем тут
Наша база знаний
Offline hansel  
#3 Оставлено : 9 февраля 2017 г. 16:55:33(UTC)
hansel

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

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

Автор: Андрей * Перейти к цитате
Здравствуйте.


Да,
какой ЯП используется на сервере?


Добрый день!
на сервере используется C#.
Возможно ли это сделать как на сервере, чтобы, например использовать информацию о владельце сертификата в других целях?
И возможно ли получить информацию о владельце сертификата на другом клиентском компьютере, где данный сертификат отсутствует(только саму информацию о подписанте, понятно, что подписать документ не имея сертификата невозможно)?
Offline Андрей Писарев  
#4 Оставлено : 9 февраля 2017 г. 17:13:48(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2051 раз в 1591 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline hansel  
#5 Оставлено : 9 февраля 2017 г. 17:18:07(UTC)
hansel

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

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

Автор: Андрей * Перейти к цитате
http://www.cryptopro.ru/forum2/default.aspx?g=posts&t=11609


Я уже видел эту запись и смотрел примеры, это только то, что касается .net, правда, к сожалению, до самих примеров я не добрался, так как они, как я понимаю идут вместе с дистрибутивом?
А что касается получения информации, которая меня интересует в браузере на Javascript, он, естественно, в этих примерах отсутствует, поэтому я и создал эту тему на форуме.
Offline Андрей Писарев  
#6 Оставлено : 9 февраля 2017 г. 17:24:23(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2051 раз в 1591 постах
Тогда в разделе нужно смотреть, примеры для плагина.
Техническую поддержку оказываем тут
Наша база знаний
Offline hansel  
#7 Оставлено : 9 февраля 2017 г. 18:17:34(UTC)
hansel

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

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

Автор: Андрей * Перейти к цитате
Тогда в разделе нужно смотреть, примеры для плагина.


Там, к сожалению, нет подобной информации, по выделению информации о сертификате из сформированного собщения подписи, например:

function SignCreate(certSubjectName, dataToSign) {
var oStore = cadesplugin.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 oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
oSigner.Certificate = oCertificate;

var oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
// Значение свойства ContentEncoding должно быть задано
// до заполнения свойства Content
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = dataToSign;

var sSignedMessage = "";
try {
var tspService = document.getElementById("TSPServiceTxtBox").value;
oSigner.Options = 1; //CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN
oSigner.TSAAddress = tspService;
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
return;
}

oStore.Close();

return sSignedMessage;
}

Как получив результат выполнения данной функции получить данные о сертификате, из значения sSignedMessage, которое возвращает функция?
Offline Андрей Писарев  
#8 Оставлено : 9 февраля 2017 г. 18:32:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2051 раз в 1591 постах
В коде, после проверки подписи (.VerifyCades) - доступны:
Объект CPSigners

объект Certificates

Далее - Объект CPCertificate
Техническую поддержку оказываем тут
Наша база знаний
Offline hansel  
#9 Оставлено : 10 февраля 2017 г. 10:05:37(UTC)
hansel

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

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

Автор: Андрей * Перейти к цитате
В коде, после проверки подписи (.VerifyCades) - доступны:
Объект CPSigners

объект Certificates

Далее - Объект CPCertificate


Спасибо, это то что нужно
Я нашел информацию о подписавшем, после верификации подписи по свойству
oSignedData.Signers.Item(1).Certificate.SubjectName

Offline asdsdf  
#10 Оставлено : 20 марта 2018 г. 14:25:41(UTC)
asdsdf

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

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

Сказал(а) «Спасибо»: 5 раз
Здравствуйте. Я видимо не такой понятливый, у меня есть похожий вопрос по теме. Я создаю подпись в формате Pkcs7 таким образом:
Код:

const signer = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner');
yield signer.propset_Certificate(certificate);

const hasher = yield cadesplugin.CreateObjectAsync('CAdESCOM.HashedData');
// Алгоритм хэширования нужно указать до того, как будет передано хэш-значение
hasher.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411);
// Инициализируем объект заранее вычисленным хэш-значением
hasher.SetHashValue(hash);

const rawSignature = yield cadesplugin.CreateObjectAsync('CAdESCOM.CadesSignedData');
/*
 * See http://cpdn.cryptopro.ru/content/cades/interface_c_ad_e_s_c_o_m_1_1_i_c_p_signed_data4_d5f61cb011df403ca56afabeb9c82387_1d5f61cb011df403ca56afabeb9c82387.html
 */
const signature = yield rawSignature.SignHash(hasher, signer, cadesplugin.CADESCOM_CADES_BES);

В переменной signature оказывается строка вида:
Код:

MIIVEQYJKoZIhvcNAQcCoIIVAjCCFP4CAQExDDAKBgYqhQMCAgkFADALBgkqhkiG9w0BBwGgghD1
MIIG2TCCBoigAwIBAgIKNqzUVQAAAAABLzAIBgYqhQMCAgMwggFKMR4wHAYJKoZIhvcNAQkBFg9k
aXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB0LrQstCw
...

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