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>

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

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

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

4

2 回答 2

1

你很接近....

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

为了确保(原始完整性),服务需要使用(用户名和密码)对客户端进行身份验证

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

于 2013-07-17T04:42:24.653 回答
0

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

于 2013-05-02T19:04:59.627 回答