我正在开发一个项目,它包含一个Web服务和一个客户端应用程序。这是一个简单的场景。 Web服务连接到数据库服务器,客户端从Web服务器消耗,以便从数据库中检索信息。
事情是: 1.客户端应用程序只能在先前的身份验证后显示数据; 2. Web Service与客户之间传输的所有数据必须保密; 3.不应损害数据完整性;
我想知道达到这些要求的最佳方法是什么。 我想到的第一件事是向服务器发送包含客户端证书的数字签名,存储在服务器中,并用作身份验证的比较。但我对网络服务安全性进行了一些调查,我不再确定这是最好的选择。
有人可以就此发表意见吗?
TIA
答案 0 :(得分:2)
您应该使用已知良好的方案来实现这种安全连接:SSL。如果您使用的技术(编程语言,库等)具有已知的SSL模式,则使用该模式。
如果您的会话是安全的,那么您不需要任何额外的数据加密。根据今天的标准,最新版本的SSL非常强大。
对于C#应用程序,我将使用带有SSL的WCF。
您的客户需要知道他们可以信任服务器,因此您需要服务器证书。如果您对客户只需要密码来访问该数据,那么您就不需要客户端证书。
答案 1 :(得分:1)
客户端和Web服务之间的所有通信都应加密。 而强度将来自你处理加密密钥的方式。
microsoft的wcf使用证书和其他选项进行消息身份验证。
您可以使用一些签名算法(如md5)来签署您发送给客户端的“数据”(在消息内),但攻击者也可以这样做,因此更强大的选择是使用公共私有使用签名加密数据的密钥...但您现在需要保护私钥。
您的数据有多重要?