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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline EEElice  
#1 Оставлено : 4 июля 2019 г. 16:05:04(UTC)
EEElice

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

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

Сказал(а) «Спасибо»: 7 раз
sertif.png (40kb) загружен 13 раз(а).

Я могу пропарсить сертификат и извлечь оттуда открытый ключ. Но попытки проверить подпись, сделанную этим сертификатом, дают отрицательный результат - значения не совпадают.

pitonvyvod.png (54kb) загружен 12 раз(а).
Я полагаю, что это может происходить из-за:

  • Неправильно извлечен ключ
  • Неправильно выбраны параметры эпилептической кривой (Прогнал все возможные варианты, вряд ли оно)
  • Неправильно извлечена подпись


Соответственно несколько вопросов:

  • Что это за избыточные байты 04 40? Они есть во всех сертификатах, но остальные части открытых ключей разные. Нужно ли их учитывать и нужно ли дополнительно преобразовывать ключ, если он после парсинга имеет тот же вид, что и в окне на изображении:b'\x80\x8b\x73...' (без учета байтов 04 40)
  • Длина ключа без них 64 байта, с ними - 66. В программе проверки подписи pygost ключ разбивается на 2 части, т.е. на 2 по 256 байт (в моем случае вариант ГОСТ Р 34.10-2012 256)
  • Если открыть .sig файл, то самые последние его 64 байта (512 бит) и есть подпись, по идее ошибки в этом нет

notepade.png (239kb) загружен 14 раз(а).
Offline two_oceans  
#2 Оставлено : 5 июля 2019 г. 9:49:12(UTC)
two_oceans

Статус: Эксперт

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 394 раз в 366 постах
Добрый день.
04 40 это ASN структура "обертка" в которой лежит 64 байта собственно ключа. В случае более длинного ключа 128 байт эта обертка может выглядеть как 04 81 80.
Не видя программу сложно сказать точно, но попробую предположить "скользкие" места.

1. Если ключ делится пополам, то скорее всего 04 40 надо убрать до деления пополам. Если у Вас в процессе обработки 04 40 уже отброшены перед делением, то наверно уже все нормально.
2. Параметры кривой в сертификате напрямую не указаны, но есть оиды наборов параметров (при просмотре сертификата стандартным средство виндоуз как на первом скриншоте их не видно, так как они необязательные и разные в разных алгоритмах. Однако они есть между видимым алгоритмом открытого ключа и видимым значением ключа, при генерации ключа в КриптоПро. При генерации в Континенте, например, оидов параметров нет). Если хотите точно убедиться в параметрах, то нужно также распарсить оиды и посмотреть сами значения из наборов параметров по оиду (смотреть в стандартах гост). Ну и сам оид алгоритма открытого ключа наверно тоже понадобится.
3. Подпись может быть разная, например, могли быть подписаны не сами данные, а их атрибуты внутри подписи (в числе подписанных атрибутов может быть хэш от самих данных). Если такую подпись пытаться проверить по самим данным, то значения конечно не сойдутся и нужно использовать более сложный алгоритм проверки - сначала проверить подпись атрибутов, потом совпадение хэша данных со значением в атрибуте.
4. Открывая двоичный файл (как подпись на третьем снимке) в текстовом редакторе ее можно повредить, случайным нажатием сохранить или автосохранением, так как текстовые редакторы обычно меняют переводы строк (символы с кодами 10 13) автоматически, а в двоичном файле их менять не нужно. Рекомендуется открывать такие файлы даже на просмотр в редакторах двоичных данных, самый распространенный Far manager.
Offline EEElice  
#3 Оставлено : 5 июля 2019 г. 11:10:41(UTC)
EEElice

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

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

Сказал(а) «Спасибо»: 7 раз
Автор: two_oceans Перейти к цитате
Добрый день.
04 40 это ASN структура "обертка" в которой лежит 64 байта собственно ключа. В случае более длинного ключа 128 байт эта обертка может выглядеть как 04 81 80.
Не видя программу сложно сказать точно, но попробую предположить "скользкие" места.

1. Если ключ делится пополам, то скорее всего 04 40 надо убрать до деления пополам. Если у Вас в процессе обработки 04 40 уже отброшены перед делением, то наверно уже все нормально.
2. Параметры кривой в сертификате напрямую не указаны, но есть оиды наборов параметров (при просмотре сертификата стандартным средство виндоуз как на первом скриншоте их не видно, так как они необязательные и разные в разных алгоритмах. Однако они есть между видимым алгоритмом открытого ключа и видимым значением ключа, при генерации ключа в КриптоПро. При генерации в Континенте, например, оидов параметров нет). Если хотите точно убедиться в параметрах, то нужно также распарсить оиды и посмотреть сами значения из наборов параметров по оиду (смотреть в стандартах гост). Ну и сам оид алгоритма открытого ключа наверно тоже понадобится.
3. Подпись может быть разная, например, могли быть подписаны не сами данные, а их атрибуты внутри подписи (в числе подписанных атрибутов может быть хэш от самих данных). Если такую подпись пытаться проверить по самим данным, то значения конечно не сойдутся и нужно использовать более сложный алгоритм проверки - сначала проверить подпись атрибутов, потом совпадение хэша данных со значением в атрибуте.
4. Открывая двоичный файл (как подпись на третьем снимке) в текстовом редакторе ее можно повредить, случайным нажатием сохранить или автосохранением, так как текстовые редакторы обычно меняют переводы строк (символы с кодами 10 13) автоматически, а в двоичном файле их менять не нужно. Рекомендуется открывать такие файлы даже на просмотр в редакторах двоичных данных, самый распространенный Far manager.


1. 04 40 убираю;
2. попробую пропарсить, мб дело как раз в этом;
3. я проверял, подписываются данные целиком, точнее сказать хэш, который рассчитывается по ГОСТ 34.11-2012, я проверял;
4. если бы что-то похожее происходило, то я не смог бы без ошибок пропарсить сертификат, подпись и т.д., потому что я аккуратно слежу за этим.

Отредактировано пользователем 5 июля 2019 г. 14:50:07(UTC)  | Причина: Не указана

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