Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Создание цифровой подписи сертификатом на флэшке
Статус: Участник
Группы: Участники
Зарегистрирован: 05.06.2018(UTC) Сообщений: 12 Откуда: Moscow
|
Все привет! Возникла такая проблема: в нашем приложении документ должен подписываться несколькими назначенными сотрудниками, но в разное время. Смысл в том, что у каждого свой сертификат и приватные ключи не должны передаваться на сервер. Каждый сотрудник хранит свой сертификат на флэшке и должен иметь возможность добавить свою подпись исключительно на клиенте, используя плагин Crypto PRO для Хрома. Подписи должны быть собраны в общем Sig-файле. Как подписывать файл сертификатом, который установлен в хранилище User/My (под Виндой), разобрались. Нужно сначала получить список валидных сертификатов, имеющих приватный ключ, отобразить и дать пользователю выбрать один из них, затем найти сам сертификат в хранилище My по Subject, загрузить, и применить в алгоритме подписи. А вот как работать с сертификатом на флэшке, если юзер не хочет его ставить? По идее, они могут не хотеть из-за секьюрности, чтобы к сертификату никто не имел доступ. Для поиска сертификата во Subject в хранилище и его загрузки используем: Код:
const loadCertificate = (certSubjectName: string, stgType: number, stgName: string): Promise<any> => {
return new Promise((resolve, reject) => {
cadesplugin.async_spawn(function* it(args) {
try {
const oStore: ICertStore = yield cadesplugin.CreateObjectAsync('CAPICOM.Store');
yield oStore.Open(stgType, stgName, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
const oCertificates: ICertCollection = yield oStore.Certificates;
const oCerts = yield oCertificates.Find(
cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName, true);
const count = yield oCerts.Count;
if (count === 0) {
reject({message: `Сертификат '${certSubjectName}' не найден`});
return;
}
const oCertificate = yield oCerts.Item(1);
yield oStore.Close();
resolve(oCertificate);
} catch (err) {
reject(err);
}
});
});
};
С уважением, Алексей Отредактировано пользователем 15 июня 2018 г. 11:24:58(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Здравствуйте. Сертификат установить в хранилище Личное На контейнере должен быть пароль, пароль не сохранять. Контейнер на внешнем устройстве. >По идее, они могут не хотеть из-за секьюрности, чтобы к сертификату никто не имел доступ. Сертификат используется для получения информации о контейнере (чтобы в итоге получить доступ к закрытому ключу) + сертификат добавляется в CMS. > Подписи должны быть собраны в общем Sig-файле. Возможно будет полезным: Приказ Судебного департамента при Верховном Суде РФ от 28 декабря 2016 г. № 252 “Об утверждении Порядка подачи в арбитражные суды Российской Федерации документов в электронном виде, в том числе в форме электронного документа”http://www.garant.ru/pro.../ipo/prime/doc/71478932/ Цитата:2.3.5. ... Электронная подпись должна содержаться в отдельном файле (отсоединенная электронная подпись).
При подписании документа несколькими лицами каждая электронная подпись должна содержаться в отдельном файле. ... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Цитата: >По идее, они могут не хотеть из-за секьюрности, чтобы к сертификату никто не имел доступ.
Остановит лишь ПО, которое работает с сертификатами. ПО, которое работает напрямую с контейнерами - сможет запросить доступ. Как и ПО, которое просто может сделать "теневую копию" с флешки. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.06.2018(UTC) Сообщений: 12 Откуда: Moscow
|
Спасибо, Андрей! А вот CAdESCOM.CadesSignedData: VerifyHash, CoSignHash, SignHash - они позволяют передать на этот случай пароль?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Если пароль установлен и не был сохранен - будет диалог от криптопровайдера. Либо программно установить KeyPin |
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Создание цифровой подписи сертификатом на флэшке
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close