现在,我在想,对于所有传入的请求,我的服务器将根据我的应用程序的全局密钥构造的令牌来检查请求的令牌,以确定其真实性。任何人攻击的唯一方法就是控制我的服务器。再说一遍,如果有人设法控制了你的服务器,你就完蛋了,一切都结束了,没有办法阻止攻击者。这个论点有什么缺陷吗?
发布于 2016-01-02 15:14:16
实际上,有一些方法可以使攻击更加困难或限制漏洞的影响。
一种是使用每个用户的秘密,并将它们分开存储。服务器只会在内存中看到它们,并且用户可以使用某种形式的服务器分片来限制每个用户的机密暴露在单个受损服务器上的数量。
另一个是使用单独的KMS系统来生成或验证令牌。该系统也必须加强,但攻击者必须侵入系统的多个层才能窃取机密。在一些KMS系统中,密钥存储在TPM中,因此即使是KMS的软妥协也不会泄漏密钥。他们必须窃取硬件本身,这样才能有效地设计出对令牌的离线攻击。
请记住,令牌系统可能不是这里最弱的环节。孤立地加强它是很好的,但是要具有有效的整体安全性,您需要根据部署到的系统的威胁模型做出防御选择。
https://security.stackexchange.com/questions/109358
复制相似问题