0

虽然我了解 REST 服务之间的服务器到服务器身份验证可用的各种选项,但我可以对每种方法的安全含义进行一些澄清。

我想要一个服务来验证收到的请求确实来自合法的调用远程服务。不涉及交互式用户,假设请求发生在调用服务启动时。通常提到的三种方法是:

  1. 使用伪造的用户帐户并针对现有的身份验证系统对客户端进行身份验证
  2. 使用共享密钥/API 密钥并签署请求
  3. 使用客户端证书(验证服务器不是优先级) 3.

我缺少的部分是,似乎所有三种方法都完全依赖于调用服务的主机(调用中的客户端)没有受到损害。在第一种方法中,这会泄露虚假的用户密码,但在其他两种方法中,攻击者可以获得共享密钥或客户端证书,并像使用方法 1 一样容易地冒充调用服务器......那么在什么方面2 和 3 被认为更安全吗?

4

2 回答 2

1

如果主机被攻破,游戏就已经结束了。您不能希望使用网络安全技术来提供有关终端系统的保证,这不是它们的本意。例如,考虑密码。当用户输入密码时,您可以保证输入密码的实体知道密码,仅此而已。设计以防止受感染的主机就像尝试构建一个密码方案,该方案仅在您是真人时才授权您 - 您期望保证该机制不是为了提供而构建的。

于 2013-06-19T07:02:02.037 回答
0

如果您想检查调用服务器是否受到威胁,您可能需要使用基于 TPM 的调用服务器验证,以防机器上有 TPM。一旦验证它没有受到损害,上述 3 种方法中的任何一种都是安全的。(参考:http ://en.wikipedia.org/wiki/Trusted_Platform_Module )

于 2013-06-18T17:20:56.833 回答