虽然我了解REST服务之间可用于服务器到服务器身份验证的各种选项,但我可以对每种方法的安全含义进行一些澄清。
我想要一项服务来验证收到的请求是否源自合法的呼叫远程服务。没有涉及的交互式用户,假设请求在呼叫服务启动时发生。通常提到的三种方法是:
我缺少的部分是,似乎所有三种方法完全依赖于调用服务的主机(调用中的客户端)没有受到损害。在第一种方法中,这将泄露假用户密码,但在另外两种方法中,攻击者可以获得共享密钥或客户端证书,并像使用方法1一样轻松地模拟呼叫服务器...所以在哪方面是2& 3被认为更安全吗?
答案 0 :(得分:0)
如果要检查呼叫服务器是否受到损害,您可能希望使用基于TPM的呼叫服务器验证,以防机器上有TPM。一旦确认它没有受到损害,上述3种方法中的任何一种都是安全的。(参考:http://en.wikipedia.org/wiki/Trusted_Platform_Module)
答案 1 :(得分:0)
如果主机遭到入侵,游戏就已经结束了。您不能希望使用网络安全技术来提供有关终端系统的保证,这不是它们的意义所在。例如,考虑密码。当用户键入密码时,您所拥有的保证是输入密码的实体知道密码,即全部。设计为对受损主机的安全性就像尝试构建一个密码方案,只有在您是真人的情况下才授权您 - 您期望保证该机制不是为了提供而构建的。