【问题标题】:WebService Security网络服务安全
【发布时间】:2011-01-16 06:34:36
【问题描述】:

我正在开发一个项目,其中包含一个 Web 服务和一个客户端应用程序。这是一个相当简单的场景。网络服务连接到数据库服务器,客户端从网络服务器消费,以获取从数据库中检索的信息。

问题是: 1. 客户端应用程序只能显示前一次认证后的数据; 2. Web Service 与客户端之间传输的所有数据必须保密; 3. 数据完整性不应受到损害;

我想知道实现这些要求的最佳方法是什么。 我想到的第一件事是向服务器发送一个包含客户端证书的数字签名,将其存储在服务器中,并用作身份验证的比较。但是我对 web 服务安全性进行了一些调查,我不再确定这是最好的选择。

谁能给我意见?

TIA

【问题讨论】:

    标签: c# web-services security


    【解决方案1】:

    您应该使用已知的良好方案来实现这种安全连接:SSL。如果您使用的技术(编程语言、库等)具有已知的 SSL 模式,请使用它。

    如果您的会话是安全的,那么您不需要任何额外的数据加密。按照今天的标准,最新版本的 SSL 相当强大。

    对于 C# 应用程序,我会使用带有 SSL 的 WCF。

    您的客户需要知道他们可以信任服务器,因此您需要服务器证书。如果您认为客户端只需要密码即可访问该数据,那么您不需要客户端证书。

    【讨论】:

      【解决方案2】:

      客户端和 Web 服务之间的所有通信都应该加密。 强度将来自您处理加密密钥的方式。

      microsoft 的 wcf 具有使用证书和其他选项的消息身份验证。

      您可以使用一些签名算法(如 md5)对发送给客户端(在消息内)的“数据”进行签名,但攻击者也可以这样做,因此更强大的选择是使用公私使用签名加密数据的密钥...但是您现在需要保护私钥。

      您的数据有多重要?

      【讨论】:

      • 既然您提到了表单身份验证,我想您假设客户端是一个网页。她提到了 C#,所以我认为它是一个桌面应用程序。
      • 我知道 - 谢谢,我注意到在我发布答案并现在更改它之后......太累了......需要睡觉。
      • 这是一个桌面客户端应用程序。
      • 数据本身并不重要,但这些都是项目的要求,我必须满足。无论如何,我最终使用了数字签名和证书,并结合了 TripleDes。
      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      相关资源
      最近更新 更多