WebCryptoAPI - 它是否支持使用加密令牌进行签名?

时间:2014-12-03 14:16:33

标签: javascript cryptography digital-signature webcryptoapi

我希望能够使用100%JavaScript和基于加密令牌的密钥在浏览器上签名数据。

从我到目前为止看到的,此功能的所有旧实现都已停止(例如,即使new ActiveXObject("CAPICOM.Store");似乎也不再适用于IE11,因为它会抛出错误! - 我不会&# 39;不知道我是否遗漏了某些东西......也许是因为我在控制台窗口中运行它......)。

我已经研究过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(选项 - > Certifivates->安全设备)中,我能做得更好吗?

相关问题:

Accessing signing/encryption in a browser's Keystore using JavaScript - sample code? (WebCryptoAPI)

js signature on chrome with OS keystore

更新

我也发现了这个PDF: http://webpki.org/papers/PKI/x509-webcrypto-extension-scheme.pdf

从我所看到的,任何一个浏览器中都没有window.crypto.subtle.KeyStore,所以我猜这是人们对遥远未来的狂野梦想......

UPDATE2: 这就是我无法在IE11中加载ActiveX的原因:https://stackoverflow.com/a/5157766/2173353

所以,至少,还有一种旧方法仍然有效......

1 个答案:

答案 0 :(得分:1)

不,目前没有。用户的硬件或软件令牌仍然不可用。有关更多信息,请参阅Eugene的评论(在问题上)。