Лучший способ подписать данные в веб-форме с пользовательским сертификатом

У нас есть веб-приложение C#, где пользователи соединят использование цифрового сертификата, сохраненного в их браузерах.

От примеров, которые мы видели, проверяя их идентификационные данные, будет легко, после того как мы включаем SSL, поскольку мы можем получить доступ к полям в сертификате, с помощью Запроса. ClientCertificate, для проверки имени пользователя.

Нас также требовали, однако, подписать данные, отправленные пользователем (несколько простых полей и двоичный файл) так, чтобы мы могли доказать, без сомнения, какой пользователь ввел каждую запись в нашу базу данных.

Наша первая мысль создавала маленькую текстовую подпись включая поля (и, если это возможно, md5 файла), и зашифруйте его с закрытым ключом сертификата, но...

Насколько я знаю, что мы не можем получить доступ к закрытому ключу сертификата для подписания данных, и я не знаю, существует ли какой-либо способ подписать поля в браузере, или у нас нет никакой другой опции, чем использование апплета Java. И если бы это - последний, как мы сделали бы это (Там какой-либо апплет с открытым исходным кодом, который мы можем использовать? Было бы лучше, если мы создаем тот сами?)

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

9
задан salgiza 6 October 2010 в 23:16
поделиться