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

Уведомление

Icon
Error

36 Страницы«<7891011>»
Опции
К последнему сообщению К первому непрочитанному
Offline Gelious  
#81 Оставлено : 29 июля 2020 г. 10:45:44(UTC)
Gelious

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

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

Подскажите, как можно на стороне .net core проверить подпись в виде хэша, который создается плагином криптопро для браузеров? Заранее извиняюсь, если вдруг тот вопрос был уже. Не нашел что-то ответа. Или не понял его.
Offline Артём Макаров  
#82 Оставлено : 5 августа 2020 г. 10:08:18(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Автор: Gelious Перейти к цитате
Подскажите, как можно на стороне .net core проверить подпись в виде хэша, который создается плагином криптопро для браузеров? Заранее извиняюсь, если вдруг тот вопрос был уже. Не нашел что-то ответа. Или не понял его.


Для начала вам нужно разобраться, какой именно тип подписи формируется через плагин.

Если Cades - то способ проверки на Linux это использование PInvoke на cades в csp.

Если cms или xml - можно проверить, используя наш форк. Примеры проверки cms и xml аналогичны соответствующим примерам из КриптоПро.Net sdk (Классы SignedCms или SignedXml).

Техническую поддержку оказываем тут
Наша база знаний
Offline thoth  
#83 Оставлено : 8 августа 2020 г. 12:33:48(UTC)
thoth

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 2 раз в 2 постах
Добрый день. Создал сертификат используя проект DotnetCoreSampleProject

Получился сертификат:
Issuer : CN=Experimental Issuing Authority
Subject : CN=Experimental Issuing Authority
Serial : 0x2F85BDF0478522C5
SHA1 Hash : 790eac451d28445715b74f6aae058efc1ae8e3d3
SubjKeyID : a49e62e27489710efb1ac170c50fa5fb12883b00
Signature Algorithm : ГОСТ Р 34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 24/06/2020 09:20:22 UTC
Not valid after : 08/08/2021 09:20:22 UTC
PrivateKey Link : Yes
Container : 2739bc65-1506-4da6-9388-993e76bd8408
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0

Подскажите, почему Signature Algorithm : ГОСТ Р 34.10-2001, не должен ли он быть ГОСТ Р 34.10-2012?
thanks 1 пользователь поблагодарил thoth за этот пост.
Артём Макаров оставлено 12.08.2020(UTC)
Offline Андрей *  
#84 Оставлено : 8 августа 2020 г. 15:59:05(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
Автор: thoth Перейти к цитате
Добрый день. Создал сертификат используя проект DotnetCoreSampleProject

Получился сертификат:
Issuer : CN=Experimental Issuing Authority
Subject : CN=Experimental Issuing Authority
Serial : 0x2F85BDF0478522C5
SHA1 Hash : 790eac451d28445715b74f6aae058efc1ae8e3d3
SubjKeyID : a49e62e27489710efb1ac170c50fa5fb12883b00
Signature Algorithm : ГОСТ Р 34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 24/06/2020 09:20:22 UTC
Not valid after : 08/08/2021 09:20:22 UTC
PrivateKey Link : Yes
Container : 2739bc65-1506-4da6-9388-993e76bd8408
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0

Подскажите, почему Signature Algorithm : ГОСТ Р 34.10-2001, не должен ли он быть ГОСТ Р 34.10-2012?


Должен, как создавали сертификат? Обращались к тестовому УЦ с ГОСТ 2001?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#85 Оставлено : 8 августа 2020 г. 16:00:09(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2207 раз в 1722 постах
Автор: thoth Перейти к цитате
Добрый день. Создал сертификат используя проект DotnetCoreSampleProject

Получился сертификат:
Issuer : CN=Experimental Issuing Authority
Subject : CN=Experimental Issuing Authority
Serial : 0x2F85BDF0478522C5
SHA1 Hash : 790eac451d28445715b74f6aae058efc1ae8e3d3
SubjKeyID : a49e62e27489710efb1ac170c50fa5fb12883b00
Signature Algorithm : ГОСТ Р 34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 24/06/2020 09:20:22 UTC
Not valid after : 08/08/2021 09:20:22 UTC
PrivateKey Link : Yes
Container : 2739bc65-1506-4da6-9388-993e76bd8408
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0

Подскажите, почему Signature Algorithm : ГОСТ Р 34.10-2001, не должен ли он быть ГОСТ Р 34.10-2012?



Signature Algorithm : ГОСТ Р 34.10-2001 = это алгоритм подписи УЦ, а не вашего сертификата,
в вашем используется 2012. Используйте УЦ с ГОСТ 2012.
Техническую поддержку оказываем тут
Наша база знаний
Offline thoth  
#86 Оставлено : 9 августа 2020 г. 9:16:15(UTC)
thoth

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 2 раз в 2 постах
Автор: Андрей * Перейти к цитате
Автор: thoth Перейти к цитате
Добрый день. Создал сертификат используя проект DotnetCoreSampleProject

Получился сертификат:
Issuer : CN=Experimental Issuing Authority
Subject : CN=Experimental Issuing Authority
Serial : 0x2F85BDF0478522C5
SHA1 Hash : 790eac451d28445715b74f6aae058efc1ae8e3d3
SubjKeyID : a49e62e27489710efb1ac170c50fa5fb12883b00
Signature Algorithm : ГОСТ Р 34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 24/06/2020 09:20:22 UTC
Not valid after : 08/08/2021 09:20:22 UTC
PrivateKey Link : Yes
Container : 2739bc65-1506-4da6-9388-993e76bd8408
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0

Подскажите, почему Signature Algorithm : ГОСТ Р 34.10-2001, не должен ли он быть ГОСТ Р 34.10-2012?


Должен, как создавали сертификат? Обращались к тестовому УЦ с ГОСТ 2001?


Я использовал метод из примера:

/// <summary>
/// Создать сертификат ГОСТ 34.10.2012 256
/// </summary>
private static void MakeMeCert()
{
using (var parent = new Gost3410_2012_256CryptoServiceProvider())
{
var parentReq = new CertificateRequest(
"CN=Experimental Issuing Authority",
parent,
HashAlgorithmName.Gost3411_2012_256);

parentReq.CertificateExtensions.Add(
new X509BasicConstraintsExtension(true, false, 0, true));

parentReq.CertificateExtensions.Add(
new X509SubjectKeyIdentifierExtension(parentReq.PublicKey, false));

using (var parentCert = parentReq.CreateSelfSigned(
DateTimeOffset.UtcNow.AddDays(-45),
DateTimeOffset.UtcNow.AddDays(365)))
{
byte[] certData = parentCert.Export(X509ContentType.Pfx, "1");
File.WriteAllBytes(@"MyCert.pfx", certData);
}
}
}

Offline Артём Макаров  
#87 Оставлено : 10 августа 2020 г. 9:06:36(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Автор: thoth Перейти к цитате
Автор: Андрей * Перейти к цитате
Автор: thoth Перейти к цитате
Добрый день. Создал сертификат используя проект DotnetCoreSampleProject

Получился сертификат:
Issuer : CN=Experimental Issuing Authority
Subject : CN=Experimental Issuing Authority
Serial : 0x2F85BDF0478522C5
SHA1 Hash : 790eac451d28445715b74f6aae058efc1ae8e3d3
SubjKeyID : a49e62e27489710efb1ac170c50fa5fb12883b00
Signature Algorithm : ГОСТ Р 34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 24/06/2020 09:20:22 UTC
Not valid after : 08/08/2021 09:20:22 UTC
PrivateKey Link : Yes
Container : 2739bc65-1506-4da6-9388-993e76bd8408
Provider Name : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info : ProvType: 80, KeySpec: 1, Flags: 0x0

Подскажите, почему Signature Algorithm : ГОСТ Р 34.10-2001, не должен ли он быть ГОСТ Р 34.10-2012?


Должен, как создавали сертификат? Обращались к тестовому УЦ с ГОСТ 2001?


Я использовал метод из примера:

/// <summary>
/// Создать сертификат ГОСТ 34.10.2012 256
/// </summary>
private static void MakeMeCert()
{
using (var parent = new Gost3410_2012_256CryptoServiceProvider())
{
var parentReq = new CertificateRequest(
"CN=Experimental Issuing Authority",
parent,
HashAlgorithmName.Gost3411_2012_256);

parentReq.CertificateExtensions.Add(
new X509BasicConstraintsExtension(true, false, 0, true));

parentReq.CertificateExtensions.Add(
new X509SubjectKeyIdentifierExtension(parentReq.PublicKey, false));

using (var parentCert = parentReq.CreateSelfSigned(
DateTimeOffset.UtcNow.AddDays(-45),
DateTimeOffset.UtcNow.AddDays(365)))
{
byte[] certData = parentCert.Export(X509ContentType.Pfx, "1");
File.WriteAllBytes(@"MyCert.pfx", certData);
}
}
}



День добрый.
Была ошибка - неправильно проставлялся OID для сертификата. Сейчас исправили. Можно пробовать ночную сборку.
https://ci.appveyor.com/...o/corefx/builds/34567607

(visual studio (windows) / ubuntu) -> (artifacts)
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Артём Макаров за этот пост.
thoth оставлено 11.08.2020(UTC)
Offline thoth  
#88 Оставлено : 11 августа 2020 г. 18:22:34(UTC)
thoth

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

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

Сказал(а) «Спасибо»: 6 раз
Поблагодарили: 2 раз в 2 постах
Автор: Артём Макаров Перейти к цитате

Была ошибка - неправильно проставлялся OID для сертификата. Сейчас исправили. Можно пробовать ночную сборку.
https://ci.appveyor.com/...o/corefx/builds/34567607

(visual studio (windows) / ubuntu) -> (artifacts)


Вы изменили на Oids.Gost3410_2012_256 и Oids.Gost3410_2012_512,
которые в свою очередь соответствуют константам:

public const string Gost3410_2012_256 = GostConstants.OID_CP_GOST_R3410_12_256;
public const string Gost3410_2012_512 = GostConstants.OID_CP_GOST_R3410_12_512;

Константы соответствуют:

/// <summary>
/// OID алгоритма открытого ключа/цифровой подписи ГОСТ Р 34.10-2012 256
/// </summary>
internal const string OID_CP_GOST_R3410_12_256 = "1.2.643.7.1.1.1.1";

/// <summary>
/// OID алгоритма открытого ключа/цифровой подписи ГОСТ Р 34.10-2012 512
/// </summary>
internal const string OID_CP_GOST_R3410_12_512 = "1.2.643.7.1.1.1.2";

Вопрос:
Почему не вот эти oid-ы:

/// <summary>
/// OID алгоритма цифровой подписи ГОСТ Р 34.10-2012 256 (используется как SignatureAlgorithm в сертификате)
/// </summary>
internal const string OID_CP_GOST_R3411_12_256_R3410 = "1.2.643.7.1.1.3.2";

/// <summary>
/// OID алгоритма цифровой подписи ГОСТ Р 34.10-2012 512 (используется как SignatureAlgorithm в сертификате)
/// </summary>
internal const string OID_CP_GOST_R3411_12_512_R3410 = "1.2.643.7.1.1.3.3";




thanks 1 пользователь поблагодарил thoth за этот пост.
Артём Макаров оставлено 12.08.2020(UTC)
Offline Артём Макаров  
#89 Оставлено : 12 августа 2020 г. 8:58:59(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Да вы правы.

Изначально был проставлен OID GOST3410EL, заменил на его аналоги для 2012 ГОСТов. Однако для сертификатов необходимо использовать иные OID, которые вы привели. Исправили на корректные (в том числе и для 2001 ГОСТа).

https://github.com/CryptoPro/corefx/issues/30

После сборки можно пробовать - https://ci.appveyor.com/...o/corefx/builds/34611550

Спасибо!
Техническую поддержку оказываем тут
Наша база знаний
Offline Gelious  
#90 Оставлено : 12 августа 2020 г. 16:28:18(UTC)
Gelious

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

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

Автор: Артём Макаров Перейти к цитате
Автор: Gelious Перейти к цитате
Подскажите, как можно на стороне .net core проверить подпись в виде хэша, который создается плагином криптопро для браузеров? Заранее извиняюсь, если вдруг тот вопрос был уже. Не нашел что-то ответа. Или не понял его.


Для начала вам нужно разобраться, какой именно тип подписи формируется через плагин.

Если Cades - то способ проверки на Linux это использование PInvoke на cades в csp.

Если cms или xml - можно проверить, используя наш форк. Примеры проверки cms и xml аналогичны соответствующим примерам из КриптоПро.Net sdk (Классы SignedCms или SignedXml).



У нас на клиенте используется для подписи модели json плагин КриптоПро. И на сервере требуется расшифровать подпись, чтоб получить из нее данные. Не понятно, какую библиотеку для этого использовать и как. Ну или какой-нибудь сторонний апи. Насколько я понимаю, сформированная подпись в формате Pkcs7

Отредактировано пользователем 13 августа 2020 г. 10:07:50(UTC)  | Причина: Не указана

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