我希望能夠使用100%JavaScript和基於密碼令牌的密鑰在瀏覽器上簽名數據。WebCryptoAPI - 它是否支持使用加密令牌進行簽名?
從我迄今爲止所看到的,這個功能的所有舊實現都正在中斷(例如,即使new ActiveXObject("CAPICOM.Store");
似乎不再在IE11中工作,因爲它會拋出一個錯誤! - 我不知道我是否錯過了某些東西...也許是因爲我在控制檯窗口中運行它...)。
我特地到WebCryptoAPI的規格(即應該是成爲新的支持方式):
http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-sign
...然後在這個(這是比較明確的,有組織的和樂於助人):
http://msdn.microsoft.com/en-us/library/ie/dn302332(v=vs.85).aspx
...我看到它允許你創建新的密鑰(generateKey
),但我不知道它是否支持利用令牌密鑰。有一個importKey
,但從描述看來,這不是我所需要的,以便用操作系統可以看到的現有密鑰進行簽名。
這個網絡標準是否旨在允許這種功能?我可以像現在一樣使用它並實現我的目標嗎?
至少在具有設備管理器的Firefox(Options-> Certifivates-> Security Devices)中,我可以做些什麼嗎?
相關問題:
Accessing signing/encryption in a browser's Keystore using JavaScript - sample code? (WebCryptoAPI)
js signature on chrome with OS keystore
UPDATE:
我還發現這個PDF: http://webpki.org/papers/PKI/x509-webcrypto-extension-scheme.pdf
從我所看到的,在任何瀏覽器中沒有window.crypto.subtle.KeyStore
,所以我想這是狂野的夢想,人們對遙遠的未來......
UPDATE2: 這是我無法加載ActiveX控件在IE11的原因:https://stackoverflow.com/a/5157766/2173353
因此,至少有一個老方法仍在工作...
目前WebCrypto根本沒有訪問證書和/或密鑰存儲的機制。大家都希望這個變化,並且標準開發人員在忽略這個功能時認爲什麼是不明確的。 – 2014-12-04 09:09:37