即使WebAssembly实现的性能优于WebCrypto,我也强烈建议您不要使用自己的。WebCrypto具有您在使用WebAssembly时根本不具备的平台知识,这意味着该实现可以使其算法使用ISA特定的指令,并确保您的加密算法不会泄漏机密。今天,WebAssembly根本不可能做到这一点。
您可能会认为“ JIT知道平台,并且可以将我的加密代码进行模式匹配以使其正确处理”,但在那一点上,它还可能会识别出您正在调用WebCrypto并使该调用特别快。然后,您将减少代码的交付量。
这是一篇文章,显示了不使用WebCrypto“来自可移植代码的行进式密钥提取缓存攻击”时的秘密提取。
报价:
在JavaScript中执行加密操作的唯一安全方法是将它们委托给浏览器,以便可以使用本机代码实现来执行它们。实际上,现代浏览器都配备了WebCrypto API [70],该API允许JavaScript执行某些加密操作
这适用于WebAssembly和JavaScript。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句