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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Konstantinus  
#1 Оставлено : 7 декабря 2023 г. 12:49:43(UTC)
Konstantinus

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

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

Добрый день.
Задача: Отправитель зашифровывает строку (токен Diadoc) на открытом ключе получателя, получатель должен расшифровать строку своим закрытым ключом в приложении(Delphi/Embarcadero).
Ключ находится на смарт-карте (RuToken). Тестирование в панели CryptoPro CSP показывает, что свойство "Экспорт ключа" имеет значение "запрещен" (см. слайд №1).
Вопрос 1: значит ли это, что нет возможности экспортировать закрытый ключ за пределы CSP (для приложения) в BLOB-объекты с закрытым ключом (тип PRIVATEKEYBLOB) с
помощью функции CryptExportKey?
Вопрос 2: если закрытый ключ экспортировать за пределы CSP нельзя, то как быть в этом случае для разрешения задачи по расшифровке строки?
export_private_key.png (17kb) загружен 3 раз(а).
Offline Андрей *  
#2 Оставлено : 7 декабря 2023 г. 13:03:23(UTC)
Андрей *

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

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

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

1. в программном криптопровайдере - это лишь флаг, в аппаратном - ключ неизвлекаемый.
2. проблема не ясна, пришли зашифрованные данные - расшифруйте там, где есть доступ к закрытому ключу.

Предполагаю, что нет понимания как выглядит процесс расшифровки данных.
Техническую поддержку оказываем тут
Наша база знаний
Offline Konstantinus  
#3 Оставлено : 7 декабря 2023 г. 13:40:53(UTC)
Konstantinus

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

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

С расшифровкой строки успешно справляется утилита cyrptcp:
cryptcp -decr -dn "Сувовров Александр,a.v.suvorov@mail.ru" “c:\temp\tra.txt” “token.txt”

Процесс расшифровывания представляется следующим образом:

1.Получить дескриптор провайдера
CryptAcquireContext(
&hCryptProv, // handle to the CSP
'te-c55d7585-ad9c-4ecd-9922-821dafa4d326', // container name
NULL, // use the default provider
PROV_GOST_2001_DH, // provider type
0)

2.Загрузить в CSP ключ, для этого:
2.1. Прочитать BLOB объект из файла с помощью ReadFile например
2.2. Импортировать прочитанный из файла BLOB объект в CSP
CryptImportKey(
hCryptProv,
pbKeyBlob,
dwKeyBlobLen,
0,
0,
&hKey)
------------------------------------------
3. Расшифровать строку находящуюся в pbBuffer (длина буфера dwCount) с помощью ключа в hKey.
CryptDecrypt(
hKey,
0,
fEOF,
0,
pbBuffer,
&dwCount)

Чтобы импортировать BLOB объект с закрытым ключом в CSP, нужно подготовить файл с этим BLOB объектом закрытого ключа.
В документации к CryptoAPI описана функция CryptExportKey, позволяющая выгрузить BLOB объект сключами за пределы CSP.
Если ее вызвать с параметром PUBLICKEYBLOB, то открытый ключ экспортируется. При вызове с параметром PRIVATEKEYBLOB, возвращается ошибка 2148073482, что
видимо естественно, так как закрытый ключ не экспортируемый.

Учитывая, что пока результаты по расшифровке отрицательные, скорее всего правильного понимания процесса расшифровки действительно нет.
Как было бы реализовать расшифровку более правильно?
Offline Андрей *  
#4 Оставлено : 7 декабря 2023 г. 17:24:10(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2201 раз в 1717 постах
зашифрованные данные в asn.1 (cms enveloped) ?
есть же функции, более высокоуровневые или прям требование такое?
Техническую поддержку оказываем тут
Наша база знаний
Offline Konstantinus  
#5 Оставлено : 7 декабря 2023 г. 19:14:23(UTC)
Konstantinus

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

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


В документации пишут: "Двоичное DER-представление зашифрованного токена"
Насколько я понимаю, это и есть ASN.1 ?

Особых требований к реализации нет. Чем проще тем лучше.
Какие в таком случае высокоуровневые функции имеет ввиду?
CryptDecryptMessage?
Offline Андрей *  
#6 Оставлено : 7 декабря 2023 г. 19:37:17(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2201 раз в 1717 постах
Да, если размер файла не большой (функция обрабатывает на входе целиком),

Если сотни мб и гб+ то смотреть на поточную обработку.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 7 декабря 2023 г. 19:53:24(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2201 раз в 1717 постах
Вот здесь можно посмотреть основное, с учётом текущего типа и имени csp.

https://www.cryptopro.ru....aspx?g=posts&t=1422

Техническую поддержку оказываем тут
Наша база знаний
Offline Konstantinus  
#8 Оставлено : 8 декабря 2023 г. 14:07:00(UTC)
Konstantinus

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

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

Благодарю.
Очень богатый источник информации.
Offline Konstantinus  
#9 Оставлено : 8 декабря 2023 г. 15:16:17(UTC)
Konstantinus

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

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

Где то есть готовая библиотека с типами TCryptContext, TCert ?
Или каким структурам из Windows они соответствуют?
Offline Андрей *  
#10 Оставлено : 8 декабря 2023 г. 15:25:41(UTC)
Андрей *

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

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

Сказал «Спасибо»: 549 раз
Поблагодарили: 2201 раз в 1717 постах
JEDI API and JEDI WSCL
модуль:
jwawincrypt и прочие.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.