从中间人那里获得有关公共服务的信息

时间:2013-04-27 14:44:09

标签: web-services security soa

如何保护提供私人信息的公共服务的信息?

该服务根据客户端发送给它的用户名和密码提供一些信息。例如:

请求

<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>

该服务应该相当容易使用并允许新客户端出现,因此强制客户端注册与其关联的密钥不是一种选择。

将私钥放在服务器上并为客户端发送公钥来加密敏感信息是否足够?因此,只有服务器可以解密来自客户端的消息,并且所有客户端都将使用相同的公钥,从而更容易创建新客户端。

该服务连接旧数据库,该数据库提供服务所需的所有信息:用户名/密码和私人信息查找。首选维护用户名/密码方法并避免数据库更改(例如存储用户的签名密钥)。

2 个答案:

答案 0 :(得分:1)

你很亲密......

您可能会在这里混淆两个概念,对用户进行身份验证以及保护(加密)数据。 没有详细介绍安全协议如何工作(https,SSL)..托管服务的服务器需要一个证书,就像你说的那样,服务器将拥有一个其他人都不知道的私钥,以及一个公钥,谁都知道...... 现在你的客户端将使用服务器公钥加密数据(浏览器会处理这个),这将确保只有服务可以解密数据(使用私钥),因此数据是安全的......

为确保(原始完整性),服务需要使用(用户名和密码)

来验证客户端

简而言之,您需要为您的服务器购买并注册证书。客户必须自己进行身份验证

答案 1 :(得分:0)

如果您使用标准的https,只要您有某种身份验证和授权步骤来启动每个对话,您就可以免受中间人攻击。您还可以为每个请求发送安全令牌。