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

Уведомление

Icon
Error

6 Страницы«<23456>
Опции
К последнему сообщению К первому непрочитанному
Offline ostapw  
#31 Оставлено : 14 сентября 2023 г. 10:33:16(UTC)
ostapw

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

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

И вопрос остался открытым - можно ли зашифровать сообщение для ФСС при помощи плагина?
Offline SkySandy  
#32 Оставлено : 25 сентября 2023 г. 11:32:42(UTC)
SkySandy

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 14 раз в 9 постах
Автор: Baki111 Перейти к цитате
Как в питоне (pycades) устанавливать режим шифрования?
Делаю так:

encryptor = pycades.SymmetricAlgorithm()
encryptor.GenerateKey(pycades.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89)
...
encryptor.SetMode(1)
encryptor.SetPadding(4)

...


Выбрасывает такую ошибку:
...
AttributeError: 'pycades.SymmetricAlgorithm' object has no attribute 'SetMode'

КриптоПро и всё остальное - последней опубликованной версии.
pycades перескачан, пересобран. Версия 0.1.44290

В документации инструкций нет. Как называются методы в pycades? Как с этим работать?



Да все очень просто. Версия которая скачивается с сайта https://cryptopro.ru/sit...ades/pycades/pycades.zip 0.1.44290 она от 24.01.2023
Разумеется не о каких новых SetPadding и SetMode она не знает (они добавлены через полгода после нее)
Если проект для работы с Криптопро из python не заброшен в фирме Криптопро, то просите их что бы они привели его в соответствие с новой реальностью )))
Выше только звезды
Offline Евгений111  
#33 Оставлено : 25 сентября 2023 г. 11:38:03(UTC)
Евгений111

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: SkySandy Перейти к цитате

Да все очень просто. Версия которая скачивается с сайта https://cryptopro.ru/sit...ades/pycades/pycades.zip 0.1.44290 она от 24.01.2023
Разумеется не о каких новых SetPadding и SetMode она не знает (они добавлены через полгода после нее)

А что с браузерным плагином, не в курсе? Тоже надо запрашивать приватно?
Offline SkySandy  
#34 Оставлено : 2 октября 2023 г. 12:32:58(UTC)
SkySandy

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 14 раз в 9 постах
Автор: Евгений111 Перейти к цитате
Автор: SkySandy Перейти к цитате

Да все очень просто. Версия которая скачивается с сайта https://cryptopro.ru/sit...ades/pycades/pycades.zip 0.1.44290 она от 24.01.2023
Разумеется не о каких новых SetPadding и SetMode она не знает (они добавлены через полгода после нее)

А что с браузерным плагином, не в курсе? Тоже надо запрашивать приватно?


Там внесли эти функции, но он все равно в нерабочем состоянии
Выше только звезды
Offline SkySandy  
#35 Оставлено : 2 октября 2023 г. 12:35:06(UTC)
SkySandy

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 14 раз в 9 постах
На шифрацию сообщений для ФСС библиотека не работает. Сейчас разобрался почему

Дело оказалось вот в чем:

Для генерации случайный ключ для использования в алгоритме симметричного шифрования используется функция GenerateKey
https://docs.cryptopro.r...tricalgorithmgeneratekey

Рассмотрим поподробнее что она генерирует, для этого получим этот случайный ключ методом ExportKey

https://docs.cryptopro.r...metricalgorithmexportkey

И увидим следующую картину:

"31 2E 32 2E 36 34 33 2E 37 2E 31 2E 32 2E 35 2E 31 2E 31 00:0A 20 00 00 49 2E 00 00 4D 41 47 31 00 02 00 00 30 13 06 07 2A 85 03 02 02 24 00 06 08 2A 85 03 07 01 01 02 02 C4 52 56 D2 CB 5C A6 ED 81 75 73 B3 48 DC E7 52 44 46 3C E6 72 47 A5 EC 90 81 01 3B C6 F1 27 5E BF BF D8 B6 70 DC 4C 8A A0 41 23 C4 E8 CE 01 BB 5A 43 24 CF EF 16 32 7A 91 CB DA B4 90 E0 49 34:01 20 00 00 1E 66 00 00 FD 51 4A 37 1E 66 00 00 9D 61 3F 79 98 32 74 FD 6C 33 C1 B5 09 E5 BE FC 57 80 EF 66 7D 94 61 41 A3 6E CA DD 75 F3 DD 75 80 C8 6C 4C 54 CA AF DC 95 47 4E CC 30 09 06 07 2A 85 03 02 02 1F 01"

В первом блоке перед двоеточием стоит “31 2E 32 2E 36 34 33 2E 37 2E 31 2E 32 2E 35 2E 31 2E 31 00” это '1.2.643.7.1.2.5.1.1' - Параметры шифрования ключа обмена. Тут все правильно

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

Обратим внимание на конец этого блока “30 09 06 07 2A 85 03 02 02 1F 01” смотря формат симетричного ключа тут находятся “параметры алгоритма шифрования ГОСТ 28147-89 Содержит ASN1 структуру в DER кодировке, определяющую параметры алгоритма шифрования ГОСТ 28147-89”

А теперь посмотрим с каким же параметром был сгенерирован симетричный ключ.
“06 07 2A 85 03 02 02 1F 01” соответсвует '1.2.643.2.2.31.1'

И мы увидели страшное вместо '1.2.643.7.1.2.5.1.1' используется '1.2.643.2.2.31.1'

Обратимся к статье https://ru.wikipedia.org...%9E%D0%A1%D0%A2_28147-89

Идентификатор: id-Gost28147-89-CryptoPro-A-ParamSet
OID: 1.2.643.2.2.31.1
Данный узел замен используется криптопровайдером CryptoPRO CSP по умолчанию. Также данный узел замен используется в ПО «Верба-О»[14].

Идентификатор: id-tc26-gost-28147-param-Z
OID: 1.2.643.7.1.2.5.1.1
Данный узел зафиксирован как рекомендуемый в методических рекомендациях ТК26[16], и как единственный в новой ревизии стандарта ГОСТ Р 34.12-2015[17] и ГОСТ 34.12-2018[18], а также RFC 7836 и RFC 8891.

То есть программисты Криптопро сгенерировали случайный ключ для использования в алгоритме симметричного шифрования вместо ТК26 который рекомендуется росстандартом в своем любимом OID: 1.2.643.2.2.31.1 при этом нам показывают что ключ сгенерировался в OID: 1.2.643.7.1.2.5.1.1 ( я не даром начал описание ошибки с описания первого блока перед двоеточием)

Остальное просто.
Почему мы НЕ можем зашифровать сообщение ФСС? Потому что ФСС как и все органы власти Российской Федерации ожидают узел замены на основании ТК26 как рекомендованного в методических рекомендациях. Соответственно не могут расшифровать наше сообщение на id-Gost28147-89-CryptoPro-A-ParamSet.

Почему мы можем расшифровать сообщение ФСС? Тут тоже все просто. Слава богу в этом случае программисты просто загружают Ключ обмена полученный из ФСС и дешефруют сообщение на нем.

Теперь обращение к программистам КриптоПро. Обратите на это внимание и исправьте в будущей версии
Выше только звезды
Offline Евгений111  
#36 Оставлено : 2 октября 2023 г. 13:42:32(UTC)
Евгений111

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: SkySandy Перейти к цитате
Там внесли эти функции, но он все равно в нерабочем состоянии

В общем, по тому, что я сам нарыл на данный момент (возможно, и Вам будет интересно):
- библиотека GostCryptography (которую пользует сам ФСС) чудесно шифрует и дешифрует. Проблема в том, что ее нельзя прикрутить к браузеру. Но операции, НЕ требующие закрытого ключа (а шифрование фактически относится к таковым, поскольку ключ отправителя обычно эфемерный) - она прекрасно делает, т.е. на серверной части она вполне жизнеспособна. К сожалению, только под "классическим" дотнетом. Версия под кор - неживая и судя по прогрессу ее разработки, вряд ли это поменяется
- эта же библиотека чудесно разбирает ExchangeInfo (т.е. бинарную свалку из сессионного и публичного ключа вместе с параметрами в CipherValue), и умеет формировать ее обратно - но именно в формате Xml, а не том, что нужно плагину/капикому
- с тем, что отправлял в плагин я сам, я немного разобрался - первый параметр надо было отправлять в виде собственно строки алгоритма с нулем на конце, и все это в хекс. С публичным и сессионным ключами сложнее, потому что там достаточно задуренные блобы, и даже тут на форуме есть минимум полдюжины вариантов, как это "надо". И да, ни один из них не работает. Везде или "плохие данные", или "набор ключей не найден"
- безотносительно всего вышеперечисленного, SetMode/SetPadding с рекомендуемыми параметрами выдает ошибку - судя по всему, плагин тупо не в курсе этих новых значений

Вот пока что как-то так.
Offline Максим Коллегин  
#37 Оставлено : 2 октября 2023 г. 16:44:19(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Добрый день, спасибо за исследование.
Какая у вас версия плагина?
Кажется, мы подобное недавно исправляли.
Знания в базе знаний, поддержка в техподдержке
Offline Евгений111  
#38 Оставлено : 2 октября 2023 г. 16:57:47(UTC)
Евгений111

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

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

Сказал(а) «Спасибо»: 2 раз
Вопрос был ко мне или к SkySandy? :)

В любом случае, пользуясь появлением сотрудника КриптоПро, давайте уточним по параметрам:

- правильно ли я понимаю, что в блоке "[параметры]:[публичный ключ]:[сессионный ключ]", первая часть будет константой, и выглядеть ровно вот так:
31 2E 32 2E 36 34 33 2E 37 2E 31 2E 32 2E 35 2E 31 2E 31 00 (оид алгоритма в виде null-terminated string, перебитый в хекс)

- вторая часть будет состоять из заголовка
0A 20 00 00 49 2E 00 00
4D 41 47 31 00 02 00 00
30 13 06 07 2A 85 03 02
02 24 00 06 08 2A 85 03
07 01 01 02 02

+ публичный ключ

- третья часть будет состоять из заголовка и футера, с шифрованным сессионным ключом, ukm и mac между ними
01 20 00 00 1E 66 00 00 FD 51 4A 37 1E 66 00 00
ключ, укм и мак
30 09 06 07 2A 85 03 02 02 1F 01

- в плагине, используются именно методы SetMode(...)/SetPadding(...), а не что-нибудь креативное в стиле setprop_KP_MODE и setprop_KP_PADDING?

Да, плагин и криптопро самые что ни на есть последние 5.0.12922 КС1, плагин 1.2.13 (если это нужная версия), js прямо линком с вашей демо-страницы.
Спасибо
Offline Андрей *  
#39 Оставлено : 2 октября 2023 г. 17:04:17(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: Евгений111 Перейти к цитате


Да, плагин и криптопро самые что ни на есть последние 5.0.12922 КС1, плагин 1.2.13 (если это нужная версия), js прямо линком с вашей демо-страницы.
Спасибо


Здравствуйте.


Странная версия плагина,откуда информация?

например:
https://www.cryptopro.ru...ge/cades_bes_sample.html
Версия плагина: 2.0.14815

Отредактировано пользователем 2 октября 2023 г. 17:04:49(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline SkySandy  
#40 Оставлено : 2 октября 2023 г. 17:18:09(UTC)
SkySandy

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

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

Сказал «Спасибо»: 1 раз
Поблагодарили: 14 раз в 9 постах
Автор: Максим Коллегин Перейти к цитате
Добрый день, спасибо за исследование.
Какая у вас версия плагина?
Кажется, мы подобное недавно исправляли.


У меня самая последняя версия
Информация отсюда
https://www.cryptopro.ru...ades_xmldsig_sample.html

Версия плагина: 2.0.14892
Версия криптопровайдера: 4.0.9963
Криптопровайдер: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Платформа: Windows
UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36

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