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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline lionia19811981  
#1 Оставлено : 23 ноября 2018 г. 17:53:19(UTC)
lionia19811981

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Я уже кратко писал на форуме об опыте тестировании новой Джакарты, но, подумав, захотелось поподробнее рассказать о полученных в процессе этого результатах.

В приложение, которое уже поддерживает работу с подписью на носителе JaCarta ГОСТ, нужно встроить поддержку JaCarta ГОСТ 2 для работы с ГОСТ 34.10-2012.
Что произойдет и какие косяки:
Основная проблема с которой можно столкнуться - неоднозначность примеров в SDK.
Во-первых, примеры привязаны к конкретным моделям устройств. Понять, можно ли использовать один и тот же пример для разных моделей или нет достаточно нетривиально (придется сравнивать файлы по строкам). Впрочем, если и удалось встроить JaCarta ГОСТ, то значит, что с этим как-то и можно разобрался.
Во-вторых, некоторые примеры почему-то отсутствуют - версия GOST_PKCS7SignAndVerify для ГОСТ 34.10-2012 отсутствует, хотя и является одной из самых используемых при разработке

Мелочь, но странно - примеры оформлены разном стиле и в комментариях используют разную терминологию (где-то ЭП, где-то ЭЦП; написано, что делаем Login пользователем, а потом почему-то Logout администратором). Некомпетентного разработчика это может слегка смутить.
Дальше про ИКБ. Примеры для ИКБ идут как бы дополнением. При этом работы с ИКБ в коде больше обусловлена безопасностью и правилами пользования.
Сам код работы внутри ИКБ практически не отличается.
Выключение работы с ИКБ внутри себя вызывает Logout. Это совсем не очевидно и может местами поломать работу с токенами.
Все примеры в новом SDK построены таким образом, что отдельно демонстрируют работу с хешом и отдельно работу с подписью. Что делать при уже выявленном хеш - совсем непонятно.
Для старого ГОСТ пример выглядит так
// буффер с данными для подписания
CK_BYTE data[32];
Известно, что 32 байта это как раз размер хеша. Может быть подписан как хеш так и данные. Но в примере для нового ГОСТ уже написано:
// буффер с данными (не хешем) для подписания
CK_BYTE data[128];
Фактически для одного токена, но разных алгоритмов придется реализовывать разный код.

На этом стоит остановиться чуть подробнее. Вычисление хеш отдельно типичная операция. Наиболее она типична для клиент-серверных систем, в которых пользователь загружает документ на сервер, а затем подписывает. Очевидно, что в таком случае лучше вычислять хеш на сервере, а потом передавать его на подпись клиенту (сервер считает быстрее токена и документ не надо гонять туда сюда, что для документов размеров в 100 Мб и выше значительно замедляет работу). Такой сценарий с новой Jacarta не реализуется в принципе.

Стоит также отметить, что переключение между программным и аппаратным хеш происходит вразрез с документами ТК-26 - вместо использования параметров C_DigestInit необходимо использовать специальную функцию. А значит множество ПО, которое ранее поддерживало Jacarta ГОСТ при переходе на JaCarta ГОСТ 2 автоматически будет считать хеш только аппаратно, что неизбежно приведет к торможениям работы при работе с документами в 1Мб и выше. Выглядит это так
rv = CALL_EXT(JC_CT2_SetCertificatedMode(nGostSlotId, CK_TRUE));
if (rv != CKR_OK)
{
bICLFound = false;
}
else
{
mech.mechanism = CKM_GOSTR3411_12_256;
mech.pParameter = NULL_PTR;
mech.ulParameterLen = 0;

rv = CALL_P11(C_DigestInit(hSession, &mech));
При этом на том же токене, но со старым хеш или со старым токеном можно просто выполнить:
mech.mechanism = CKM_GOSTR3411;
mech.pParameter = NULL_PTR;
mech.ulParameterLen = 0;

rv = CALL_P11(C_DigestInit(hSession, &mech));
Offline kontaria.dim.ka  
#2 Оставлено : 26 ноября 2018 г. 22:10:04(UTC)
kontaria.dim.ka

Статус: Активный участник

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

Поблагодарили: 2 раз в 2 постах
На сколько я понял из вышеизложенного, разработчики новой Джакарты просто хотели доработать старый продукт и намудрили. По сути установка нового токена оборачивается новым встраиванием, где приходится много копаться в примерах и изыскивать скрытые изменения в СДК. Гм... Ну и спасибо, конечно, разработчикам SDK, которые «подумали» о партнерах и «позаботились» о том, чтобы встраиваение первой SDK не прошло даром и ресурсы были потрачены на встраивание и дальнейшую поддержку 2х SDK.
Offline mishaniaipivo  
#3 Оставлено : 2 декабря 2018 г. 12:43:53(UTC)
mishaniaipivo

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

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

В общем хотели как проще, а получилось сложно и долго. А Рутокен 2 ГОСТ еще не тестировали?
Offline MotovST  
#4 Оставлено : 2 марта 2019 г. 14:57:29(UTC)
MotovST

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

Группы: Участники
Зарегистрирован: 22.02.2019(UTC)
Сообщений: 1
Руанда
Откуда: Ростов на Дону

Недавно коллеги приобрели новую JaCarta-2 SE для работы в системе ЕГАИС. В процессе установки выяснилась забавная вещь: производитель Джакарты компания "Аладдин" при продаже нового ключа обещает "бесплатное базовое обслуживание сроком на один год". На это, собственно, коллеги и повелись. Оказалось, что все не так красиво, а напротив: "вход - рубль, а выход два". Собственно из бесплатного обслуживания там только установка драйверов. Настройка ЕГАИС уже платная, но это пол беды. Допиливание всех косяков разработчика, необходимое для корректной работы (о чем писалось выше) тоже за счет клиента!
Интересный бизнес: сперва продать заведомо сырой продукт, а потом зарабатывать на его приведении в рабочее состояние. )))
Offline lionia19811981  
#5 Оставлено : 8 марта 2019 г. 12:02:24(UTC)
lionia19811981

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

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

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