X.509 Цифровые подписи / рабочий процесс шифрования / рекомендации библиотеки?

Мой конкретный вариант использования заключается в том, что я должен получить доступ к цифровым сертификатам, хранящимся на клиенте, и использовать их для выполнения задач подписи, проверки, шифрования и дешифрования на стороне клиента и на стороне сервера. Для последней части есть много много решений. Камнем преткновения является возможность доступа к сертификатам, хранящимся на клиенте.

Обратите внимание, что я говорюсертификаты хранятся на клиенте что намеренно расплывчато Я не хочу ограничивать мысли системным хранилищем, хранилищем пользователей, хранилищем браузера, криптографическим токеном, хранилищем ключей Java, где бы то ни было.

На протяжении многих лет я использовал следующие способы. Рядом с каждым из них я даю свои плюсы и минусы.

CAPICOM / ActiveX. Хотя с ним было проще всего работать, он ограничивает пользователя IE в Windows. Что еще хуже, теперь он устарел и работает только на 32-битной.Java-апплет. Это кроссплатформенный и кросс-браузерный, но Java в браузере не так распространен, как хотелось бы, и быстро исчезает (очевидно, Apple недавно удалила его). Таким образом, возникает дополнительная проблема, связанная с тем, что пользователь загружает и устанавливает JRE. Кроме того, пользователям приходится выполнять относительно техническую задачу по установке криптографических расширений неограниченной силы для работы подписывающего лица.

Вещи, о которых я слышал / думал, но далеко не продвинулся

Большинство решений JavaScript. Они реализуют алгоритм RSA, но у них нет способа получить доступ к цифровым сертификатам в хранилище сертификатов клиента. Большинство из них генерируют новую пару ключей.Flash / Flex. Flash / flex - самая распространенная технология на стороне клиента. Они уже могут получить доступ к клиентскому оборудованию, такому как камеры и микрофоны. Было бы прекрасно, если бы они могли получить доступ к хранилищам сертификатов.Альтернативы CAPICOM приведены на веб-сайте Microsoft. Он предписывает альтернативы CAPICOM, которые в основном делают вещи, используя .NET Framework. Это отлично подходит для настольных клиентов. Но для "скрипты» они говорят очень четко вважная заметка" что вы должны написать свои собственные элементы управления ActiveX. Что возвращает нас на круги своя.

То, что я ищу, - это способ обойти главную проблему получения доступа к хранилищам сертификатов на клиенте. Я не ищу обсуждение алгоритма RSA или почему PKI глуп или какая-то альтернатива асимметричному шифрованию или использованию архитектур, отличных от веб-приложений, или от Apple.

Ответы на вопрос(3)

Ваш ответ на вопрос