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

Уведомление

Icon
Error

6 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline Denisekat  
#1 Оставлено : 9 сентября 2022 г. 10:57:41(UTC)
Denisekat

Статус: Активный участник

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

Сказал(а) «Спасибо»: 7 раз
Добрый день!

Поставлена типовая(кмк на данный момент) задача - документы загруженные в ЛК на сайт подписывать ЭЦП пользователя.
Бэк на python, фронт Vue/JS.

На wsl собран успешно Pycades. Сертификаты загружены в uRoot(/opt/cprocsp/bin/amd64/certmgr -list -store uRoot возвращает 8 корневых).

Но при попытке обратиться к Store() в нем пусто.

Код:
Код:
import pycades

store = pycades.Store()
store.Open(pycades.CADESCOM_CONTAINER_STORE, pycades.CAPICOM_MY_STORE, pycades.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)
certs = store.Certificates
assert(certs.Count != 0), "Certificates with private key not found"


Не могу понять причины так как понимание работы механизма еще весьма поверхностны, но на освоение времени не много - поэтому прошу помощи, чтобы поскорей разобраться.

Сертификаты не в том хранилище? Или могут быть подводные камни в связки win+wsl?
Offline Андрей *  
#2 Оставлено : 9 сентября 2022 г. 11:43:17(UTC)
Андрей *

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

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

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

CAPICOM_MY_STORE - личное хранилище пользователя (от которого работает код).
uRoot - пользовательское хранилище КОРНЕВЫХ сертификатов.

/opt/cprocsp/bin/amd64/certmgr -list -store uMy
есть сертификат?

p.s.
Не понятно из описания.
У пользователя на сайте - ключ на его же стороне, а не на сервере.
Или Вы собрались делать облачное хранилище и подписание на стороне сервера?

p.s.
Для клиентского решения - есть плагин для браузера (demo-страница),
Pycades же потребуется, чтобы на сервере проверять корректность присланных ЭП.ca


Техническую поддержку оказываем тут
Наша база знаний
Offline Denisekat  
#3 Оставлено : 9 сентября 2022 г. 12:16:03(UTC)
Denisekat

Статус: Активный участник

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

Сказал(а) «Спасибо»: 7 раз
Прежде всего благодарю за оперативный ответ!

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

p.s.
Для клиентского решения - есть плагин для браузера (demo-страница),
Pycades же потребуется, чтобы на сервере проверять корректность присланных ЭП.ca

Да, работаем в связке в фронтом, и у него всё быстро заработало - может проверить, может подписать и отправить мне файл и .sig
Но, документы уже загружены к нам на сервер и это могут быть объемные архивы - логично вывести подписание на бэк. Он через функцию getUserSertificate() предлагает пользователю выбрать сертификат и по полученному имени забирает нужный сертификат из oStore.Certificates через метод Find(). Хочется настроится так, чтобы он мне отправлял только имя а нужный сертификат находился на бэке.

Автор: Андрей * Перейти к цитате
Здравствуйте.
CAPICOM_MY_STORE - личное хранилище пользователя (от которого работает код).
uRoot - пользовательское хранилище КОРНЕВЫХ сертификатов.

/opt/cprocsp/bin/amd64/certmgr -list -store uMy
есть сертификат?

Пусто.. Think
Но как туда попадают сертификаты пользователей?
Мы храним их документы. Мы даем механизм верификации документа любому пользователю с ЭЦП. Мы получаем его сертификат в момент, когда он пожелает подписать своей ЭЦП, свой, хранящийся у нас, документ. Верно?

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

p.s.
Не понятно из описания.
У пользователя на сайте - ключ на его же стороне, а не на сервере.
Или Вы собрались делать облачное хранилище и подписание на стороне сервера?

Пользователь с ключом и плагином заходит в личный кабинет у нас на сайте. Там уже хранятся его неподписанные документы. Хотим дать ему возможность без скачивания по клику подписать эти документы его ЭЦП которой у нас нет.
На данный момент собрали на фронте рабочую схему, но документы приходится гонять с бэка на фронт и обратно(а они могут быть большими, и производительность операции зависит от машины пользователя).
Нужно перенести механизм работы с сертификатом и подписание документа на сервер - задача встала на работе Store с сертификатами. Я понял, что сертификат должен появится в хранилище uMy, но каким образом?

Offline Санчир Момолдаев  
#4 Оставлено : 9 сентября 2022 г. 12:26:12(UTC)
Санчир Момолдаев

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

Группы: Администраторы, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,244
Российская Федерация

Сказал(а) «Спасибо»: 106 раз
Поблагодарили: 300 раз в 278 постах
а что будет если выберут чужой сертификат?
сервер выберет чужой закрытый ключ и подпишет им?

Отредактировано пользователем 9 сентября 2022 г. 12:31:59(UTC)  | Причина: Не указана

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

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

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

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
...передача закрытых ключей на сервер... хм..

На сервере тогда хешировать,
на клиенте подписывать хеш.



+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Denisekat оставлено 09.09.2022(UTC)
Offline Санчир Момолдаев  
#6 Оставлено : 9 сентября 2022 г. 12:32:37(UTC)
Санчир Момолдаев

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

Группы: Администраторы, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,244
Российская Федерация

Сказал(а) «Спасибо»: 106 раз
Поблагодарили: 300 раз в 278 постах
и проходить тематические исследования в лаборатории ФСБ
Техническую поддержку оказываем тут
Наша база знаний
Offline Denisekat  
#7 Оставлено : 9 сентября 2022 г. 12:33:53(UTC)
Denisekat

Статус: Активный участник

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

Сказал(а) «Спасибо»: 7 раз
Автор: Санчир Момолдаев Перейти к цитате
а что будет если выберут чужой сертификат?
сервер выберет чужой закрытый ключ и подпишет им?


Дело в том, что этот личный кабинет может принадлежать в т.ч. юр.лицу у которого подписывать документы могут и директор и главбух(со свей когортой ответственных)..
Offline Denisekat  
#8 Оставлено : 9 сентября 2022 г. 12:38:34(UTC)
Denisekat

Статус: Активный участник

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

Сказал(а) «Спасибо»: 7 раз
Автор: Андрей * Перейти к цитате
...передача закрытых ключей на сервер... хм..

На сервере тогда хешировать,
на клиенте подписывать хеш.

+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.



Да, это был план Б :)

Поучается с бэка приходит хэш сообщения и подписывается на фронте, с которого возвращается обратно в бэк подпись(и подписанный хэш?). И я так понимаю нужно будет перепроверить неизменность хэша?
Offline Андрей *  
#9 Оставлено : 9 сентября 2022 г. 12:39:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Автор: Denisekat Перейти к цитате
Автор: Санчир Момолдаев Перейти к цитате
а что будет если выберут чужой сертификат?
сервер выберет чужой закрытый ключ и подпишет им?


Дело в том, что этот личный кабинет может принадлежать в т.ч. юр.лицу у которого подписывать документы могут и директор и главбух(со свей когортой ответственных)..


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

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

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

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Автор: Denisekat Перейти к цитате
Автор: Андрей * Перейти к цитате
...передача закрытых ключей на сервер... хм..

На сервере тогда хешировать,
на клиенте подписывать хеш.

+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.



Да, это был план Б :)

Поучается с бэка приходит хэш сообщения и подписывается на фронте, с которого возвращается обратно в бэк подпись(и подписанный хэш?). И я так понимаю нужно будет перепроверить неизменность хэша?



обратно отправляется отсоединенная подпись и на сервере проверять её на соответствие исходному файлу.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Denisekat оставлено 09.09.2022(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
6 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.