Использование сертификата браузера (закрытый ключ) для подписи некоторой строки в javascript

У моих пользователей в веб-браузере установлены сертификаты (закрытые ключи). Эти сертификаты используются браузером для аутентификации пользователя на определенных сторонних веб-сайтах.

Я хотел бы подписать некоторую строку, используя один из закрытых ключей, когда пользователь использует/посетит мой веб-сайт. Есть ли какой-либо JavaScript API или функция, которая позволила бы это сделать?


person Tomas M    schedule 21.04.2016    source источник
comment
нет, хранилища сертификатов НЕ являются общесистемными в Windows. IE будет использовать системное хранилище, а другие браузеры — нет.   -  person Marc B    schedule 21.04.2016
comment
Я проверил это с IE и Chrome, и оба могут видеть одни и те же сертификаты. Фаерфокс не   -  person Tomas M    schedule 21.04.2016
comment
В любом случае, для меня не имеет значения, является ли магазин общесистемным или нет, поэтому я стер часть своего вопроса.   -  person Tomas M    schedule 21.04.2016


Ответы (1)


Короткий ответ: вы не можете подписать строку, доставленную через веб-браузер, с помощью Java Script и сертификата клиента от конечного пользователя.

В вашем случае пользовательские сертификаты и ключи используются для аутентификации клиента TLS:

  • Во время рукопожатия TLS сервер запрашивает у браузера сертификат клиента TLS.
  • Браузер выберет подходящий сертификат клиента и установит соединение TLS.
  • После этого сервер доставит содержимое: HTML, JS, изображения...
  • Браузер отобразит страницу со всеми элементами.

Браузер имеет API для доступа к клиентским сертификатам и ключам, но он не доступен механизму Java Script.

person Jofre    schedule 22.04.2016