2013-04-27 66 views
0

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

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

请求

<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

如果您使用标准https,则在中间攻击时您是安全的,只要您具有启动每个对话的某种身份验证和授权步骤即可。您也可以为每个请求发送安全令牌。 – faester 2013-04-27 14:50:11

+0

@faester,能否请您发表有关HTTPS的答案,以便我可以接受它?谢谢。 – 2013-05-02 12:34:46

回答

0

如果您使用标准https,那么您在中间攻击时是安全的,只要您有一些身份验证和授权步骤即可开始每个对话。您也可以为每个请求发送安全令牌。

1

你接近....

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

,以确保(产地完整性),该服务需要使用(用户名和密码)

总之,你将需要购买并为您的服务器注册证书来认证客户端。客户端必须认证自己