Я пытаюсь подписать некоторые данные (форму POST) в веб-приложении с помощью Java-апплета. Сертификат x509 пользователя будет иметь криптокен/смарт-карту. Подпись должна быть в прикрепленном формате pkcs # 7.Реализация цифровой подписи в Java-апплете
Я использую этот учебник/код в качестве отправной точки в создании апплета - http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm
Самая большая проблема для меня здесь, кажется, тот факт, что апплет запрашивает у пользователя расположение PKCS # 11 реализации библиотека. Это большой нет-нет для меня, потому что мой типичный пользователь не будет знать местоположение своей библиотеки pkcs # 11.
Из документации Oracle по Java - http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html кажется, что Java не поставляется с собственной реализацией.
Есть ли способ сделать это подписание, не спрашивая пользователя об этом местоположении. Я в порядке с решением, которое работает только с IE и Firefox в Windows.
С несколькими смарт-картами/криптокенами, которые я использовал, я заметил, что в тот момент, когда я его вставляю, я вижу сертификат в IE & персональной вкладке сертификатов Firefox. Это, вероятно, означает, что криптографический токен регистрирует все сертификаты, которые он содержит в ОС, когда вы вставляете карту и отменяет ее, когда вы ее удаляете. Таким образом, вероятно, он должен отображать некоторый интерфейс для OS/Browser, когда он это делает - может ли это не использоваться для подписания?
'В этом случае вы можете использовать классы Java, которые работают с Windows CryptoAPI.» Можете ли вы рассказать об этом - какие классы это? – user93353
@ user93353 Пожалуйста, найдите «sunMSCAPI» - это то, что вам нужно. Я не знаю внутренних внутренних компонентов Java, чтобы предоставить вам подробную информацию о реализации. –
И, может быть, вы можете найти вышеупомянутое дополнение полезным и не тратить время на свои собственные. Вы можете проверить это на https://www.eldos.com/sbb/desc-dc.php –