【发布时间】:2013-04-21 15:06:29
【问题描述】:
如何保护提供私人信息的公共服务的信息?
该服务根据客户端发送给它的用户名和密码提供一些信息。例如:
请求
<get-my-info>
<username>username</username>
<password>password</password>
</get-my-info>
回应
<your-info>
<private-info-a>private-info-a</private-info-a>
<private-info-b>private-info-b</private-info-b>
</your-info>
该服务应该相当容易使用并允许新客户端出现,因此强制客户端注册与其关联的密钥不是一种选择。
将私钥放在服务器上并发送公钥供客户端加密敏感信息是否足够?因此只有服务器可以解密来自客户端的消息,并且所有客户端都将使用相同的公钥,从而更容易创建新客户端。
该服务正在连接一个旧数据库,该数据库提供该服务所需的所有信息:用户名/密码和私人信息查找。维护用户名/密码方法并避免数据库更改(例如存储用户的签名密钥)是首选。
【问题讨论】:
-
如果您使用标准 https,只要您有某种身份验证和授权步骤开始每个对话,您就可以免受中间人攻击。您还可以在每个请求中发送一个安全令牌。
-
@faester,您能否发布有关 HTTPS 的答案,以便我接受?谢谢。
标签: web-services security soa