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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Павел Чиков  
#1 Оставлено : 8 августа 2024 г. 14:11:13(UTC)
Павел Чиков

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

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

Поблагодарили: 1 раз в 1 постах
Используем CryptEncryptMessage, и возникла проблема с алгоритмом шифрования контента на Линукс.
В декодированном envelopedData видно, что для ГОСТ-сертификатов всегда используется 1.2.643.2.2.21 (GOST 28147-89),
даже если указывать алгоритмы 1.2.643.7.1.1.5.1 и 1.2.643.7.1.1.5.2.
Собственно такой же результат получится, если передать просто билеберду вместо oid.
Через CryptoPro tools работает правильно.
CSP 5.0.13000
Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider

Код:
Пример кода:
DWORD recipNumber = 1;
DWORD encryptedSize = 0;

CRYPT_ENCRYPT_MESSAGE_PARA encryptPara;
encryptPara.cbSize = sizeof(encryptPara);
encryptPara.dwMsgEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING;
encryptPara.hCryptProv = 0;
encryptPara.ContentEncryptionAlgorithm.pszObjId = szOID_CP_GOST_R3412_2015_K;
encryptPara.ContentEncryptionAlgorithm.Parameters.pbData = 0;
encryptPara.ContentEncryptionAlgorithm.Parameters.cbData = 0;
encryptPara.pvEncryptionAuxInfo = 0;
encryptPara.dwFlags = 0;
encryptPara.dwInnerContentType = 0;

BOOL ret = CryptEncryptMessage(
    &encryptPara, recipNumber2, recipCerts.get(),
    (const BYTE*)sourceData.data(), (DWORD)sourceData.length(),
    0, &encryptedSize);

encryptedSize = encryptedSize + 1024;

std::unique_ptr<BYTE> encryptBuffer(new BYTE[encryptedSize]);
ret = CryptEncryptMessage(
    &encryptPara, recipNumber2, recipCerts.get(),
    (const BYTE*)sourceData.data(), (DWORD)sourceData.length(),
    encryptBuffer.get(), &encryptedSize);


Код:
Windows
certutil -dump C:\temp\Данные.txt.p7e
PKCS7 Message:
  CMSG_ENVELOPED(3)
  CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION(0)
  Content Type: 1.2.840.113549.1.7.1 PKCS 7 Data

Content Encryption Algorithm:
    Algorithm ObjectId: 1.2.643.7.1.1.5.2.1 GOST R 34.12-2015 Kuznyechik CTR-ACPKM
    Algorithm Parameters:
    0000  30 12 04 10 92 15 33 56  09 f7 3e bc 30 b2 48 83
    0010  b1 c2 a1 b2
        92 15 33 56 09 f7 3e bc  30 b2 48 83 b1 c2 a1 b2   ..3V..>.0.H.....

PKCS7 Message Content:
Decrypted PKCS7 Message Content
================ Begin Nesting Level 1 ================
  0000  ...
  0011
0000: ef bb bf 31 32 33 34 35  36 37 38 39 30 0d 0a 0d  ; ...1234567890...
0010: 0a                                                ; .
================ DECODE ERROR! ================
    0000  ef bb bf 31 32 33 34 35  36 37 38 39 30 0d 0a 0d   ...1234567890...
    0010  0a                                                 .
----------------  End Nesting Level 1  ----------------

No Signer
Recipient Count: 1

Recipient Info[0]:
CMSG_KEY_TRANS_RECIPIENT(1)
CERT_ID_ISSUER_SERIAL_NUMBER(1)
    Serial Number: 12006491c681edf7649c2e62a10002006491c6
    Issuer: CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Key Encryption Algorithm:
    Algorithm ObjectId: 1.2.643.7.1.1.7.2.1
    Algorithm Parameters:
    30 0a 06 08 2a 85 03 07  01 01 06 01
        1.2.643.7.1.1.6.1 GOST R 34.10-2012 DH 256 bit
Encrypted Key:
    0000  30 81 bc 04 30 3c 4f 14  4b f3 d8 7d 5f cc 36 23   0...0<O.K..}_.6#
    0010  6f a7 95 f6 fa 75 aa a4  a9 eb a6 c5 b9 0e 36 91   o....u........6.
    0020  3e 2e d6 d6 13 60 02 92  1d c7 0d 73 4e 31 33 ba   >....`.....sN13.
    0030  63 f1 d3 2e 3c 30 66 30  1f 06 08 2a 85 03 07 01   c...<0f0...*....
    0040  01 01 01 30 13 06 07 2a  85 03 02 02 24 00 06 08   ...0...*....$...
    0050  2a 85 03 07 01 01 02 02  03 43 00 04 40 c8 5f 02   *........C..@._.
    0060  e1 b9 af ac 31 9a ac 55  95 a0 9d a9 56 ab 69 ba   ....1..U....V.i.
    0070  d0 bf 69 9c ac f9 27 33  1d fc 34 78 a7 bb 4f ef   ..i...'3..4x..O.
    0080  15 5e e5 32 7b f9 e7 5c  d7 32 fc 9f 8e bf 76 cd   .^.2{..\.2....v.
    0090  47 52 79 60 08 04 3a 50  d6 84 26 d0 7a 04 20 7f   GRy`..:P..&.z. .
    00a0  32 95 3c d6 43 f4 17 f1  1d 37 cb 09 4d 5c 48 9b   2.<.C....7..M\H.
    00b0  d7 04 c6 81 f5 a2 53 7b  15 41 bc 11 ec 8c cb      ......S{.A.....

No Certificates
No CRLs
CertUtil: -dump command completed successfully.


Код:
Linux
certutil -dump "C:\temp\1 lin.enc"
PKCS7 Message:
  CMSG_ENVELOPED(3)
  CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION(0)
  Content Type: 1.2.840.113549.1.7.1 PKCS 7 Data

Content Encryption Algorithm:
    Algorithm ObjectId: 1.2.643.2.2.21 GOST 28147-89
    Algorithm Parameters:
    0000  30 15 04 08 b2 f6 75 17  cc 0d ae 4a 06 09 2a 85
    0010  03 07 01 02 05 01 01
        b2 f6 75 17 cc 0d ae 4a                            ..u....J
        1.2.643.7.1.2.5.1.1 GOST 28147-89, cipher parameters TC26 Z

PKCS7 Message Content:
0000    6e 37 22 1b dc 07 ec dd  7e 34 07                  n7".....~4.

No Signer
Recipient Count: 1

Recipient Info[0]:
CMSG_KEY_TRANS_RECIPIENT(1)
CERT_ID_ISSUER_SERIAL_NUMBER(1)
    Serial Number: 6891c6ab37f9be90446b70ae601f9f79
    Issuer: CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Key Encryption Algorithm:
    Algorithm ObjectId: 1.2.643.7.1.1.1.1 GOST R 34.10-2012 256 bit
    Algorithm Parameters:
    0000  30 13 06 07 2a 85 03 02  02 23 01 06 08 2a 85 03
    0010  07 01 01 02 02
        1.2.643.2.2.35.1 GOST R 34.10 256 bit, default parameters
        1.2.643.7.1.1.2.2 GOST R 34.11-2012 256 bit
Encrypted Key:
    0000  30 81 a9 30 28 04 20 ed  23 6b cd b4 d3 3f 7b 53   0..0(. .#k...?{S
    0010  bc 61 5a 03 f7 a2 f8 87  e1 70 17 db 54 f6 2b e2   .aZ......p..T.+.
    0020  c7 4d 3c ea ee ba 5d 04  04 d8 52 21 9a a0 7d 06   .M<...]...R!..}.
    0030  09 2a 85 03 07 01 02 05  01 01 a0 66 30 1f 06 08   .*.........f0...
    0040  2a 85 03 07 01 01 01 01  30 13 06 07 2a 85 03 02   *.......0...*...
    0050  02 23 01 06 08 2a 85 03  07 01 01 02 02 03 43 00   .#...*........C.
    0060  04 40 16 83 8f 0b 55 f5  98 17 b5 d2 35 c9 b1 30   .@....U.....5..0
    0070  4b f7 23 35 1b 2e 2d 74  42 8b f6 75 08 6c 03 e4   K.#5..-tB..u.l..
    0080  d5 fb 8e d6 5b 0c 6b ee  95 92 54 90 16 e6 40 c0   ....[.k...T...@.
    0090  15 ad 53 0d 42 c3 19 57  1c 1c 30 fc e0 93 a4 54   ..S.B..W..0....T
    00a0  4f e4 04 08 1a 2d 49 56  f9 bf e1 67               O....-IV...g

No Certificates
No CRLs
CertUtil: -dump command completed successfully.



thanks 1 пользователь поблагодарил Павел Чиков за этот пост.
Volkov_S оставлено 02.09.2024(UTC)
Offline Санчир Момолдаев  
#2 Оставлено : 8 августа 2024 г. 17:45:02(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 100 раз
Поблагодарили: 272 раз в 253 постах
проблема решается в рамках обращения 131221
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.