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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline maslastja  
#1 Оставлено : 27 апреля 2022 г. 11:56:08(UTC)
maslastja

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

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

Здравствуйте!
много решений на тему шифрования ФСС есть для других языков. к сожалению Java, Delphi, Cишный синтаксис мне сложно разобрать
меня интересует решение для python3.
создать и подписать XML у меня получилось с помощью pycades
теперь возник вопрос как зашифровать c помощью pycades (возможно ли это вообще)?

Этапы шифрования сообщения (Спецификация ЭЛН):
1. Создание случайного сессионного ключа.
При работе с ключами на алгоритме ГОСТ 2012 следует инициализировать генератор параметрами шифрования TK26Z (предоставляется провайдером).
Алгоритм шифрования GOST28147.
2. Зашифрование сессионного ключа.
2.1 Создание шифратора для зашифрования ключа. Применяется алгоритм трансформации "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001". Cоздается эфемерный ключ, который согласуется с открытым ключом получателя, и формируется ключ согласования (на котором будет зашифрован сессионный ключ);
2.2 Создание блока KeyInfo с сертификатом;
2.3 Шифрование сессионного ключа происходит с помощью указанного асимметричного ключа (ГОСТ Р 34.10). Cессионный ключ используется для шифрования данных и в свою очередь так же шифруется.
CALG_DH_GR3410_12_256_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (256 бит).
CALG_DH_GR3410_12_512_EPHEM - идентификатор алгоритма обмена ключей по Диффи-Хеллману на базе закрытого ключа эфемерной пары. Открытый ключ получается по ГОСТ Р 34.10 2012 (512 бит).
3. В блоке <soapenv:Header> в подписанном запросе добавляется блок <X509Certificate>, который содержит публичный сертификат пользователя в формате x509v3 (кодировке base64).
4. Зашифровывание документа.
4.1 Создание шифратора в режиме зашифрования. Применяется алгоритм
"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147". Возможные параметры шифратора GostJCE/CBC/ISO10126Padding;
4.2 Добавление зашифрованного сессионного ключа, полученного ранее (добавление блока KeyInfo;
4.3 Зашифровывание документа на сессионном ключе.

вопрос сразу по 1-му пункту - как создать случайный сессионный ключ?
есть объект pycades.SymmetricAlgorithm(), у этого объекта есть метод GenerateKey() - но он возвращает None. тот ли объект я взяла для создания случайного сессионного ключа?
Offline Baki111  
#2 Оставлено : 8 февраля 2023 г. 8:12:32(UTC)
Baki111

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

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

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 1 раз в 1 постах
Решился ли вопрос? Как решился? Смог ли pycades?

Нахожусь на этом же этапе.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.