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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Ranzed  
#11 Оставлено : 4 октября 2021 г. 12:16:31(UTC)
Ranzed

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

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

Сказал(а) «Спасибо»: 3 раз
Есть ли какие-то обновления по данному вопросу? Какую ещё дополнительную информацию мы можем предоставить для анализа?
Сейчас из-за этой проблемы у клиента блокируется работа в нашем приложении.
Offline Евгений Афанасьев  
#12 Оставлено : 5 октября 2021 г. 9:38:52(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Автор: Ranzed Перейти к цитате
Есть ли какие-то обновления по данному вопросу? Какую ещё дополнительную информацию мы можем предоставить для анализа?
Сейчас из-за этой проблемы у клиента блокируется работа в нашем приложении.

Подобную ошибку мы встречали один раз, в случае Knox: при отсутствии имени провайдера в конструкции вида Signature.getInstance jvm использует некую свою реализацию (TimaSignatureSHA1RSA) по умолчанию, которая, естественно, ГОСТ не знает.
Указанный выше стек ошибки относится к
Автор: Ranzed Перейти к цитате

Трейс ошибки тот же самый. Воспроизводится на планшете Samsung с Android 11. Защищенный контейнер Knox не используется.

?
Клиент ничего не напутал и использует ваше приложение с корректным Signature.getInstance?
Если в коде действительно верно задан Signature.getInstance и правильно определяется алгоритм подписи с помощью getSignatureInstanceAlgName (именно ГОСТ по certificate), то:
1. выведите список провайдеров с помощью:
Код:

Provider[] providers = Security.getProviders();
for (Provider provider : providers) {
  System.out.println("%% PROVIDER: " + provider.getName() + ", info = " + provider.getInfo());
  Set<Provider.Service> services = provider.getServices();
  Iterator<Provider.Service> iterator = services.iterator();
  while (iterator.hasNext()) {
    Provider.Service service = iterator.next();
    System.out.println("\t * algorithm = " + service.getAlgorithm() + ", class = " + service.getClassName());
  } // while
} // for

2. Дайте детальное описание устройства.
3. Приложите весь лог в том числе до появления стека ошибки, возможно, выше по логу будет еще какая-то информация.

4. Выведите провайдер из Signature в коде п.1 до signature.initSign:
Цитата:

Signature signature = Signature.getInstance(signAlg, JCSP.PROVIDER_NAME);
Provider p = signature.getProvider(); // <-- распечатать Provider
signature.initSign(privateKey);

Отредактировано пользователем 5 октября 2021 г. 14:42:06(UTC)  | Причина: Не указана

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