Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 从中间人那里获取公共服务信息_Web Services_Security_Soa - Fatal编程技术网

Web services 从中间人那里获取公共服务信息

Web services 从中间人那里获取公共服务信息,web-services,security,soa,Web Services,Security,Soa,如何保护提供私人信息的公共服务上的信息 该服务根据客户端发送给它的用户名和密码提供一些信息。例如: 请求 <get-my-info> <username>username</username> <password>password</password> </get-my-info> 用户名 密码 响应 <your-info> <private-info-a>private-info-a&l

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

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

请求

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

private-info-a
private-info-b
该服务应该相当容易使用,并允许出现新的客户机,因此强制客户机注册与其关联的密钥不是一个选项

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


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

< P>如果使用标准HTTPS,则可以安全地避免中间人攻击,前提是您有某种身份验证和授权步骤启动每个会话。您还可以在每个请求中发送一个安全令牌。

您已接近

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

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


简而言之,您需要为服务器购买并注册证书。如果你使用标准的HTTPS,客户端将不得不对自己进行认证。如果你在每次对话中都有某种认证和授权步骤,那么你就不会受到中间人攻击。您还可以在每个请求中发送一个安全令牌。@faester,您可以发布一个关于HTTPS的答复,以便我可以接受它吗?谢谢