W3C работает над http://www.w3.org/TR/WebCryptoAPI/
, чтобы определить способ генерации цифровых подписей, шифрования и т. Д. Из javascript. В основном определяет новый объект crypto
внутри объекта window
в DOM
, который должен предоставить javascript с функциями подписи и шифрования. Chrome начинает реализовывать этот объект, который в настоящее время доступен в его javascript-движке (я думаю, на стадии бета-тестирования), я делаю некоторые попытки сгенерировать некоторые подписи с ним, кажется, работает правильно, однако я думаю, что наиболее подходящий способ генерации цифровых подписей с этот новый объект использует закрытые ключи в хранилище ключей OS вместо этого для автогенерированного ключевого материала, но этот доступ не рассматривается в этом рабочем черновике.js подпись на chrome с OS keystore
Я работаю в течение нескольких лет с подписью апплета, чтобы иметь дело с OS keystore (MS, Firefox KS, MAC OS X), но я хочу сделать прямо в javascript, если можно избежать всех проблем, которые апплет производит последним дней ... новые требования безопасности оракула, новые атрибуты MANIFEST.MF, блокировки блокировки браузера и т. д., которые являются настоящей болью!
Так что я смотрю на яваскрипт способ сделать это, и кажется, что все основные браузера принять свой собственный путь:
В Internet Explorer есть ActiveXObject для доступа к хранилищу ключей окна:
// instantiate the CAPICOM objects var store = new ActiveXObject("CAPICOM.Store"); store.Open(CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY); ...
Чтобы получить доступ к светлячок Keystore кажется, что светлячок добавить метод
signText
вwindow.crypto
(подробнее о реализации светлячок webCryptoAPI here и о собственной реализации here):window.crypto.signText("textToSign", "ask");
EDIT: Этот метод светлячок это устаревшим, начиная с версии 34, потому что это не стандарт: https://developer.mozilla.org/en-US/docs/Archive/Mozilla/JavaScript_crypto
Однако на хром кажется, что в настоящее время нет, не существует ничего делать то же самое.
Итак, кто-нибудь знает, как добиться этого в Chrome? Кто-нибудь знает общий способ js сделать это во всех браузерах? Любые советы, чтобы дать мне в правильном направлении, будут оценены.
Спасибо!
Спасибо за ответ, я работаю в течение нескольких лет с помощью апплетов, и каждый день сложнее справляться с проблемами, которые он создает. ошибок, новых требований безопасности и т. д. К моменту, когда вы комментируете, я смотрю на NativeClient SDK. +1. Благодарю. – albciff
@albciff Мой опыт работы с java-апплетами ** абсолютно одинаковый **, но я не знаю ни одной другой мультиплатформенной технологии, которая может расширить браузер с помощью расширенных возможностей цифровой подписи. BTW Я только что изучил NativeClient SDK более близко и, кажется, предоставляет только очень ограниченную функциональность: вы не можете получить доступ к файловой системе или загрузить сторонние библиотеки, необходимые для доступа к хранилищу MS Crypto. Дополнительную информацию см. В этой статье в списке рассылки native-client-discuss (https://groups.google.com/forum/#!topic/native-client-discuss/C9nR--vt-Ug). – jariq
, так что, возможно, у нас одна и та же проблема ... Я занимаюсь апплетами в течение долгого времени, а в последнее время у меня больше проблем, чем когда-либо (java mantra: писать один раз подряд везде ... не применяются с апплетами, когда речь идет о ОС keystores). Я думаю, что javascript - это хороший способ сделать это, но пока вы сказали, что не все браузеры приносят эту функцию, и каждый браузер, который приносит, имеет свою собственную реализацию. Еще раз спасибо. – albciff