В настоящее время мы разработали систему, которая может подписывать документы с помощью java-апплета. Однако с запретом апплетов под хром мы ищем альтернативное решение для цифрового подписания.
В настоящее время подписание работает следующим образом:
- HTTP GET отправляется сервлету, чтобы получить документ, который будет подписываться;
- Апплет запускается, драйвер цифровой подписи извлекается из файловой системы, и пользователь вводит PIN-код;
- Апплет получает цепочку сертификации, проверяет CRL/OSCP и подписывает документ;
- Апплет отправляет многостраничную запись с уже подписанным файлом в сервлет в системе.
Одним из альтернативных решений будет импорт сертификата в браузере и использование js для подписи. Но это не будет удобным для пользователя решением.
Другим решением может быть попросить пользователя загрузить запуск программы с использованием JNLP, которая загружает и подписывает документ и автоматически загружает его с помощью HTTP multipart POST. Недостатком этого подхода было бы то, что он требует дополнительных пользовательских взаимодействий (действие загрузки), и мы теряем сеанс http-браузера, поэтому нам нужно снова аутентифицироваться.
Что более жизнеспособно? Можете ли вы подумать об альтернативе?