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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline roman84  
#1 Оставлено : 24 октября 2017 г. 17:39:47(UTC)
roman84

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

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

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

Нам приходится расшифровывать относительно большие файлы - десятки мегабайт.
Для расшифровки сейчас отправляем зашифрованное сообщение на машину клиента, там его расшифровываем с использованием CSP КриптоПро и закрытого ключа клиента и возвращаем расшифрованные данные обратно на сервер.
Хотели бы оптимизировать этот участок и отправлять на клиента не все данные, а только необходимые для расшифровки симметричного ключа. Далее расшифрованный симметричный ключ отправлять на сервер с JCP и использовать его для расшифровки данных.

Из примеров JCP нашел следующий код для создания симметричного ключа из двоичных данных:
Код:
AlgIdSpec specParams = new AlgIdSpec(null, null, null, CryptParamsSpec.OID_Crypt_VerbaO);
final ParamsInterface cryptParams = specParams.getCryptParams();
SecretKeyInterface derivedSecretKeySpec = new SecretKeySpec(<двоичные данные расшифрованного ключа>, (CryptParamsInterface)cryptParams);
final SecretKey symmetricKey = new GostSecretKey(derivedSecretKeySpec);


Уточните пожалуйста, можно ли получить данные ключа (массив 32 байт) + параметры алгоритма на клиенте?
Такая схема работы имеет право на жизнь?

С уважением, Роман

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

Offline Евгений Афанасьев  
#2 Оставлено : 25 октября 2017 г. 9:41:52(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,921
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 688 раз в 649 постах
Здравствуйте.

Передача секретного ключа не очень удачное решение: не допускается передача ключей в явном виде.
Кроме того, нужно учитывать также, что прямое использование классов и функций JCP не из "белого списка" (JCA/JCE) рисковано, т.к. этот функционал может измениться в будущем.

По примеру - это может сработать, еще нужно правильно задать параметры шифрования. В samples-sources.jar есть примеры Encrypt и Decrypt, в них происходит сохранение промежуточных результатов (зашифрованное сообщение, ключ, iv и ukm) в файлы (используется ВКО).

Отредактировано пользователем 25 октября 2017 г. 11:18:29(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
roman84 оставлено 25.10.2017(UTC)
Offline roman84  
#3 Оставлено : 25 октября 2017 г. 11:11:08(UTC)
roman84

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

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

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