Статус: Участник
Группы: Участники
Зарегистрирован: 24.02.2021(UTC) Сообщений: 19 Откуда: Сыктывкар Сказал(а) «Спасибо»: 5 раз
|
Здравствуйте! Делаю вход на свой сайт через Госуслуги. Использую квалифицированную ЭЦП выданную УД. В документации госуслуг есть параметр, который должен быть отправлен: Цитата:<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к учетной записи системы-клиента в ЕСИА. ЕСИА поддерживает сертификаты в формате X.509. ЕСИА поддерживает алгоритм формирования электронной подписи ГОСТ Р 34.10-2012 и алгоритм криптографического хэширования ГОСТ Р 34.11-2012. Я собираю строку и шифрую её как указано в примере на вашем сайте. Но сервера госуслуг выдают ошибку "Подпись в параметре секрета клиента не проверена."В связи с чем есть несколько вопросов: - подходит ли данный метод шифрования для моего случая или может быть использовать другой?
- и если подходит, то как изменить тип подписи? (т.к. на сайте не нашёл нужной информации)
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,038 Сказал(а) «Спасибо»: 88 раз Поблагодарили: 223 раз в 211 постах
|
Автор: Иван Бахтин Здравствуйте! Делаю вход на свой сайт через Госуслуги. Использую квалифицированную ЭЦП выданную УД. В документации госуслуг есть параметр, который должен быть отправлен: Цитата:<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к учетной записи системы-клиента в ЕСИА. ЕСИА поддерживает сертификаты в формате X.509. ЕСИА поддерживает алгоритм формирования электронной подписи ГОСТ Р 34.10-2012 и алгоритм криптографического хэширования ГОСТ Р 34.11-2012. Я собираю строку и шифрую её как указано в примере на вашем сайте. Но сервера госуслуг выдают ошибку "Подпись в параметре секрета клиента не проверена."В связи с чем есть несколько вопросов: - подходит ли данный метод шифрования для моего случая или может быть использовать другой?
- и если подходит, то как изменить тип подписи? (т.к. на сайте не нашёл нужной информации)
Добрый день! судя по всему они ожидают подпись а не зашифрованный EnvelopedData попробуйте с этим примеромно он сделает с cades-bes. примут ли они cades-bes надо проверять |
|
1 пользователь поблагодарил Санчир Момолдаев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.02.2021(UTC) Сообщений: 19 Откуда: Сыктывкар Сказал(а) «Спасибо»: 5 раз
|
Здравствуйте! Я тоже пришёл к выводу, что использовал не тот метод. Я переписал свой код: Цитата:# работа с сертификатом 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"
signer = pycades.Signer() signer.Certificate = certs.Item(1) signer.CheckCertificate = True signer.TSAAddress = 'Адрес службы штампов времени'
signedData = pycades.SignedData() signedData.ContentEncoding = pycades.CADESCOM_PKCS7_TYPE signedData.Content = f"{scope}{my_timestamp_code}{client_id}{state}" signature = signedData.Sign(signer, True, pycades.CADESCOM_ENCODE_BASE64)
На последней строке возникает ошибка Цитата:Exception: The parameter is incorrect. (0x80070057) В "signer.TSAAddress = 'Адрес службы штампов времени'" вставлен реальный адрес. Подскажите, пожалуйста, где я ошибся? Отредактировано пользователем 19 марта 2021 г. 14:52:38(UTC)
| Причина: Не указана
|
|
|
|
Статус: Администратор
Группы: Участники
Зарегистрирован: 01.03.2017(UTC) Сообщений: 95 Откуда: Москва Сказал(а) «Спасибо»: 4 раз Поблагодарили: 29 раз в 20 постах
|
Добрый день! Код:signedData.ContentEncoding = pycades.CADESCOM_PKCS7_TYPE
PKCS7 - это тип подписи, а не кодировка. Пример задания ContentEncoding можно посмотреть в примере.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 30.08.2022(UTC) Сообщений: 34
Сказал(а) «Спасибо»: 7 раз
|
Добрый день! Получилось ли решить задачу, особенно в свете последних изменений? Стоит аналогичная задача авторизовать пользователя с использованием госуслуг(ЕСИА). Вопрос по cades-bes в этой теме без ответа..
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.02.2021(UTC) Сообщений: 19 Откуда: Сыктывкар Сказал(а) «Спасибо»: 5 раз
|
Здравствуйте! Полностью использовать данную библиотеку не получится. Т.к. библиотека формирует подпись в новом формате (этот ответ есть на данном форуме), а гис использует старый формат. Получается вам нужно собрать XML и подписать его.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.11.2017(UTC) Сообщений: 5 Откуда: Москва
|
Добрый день! При инициализации обьекта Certificate куда-то утекает память. Выполняю в консоли инструкцию ниже, память у процесса сразу улетает в 200мб: Цитата:import pycades
for i in range(10000): pycades.Certificate()
Кто-нибудь сталкивался?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: igorkud90 Добрый день! При инициализации обьекта Certificate куда-то утекает память. Выполняю в консоли инструкцию ниже, память у процесса сразу улетает в 200мб: Цитата:import pycades
for i in range(10000): pycades.Certificate()
Кто-нибудь сталкивался? по 2кб на объект, много или что? а если 100к объектов создать? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.11.2017(UTC) Сообщений: 5 Откуда: Москва
|
Автор: Андрей * Автор: igorkud90 Добрый день! При инициализации обьекта Certificate куда-то утекает память. Выполняю в консоли инструкцию ниже, память у процесса сразу улетает в 200мб: Цитата:import pycades
for i in range(10000): pycades.Certificate()
Кто-нибудь сталкивался? по 2кб на объект, много или что? а если 100к объектов создать? Вопрос больше в том, почему обьекты не утилизируются из памяти. Если сервис работает непрерывно с большим количеством обращений, то через сутки выедается вся доступная память на машине.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: igorkud90 Вопрос больше в том, почему обьекты не утилизируются из памяти. Если сервис работает непрерывно с большим количеством обращений, то через сутки выедается вся доступная память на машине. Может сервис должен как-то сообщать, что объекты больше не нужны? Как с этим обстоят дела в Python? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close