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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline skart84  
#1 Оставлено : 12 декабря 2019 г. 16:56:04(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Подскажите, почему могут отличаться подписи с сайта и подпись, полученная с помощью cadescom.dll. Это нормально?
Вопрос поднял в связи с тем, что не проходит верификация подписанного сообщения на стороннем сервисе (Честный знак).

Тестовый сертификат, картинка ниже.

1. Подпись, полученная на сайте https://www.cryptopro.ru...ge/cades_bes_sample.html
Podpis'_KriptoPro.PNG (76kb) загружен 12 раз(а).

MIIJmQYJKoZIhvcNAQcCoIIJijCCCYYCAQExDjAMBggqhQMHAQECAwUAMC0GCSqGSIb3DQEHAaAg
BB5BQUxDQlNEVkpQREZXR0FVSUtaWkNVWVZPR1BDVU+gggZmMIICczCCAiKgAwIBAgIQN0GIgvU5
pZJK1E494ALqPDAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8u
cnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExD
MSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTkwNTI3MDcyNDI2WhcNMjQw
NTI2MDczNDA1WjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UE
BhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNVBAMT

2. Подпись, полученная с помощью cadescom.dll. Ниже часть кода:

Код:
byte[] bytes = Encoding.UTF8.GetBytes("AALCBSDVJPDFWGAUIKZZCUYVOGPCUO");
 string base64String = Convert.ToBase64String(bytes);

 signer.Certificate = certificate;         
 signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
 signedData.Content = base64String;

 signedMessage = signedData.SignCades(signer, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
 signedData.VerifyCades(signedMessage, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false); 


Подпись присоединенная (bDettached = false)

MIIHIgYJKoZIhvcNAQcCoIIHEzCCBw8CAQExDjAMBggqhQMHAQECAwUAMC0GCSqGSIb3DQEHAaAgBB5BQUxDQlNEVkpQREZXR0FVSUtaWkNVWVZPR1BDVU+gggPvMIID6zCCA5qgAwIBAgITEgA+I3UNZzKuNeMnegABAD4jdTAIBgYqhQMCAgMwfzEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTkxMjEwMTQwMjA4WhcNMjAwMzEwMTQxMjA4WjCBqzEbMBkGCSqGSIb3DQEJARYMdGVzdEB0ZXN0LnJ1MS8wLQYDVQQDDCbQqNC70LXQsyDQkNC90L3QsCDQk
Offline Александр Лавник  
#2 Оставлено : 12 декабря 2019 г. 17:02:21(UTC)
Александр Лавник

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

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

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

См. информацию по ссылке.
Техническую поддержку оказываем тут
Наша база знаний
Offline skart84  
#3 Оставлено : 12 декабря 2019 г. 17:08:39(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Начальная часть (то что выделено желтым) постоянно такая, сколько бы раз ни нажимал "Подписать". И она отличается.То что меняется хвост - понятно
Offline skart84  
#4 Оставлено : 12 декабря 2019 г. 17:10:02(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Вопрос не в том, почему подпись каждый раз разная. А почему она отличается от подписи, полученной через cadescom.dll (используется тот же самый сертификат, те же параметры)
Offline Андрей Писарев  
#5 Оставлено : 12 декабря 2019 г. 17:46:49(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
Здравствуйте.
Опишите подробнее.
Какой вариант принимает ЧЗ?
Какая ошибка?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#6 Оставлено : 12 декабря 2019 г. 17:54:44(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
Желтым выделено - это разница в ASN.1.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#7 Оставлено : 12 декабря 2019 г. 18:00:10(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
Snimok ehkrana ot 2019-12-12 18-59-02.png (51kb) загружен 12 раз(а).

plugin.txt (5kb) загружен 2 раз(а).

cades.txt (4kb) загружен 2 раз(а).

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#8 Оставлено : 12 декабря 2019 г. 18:03:46(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
p.s.
Прикладывайте в дальнейшем файлы, а не часть текста из base64
Техническую поддержку оказываем тут
Наша база знаний
Offline skart84  
#9 Оставлено : 3 января 2020 г. 18:42:39(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Спасибо всем за ответы, но мне так и не удалось получить токен авторизации от сервиса Честный знак. Написал им в поддержку,но пока молчат.
И до конца так и не понятно, почему все-таки подпись с сайта https://www.cryptopro.ru...ge/cades_bes_sample.html отличается от подписи, полученной cadescom.dll (отличия уже в начальных символах)

Во вложении обе подписи для сравнения для строки FEVXKQOJHBPSIWLHEEQUXVZIKFNFEI.
Podpis' s sajjta.txt (7kb) загружен 3 раз(а). Podpis' cadescom.txt (5kb) загружен 3 раз(а).

Что интересно, попытался передать в сервис подпись с сайта (предварительно удалив спецсимволы) - сервис ЧЗ все-равно говорит что "Несанкционированный доступ".

Можно как-то убедиться что с тестовым сертификатом\сгенерированной подписью все ОК и проблема либо с кодом либо еще с чем-то.

Спасибо!

На всякий случай прикладываю код:

Код:
//get random data
            var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://demo.fashion.crpt.ru/api/v3/auth/cert/key");

            httpWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method = "GET";

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                result = streamReader.ReadToEnd();
            }
            jsonSettings.Formatting = Formatting.Indented;
            RandomData randomData = JsonConvert.DeserializeObject<RandomData>(result, jsonSettings);

            byte[] bytes = Encoding.UTF8.GetBytes(randomData.data);
            string base64String = Convert.ToBase64String(bytes); //random data to base64 string

            signer.Certificate = certificate;
            //signer.Options = CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY;
            
            //sign by certificate
            signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
            signedData.Content = base64String; 
            signedDataStr = signedData.SignCades(signer, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
            signedDataStr = Regex.Replace(signedDataStr, @"\n|\r", "");

            //get auth token
            var httpWebRequestSign = (HttpWebRequest)WebRequest.Create("https://demo.fashion.crpt.ru/api/v3/auth/cert");

            httpWebRequestSign.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
            httpWebRequestSign.ContentType = "application/json";
            httpWebRequestSign.Method = "post";
            
            //post data
            message.uuid = randomData.uuid;
            message.data = signedDataStr;
            string json = JsonConvert.SerializeObject(message);

            using (var streamWriter = new StreamWriter(httpWebRequestSign.GetRequestStream()))
            {
                streamWriter.Write(json);
            }

            var httpResponseSign = (HttpWebResponse)httpWebRequestSign.GetResponse();
            using (var streamReader = new StreamReader(httpResponseSign.GetResponseStream()))
            {
                result = streamReader.ReadToEnd();
            }
Offline Андрей Писарев  
#10 Оставлено : 3 января 2020 г. 19:58:43(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2046 раз в 1586 постах
Автор: skart84 Перейти к цитате
Добрый день!

Спасибо всем за ответы, но мне так и не удалось получить токен авторизации от сервиса Честный знак. Написал им в поддержку,но пока молчат.
И до конца так и не понятно, почему все-таки подпись с сайта https://www.cryptopro.ru...ge/cades_bes_sample.html отличается от подписи, полученной cadescom.dll (отличия уже в начальных символах)


Ответ дан выше.
Там не символы, а структура с описанием (ASN.1, предлагаю с теорией ознакомиться),
указывается размер данных - он разный, поэтому байты в тех местах - разные и кодируются, соответственно, в base64 в "разные символы".
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.