Внедрение Рутокен Веб в ИС для ЭЦП
Добрый день. Наша компания подумывает о внедрении ЭЦП в нашей информационной системе (ИС), которую мы же и разрабатываем. Система эта - веб-приложение на основе Java + Javascript.
Смотрим в сторону Рутокен ВЕБ, однако остался ряд вопросов, которые не совсем ясны из описания API, которое выложено на вашем сайте.
Что нам нужно?
1. Аутентификацию с помощью Рутокен ВЕБ нам осуществлять не надо, достаточно только ЭЦП.
2. Наша система работает с документами, которые необходимо подписывать. Затем те, кто просматривают документ, должны как-то убедиться, что он не подделан.
В связи с этим вопросы, поскольку из API не совсем понятно, как это использовать.
1. Чтобы подписать документ, я должен вычислить его хэш (это мы делаем сами), и отправить его токену с помощью функции rtwSign(contname, hash). Я правильно это понимаю? Полученный ЭЦП мы сохраняем в базе для данного документа, плюс открытый ключ пользователя (ОКП), который это подписал.
2. Чтобы затем проверить документ (т.е. подписал ли его тот, кто нужно), нужно будет повторно вычислить его хэш, а затем попробовать дешифровать ЭЦП с помощью ОКП того, кто это подписал. Я правильно понимаю этот момент? И для этого нам не нужен токен пользователя, мы просто можем это сделать с помощью какого-нибудь криптопровайдера в Java, который позволит дешифровать ЭЦП с помощью открытого ключа? Это верно?
Всвязи с этим вопросы. Я понял, как работать с контейнерами, и как получить открытый ключ пользователя с токена с помощью rtwGetPublicKey(container_name); Но не совсем ясно, для чего нужно rtwGenKeyPair(container_name)? Это что, сбрасывает закрытый ключ в контейнере устройства и создает новую пару? Т.е. это нужно по сути один раз, когда мы регистрируем пользователя в системе, и сохраняем его открытый ключ в нашем реестре ключей пользователей? Я правильно понимаю практическое использование данной функции?
Еще момент - открытые ключи ваших токенов не содержатся в каком-то удостоверяющем центре (УЦ)? Т.е. когда мы регистрируем пользователя с токеном в системе, нам нужно будет либо самим организовывать что-то типа УЦ, либо посылать открытый ключ пользователя для регистрации в УЦ?