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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Чапаев  
#1 Оставлено : 3 декабря 2021 г. 10:13:30(UTC)
Чапаев

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте.
использую вот такую функцию для подписи секретного кода в ЕСИА и как оказалось подпись не соответствует формату ГОСТ.
в чем может быть дело?
Код:
protected string Sign2(string msg, string certName, ILogger logger)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);
            
            Gost3411_2012_256CryptoServiceProvider gost3411 = new Gost3411_2012_256CryptoServiceProvider();
            byte[] hashValue = gost3411.ComputeHash(bytes);
            gost3411.Clear();

            var signerCert = GetSignerCert(certName, logger);
            
            
            Gost3410_2012_256CryptoServiceProvider cert_key = signerCert.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
            var sign = cert_key.CreateSignature(hashValue);
            
            return Base64UrlEncoder.Encode(sign);
            
        }
Offline Андрей *  
#2 Оставлено : 3 декабря 2021 г. 10:20:07(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2208 раз в 1723 постах
Здравствуйте.

Автор: Чапаев Перейти к цитате
Здравствуйте.
использую вот такую функцию для подписи секретного кода в ЕСИА и как оказалось подпись не соответствует формату ГОСТ.
в чем может быть дело?
Код:
protected string Sign2(string msg, string certName, ILogger logger)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg);
            
            Gost3411_2012_256CryptoServiceProvider gost3411 = new Gost3411_2012_256CryptoServiceProvider();
            byte[] hashValue = gost3411.ComputeHash(bytes);
            gost3411.Clear();

            var signerCert = GetSignerCert(certName, logger);
            
            
            Gost3410_2012_256CryptoServiceProvider cert_key = signerCert.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
            var sign = cert_key.CreateSignature(hashValue);
            
            return Base64UrlEncoder.Encode(sign);
            
        }



1. Что именно ждёт ЕСИА (cms, raw, jwt)? Ссылка на документацию\выдержка\цитата
2. Именно RAW и в base64?
3. Нужен ли reverse байтов перед Base64UrlEncoder.Encode?

Техническую поддержку оказываем тут
Наша база знаний
Offline Чапаев  
#3 Оставлено : 3 декабря 2021 г. 11:08:32(UTC)
Чапаев

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

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

Сказал(а) «Спасибо»: 1 раз
вот выписка из их методических указаний
<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений следующих параметров HTTP–запроса: scope, timestamp, client_id, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к УЗ системы-клиента в ЕСИА;
по поводу остальных ваших вопросов я подсказать не могу
Offline Андрей *  
#4 Оставлено : 3 декабря 2021 г. 11:13:59(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2208 раз в 1723 постах
Автор: Чапаев Перейти к цитате
вот выписка из их методических указаний
<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений следующих параметров HTTP–запроса: scope, timestamp, client_id, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к УЗ системы-клиента в ЕСИА;
по поводу остальных ваших вопросов я подсказать не могу


Отлично.
Причем тогда здесь RAW-подпись получаемая от Gost3411_2012_256CryptoServiceProvider?

Использовать пример из SDK с CMS Detached

Техническую поддержку оказываем тут
Наша база знаний
Offline Чапаев  
#5 Оставлено : 3 декабря 2021 г. 13:10:11(UTC)
Чапаев

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

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

Сказал(а) «Спасибо»: 1 раз
извините вы про этот пример из sdk DetachedSignature.cs ?
Offline Андрей *  
#6 Оставлено : 3 декабря 2021 г. 13:40:30(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2208 раз в 1723 постах
Автор: Чапаев Перейти к цитате
извините вы про этот пример из sdk DetachedSignature.cs ?


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