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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline korshunovarina  
#1 Оставлено : 17 ноября 2017 г. 11:38:16(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Необходимо реализовать подпись по алгоритмам GOST R 34.11-94 и GOST R 34.10-2012. При создании и проверке подписи по сертификату с GOST R 34.11-94 все работает прекрасно. При проверке подписи сертификата GOST R 34.10-2012 возникает ошибка "Неправильное значение хеша".

Клиент:
Код:

function SignCreateHashData(hashToSign, certificateThumbprint) {

    var oCertificate = GetCertificateByThumbprint(certificateThumbprint);
    var providerName = oCertificate.PrivateKey.ProviderName;
    var algorithm;
    switch (providerName) {
    case "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider":
        algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
        break;
    case "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider":
        algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256;
        break;
    }
    var oHashedData = InitializeHashedData(algorithm, hashToSign);
    var sSignedMessage = SignCreateHashDataBase(oCertificate, oHashedData);

    return sSignedMessage;
}

function InitializeHashedData(hashAlg, sHashValue) {
    var oHashedData = CreateObject("CAdESCOM.HashedData");

    oHashedData.Algorithm = hashAlg;
    oHashedData.SetHashValue(sHashValue);

    return oHashedData;
}

function SignCreateHashDataBase(oCertificate, oHashedData) {
    var oSigner = CreateSigner(oCertificate);

    var oSignedData = CreateObject("CAdESCOM.CadesSignedData");

    var sSignedMessage;
    try {
        sSignedMessage = oSignedData.SignHash(oHashedData, oSigner, CADESCOM_CADES_BES);
    } catch (err) {
        throw GetErrorMessage(err);
    }

    return sSignedMessage;
}


Сервер:
Код:

        /// <summary>
        /// Проверяем отсоединенную подпись.
        /// </summary>
        /// <param name="signedData">Подписываемые данные.</param>
        /// <param name="signature">Подпись.</param>
        /// <param name="checkSignatureOnly">Признак необходимости проверки лишь самой подписи.</param>
        /// <param name="certificate">Сертификат, которым производилась подпись.</param>
        /// <exception cref="System.Security.Cryptography.CryptographicException">Возникает в случае некорректной подписи, либо других Cryptographic исключений.</exception>
        public static void CheckDetachedSignature(byte[] signedData, byte[] signature, bool checkSignatureOnly, out X509Certificate2 certificate)
        {
            SignedCms cms = new SignedCms(new ContentInfo(signedData), true);
            
            cms.Decode(signature);
            if (cms.SignerInfos.Count > 1)
            {
                throw new CryptographicException("Обнаружено более одной подписи, данный метод предназначен для проверки единственной подписи");
            }
            
            cms.CheckSignature(true);
            certificate = cms.SignerInfos[0].Certificate;
            if (!checkSignatureOnly)
            {
                CheckCertificate(certificate, null);
            }
        }


При проверке подписи 34.10-2012, падает на строке
Код:
cms.CheckSignature(true);

с ошибкой "Неправильное значение хеша".

Что я упускаю? Возможно есть какие-то особенности в создании подписи по алгоритму GOST R 34.10-2012, не могу найти ответ

Отредактировано пользователем 17 ноября 2017 г. 12:24:26(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#2 Оставлено : 19 ноября 2017 г. 22:53:52(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Прикрепите получившийся CMS.
И определять алгоритм по криптопровайдеру не стоит, лучше по алгоритму открытого ключа.
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
korshunovarina оставлено 21.11.2017(UTC)
Offline korshunovarina  
#3 Оставлено : 20 ноября 2017 г. 8:56:17(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Вот что получилось

MIILPwYJKoZIhvcNAQcCoIILMDCCCywCAQExDjAMBggqhQMHAQECAgUAMAsGCSqGSIb3DQEHAaCC
BxAwggcMMIIGu6ADAgECAgoUX/S6AAMAAzNPMAgGBiqFAwICAzCCAUgxGDAWBgUqhQNkARINMTAz
NzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5OTExOTA3BgNVBAkeMARDBDsALgAg
BCEEQwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAgBDQALgAgADEAODEhMB8GA1UECB4YADcANwAg
BDMALgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwEHAQ+BEEEOgQyBDAxIDAeBgkqhkiG9w0BCQEW
EWluZm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEpMCcGA1UECh4gBB4EHgQeACAAIgQaBCAE
GAQfBCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQiBDUEQQRCBD4EMgRLBDkAIAQjBCYAIAQeBB4E
HgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiMB4XDTE3MTEwNzE0MTkwMFoXDTE4MDIwNzE0Mjkw
MFowEzERMA8GA1UEAwwIY2VydDIwMTIwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQEC
AgNDAARApIK2wLAcOlTb7/zUVOILFZKVkhlR32mMeWJ7fKsqcCbf/yVOUCRclG+58htso27B96j8
bU9S1e11BaZtEDJWWaOCBLMwggSvMA4GA1UdDwEB/wQEAwIE8DAmBgNVHSUEHzAdBggrBgEFBQcD
BAYHKoUDAgIiBgYIKwYBBQUHAwIwHQYDVR0OBBYEFPAzoGQ7W74BFMTATYJJ3Ne22KYnMIIBiQYD
VR0jBIIBgDCCAXyAFCuyEDRmggKs8OGqQIZ4AXFFnTPjoYIBUKSCAUwwggFIMRgwFgYFKoUDZAES
DTEwMzc3MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMTkwNwYDVQQJHjAEQwQ7
AC4AIAQhBEMESQRRBDIEQQQ6BDgEOQAgBDIEMAQ7ACwAIAQ0AC4AIAAxADgxITAfBgNVBAgeGAA3
ADcAIAQzAC4AIAQcBD4EQQQ6BDIEMDEVMBMGA1UEBx4MBBwEPgRBBDoEMgQwMSAwHgYJKoZIhvcN
AQkBFhFpbmZvQGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxKTAnBgNVBAoeIAQeBB4EHgAgACIE
GgQgBBgEHwQiBB4ALQQfBCAEHgAiMUEwPwYDVQQDHjgEIgQ1BEEEQgQ+BDIESwQ5ACAEIwQmACAE
HgQeBB4AIAAiBBoEIAQYBB8EIgQeAC0EHwQgBB4AIoIQRIfaV0mTYJ5IdvaCc0T/FzBcBgNVHR8E
VTBTMFGgT6BNhktodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9yYS9jZHAvMmJiMjEwMzQ2NjgyMDJh
Y2YwZTFhYTQwODY3ODAxNzE0NTlkMzNlMy5jcmwwgbEGCCsGAQUFBwEBBIGkMIGhMDQGCCsGAQUF
BzABhihodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9vY3NwbmMyL29jc3Auc3JmMDIGCCsGAQUFBzAB
hiZodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9vY3NwMi9vY3NwLnNyZjA1BggrBgEFBQcwAoYpaHR0
cDovL3d3dy5jcnlwdG9wcm8ucnUvcmEvY2RwL2NhY2VyMy5jcnQwKwYDVR0QBCQwIoAPMjAxNzEx
MDcxNDE5MDBagQ8yMDE4MDIwNzE0MTkwMFowHQYDVR0gBBYwFDAIBgYqhQNkcQEwCAYGKoUDZHEC
MDQGBSqFA2RvBCsMKdCa0YDQuNC/0YLQvtCf0YDQviBDU1AgKNCy0LXRgNGB0LjRjyAzLjYpMIIB
MwYFKoUDZHAEggEoMIIBJAwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8g
My42KQxTItCj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgCAi0JrRgNC40L/R
gtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAxLjUMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB
0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMjczOCDQvtGCIDAxLjA3LjIwMTUM
T9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8x
MjgtMjc2OCDQvtGCIDMxLjEyLjIwMTUwCAYGKoUDAgIDA0EA16a7z0UriUy2rHYfkZWYexktHd57
ao6p8K9QRc1BmWKtLCSSpnBen1tEt2ut0noZZFY5kWJ27AzJkHdoTRTiYDGCA/QwggPwAgEBMIIB
WDCCAUgxGDAWBgUqhQNkARINMTAzNzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5
OTExOTA3BgNVBAkeMARDBDsALgAgBCEEQwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAgBDQALgAg
ADEAODEhMB8GA1UECB4YADcANwAgBDMALgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwEHAQ+BEEE
OgQyBDAxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEpMCcG
A1UECh4gBB4EHgQeACAAIgQaBCAEGAQfBCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQiBDUEQQRC
BD4EMgRLBDkAIAQjBCYAIAQeBB4EHgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiAgoUX/S6AAMA
AzNPMAwGCCqFAwcBAQICBQCgggIcMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN
AQkFMQ8XDTE3MTEyMDA1NTIxN1owLwYJKoZIhvcNAQkEMSIEIGIQnjYEkEqIVEmlVyj/9dXSmspn
mxalZJ58aygEE48nMIIBrwYLKoZIhvcNAQkQAi8xggGeMIIBmjCCAZYwggGSMAoGCCqFAwcBAQIC
BCD7Bf+BudLKr3T1fsMSQkyziQw1Gf8VixTZ8VLb999p3TCCAWAwggFQpIIBTDCCAUgxGDAWBgUq
hQNkARINMTAzNzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5OTExOTA3BgNVBAke
MARDBDsALgAgBCEEQwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAgBDQALgAgADEAODEhMB8GA1UE
CB4YADcANwAgBDMALgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwEHAQ+BEEEOgQyBDAxIDAeBgkq
hkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEpMCcGA1UECh4gBB4EHgQe
ACAAIgQaBCAEGAQfBCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQiBDUEQQRCBD4EMgRLBDkAIAQj
BCYAIAQeBB4EHgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiAgoUX/S6AAMAAzNPMB8GCCqFAwcB
AQEBMBMGByqFAwICJAAGCCqFAwcBAQICBEBeb5B5GtAn2r4vQYdOGLPq75h5HJfGwunKJKQlJExM
5WauYtjn1aFz1yeHQN/HxJqk+5tA+joX+mxCiIW5LgjQ
Offline Максим Коллегин  
#4 Оставлено : 20 ноября 2017 г. 9:31:41(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
А на сервере точно CSP 4.0? Какая версия?
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
korshunovarina оставлено 21.11.2017(UTC)
Offline korshunovarina  
#5 Оставлено : 20 ноября 2017 г. 9:56:47(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Версия КриптоПро CSP: 4.0.9842
Offline Максим Коллегин  
#6 Оставлено : 20 ноября 2017 г. 10:15:12(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Подпись нормальная. Возможно дело в этом: Особенности работы с данными в КриптоПро ЭЦП Browser plug-in
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
korshunovarina оставлено 21.11.2017(UTC)
Offline korshunovarina  
#7 Оставлено : 20 ноября 2017 г. 10:40:43(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Спасибо, но пока не совсем понятно что с этим можно сделать

Отредактировано пользователем 20 ноября 2017 г. 10:41:26(UTC)  | Причина: Не указана

Offline korshunovarina  
#8 Оставлено : 20 ноября 2017 г. 20:05:50(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Указание CADESCOM_BASE64_TO_BINARY в качестве ContentEncoding тоже не помогло
Offline Максим Коллегин  
#9 Оставлено : 20 ноября 2017 г. 23:59:02(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
А хэш изначальный посчитан каким алгоритмом?
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
korshunovarina оставлено 21.11.2017(UTC)
Offline korshunovarina  
#10 Оставлено : 21 ноября 2017 г. 9:03:49(UTC)
korshunovarina

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

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

Сказал(а) «Спасибо»: 5 раз
Кажется, проблема в этом

Код:

        /// <summary>
        /// Вычисление хеша массива байтов используя алгоритм ГОСТ Р 34.11-94. 
        /// </summary>
        /// <param name="bytesToHash">Массив байт, который будем хешировать.</param>
        /// <returns>Хеш в виде массива байт.</returns>
        /// <exception cref="System.Security.Cryptography.CryptographicException">Возникает в случае отсутствия доступа к криптопровайдеру (к примеру, не установлен Крипто Про .Net).</exception>
        public static byte[] ComputeHash(byte[] bytesToHash)
        {
            using (HashAlgorithm algorithm = HashAlgorithm.Create("GOST3411"))
            {
                if (algorithm == null)
                {
                    throw new CryptographicException("CryptoPro is unavailable.");
                }
                
                return algorithm.ComputeHash(bytesToHash);
            }
        }


GOST3411? Должен быть другой параметр?

Отредактировано пользователем 21 ноября 2017 г. 9:30:59(UTC)  | Причина: Не указана

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