Верификация ЭЦП, полученной через CAPICOM, в Java(SunMSCAPI)
От: EVoynov  
Дата: 21.10.11 08:50
Оценка:
Всем привет!

Стоит задача отказаться от использования Capicom для подписания/верификации в нашей СЭД документов на клиенте, т.к. компания Microsoft начиная с Windows 7 отказалась от поддержки данной библиотеки. Используется лицензированный CSP 3.6, другие продукты КриптоПро рассматривать не можем.

В качестве решения видится написание Java-аплета, использующего провайдер SunMSCAPI, который умеет обращаться к Microsoft Crypto API.

Теперь вопросы:
1) Известно ли вам вообще о таких решениях?
2) Весь интернет завален примерами работы с подписями PKCS#7 через BouncyCastle, но попытки сравнить подписания через него, и через CAPICOM привели к тому, что результаты подписаний отличаются, хотя BouncyCastle прекрасно справляется с задачей чтения подписей сформированных через CAPICOM, например, для извлечения данных о подписанте и его сертификате. Известно ли что-то о взаимозаменяемости BouncyCastle и CAPICOM?
3) Может быть подскажите в каком направлении в принципе стоит искать решение?
java capicom sunmscapi
Re: Верификация ЭЦП, полученной через CAPICOM, в Java(SunMSC
От: Aib https://razborpoletov.com
Дата: 26.10.11 17:37
Оценка:
Здравствуйте, EVoynov, Вы писали:

EV>Всем привет!


EV>Стоит задача отказаться от использования Capicom для подписания/верификации в нашей СЭД документов на клиенте, т.к. компания Microsoft начиная с Windows 7 отказалась от поддержки данной библиотеки. Используется лицензированный CSP 3.6, другие продукты КриптоПро рассматривать не можем.


EV>В качестве решения видится написание Java-аплета, использующего провайдер SunMSCAPI, который умеет обращаться к Microsoft Crypto API.


EV>Теперь вопросы:

EV>1) Известно ли вам вообще о таких решениях?
EV>2) Весь интернет завален примерами работы с подписями PKCS#7 через BouncyCastle, но попытки сравнить подписания через него, и через CAPICOM привели к тому, что результаты подписаний отличаются, хотя BouncyCastle прекрасно справляется с задачей чтения подписей сформированных через CAPICOM, например, для извлечения данных о подписанте и его сертификате. Известно ли что-то о взаимозаменяемости BouncyCastle и CAPICOM?
EV>3) Может быть подскажите в каком направлении в принципе стоит искать решение?

Может стоит прямо и написать ребятам из BouncyCastle?
Re: Верификация ЭЦП, полученной через CAPICOM, в Java(SunMSC
От: AMigal  
Дата: 27.02.12 12:37
Оценка:
1) Из опыта использования eToken CSP + JavaApplet.
Использование SunMSCAPI в апплетах возможно, но после перегрузки страницы создается новый апплет, который ничего "не помнит" о введенном ранее пароле на ключ и т.д.
Таким образом, при каждой подписи документа снова запрашивается пароль на ключ. Для провайдеров MS это не критично (пароли отсутствуют), но для сторонних — неудобно.
Есть также некая трабла с перечислением псевдонимов сертификатов в хранилище. CAPI позволяет хранить в сертификаты с одинаковыми CommonName, а у Java напрочь отсутствует возможность доступиться к таковым через итератор (только к 1-му из них).
2) для CAPICOM все байтовые массивы сначала конвертятся в BSTR, чтобы передаваться на вход.
При этом нечетное количество байтов, по идее, не может быть конвертировано без выравнивания до четного. Это насчет совместимости.
3) можно написать свой CAPICOM и сопровождать его назло Мелкософту.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.