情景:

这是公开可用的Web服务,我有完全的控制权。 但我只希望这个特定的桌面应用程序(我发布的应用程序)来访问Web服务。 我可以存储在桌面客户端密钥密码,但是这将是很容易破解。

是否有任何已知的执行,强制执行呢? PKI,非对称配钥匙?

有帮助吗?

解决方案

如果市民将有机会获得这个桌面应用程式的副本,任何良好的逆向将能够破解它和“模仿”的数据与服务器。它好好尝试一下怎么回事安全是你的密码,你的应用程序需要的一切加密/解密的数据包括在二进制文件,所以黑客只需要挖掘出来的吧。

密码学的目标是,当它被转移,由“中间人”黑客保护数据,但如果有权访问对等体中的任何一个,就可以很容易地破解它。

您的服务器必须永远不要相信从客户端会发生什么。

[编辑再开始]

尽管你不能100%保证客户认为你的服务器是或不是你的应用程序或一些“模拟器”通过thirdies,您就可以东西给复杂化。它在游戏中的反作弊常见的做法有时,随机,使客户端应用程序像一个有趣的问题“什么是您的MAIN.EXE从偏移哈希A到偏移量B?”或“从现在开始,数据包类型0x07的交换与数据包类型0x5F的”。一旦检测到假的,服务器在一个“愚蠢的模式”进入,行动malfunctional,并列入黑名单的IP /帐户此模式数小时,使他们不能肯定什么他们的计划是做错了。

如果您发现有人正在建设一个模拟器,让他们从头再来:混杂的数据包类型表,密码表,改变一些数据包格式,并迫使客户更新。你不会看到饼干打扰你一会儿...... LOL

其他提示

的WS-Security 提供X509加密。

这实现的一部分包括只给特定的客户端所生成的公开密钥的可能性。这样,只有您选择的客户端可以连接到服务。

最简单的方法是使用客户端和服务器证书消息的安全性。最好的办法是,导入客户端证书在服务器机器和硬编码的客户端证书指纹app.config文件中。另一种方法是我还没有尝试过的证书的协商。

如果使用的是IIS来承载服务然后客户端证书使用SSL的另一种选择。

WCF安全 MSDN链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top