Сохранить window.crypto сгенерированный закрытый ключ в хранилище ключей браузера?

Мы пытаемся реализовать следующий рабочий процесс:

  • сгенерировать закрытый ключ в браузере, используя window.crypto
  • создайте запрос подписи сертификата PKCS10 в браузере
  • отправить PKCS10 на сервер
  • сервер подписывает запрос и возвращает сертификат x509 в формате PEM
  • браузер хранит сертификат для себя

То же самое уже работает, используя тег keygen в браузере и используя SPKAC вместо pkcs10. Теперь, однако, браузер не сохраняет возвращенный сертификат, просто хочет сохранить их. Когда мы пытаемся импортировать сертификат в браузер вручную, мы получаем "закрытый ключ для сертификата отсутствует или недействителен". Мы подозреваем, что закрытый ключ, сгенерированный window.crypto.generateKey(), не сохраняется в хранилище ключей браузера. Как получить закрытый ключ, хранящийся в хранилище ключей?

Реализация первых двух шагов основана на http://blog.engelke.com/2014/08/23/public-key-cryptography-in-the-browser/

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

Java нельзя использовать в соответствии с этим вопросом: Скажите Java использовать хранилище ключей Windows

В Windows можно использовать элементы управления ActiveX.

Описание: Не найдено ни одного стандартного кросс-браузерного и кросс-операционного способа создания и осмысленного использования сертификатов X509. Существуют комбинации (новые версии Chrome (исключение поддержки keygen) в ОС, отличных от Windows), где нет способа сделать это.

0 ответов

Другие вопросы по тегам