虽然我了解 REST 服务之间的服务器到服务器身份验证可用的各种选项,但我可以对每种方法的安全含义进行一些澄清。
我想要一个服务来验证收到的请求确实来自合法的调用远程服务。不涉及交互式用户,假设请求发生在调用服务启动时。通常提到的三种方法是:
- 使用伪造的用户帐户并针对现有的身份验证系统对客户端进行身份验证
- 使用共享密钥/API 密钥并签署请求
- 使用客户端证书(验证服务器不是优先级) 3.
我缺少的部分是,似乎所有三种方法都完全依赖于调用服务的主机(调用中的客户端)没有受到损害。在第一种方法中,这会泄露虚假的用户密码,但在其他两种方法中,攻击者可以获得共享密钥或客户端证书,并像使用方法 1 一样容易地冒充调用服务器......那么在什么方面2 和 3 被认为更安全吗?