Статус: Активный участник
Группы: Участники
Зарегистрирован: 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?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 есть сертификат?
Пусто.. Но как туда попадают сертификаты пользователей? Мы храним их документы. Мы даем механизм верификации документа любому пользователю с ЭЦП. Мы получаем его сертификат в момент, когда он пожелает подписать своей ЭЦП, свой, хранящийся у нас, документ. Верно? Автор: Андрей *  p.s. Не понятно из описания. У пользователя на сайте - ключ на его же стороне, а не на сервере. Или Вы собрались делать облачное хранилище и подписание на стороне сервера?
Пользователь с ключом и плагином заходит в личный кабинет у нас на сайте. Там уже хранятся его неподписанные документы. Хотим дать ему возможность без скачивания по клику подписать эти документы его ЭЦП которой у нас нет. На данный момент собрали на фронте рабочую схему, но документы приходится гонять с бэка на фронт и обратно(а они могут быть большими, и производительность операции зависит от машины пользователя). Нужно перенести механизм работы с сертификатом и подписание документа на сервер - задача встала на работе Store с сертификатами. Я понял, что сертификат должен появится в хранилище uMy, но каким образом?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,244  Сказал(а) «Спасибо»: 106 раз Поблагодарили: 300 раз в 278 постах
|
а что будет если выберут чужой сертификат? сервер выберет чужой закрытый ключ и подпишет им? Отредактировано пользователем 9 сентября 2022 г. 12:31:59(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,161   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
...передача закрытых ключей на сервер... хм..
На сервере тогда хешировать, на клиенте подписывать хеш.
+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.
|
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,244  Сказал(а) «Спасибо»: 106 раз Поблагодарили: 300 раз в 278 постах
|
и проходить тематические исследования в лаборатории ФСБ |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.08.2022(UTC) Сообщений: 34
Сказал(а) «Спасибо»: 7 раз
|
Автор: Санчир Момолдаев  а что будет если выберут чужой сертификат? сервер выберет чужой закрытый ключ и подпишет им? Дело в том, что этот личный кабинет может принадлежать в т.ч. юр.лицу у которого подписывать документы могут и директор и главбух(со свей когортой ответственных)..
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.08.2022(UTC) Сообщений: 34
Сказал(а) «Спасибо»: 7 раз
|
Автор: Андрей *  ...передача закрытых ключей на сервер... хм..
На сервере тогда хешировать, на клиенте подписывать хеш.
+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.
Да, это был план Б :) Поучается с бэка приходит хэш сообщения и подписывается на фронте, с которого возвращается обратно в бэк подпись(и подписанный хэш?). И я так понимаю нужно будет перепроверить неизменность хэша?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,161   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: Denisekat  Автор: Санчир Момолдаев  а что будет если выберут чужой сертификат? сервер выберет чужой закрытый ключ и подпишет им? Дело в том, что этот личный кабинет может принадлежать в т.ч. юр.лицу у которого подписывать документы могут и директор и главбух(со свей когортой ответственных).. а если администратор\разработчик подпишет на сервере, что захочет... имея доступ к контейнерам клиентов? |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,161   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Автор: Denisekat  Автор: Андрей *  ...передача закрытых ключей на сервер... хм..
На сервере тогда хешировать, на клиенте подписывать хеш.
+ использовать (для новых файлов) - блочное чтение на клиенте, тогда можно подписывать любого размера файл.
Да, это был план Б :) Поучается с бэка приходит хэш сообщения и подписывается на фронте, с которого возвращается обратно в бэк подпись(и подписанный хэш?). И я так понимаю нужно будет перепроверить неизменность хэша? обратно отправляется отсоединенная подпись и на сервере проверять её на соответствие исходному файлу. |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close