如何在浏览器上保护服务器的密钥?

use*_*116 -2 javascript cryptography encryption-symmetric webcrypto-api

在该用例中,服务器向浏览器发送加密的blob,并且浏览器上的javascript随后从服务器请求解密密钥并将blob解密为可用内容.

有没有办法保护浏览器上的这个键免受书签或浏览器插件的攻击或用户在浏览器上单步调试javascript调试器?或至少使攻击者的问题稍微困难一些.

编辑:问题的上下文是EME规范中指定的HTML Video DRM.有一个ClearKey api是该标准的一部分,并且不需要来自WideVine或FairPlay等的封闭源插件.但是,正如多个响应指出的那样,ClearKey无法得到保护.(遗憾的是,这意味着使用propinent DRM插件).

Dav*_*ica 6

一旦到达客户端,您无法保证任何数据的安全性.

没有办法做到这一点.一旦客户端收到此消息,特别是如果他们也收到解密密钥,他们就可以完全访问其中的所有秘密.

在一个非常简单的规模,他们可以删除一些断点或prints在JavaScript控制台中放一些.如果他们想要更高级,他们可以使用wireshark之​​类的工具来查看线路上的数据.

现在,如果你想发送它们没有被解密的加密数据,并且它是高度加密的,那么它就不那么糟糕了.但是,如果你永远不会在他们身边解密它,那么你甚至将它送给谁?


Amo*_*mot 6

同意不能这样做.您可以使用非对称加密来完成.但我会回到你为什么这样做 - 如果连接是SSL加密的,没有理由这样做.