SSL — это механизм безопасности транспорта, он неприменим.
Вы можете использовать OpenPGP или PKI (сертификаты X.509 и формат CMS). Эти технологии позволяют подписывать данные два или более раз без аннулирования предыдущих подписей — это делается с помощью отдельных подписей.
Выбор того, что (PGP или PKI) использовать, остается за вами — эти технологии могут использоваться в аналогичных сценариях, но имеют разные способы аутентификации ключей: в PGP пользовательские ключи подписываются другими пользователями, а в PKI сертификаты подписываются центрами сертификации. , который должен вызывать больше доверия.
Когда вы «подписываете документ» с помощью криптографической подписи, с технической точки зрения это хеш документа, который подписывается. Хэш может быть рассчитан на сервере и отправлен клиенту для подписи, после чего отсоединенная подпись передается обратно на сервер. Так вы сможете хранить документ на сервере, а приватные ключи, используемые для подписи, не покинут клиента.
Однако для фактической подписи на клиенте вам нужен какой-то модуль, который будет связываться с сервером и выполнять работу. Вы не можете работать только с веб-браузером - требуется какой-то плагин для браузера. Причина в том, что «криптография» Javascript, даже если она технически разрешает доступ к ключам на стороне клиента, хранящимся в файлах или на криптографических устройствах, имеет определенные концептуальные недостатки, которые делают ее практически бесполезной. Таким образом, вы в конечном итоге используете что-то более надежное и безопасное, то есть подписанный апплет, элемент управления ActiveX или скрипт Flash.
Наша компания предоставляет различные компоненты безопасности, среди которых есть компоненты и модули для распределенной подписи (включая вышеупомянутые плагины). Эти модули предназначены для операций PKI (хотя обычно у нас также есть компоненты для операций OpenPGP, эти компоненты в настоящее время не поддерживают распределенную подпись).
И я должен отметить, что «автоматизация» здесь возможна до такой степени, когда пользователь выбирает сертификат для использования и нажимает кнопку «подписать» (например). Вы не можете ничего подписать без явного действия пользователя. В некоторых случаях пользователю также потребуется предоставить PIN-код/пароль, который защищает закрытый ключ от неправомерного использования.
person
Eugene Mayevski 'Callback
schedule
19.01.2012