Статус: Новичок
  Группы: Участники
 Зарегистрирован: 29.07.2020(UTC) Сообщений: 4   
	 
	
     | 
    
        
            
		      
                Подскажите, как можно на стороне .net core проверить подпись в виде хэша, который создается плагином криптопро для браузеров? Заранее извиняюсь, если вдруг тот вопрос был уже. Не нашел что-то ответа. Или не понял его. 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
  
	 
	
     | 
    
        
            
		      
                Автор: Gelious  Подскажите, как можно на стороне .net core проверить подпись в виде хэша, который создается плагином криптопро для браузеров? Заранее извиняюсь, если вдруг тот вопрос был уже. Не нашел что-то ответа. Или не понял его.  Для начала вам нужно разобраться, какой именно тип подписи формируется через плагин. Если Cades - то способ проверки на Linux это использование PInvoke на cades в csp.  Если cms или xml - можно проверить, используя наш форк. Примеры проверки cms и xml аналогичны соответствующим примерам из КриптоПро.Net sdk (Классы SignedCms или SignedXml).    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 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? 
            
	  
         
     | 
    
        
              1 пользователь поблагодарил thoth за этот пост.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Автор: 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?     | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Автор: 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.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 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);         }     } }  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
  
	 
	
     | 
    
        
            
		      
                Автор: 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)    | 
 | 
            
	 
        
    
    
        
              1 пользователь поблагодарил Артём Макаров за этот пост.  
     | 
    
        
            thoth оставлено 11.08.2020(UTC)
          
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 21.05.2017(UTC) Сообщений: 13  Сказал(а) «Спасибо»: 6 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Автор: Артём Макаров   Вы изменили на 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";   
            
	  
         
     | 
    
        
              1 пользователь поблагодарил thoth за этот пост.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
  
	 
	
     | 
    
         | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Новичок
  Группы: Участники
 Зарегистрирован: 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)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close