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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vrudkovsky  
#1 Оставлено : 6 июля 2016 г. 14:58:21(UTC)
vrudkovsky

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

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

test.zip (3kb) загружен 3 раз(а).

Проверяю браузерный плагин. Версия плагина: 2.0.12245 Версия криптопровайдера: 4.0.9680
На странице https://www.cryptopro.ru...des/demopage/simple.html
подписываю Hello World
Далее беру подпись и запускаю приаттаченый тест в котором извлекаю дайджест и сравниваю его с вычисленым.

Вот что получаю

1.2.643.2.2.9
GOST3411 Message Digest from JCP, <initialized>

arrays first differed at element [0];
Expected :-101
Actual :117

Есть еще подобные тесты которые проходят. Что мы делаем не так?

Отредактировано пользователем 6 июля 2016 г. 14:59:17(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 6 июля 2016 г. 15:25:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Здравствуйте.
Возможно, проблема в кодировке данных. В разделе форума, посвященном плагину, были подобные вопросы.
Offline vrudkovsky  
#3 Оставлено : 6 июля 2016 г. 16:38:01(UTC)
vrudkovsky

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

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

Мы пользуемся вашей страницей для проверки и намеренно используем фразу из первых 127 символов любой кодовой страницы. Даже если гипотетически ваша страница и имеет проблемы с кодировками, то у нас все равно есть некоторое количество примеров, когда подобный код корректно работает с текстами составлеными из ASCII.
Offline Евгений Афанасьев  
#4 Оставлено : 6 июля 2016 г. 17:25:02(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Автор: vrudkovsky Перейти к цитате
риаттаченый тест в котором извлекаю дайджест и сравниваю его с вычисленым

Если на странице создается кадес подпись, то надо вычислять хеш от атрибутов, а не от данных. Или вы извлекаете хеш из атрибутов?
Offline vrudkovsky  
#5 Оставлено : 6 июля 2016 г. 18:07:55(UTC)
vrudkovsky

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

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

Уже теплее... Видимо я не понимаю какие атрибуты у строки "Hello world" и как вычислить от них хэш? Как по внешнему виду страницы https://www.cryptopro.ru...des/demopage/simple.html понять, что тут создается кадес подпись а не какая то другая?
Offline Евгений Афанасьев  
#6 Оставлено : 6 июля 2016 г. 19:32:04(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Детальный разбор подписи есть в примере CMSVerify в классе CMSVerify пакета CMS архива samples-sources.jar. И есть CAdES.jar, который предоставляет api для создания/проверки подписи CAdES (одноименный пакет с примерами в samples-sources.jar). На демо-странице, по идее, создаются только CAdES подпись, других, если не ошибаюсь, плагин создавать не умеет.

Отредактировано пользователем 6 июля 2016 г. 19:33:12(UTC)  | Причина: Не указана

Offline vrudkovsky  
#7 Оставлено : 8 июля 2016 г. 10:32:14(UTC)
vrudkovsky

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

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

Проблему нашли. По ошибке передали вместо кодированных в Base64 байтов изначальную строку. Плагин попытался раскодировать, не получилось, он вместо первоначальных байт подписал нечто, думаю сообщение об ошибке, и выдал внешне вполне валидную подпись. После того, как изначальную строку закодировали, подпись стало возможо проверить.

Почему плагин не может выдать ошибку при получении неверных данных? Почему в качестве входых форматов принимается только base64 и экзотика ucs2, но не utf-8, ascii? В демо примере на сайте подобная же ошибка. Предлагаемый способ подписания произвольной фразы, к примеру hello world, не приводит к созданию валидной подписи.

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